diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index a348f2617a4..20e1c1006bd 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -728,9 +728,6 @@ if ($_POST['action'] == "addline" && $user->rights->propale->creer) $info_bits=0; if ($tva_npr) $info_bits |= 0x01; - // Rang to use - $rang = (!empty($module->rangtouse)?$module->rangtouse:-1); - if ($prod->price_min && (price2num($pu_ht)*(1-price2num($_POST['remise_percent'])/100) < price2num($prod->price_min))) { $mesg = '
'.$langs->trans("CantBeLessThanMinPrice",price2num($prod->price_min,'MU').' '.$langs->trans("Currency".$conf->monnaie)).'
' ; @@ -751,8 +748,7 @@ if ($_POST['action'] == "addline" && $user->rights->propale->creer) $price_base_type, $pu_ttc, $info_bits, - $type, - $rang + $type ); if ($result > 0) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 09f35f6c5c9..65c76ae1c87 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -405,7 +405,7 @@ class Propal extends CommonObject } else { - $this->error=$ligne->error; + $this->error=$this->ligne->error; $this->db->rollback(); return -2; } diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 597b9cd1a3b..2622e8c93a8 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -829,7 +829,7 @@ class Commande extends CommonObject * par l'appelant par la methode get_default_tva(societe_vendeuse,societe_acheteuse,produit) * et le desc doit deja avoir la bonne valeur (a l'appelant de gerer le multilangue) */ - function addline($commandeid, $desc, $pu_ht, $qty, $txtva, $txlocaltax1=0, $txlocaltax2=0, $fk_product=0, $remise_percent=0, $info_bits=0, $fk_remise_except=0, $price_base_type='HT', $pu_ttc=0, $date_start='', $date_end='', $type=0, $rang=-1) + function addline($commandeid, $desc, $pu_ht, $qty, $txtva, $txlocaltax1=0, $txlocaltax2=0, $fk_product=0, $remise_percent=0, $info_bits=0, $fk_remise_except=0, $price_base_type='HT', $pu_ttc=0, $date_start='', $date_end='', $type=0, $rang=-1, $special_code=0) { dol_syslog("Commande::addline commandeid=$commandeid, desc=$desc, pu_ht=$pu_ht, qty=$qty, txtva=$txtva, fk_product=$fk_product, remise_percent=$remise_percent, info_bits=$info_bits, fk_remise_except=$fk_remise_except, price_base_type=$price_base_type, pu_ttc=$pu_ttc, date_start=$date_start, date_end=$date_end, type=$type", LOG_DEBUG); @@ -895,35 +895,36 @@ class Commande extends CommonObject } // Insert line - $line=new OrderLine($this->db); + $this->line=new OrderLine($this->db); - $line->fk_commande=$commandeid; - $line->desc=$desc; - $line->qty=$qty; - $line->tva_tx=$txtva; - $line->localtax1_tx=$txlocaltax1; - $line->localtax2_tx=$txlocaltax2; - $line->fk_product=$fk_product; - $line->fk_remise_except=$fk_remise_except; - $line->remise_percent=$remise_percent; - $line->subprice=$pu_ht; - $line->rang=$rangtouse; - $line->info_bits=$info_bits; - $line->total_ht=$total_ht; - $line->total_tva=$total_tva; - $line->total_localtax1=$total_localtax1; - $line->total_localtax2=$total_localtax2; - $line->total_ttc=$total_ttc; - $line->product_type=$type; + $this->line->fk_commande=$commandeid; + $this->line->desc=$desc; + $this->line->qty=$qty; + $this->line->tva_tx=$txtva; + $this->line->localtax1_tx=$txlocaltax1; + $this->line->localtax2_tx=$txlocaltax2; + $this->line->fk_product=$fk_product; + $this->line->fk_remise_except=$fk_remise_except; + $this->line->remise_percent=$remise_percent; + $this->line->subprice=$pu_ht; + $this->line->rang=$rangtouse; + $this->line->info_bits=$info_bits; + $this->line->total_ht=$total_ht; + $this->line->total_tva=$total_tva; + $this->line->total_localtax1=$total_localtax1; + $this->line->total_localtax2=$total_localtax2; + $this->line->total_ttc=$total_ttc; + $this->line->product_type=$type; + $this->line->special_code=$special_code; + + $this->line->date_start=$date_start; + $this->line->date_end=$date_end; // \TODO Ne plus utiliser - $line->price=$price; - $line->remise=$remise; + $this->line->price=$price; + $this->line->remise=$remise; - $line->date_start=$date_start; - $line->date_end=$date_end; - - $result=$line->insert(); + $result=$this->line->insert(); if ($result > 0) { // Mise a jour informations denormalisees au niveau de la commande meme @@ -942,7 +943,7 @@ class Commande extends CommonObject } else { - $this->error=$line->error; + $this->error=$this->line->error; dol_syslog("Commande::addline error=".$this->error, LOG_ERR); $this->db->rollback(); return -2; @@ -2397,15 +2398,14 @@ class Commande extends CommonObject } /** - * \brief Return an array of order lines - * \param option 0=No filter on rang, 1=filter on rang <> 0, 2=filter on rang=0 + * Return an array of order lines */ - function getLinesArray($option=0) + function getLinesArray() { $lines = array(); $sql = 'SELECT l.rowid, l.fk_product, l.product_type, l.description, l.price, l.qty, l.tva_tx, '; - $sql.= ' l.fk_remise_except, l.remise_percent, l.subprice, l.info_bits,l.rang,'; + $sql.= ' l.fk_remise_except, l.remise_percent, l.subprice, l.info_bits,l.rang,l.special_code,'; $sql.= ' l.total_ht, l.total_tva, l.total_ttc,'; $sql.= ' l.date_start,'; $sql.= ' l.date_end,'; @@ -2414,8 +2414,6 @@ class Commande extends CommonObject $sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as l'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product=p.rowid'; $sql.= ' WHERE l.fk_commande = '.$this->id; - if ($option == 1) $sql.= ' AND l.rang <> 0'; - if ($option == 2) $sql.= ' AND l.rang = 0'; $sql.= ' ORDER BY l.rang ASC, l.rowid'; $resql = $this->db->query($sql); @@ -2428,38 +2426,41 @@ class Commande extends CommonObject { $obj = $this->db->fetch_object($resql); - $lines[$i]->id = $obj->rowid; - $lines[$i]->description = $obj->description; - $lines[$i]->fk_product = $obj->fk_product; - $lines[$i]->ref = $obj->ref; - $lines[$i]->product_label = $obj->product_label; - $lines[$i]->product_desc = $obj->product_desc; - $lines[$i]->fk_product_type = $obj->fk_product_type; - $lines[$i]->product_type = $obj->product_type; - $lines[$i]->qty = $obj->qty; - $lines[$i]->subprice = $obj->subprice; - $lines[$i]->fk_remise_except = $obj->fk_remise_except; - $lines[$i]->remise_percent = $obj->remise_percent; - $lines[$i]->tva_tx = $obj->tva_tx; - $lines[$i]->info_bits = $obj->info_bits; - $lines[$i]->total_ht = $obj->total_ht; - $lines[$i]->total_tva = $obj->total_tva; - $lines[$i]->total_ttc = $obj->total_ttc; - $lines[$i]->special_code = $obj->special_code; - $lines[$i]->rang = $obj->rang; - $lines[$i]->date_start = $this->db->jdate($obj->date_start); - $lines[$i]->date_end = $this->db->jdate($obj->date_end); + $this->lines[$i]->id = $obj->rowid; + $this->lines[$i]->description = $obj->description; + $this->lines[$i]->fk_product = $obj->fk_product; + $this->lines[$i]->ref = $obj->ref; + $this->lines[$i]->product_label = $obj->product_label; + $this->lines[$i]->product_desc = $obj->product_desc; + $this->lines[$i]->fk_product_type = $obj->fk_product_type; + $this->lines[$i]->product_type = $obj->product_type; + $this->lines[$i]->qty = $obj->qty; + $this->lines[$i]->subprice = $obj->subprice; + $this->lines[$i]->fk_remise_except = $obj->fk_remise_except; + $this->lines[$i]->remise_percent = $obj->remise_percent; + $this->lines[$i]->tva_tx = $obj->tva_tx; + $this->lines[$i]->info_bits = $obj->info_bits; + $this->lines[$i]->total_ht = $obj->total_ht; + $this->lines[$i]->total_tva = $obj->total_tva; + $this->lines[$i]->total_ttc = $obj->total_ttc; + $this->lines[$i]->special_code = $obj->special_code; + $this->lines[$i]->rang = $obj->rang; + $this->lines[$i]->date_start = $this->db->jdate($obj->date_start); + $this->lines[$i]->date_end = $this->db->jdate($obj->date_end); $i++; } + $this->db->free($resql); + + return 1; } else { - dol_print_error($this->db); + $this->error=$this->db->error(); + dol_syslog("Error sql=$sql, error=".$this->error,LOG_ERR); + return -1; } - - return $lines; } } @@ -2530,7 +2531,7 @@ class OrderLine { $sql = 'SELECT cd.rowid, cd.fk_commande, cd.fk_product, cd.product_type, cd.description, cd.price, cd.qty, cd.tva_tx, cd.localtax1_tx, cd.localtax2_tx,'; $sql.= ' cd.remise, cd.remise_percent, cd.fk_remise_except, cd.subprice,'; - $sql.= ' cd.info_bits, cd.total_ht, cd.total_tva, cd.total_localtax1, cd.total_localtax2, cd.total_ttc, cd.marge_tx, cd.marque_tx, cd.rang,'; + $sql.= ' cd.info_bits, cd.total_ht, cd.total_tva, cd.total_localtax1, cd.total_localtax2, cd.total_ttc, cd.marge_tx, cd.marque_tx, cd.rang, cd.special_code,'; $sql.= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc,'; $sql.= ' cd.date_start, cd.date_end'; $sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as cd'; @@ -2548,7 +2549,7 @@ class OrderLine $this->subprice = $objp->subprice; $this->tva_tx = $objp->tva_tx; $this->localtax1_tx = $objp->localtax1_tx; - $tish->localtax2_tx = $objp->localtax2_tx; + $this->localtax2_tx = $objp->localtax2_tx; $this->remise = $objp->remise; $this->remise_percent = $objp->remise_percent; $this->fk_remise_except = $objp->fk_remise_except; @@ -2562,6 +2563,7 @@ class OrderLine $this->total_ttc = $objp->total_ttc; $this->marge_tx = $objp->marge_tx; $this->marque_tx = $objp->marque_tx; + $this->special_code = $objp->special_code; $this->rang = $objp->rang; $this->ref = $objp->product_ref; @@ -2630,6 +2632,7 @@ class OrderLine if (empty($this->remise)) $this->remise=0; if (empty($this->remise_percent)) $this->remise_percent=0; if (empty($this->info_bits)) $this->info_bits=0; + if (empty($this->special_code)) $this->special_code=0; // Check parameters if ($this->product_type < 0) return -1; @@ -2640,7 +2643,7 @@ class OrderLine $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'commandedet'; $sql.= ' (fk_commande, description, qty, tva_tx, localtax1_tx, localtax2_tx,'; $sql.= ' fk_product, product_type, remise_percent, subprice, price, remise, fk_remise_except,'; - $sql.= ' rang, marge_tx, marque_tx,'; + $sql.= ' special_code, rang, marge_tx, marque_tx,'; // Updated by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html) // Insert in the database the start and end dates $sql.= ' info_bits, total_ht, total_tva, total_localtax1, total_localtax2, total_ttc, date_start, date_end)'; @@ -2659,6 +2662,7 @@ class OrderLine $sql.= " '".price2num($this->remise)."',"; if ($this->fk_remise_except) $sql.= $this->fk_remise_except.","; else $sql.= 'null,'; + $sql.= ' '.$this->special_code.','; $sql.= ' '.$this->rang.','; if (isset($this->marge_tx)) $sql.= ' '.$this->marge_tx.','; else $sql.= ' null,'; diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index a41c05fea4c..d78f26a8fd1 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -1672,41 +1672,26 @@ else $numlines=0; print ''; - - // Hook of thirdparty module - if (! empty($hooks->objModules)) + + $result = $commande->getLinesArray(); + //var_dump($commande->lines); + + if (! empty($commande->lines)) { - foreach($hooks->objModules as $module) + if (! empty($hooks->objModules)) { - $lines = $commande->getLinesArray(1); - - $module->getObjectList($commande); - $sublines = $commande->getLinesArray(2); - - if (! empty($module->lines)) - { - $commande->print_title_list(); - $module->printObjectList($commande, $lines, $sublines,1); - } - else if (! empty($lines) ) - { - $commande->print_title_list(); - $commande->printLinesList($lines,1); - } + // TODO traitement des hooks + $commande->print_title_list(); + $commande->printLinesList(); } - } - else - { - $lines = $commande->getLinesArray(0); - - if (! empty($lines) ) + else { $commande->print_title_list(); - $commande->printLinesList($lines,1); + $commande->printLinesList(); } } - $numlines=sizeof($lines); + $numlines=sizeof($commande->lines); /* * Form to add new line