31 require
'../main.inc.php';
32 require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
33 require_once DOL_DOCUMENT_ROOT.
'/core/lib/pdf.lib.php';
34 require_once DOL_DOCUMENT_ROOT.
'/core/lib/expedition.lib.php';
35 require_once DOL_DOCUMENT_ROOT.
'/delivery/class/delivery.class.php';
38 $langs->loadLangs(array(
"admin",
"sendings",
"deliveries",
"other"));
44 $action =
GETPOST(
'action',
'alpha');
45 $value =
GETPOST(
'value',
'alpha');
46 $modulepart =
GETPOST(
'modulepart',
'aZ09');
48 $label =
GETPOST(
'label',
'alpha');
49 $scandir =
GETPOST(
'scan_dir',
'alpha');
57 include DOL_DOCUMENT_ROOT.
'/core/actions_setmoduleoptions.inc.php';
59 if ($action ==
'updateMask') {
60 $maskconstdelivery =
GETPOST(
'maskconstdelivery',
'alpha');
61 $maskdelivery =
GETPOST(
'maskdelivery',
'alpha');
62 if ($maskconstdelivery) {
63 $res =
dolibarr_set_const($db, $maskconstdelivery, $maskdelivery,
'chaine', 0,
'', $conf->entity);
77 if ($action ==
'set_DELIVERY_FREE_TEXT') {
78 $free =
GETPOST(
'DELIVERY_FREE_TEXT',
'restricthtml');
79 $res =
dolibarr_set_const($db,
"DELIVERY_FREE_TEXT", $free,
'chaine', 0,
'', $conf->entity);
92 if ($action ==
'specimen') {
93 $modele =
GETPOST(
'module',
'alpha');
96 $sending->initAsSpecimen();
99 $file =
''; $classname =
''; $filefound = 0;
100 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
101 foreach ($dirmodels as $reldir) {
102 $file =
dol_buildpath($reldir.
"core/modules/delivery/doc/pdf_".$modele.
".modules.php", 0);
103 if (file_exists($file)) {
105 $classname =
"pdf_".$modele;
113 $module =
new $classname($db);
115 if ($module->write_file($sending, $langs) > 0) {
116 header(
"Location: ".DOL_URL_ROOT.
"/document.php?modulepart=delivery&file=SPECIMEN.pdf");
124 dol_syslog($langs->trans(
"ErrorModuleNotFound"), LOG_ERR);
128 if ($action ==
'set') {
132 if ($action ==
'del') {
135 if ($conf->global->DELIVERY_ADDON_PDF ==
"$value") {
141 if ($action ==
'setdoc') {
142 if (
dolibarr_set_const($db,
"DELIVERY_ADDON_PDF", $value,
'chaine', 0,
'', $conf->entity)) {
145 $conf->global->DELIVERY_ADDON_PDF = $value;
155 if ($action ==
'setmod') {
159 dolibarr_set_const($db,
"DELIVERY_ADDON_NUMBER", $value,
'chaine', 0,
'', $conf->entity);
167 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
173 $linkback =
'<a href="'.DOL_URL_ROOT.
'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToModuleList").
'</a>';
174 print
load_fiche_titre($langs->trans(
"SendingsSetup"), $linkback,
'title_setup');
178 print
dol_get_fiche_head($head,
'receivings', $langs->trans(
"Receivings"), -1,
'shipment');
183 print
load_fiche_titre($langs->trans(
"DeliveryOrderNumberingModules"),
'',
'');
185 print
'<table class="noborder centpercent">';
186 print
'<tr class="liste_titre">';
187 print
'<td width="100">'.$langs->trans(
"Name").
'</td>';
188 print
'<td>'.$langs->trans(
"Description").
'</td>';
189 print
'<td class="nowrap">'.$langs->trans(
"Example").
'</td>';
190 print
'<td align="center" width="60">'.$langs->trans(
"Status").
'</td>';
191 print
'<td align="center" width="16">'.$langs->trans(
"ShortInfo").
'</td>';
196 foreach ($dirmodels as $reldir) {
200 $handle = opendir($dir);
201 if (is_resource($handle)) {
202 while (($file = readdir($handle)) !==
false) {
203 if (preg_match(
'/^mod_delivery_([a-z0-9_]*)\.php$/', $file)) {
204 $file = substr($file, 0,
dol_strlen($file) - 4);
206 require_once $dir.$file.
'.php';
210 if ($module->isEnabled()) {
212 if ($module->version ==
'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) {
215 if ($module->version ==
'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) {
219 print
'<tr class="oddeven"><td>'.$module->name.
"</td><td>\n";
220 print $module->info();
224 print
'<td class="nowrap">';
225 $tmp = $module->getExample();
226 if (preg_match(
'/^Error/', $tmp)) {
227 $langs->load(
"errors");
228 print
'<div class="error">'.$langs->trans($tmp).
'</div>';
229 } elseif ($tmp ==
'NotConfigured') {
230 print
'<span class="opacitymedium">'.$langs->trans($tmp).
'</span>';
236 print
'<td class="center">';
237 if ($conf->global->DELIVERY_ADDON_NUMBER ==
"$file") {
238 print
img_picto($langs->trans(
"Activated"),
'switch_on');
240 print
'<a class="reposition" href="'.$_SERVER[
"PHP_SELF"].
'?action=setmod&token='.
newToken().
'&value='.urlencode($file).
'" alt="'.$langs->trans(
"Default").
'">'.
img_picto($langs->trans(
"Disabled"),
'switch_off').
'</a>';
245 $delivery->initAsSpecimen();
249 $htmltooltip .=
''.$langs->trans(
"Version").
': <b>'.$module->getVersion().
'</b><br>';
250 $nextval = $module->getNextValue($mysoc, $delivery);
251 if (
"$nextval" != $langs->trans(
"NotAvailable")) {
252 $htmltooltip .=
''.$langs->trans(
"NextValue").
': ';
254 if (preg_match(
'/^Error/', $nextval) || $nextval ==
'NotConfigured') {
255 $nextval = $langs->trans($nextval);
257 $htmltooltip .= $nextval.
'<br>';
259 $htmltooltip .= $langs->trans($module->error).
'<br>';
263 print
'<td class="center">';
264 print
$form->textwithpicto(
'', $htmltooltip, 1, 0);
290 $sql .=
" FROM ".MAIN_DB_PREFIX.
"document_model";
291 $sql .=
" WHERE type = '".$db->escape($type).
"'";
292 $sql .=
" AND entity = ".$conf->entity;
294 $resql = $db->query($sql);
297 $num_rows = $db->num_rows(
$resql);
298 while ($i < $num_rows) {
299 $array = $db->fetch_array(
$resql);
300 array_push($def, $array[0]);
307 print
'<table class="noborder centpercent">';
308 print
'<tr class="liste_titre">';
309 print
'<td width="140">'.$langs->trans(
"Name").
'</td>';
310 print
'<td>'.$langs->trans(
"Description").
'</td>';
311 print
'<td align="center" width="60">'.$langs->trans(
"Status").
'</td>';
312 print
'<td align="center" width="60">'.$langs->trans(
"Default").
'</td>';
313 print
'<td align="center" width="32">'.$langs->trans(
"ShortInfo").
'</td>';
314 print
'<td align="center" width="32">'.$langs->trans(
"Preview").
'</td>';
319 foreach ($dirmodels as $reldir) {
323 $handle = opendir($dir);
324 if (is_resource($handle)) {
325 while (($file = readdir($handle)) !==
false) {
331 foreach ($filelist as $file) {
332 if (preg_match(
'/\.modules\.php$/i', $file) && preg_match(
'/^(pdf_|doc_)/', $file)) {
333 if (file_exists($dir.
'/'.$file)) {
334 $name = substr($file, 4,
dol_strlen($file) - 16);
335 $classname = substr($file, 0,
dol_strlen($file) - 12);
337 require_once $dir.
'/'.$file;
338 $module =
new $classname($db);
340 $modulequalified = 1;
341 if ($module->version ==
'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) {
342 $modulequalified = 0;
344 if ($module->version ==
'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) {
345 $modulequalified = 0;
348 if ($modulequalified) {
349 print
'<tr class="oddeven"><td width="100">';
350 print (empty($module->name) ? $name : $module->name);
352 if (method_exists($module,
'info')) {
353 print $module->info($langs);
355 print $module->description;
360 if (in_array($name, $def)) {
361 print
"<td align=\"center\">\n";
362 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=del&token='.
newToken().
'&value='.urlencode($name).
'&scan_dir='.urlencode($module->scandir).
'&label='.urlencode($module->name).
'">';
363 print
img_picto($langs->trans(
"Enabled"),
'switch_on');
367 print
"<td align=\"center\">\n";
368 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=set&token='.
newToken().
'&value='.urlencode($name).
'&scan_dir='.urlencode($module->scandir).
'&label='.urlencode($module->name).
'">'.
img_picto($langs->trans(
"Disabled"),
'switch_off').
'</a>';
373 print
"<td align=\"center\">";
374 if ($conf->global->DELIVERY_ADDON_PDF ==
"$name") {
375 print
img_picto($langs->trans(
"Default"),
'on');
377 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=setdoc&token='.
newToken().
'&value='.urlencode($name).
'&scan_dir='.urlencode($module->scandir).
'&label='.urlencode($module->name).
'" alt="'.$langs->trans(
"Default").
'">'.
img_picto($langs->trans(
"Disabled"),
'off').
'</a>';
382 $htmltooltip =
''.$langs->trans(
"Type").
': '.($module->type ? $module->type : $langs->trans(
"Unknown"));
383 $htmltooltip .=
'<br>'.$langs->trans(
"Width").
'/'.$langs->trans(
"Height").
': '.$module->page_largeur.
'/'.$module->page_hauteur;
384 $htmltooltip .=
'<br><br><u>'.$langs->trans(
"FeaturesSupported").
'</u>:';
385 $htmltooltip .=
'<br>'.$langs->trans(
"Logo").
': '.
yn($module->option_logo, 1, 1);
386 print
'<td class="center">';
387 print
$form->textwithpicto(
'', $htmltooltip, 1, 0);
391 print
'<td class="center">';
392 if ($module->type ==
'pdf') {
393 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=specimen&module='.$name.
'">'.
img_object($langs->trans(
"Preview"),
'pdf').
'</a>';
395 print
img_object($langs->trans(
"PreviewNotAvailable"),
'generic');
415 print
'<table class="noborder centpercent">';
416 print
'<tr class="liste_titre">';
417 print
'<td>'.$langs->trans(
"Parameter").
'</td>';
418 print
'<td align="center" width="60">'.$langs->trans(
"Value").
'</td>';
419 print
'<td width="80"> </td>';
423 $substitutionarray[
'__(AnyTranslationKey)__'] = $langs->trans(
"Translation");
424 $htmltext =
'<i>'.$langs->trans(
"AvailableVariables").
':<br>';
425 foreach ($substitutionarray as $key => $val) {
426 $htmltext .= $key.
'<br>';
430 print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="post">';
431 print
'<input type="hidden" name="token" value="'.newToken().
'">';
432 print
'<input type="hidden" name="action" value="set_DELIVERY_FREE_TEXT">';
433 print
'<tr class="oddeven"><td colspan="2">';
434 print
$form->textwithpicto($langs->trans(
"FreeLegalTextOnDeliveryReceipts"), $langs->trans(
"AddCRIfTooLong").
'<br><br>'.$htmltext, 1,
'help',
'', 0, 2,
'freetexttooltip').
'<br>';
435 $variablename =
'DELIVERY_FREE_TEXT';
436 if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
437 print
'<textarea name="'.$variablename.
'" class="flat" cols="120">'.
getDolGlobalString($variablename).
'</textarea>';
439 include_once DOL_DOCUMENT_ROOT.
'/core/class/doleditor.class.php';
441 print $doleditor->Create();
443 print
'</td><td class="right">';
444 print
'<input type="submit" class="button button-edit" value="'.$langs->trans(
"Modify").
'">';
445 print
"</td></tr>\n";
Class to manage receptions.
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
delDocumentModel($name, $type)
Delete document model used by doc generator.
yn($yesno, $case=1, $color=0)
Return yes or no in current language.
if($cancel &&!$id) if($action== 'add'&&!$cancel) if($action== 'delete') if($id) $form
Actions.
dolibarr_set_const($db, $name, $value, $type= 'chaine', $visible=0, $note= '', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
addDocumentModel($name, $type, $label= '', $description= '')
Add document model used by doc generator.
if(!function_exists('utf8_encode')) if(!function_exists('utf8_decode')) getDolGlobalString($key, $default= '')
Return dolibarr global constant string value.
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOCSRFCHECK')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
expedition_admin_prepare_head()
Return array head with list of tabs to view object informations.
setEventMessages($mesg, $mesgs, $style= 'mesgs', $messagekey= '')
Set event messages in dol_events session object.
load_fiche_titre($titre, $morehtmlright= '', $picto= 'generic', $pictoisfullpath=0, $id= '', $morecssontable= '', $morehtmlcenter= '')
Load a title with picto.
dol_strlen($string, $stringencoding= 'UTF-8')
Make a strlen call.
dolibarr_del_const($db, $name, $entity=1)
Delete a constant.
img_picto($titlealt, $picto, $moreatt= '', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt= '', $morecss= '', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename= '', $restricttologhandler= '', $logcontext=null)
Write log message into outputs.
img_object($titlealt, $picto, $moreatt= '', $pictoisfullpath=false, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
accessforbidden($message= '', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program Calling this function terminate execution ...
if(isModEnabled('facture')&&!empty($user->rights->facture->lire)) if((isModEnabled('fournisseur')&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)&&$user->rights->fournisseur->facture->lire)||(isModEnabled('supplier_invoice')&&$user->rights->supplier_invoice->lire)) if(isModEnabled('don')&&!empty($user->rights->don->lire)) if(isModEnabled('tax')&&!empty($user->rights->tax->charges->lire)) if(isModEnabled('facture')&&isModEnabled('commande')&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) $resql
Social contributions to pay.
pdf_getSubstitutionArray($outputlangs, $exclude=null, $object=null, $onlykey=0)
Return array of possible substitutions for PDF content (without external module substitutions).
dol_get_fiche_head($links=array(), $active= '', $title= '', $notab=0, $picto= '', $pictoisfullpath=0, $morehtmlright= '', $morecss= '', $limittoshow=0, $moretabssuffix= '')
Show tabs of a record.
dol_print_error($db= '', $error= '', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
newToken()
Return the value of token currently saved into session with name 'newtoken'.
Class to manage a WYSIWYG editor.