27require
'../../main.inc.php';
28require_once DOL_DOCUMENT_ROOT.
'/core/lib/product.lib.php';
29require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.product.class.php';
30require_once DOL_DOCUMENT_ROOT.
'/product/dynamic_price/class/price_global_variable.class.php';
31require_once DOL_DOCUMENT_ROOT.
'/product/dynamic_price/class/price_global_variable_updater.class.php';
34$langs->load(
"products");
37$action =
GETPOST(
'action',
'aZ09');
38$save =
GETPOST(
'save',
'alpha');
39$cancel =
GETPOST(
'cancel',
'alpha');
49if ($action ==
'edit_variable') {
50 $res = $price_globals->fetch($selection);
56if ($action ==
'edit_updater') {
57 $res = $price_updaters->fetch($selection);
68if (!empty($action) && empty($cancel)) {
70 if ($action ==
'create_variable' || $action ==
'edit_variable') {
71 $price_globals->code = GETPOSTISSET(
'code') ?
GETPOST(
'code',
'alpha') : $price_globals->code;
72 $price_globals->description = GETPOSTISSET(
'description') ?
GETPOST(
'description',
'restricthtml') : $price_globals->
description;
73 $price_globals->value = GETPOSTISSET(
'value') ?
GETPOSTINT(
'value') : $price_globals->value;
76 foreach ($price_globals->listGlobalVariables() as $entry) {
84 if ($action ==
'create_variable' && !empty($save)) {
85 $res = $price_globals->create($user);
91 } elseif ($action ==
'edit_variable' && !empty($save)) {
92 $res = $price_globals->update($user);
98 } elseif ($action ==
'delete_variable') {
99 $res = $price_globals->delete($selection, $user);
108 if ($action ==
'create_updater' || $action ==
'edit_updater') {
109 $price_updaters->type = GETPOSTISSET(
'type') ?
GETPOSTINT(
'type') : $price_updaters->
type;
110 $price_updaters->description = GETPOSTISSET(
'description') ?
GETPOST(
'description',
'restricthtml') : $price_updaters->
description;
111 $price_updaters->parameters = GETPOSTISSET(
'parameters') ?
GETPOST(
'parameters',
'alphanohtml') : $price_updaters->parameters;
112 $price_updaters->fk_variable = GETPOSTISSET(
'fk_variable') ?
GETPOSTINT(
'fk_variable') : $price_updaters->fk_variable;
113 $price_updaters->update_interval = GETPOSTISSET(
'update_interval') ?
GETPOSTINT(
'update_interval') : $price_updaters->update_interval;
115 if ($action ==
'create_updater' && !empty($save)) {
117 $res = $price_updaters->process();
119 $res = $price_updaters->create($user);
124 setEventMessages($price_updaters->error, $price_updaters->errors,
'errors');
126 } elseif ($action ==
'edit_updater' && !empty($save)) {
128 $res = $price_updaters->process();
130 $res = $price_updaters->update($user);
135 setEventMessages($price_updaters->error, $price_updaters->errors,
'errors');
137 } elseif ($action ==
'delete_updater') {
138 $res = $price_updaters->delete($selection, $user);
142 setEventMessages($price_updaters->error, $price_updaters->errors,
'errors');
145} elseif (!empty($cancel)) {
154$form =
new Form($db);
156llxHeader(
"",
"", $langs->trans(
"DynamicPrice"),
'', 0, 0,
'',
'',
'',
'mod-product page-admin_dynamic_prices');
158$linkback =
'<a href="'.DOL_URL_ROOT.
'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToModuleList").
'</a>';
159print
load_fiche_titre($langs->trans(
"DynamicPriceConfiguration"), $linkback,
'title_setup');
161print
'<span class="opacitymedium">'.$langs->trans(
"DynamicPriceDesc").
'</span><br>';
165if ($action !=
'create_updater' && $action !=
'edit_updater') {
168 print
'<table summary="listofattributes" class="noborder centpercent">';
169 print
'<tr class="liste_titre">';
170 print
'<td>'.$langs->trans(
"Variable").
'</td>';
171 print
'<td>'.$langs->trans(
"Description").
'</td>';
172 print
'<td>'.$langs->trans(
"Value").
'</td>';
173 print
'<td width="80"> </td>';
176 $arrayglobalvars = $price_globals->listGlobalVariables();
177 if (!empty($arrayglobalvars)) {
178 foreach ($arrayglobalvars as $i => $entry) {
179 print
'<tr class="oddeven">';
180 print
'<td>'.$entry->code.
'</td>';
181 print
'<td>'.$entry->description.
'</td>';
182 print
'<td>'.price($entry->value).
'</td>';
183 print
'<td class="right"><a class="editfielda paddingrightonly" href="'.$_SERVER[
"PHP_SELF"].
'?action=edit_variable&token='.
newToken().
'&selection='.$entry->id.
'">'.
img_edit().
'</a> ';
184 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=delete_variable&token='.
newToken().
'&selection='.$entry->id.
'">'.
img_delete().
'</a></td>';
188 print
'<tr><td colspan="4"><span class="opacitymedium">';
189 print $langs->trans(
"None");
190 print
'</span></td></tr>';
194 if (empty($action)) {
198 print
'<div class="tabsAction">';
199 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?action=create_variable">'.$langs->trans(
"AddVariable").
'</a>';
207if ($action ==
'create_variable' || $action ==
'edit_variable') {
209 print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="post">';
210 print
'<input type="hidden" name="token" value="'.newToken().
'">';
211 print
'<input type="hidden" name="action" value="'.$action.
'">';
212 print
'<input type="hidden" name="selection" value="'.$selection.
'">';
215 print
'<br><table summary="listofattributes" class="border centpercent">';
218 print
'<td class="fieldrequired">'.$langs->trans(
"Variable").
'</td>';
219 print
'<td class="valeur"><input type="text" name="code" class="minwidth100" value="'.(empty($price_globals->code) ?
'' : $price_globals->code).
'"></td>';
223 print
'<td>'.$langs->trans(
"Description").
'</td>';
224 print
'<td class="valeur"><input type="text" name="description" class="minwidth200" value="'.(empty($price_globals->description) ?
'' : $price_globals->description).
'"></td>';
228 print
'<td class="fieldrequired">'.$langs->trans(
"Value").
'</td>';
229 print
'<td class="valeur"><input type="text" name="value" class="minwidth100" value="'.(empty($price_globals->value) ?
'' : $price_globals->value).
'"></td>';
234 print $form->buttonsSaveCancel();
240if ($action !=
'create_variable' && $action !=
'edit_variable') {
243 print
'<table summary="listofattributes" class="noborder centpercent">';
244 print
'<tr class="liste_titre">';
245 print
'<td>'.$langs->trans(
"VariableToUpdate").
'</td>';
246 print
'<td>'.$langs->trans(
"Description").
'</td>';
247 print
'<td>'.$langs->trans(
"Type").
'</td>';
248 print
'<td>'.$langs->trans(
"Parameters").
'</td>';
249 print
'<td>'.$langs->trans(
"UpdateInterval").
'</td>';
250 print
'<td>'.$langs->trans(
"LastUpdated").
'</td>';
251 print
'<td width="80"> </td>';
254 $arraypriceupdaters = $price_updaters->listUpdaters();
255 if (!empty($arraypriceupdaters) && is_array($arraypriceupdaters)) {
256 foreach ($arraypriceupdaters as $i => $entry) {
258 if ($entry->fk_variable > 0) {
259 $res = $price_globals->fetch($entry->fk_variable);
261 $code = $price_globals->code;
265 print
'<td>'.$code.
'</td>';
266 print
'<td>'.$entry->description.
'</td>';
267 print
'<td>'.$langs->trans(
"GlobalVariableUpdaterType".$entry->type).
'</td>';
268 print
'<td style="max-width: 250px; word-wrap: break-word; white-space: pre-wrap;">'.$entry->parameters.
'</td>';
269 print
'<td>'.$entry->update_interval.
'</td>';
270 print
'<td>'.$entry->getLastUpdated().
'</td>';
271 print
'<td class="right"><a class="editfielda paddingrightonly" href="'.$_SERVER[
"PHP_SELF"].
'?action=edit_updater&selection='.$entry->id.
'">'.
img_edit().
'</a> ';
272 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=delete_updater&token='.
newToken().
'&selection='.$entry->id.
'">'.
img_delete().
'</a></td>';
276 print
'<tr><td colspan="7"><span class="opacitymedium">';
277 print $langs->trans(
"None");
278 print
'</span></td></tr>';
282 if (empty($action)) {
286 print
'<div class="tabsAction">';
287 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?action=create_updater&token='.
newToken().
'">'.$langs->trans(
"AddUpdater").
'</a>';
293if ($action ==
'create_updater' || $action ==
'edit_updater') {
295 print
'<form id="updaterform" action="'.$_SERVER[
"PHP_SELF"].
'" method="post">';
296 print
'<input type="hidden" name="token" value="'.newToken().
'">';
297 print
'<input type="hidden" name="action" value="'.$action.
'">';
298 print
'<input type="hidden" name="selection" value="'.$selection.
'">';
301 print
'<br><table summary="listofattributes" class="border centpercent">';
304 print
'<td class="fieldrequired">'.$langs->trans(
"VariableToUpdate").
'</td><td>';
305 $globals_list = array();
306 foreach ($price_globals->listGlobalVariables() as $entry) {
307 $globals_list[$entry->id] = $entry->code;
309 print $form->selectarray(
'fk_variable', $globals_list, (empty($price_updaters->fk_variable) ? 0 : $price_updaters->fk_variable));
313 print
'<td>'.$langs->trans(
"Description").
'</td>';
314 print
'<td class="valeur"><input type="text" name="description" class="minwidth200" value="'.(empty($price_updaters->description) ?
'' : $price_updaters->description).
'"></td>';
318 print
'<td class="fieldrequired">'.$langs->trans(
"Type").
'</td><td>';
319 $type = empty($price_updaters->type) ? 0 : $price_updaters->type;
320 $type_list = array();
321 foreach ($price_updaters->types as $val) {
322 $type_list[$val] = $langs->trans(
"GlobalVariableUpdaterType".$val);
324 print $form->selectarray(
'type', $type_list, $type);
326 print
'<script type="text/javascript">
327 jQuery(document).ready(run);
329 jQuery("#type").change(on_change);
331 function on_change() {
332 jQuery("#updaterform").submit();
338 $help = $langs->trans(
"GlobalVariableUpdaterHelp".$type).
'<br><b>'.$langs->trans(
"GlobalVariableUpdaterHelpFormat".$type).
'</b>';
339 print
'<td class="fieldrequired">'.$form->textwithpicto($langs->trans(
"Parameters"), $help, 1).
'</td><td>';
340 require_once DOL_DOCUMENT_ROOT.
'/core/class/doleditor.class.php';
341 $doleditor =
new DolEditor(
'parameters', empty($price_updaters->parameters) ?
'' : $price_updaters->parameters,
'', 300,
'',
'', false, false, false, ROWS_8,
'90%');
342 $doleditor->Create();
347 print
'<td class="fieldrequired">'.$langs->trans(
"UpdateInterval").
'</td>';
348 print
'<td class="valeur"><input type="text" name="update_interval" size="10" value="'.(empty($price_updaters->update_interval) ?
'' : $price_updaters->update_interval).
'"></td>';
353 print $form->buttonsSaveCancel();
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Class to manage a WYSIWYG editor.
Class for accessing price global variables table.
Class for price global variable updaters table.
print $script_file $mode $langs defaultlang(is_numeric($duration_value) ? " delay=". $duration_value :"").(is_numeric($duration_value2) ? " after cd cd cd description as description
Only used if Module[ID]Desc translation string is not found.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
dol_strtolower($string, $encoding="UTF-8")
Convert a string to lower.
img_delete($titlealt='default', $other='class="pictodelete"', $morecss='')
Show delete logo.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
if(preg_match('/crypted:/i', $dolibarr_main_db_pass)||!empty($dolibarr_main_db_encrypted_pass)) $conf db type
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.