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…




