Merge branch '8.0' of git@github.com:Dolibarr/dolibarr.git into 9.0
Conflicts: htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
This commit is contained in:
commit
754ed1b93b
@ -114,8 +114,8 @@ class InterfaceWorkflowManager extends DolibarrTriggers
|
|||||||
if ($element->statut == Propal::STATUS_SIGNED || $element->statut == Propal::STATUS_BILLED) $totalonlinkedelements += $element->total_ht;
|
if ($element->statut == Propal::STATUS_SIGNED || $element->statut == Propal::STATUS_BILLED) $totalonlinkedelements += $element->total_ht;
|
||||||
}
|
}
|
||||||
dol_syslog( "Amount of linked proposals = ".$totalonlinkedelements.", of order = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
dol_syslog( "Amount of linked proposals = ".$totalonlinkedelements.", of order = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
||||||
if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) )
|
if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht))
|
||||||
{
|
{
|
||||||
foreach($object->linkedObjects['propal'] as $element)
|
foreach($object->linkedObjects['propal'] as $element)
|
||||||
{
|
{
|
||||||
$ret=$element->classifyBilled($user);
|
$ret=$element->classifyBilled($user);
|
||||||
@ -143,7 +143,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers
|
|||||||
if ($element->statut == Commande::STATUS_VALIDATED || $element->statut == Commande::STATUS_SHIPMENTONPROCESS || $element->statut == Commande::STATUS_CLOSED) $totalonlinkedelements += $element->total_ht;
|
if ($element->statut == Commande::STATUS_VALIDATED || $element->statut == Commande::STATUS_SHIPMENTONPROCESS || $element->statut == Commande::STATUS_CLOSED) $totalonlinkedelements += $element->total_ht;
|
||||||
}
|
}
|
||||||
dol_syslog( "Amount of linked orders = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
dol_syslog( "Amount of linked orders = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
||||||
if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) )
|
if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht))
|
||||||
{
|
{
|
||||||
foreach($object->linkedObjects['commande'] as $element)
|
foreach($object->linkedObjects['commande'] as $element)
|
||||||
{
|
{
|
||||||
@ -166,8 +166,8 @@ class InterfaceWorkflowManager extends DolibarrTriggers
|
|||||||
if ($element->statut == Propal::STATUS_SIGNED || $element->statut == Propal::STATUS_BILLED) $totalonlinkedelements += $element->total_ht;
|
if ($element->statut == Propal::STATUS_SIGNED || $element->statut == Propal::STATUS_BILLED) $totalonlinkedelements += $element->total_ht;
|
||||||
}
|
}
|
||||||
dol_syslog( "Amount of linked proposals = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
dol_syslog( "Amount of linked proposals = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
||||||
if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) )
|
if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht))
|
||||||
{
|
{
|
||||||
foreach($object->linkedObjects['propal'] as $element)
|
foreach($object->linkedObjects['propal'] as $element)
|
||||||
{
|
{
|
||||||
$ret=$element->classifyBilled($user);
|
$ret=$element->classifyBilled($user);
|
||||||
@ -195,8 +195,8 @@ class InterfaceWorkflowManager extends DolibarrTriggers
|
|||||||
if ($element->statut == CommandeFournisseur::STATUS_ACCEPTED || $element->statut == CommandeFournisseur::STATUS_ORDERSENT || $element->statut == CommandeFournisseur::STATUS_RECEIVED_PARTIALLY || $element->statut == CommandeFournisseur::STATUS_RECEIVED_COMPLETELY) $totalonlinkedelements += $element->total_ht;
|
if ($element->statut == CommandeFournisseur::STATUS_ACCEPTED || $element->statut == CommandeFournisseur::STATUS_ORDERSENT || $element->statut == CommandeFournisseur::STATUS_RECEIVED_PARTIALLY || $element->statut == CommandeFournisseur::STATUS_RECEIVED_COMPLETELY) $totalonlinkedelements += $element->total_ht;
|
||||||
}
|
}
|
||||||
dol_syslog( "Amount of linked orders = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
dol_syslog( "Amount of linked orders = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
||||||
if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) )
|
if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht))
|
||||||
{
|
{
|
||||||
foreach($object->linkedObjects['order_supplier'] as $element)
|
foreach($object->linkedObjects['order_supplier'] as $element)
|
||||||
{
|
{
|
||||||
$ret=$element->classifyBilled($user);
|
$ret=$element->classifyBilled($user);
|
||||||
@ -218,8 +218,8 @@ class InterfaceWorkflowManager extends DolibarrTriggers
|
|||||||
if ($element->statut == SupplierProposal::STATUS_SIGNED || $element->statut == SupplierProposal::STATUS_BILLED) $totalonlinkedelements += $element->total_ht;
|
if ($element->statut == SupplierProposal::STATUS_SIGNED || $element->statut == SupplierProposal::STATUS_BILLED) $totalonlinkedelements += $element->total_ht;
|
||||||
}
|
}
|
||||||
dol_syslog( "Amount of linked supplier proposals = ".$totalonlinkedelements.", of supplier invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
dol_syslog( "Amount of linked supplier proposals = ".$totalonlinkedelements.", of supplier invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
||||||
if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) )
|
if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht))
|
||||||
{
|
{
|
||||||
foreach($object->linkedObjects['supplier_proposal'] as $element)
|
foreach($object->linkedObjects['supplier_proposal'] as $element)
|
||||||
{
|
{
|
||||||
$ret=$element->classifyBilled($user);
|
$ret=$element->classifyBilled($user);
|
||||||
@ -246,7 +246,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers
|
|||||||
if ($element->statut == Commande::STATUS_VALIDATED || $element->statut == Commande::STATUS_SHIPMENTONPROCESS || $element->statut == Commande::STATUS_CLOSED) $totalonlinkedelements += $element->total_ht;
|
if ($element->statut == Commande::STATUS_VALIDATED || $element->statut == Commande::STATUS_SHIPMENTONPROCESS || $element->statut == Commande::STATUS_CLOSED) $totalonlinkedelements += $element->total_ht;
|
||||||
}
|
}
|
||||||
dol_syslog( "Amount of linked orders = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
dol_syslog( "Amount of linked orders = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) );
|
||||||
if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) )
|
if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht))
|
||||||
{
|
{
|
||||||
foreach($object->linkedObjects['commande'] as $element)
|
foreach($object->linkedObjects['commande'] as $element)
|
||||||
{
|
{
|
||||||
@ -318,4 +318,24 @@ class InterfaceWorkflowManager extends DolibarrTriggers
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Object $conf Dolibarr settings object
|
||||||
|
* @param float $totalonlinkedelements Sum of total amounts (excl VAT) of
|
||||||
|
* invoices linked to $object
|
||||||
|
* @param float $object_total_ht The total amount (excl VAT) of the object
|
||||||
|
* (an order, a proposal, a bill, etc.)
|
||||||
|
* @return bool True if the amounts are equal (rounded on total amount)
|
||||||
|
* True if the module is configured to skip the amount equality check
|
||||||
|
* False otherwise.
|
||||||
|
*/
|
||||||
|
private function shouldClassify($conf, $totalonlinkedelements, $object_total_ht)
|
||||||
|
{
|
||||||
|
// if the configuration allows unmatching amounts, allow classification anyway
|
||||||
|
if (!empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// if the amount are same, allow classification, else deny
|
||||||
|
return (price2num($totalonlinkedelements, 'MT') == price2num($object_total_ht, 'MT'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1921,7 +1921,7 @@ else
|
|||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
$i = 0; $total = 0;
|
$i = 0; $totalpaid = 0;
|
||||||
while ($i < $num)
|
while ($i < $num)
|
||||||
{
|
{
|
||||||
$objp = $db->fetch_object($resql);
|
$objp = $db->fetch_object($resql);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user