Module: Virtual Time Zone - Date du jour

Virtual Time Zone permet de définir une date de travail virtuelle par rapport à la date du serveur, ce qui n’est pas possible sur un hébergement mutualisé ou en multi hébergement de différentes versions de Dolibarr

Le module permet de definir un offset de +/- x jours a raajouter à la date du serveur pour definir la nouvelle date VirtualTz
La date de dernière opération est indiquée et un message d’alerte s’affiche en cas de définition d’une date de travail antérieure à la dernière facture

Une fois installé et configuré Dolibarr vous permet de travailler à la date souhaitée, par exemple si vous avez activé la fonction de modification automatique de la date à la validation ce sera la date virtualtz qui sera appliquée et non la date du serveur

Le module nécessite de remplacer le fichier core/lib/functions.lib.php par une version permettant de modifier la date.
Une solution de patchage direct depuis le module est incluse et sont fournies les version 3.5.4 a 3.8.2

VirtualTz detecte une version patchée ou non et remplace le fichier dans le core

Il est également possible de restaurer la version originale si le module détecte la version patchée

Par mesure de securité, avant de patcher, virtualtz envoi un code par mail au super admin afin de valider la demande de modification du fichier

Pas encore trouvé de solution plus élégante pour remplacer la fonction dol_now()

On peut activer une box indiquant la date de travail sur l’écran principal ainsi que la date de dernière facture
En cas de dépassement pour l’instant il y a juste un message d’alerte en rouge

Hello,
Jamais simple de gérer un patchage du core dans un module, sans parler que d’autres développeurs de modules peuvent avoir patché le même fichier…
Une solution élégante est de rajouter un trigger dans la fonction dol_now()
Personnellement dans nos modules, je propose un correctif dans le core puis une fois qu’il est accepté, je rajoute un ou plusieurs dossiers « corechange_xxx » contenant le correctif

merci charles
les langues ca passe pas , j’ai eu du mal avec les hook; les trigger j’ai pas encore cherche à comprendre… donc j’ai encore pas mal de chose a comprendre.
Même en faisant un hook je suis pas sur que ca faisait mon affaire :unhappy:

j’avais proposé la modif virtualtz pour patcher dans le core mais ca ne semblais pas convenir cette été.

Avec un trigger a rajouter dis tu… je vais chercher a comprendre comment ca fonctionne et si cela permet de remplacer complétement une fonction, je ne peux pas juste modifier la valeur de retour de la fonction :happy:

sinon pour faire plus simple j’ai en effet patche les fichiers functions.lib.php en version 3.5.4 a 3.8.2 et j’ai inclus les version officielles et patche. dans le virtualtz_setup je detecte si la fichier est ou non patché et je propose de le remplacer à la volée par la version adéquate de dolibarr. j’ai donc inclus des dossiers lib.x.x.x et lib.x.x.x-virtualtz
Je pense rajouter un md5 pour vérifier si le fichier présent est une version « officielle/patché » et dans ce cas il faudras que l’utilisateur le patche mannuellement. mais la encore je ne suis pas sur que ce soit fonctionelle car le md5 peut changer suivant l’os ou mode de transfert ftp qui parfois modifie les fins de ligne par exemple…

je t’envoie le module si tu veux y jeter un coup d’oeuil ou m’aider à comprendre pourquoi je plante mes chargement des fichiers de langues hors de l’admin des modules…

maj version 1.03
-patch automatique du core dolibarr jusqu’en en version 3.9.1 depuis le module
-par defaut, la date offset est forcée après la dernière facture existante de quelques minutes afin d’eviter les factures du même jour qui ne sont pas chronologique au niveau heure / minutes…
-correction de l’affichage de la langue dans la box d’information

https://www.dropbox.com/s/e4z4dmte28so9dt/module_virtualtz-1.0.3.zip?dl=1