From 2201b11fd379111d69afb99c77e7fa152b7cb4e6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 24 Oct 2019 13:40:32 +0200 Subject: [PATCH] NEW Add option WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_SALE_PROPOSAL NEW Add option WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_PROPOSAL --- htdocs/comm/propal/card.php | 13 +++++++++++- htdocs/commande/card.php | 12 +++++++++++ htdocs/fourn/commande/card.php | 37 +++++++++++++++++++++++++--------- htdocs/langs/en_US/orders.lang | 2 ++ 4 files changed, 54 insertions(+), 10 deletions(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index e184a99b43e..0f84fdd5552 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -121,6 +121,7 @@ $usercancreateorder = $user->rights->commande->creer; $usercancreateinvoice = $user->rights->facture->creer; $usercancreatecontract = $user->rights->contrat->creer; $usercancreateintervention = $user->rights->ficheinter->creer; +$usercancreatepurchaseorder = $user->rights->fournisseur->commande->creer; $permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php $permissiondellink = $usercancreate; // Used by the include of actions_dellink.inc.php @@ -2499,13 +2500,23 @@ if ($action == 'create') print '' . $langs->trans('SendMail') . ''; } - // Create an order + // Create a sale order if (! empty($conf->commande->enabled) && $object->statut == Propal::STATUS_SIGNED) { if ($usercancreateorder) { print '' . $langs->trans("AddOrder") . ''; } } + // Create a purchase order + if (! empty($conf->global->WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_PROPOSAL)) + { + if (! empty($conf->fournisseur->enabled) && $object->statut == Propal::STATUS_SIGNED) { + if ($usercancreatepurchaseorder) { + print '' . $langs->trans("AddPurchaseOrder") . ''; + } + } + } + // Create an intervention if (! empty($conf->service->enabled) && ! empty($conf->ficheinter->enabled) && $object->statut == Propal::STATUS_SIGNED) { if ($usercancreateintervention) { diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 3854c51e29d..e645bf3cee6 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -106,6 +106,8 @@ $usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancr $usercancancel = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->order_advance->annuler))); $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->commande->order_advance->send); +$usercancreatepurchaseorder = $user->rights->fournisseur->commande->creer; + $permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php $permissiondellink = $usercancreate; // Used by the include of actions_dellink.inc.php $permissionedit = $usercancreate; // Used by the include of actions_lineupdown.inc.php @@ -2566,6 +2568,16 @@ if ($action == 'create' && $usercancreate) print '' . $langs->trans("AddAction") . ''; }*/ + // Create a purchase order + if (! empty($conf->global->WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_SALE_ORDER)) + { + if (! empty($conf->fournisseur->enabled) && $object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && $object->getNbOfServicesLines() > 0) { + if ($usercancreatepurchaseorder) { + print '' . $langs->trans("AddPurchaseOrder") . ''; + } + } + } + // Create intervention if ($conf->ficheinter->enabled) { $langs->load("interventions"); diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 77d8d1c119a..1d8f385fd05 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -1106,12 +1106,19 @@ if (empty($reshook)) // If creation from another object of another module (Example: origin=propal, originid=1) if (! empty($origin) && ! empty($originid)) { - if ($origin == 'order' || $origin == 'commande') + if ($origin == 'propal' || $origin == 'proposal') { + $classname = 'Propal'; + $element = 'comm/propal'; $subelement = 'propal'; + } + elseif ($origin == 'order' || $origin == 'commande') + { + $classname = 'Commande'; $element = $subelement = 'commande'; } else { + $classname = 'SupplierProposal'; $element = 'supplier_proposal'; $subelement = 'supplier_proposal'; } @@ -1131,7 +1138,6 @@ if (empty($reshook)) { dol_include_once('/' . $element . '/class/' . $subelement . '.class.php'); - $classname = 'SupplierProposal'; $srcobject = new $classname($db); dol_syslog("Try to find source object origin=" . $object->origin . " originid=" . $object->origin_id . " to add lines"); @@ -1167,7 +1173,6 @@ if (empty($reshook)) // Extrafields if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && method_exists($lines[$i], 'fetch_optionals')) // For avoid conflicts if - // trigger used { $lines[$i]->fetch_optionals($lines[$i]->rowid); $array_option = $lines[$i]->array_options; @@ -1442,7 +1447,7 @@ llxHeader('', $langs->trans("Order"), $help_url); $now=dol_now(); if ($action=='create') { - print load_fiche_titre($langs->trans('NewOrder')); + print load_fiche_titre($langs->trans('NewOrderSupplier')); dol_htmloutput_events(); @@ -1459,17 +1464,31 @@ if ($action=='create') { // Parse element/subelement (ex: project_task) $element = $subelement = $origin; + $regs=array(); if (preg_match('/^([^_]+)_([^_]+)/i', $origin, $regs)) { - $element = $regs [1]; - $subelement = $regs [2]; + $element = $regs[1]; + $subelement = $regs[2]; } - $element = 'supplier_proposal'; - $subelement = 'supplier_proposal'; + if ($origin == 'propal' || $origin == 'proposal') + { + $classname = 'Propal'; + $element = 'comm/propal'; $subelement = 'propal'; + } + elseif ($origin == 'order' || $origin == 'commande') + { + $classname = 'Commande'; + $element = $subelement = 'commande'; + } + else + { + $classname = 'SupplierProposal'; + $element = 'supplier_proposal'; + $subelement = 'supplier_proposal'; + } dol_include_once('/' . $element . '/class/' . $subelement . '.class.php'); - $classname = 'SupplierProposal'; $objectsrc = new $classname($db); $objectsrc->fetch($originid); if (empty($objectsrc->lines) && method_exists($objectsrc, 'fetch_lines')) diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang index a010a64b907..3d22b338166 100644 --- a/htdocs/langs/en_US/orders.lang +++ b/htdocs/langs/en_US/orders.lang @@ -11,6 +11,7 @@ OrderDate=Order date OrderDateShort=Order date OrderToProcess=Order to process NewOrder=New order +NewOrderSupplier=New Purchase Order ToOrder=Make order MakeOrder=Make order SupplierOrder=Purchase order @@ -70,6 +71,7 @@ DeleteOrder=Delete order CancelOrder=Cancel order OrderReopened= Order %s Reopened AddOrder=Create order +AddPurchaseOrder=Create purchase order AddToDraftOrders=Add to draft order ShowOrder=Show order OrdersOpened=Orders to process