forked from Wavyzz/dolibarr
NEW : Added a configuration in workflows (#26959)
* Added a configuration that allows an customer order to be placed in invoiced status if its total excluding tax is equal to the sum of the totals excluding tax of the linked invoices * update for travis CI * update * update * update * update * update for travis CI * update travis ci * update * Update interface_20_modWorkflow_WorkflowManager.class.php * Update interface_20_modWorkflow_WorkflowManager.class.php * Update interface_20_modWorkflow_WorkflowManager.class.php --------- Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
This commit is contained in:
@@ -95,7 +95,8 @@ class modWorkflow extends DolibarrModules
|
|||||||
8 => array('WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER', 'chaine', '1', 'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER', 0, 'current', 0),
|
8 => array('WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER', 'chaine', '1', 'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER', 0, 'current', 0),
|
||||||
10 => array('WORKFLOW_TICKET_LINK_CONTRACT', 'chaine', '0', 'Automatically link a ticket to available contracts', 0, 'current', 0),
|
10 => array('WORKFLOW_TICKET_LINK_CONTRACT', 'chaine', '0', 'Automatically link a ticket to available contracts', 0, 'current', 0),
|
||||||
11 => array('WORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS', 'chaine', '0', 'Search among parent companies contracts when automatically linking a ticket to available contracts', 0, 'current', 0),
|
11 => array('WORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS', 'chaine', '0', 'Search among parent companies contracts when automatically linking a ticket to available contracts', 0, 'current', 0),
|
||||||
12 => array('WORKFLOW_TICKET_CREATE_INTERVENTION', 'chaine', '0', 'WORKFLOW_TICKET_CREATE_INTERVENTION', 0, 'current', 0)
|
12 => array('WORKFLOW_TICKET_CREATE_INTERVENTION', 'chaine', '0', 'WORKFLOW_TICKET_CREATE_INTERVENTION', 0, 'current', 0),
|
||||||
|
13 => array('WORKFLOW_SUM_INVOICES_AMOUNT_CLASSIFY_BILLED_ORDER', 'chaine', '0', 'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER', 0, 'current', 0),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Boxes
|
// Boxes
|
||||||
|
|||||||
@@ -231,6 +231,36 @@ class InterfaceWorkflowManager extends DolibarrTriggers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// First classify billed the order to allow the proposal classify process
|
||||||
|
if (isModEnabled('order') && isModEnabled('workflow') && getDolGlobalString('WORKFLOW_SUM_INVOICES_AMOUNT_CLASSIFY_BILLED_ORDER')) {
|
||||||
|
$object->fetchObjectLinked('', 'commande', $object->id, $object->element);
|
||||||
|
if (count($object->linkedObjects['commande']) == 1) { // If the invoice has only 1 source order
|
||||||
|
$orderLinked = reset($object->linkedObjects['commande']);
|
||||||
|
$orderLinked->fetchObjectLinked($orderLinked->id, '', $orderLinked->element);
|
||||||
|
if (count($orderLinked->linkedObjects['facture']) >= 1) {
|
||||||
|
$totalHTInvoices = 0;
|
||||||
|
$areAllInvoicesValidated = true;
|
||||||
|
foreach ($orderLinked->linkedObjects['facture'] as $key => $invoice) {
|
||||||
|
if ($invoice->statut == Facture::STATUS_VALIDATED || $object->id == $invoice->id) {
|
||||||
|
$totalHTInvoices += (float) $invoice->total_ht;
|
||||||
|
} else {
|
||||||
|
$areAllInvoicesValidated = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($areAllInvoicesValidated) {
|
||||||
|
$isSameTotal = (price2num($totalHTInvoices, 'MT') == price2num($orderLinked->total_ht, 'MT'));
|
||||||
|
dol_syslog("Amount of linked invoices = ".$totalHTInvoices.", of order = ".$orderLinked->total_ht.", isSameTotal = ".(string) $isSameTotal, LOG_DEBUG);
|
||||||
|
if ($isSameTotal) {
|
||||||
|
$ret = $orderLinked->classifyBilled($user);
|
||||||
|
if ($ret < 0) {
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,10 +9,13 @@ descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Créer une facture client automatiqueme
|
|||||||
descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Créer automatiquement une facture client à la cloture d'un commande (la facture sera du même montant que la commande)
|
descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Créer automatiquement une facture client à la cloture d'un commande (la facture sera du même montant que la commande)
|
||||||
descWORKFLOW_TICKET_CREATE_INTERVENTION=Crée une intervention automatiquement à la création d'un ticket
|
descWORKFLOW_TICKET_CREATE_INTERVENTION=Crée une intervention automatiquement à la création d'un ticket
|
||||||
# Autoclassify customer proposal or order
|
# Autoclassify customer proposal or order
|
||||||
|
|
||||||
descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classer la/les proposition(s) commerciale(s) source(s) facturée(s) au classement facturé de la commande (et si le montant de la commande est le même que le total des propositions liées)
|
descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classer la/les proposition(s) commerciale(s) source(s) facturée(s) au classement facturé de la commande (et si le montant de la commande est le même que le total des propositions liées)
|
||||||
descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classer la/les proposition(s) commerciale(s) source facturée(s) à la validation d'une facture client (et si le montant de la facture est le même que la somme des propositions liées)
|
descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classer la/les proposition(s) commerciale(s) source facturée(s) à la validation d'une facture client (et si le montant de la facture est le même que la somme des propositions liées)
|
||||||
descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classer la/les commande(s) client(s) source(s) liées à facturée(s) quand une facture client est validée (et si le montant de la facture est le même que le montant total des commandes liées). Si vous avez une facture validée pour n commandes, cela peut également classer toutes les commandes sur Facturée.
|
descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classer la/les commande(s) client(s) source(s) liées à facturée(s) quand une facture client est validée (et si le montant de la facture est le même que le montant total des commandes liées). Si vous avez une facture validée pour n commandes, cela peut également classer toutes les commandes sur Facturée.
|
||||||
descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classer la/les commande(s) client(s) source(s) à Facturée quand une facture client est passée à Payé (et si le montant de la facture est identique à la somme des commandes sources). Si vous avez une facture définie facturée pour n commandes, cela peut aussi classer toutes les commandes sur Facturée.
|
descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classer la/les commande(s) client(s) source(s) à Facturée quand une facture client est passée à Payé (et si le montant de la facture est identique à la somme des commandes sources). Si vous avez une facture définie facturée pour n commandes, cela peut aussi classer toutes les commandes sur Facturée.
|
||||||
|
descWORKFLOW_SUM_INVOICES_AMOUNT_CLASSIFY_BILLED_ORDER=Classer la/les commande(s) client(s) à Facturée si la somme du montant des factures liées est égale au montant total de la commande
|
||||||
|
|
||||||
descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classer les commandes client source liées comme expédiées lorsqu'une expédition est validée (et si la quantité expédiée par toutes les expéditions est la même que dans le commande à mettre à jour)
|
descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classer les commandes client source liées comme expédiées lorsqu'une expédition est validée (et si la quantité expédiée par toutes les expéditions est la même que dans le commande à mettre à jour)
|
||||||
descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classer la commande client source liée à expédiée lorsqu'une expédition est fermée (et si la quantité expédiée par toutes les expéditions est la même que dans la commande à mettre à jour)
|
descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Classer la commande client source liée à expédiée lorsqu'une expédition est fermée (et si la quantité expédiée par toutes les expéditions est la même que dans la commande à mettre à jour)
|
||||||
# Autoclassify purchase proposal
|
# Autoclassify purchase proposal
|
||||||
|
|||||||
Reference in New Issue
Block a user