dolibarr 21.0.0-beta
supplier_invoice.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
3 * Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
4 * Copyright (C) 2005-2011 Regis Houssin <regis.houssin@inodbox.com>
5 * Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
6 * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
7 * Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
8 * Copyright (C) 2011-2018 Philippe Grand <philippe.grand@atoo-net.com>
9 * Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
10 * Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 3 of the License, or
15 * (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program. If not, see <https://www.gnu.org/licenses/>.
24 */
25
32// Load Dolibarr environment
33require '../main.inc.php';
34require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
35require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
36require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php';
37require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php';
38require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
39
49// Load translation files required by the page
50$langs->loadLangs(array("admin", "other", "orders"));
51
52$action = GETPOST('action', 'aZ09');
53
54$type = GETPOST('type', 'alpha');
55$value = GETPOST('value', 'alpha');
56$modulepart = GETPOST('modulepart', 'aZ09'); // Used by actions_setmoduleoptions.inc.php
57
58$label = GETPOST('label', 'alpha');
59$scandir = GETPOST('scan_dir', 'alpha');
60
61$specimenthirdparty = new Societe($db);
62$specimenthirdparty->initAsSpecimen();
63
64$error = 0;
65
66if (!$user->admin) {
68}
69
70
71/*
72 * Actions
73 */
74
75include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
76
77if ($action == 'updateMask') {
78 $maskconstinvoice = GETPOST('maskconstinvoice', 'aZ09');
79 $maskconstcredit = GETPOST('maskconstcredit', 'aZ09');
80 $maskconstdeposit = GETPOST('maskconstdeposit', 'aZ09');
81 $maskinvoice = GETPOST('maskinvoice', 'alpha');
82 $maskcredit = GETPOST('maskcredit', 'alpha');
83 $maskdeposit = GETPOST('maskdeposit', 'alpha');
84 $res = 0;
85
86 if ($maskconstinvoice && preg_match('/_MASK$/', $maskconstinvoice)) {
87 $res = dolibarr_set_const($db, $maskconstinvoice, $maskinvoice, 'chaine', 0, '', $conf->entity);
88 }
89 if ($maskconstcredit && preg_match('/_MASK$/', $maskconstcredit)) {
90 $res = dolibarr_set_const($db, $maskconstcredit, $maskcredit, 'chaine', 0, '', $conf->entity);
91 }
92 if ($maskconstdeposit && preg_match('/_MASK$/', $maskconstdeposit)) {
93 $res = dolibarr_set_const($db, $maskconstdeposit, $maskdeposit, 'chaine', 0, '', $conf->entity);
94 }
95
96 if (!($res > 0)) {
97 $error++;
98 }
99
100 if (!$error) {
101 setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
102 } else {
103 setEventMessages($langs->trans("Error"), null, 'errors');
104 }
105}
106
107if ($action == 'specimen') { // For invoices
108 $modele = GETPOST('module', 'alpha');
109
110 $facture = new FactureFournisseur($db);
111 $facture->initAsSpecimen();
112 $facture->thirdparty = $specimenthirdparty; // Define who should has build the invoice (so the supplier)
113
114 // Search template files
115 $file = '';
116 $classname = '';
117 $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
118 foreach ($dirmodels as $reldir) {
119 $file = dol_buildpath($reldir."core/modules/supplier_invoice/doc/pdf_".$modele.".modules.php", 0);
120 if (file_exists($file)) {
121 $classname = "pdf_".$modele;
122 break;
123 }
124 }
125
126 if ($classname !== '') {
127 require_once $file;
128
129 $module = new $classname($db, $facture);
130 '@phan-var-force ModelePDFSuppliersInvoices $module';
131
132 if ($module->write_file($facture, $langs) > 0) {
133 header("Location: ".DOL_URL_ROOT."/document.php?modulepart=facture_fournisseur&file=SPECIMEN.pdf");
134 return;
135 } else {
136 setEventMessages($module->error, $module->errors, 'errors');
137 dol_syslog($module->error, LOG_ERR);
138 }
139 } else {
140 setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
141 dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
142 }
143} elseif ($action == 'set') {
144 // Activate a model
145 $ret = addDocumentModel($value, $type, $label, $scandir);
146} elseif ($action == 'del') {
147 $ret = delDocumentModel($value, $type);
148 if ($ret > 0) {
149 if ($conf->global->INVOICE_SUPPLIER_ADDON_PDF == "$value") {
150 dolibarr_del_const($db, 'INVOICE_SUPPLIER_ADDON_PDF', $conf->entity);
151 }
152 }
153} elseif ($action == 'setdoc') {
154 // Set default model
155 if (dolibarr_set_const($db, "INVOICE_SUPPLIER_ADDON_PDF", $value, 'chaine', 0, '', $conf->entity)) {
156 // La constante qui a ete lue en avant du nouveau set
157 // on passe donc par une variable pour avoir un affichage coherent
158 $conf->global->INVOICE_SUPPLIER_ADDON_PDF = $value;
159 }
160
161 // On active le modele
162 $ret = delDocumentModel($value, $type);
163 if ($ret > 0) {
164 $ret = addDocumentModel($value, $type, $label, $scandir);
165 }
166} elseif ($action == 'unsetdoc') {
167 dolibarr_del_const($db, "INVOICE_SUPPLIER_ADDON_PDF", $conf->entity);
168}
169
170if ($action == 'setmod') {
171 // TODO Verify if the chosen numbering module can be activated
172 // by calling method canBeActivated
173
174 dolibarr_set_const($db, "INVOICE_SUPPLIER_ADDON_NUMBER", $value, 'chaine', 0, '', $conf->entity);
175}
176
177if ($action == 'addcat') {
178 $fourn = new Fournisseur($db);
179 $fourn->CreateCategory($user, GETPOST('cat', 'alphanohtml'));
180}
181
182if ($action == 'set_SUPPLIER_INVOICE_FREE_TEXT') {
183 $freetext = GETPOST('SUPPLIER_INVOICE_FREE_TEXT', 'restricthtml'); // No alpha here, we want exact string
184
185 $res = dolibarr_set_const($db, "SUPPLIER_INVOICE_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity);
186
187 if (!($res > 0)) {
188 $error++;
189 }
190
191 if (!$error) {
192 setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
193 } else {
194 setEventMessages($langs->trans("Error"), null, 'errors');
195 }
196}
197
198
199/*
200 * View
201 */
202
203$form = new Form($db);
204
205$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
206
207llxHeader('', '', '', '', 0, 0, '', '', '', 'mod-admin page-supplier_invoice');
208
209$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
210print load_fiche_titre($langs->trans("SuppliersSetup"), $linkback, 'title_setup');
211
212print "<br>";
213
215
216print dol_get_fiche_head($head, 'invoice', $langs->trans("Suppliers"), -1, 'company');
217
218
219// Supplier invoice numbering module
220
221print load_fiche_titre($langs->trans("SuppliersInvoiceNumberingModel"), '', '');
222
223print '<div class="div-table-responsive-no-min">';
224print '<table class="noborder centpercent">';
225print '<tr class="liste_titre">';
226print '<td width="100">'.$langs->trans("Name").'</td>';
227print '<td>'.$langs->trans("Description").'</td>';
228print '<td>'.$langs->trans("Example").'</td>';
229print '<td align="center" width="60">'.$langs->trans("Status").'</td>';
230print '<td align="center" width="16">'.$langs->trans("ShortInfo").'</td>';
231print "</tr>\n";
232
233clearstatcache();
234
235foreach ($dirmodels as $reldir) {
236 $dir = dol_buildpath($reldir."core/modules/supplier_invoice");
237
238 if (is_dir($dir)) {
239 $handle = opendir($dir);
240 if (is_resource($handle)) {
241 while (($file = readdir($handle)) !== false) {
242 if (substr($file, 0, 24) == 'mod_facture_fournisseur_' && substr($file, dol_strlen($file) - 3, 3) == 'php') {
243 $file = substr($file, 0, dol_strlen($file) - 4);
244
245 require_once $dir.'/'.$file.'.php';
246
247 $module = new $file();
248
249 '@phan-var-force ModeleNumRefSuppliersInvoices $module';
250
251 if ($module->isEnabled()) {
252 // Show modules according to features level
253 if ($module->version == 'development' && getDolGlobalInt('MAIN_FEATURES_LEVEL') < 2) {
254 continue;
255 }
256 if ($module->version == 'experimental' && getDolGlobalInt('MAIN_FEATURES_LEVEL') < 1) {
257 continue;
258 }
259
260
261 print '<tr class="oddeven"><td>'.$module->getName($langs)."</td><td>\n";
262 print $module->info($langs);
263 print '</td>';
264
265 // Show example of numbering module
266 print '<td class="nowrap">';
267 $tmp = $module->getExample();
268 if (preg_match('/^Error/', $tmp)) {
269 $langs->load("errors");
270 print '<div class="error">'.$langs->trans($tmp).'</div>';
271 } elseif ($tmp == 'NotConfigured') {
272 print '<span class="opacitymedium">'.$langs->trans($tmp).'</span>';
273 } else {
274 print $tmp;
275 }
276 print '</td>'."\n";
277
278 print '<td class="center">';
279 if ($conf->global->INVOICE_SUPPLIER_ADDON_NUMBER == "$file") {
280 print img_picto($langs->trans("Activated"), 'switch_on');
281 } else {
282 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>';
283 }
284 print '</td>';
285
286 $invoice = new FactureFournisseur($db);
287 $invoice->initAsSpecimen();
288
289 // Info
290 $htmltooltip = '';
291 $htmltooltip .= ''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
292 $nextval = $module->getNextValue($mysoc, $invoice);
293 if ("$nextval" != $langs->trans("NotAvailable")) { // Keep " on nextval
294 $htmltooltip .= ''.$langs->trans("NextValue").': ';
295 if ($nextval) {
296 if (preg_match('/^Error/', $nextval) || $nextval == 'NotConfigured') {
297 $nextval = $langs->trans($nextval);
298 }
299 $htmltooltip .= $nextval.'<br>';
300 } else {
301 $htmltooltip .= $langs->trans($module->error).'<br>';
302 }
303 }
304
305 print '<td class="center">';
306 print $form->textwithpicto('', $htmltooltip, 1, 0);
307 print '</td>';
308
309 print '</tr>';
310 }
311 }
312 }
313 closedir($handle);
314 }
315 }
316}
317
318print '</table></div><br>';
319
320
321
322
323/*
324 * Documents models for supplier invoices
325 */
326
327print load_fiche_titre($langs->trans("BillsPDFModules"), '', '');
328
329// Defini tableau def de modele
330$def = array();
331
332$sql = "SELECT nom";
333$sql .= " FROM ".MAIN_DB_PREFIX."document_model";
334$sql .= " WHERE type = 'invoice_supplier'";
335$sql .= " AND entity = ".$conf->entity;
336
337$resql = $db->query($sql);
338if ($resql) {
339 $i = 0;
340 $num_rows = $db->num_rows($resql);
341 while ($i < $num_rows) {
342 $array = $db->fetch_array($resql);
343 if (is_array($array)) {
344 array_push($def, $array[0]);
345 }
346 $i++;
347 }
348} else {
349 dol_print_error($db);
350}
351
352print '<div class="div-table-responsive-no-min">';
353print '<table class="noborder centpercent">'."\n";
354print '<tr class="liste_titre">'."\n";
355print '<td width="100">'.$langs->trans("Name").'</td>'."\n";
356print '<td>'.$langs->trans("Description").'</td>'."\n";
357print '<td align="center" width="60">'.$langs->trans("Status").'</td>'."\n";
358print '<td align="center" width="60">'.$langs->trans("Default").'</td>'."\n";
359print '<td align="center" width="40">'.$langs->trans("ShortInfo").'</td>';
360print '<td align="center" width="40">'.$langs->trans("Preview").'</td>';
361print '</tr>'."\n";
362
363clearstatcache();
364
365foreach ($dirmodels as $reldir) {
366 $realpath = $reldir."core/modules/supplier_invoice/doc";
367 $dir = dol_buildpath($realpath);
368
369 if (is_dir($dir)) {
370 $handle = opendir($dir);
371
372
373 if (is_resource($handle)) {
374 while (($file = readdir($handle)) !== false) {
375 if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) {
376 $name = substr($file, 4, dol_strlen($file) - 16);
377 $classname = substr($file, 0, dol_strlen($file) - 12);
378
379 require_once $dir.'/'.$file;
380 $module = new $classname($db, new FactureFournisseur($db));
381
382 '@phan-var-force ModelePDFSuppliersInvoices $module';
383
384
385 print "<tr class=\"oddeven\">\n";
386 print "<td>";
387 print(empty($module->name) ? $name : $module->name);
388 print "</td>\n";
389 print "<td>\n";
390 require_once $dir.'/'.$file;
391 $module = new $classname($db, $specimenthirdparty);
392 '@phan-var-force ModelePDFSuppliersInvoices $module';
393 if (method_exists($module, 'info')) {
394 print $module->info($langs); // @phan-suppress-current-line PhanUndeclaredMethod
395 } else {
396 print $module->description;
397 }
398
399 print "</td>\n";
400
401 // Active
402 if (in_array($name, $def)) {
403 print '<td class="center">'."\n";
404 //if ($conf->global->INVOICE_SUPPLIER_ADDON_PDF != "$name")
405 //{
406 // Even if choice is the default value, we allow to disable it: For supplier invoice, we accept to have no doc generation at all
407 print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=del&token='.newToken().'&value='.urlencode($name).'&scan_dir='.urlencode($module->scandir).'&label='.urlencode($module->name).'&amp;type=invoice_supplier">';
408 print img_picto($langs->trans("Enabled"), 'switch_on');
409 print '</a>';
410 /*}
411 else
412 {
413 print img_picto($langs->trans("Enabled"),'switch_on');
414 }*/
415 print "</td>";
416 } else {
417 print '<td class="center">'."\n";
418 print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=set&token='.newToken().'&value='.urlencode($name).'&scan_dir='.urlencode($module->scandir).'&label='.urlencode($module->name).'&amp;type=invoice_supplier">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a>';
419 print "</td>";
420 }
421
422 // Default
423 print '<td class="center">';
424 if (getDolGlobalString("INVOICE_SUPPLIER_ADDON_PDF") == "$name") {
425 //print img_picto($langs->trans("Default"),'on');
426 // Even if choice is the default value, we allow to disable it: For supplier invoice, we accept to have no doc generation at all
427 print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=unsetdoc&token='.newToken().'&value='.$name.'&scan_dir='.$module->scandir.'&label='.urlencode($module->name).'&type=invoice_supplier"" alt="'.$langs->trans("Disable").'">'.img_picto($langs->trans("Enabled"), 'on').'</a>';
428 } else {
429 print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=setdoc&token='.newToken().'&value='.$name.'&scan_dir='.$module->scandir.'&label='.urlencode($module->name).'&type=invoice_supplier"" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
430 }
431 print '</td>';
432
433 // Info
434 $htmltooltip = ''.$langs->trans("Name").': '.$module->name;
435 $htmltooltip .= '<br>'.$langs->trans("Type").': '.($module->type ? $module->type : $langs->trans("Unknown"));
436 $htmltooltip .= '<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
437 $htmltooltip .= '<br>'.$langs->trans("Path").': '.preg_replace('/^\//', '', $realpath).'/'.$file;
438
439 $htmltooltip .= '<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
440 $htmltooltip .= '<br>'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1);
441 $htmltooltip .= '<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg, 1, 1);
442 $htmltooltip .= '<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg, 1, 1);
443 print '<td class="center">';
444 print $form->textwithpicto('', $htmltooltip, 1, 0);
445 print '</td>';
446 print '<td class="center">';
447 print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.urlencode($name).'">'.img_object($langs->trans("Preview"), 'pdf').'</a>';
448 print '</td>';
449
450 print "</tr>\n";
451 }
452 }
453
454 closedir($handle);
455 }
456 }
457}
458
459print '</table></div><br>';
460
461/*
462 * Other options
463 */
464
465print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
466print '<input type="hidden" name="token" value="'.newToken().'">';
467print '<input type="hidden" name="action" value="set_SUPPLIER_INVOICE_FREE_TEXT">';
468
469print load_fiche_titre($langs->trans("OtherOptions"), '', '');
470
471print '<div class="div-table-responsive-no-min">';
472print '<table class="noborder centpercent">';
473print '<tr class="liste_titre">';
474print '<td>'.$langs->trans("Parameter").'</td>';
475print '<td align="center" width="60">'.$langs->trans("Value").'</td>';
476print '<td width="80">&nbsp;</td>';
477print "</tr>\n";
478
479$substitutionarray = pdf_getSubstitutionArray($langs, null, null, 2);
480$substitutionarray['__(AnyTranslationKey)__'] = $langs->trans("Translation");
481$htmltext = '<i>'.$langs->trans("AvailableVariables").':<br>';
482foreach ($substitutionarray as $key => $val) {
483 $htmltext .= $key.'<br>';
484}
485$htmltext .= '</i>';
486
487print '<tr class="oddeven"><td colspan="2">';
488print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
489$variablename = 'SUPPLIER_INVOICE_FREE_TEXT';
490if (!getDolGlobalString('PDF_ALLOW_HTML_FOR_FREE_TEXT')) {
491 print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
492} else {
493 include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
494 $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
495 print $doleditor->Create();
496}
497print '</td><td class="right">';
498print '<input type="submit" class="button button-edit" value="'.$langs->trans("Modify").'">';
499print "</td></tr>\n";
500
501print '</table></div><br>';
502
503print '</form>';
504
505
506/*
507 * Notifications
508 */
509
510print load_fiche_titre($langs->trans("Notifications"), '', '');
511
512print '<div class="div-table-responsive-no-min">';
513print '<table class="noborder centpercent">';
514print '<tr class="liste_titre">';
515print '<td>'.$langs->trans("Parameter").'</td>';
516print '<td align="center" width="60"></td>';
517print '<td width="80">&nbsp;</td>';
518print "</tr>\n";
519
520print '<tr class="oddeven"><td colspan="2">';
521print $langs->trans("YouMayFindNotificationsFeaturesIntoModuleNotification").'<br>';
522print '</td><td class="right">';
523print "</td></tr>\n";
524
525print '</table>';
526print '</div>';
527
528// End of page
529llxFooter();
530$db->close();
addDocumentModel($name, $type, $label='', $description='')
Add document model used by doc generator.
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).
dolibarr_del_const($db, $name, $entity=1)
Delete a constant.
delDocumentModel($name, $type)
Delete document model used by doc generator.
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.
Definition wrapper.php:71
Class to manage a WYSIWYG editor.
Class to manage suppliers invoices.
Class to manage generation of HTML components Only common components must be here.
Class to manage suppliers.
Class to manage third parties objects (customers, suppliers, prospects...)
llxFooter()
Footer empty.
Definition document.php:107
supplierorder_admin_prepare_head()
Return array head with list of tabs to view object information.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
yn($yesno, $format=1, $color=0)
Return yes or no in current language.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
Definition member.php:79
pdf_getSubstitutionArray($outputlangs, $exclude=null, $object=null, $onlykey=0, $include=null)
Return array of possible substitutions for PDF content (without external module substitutions).
Definition pdf.lib.php:765
$conf db name
Only used if Module[ID]Name translation string is not found.
Definition repair.php:152
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.