Modifie addline pour calculer en TTC

This commit is contained in:
Rodolphe Quiedeville 2006-12-15 12:00:18 +00:00
parent 158b3a9a6b
commit f202e5b7a1

View File

@ -57,18 +57,18 @@ class Facture extends CommonObject
var $date; var $date;
var $ref; var $ref;
var $ref_client; var $ref_client;
var $type; // 0=Facture normale, 1=Facture remplacement, 2=Facture avoir, 3=Facture récurrente var $type; // 0=Facture normale, 1=Facture remplacement, 2=Facture avoir, 3=Facture récurrente
var $amount; var $amount;
var $remise; var $remise;
var $tva; var $tva;
var $total; var $total;
var $note; var $note;
var $note_public; var $note_public;
var $statut; // 0=brouillon, 1=validé var $statut; // 0=brouillon, 1=validé
var $paye; // 1 si facture payée COMPLETEMENT, 0 sinon var $paye; // 1 si facture payée COMPLETEMENT, 0 sinon
var $fk_facture_source; // id facture source si facture de remplacement ou avoir var $fk_facture_source; // id facture source si facture de remplacement ou avoir
var $close_code; // abandon, replaced, avoir, discount_vat var $close_code; // abandon, replaced, avoir, discount_vat
var $close_note; // Commentaire si mis a paye sans paiement complet var $close_note; // Commentaire si mis a paye sans paiement complet
var $propalid; var $propalid;
var $projetid; var $projetid;
var $date_lim_reglement; var $date_lim_reglement;
@ -88,7 +88,6 @@ class Facture extends CommonObject
var $specimen; var $specimen;
var $error; var $error;
/** /**
* \brief Constructeur de la classe * \brief Constructeur de la classe
* \param DB handler accès base de données * \param DB handler accès base de données
@ -154,7 +153,7 @@ class Facture extends CommonObject
$this->amount = $_facrec->amount; $this->amount = $_facrec->amount;
$this->remise_absolue = $_facrec->remise_absolue; $this->remise_absolue = $_facrec->remise_absolue;
$this->remise_percent = $_facrec->remise_percent; $this->remise_percent = $_facrec->remise_percent;
$this->remise = $_facrec->remise; $this->remise = $_facrec->remise;
} }
// Definition de la date limite // Definition de la date limite
@ -1269,16 +1268,16 @@ class Facture extends CommonObject
} }
/** /**
* \brief Ajoute une ligne dans le tableau products \brief Ajoute une ligne dans le tableau products
* \param idproduct Id du produit a ajouter \param idproduct Id du produit a ajouter
* \param qty Quantité \param qty Quantité
* \param remise_percent Remise relative effectuée sur le produit \param remise_percent Remise relative effectuée sur le produit
* \param date_start \param date_start
* \param date_end \param date_end
* \return void \return void
* \remarks $this->client doit etre chargé \remarks $this->client doit etre chargé
* \TODO Remplacer les appels a cette fonction par generation objet Ligne \TODO Remplacer les appels a cette fonction par generation objet Ligne
* inséré dans tableau $this->products inséré dans tableau $this->products
*/ */
function add_product($idproduct, $qty, $remise_percent, $date_start='', $date_end='') function add_product($idproduct, $qty, $remise_percent, $date_start='', $date_end='')
{ {
@ -1300,12 +1299,12 @@ class Facture extends CommonObject
$line=new FactureLigne($this->db); $line=new FactureLigne($this->db);
$line->rowid = $idproduct; $line->rowid = $idproduct;
$line->fk_product=$idproduct; $line->fk_product = $idproduct;
$line->desc=$prod->description; $line->desc = $prod->description;
$line->qty = $qty; $line->qty = $qty;
$line->subprice=$price; $line->subprice = $price;
$line->remise_percent = $remise_percent; $line->remise_percent = $remise_percent;
$line->tva_tx=$tva_tx; $line->tva_tx = $tva_tx;
if ($date_start) { $line->date_start = $date_start; } if ($date_start) { $line->date_start = $date_start; }
if ($date_end) { $line->date_end = $date_end; } if ($date_end) { $line->date_end = $date_end; }
@ -1325,16 +1324,16 @@ class Facture extends CommonObject
* \param date_start Date de debut de validité du service * \param date_start Date de debut de validité du service
* \param date_end Date de fin de validité du service * \param date_end Date de fin de validité du service
* \param ventil Code de ventilation comptable * \param ventil Code de ventilation comptable
* \param info_bits Bits de type de lignes * \param info_bits Bits de type de lignes
* \remarks Les parametres sont deja censé etre juste et avec valeurs finales a l'appel * \remarks Les parametres sont deja censé etre juste et avec valeurs finales a l'appel
* de cette methode. Aussi, pour le taux tva, il doit deja avoir ete défini * de cette methode. Aussi, pour le taux tva, il doit deja avoir ete défini
* par l'appelant par la methode get_default_tva(societe_vendeuse,societe_acheteuse,taux_produit) * par l'appelant par la methode get_default_tva(societe_vendeuse,societe_acheteuse,taux_produit)
* et le desc doit deja avoir la bonne valeur (a l'appelant de gerer le multilangue) * et le desc doit deja avoir la bonne valeur (a l'appelant de gerer le multilangue)
*/ */
function addline($facid, $desc, $pu, $qty, $txtva, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil=0, $info_bits='', $fk_remise_except='') function addline($facid, $desc, $pu, $qty, $txtva, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil=0, $info_bits='', $fk_remise_except='', $price_base_type='HT', $pu_ttc=0)
{ {
global $conf; global $conf;
dolibarr_syslog("facture.class.php::addline($facid,$desc,$pu,$qty,$txtva,$fk_product,$remise_percent,$date_start,$date_end,$ventil,$info_bits)"); dolibarr_syslog("Facture::Addline($facid,$desc,$pu,$qty,$txtva,$fk_product,$remise_percent,$date_start,$date_end,$ventil,$info_bits)");
include_once(DOL_DOCUMENT_ROOT.'/lib/price.lib.php'); include_once(DOL_DOCUMENT_ROOT.'/lib/price.lib.php');
if ($this->brouillon) if ($this->brouillon)
@ -1354,7 +1353,7 @@ class Facture extends CommonObject
// qty, pu, remise_percent et txtva // qty, pu, remise_percent et txtva
// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva); $tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, 0, $price_base_type, $pu_ttc);
$total_ht = $tabprice[0]; $total_ht = $tabprice[0];
$total_tva = $tabprice[1]; $total_tva = $tabprice[1];
$total_ttc = $tabprice[2]; $total_ttc = $tabprice[2];
@ -1511,8 +1510,10 @@ class Facture extends CommonObject
* \brief Supprime une ligne facture de la base * \brief Supprime une ligne facture de la base
* \param rowid Id de la ligne de facture a supprimer * \param rowid Id de la ligne de facture a supprimer
*/ */
function deleteline($rowid) function deleteline($rowid, $user='')
{ {
global $langs, $conf;
dolibarr_syslog("Facture.class::deleteline rowid=".$rowid." ".$this->brouillon); dolibarr_syslog("Facture.class::deleteline rowid=".$rowid." ".$this->brouillon);
if ($this->brouillon) if ($this->brouillon)
@ -1542,6 +1543,12 @@ class Facture extends CommonObject
return -1; return -1;
} }
// Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($this->db);
$result = $interface->run_triggers('LINEBILL_DELETE',$this,$user,$langs,$conf);
// Fin appel triggers
$result=$this->update_price($this->id); $result=$this->update_price($this->id);
$this->db->commit(); $this->db->commit();
@ -2681,12 +2688,12 @@ class FactureLigne
// From llx_facturedet // From llx_facturedet
var $rowid; var $rowid;
var $fk_facture; // Id facture var $fk_facture; // Id facture
var $desc; // Description ligne var $desc; // Description ligne
var $fk_product; // Id produit prédéfini var $fk_product; // Id produit prédéfini
var $qty; // Quantité (exemple 2) var $qty; // Quantité (exemple 2)
var $tva_tx; // Taux tva produit/service (exemple 19.6) var $tva_tx; // Taux tva produit/service (exemple 19.6)
var $subprice; // P.U. HT (exemple 100) var $subprice; // P.U. HT (exemple 100)
var $remise_percent; // % de la remise ligne (exemple 20%) var $remise_percent; // % de la remise ligne (exemple 20%)
var $rang = 0; var $rang = 0;
@ -2721,7 +2728,6 @@ class FactureLigne
$this->db= $DB ; $this->db= $DB ;
} }
/** /**
* \brief Recupére l'objet ligne de facture * \brief Recupére l'objet ligne de facture
* \param rowid id de la ligne de facture * \param rowid id de la ligne de facture
@ -2779,12 +2785,12 @@ class FactureLigne
/** /**
* \brief Insère l'objet ligne de facture en base * \brief Insère l'objet ligne de facture en base
* \return int <0 si ko, >0 si ok * \return int <0 si ko, >0 si ok
*/ */
function insert() function insert()
{ {
dolibarr_syslog("FactureLigne.class::insert rang=".$this->rang); dolibarr_syslog("FactureLigne::Insert rang=".$this->rang);
$this->db->begin(); $this->db->begin();
$rangtouse=$this->rang; $rangtouse=$this->rang;
@ -2852,8 +2858,6 @@ class FactureLigne
$result = $interface->run_triggers('LINEBILL_INSERT',$this,$user,$langs,$conf); $result = $interface->run_triggers('LINEBILL_INSERT',$this,$user,$langs,$conf);
// Fin appel triggers // Fin appel triggers
$this->db->commit(); $this->db->commit();
return $this->rowid; return $this->rowid;
} }
@ -2868,8 +2872,8 @@ class FactureLigne
/** /**
* \brief Mise a jour de l'objet ligne de facture en base * \brief Mise a jour de l'objet ligne de facture en base
* \return int <0 si ko, >0 si ok * \return int <0 si ko, >0 si ok
*/ */
function update() function update()
{ {