Fix: Restore all behaviour of order management of line. The new one is too complex and could not work as it is done.
This commit is contained in:
parent
f91b786de6
commit
46546a78ab
@ -534,7 +534,7 @@ class Propal extends CommonObject
|
||||
if ($this->db->query($sql) )
|
||||
{
|
||||
$this->update_price();
|
||||
|
||||
|
||||
$this->delRangOfLine($lineid, $this->element);
|
||||
|
||||
return 1;
|
||||
@ -930,15 +930,20 @@ class Propal extends CommonObject
|
||||
*/
|
||||
$sql = "SELECT d.description, d.price, d.tva_tx, d.localtax1_tx, d.localtax2_tx, d.qty, d.fk_remise_except, d.remise_percent, d.subprice, d.fk_product,";
|
||||
$sql.= " d.info_bits, d.total_ht, d.total_tva, d.total_localtax1, d.total_localtax2, d.total_ttc, d.marge_tx, d.marque_tx, d.special_code, d.product_type,";
|
||||
$sql.= " p.ref, p.label, p.description as product_desc,";
|
||||
$sql.= " r.rang";
|
||||
$sql.= " p.ref, p.label, p.description as product_desc";
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
//$sql.= " r.rang";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."propaldet as d";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = d.fk_propal AND r.parenttype = '".$this->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = d.fk_propal AND r.parenttype = '".$this->element."'";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON d.fk_product = p.rowid";
|
||||
$sql.= " WHERE d.fk_propal = ".$this->id;
|
||||
$sql.= " AND r.fk_child = d.rowid";
|
||||
$sql.= " AND r.childtype = '".$this->element."'";
|
||||
$sql.= " ORDER by r.rang";
|
||||
//$sql.= " AND r.fk_child = d.rowid";
|
||||
//$sql.= " AND r.childtype = '".$this->element."'";
|
||||
//$sql.= " ORDER by r.rang";
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
@ -1576,7 +1581,7 @@ class Propal extends CommonObject
|
||||
{
|
||||
// Delete all rang of lines
|
||||
$this->delAllRangOfLines();
|
||||
|
||||
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."propal WHERE rowid = ".$this->id;
|
||||
if ( $this->db->query($sql) )
|
||||
{
|
||||
@ -2097,15 +2102,21 @@ class Propal extends CommonObject
|
||||
$sql.= ' pt.total_ht, pt.total_tva, pt.total_ttc, pt.marge_tx, pt.marque_tx, pt.pa_ht, pt.special_code,';
|
||||
$sql.= ' pt.date_start, pt.date_end, pt.product_type,';
|
||||
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,';
|
||||
$sql.= ' p.description as product_desc,';
|
||||
$sql.= " r.rang";
|
||||
$sql.= ' p.description as product_desc';
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
//$sql.= " r.rang";
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pt';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = pt.fk_propal AND r.parenttype = '".$this->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product=p.rowid';
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = pt.fk_propal AND r.parenttype = '".$this->element."'";
|
||||
//$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product=p.rowid';
|
||||
$sql.= ' WHERE pt.fk_propal = '.$this->id;
|
||||
$sql.= " AND r.fk_child = pt.rowid";
|
||||
$sql.= " AND r.childtype = '".$this->element."'";
|
||||
$sql.= ' ORDER BY r.rang ASC, pt.rowid';
|
||||
//$sql.= " AND r.fk_child = pt.rowid";
|
||||
//$sql.= " AND r.childtype = '".$this->element."'";
|
||||
//$sql.= ' ORDER BY r.rang ASC, pt.rowid';
|
||||
$sql.= ' ORDER BY pt.rowid';
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
@ -2224,15 +2235,20 @@ class PropaleLigne extends CommonObjectLine
|
||||
$sql = 'SELECT pd.rowid, pd.fk_propal, pd.fk_product, pd.description, pd.price, pd.qty, pd.tva_tx,';
|
||||
$sql.= ' pd.remise, pd.remise_percent, pd.fk_remise_except, pd.subprice,';
|
||||
$sql.= ' pd.info_bits, pd.total_ht, pd.total_tva, pd.total_ttc, pd.marge_tx, pd.marque_tx, pd.special_code,';
|
||||
$sql.= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc,';
|
||||
$sql.= ' r.rang';
|
||||
$sql.= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc';
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
//$sql.= ' r.rang';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pd';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = pd.fk_propal AND r.parenttype = '".$this->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = pd.fk_propal AND r.parenttype = '".$this->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pd.fk_product = p.rowid';
|
||||
$sql.= ' WHERE pd.rowid = '.$rowid;
|
||||
$sql.= " AND r.fk_child = pd.rowid";
|
||||
$sql.= " AND r.childtype = '".$this->element."'";
|
||||
|
||||
//$sql.= " AND r.fk_child = pd.rowid";
|
||||
//$sql.= " AND r.childtype = '".$this->element."'";
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
@ -2331,9 +2347,9 @@ class PropaleLigne extends CommonObjectLine
|
||||
if ($resql)
|
||||
{
|
||||
$this->rowid=$this->db->last_insert_id(MAIN_DB_PREFIX.'propaldet');
|
||||
|
||||
|
||||
$this->addRangOfLine($this->fk_propal,'propal',$this->rowid,'propal',$this->rang);
|
||||
|
||||
|
||||
if (! $notrigger)
|
||||
{
|
||||
// Appel des triggers
|
||||
|
||||
@ -1233,16 +1233,21 @@ class Commande extends CommonObject
|
||||
$sql = 'SELECT l.rowid, l.fk_product, l.product_type, l.fk_commande, l.description, l.price, l.qty, l.tva_tx,';
|
||||
$sql.= ' l.localtax1_tx, l.localtax2_tx, l.fk_remise_except, l.remise_percent, l.subprice, l.marge_tx, l.marque_tx, l.info_bits,';
|
||||
$sql.= ' l.total_ht, l.total_ttc, l.total_tva, l.total_localtax1, l.total_localtax2, l.date_start, l.date_end,';
|
||||
$sql.= ' p.ref as product_ref, p.description as product_desc, p.fk_product_type, p.label,';
|
||||
$sql.= ' r.rang';
|
||||
$sql.= ' p.ref as product_ref, p.description as product_desc, p.fk_product_type, p.label';
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
//$sql.= ' r.rang';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as l';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = l.fk_commande AND r.parenttype = '".$this->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = l.fk_commande AND r.parenttype = '".$this->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON (p.rowid = l.fk_product)';
|
||||
$sql.= ' WHERE l.fk_commande = '.$this->id;
|
||||
$sql.= " AND r.fk_child = l.rowid";
|
||||
$sql.= " AND r.childtype = '".$this->element."'";
|
||||
//$sql.= " AND r.fk_child = l.rowid";
|
||||
//$sql.= " AND r.childtype = '".$this->element."'";
|
||||
if ($only_product) $sql .= ' AND p.fk_product_type = 0';
|
||||
$sql .= ' ORDER BY r.rang';
|
||||
//$sql .= ' ORDER BY r.rang';
|
||||
|
||||
dol_syslog("Commande::fetch_lines sql=".$sql,LOG_DEBUG);
|
||||
$result = $this->db->query($sql);
|
||||
@ -1477,7 +1482,7 @@ class Commande extends CommonObject
|
||||
if ($result > 0)
|
||||
{
|
||||
$result=$this->update_price();
|
||||
|
||||
|
||||
$this->delRangOfLine($lineid, $this->element);
|
||||
|
||||
if ($result > 0)
|
||||
@ -1992,7 +1997,7 @@ class Commande extends CommonObject
|
||||
dol_syslog("CustomerOrder::delete error", LOG_ERR);
|
||||
$err++;
|
||||
}
|
||||
|
||||
|
||||
// Delete all rang of lines
|
||||
$this->delAllRangOfLines();
|
||||
|
||||
@ -2420,15 +2425,21 @@ class Commande extends CommonObject
|
||||
$sql.= ' l.date_start,';
|
||||
$sql.= ' l.date_end,';
|
||||
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, ';
|
||||
$sql.= ' p.description as product_desc,';
|
||||
$sql.= ' r.rang';
|
||||
$sql.= ' p.description as product_desc';
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
//$sql.= ' r.rang';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as l';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = l.fk_commande AND r.parenttype = '".$this->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = l.fk_commande AND r.parenttype = '".$this->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product=p.rowid';
|
||||
$sql.= ' WHERE l.fk_commande = '.$this->id;
|
||||
$sql.= " AND r.fk_child = l.rowid";
|
||||
$sql.= " AND r.childtype = '".$this->element."'";
|
||||
//$sql.= " AND r.fk_child = l.rowid";
|
||||
//$sql.= " AND r.childtype = '".$this->element."'";
|
||||
$sql.= ' ORDER BY r.rang ASC, l.rowid';
|
||||
$sql.= ' ORDER BY l.rowid';
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
@ -2544,15 +2555,20 @@ class OrderLine extends CommonObjectLine
|
||||
$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,';
|
||||
$sql.= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc,';
|
||||
$sql.= ' cd.date_start, cd.date_end,';
|
||||
$sql.= ' r.rang';
|
||||
$sql.= ' cd.date_start, cd.date_end';
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
//$sql.= ' r.rang';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as cd';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = cd.fk_commande AND r.parenttype = '".$this->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = cd.fk_commande AND r.parenttype = '".$this->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON cd.fk_product = p.rowid';
|
||||
$sql.= ' WHERE cd.rowid = '.$rowid;
|
||||
$sql.= " AND r.fk_child = cd.rowid";
|
||||
$sql.= " AND r.childtype = '".$this->element."'";
|
||||
|
||||
//$sql.= " AND r.fk_child = cd.rowid";
|
||||
//$sql.= " AND r.childtype = '".$this->element."'";
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
@ -2699,7 +2715,7 @@ class OrderLine extends CommonObjectLine
|
||||
if ($resql)
|
||||
{
|
||||
$this->rowid=$this->db->last_insert_id(MAIN_DB_PREFIX.'commandedet');
|
||||
|
||||
|
||||
$this->addRangOfLine($this->fk_commande,'commande',$this->rowid,'commande',$this->rang);
|
||||
|
||||
if (! $notrigger)
|
||||
|
||||
@ -396,13 +396,19 @@ if ($id > 0 || ! empty($ref))
|
||||
$sql.= ' l.date_end,';
|
||||
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,';
|
||||
$sql.= ' p.description as product_desc';
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX."commandedet as l";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = l.fk_commande AND r.parenttype = '".$commande->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = l.fk_commande AND r.parenttype = '".$commande->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product=p.rowid';
|
||||
$sql.= " WHERE l.fk_commande = ".$commande->id;
|
||||
$sql.= " AND r.fk_child = l.rowid";
|
||||
$sql.= " AND r.childtype = '".$commande->element."'";
|
||||
$sql.= " ORDER BY r.rang, l.rowid";
|
||||
//$sql.= " AND r.fk_child = l.rowid";
|
||||
//$sql.= " AND r.childtype = '".$commande->element."'";
|
||||
//$sql.= " ORDER BY r.rang, l.rowid";
|
||||
$sql.=" ORDER BY l.rowid";
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
|
||||
@ -150,7 +150,7 @@ if ($_REQUEST['action'] == 'confirm_deleteproductline' && $_REQUEST['confirm'] =
|
||||
{
|
||||
// reorder lines
|
||||
$fac->line_order(true);
|
||||
|
||||
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang='';
|
||||
@ -1769,13 +1769,19 @@ if ($_GET['action'] == 'create')
|
||||
$sql = 'SELECT pt.rowid, pt.description, pt.fk_remise_except,';
|
||||
$sql.= ' pt.qty, pt.tva_tx, pt.remise_percent, pt.subprice, pt.product_type, pt.info_bits,';
|
||||
$sql.= ' p.label as product, p.ref, p.fk_product_type, p.rowid as prodid';
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pt';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = pt.fk_propal AND r.parenttype = '".$object->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = pt.fk_propal AND r.parenttype = '".$object->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product = p.rowid';
|
||||
$sql.= ' WHERE pt.fk_propal = '.$object->id;
|
||||
$sql.= " AND r.fk_child = pt.rowid";
|
||||
$sql.= " AND r.childtype = '".$object->element."'";
|
||||
$sql.= ' ORDER BY r.rang ASC, pt.rowid';
|
||||
//$sql.= " AND r.fk_child = pt.rowid";
|
||||
//$sql.= " AND r.childtype = '".$object->element."'";
|
||||
//$sql.= ' ORDER BY r.rang ASC, pt.rowid';
|
||||
$sql.=" ORDER BY pt.rowid";
|
||||
}
|
||||
// TODO deplacer dans la classe
|
||||
if ($_GET['origin'] == 'commande')
|
||||
@ -1786,13 +1792,19 @@ if ($_GET['action'] == 'create')
|
||||
$sql.= ' pt.qty, pt.tva_tx, pt.remise_percent, pt.subprice, pt.product_type, pt.info_bits,';
|
||||
$sql.= ' pt.date_start as date_debut_prevue, pt.date_end as date_fin_prevue,';
|
||||
$sql.= ' p.label as product, p.ref, p.fk_product_type, p.rowid as prodid';
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as pt';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = pt.fk_commande AND r.parenttype = '".$object->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = pt.fk_commande AND r.parenttype = '".$object->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product = p.rowid';
|
||||
$sql.= ' WHERE pt.fk_commande = '.$object->id;
|
||||
$sql.= " AND r.fk_child = pt.rowid";
|
||||
$sql.= " AND r.childtype = '".$object->element."'";
|
||||
$sql.= ' ORDER BY r.rang ASC, pt.rowid';
|
||||
//$sql.= " AND r.fk_child = pt.rowid";
|
||||
//$sql.= " AND r.childtype = '".$object->element."'";
|
||||
//$sql.= ' ORDER BY r.rang ASC, pt.rowid';
|
||||
$sql.=" ORDER BY pt.rowid";
|
||||
}
|
||||
// TODO deplacer dans la classe
|
||||
if ($_GET['origin'] == 'contrat')
|
||||
@ -2655,12 +2667,13 @@ else
|
||||
$sql.= ' p.ref as product_ref, p.fk_product_type, p.label as product_label,';
|
||||
$sql.= ' p.description as product_desc';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'facturedet as l';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = l.fk_facture AND r.parenttype = '".$fac->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = l.fk_facture AND r.parenttype = '".$fac->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product p ON l.fk_product=p.rowid';
|
||||
$sql.= ' WHERE l.fk_facture = '.$fac->id;
|
||||
$sql.= " AND r.fk_child = l.rowid";
|
||||
$sql.= " AND r.childtype = '".$fac->element."'";
|
||||
//$sql.= " AND r.fk_child = l.rowid";
|
||||
//$sql.= " AND r.childtype = '".$fac->element."'";
|
||||
$sql.= ' ORDER BY r.rang ASC, l.rowid';
|
||||
$sql.= " ORDER BY l.rowid";
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
|
||||
@ -674,15 +674,20 @@ class Facture extends CommonObject
|
||||
$sql.= ' l.localtax1_tx, l.localtax2_tx, l.remise, l.remise_percent, l.fk_remise_except, l.subprice,';
|
||||
$sql.= ' l.date_start as date_start, l.date_end as date_end,';
|
||||
$sql.= ' l.info_bits, l.total_ht, l.total_tva, l.total_localtax1, l.total_localtax2, l.total_ttc, l.fk_code_ventilation, l.fk_export_compta,';
|
||||
$sql.= ' p.ref as product_ref, p.fk_product_type as fk_product_type, p.label as label, p.description as product_desc,';
|
||||
$sql.= ' r.rang';
|
||||
$sql.= ' p.ref as product_ref, p.fk_product_type as fk_product_type, p.label as label, p.description as product_desc';
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
//$sql.= ' r.rang';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'facturedet as l';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = l.fk_facture AND r.parenttype = '".$this->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = l.fk_facture AND r.parenttype = '".$this->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product = p.rowid';
|
||||
$sql.= ' WHERE l.fk_facture = '.$this->id;
|
||||
$sql.= " AND r.fk_child = l.rowid";
|
||||
$sql.= " AND r.childtype = '".$this->element."'";
|
||||
$sql.= ' ORDER BY r.rang';
|
||||
//$sql.= " AND r.fk_child = l.rowid";
|
||||
//$sql.= " AND r.childtype = '".$this->element."'";
|
||||
//$sql.= ' ORDER BY r.rang';
|
||||
|
||||
dol_syslog('Facture::fetch_lines sql='.$sql, LOG_DEBUG);
|
||||
$result = $this->db->query($sql);
|
||||
@ -1028,7 +1033,7 @@ class Facture extends CommonObject
|
||||
{
|
||||
// Delete all rang of lines
|
||||
$this->delAllRangOfLines();
|
||||
|
||||
|
||||
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture WHERE rowid = '.$rowid;
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
@ -1041,7 +1046,7 @@ class Facture extends CommonObject
|
||||
$this->db->rollback();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// Appel des triggers
|
||||
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
|
||||
$interface=new Interfaces($this->db);
|
||||
@ -1896,7 +1901,7 @@ class Facture extends CommonObject
|
||||
}
|
||||
|
||||
$result=$this->update_price();
|
||||
|
||||
|
||||
$this->delRangOfLine($lineid, $this->element);
|
||||
|
||||
// Appel des triggers
|
||||
@ -2995,7 +3000,7 @@ class FactureLigne extends CommonObjectLine
|
||||
$sql.= ' WHERE fd.rowid = '.$rowid;
|
||||
$sql.= " AND r.fk_child = fd.rowid";
|
||||
$sql.= " AND r.childtype = '".$this->element."'";
|
||||
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
@ -3109,7 +3114,7 @@ class FactureLigne extends CommonObjectLine
|
||||
if ($resql)
|
||||
{
|
||||
$this->rowid=$this->db->last_insert_id(MAIN_DB_PREFIX.'facturedet');
|
||||
|
||||
|
||||
$this->addRangOfLine($this->fk_facture,'facture',$this->rowid,'facture',$this->rang);
|
||||
|
||||
// Si fk_remise_except defini, on lie la remise a la facture
|
||||
|
||||
@ -326,14 +326,20 @@ if ($id > 0 || ! empty($ref))
|
||||
$sql.= ' pt.product_type,';
|
||||
$sql.= ' p.rowid as prodid, p.label as product_label, p.ref, p.fk_product_type, ';
|
||||
$sql.= ' p.description as product_desc';
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pt';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = pt.fk_propal AND r.parenttype = '".$propal->element."'";
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = pt.fk_propal AND r.parenttype = '".$propal->element."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product=p.rowid';
|
||||
$sql.= ' WHERE pt.fk_propal = '.$propal->id;
|
||||
$sql.= " AND r.fk_child = pt.rowid";
|
||||
$sql.= " AND r.childtype = '".$propal->element."'";
|
||||
$sql.= ' ORDER BY r.rang ASC, pt.rowid';
|
||||
|
||||
//$sql.= " AND r.fk_child = pt.rowid";
|
||||
//$sql.= " AND r.childtype = '".$propal->element."'";
|
||||
//$sql.= ' ORDER BY r.rang ASC, pt.rowid';
|
||||
$sql.=" ORDER BY pt.rowid";
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
|
||||
@ -677,9 +677,19 @@ class CommonObject
|
||||
*/
|
||||
function line_order($renum=false)
|
||||
{
|
||||
$sql = 'SELECT count(rowid) FROM '.MAIN_DB_PREFIX.'element_rang';
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
if (! $this->table_element_line)
|
||||
{
|
||||
dol_syslog("CommonObject::line_order was called on objet with property table_element_line not defined",LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
if (! $this->fk_element)
|
||||
{
|
||||
dol_syslog("CommonObject::line_order was called on objet with property fk_element not defined",LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
|
||||
$sql = 'SELECT count(rowid) FROM '.MAIN_DB_PREFIX.$this->table_element_line;
|
||||
$sql.= ' WHERE '.$this->fk_element.'='.$this->id;
|
||||
if (! $renum) $sql.= ' AND rang = 0';
|
||||
if ($renum) $sql.= ' AND rang <> 0';
|
||||
$resql = $this->db->query($sql);
|
||||
@ -690,9 +700,8 @@ class CommonObject
|
||||
}
|
||||
if ($nl > 0)
|
||||
{
|
||||
$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'element_rang';
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.$this->table_element_line;
|
||||
$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
|
||||
$sql.= ' ORDER BY rang ASC, rowid ASC';
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
@ -708,7 +717,7 @@ class CommonObject
|
||||
}
|
||||
for ($i = 0 ; $i < sizeof($li) ; $i++)
|
||||
{
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'element_rang SET rang = '.($i+1);
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.($i+1);
|
||||
$sql.= ' WHERE rowid = '.$li[$i];
|
||||
if (!$this->db->query($sql) )
|
||||
{
|
||||
@ -750,62 +759,13 @@ class CommonObject
|
||||
// Update position of line
|
||||
$this->updateLineDown($rowid, $rang, $max);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add position of line (rang)
|
||||
*/
|
||||
function addRangOfLine($childid,$childtype,$rang=0)
|
||||
{
|
||||
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'element_rang (';
|
||||
$sql.= 'fk_parent, parenttype, fk_child, childtype, rang';
|
||||
$sql.= ') VALUES (';
|
||||
$sql.= $this->id.', "'.$this->element.'", '.$childid.', "'.$childtype.'", '.$rang;
|
||||
$sql.= ')';
|
||||
|
||||
if (! $this->db->query($sql) )
|
||||
{
|
||||
dol_print_error($this->db);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete position of line (rang)
|
||||
*/
|
||||
function delRangOfLine($childid,$childtype)
|
||||
{
|
||||
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'element_rang';
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
$sql.= ' AND fk_child = '.$childid;
|
||||
$sql.= ' AND childtype = "'.$childtype.'"';
|
||||
|
||||
if (! $this->db->query($sql) )
|
||||
{
|
||||
dol_print_error($this->db);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete all position of lines (rang)
|
||||
*/
|
||||
function delAllRangOfLines()
|
||||
{
|
||||
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'element_rang';
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
|
||||
if (! $this->db->query($sql) )
|
||||
{
|
||||
dol_print_error($this->db);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update position of line (rang)
|
||||
*/
|
||||
function updateRangOfLine($rowid,$rang)
|
||||
{
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'element_rang SET rang = '.$rang;
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.$rang;
|
||||
$sql.= ' WHERE rowid = '.$rowid;
|
||||
if (! $this->db->query($sql) )
|
||||
{
|
||||
@ -820,16 +780,13 @@ class CommonObject
|
||||
{
|
||||
if ($rang > 1 )
|
||||
{
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'element_rang SET rang = '.$rang ;
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.$rang ;
|
||||
$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
|
||||
$sql.= ' AND rang = '.($rang - 1);
|
||||
if ($this->db->query($sql) )
|
||||
{
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'element_rang SET rang = '.($rang - 1);
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
$sql.= ' AND fk_child = '.$rowid;
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.($rang - 1);
|
||||
$sql.= ' WHERE rowid = '.$rowid;
|
||||
if (! $this->db->query($sql) )
|
||||
{
|
||||
dol_print_error($this->db);
|
||||
@ -849,16 +806,13 @@ class CommonObject
|
||||
{
|
||||
if ($rang < $max)
|
||||
{
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'element_rang SET rang = '.$rang;
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
$sql.= ' AND rang = '.($rang + 1);
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.$rang;
|
||||
$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
|
||||
$sql.= ' AND rang = '.($rang+1);
|
||||
if ($this->db->query($sql) )
|
||||
{
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'element_rang SET rang = '.($rang + 1);
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
$sql.= ' AND fk_child = '.$rowid;
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.($rang+1);
|
||||
$sql.= ' WHERE rowid = '.$rowid;
|
||||
if (! $this->db->query($sql) )
|
||||
{
|
||||
dol_print_error($this->db);
|
||||
@ -877,10 +831,8 @@ class CommonObject
|
||||
*/
|
||||
function getRangOfLine($rowid)
|
||||
{
|
||||
$sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.'element_rang';
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
$sql.= ' AND fk_child = '.$rowid;
|
||||
$sql = 'SELECT rang FROM '.MAIN_DB_PREFIX.$this->table_element_line;
|
||||
$sql.= ' WHERE rowid ='.$rowid;
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -895,9 +847,8 @@ class CommonObject
|
||||
*/
|
||||
function getIdOfLine($rang)
|
||||
{
|
||||
$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'element_rang';
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.$this->table_element_line;
|
||||
$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
|
||||
$sql.= ' AND rang = '.$rang;
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
@ -913,9 +864,8 @@ class CommonObject
|
||||
*/
|
||||
function line_max()
|
||||
{
|
||||
$sql = 'SELECT max(rang) FROM '.MAIN_DB_PREFIX.'element_rang';
|
||||
$sql.= ' WHERE fk_parent = '.$this->id;
|
||||
$sql.= ' AND parenttype = "'.$this->element.'"';
|
||||
$sql = 'SELECT max(rang) FROM '.MAIN_DB_PREFIX.$this->table_element_line;
|
||||
$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
|
||||
@ -763,7 +763,8 @@ class Expedition extends CommonObject
|
||||
$sql.= " FROM (".MAIN_DB_PREFIX."expeditiondet as ed,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."commandedet as cd)"; // FIXME utiliser llx_element_element
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results.
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = cd.fk_product";
|
||||
|
||||
@ -394,12 +394,18 @@ if ($id > 0 || ! empty($ref))
|
||||
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,';
|
||||
$sql.= ' p.description as product_desc, p.fk_product_type as product_type';
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = cd.fk_commande AND r.parenttype = '".$commande->element."'";
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = cd.fk_commande AND r.parenttype = '".$commande->element."'";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON cd.fk_product = p.rowid";
|
||||
$sql.= " WHERE cd.fk_commande = ".$commande->id;
|
||||
$sql.= " AND r.fk_child = cd.rowid";
|
||||
$sql.= " AND r.childtype = '".$commande->element."'";
|
||||
$sql.= " ORDER BY r.rang, cd.rowid";
|
||||
//$sql.= " AND r.fk_child = cd.rowid";
|
||||
//$sql.= " AND r.childtype = '".$commande->element."'";
|
||||
//$sql.= " ORDER BY r.rang, cd.rowid";
|
||||
$sql.=" ORDER BY cd.rowid";
|
||||
|
||||
//print $sql;
|
||||
dol_syslog("commande.php sql=".$sql, LOG_DEBUG);
|
||||
|
||||
@ -300,8 +300,8 @@ if (GETPOST('action') && preg_match('/upgrade/i',GETPOST("action")))
|
||||
if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0)
|
||||
{
|
||||
//print $langs->trans("AlreadyDone");
|
||||
|
||||
migrate_element_rang($db,$langs,$conf);
|
||||
|
||||
//migrate_element_rang($db,$langs,$conf);
|
||||
|
||||
// Reload menus
|
||||
migrate_reload_menu($db,$langs,$conf,$versionto);
|
||||
@ -3065,9 +3065,9 @@ function migrate_element_rang($db,$langs,$conf)
|
||||
|
||||
print '<br>';
|
||||
print '<b>'.$langs->trans('MigrationElementRang')."</b><br>\n";
|
||||
|
||||
|
||||
$tables = array();
|
||||
|
||||
|
||||
// llx_propaldet
|
||||
$tables[] = array('name'=>'propaldet','element'=>'propal','fk_element'=>'fk_propal');
|
||||
// llx_commandedet
|
||||
@ -3088,26 +3088,26 @@ function migrate_element_rang($db,$langs,$conf)
|
||||
if ($obj)
|
||||
{
|
||||
$error = 0;
|
||||
|
||||
|
||||
$db->begin();
|
||||
|
||||
|
||||
$sql = "SELECT rowid, ".$table['fk_element'].", rang FROM ".MAIN_DB_PREFIX.$table['name'];
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$i = 0;
|
||||
$num = $db->num_rows($resql);
|
||||
|
||||
|
||||
if ($num)
|
||||
{
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."element_rang (fk_parent,parenttype,fk_child,childtype,rang)";
|
||||
$sql.= " VALUES (".$obj->$table['fk_element'].",'".$table['element']."',".$obj->rowid.",'".$table['element']."',".$obj->rang.")";
|
||||
$resql2=$db->query($sql);
|
||||
|
||||
|
||||
if (!$resql2)
|
||||
{
|
||||
$error++;
|
||||
@ -3117,13 +3117,14 @@ function migrate_element_rang($db,$langs,$conf)
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($error == 0)
|
||||
{
|
||||
$db->commit();
|
||||
$sql = "ALTER TABLE ".MAIN_DB_PREFIX.$table['name']." DROP COLUMN rang";
|
||||
print "<br>".$langs->trans('FieldMigrated',$table['name'])."<br>\n";
|
||||
$db->query($sql);
|
||||
// DDL sql order must not be done into the data migrate process
|
||||
//$sql = "ALTER TABLE ".MAIN_DB_PREFIX.$table['name']." DROP COLUMN rang";
|
||||
//print "<br>".$langs->trans('FieldMigrated',$table['name'])."<br>\n";
|
||||
//$db->query($sql);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -230,7 +230,7 @@ class Livraison extends CommonObject
|
||||
|
||||
$this->rang = 0; // TODO en attendant une gestion de la disposition
|
||||
$this->addRangOfLine($this->rowid,$this->element,$this->rang);
|
||||
|
||||
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
@ -550,7 +550,7 @@ class Livraison extends CommonObject
|
||||
if ($this->db->query($sql) )
|
||||
{
|
||||
$this->update_price();
|
||||
|
||||
|
||||
$this->delRangOfLine($lineid, $this->element);
|
||||
|
||||
return 1;
|
||||
@ -576,7 +576,7 @@ class Livraison extends CommonObject
|
||||
{
|
||||
// Delete all rang of lines
|
||||
$this->delAllRangOfLines();
|
||||
|
||||
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."element_element";
|
||||
$sql.= " WHERE fk_target = ".$this->id;
|
||||
$sql.= " AND targettype = '".$this->element."'";
|
||||
@ -585,7 +585,7 @@ class Livraison extends CommonObject
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."livraison";
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
if ( $this->db->query($sql) )
|
||||
{
|
||||
{
|
||||
$this->db->commit();
|
||||
|
||||
// On efface le repertoire de pdf provisoire
|
||||
@ -674,13 +674,18 @@ class Livraison extends CommonObject
|
||||
$sql.= " p.ref, p.fk_product_type as fk_product_type, p.label as label, p.description as product_desc";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd"; // TODO utiliser llx_element_element
|
||||
$sql.= ", ".MAIN_DB_PREFIX."livraisondet as ld";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ld.fk_livraison AND r.parenttype = '".$this->element."'";
|
||||
// FIXME: There is a bug when using a join with element_rang and
|
||||
// condition outside of left join. This give unpredicable results as this is not
|
||||
// a valid SQL syntax .
|
||||
// $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ed.fk_expedition AND r.parenttype = '".$this->element."'";
|
||||
// Getting a "sort order" must be done outside of the request to get values
|
||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_rang as r ON r.fk_parent = ld.fk_livraison AND r.parenttype = '".$this->element."'";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on p.rowid = ld.fk_product";
|
||||
$sql.= " WHERE ld.fk_origin_line = cd.rowid";
|
||||
$sql.= " AND ld.fk_livraison = ".$this->id;
|
||||
$sql.= " AND r.fk_child = ld.rowid";
|
||||
$sql.= " AND r.childtype = '".$this->element."'";
|
||||
$sql.= " ORDER by r.rang";
|
||||
//$sql.= " AND r.fk_child = ld.rowid";
|
||||
//$sql.= " AND r.childtype = '".$this->element."'";
|
||||
//$sql.= " ORDER by r.rang";
|
||||
|
||||
dol_syslog("Livraison::fetch_lignes sql=".$sql);
|
||||
$resql = $this->db->query($sql);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user