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->cond_reglement_code = 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;
|
||||
$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) dol_print_error($db, $object->error);
|
||||
$error = 0;
|
||||
|
||||
$db->begin();
|
||||
|
||||
if (! $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)
|
||||
|
||||
@ -325,7 +325,31 @@ if (empty($reshook))
|
||||
// payments conditions
|
||||
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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user