From 7a0206adceb3760f867658bff3a0f78bbcdfb3db Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 8 Nov 2015 14:37:50 +0100
Subject: [PATCH] FIX Missing to set context into workflow actions, so triggers
 can't know we are creating an invoice from order or an order from a proposal.

---
 htdocs/commande/class/commande.class.php                  | 4 ++--
 .../interface_20_modWorkflow_WorkflowManager.class.php    | 8 ++++++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php
index f6f332d462b..5d2907041b2 100644
--- a/htdocs/commande/class/commande.class.php
+++ b/htdocs/commande/class/commande.class.php
@@ -1043,7 +1043,7 @@ class Commande extends CommonOrder
             $this->ref_client           = $object->ref_client;
             $this->note_private         = $object->note_private;
             $this->note_public          = $object->note_public;
-
+            
             $this->origin				= $object->element;
             $this->origin_id			= $object->id;
 
@@ -1133,7 +1133,7 @@ class Commande extends CommonOrder
     {
     	global $mysoc, $conf, $langs;
 
-        dol_syslog(get_class($this)."::addline commandeid=$this->id, desc=$desc, pu_ht=$pu_ht, qty=$qty, txtva=$txtva, fk_product=$fk_product, remise_percent=$remise_percent, info_bits=$info_bits, fk_remise_except=$fk_remise_except, price_base_type=$price_base_type, pu_ttc=$pu_ttc, date_start=$date_start, date_end=$date_end, type=$type", LOG_DEBUG);
+        dol_syslog(get_class($this)."::addline commandeid=$this->id, desc=$desc, pu_ht=$pu_ht, qty=$qty, txtva=$txtva, fk_product=$fk_product, remise_percent=$remise_percent, info_bits=$info_bits, fk_remise_except=$fk_remise_except, price_base_type=$price_base_type, pu_ttc=$pu_ttc, date_start=$date_start, date_end=$date_end, type=$type special_code=$special_code", LOG_DEBUG);
 
         include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
 
diff --git a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
index d144f365533..4d3afeb8d92 100644
--- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
+++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
@@ -61,6 +61,10 @@ class InterfaceWorkflowManager extends DolibarrTriggers
                 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;
@@ -76,6 +80,10 @@ class InterfaceWorkflowManager extends DolibarrTriggers
                 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;
-- 
GitLab