29 require
'../main.inc.php';
30 require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
31 require_once DOL_DOCUMENT_ROOT.
'/core/lib/fourn.lib.php';
32 require_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';
54 include DOL_DOCUMENT_ROOT.
'/core/actions_setmoduleoptions.inc.php';
56 if ($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']);
154 llxHeader(
"", $langs->trans(
"SupplierPaymentSetup"),
'EN:Supplier_Payment_Configuration|FR:Configuration_module_paiement_fournisseur');
156 $form =
new Form($db);
159 $linkback =
'<a href="'.DOL_URL_ROOT.
'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToModuleList").
'</a>';
160 print
load_fiche_titre($langs->trans(
"SupplierPaymentSetup"), $linkback,
'title_setup');
165 print
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]);
198 print
'<table class="noborder centpercent">';
199 print
'<tr class="liste_titre">';
200 print
'<td>'.$langs->trans(
"Name").
'</td>';
201 print
'<td>'.$langs->trans(
"Description").
'</td>';
202 print
'<td class="nowrap">'.$langs->trans(
"Example").
'</td>';
203 print
'<td align="center" width="60">'.$langs->trans(
"Status").
'</td>';
204 print
'<td align="center" width="16">'.$langs->trans(
"ShortInfo").
'</td>';
209 foreach ($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)) {
324 print
'<table class="noborder centpercent">'.
"\n";
325 print
'<tr class="liste_titre">'.
"\n";
326 print
'<td width="100">'.$langs->trans(
"Name").
'</td>'.
"\n";
327 print
'<td>'.$langs->trans(
"Description").
'</td>'.
"\n";
328 print
'<td align="center" width="60">'.$langs->trans(
"Status").
'</td>'.
"\n";
329 print
'<td align="center" width="60">'.$langs->trans(
"Default").
'</td>'.
"\n";
330 print
'<td align="center" width="40">'.$langs->trans(
"ShortInfo").
'</td>';
331 print
'<td align="center" width="40">'.$langs->trans(
"Preview").
'</td>';
336 foreach ($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>';
434 print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
435 print
'<input type="hidden" name="token" value="'.newToken().
'" />';
436 print
'<input type="hidden" name="action" value="setparams" />';
438 print
'<div class="div-table-responsive-no-min">';
439 print
'<table class="noborder centpercent">';
440 print
'<tr class="liste_titre">';
441 print
'<td>'.$langs->trans(
"Parameter").
'</td>';
442 print
'<td align="center" width="60">'.$langs->trans(
"Value").
'</td>';
443 print
'<td width="80"> </td>';
447 print
'<tr class="oddeven"><td>';
448 print $langs->trans(
"GroupPaymentsByModOnReports");
449 print
'</td><td width="60" align="center">';
450 print $form->selectyesno(
"PAYMENTS_FOURN_REPORT_GROUP_BY_MOD",
getDolGlobalString(
"PAYMENTS_FOURN_REPORT_GROUP_BY_MOD"), 1);
451 print
'</td><td class="right">';
452 print
"</td></tr>\n";
459 print
'<div class="center">';
460 print
'<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...)
if(isModEnabled('invoice') && $user->hasRight('facture', 'lire')) if((isModEnabled('fournisseur') &&!getDolGlobalString('MAIN_USE_NEW_SUPPLIERMOD') && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') && $user->hasRight('don', 'lire')) if(isModEnabled('tax') && $user->hasRight('tax', 'charges', 'lire')) if(isModEnabled('invoice') &&isModEnabled('order') && $user->hasRight("commande", "lire") &&!getDolGlobalString('WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER')) $sql
Social contributions to pay.
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.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.