mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-02-20 13:46:52 +01:00
Merge branch '19.0' of git@github.com:Dolibarr/dolibarr.git into 20.0
This commit is contained in:
commit
6ed8a0b65b
|
|
@ -461,6 +461,12 @@ if ($filtert > 0 || $usergroup > 0) {
|
|||
if ($usergroup > 0) {
|
||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."usergroup_user as ugu ON ugu.fk_user = ar.fk_element";
|
||||
}
|
||||
|
||||
// Add table from hooks
|
||||
$parameters = array();
|
||||
$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||
$sql .= $hookmanager->resPrint;
|
||||
|
||||
$sql .= " WHERE a.entity IN (".getEntity('agenda').")";
|
||||
// Condition on actioncode
|
||||
if (!empty($actioncode)) {
|
||||
|
|
|
|||
|
|
@ -2496,6 +2496,9 @@ class Facture extends CommonInvoice
|
|||
if (isset($this->retained_warranty)) {
|
||||
$this->retained_warranty = (float) $this->retained_warranty;
|
||||
}
|
||||
if (!isset($this->fk_user_author) && isset($this->user_author) ) {
|
||||
$this->fk_user_author = $this->user_author;
|
||||
}
|
||||
|
||||
|
||||
// Check parameters
|
||||
|
|
@ -2524,6 +2527,7 @@ class Facture extends CommonInvoice
|
|||
$sql .= " total_ttc=".(isset($this->total_ttc) ? (float) $this->total_ttc : "null").",";
|
||||
$sql .= " revenuestamp=".((isset($this->revenuestamp) && $this->revenuestamp != '') ? (float) $this->revenuestamp : "null").",";
|
||||
$sql .= " fk_statut=".(isset($this->status) ? (int) $this->status : "null").",";
|
||||
$sql .= " fk_user_author=".(isset($this->fk_user_author) ? ((int) $this->fk_user_author) : "null").",";
|
||||
$sql .= " fk_user_valid=".(isset($this->fk_user_valid) ? (int) $this->fk_user_valid : "null").",";
|
||||
$sql .= " fk_facture_source=".(isset($this->fk_facture_source) ? (int) $this->fk_facture_source : "null").",";
|
||||
$sql .= " fk_projet=".(isset($this->fk_project) ? (int) $this->fk_project : "null").",";
|
||||
|
|
|
|||
|
|
@ -773,13 +773,16 @@ if ($object->id > 0 || !empty($object->ref)) {
|
|||
print '</td>'; // Dispatch column
|
||||
print '<td></td>'; // Warehouse column
|
||||
|
||||
$sql = "SELECT ed.rowid, ed.qty, ed.fk_entrepot,";
|
||||
$sql .= " eb.batch, eb.eatby, eb.sellby, cd.fk_product";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed";
|
||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."expeditiondet_batch as eb on ed.rowid = eb.fk_expeditiondet";
|
||||
$sql .= " JOIN ".MAIN_DB_PREFIX."commandedet as cd on ed.fk_elementdet = cd.rowid";
|
||||
$sql .= " WHERE ed.fk_elementdet =".(int) $objp->rowid;
|
||||
$sql .= " AND ed.fk_expedition =".(int) $object->id;
|
||||
$sql = "SELECT ed.rowid";
|
||||
$sql .= ", cd.fk_product";
|
||||
$sql .= ", ".$db->ifsql('eb.rowid IS NULL', 'ed.qty', 'eb.qty')." as qty";
|
||||
$sql .= ", ed.fk_entrepot";
|
||||
$sql .= ", eb.batch, eb.eatby, eb.sellby";
|
||||
$sql .= " FROM ".$db->prefix()."expeditiondet as ed";
|
||||
$sql .= " LEFT JOIN ".$db->prefix()."expeditiondet_batch as eb on ed.rowid = eb.fk_expeditiondet";
|
||||
$sql .= " INNER JOIN ".$db->prefix()."commandedet as cd on ed.fk_origin_line = cd.rowid";
|
||||
$sql .= " WHERE ed.fk_origin_line = ".(int) $objp->rowid;
|
||||
$sql .= " AND ed.fk_expedition = ".(int) $object->id;
|
||||
$sql .= " ORDER BY ed.rowid, ed.fk_elementdet";
|
||||
|
||||
$resultsql = $db->query($sql);
|
||||
|
|
|
|||
|
|
@ -722,6 +722,7 @@ if (empty($reshook)) {
|
|||
unset($_POST['date_end_fill']);
|
||||
unset($_POST['situations']);
|
||||
unset($_POST['progress']);
|
||||
unset($_POST['fourn_ref']);
|
||||
} else {
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
|
|
@ -864,6 +865,7 @@ if (empty($reshook)) {
|
|||
unset($_POST['date_endyear']);
|
||||
unset($_POST['situations']);
|
||||
unset($_POST['progress']);
|
||||
unset($_POST['fourn_ref']);
|
||||
} else {
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5198,8 +5198,6 @@ class Product extends CommonObject
|
|||
*/
|
||||
public function getChildsArbo($id, $firstlevelonly = 0, $level = 1, $parents = array())
|
||||
{
|
||||
global $alreadyfound;
|
||||
|
||||
if (empty($id)) {
|
||||
return array();
|
||||
}
|
||||
|
|
@ -5216,9 +5214,6 @@ class Product extends CommonObject
|
|||
|
||||
dol_syslog(get_class($this).'::getChildsArbo id='.$id.' level='.$level. ' parents='.(is_array($parents) ? implode(',', $parents) : $parents), LOG_DEBUG);
|
||||
|
||||
if ($level == 1) {
|
||||
$alreadyfound = array($id => 1); // We init array of found object to start of tree, so if we found it later (should not happened), we stop immediately
|
||||
}
|
||||
// Protection against infinite loop
|
||||
if ($level > 30) {
|
||||
return array();
|
||||
|
|
@ -5227,14 +5222,16 @@ class Product extends CommonObject
|
|||
$res = $this->db->query($sql);
|
||||
if ($res) {
|
||||
$prods = array();
|
||||
if ($this->db->num_rows($res) > 0) {
|
||||
$parents[] = $id;
|
||||
}
|
||||
|
||||
while ($rec = $this->db->fetch_array($res)) {
|
||||
if (!empty($alreadyfound[$rec['rowid']])) {
|
||||
if (in_array($rec['id'], $parents)) {
|
||||
dol_syslog(get_class($this).'::getChildsArbo the product id='.$rec['rowid'].' was already found at a higher level in tree. We discard to avoid infinite loop', LOG_WARNING);
|
||||
if (in_array($rec['id'], $parents)) {
|
||||
continue; // We discard this child if it is already found at a higher level in tree in the same branch.
|
||||
}
|
||||
continue; // We discard this child if it is already found at a higher level in tree in the same branch.
|
||||
}
|
||||
$alreadyfound[$rec['rowid']] = 1;
|
||||
|
||||
$prods[$rec['rowid']] = array(
|
||||
0 => $rec['rowid'],
|
||||
1 => $rec['qty'],
|
||||
|
|
@ -5248,7 +5245,6 @@ class Product extends CommonObject
|
|||
//$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty'],2=>$rec['fk_product_type']);
|
||||
//$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty']);
|
||||
if (empty($firstlevelonly)) {
|
||||
$parents[] = $rec['rowid'];
|
||||
$listofchilds = $this->getChildsArbo($rec['rowid'], 0, $level + 1, $parents);
|
||||
foreach ($listofchilds as $keyChild => $valueChild) {
|
||||
$prods[$rec['rowid']]['childs'][$keyChild] = $valueChild;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user