/** * \brief Fonction appelee lors du declenchement d'un evenement Dolibarr. * D'autres fonctions run_trigger peuvent etre presentes dans includes/triggers * \param action Code de l'evenement * \param object Objet concerne * \param user Objet user * \param lang Objet lang * \param conf Objet conf * \return int <0 if fatal error, 0 si nothing done, >0 if ok */ function run_trigger($action,$object,$user,$langs,$conf) { // Mettre ici le code a executer en reaction de l'action // Les donnees de l'action sont stockees dans $object if ($action == 'PAYPAL_PAYMENT_OK') { dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". source=".$object->source." ref=".$object->ref); require_once(DOL_DOCUMENT_ROOT."/societe/class/societe.class.php"); $soc = new Societe($this->db); // Parse element/subelement (ex: project_task) $element = $path = $filename = $object->source; if (preg_match('/^([^_]+)_([^_]+)/i',$object->source,$regs)) { $element = $path = $regs[1]; $filename = $regs[2]; } // For compatibility if ($element == 'order') { $path = $filename = 'commande'; } if ($element == 'invoice') { $path = 'compta/facture'; $filename = 'facture'; } dol_include_once('/'.$path.'/class/'.$filename.'.class.php'); $classname = ucfirst($filename); $obj = new $classname($this->db); $ret = $obj->fetch('',$object->ref); if ($ret < 0) return -1; // Add payer id $soc->updateObjectField('societe', $obj->socid, 'ref_int', $object->payerID); // Add transaction id $obj->updateObjectField($obj->table_element,$obj->id,'ref_int',$object->resArray["TRANSACTIONID"]); } return 0; }