From 2c2f86736aff1e648dab317b93d7f21edcada89a Mon Sep 17 00:00:00 2001 From: TuxGasy Date: Sat, 5 Jan 2019 19:01:54 +0100 Subject: [PATCH 1/3] Fix #10301 mass bill orders and replicate extrafields --- htdocs/core/actions_massactions.inc.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 3bf42f0a538..1760fc067a3 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -533,6 +533,10 @@ if ($massaction == 'confirm_createbills') $objecttmp->origin = 'commande'; $objecttmp->origin_id = $id_order; + // Replicate extrafields + $cmd->fetch_optionals($id_order); + $objecttmp->array_options = $cmd->array_options; + $res = $objecttmp->create($user); if($res > 0) $nb_bills_created++; @@ -682,6 +686,7 @@ if ($massaction == 'confirm_createbills') if (! $error && $validate_invoices) { $massaction = $action = 'builddoc'; + $savobject = $object; foreach($TAllFact as &$objecttmp) { $result = $objecttmp->validate($user); @@ -698,10 +703,12 @@ if ($massaction == 'confirm_createbills') $donotredirect = 1; $upload_dir = $conf->facture->dir_output; $permissioncreate=$user->rights->facture->creer; + $object = $objecttmp; include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; } $massaction = $action = 'confirm_createbills'; + $object = $savobject; } if (! $error) From 47448b77f05b673339b46cf4cdbd54f44ff0a409 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Jan 2019 16:47:30 +0100 Subject: [PATCH 2/3] Update actions_massactions.inc.php --- htdocs/core/actions_massactions.inc.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 1760fc067a3..2ca8a8f86c9 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -686,7 +686,7 @@ if ($massaction == 'confirm_createbills') if (! $error && $validate_invoices) { $massaction = $action = 'builddoc'; - $savobject = $object; + foreach($TAllFact as &$objecttmp) { $result = $objecttmp->validate($user); @@ -703,12 +703,15 @@ if ($massaction == 'confirm_createbills') $donotredirect = 1; $upload_dir = $conf->facture->dir_output; $permissioncreate=$user->rights->facture->creer; - $object = $objecttmp; + + // Call action to build doc + $savobject = $object; + $object = $objecttmp; include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; + $object = $savobject; } $massaction = $action = 'confirm_createbills'; - $object = $savobject; } if (! $error) From a1f5ede736442e7f0a643b3496a47daf100f0c76 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Jan 2019 16:50:27 +0100 Subject: [PATCH 3/3] Update actions_massactions.inc.php --- htdocs/core/actions_massactions.inc.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 2ca8a8f86c9..0a71deed66f 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -516,7 +516,9 @@ if ($massaction == 'confirm_createbills') $objecttmp = new Facture($db); if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) $objecttmp = $TFactThird[$cmd->socid]; // If option "one bill per third" is set, we use already created order. else { - + // Load extrafields of order + $cmd->fetch_optionals(); + $objecttmp->socid = $cmd->socid; $objecttmp->type = Facture::TYPE_STANDARD; $objecttmp->cond_reglement_id = $cmd->cond_reglement_id; @@ -533,9 +535,7 @@ if ($massaction == 'confirm_createbills') $objecttmp->origin = 'commande'; $objecttmp->origin_id = $id_order; - // Replicate extrafields - $cmd->fetch_optionals($id_order); - $objecttmp->array_options = $cmd->array_options; + $objecttmp->array_options = $cmd->array_options; // Copy extrafields $res = $objecttmp->create($user);