Bonjour,
J’ai mis à jour mes instances vers la version 19.0.2 et depuis lorsque je crée une facture depuis le Pdv la date n’est pas la bonne à partir d’une certaine heure.
Nous sommes dans un fuseau horaire à GMT+11 pour la journée d’aujourd’hui jusqu’à 13h nos factures sont à la bonne date (29/05/2024) et à partir de 13h00, toutes les factures sont mises au 30/05/2024 via le Pdv, les heures PHP et machine sont bien sur le bon fuseau et la validation et la facture et le paiement sont bien enregistrés au 29/05 en revanche, la date de facturation est elle au 30/05 ce qui me crée forcément des erreurs dans mon compte rendu de la journée, dans mes journaux de caisse et règlements puisque l’application prend la date de facturation pour tout cela…
Auriez vous une idée du bout de code à mettre à jour ou en tout du moins l’endroit ou se trouve la sélection de la date de facturation pour les tickets créés via le module TakePOS ?
En utilisant le module facturation classique via le bouton « maintenant » pas de soucis, c’est à la bonne date, juste le TakePOS qui crée un bug
Après moultes recherches, je crois qu’il y a une erreur dans le code du fichier :
htdocs/takepos/invoive.php où dol_now(‹ tzuserrel ›) doit être remplacé par dol_now()
// If we add a line and no invoice yet, we create the invoice
if (($action == « addline » || $action == « freezone ») && $placeid == 0 && ($user->hasRight(‹ takepos ›, ‹ run ›) || defined(‹ INCLUDE_PHONEPAGE_FROM_PUBLIC_PAGE ›))) {
$invoice->socid = getDolGlobalString($constforcompanyid);
//$invoice->date = dol_now(‹ tzuserrel ›); // We use the local date
$invoice->date = dol_now(); // We use the local date, only the day will be saved.
$invoice->module_source = ‹ takepos ›;
$invoice->pos_source = isset($_SESSION[« takeposterminal »]) ? $_SESSION[« takeposterminal »] : ‹ › ;
$invoice->entity = !empty($_SESSION[« takeposinvoiceentity »]) ? $_SESSION[« takeposinvoiceentity »] : $conf->entity;
Pour les dates, dolibarr enregistre le fuseau horaire du navigateur au moment de la connexion.
Peut-être que le fuseau horaire du poste où est utilisé TakePos n’est pas bon.
La solution est dans mon post précédent, je ne sais pas comment poster un change dans le GitHub mais la solution est de supprimer la paramètre tzuserrel de la fonction dol_now()