From b42a33b20388da2ba0b3d2b2113ef4044ab9a505 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@destailleur.fr> Date: Sat, 19 Jul 2014 21:14:56 +0200 Subject: [PATCH] Fix: For contract, only services available by default. Product appears if option is set only. --- htdocs/core/class/html.form.class.php | 4 +++- htdocs/core/tpl/objectline_create.tpl.php | 7 ++++++- htdocs/fourn/commande/fiche.php | 5 ++++- htdocs/fourn/facture/fiche.php | 10 +++++----- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 8dfe80368e9..3779473eacb 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -543,7 +543,7 @@ class Form * @param string $selected Preselected type * @param string $htmlname Name of field in html form * @param int $showempty Add an empty field - * @param int $hidetext Do not show label before combo box + * @param int $hidetext Do not show label 'Type' before combo box (used only if there is at least 2 choices to select) * @param string $forceall Force to show products and services in combo list, whatever are activated modules * @return void */ @@ -577,10 +577,12 @@ class Form } if (! $forceall && empty($conf->product->enabled) && ! empty($conf->service->enabled)) { + print $langs->trans("Service"); print '<input type="hidden" name="'.$htmlname.'" value="1">'; } if (! $forceall && ! empty($conf->product->enabled) && empty($conf->service->enabled)) { + print $langs->trans("Product"); print '<input type="hidden" name="'.$htmlname.'" value="0">'; } diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index 719d6c1794c..97e6224999f 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -118,7 +118,12 @@ else { else if (empty($conf->product->enabled) && ! empty($conf->service->enabled)) echo $langs->trans("FreeLineOfType").' '.$langs->trans("Service"); else if (! empty($conf->product->enabled) && empty($conf->service->enabled)) echo $langs->trans("FreeLineOfType").' '.$langs->trans("Product");*/ echo ' '; - echo $form->select_type_of_lines(isset($_POST["type"])?$_POST["type"]:-1,'type',1,1,1); + $forceall=1; // We always force all type for free lines (module product or service means we use predefined product or service) + if ($object->element == 'contrat' && empty($conf->global->CONTRACT_SUPPORT_PRODUCTS)) + { + $forceall=0; + } + echo $form->select_type_of_lines(isset($_POST["type"])?$_POST["type"]:-1,'type',1,1,$forceall); // } echo '</span>'; diff --git a/htdocs/fourn/commande/fiche.php b/htdocs/fourn/commande/fiche.php index dbac3c4230d..9caef34d845 100644 --- a/htdocs/fourn/commande/fiche.php +++ b/htdocs/fourn/commande/fiche.php @@ -1725,8 +1725,11 @@ elseif (! empty($object->id)) } else { - print $form->select_type_of_lines($line->product_type,'type',1); + $forceall=1; // For suppliers, we always show all types + print $form->select_type_of_lines($line->product_type,'type',1,0,$forceall); if (! empty($conf->product->enabled) && ! empty($conf->service->enabled)) print '<br>'; + if ($forceall || (! empty($conf->product->enabled) && ! empty($conf->service->enabled)) + || (empty($conf->product->enabled) && empty($conf->service->enabled))) print '<br>'; } if (is_object($hookmanager)) diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index 4e1c3246eff..d962f30e69f 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -311,7 +311,7 @@ elseif ($action == 'add' && $user->rights->fournisseur->facture->creer) $object->mode_reglement_id = GETPOST('mode_reglement_id'); $object->fk_account = GETPOST('fk_account', 'int'); $object->fk_project = ($tmpproject > 0) ? $tmpproject : null; - + // Auto calculation of date due if not filled by user if(empty($object->date_echeance)) $object->date_echeance = $object->calculate_date_lim_reglement(); @@ -1648,7 +1648,7 @@ else // Local taxes if ($societe->localtax1_assuj=="1") $nbrows++; if ($societe->localtax2_assuj=="1") $nbrows++; - + print '<td rowspan="'.$nbrows.'" valign="top">'; $sql = 'SELECT p.datep as dp, p.num_paiement, p.rowid, p.fk_bank,'; @@ -1968,9 +1968,9 @@ else print '<br>'; } else - { + { $forceall=1; // For suppliers, we always show all types - print $form->select_type_of_lines($object->lines[$i]->product_type,'type',1); + print $form->select_type_of_lines($object->lines[$i]->product_type,'type',1,0,$forceall); if ($forceall || (! empty($conf->product->enabled) && ! empty($conf->service->enabled)) || (empty($conf->product->enabled) && empty($conf->service->enabled))) print '<br>'; } @@ -2252,7 +2252,7 @@ else include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $fileparams = dol_most_recent_file($conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id,2).$ref, preg_quote($ref,'/')); $file=$fileparams['fullname']; - + // Define output language $outputlangs = $langs; $newlang = ''; -- GitLab