955 |
} |
} |
956 |
|
|
957 |
/** |
/** |
958 |
* \brief Ajoute une ligne de facture (associé à aucun produit/service prédéfini) |
* \brief Ajoute une ligne de facture (associé à un produit/service prédéfini ou non) |
959 |
* \param facid id de la facture |
* \param facid id de la facture |
960 |
* \param desc description de la ligne |
* \param desc description de la ligne |
961 |
* \param pu prix unitaire |
* \param pu prix unitaire |
973 |
if ($this->brouillon) |
if ($this->brouillon) |
974 |
{ |
{ |
975 |
// Nettoyage paramètres |
// Nettoyage paramètres |
976 |
|
$remise_percent=price2num($remise_percent); |
977 |
|
$qty=price2num($qty); |
978 |
if (strlen(trim($qty))==0) $qty=1; |
if (strlen(trim($qty))==0) $qty=1; |
979 |
|
|
980 |
if ($fk_product && ! $pu) |
if ($fk_product && ! $pu) |
984 |
$pu=$prod->price; |
$pu=$prod->price; |
985 |
$txtva=$prod->tva_tx; |
$txtva=$prod->tva_tx; |
986 |
} |
} |
987 |
$_price = $pu; |
$price = $pu; |
988 |
$subprice = $pu; |
$subprice = $pu; |
989 |
|
|
990 |
|
// Calcul remise et nouveau prix |
991 |
$remise = 0; |
$remise = 0; |
|
$remise_percent = trim($remise_percent); |
|
|
|
|
992 |
if ($this->socidp) |
if ($this->socidp) |
993 |
{ |
{ |
994 |
$soc = new Societe($this->db); |
$soc = new Societe($this->db); |
1002 |
|
|
1003 |
if ($remise_percent > 0) |
if ($remise_percent > 0) |
1004 |
{ |
{ |
1005 |
$remise = ($pu * $remise_percent / 100); |
$remise = round(($pu * $remise_percent / 100),2); |
1006 |
$_price = ($pu - $remise); |
$price = ($pu - $remise); |
1007 |
} |
} |
1008 |
|
|
1009 |
// Lecture du rang max de la facture |
// Stockage du rang max de la facture dans rangmax |
1010 |
$sql = 'SELECT max(rang) FROM '.MAIN_DB_PREFIX.'facturedet'; |
$sql = 'SELECT max(rang) FROM '.MAIN_DB_PREFIX.'facturedet'; |
1011 |
$sql .= ' WHERE fk_facture ='.$facid; |
$sql .= ' WHERE fk_facture ='.$facid; |
1012 |
$resql = $this->db->query($sql); |
$resql = $this->db->query($sql); |
1017 |
} |
} |
1018 |
|
|
1019 |
// Formatage des prix |
// Formatage des prix |
1020 |
$_price = price2num($_price); |
$price = price2num($price); |
1021 |
$subprice = price2num($subprice); |
$subprice = price2num($subprice); |
1022 |
|
|
1023 |
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'facturedet '; |
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'facturedet '; |
1024 |
$sql.= ' (fk_facture, description, price, qty, tva_taux, fk_product, remise_percent, subprice, remise, date_start, date_end, fk_code_ventilation, rang)'; |
$sql.= ' (fk_facture, description, price, qty, tva_taux, fk_product, remise_percent, subprice, remise, date_start, date_end, fk_code_ventilation, rang)'; |
1025 |
$sql.= " VALUES ($facid, '".addslashes($desc)."','$_price','$qty','$txtva',"; |
$sql.= " VALUES ($facid, '".addslashes($desc)."','$price','$qty','$txtva',"; |
1026 |
if ($fk_product) { $sql.= "'$fk_product',"; } |
if ($fk_product) { $sql.= "'$fk_product',"; } |
1027 |
else { $sql.='0,'; } |
else { $sql.='0,'; } |
1028 |
$sql.= " '$remise_percent','$subprice','$remise',"; |
$sql.= " '$remise_percent','$subprice','$remise',"; |