29require
'../main.inc.php';
30require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
31require_once DOL_DOCUMENT_ROOT.
'/core/lib/fourn.lib.php';
32require_once DOL_DOCUMENT_ROOT.
'/fourn/class/paiementfourn.class.php';
35$langs->loadLangs(array(
"admin",
"errors",
"other",
"bills",
"orders"));
41$action =
GETPOST(
'action',
'aZ09');
42$value =
GETPOST(
'value',
'alpha');
43$modulepart =
GETPOST(
'modulepart',
'aZ09');
45$label =
GETPOST(
'label',
'alpha');
46$scandir =
GETPOST(
'scandir',
'alpha');
47$type =
'supplier_payment';
54include DOL_DOCUMENT_ROOT.
'/core/actions_setmoduleoptions.inc.php';
56if ($action ==
'updateMask') {
57 $maskconstsupplierpayment =
GETPOST(
'maskconstsupplierpayment',
'aZ09');
58 $masksupplierpayment =
GETPOST(
'masksupplierpayment',
'alpha');
59 if ($maskconstsupplierpayment && preg_match(
'/_MASK$/', $maskconstsupplierpayment)) {
60 $res =
dolibarr_set_const($db, $maskconstsupplierpayment, $masksupplierpayment,
'chaine', 0,
'', $conf->entity);
72} elseif ($action ==
'setmod') {
73 dolibarr_set_const($db,
"SUPPLIER_PAYMENT_ADDON", $value,
'chaine', 0,
'', $conf->entity);
74} elseif ($action ==
'set') {
77} elseif ($action ==
'del') {
84} elseif ($action ==
'setdoc') {
86 if (
dolibarr_set_const($db,
"SUPPLIER_PAYMENT_ADDON_PDF", $value,
'chaine', 0,
'', $conf->entity)) {
89 $conf->global->FACTURE_ADDON_PDF = $value;
97} elseif ($action ==
'unsetdoc') {
99} elseif ($action ==
'specimen') {
100 $modele =
GETPOST(
'module',
'alpha');
103 $paiementFourn->initAsSpecimen();
108 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
109 foreach ($dirmodels as $reldir) {
110 $file =
dol_buildpath($reldir.
"core/modules/supplier_payment/doc/pdf_".$modele.
".modules.php", 0);
111 if (file_exists($file)) {
112 $classname =
"pdf_".$modele;
117 if ($classname !==
'') {
120 $module =
new $classname($db);
121 '@phan-var-force CommonDocGenerator $module';
123 if ($module->write_file($paiementFourn, $langs) > 0) {
124 header(
"Location: ".DOL_URL_ROOT.
"/document.php?modulepart=supplier_payment&file=SPECIMEN.pdf");
132 dol_syslog($langs->trans(
"ErrorModuleNotFound"), LOG_ERR);
134} elseif ($action ==
'setparams') {
135 $res =
dolibarr_set_const($db,
"PAYMENTS_FOURN_REPORT_GROUP_BY_MOD",
GETPOSTINT(
'PAYMENTS_FOURN_REPORT_GROUP_BY_MOD'),
'chaine', 0,
'', $conf->entity);
152$dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
154llxHeader(
'', $langs->trans(
"SupplierPaymentSetup"),
'EN:Supplier_Payment_Configuration|FR:Configuration_module_paiement_fournisseur',
'', 0, 0,
'',
'',
'',
'mod-admin page-supplier_payment');
156$form =
new Form($db);
159$linkback =
'<a href="'.DOL_URL_ROOT.
'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToModuleList").
'</a>';
160print
load_fiche_titre($langs->trans(
"SupplierPaymentSetup"), $linkback,
'title_setup');
165print
dol_get_fiche_head($head,
'supplierpayment', $langs->trans(
"Suppliers"), -1,
'company');
172 $conf->global->SUPPLIER_PAYMENT_ADDON =
'mod_supplier_payment_bronan';
180$sql .=
" FROM ".MAIN_DB_PREFIX.
"document_model";
181$sql .=
" WHERE type = '".$db->escape($type).
"'";
182$sql .=
" AND entity = ".$conf->entity;
183$resql = $db->query($sql);
186 $num_rows = $db->num_rows($resql);
187 while ($i < $num_rows) {
188 $array = $db->fetch_array($resql);
189 if (is_array($array)) {
190 array_push($def, $array[0]);
198print
'<table class="noborder centpercent">';
199print
'<tr class="liste_titre">';
200print
'<td>'.$langs->trans(
"Name").
'</td>';
201print
'<td>'.$langs->trans(
"Description").
'</td>';
202print
'<td class="nowrap">'.$langs->trans(
"Example").
'</td>';
203print
'<td align="center" width="60">'.$langs->trans(
"Status").
'</td>';
204print
'<td align="center" width="16">'.$langs->trans(
"ShortInfo").
'</td>';
209foreach ($dirmodels as $reldir) {
210 $dir =
dol_buildpath($reldir.
"core/modules/supplier_payment/");
212 $handle = opendir($dir);
213 if (is_resource($handle)) {
214 while (($file = readdir($handle)) !==
false) {
215 if (!is_dir($dir.$file) || (substr($file, 0, 1) !=
'.' && substr($file, 0, 3) !=
'CVS')) {
217 $classname = preg_replace(
'/\.php$/',
'', $file);
219 if (!is_file($dir.$filebis)) {
220 $filebis = $file.
"/".$file.
".modules.php";
221 $classname =
"mod_supplier_payment_".$file;
224 preg_match(
'/\-(.*)_(.*)$/', $classname, $reg);
225 if (!empty($reg[2]) && $reg[2] != strtoupper($mysoc->country_code)) {
229 $classname = preg_replace(
'/\-.*$/',
'', $classname);
230 if (!class_exists($classname) && is_readable($dir.$filebis) && (preg_match(
'/mod_/', $filebis) || preg_match(
'/mod_/', $classname)) && substr($filebis,
dol_strlen($filebis) - 3, 3) ==
'php') {
232 require_once $dir.$filebis;
234 $module =
new $classname($db);
237 if ($module->version ==
'development' &&
getDolGlobalInt(
'MAIN_FEATURES_LEVEL') < 2) {
240 if ($module->version ==
'experimental' &&
getDolGlobalInt(
'MAIN_FEATURES_LEVEL') < 1) {
244 if ($module->isEnabled()) {
245 print
'<tr class="oddeven"><td width="100">';
246 echo preg_replace(
'/\-.*$/',
'', preg_replace(
'/mod_supplier_payment_/',
'', preg_replace(
'/\.php$/',
'', $file)));
249 print $module->info($langs);
254 print
'<td class="nowrap">';
255 $tmp = $module->getExample();
256 if (preg_match(
'/^Error/', $tmp)) {
257 $langs->load(
"errors");
258 print
'<div class="error">'.$langs->trans($tmp).
'</div>';
259 } elseif ($tmp ==
'NotConfigured') {
260 print
'<span class="opacitymedium">'.$langs->trans($tmp).
'</span>';
266 print
'<td class="center">';
268 if ($conf->global->SUPPLIER_PAYMENT_ADDON == $file ||
getDolGlobalString(
'SUPPLIER_PAYMENT_ADDON') .
'.php' == $file) {
269 print
img_picto($langs->trans(
"Activated"),
'switch_on');
271 print
'<a class="reposition" href="'.$_SERVER[
"PHP_SELF"].
'?action=setmod&token='.
newToken().
'&value='.preg_replace(
'/\.php$/',
'', $file).(!empty($module->scandir) ?
'&scandir='.$module->scandir :
'').
'&label='.urlencode($module->name).
'" alt="'.$langs->trans(
"Default").
'">'.
img_picto($langs->trans(
"Disabled"),
'switch_off').
'</a>';
276 $payment->initAsSpecimen();
280 $htmltooltip .=
''.$langs->trans(
"Version").
': <b>'.$module->getVersion().
'</b><br>';
281 $nextval = $module->getNextValue($mysoc, $payment);
282 if (
"$nextval" != $langs->trans(
"NotAvailable")) {
283 $htmltooltip .= $langs->trans(
"NextValue").
': ';
285 if (preg_match(
'/^Error/', $nextval) || $nextval ==
'NotConfigured') {
286 $nextval = $langs->trans($nextval);
288 $htmltooltip .= $nextval.
'<br>';
290 $htmltooltip .= $langs->trans($module->error).
'<br>';
294 print
'<td class="center">';
295 print $form->textwithpicto(
'', $htmltooltip, 1, 0);
298 if (!empty($module->error)) {
324print
'<table class="noborder centpercent">'.
"\n";
325print
'<tr class="liste_titre">'.
"\n";
326print
'<td width="100">'.$langs->trans(
"Name").
'</td>'.
"\n";
327print
'<td>'.$langs->trans(
"Description").
'</td>'.
"\n";
328print
'<td align="center" width="60">'.$langs->trans(
"Status").
'</td>'.
"\n";
329print
'<td align="center" width="60">'.$langs->trans(
"Default").
'</td>'.
"\n";
330print
'<td align="center" width="40">'.$langs->trans(
"ShortInfo").
'</td>';
331print
'<td align="center" width="40">'.$langs->trans(
"Preview").
'</td>';
336foreach ($dirmodels as $reldir) {
337 $realpath = $reldir.
"core/modules/supplier_payment/doc";
341 $handle = opendir($dir);
344 if (is_resource($handle)) {
345 while (($file = readdir($handle)) !==
false) {
346 if (preg_match(
'/\.modules\.php$/i', $file) && preg_match(
'/^(pdf_|doc_)/', $file)) {
347 $name = substr($file, 4,
dol_strlen($file) - 16);
348 $classname = substr($file, 0,
dol_strlen($file) - 12);
350 require_once $dir.
'/'.$file;
353 print
"<tr class=\"oddeven\">\n";
355 print(empty($module->name) ? $name : $module->
name);
358 require_once $dir.
'/'.$file;
359 $module =
new $classname($db,
new Societe($db));
360 if (method_exists($module,
'info')) {
361 print $module->info($langs);
363 print $module->description;
369 if (in_array($name, $def)) {
370 print
'<td class="center">'.
"\n";
374 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=del&value='.$name.
'&scandir='.$module->scandir.
'&label='.urlencode($module->name).
'&type=SUPPLIER_PAYMENT">';
375 print
img_picto($langs->trans(
"Enabled"),
'switch_on');
384 print
'<td class="center">'.
"\n";
385 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=set&token='.
newToken().
'&value='.urlencode($name).
'&scandir='.urlencode($module->scandir).
'&label='.urlencode($module->name).
'&type=SUPPLIER_PAYMENT">'.
img_picto($langs->trans(
"Disabled"),
'switch_off').
'</a>';
390 print
'<td class="center">';
394 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=unsetdoc&token='.
newToken().
'&value='.urlencode($name).
'&scandir='.urlencode($module->scandir).
'&label='.urlencode($module->name).
'&type=SUPPLIER_PAYMENT"" alt="'.$langs->trans(
"Disable").
'">'.
img_picto($langs->trans(
"Enabled"),
'on').
'</a>';
396 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=setdoc&token='.
newToken().
'&value='.urlencode($name).
'&scandir='.urlencode($module->scandir).
'&label='.urlencode($module->name).
'&type=SUPPLIER_PAYMENT"" alt="'.$langs->trans(
"Default").
'">'.
img_picto($langs->trans(
"Disabled"),
'off').
'</a>';
401 $htmltooltip =
''.$langs->trans(
"Name").
': '.$module->name;
402 $htmltooltip .=
'<br>'.$langs->trans(
"Type").
': '.($module->type ? $module->type : $langs->trans(
"Unknown"));
403 $htmltooltip .=
'<br>'.$langs->trans(
"Width").
'/'.$langs->trans(
"Height").
': '.$module->page_largeur.
'/'.$module->page_hauteur;
404 $htmltooltip .=
'<br>'.$langs->trans(
"Path").
': '.preg_replace(
'/^\//',
'', $realpath).
'/'.$file;
406 $htmltooltip .=
'<br><br><u>'.$langs->trans(
"FeaturesSupported").
':</u>';
407 $htmltooltip .=
'<br>'.$langs->trans(
"Logo").
': '.
yn($module->option_logo, 1, 1);
408 print
'<td class="center">';
409 print $form->textwithpicto(
'', $htmltooltip, 1, 0);
411 print
'<td class="center">';
412 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action=specimen&module='.$name.
'">'.
img_object($langs->trans(
"Preview"),
'pdf').
'</a>';
434print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
435print
'<input type="hidden" name="token" value="'.newToken().
'" />';
436print
'<input type="hidden" name="action" value="setparams" />';
438print
'<div class="div-table-responsive-no-min">';
439print
'<table class="noborder centpercent">';
440print
'<tr class="liste_titre">';
441print
'<td>'.$langs->trans(
"Parameter").
'</td>';
442print
'<td align="center" width="60">'.$langs->trans(
"Value").
'</td>';
443print
'<td width="80"> </td>';
447print
'<tr class="oddeven"><td>';
448print $langs->trans(
"GroupPaymentsByModOnReports");
449print
'</td><td width="60" align="center">';
450print $form->selectyesno(
"PAYMENTS_FOURN_REPORT_GROUP_BY_MOD",
getDolGlobalString(
"PAYMENTS_FOURN_REPORT_GROUP_BY_MOD"), 1);
451print
'</td><td class="right">';
459print
'<div class="center">';
460print
'<input type="submit" class="button button-edit" value="'.$langs->trans(
"Modify").
'" />';
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()
Empty header.
Class to manage payments for supplier invoices.
Class to manage third parties objects (customers, suppliers, prospects...)
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)
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
yn($yesno, $case=1, $color=0)
Return yes or no in current language.
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_get_fiche_end($notab=0)
Return tab footer of a card.
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'.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
dol_htmloutput_mesg($mesgstring='', $mesgarray=array(), $style='ok', $keepembedded=0)
Print formatted messages to output (Used to show messages on html output).
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 dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
$conf db name
Only used if Module[ID]Name translation string is not found.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.