22 require
'../../main.inc.php';
23 require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
24 require_once DOL_DOCUMENT_ROOT.
'/core/lib/product.lib.php';
27 $langs->loadLangs(array(
'admin',
'products'));
29 $action =
GETPOST(
'action',
'aZ09');
32 if (!$user->admin || (empty($conf->product->enabled) && empty($conf->service->enabled))) {
43 if ($action ==
'update') {
44 $var_percent =
GETPOST(
'var_percent',
'array');
45 $var_min_percent =
GETPOST(
'var_min_percent',
'array');
46 $fk_level =
GETPOST(
'fk_level',
'array');
48 for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++) {
49 $check = isset($var_min_percent[$i]);
52 $check = $check && isset($var_percent[$i]) && isset($fk_level[$i]);
67 $i_fk_level = (int) $fk_level[$i];
71 $check2 = $i_var_min_percent;
73 $check1 = $i_fk_level >= 1 && $i_fk_level <= $conf->global->PRODUIT_MULTIPRICES_LIMIT;
74 $check2 = $i_var_percent && ($i_var_min_percent || (string) $i_var_min_percent ===
'0');
77 if (empty($i_var_percent) && empty($i_var_min_percent)) {
79 $db->query(
"DELETE FROM ".MAIN_DB_PREFIX.
"product_pricerules WHERE level = ".((
int) $i));
83 $sql =
"INSERT INTO ".MAIN_DB_PREFIX.
"product_pricerules (level, fk_level, var_percent, var_min_percent) VALUES (";
84 $sql .= ((int) $i).
", ".$db->escape($i_fk_level).
", ".$i_var_percent.
", ".$i_var_min_percent.
")";
86 if (!$db->query($sql)) {
88 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"product_pricerules";
89 $sql .=
" SET fk_level = ".$db->escape($i_fk_level).
", var_percent = ".$i_var_percent.
", var_min_percent = ".$i_var_min_percent.
" WHERE level = ".((int) $i);
91 if (!$db->query($sql)) {
108 $sql =
"SELECT rowid, level, fk_level, var_percent, var_min_percent";
109 $sql .=
" FROM ".MAIN_DB_PREFIX.
"product_pricerules";
110 $query = $db->query($sql);
114 while ($result = $db->fetch_object($query)) {
115 $rules[$result->level] = $result;
118 $title = $langs->trans(
'ProductServiceSetup');
119 $tab = $langs->trans(
"ProductsAndServices");
121 if (empty($conf->product->enabled)) {
122 $title = $langs->trans(
'ServiceSetup');
123 $tab = $langs->trans(
'Services');
124 } elseif (empty($conf->service->enabled)) {
125 $title = $langs->trans(
'ProductSetup');
126 $tab = $langs->trans(
'Products');
129 llxHeader(
'', $langs->trans(
'MultipriceRules'));
131 $linkback =
'<a href="'.DOL_URL_ROOT.
'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToModuleList").
'</a>';
135 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
136 print
'<input type="hidden" name="token" value="'.newToken().
'">';
137 print
'<input type="hidden" name="action" value="update">';
142 print
'<span class="opacitymedium">'.$langs->trans(
"MultiPriceRuleDesc").
'</span><br><br>';
145 $price_options = array();
147 for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++) {
148 $price_options[$i] = $langs->trans(
'SellingPrice').
' '.$i;
152 <table
class=
"noborder centpercent">
153 <tr
class=
"liste_titre">
154 <td style=
"text-align: center"><?php echo $langs->trans(
'PriceLevel') ?></td>
155 <td style=
"text-align: center"><?php echo $langs->trans(
'Price') ?></td>
156 <td style=
"text-align: center"><?php echo $langs->trans(
'MinPrice') ?></td></tr>
158 <td
class=
"fieldrequired" style=
"text-align: center"><?php echo $langs->trans(
'SellingPrice') ?> 1</td>
160 <td style=
"text-align: center"><input
type=
"text" style=
"text-align: right" name=
"var_min_percent[1]" size=
"5" value=
"<?php echo price(isset($rules[1]) ? $rules[1]->var_min_percent : 0, 2) ?>"> <?php echo $langs->trans(
'PercentDiscountOver', $langs->trans(
'SellingPrice').
' 1') ?></td>
162 <?php
for ($i = 2; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++) : ?>
164 <td
class=
"fieldrequired" style=
"text-align: center"><?php
165 echo $langs->trans(
'SellingPrice').
' '.$i;
167 $keyforlabel =
'PRODUIT_MULTIPRICES_LABEL'.$i;
168 if (!empty($conf->global->$keyforlabel)) {
169 print
' - '.$langs->trans($conf->global->$keyforlabel);
173 <td style=
"text-align: center">
174 <input
type=
"text" style=
"text-align: right" name=
"var_percent[<?php echo $i ?>]" size=
"5" value=
"<?php echo price(isset($rules[$i]) ? $rules[$i]->var_percent : 0, 2) ?>">
177 for ($j = 1; $j < $i; $j++) {
178 $return[$j] = $price_options[$j];
180 $texttoshow = $langs->trans(
'PercentVariationOver',
'{s1}');
181 $texttoshow = str_replace(
'{s1}',
Form::selectarray(
"fk_level[$i]", $return, (isset($rules[$i]) ? $rules[$i]->fk_level :
null)), $texttoshow);
185 <td style=
"text-align: center">
186 <input
type=
"text" style=
"text-align: right" name=
"var_min_percent[<?php echo $i ?>]" size=
"5" value=
"<?php echo price(isset($rules[$i]) ? $rules[$i]->var_min_percent : 0, 2) ?>">
187 <?php echo $langs->trans(
'PercentDiscountOver', $langs->transnoentitiesnoconv(
'SellingPrice').
' '.$i) ?>
197 print
'<div style="text-align: center">
198 <input type="submit" value="'.$langs->trans(
"Save").
'" class="button button-save">