Vous pouvez crées plusieurs modules qui réagissent à l’action ORDER_SUPPLIER_SENTBYMAIL et donc plusieurs actions 1,2,3 etc…
Si vous voulez crée des actions différentes (donc pour d’autres actions de l’utilisateurs) et qu’elles ne sont pas prévues dans le CORE, il faut les rajouter à la main dans le CORE, mais c’est une solution non maintenable sur le long term
public function run_trigger($action, $object, $user, $langs, $conf)
{
global $langs, $db, $user;
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
$listofactions=ActionComm::getActions($db, $object->socid, $object->id, 'order_supplier','','','');
foreach($listofactions as $actions)
{
$label=$actions->getNomUrl(0,38);
}
if ($action == 'ORDER_SUPPLIER_SENTBYMAIL' && stripos($label, 'Commande fournisseur') !== FALSE)
{
$this->_Commande($object->id);
}
elseif (stripos($object->email_subject, 'Colissimo du') !== FALSE)
{
$this->_Livraison($object->id);
}
return 0;
}
Ces actions me permettent de classer la commande fournisseur selon l’envoi de mail que nous lui faisons.
Il ne me reste plus qu’à implémenter la bonne valeur de substitutions (substitutionarray) pour obtenir la date de commande sous ce format ORDERDATE
Pour le moment voici ce que contient ma function customdoli_completesubstitutionarray
$objectcf2 = new CommandeFournisseur($db);
$objectcf2->fetch($object->rowid);
$substitutionarray[‹ ORDERDATE ›] = date(‹ d/m/Y ›, $objectcf2->date);
Mais $objectcf2->date me renvoi une date par défault…