NEW Add option WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_SALE_PROPOSAL

NEW Add option WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_PROPOSAL
This commit is contained in:
Laurent Destailleur 2019-10-24 13:40:32 +02:00
parent 7d6306dfa8
commit 2201b11fd3
4 changed files with 54 additions and 10 deletions

View File

@ -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 '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">' . $langs->trans('SendMail') . '</a>';
}
// Create an order
// Create a sale order
if (! empty($conf->commande->enabled) && $object->statut == Propal::STATUS_SIGNED) {
if ($usercancreateorder) {
print '<a class="butAction" href="' . DOL_URL_ROOT . '/commande/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans("AddOrder") . '</a>';
}
}
// 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 '<a class="butAction" href="' . DOL_URL_ROOT . '/fourn/commande/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans("AddPurchaseOrder") . '</a>';
}
}
}
// Create an intervention
if (! empty($conf->service->enabled) && ! empty($conf->ficheinter->enabled) && $object->statut == Propal::STATUS_SIGNED) {
if ($usercancreateintervention) {

View File

@ -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 '<a class="butAction" href="' . DOL_URL_ROOT . '/comm/action/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans("AddAction") . '</a>';
}*/
// 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 '<a class="butAction" href="' . DOL_URL_ROOT . '/fourn/commande/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans("AddPurchaseOrder") . '</a>';
}
}
}
// Create intervention
if ($conf->ficheinter->enabled) {
$langs->load("interventions");

View File

@ -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'))

View File

@ -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