';
-
- print ' ';
- print ''.$langs->trans('MigrationElementRang')." \n";
-
- $tables = array();
-
- // llx_propaldet
- $tables[] = array('name'=>'propaldet','element'=>'propal','fk_element'=>'fk_propal');
- // llx_commandedet
- $tables[] = array('name'=>'commandedet','element'=>'commande','fk_element'=>'fk_commande');
- //llx_facturedet
- $tables[] = array('name'=>'facturedet','element'=>'facture','fk_element'=>'fk_facture');
- //llx_expeditiondet
- $tables[] = array('name'=>'expeditiondet','element'=>'shipping','fk_element'=>'fk_expedition');
- //llx_livraisondet
- $tables[] = array('name'=>'livraisondet','element'=>'delivery','fk_element'=>'fk_livraison');
- //llx_projet_task
- //$tables[] = array('name'=>'projet_task','element'=>'project_task','fk_element'=>'fk_projet');
-
- foreach($tables as $table)
- {
- $result = $db->DDLDescTable(MAIN_DB_PREFIX.$table['name'],"rang");
- $obj = $db->fetch_object($result);
- 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++;
- dol_print_error($db);
- }
- print ". ";
- $i++;
- }
- }
-
- if ($error == 0)
- {
- $db->commit();
- // DDL sql order must not be done into the data migrate process
- //$sql = "ALTER TABLE ".MAIN_DB_PREFIX.$table['name']." DROP COLUMN rang";
- //print " ".$langs->trans('FieldMigrated',$table['name'])." \n";
- //$db->query($sql);
- }
- else
- {
- $db->rollback();
- }
- }
- else
- {
- dol_print_error($db);
- $db->rollback();
- }
- }
- else
- {
- print $langs->trans('AlreadyDone')." \n";
- }
- }
-
- print ' |
';
-}
-
/**
* Migration directory
diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php
index 56fafb232a4..3020f2cc3e5 100644
--- a/htdocs/livraison/class/livraison.class.php
+++ b/htdocs/livraison/class/livraison.class.php
@@ -224,18 +224,14 @@ class Livraison extends CommonObject
$sql.= $qty.")";
dol_syslog("Livraison::create_line sql=".$sql, LOG_DEBUG);
- if ($this->db->query($sql))
+ if (! $this->db->query($sql) )
{
- $this->rowid=$this->db->last_insert_id(MAIN_DB_PREFIX.'livraisondet');
-
- $this->rang = 0; // TODO en attendant une gestion de la disposition
- $this->addRangOfLine($this->rowid,$this->element,$this->rang);
-
- return 1;
+ $error++;
}
- else
+
+ if ($error == 0 )
{
- return -1;
+ return 1;
}
}
@@ -540,19 +536,17 @@ class Livraison extends CommonObject
*
*
*/
- function delete_line($lineid)
+ function delete_line($idligne)
{
if ($this->statut == 0)
{
$sql = "DELETE FROM ".MAIN_DB_PREFIX."commandedet";
- $sql.= " WHERE rowid = ".$lineid;
+ $sql.= " WHERE rowid = ".$idligne;
if ($this->db->query($sql) )
{
$this->update_price();
- $this->delRangOfLine($lineid, $this->element);
-
return 1;
}
else
@@ -574,9 +568,6 @@ class Livraison extends CommonObject
$sql.= " WHERE fk_livraison = ".$this->id;
if ( $this->db->query($sql) )
{
- // 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."'";
@@ -672,20 +663,10 @@ class Livraison extends CommonObject
$sql = "SELECT ld.rowid, ld.fk_product, ld.description, ld.subprice, ld.total_ht, ld.qty as qty_shipped,";
$sql.= " cd.qty as qty_asked,";
$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";
- // 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.= " FROM ".MAIN_DB_PREFIX."commandedet as cd, ".MAIN_DB_PREFIX."livraisondet as ld";
$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";
dol_syslog("Livraison::fetch_lignes sql=".$sql);
$resql = $this->db->query($sql);