Merge remote-tracking branch 'origin/3.5' into 3.6
Conflicts: htdocs/fourn/class/fournisseur.commande.class.php
This commit is contained in:
commit
71ee974ddb
@ -110,6 +110,7 @@ removed. You must now use the 6 parameters way. See file modMyModule.class.php f
|
||||
|
||||
|
||||
***** ChangeLog for 3.5.4 compared to 3.5.3 *****
|
||||
Fix: When using option MAIN_MAIL_ALLOW_SENDMAIL_F, a mail was sent to sender.
|
||||
Fix: Question about warehouse must not be done when module stock is disabled.
|
||||
Fix: Option STOCK_SUPPORTS_SERVICES was not correctly implemented
|
||||
(missing test at some places).
|
||||
@ -143,8 +144,12 @@ Fix: If multiprice level is used the VAT on addline is not correct
|
||||
Fix: [ bug #1254 ] Error when using "Enter" on qty input box of a product (on supplier order part)
|
||||
Fix: [ bug #1462, 1468, 1480, 1483, 1490, 1497] $this instead of $object
|
||||
Fix: [ bug #1455 ] outstanding amount
|
||||
Fix: [ bug #1425 ]
|
||||
Fix: [ bug #1425 ] LINEBILL_SUPPLIER_DELETE failure trigger leads to an endless loop
|
||||
Fix: [ bug #1460 ] Several supplier order triggers do not show error messages
|
||||
Fix: [ bug #1461 ] LINEORDER_SUPPLIER_CREATE does not intercept supplier order line insertion
|
||||
Fix: [ bug #1484 ] BILL_SUPPLIER_PAYED trigger action does not intercept failure under some circumstances
|
||||
Fix: [ bug #1482 ] Several supplier invoice triggers do not show trigger error messages
|
||||
Fix: [ bug #1486 ] LINEBILL_SUPPLIER_CREATE and LINEBILL_SUPPLIER_UPDATE triggers do not intercept trigger action
|
||||
|
||||
***** ChangeLog for 3.5.3 compared to 3.5.2 *****
|
||||
Fix: Error on field accountancy code for export profile of invoices.
|
||||
|
||||
@ -873,7 +873,8 @@ if ($rowid)
|
||||
$name = $object->getFullName($langs);
|
||||
if (! empty($name))
|
||||
{
|
||||
if ($object->societe) $name.=' ('.$object->societe.')';
|
||||
if ($object->morphy == 'mor' && ! empty($object->societe)) $name=$object->societe.' ('.$name.')';
|
||||
else if ($object->societe) $name.=' ('.$object->societe.')';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -405,7 +405,7 @@ class CMailFile
|
||||
// le return-path dans les header ne fonctionne pas avec tous les MTA
|
||||
// Le passage par -f est donc possible si la constante MAIN_MAIL_ALLOW_SENDMAIL_F est definie.
|
||||
// La variable definie pose des pb avec certains sendmail securisee (option -f refusee car dangereuse)
|
||||
$bounce .= ($bounce?' ':'').(! empty($conf->global->MAIN_MAIL_ERRORS_TO) ? '-f' . $conf->global->MAIN_MAIL_ERRORS_TO : ($this->addr_from != '' ? '-f' . $this->addr_from : '') );
|
||||
$bounce .= ($bounce?' ':'').(! empty($conf->global->MAIN_MAIL_ERRORS_TO) ? '-f' . $this->getValidAddress($conf->global->MAIN_MAIL_ERRORS_TO,2) : ($this->addr_from != '' ? '-f' . $this->getValidAddress($this->addr_from,2) : '') );
|
||||
}
|
||||
if (! empty($conf->global->MAIN_MAIL_SENDMAIL_FORCE_BA)) // To force usage of -ba option. This option tells sendmail to read From: or Sender: to setup sender
|
||||
{
|
||||
|
||||
@ -257,10 +257,30 @@ class InterfaceDemo
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'ORDER_SUPPLIER_CLONE')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'ORDER_SUPPLIER_VALIDATE')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'ORDER_SUPPLIER_DELETE')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'ORDER_SUPPLIER_APPROVE')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'ORDER_SUPPLIER_REFUSE')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'ORDER_SUPPLIER_CANCEL')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'ORDER_SUPPLIER_SENTBYMAIL')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
@ -415,6 +435,28 @@ class InterfaceDemo
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
|
||||
//Supplier Bill
|
||||
elseif ($action == 'BILL_SUPPLIER_CREATE')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'BILL_SUPPLIER_DELETE')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'BILL_SUPPLIER_PAYED')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'BILL_SUPPLIER_UNPAYED')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'BILL_SUPPLIER_VALIDATE')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
elseif ($action == 'LINEBILL_SUPPLIER_CREATE')
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
@ -427,7 +469,7 @@ class InterfaceDemo
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
|
||||
}
|
||||
|
||||
|
||||
// Payments
|
||||
elseif ($action == 'PAYMENT_CUSTOMER_CREATE')
|
||||
{
|
||||
|
||||
@ -393,7 +393,13 @@ class CommandeFournisseur extends CommonOrder
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('ORDER_SUPPLIER_VALIDATE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
$this->errors=$interface->errors;
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
// Fin appel triggers
|
||||
}
|
||||
|
||||
@ -404,9 +410,9 @@ class CommandeFournisseur extends CommonOrder
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
|
||||
$this->db->rollback();
|
||||
$this->error=$this->db->lasterror();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -666,7 +672,6 @@ class CommandeFournisseur extends CommonOrder
|
||||
else
|
||||
{
|
||||
$this->db->rollback();
|
||||
$this->error=$this->db->lasterror();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -701,6 +706,8 @@ class CommandeFournisseur extends CommonOrder
|
||||
$result = 0;
|
||||
if ($user->rights->fournisseur->commande->approuver)
|
||||
{
|
||||
$this->db->begin();
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur SET fk_statut = 9";
|
||||
$sql .= " WHERE rowid = ".$this->id;
|
||||
|
||||
@ -715,12 +722,19 @@ class CommandeFournisseur extends CommonOrder
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('ORDER_SUPPLIER_REFUSE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
$this->errors=$interface->errors;
|
||||
$this->db->rollback();
|
||||
}
|
||||
// Fin appel triggers
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->rollback();
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::refuse Error -1");
|
||||
$result = -1;
|
||||
}
|
||||
@ -777,7 +791,6 @@ class CommandeFournisseur extends CommonOrder
|
||||
else
|
||||
{
|
||||
$this->db->rollback();
|
||||
$this->error=$this->db->lasterror();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -961,7 +974,13 @@ class CommandeFournisseur extends CommonOrder
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('ORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
$this->errors=$interface->errors;
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
// Fin appel triggers
|
||||
}
|
||||
|
||||
@ -1212,7 +1231,13 @@ class CommandeFournisseur extends CommonOrder
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('LINEORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
$this->errors=$interface->errors;
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
// Fin appel triggers
|
||||
}
|
||||
|
||||
@ -1280,7 +1305,13 @@ class CommandeFournisseur extends CommonOrder
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('LINEORDER_SUPPLIER_DISPATCH',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
$this->errors=$interface->errors;
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
// Fin appel triggers
|
||||
}
|
||||
|
||||
@ -1310,6 +1341,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: Check if there is a current transaction in DB but seems not.
|
||||
if ($error == 0)
|
||||
{
|
||||
$this->db->commit();
|
||||
@ -1333,18 +1365,15 @@ class CommandeFournisseur extends CommonOrder
|
||||
*
|
||||
* @param int $idline Id of line to delete
|
||||
* @param int $notrigger 1=Disable call to triggers
|
||||
* @return 0 if Ok, <0 ik Ko
|
||||
* @return >=0 if OK, <0 if KO
|
||||
*/
|
||||
function deleteline($idline, $notrigger=0)
|
||||
{
|
||||
if ($this->statut == 0)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE rowid = ".$idline;
|
||||
$resql=$this->db->query($sql);
|
||||
$this->db->begin();
|
||||
|
||||
dol_syslog(get_class($this)."::deleteline sql=".$sql);
|
||||
|
||||
if (!$notrigger && $resql)
|
||||
if (! $notrigger)
|
||||
{
|
||||
// Appel des triggers
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
@ -1357,14 +1386,29 @@ class CommandeFournisseur extends CommonOrder
|
||||
// Fin appel triggers
|
||||
}
|
||||
|
||||
if ($resql)
|
||||
if (! $error)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE rowid = ".$idline;
|
||||
$resql=$this->db->query($sql);
|
||||
|
||||
dol_syslog(get_class($this)."::deleteline sql=".$sql);
|
||||
if (! $resql)
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$result=$this->update_price();
|
||||
|
||||
$this->db->commit();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->error();
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -1402,11 +1446,13 @@ class CommandeFournisseur extends CommonOrder
|
||||
{
|
||||
if ($this->db->affected_rows($resql) < 1)
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
$error++;
|
||||
}
|
||||
|
||||
@ -1469,7 +1515,6 @@ class CommandeFournisseur extends CommonOrder
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::delete ".$this->error, LOG_ERR);
|
||||
$this->db->rollback();
|
||||
return -$error;
|
||||
@ -1670,7 +1715,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
|
||||
//TODO: Add trigger for status modification
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1794,7 +1839,13 @@ class CommandeFournisseur extends CommonOrder
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('LINEORDER_SUPPLIER_UPDATE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
$this->errors=$interface->errors;
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
// Fin appel triggers
|
||||
}
|
||||
|
||||
|
||||
@ -676,7 +676,10 @@ class FactureFournisseur extends CommonInvoice
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('BILL_SUPPLIER_DELETE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) {
|
||||
$error++; $this->errors=$interface->errors;
|
||||
$error++;
|
||||
$this->errors=$interface->errors;
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
// Fin appel triggers
|
||||
}
|
||||
@ -1129,7 +1132,13 @@ class FactureFournisseur extends CommonInvoice
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('LINEBILL_SUPPLIER_CREATE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
$this->errors=$interface->errors;
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
// Fin appel triggers
|
||||
}
|
||||
|
||||
@ -1219,6 +1228,8 @@ class FactureFournisseur extends CommonInvoice
|
||||
$product_type = $type;
|
||||
}
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det SET";
|
||||
$sql.= " description ='".$this->db->escape($desc)."'";
|
||||
$sql.= ", pu_ht = ".price2num($pu_ht);
|
||||
@ -1254,17 +1265,26 @@ class FactureFournisseur extends CommonInvoice
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('LINEBILL_SUPPLIER_UPDATE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
$this->errors=$interface->errors;
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
// Fin appel triggers
|
||||
}
|
||||
|
||||
// Update total price into invoice record
|
||||
$result=$this->update_price('','auto');
|
||||
|
||||
$this->db->commit();
|
||||
|
||||
return $result;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->rollback();
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::updateline error=".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
|
||||
@ -939,7 +939,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G
|
||||
|
||||
if ($error)
|
||||
{
|
||||
dol_print_error($db);
|
||||
setEventMessage($object->error, 'errors');
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1065,6 +1065,7 @@ if ($action=="create")
|
||||
print_fiche_titre($langs->trans('NewOrder'));
|
||||
|
||||
dol_htmloutput_mesg($mesg);
|
||||
dol_htmloutput_events();
|
||||
|
||||
$societe='';
|
||||
if ($socid>0)
|
||||
|
||||
@ -190,6 +190,10 @@ elseif ($action == 'confirm_paid' && $confirm == 'yes' && $user->rights->fournis
|
||||
{
|
||||
$object->fetch($id);
|
||||
$result=$object->set_paid($user);
|
||||
if ($result<0)
|
||||
{
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
|
||||
// Set supplier ref
|
||||
@ -518,6 +522,10 @@ elseif ($action == 'update_line' && $user->rights->fournisseur->facture->creer)
|
||||
{
|
||||
unset($_POST['label']);
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1107,6 +1115,7 @@ if ($action == 'create')
|
||||
print_fiche_titre($langs->trans('NewBill'));
|
||||
|
||||
dol_htmloutput_mesg($mesg);
|
||||
dol_htmloutput_events();
|
||||
|
||||
$societe='';
|
||||
if ($_GET['socid'])
|
||||
|
||||
@ -61,8 +61,8 @@ if(empty($year)) {
|
||||
}
|
||||
|
||||
$sql = "SELECT cp.rowid, cp.fk_user, cp.date_debut, cp.date_fin, cp.halfday";
|
||||
$sql.= " FROM llx_holiday cp";
|
||||
$sql.= " LEFT JOIN llx_user u ON cp.fk_user = u.rowid";
|
||||
$sql.= " FROM " . MAIN_DB_PREFIX . "holiday cp";
|
||||
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "user u ON cp.fk_user = u.rowid";
|
||||
$sql.= " WHERE cp.statut = 3"; // Approved
|
||||
// TODO Use BETWEEN instead of date_format
|
||||
$sql.= " AND (date_format(cp.date_debut, '%Y-%c') = '$year-$month' OR date_format(cp.date_fin, '%Y-%c') = '$year-$month')";
|
||||
|
||||
@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.commande.class.php';
|
||||
function dispatched($order_id)
|
||||
{
|
||||
global $db;
|
||||
$sql = 'SELECT fk_product, SUM(qty) from llx_commande_fournisseur_dispatch';
|
||||
$sql = 'SELECT fk_product, SUM(qty) FROM ' . MAIN_DB_PREFIX . 'commande_fournisseur_dispatch';
|
||||
$sql .= ' WHERE fk_commande = ' . $order_id . ' GROUP BY fk_product';
|
||||
$sql .= ' ORDER by fk_product';
|
||||
$resql = $db->query($sql);
|
||||
@ -44,7 +44,7 @@ function dispatched($order_id)
|
||||
while($res = $db->fetch_object($resql))
|
||||
$dispatched[] = $res;
|
||||
}
|
||||
$sql = 'SELECT fk_product, SUM(qty) from llx_commande_fournisseurdet';
|
||||
$sql = 'SELECT fk_product, SUM(qty) FROM ' . MAIN_DB_PREFIX . 'commande_fournisseurdet';
|
||||
$sql .= ' WHERE fk_commande = ' . $order_id . ' GROUP BY fk_product';
|
||||
$sql .= ' ORDER by fk_product';
|
||||
$resql = $db->query($sql);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user