diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 99bf843f50b..5d567cd7282 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -128,6 +128,7 @@ $usercanread = $user->rights->facture->lire; $usercancreate = $user->rights->facture->creer; $usercanissuepayment = $user->rights->facture->paiement; $usercandelete = $user->rights->facture->supprimer; +$usercancreatecontract = $user->rights->contrat->creer; $usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->facture->invoice_advance->validate))); $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->facture->invoice_advance->send))); $usercanreopen = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->facture->invoice_advance->reopen))); @@ -5325,6 +5326,17 @@ if ($action == 'create') { } } + // Create contract + if (!empty($conf->global->CONTRACT_CREATE_FROM_INVOICE)) { + if ($conf->contrat->enabled && $object->statut == Facture::STATUS_VALIDATED) { + $langs->load("contracts"); + + if ($usercancreatecontract) { + print '' . $langs->trans('AddContract') . ''; + } + } + } + // Validate if ($object->statut == Facture::STATUS_DRAFT && count($object->lines) > 0 && ((($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA || $object->type == Facture::TYPE_SITUATION) && (!empty($conf->global->FACTURE_ENABLE_NEGATIVE) || $object->total_ttc >= 0)) || ($object->type == Facture::TYPE_CREDIT_NOTE && $object->total_ttc <= 0))) { if ($usercanvalidate) { diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index f77b59a1f49..22047984d34 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -40,6 +40,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/contract/modules_contract.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +if (!empty($conf->facture->enabled) && !empty($conf->global->CONTRACT_CREATE_FROM_INVOICE)) { + require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; +} if (!empty($conf->propal->enabled)) { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; } @@ -248,6 +251,12 @@ if (empty($reshook)) { if ($element == 'propal') { $element = 'comm/propal'; $subelement = 'propal'; } + if (!empty($conf->global->CONTRACT_CREATE_FROM_INVOICE)) { + if ($element == 'invoice' || $element == 'facture') { + $element = 'compta/facture'; + $subelement = 'facture'; + } + } $object->origin = $origin; $object->origin_id = $originid; @@ -1038,6 +1047,12 @@ if ($action == 'create') { if ($element == 'propal') { $element = 'comm/propal'; $subelement = 'propal'; } + if (!empty($conf->global->CONTRACT_CREATE_FROM_INVOICE)) { + if ($element == 'invoice' || $element == 'facture') { + $element = 'compta/facture'; + $subelement = 'facture'; + } + } dol_include_once('/'.$element.'/class/'.$subelement.'.class.php');