Depuis le passage en 3.2 RC, impossible de changer à la main la date limite de règlement d’une facture.
La date limite de règlement se positionne automatiquement à une date dépendant de la valeur « Conditions règlement » (plus 30 jours sur la date de facture par rapport si on est en « 30 jours ») au moment de la création de la facture.
Mais il est impossible de valider ensuite une modification de cette date (y compris lorsqu’on n’a pas de « Conditions règlement » sélectionné).
On peut modifier la date (en cliquant sur le bouton idoine puis sans la saisissant à la main ou en utilisant le widget calendrier) mais lorsqu’on clique sur le bouton « Modifier » à droite, la date se remet à celle d’origine…
De plus, si on modifie la « Date » (passage du 30 juin au 30 juillet par exemple), « Date limite règlement » se recalcule immédiatement (en passant là aussi du 30 juin au 30 juillet).
Et si on remet « Date » au 30 juin, « Date limite règlement » reste au 30 juillet.
Le bug étant (encore) présent dans la version 3.2.2,
en ligne 268, remplacer
else if ($action == ‹ setconditions › && $user->rights->facture->creer)
{
$object->fetch($id);
$result=$object->setPaymentTerms(GETPOST(‹ cond_reglement_id ›,‹ int ›));
if ($result < 0) dol_print_error($db,$object->error);
}
par
else if ($action == ‹ setpaymentterm › && $user->rights->facture->creer)
{
$object->fetch($id);
$object->date_lim_reglement=dol_mktime(12,0,0,$_POST[‹ paymenttermmonth ›],$_POST[‹ paymenttermday ›],$_POST[‹ paymenttermyear ›]);
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);
}
else if ($action == ‹ setconditions › && $user->rights->facture->creer)
{
$object->fetch($id);
$result=$object->setPaymentTerms(GETPOST(‹ cond_reglement_id ›,‹ int ›));
if ($result < 0) dol_print_error($db,$object->error);
$object->date_lim_reglement = $object->calculate_date_lim_reglement(GETPOST(‹ cond_reglement_id ›,‹ int ›));
$result=$object->update($user);
if ($result < 0) dol_print_error($db,$object->error);
}
on recalcule la date au changement des conditions en utilisant la méthode de la classe facture (ligne 1310@htdocs/compta/facture/class/facture.class.php )