Merge pull request #15097 from marc-dll/FIX_10.0_supplier_invoice_echeance
FIX: supplier invoice: automatically calculate payment term when modifying payment condition
This commit is contained in:
commit
e811a9b13e
@ -355,15 +355,36 @@ if (empty($reshook))
|
|||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
$object->cond_reglement_code = 0; // To clean property
|
$object->cond_reglement_code = 0; // To clean property
|
||||||
$object->cond_reglement_id = 0; // To clean property
|
$object->cond_reglement_id = 0; // To clean property
|
||||||
$result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'));
|
|
||||||
if ($result < 0) dol_print_error($db, $object->error);
|
|
||||||
|
|
||||||
$old_date_lim_reglement = $object->date_lim_reglement;
|
$error = 0;
|
||||||
$new_date_lim_reglement = $object->calculate_date_lim_reglement();
|
|
||||||
if ($new_date_lim_reglement > $old_date_lim_reglement) $object->date_lim_reglement = $new_date_lim_reglement;
|
$db->begin();
|
||||||
if ($object->date_lim_reglement < $object->date) $object->date_lim_reglement = $object->date;
|
|
||||||
$result = $object->update($user);
|
if (! $error) {
|
||||||
if ($result < 0) dol_print_error($db, $object->error);
|
$result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'));
|
||||||
|
if ($result < 0) {
|
||||||
|
$error++;
|
||||||
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error) {
|
||||||
|
$old_date_lim_reglement = $object->date_lim_reglement;
|
||||||
|
$new_date_lim_reglement = $object->calculate_date_lim_reglement();
|
||||||
|
if ($new_date_lim_reglement > $old_date_lim_reglement) $object->date_lim_reglement = $new_date_lim_reglement;
|
||||||
|
if ($object->date_lim_reglement < $object->date) $object->date_lim_reglement = $object->date;
|
||||||
|
$result = $object->update($user);
|
||||||
|
if ($result < 0) {
|
||||||
|
$error++;
|
||||||
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($error) {
|
||||||
|
$db->rollback();
|
||||||
|
} else {
|
||||||
|
$db->commit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
elseif ($action == 'setpaymentterm' && $usercancreate)
|
elseif ($action == 'setpaymentterm' && $usercancreate)
|
||||||
|
|||||||
@ -325,7 +325,31 @@ if (empty($reshook))
|
|||||||
// payments conditions
|
// payments conditions
|
||||||
if ($action == 'setconditions' && $user->rights->fournisseur->facture->creer)
|
if ($action == 'setconditions' && $user->rights->fournisseur->facture->creer)
|
||||||
{
|
{
|
||||||
$result=$object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'));
|
$object->fetch($id);
|
||||||
|
$object->cond_reglement_code = 0; // To clean property
|
||||||
|
$object->cond_reglement_id = 0; // To clean property
|
||||||
|
|
||||||
|
$db->begin();
|
||||||
|
|
||||||
|
$result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'));
|
||||||
|
if ($result < 0) {
|
||||||
|
$db->rollback();
|
||||||
|
dol_print_error($db, $object->error);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$old_date_echeance = $object->date_echeance;
|
||||||
|
$new_date_echeance = $object->calculate_date_lim_reglement();
|
||||||
|
if ($new_date_echeance > $old_date_echeance) $object->date_echeance = $new_date_echeance;
|
||||||
|
if ($object->date_echeance < $object->date) $object->date_echeance = $object->date;
|
||||||
|
$result = $object->update($user);
|
||||||
|
if ($result < 0) {
|
||||||
|
$db->rollback();
|
||||||
|
dol_print_error($db, $object->error);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set incoterm
|
// Set incoterm
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user