/**
  * Function called when a Dolibarrr business event is done.
  * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared)
  *
  * @param string		$action		Event action code
  * @param Object		$object     Object
  * @param User		    $user       Object user
  * @param Translate 	$langs      Object langs
  * @param conf		    $conf       Object conf
  * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
  */
 public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
 {
     if (empty($conf->workflow->enabled)) {
         return 0;
     }
     // Module not active, we do nothing
     // Proposals to order
     if ($action == 'PROPAL_CLOSE_SIGNED') {
         dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id);
         if (!empty($conf->commande->enabled) && !empty($conf->global->WORKFLOW_PROPAL_AUTOCREATE_ORDER)) {
             include_once DOL_DOCUMENT_ROOT . '/commande/class/commande.class.php';
             $newobject = new Commande($this->db);
             $newobject->context['createfrompropal'] = 'createfrompropal';
             $newobject->context['origin'] = $object->element;
             $newobject->context['origin_id'] = $object->id;
             $ret = $newobject->createFromProposal($object);
             if ($ret < 0) {
                 $this->error = $newobject->error;
                 $this->errors[] = $newobject->error;
             }
             return $ret;
         }
     }
     // Order to invoice
     if ($action == 'ORDER_CLOSE') {
         dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id);
         if (!empty($conf->facture->enabled) && !empty($conf->global->WORKFLOW_ORDER_AUTOCREATE_INVOICE)) {
             include_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php';
             $newobject = new Facture($this->db);
             $newobject->context['createfromorder'] = 'createfromorder';
             $newobject->context['origin'] = $object->element;
             $newobject->context['origin_id'] = $object->id;
             $ret = $newobject->createFromOrder($object);
             if ($ret < 0) {
                 $this->error = $newobject->error;
                 $this->errors[] = $newobject->error;
             }
             return $ret;
         }
     }
     // Order classify billed proposal
     if ($action == 'ORDER_CLASSIFY_BILLED') {
         dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id);
         if (!empty($conf->propal->enabled) && !empty($conf->global->WORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL)) {
             $object->fetchObjectLinked('', 'propal', $object->id, $object->element);
             if (!empty($object->linkedObjects)) {
                 foreach ($object->linkedObjects['propal'] as $element) {
                     $ret = $element->classifyBilled();
                 }
             }
             return $ret;
         }
     }
     // Invoice classify billed order
     if ($action == 'BILL_PAYED') {
         dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id);
         if (!empty($conf->commande->enabled) && !empty($conf->global->WORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER)) {
             $object->fetchObjectLinked('', 'commande', $object->id, $object->element);
             if (!empty($object->linkedObjects)) {
                 foreach ($object->linkedObjects['commande'] as $element) {
                     $ret = $element->classifyBilled();
                 }
             }
             return $ret;
         }
     }
     // classify billed order
     if ($action == 'BILL_VALIDATE') {
         dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id);
         if (!empty($conf->commande->enabled) && !empty($conf->global->WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER)) {
             $object->fetchObjectLinked('', 'commande', $object->id, $object->element);
             if (!empty($object->linkedObjects)) {
                 foreach ($object->linkedObjects['commande'] as $element) {
                     $ret = $element->classifyBilled();
                 }
             }
             return $ret;
         }
     }
     return 0;
 }
 /**
  *
  * @param unknown $object
  */
 static function createBillOnOrderValidate(&$object)
 {
     global $conf, $langs, $db, $user;
     if (empty($conf->global->GRAPEFRUIT_ORDER_CREATE_BILL_ON_VALIDATE)) {
         return true;
     }
     dol_include_once('/compta/facture/class/facture.class.php');
     $facture = new Facture($db);
     $res = $facture->createFromOrder($object);
     if ($res > 0) {
         setEventMessage($langs->trans('BillCreated'));
     }
     // Transfert Contact from order to invoice
     return false;
 }
Exemplo n.º 3
0
 /**
  * testFactureBuild
  *
  * @return int
  */
 public function testFactureBuild()
 {
     global $conf, $user, $langs, $db;
     $conf = $this->savconf;
     $user = $this->savuser;
     $langs = $this->savlangs;
     $db = $this->savdb;
     $conf->facture->dir_output .= '/temp';
     $localobjectcom = new Commande($this->savdb);
     $localobjectcom->initAsSpecimen();
     $localobject = new Facture($this->savdb);
     $localobject->createFromOrder($localobjectcom);
     $localobject->date_lim_reglement = dol_now() + 3600 * 24 * 30;
     // Crabe (english)
     $localobject->modelpdf = 'crabe';
     $result = $localobject->generateDocument($localobject->modelpdf, $langs);
     $this->assertLessThan($result, 0);
     print __METHOD__ . " result=" . $result . "\n";
     // Crabe (japanese)
     $newlangs1 = new Translate("", $conf);
     $newlangs1->setDefaultLang('ja_JP');
     $localobject->modelpdf = 'crabe';
     $result = $localobject->generateDocument($localobject->modelpdf, $newlangs1);
     $this->assertLessThan($result, 0);
     print __METHOD__ . " result=" . $result . "\n";
     // Crabe (saudiarabia)
     $newlangs2a = new Translate("", $conf);
     $newlangs2a->setDefaultLang('sa_SA');
     $localobject->modelpdf = 'crabe';
     $result = $localobject->generateDocument($localobject->modelpdf, $newlangs2a);
     $this->assertLessThan($result, 0);
     print __METHOD__ . " result=" . $result . "\n";
     // Crabe (english_saudiarabia)
     $newlangs2b = new Translate("", $conf);
     $newlangs2b->setDefaultLang('en_SA');
     $localobject->modelpdf = 'crabe';
     $result = $localobject->generateDocument($localobject->modelpdf, $newlangs2b);
     $this->assertLessThan($result, 0);
     print __METHOD__ . " result=" . $result . "\n";
     // Crabe (greek)
     $newlangs3 = new Translate("", $conf);
     $newlangs3->setDefaultLang('el_GR');
     $localobject->modelpdf = 'crabe';
     $result = $localobject->generateDocument($localobject->modelpdf, $newlangs3);
     $this->assertLessThan($result, 0);
     print __METHOD__ . " result=" . $result . "\n";
     // Crabe (chinese)
     $newlangs4 = new Translate("", $conf);
     $newlangs4->setDefaultLang('zh_CN');
     $localobject->modelpdf = 'crabe';
     $result = $localobject->generateDocument($localobject->modelpdf, $newlangs4);
     $this->assertLessThan($result, 0);
     print __METHOD__ . " result=" . $result . "\n";
     // Crabe (russian)
     $newlangs5 = new Translate("", $conf);
     $newlangs5->setDefaultLang('ru_RU');
     $localobject->modelpdf = 'crabe';
     $result = $localobject->generateDocument($localobject->modelpdf, $newlangs5);
     $this->assertLessThan($result, 0);
     print __METHOD__ . " result=" . $result . "\n";
     return 0;
 }
Exemplo n.º 4
0
    /**
     * testFactureBuild
     *
     * @return int
     */
    public function testFactureBuild()
    {
    	global $conf,$user,$langs,$db;
		$conf=$this->savconf;
		$user=$this->savuser;
		$langs=$this->savlangs;
		$db=$this->savdb;

		$conf->facture->dir_output.='/temp';

		$localobjectcom=new Commande($this->savdb);
		$localobjectcom->initAsSpecimen();

		$localobject=new Facture($this->savdb);
    	$localobject->createFromOrder($localobjectcom);
    	$localobject->date_lim_reglement = dol_now() + 3600 * 24 *30;

    	// Crabe
    	$localobject->modelpdf='crabe';
    	$result=facture_pdf_create($db, $localobject, $localobject->modelpdf, $langs);

		$localobject=new Facture($this->savdb);
		$localobject->initAsSpecimen();

		$this->assertLessThan($result, 0);
    	print __METHOD__." result=".$result."\n";

    	// Oursin
    	$localobject->modelpdf='oursin';
    	$result=facture_pdf_create($db, $localobject, $localobject->modelpdf, $langs);

    	$this->assertLessThan($result, 0);
    	print __METHOD__." result=".$result."\n";

    	return 0;
    }
    /**
     *      Function called when a Dolibarrr business event is done.
     *      All functions "run_trigger" are triggered if file is inside directory htdocs/includes/triggers
     *      @param      action      Event code (COMPANY_CREATE, PROPAL_VALIDATE, ...)
     *      @param      object      Object action is done on
     *      @param      user        Object user
     *      @param      langs       Object langs
     *      @param      conf        Object conf
     *      @return     int         <0 if KO, 0 if no action are done, >0 if OK
     */
	function run_trigger($action,$object,$user,$langs,$conf)
    {
        if (empty($conf->workflow->enabled)) return 0;     // Module not active, we do nothing

        // Proposals to order
        if ($action == 'PROPAL_CLOSE_SIGNED')
        {
        	dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
            if (! empty($conf->commande->enabled) && ! empty($conf->global->WORKFLOW_PROPAL_AUTOCREATE_ORDER))
            {
                include_once(DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php');
                $order = new Commande($this->db);
                $ret=$order->createFromProposal($object,0);
                if ($ret < 0) { $this->error=$invoice->error; $this->errors[]=$invoice->error; }
                return $ret;
            }
        }

        // Order to invoice
        if ($action == 'ORDER_CLOSE')
        {
            dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
            if (! empty($conf->facture->enabled) && ! empty($conf->global->WORKFLOW_ORDER_AUTOCREATE_INVOICE))
            {
                include_once(DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php');
                $invoice = new Facture($this->db);
                $ret=$invoice->createFromOrder($object,0);
                if ($ret < 0) { $this->error=$invoice->error; $this->errors[]=$invoice->error; }
                return $ret;
            }
        }

        return 0;
    }