Tâches planifiées en difficulté... HELP?

Bonjour à tous,

Je sollicite votre aide aujourd’hui car j’ai un soucis avec une tâche planifiée sur la v21 de Dolibarr.

Je développe mes modules en test sur la version develop de dolibarr et je vérifie après les compatibilités antérieures.

Voilà mon problème, j’ai une tâche planifiée sur un de mes modules qui fonctionne bien sur la v23(develop) mais pas sur la v21.0.4. Elle fonctionne quand on clique sur “Lancer Maintenant”, mais pas via le CRON. J’essaie de réduire le code et je pense avoir trouver le problème mais je n’arrive pas à le résoudre… voilà le code :

require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';

/**
 * Cron helper used to send weekly reminders.
 */
class TimesheetweekReminder extends CommonObject
{
	public $db;
    public $error;
    public $errors = array();
    public $output;
    public $module = 'timesheetweek';
    public $element = 'TimesheetweekReminder';
    public $ismultientitymanaged = 1;
    public $isextrafieldmanaged = 0;

    public function __construct(DoliDB $db)
    {
        $this->db = $db;
        
    }
	/**
 	* Run cron job to send weekly reminder emails.
	 *
	 * @param DoliDB $db	     Database handler
	 * @param int	 $limit	     Optional limit for recipients
	 * @param int	 $forcerun   Force execution (1) or use normal scheduling (0)
	 * @param array	 $targetUserIds Limit execution to specific user ids when provided
	 * @return int		     <0 if KO, >=0 if OK (number of emails sent)
	 */
		public function run()
		{
			global $conf, $langs, $action, $user ;
			    		
		    if ((int) DOL_VERSION < 23) {
            	dol_include_once('/timesheetweek/core/class/cemailtemplate.class.php');
            	$test = '21';
            } else {
            	require_once DOL_DOCUMENT_ROOT.'/core/class/cemailtemplate.class.php';
            	$test = '23';
            }
		
		
			$this->output = "test réussi v".(int) DOL_VERSION ;
			return 0;
			
		}
		
		/**
		* Send a reminder test email to the current user using the configured template.
		*
		* @param DoliDB $db	Database handler
		* @param User	 $user	Current user
		* @return int		<0 if KO, >=0 if OK (number of emails sent)
		*/
		public function sendTest($db, User $user)
		{
			return  self::run($db, 1, 1, array((int) $user->id));
		}
		
	}

Pour moi, c’est au niveau de if ((int) DOL_VERSION < 23) { qui n’arrive pas à s’executer via le CRON. Mais je ne sais pas ce que je peux ajouter pour qu’il y arrive…

Merci d’avance pour votre aide…

hello tu as quoi dans ton dol version?

de mémoire la beta a une version qui n’est pas numérisable mais je n’en suis pas certaine.

si tu fait un explode sur le “.” et récupère le premier élément en int ce n’est pas mieux?

Il remonte bien 23. Mais le problème venait du fichier cemailtemplate.class.php. J’ai remplacé par un appel à html.formmail.class.php qui existe dans le corps et le tri se fait sur la class ModelMail du coup.