29require
'../../main.inc.php';
30require_once DOL_DOCUMENT_ROOT.
'/core/lib/prelevement.lib.php';
31require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
32require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/ligneprelevement.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/bonprelevement.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
45$langs->loadLangs(array(
'banks',
'categories',
'bills',
'companies',
'withdrawals'));
48$action =
GETPOST(
'action',
'aZ09');
58$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
59$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
61if (empty($page) || $page == -1) {
64$offset = $limit * $page;
69 $sortfield =
'pl.rowid';
78include DOL_DOCUMENT_ROOT.
'/core/actions_fetchobject.inc.php';
80$hookmanager->initHooks(array(
'directdebitprevcard',
'globalcard',
'directdebitprevlist'));
84$salaryBonPl =
$object->checkIfSalaryBonPrelevement();
85if ($type ==
'bank-transfer') {
86 $result =
restrictedArea($user,
'paymentbybanktransfer',
'',
'',
'');
88 $permissiontoadd = $user->hasRight(
'paymentbybanktransfer',
'create');
89 $permissiontosend = $user->hasRight(
'paymentbybanktransfer',
'send');
90 $permissiontocreditdebit = $user->hasRight(
'paymentbybanktransfer',
'debit');
91 $permissiontodelete = $user->hasRight(
'paymentbybanktransfer',
'read');
95 $permissiontoadd = $user->hasRight(
'prelevement',
'bons',
'creer');
96 $permissiontosend = $user->hasRight(
'prelevement',
'bons',
'send');
97 $permissiontocreditdebit = $user->hasRight(
'prelevement',
'bons',
'credit');
98 $permissiontodelete = $user->hasRight(
'prelevement',
'bons',
'read');
107$parameters = array(
'socid' => $socid);
108$reshook = $hookmanager->executeHooks(
'doActions', $parameters,
$object, $action);
113if (empty($reshook)) {
114 if ($action ==
'setbankaccount' && $permissiontoadd) {
122 if ($action ==
'setdate_trans' && $permissiontosend) {
123 $result =
$object->setValueFrom(
'date_trans', $date_trans,
'',
null,
'date');
129 if ($action ==
'infotrans' && $permissiontosend) {
130 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
153 $error =
$object->set_infotrans($user, $dt,
GETPOST(
'methode',
'alpha'));
156 header(
"Location: card.php?id=".
$id.
"&error=$error");
162 if ($action ==
'setinfocredit' && $permissiontocreditdebit) {
165 if ((
$object->type !=
'bank-transfer' &&
$object->statut == BonPrelevement::STATUS_CREDITED) || (
$object->type ==
'bank-transfer' &&
$object->statut == BonPrelevement::STATUS_DEBITED)) {
169 $error =
$object->set_infocredit($user, $dt, ($salaryBonPl ?
'salary' :
''));
177 if ($action ==
'reopen' && $permissiontocreditdebit) {
179 $res =
$object->setStatut(BonPrelevement::STATUS_TRANSFERED);
185 if ($action ==
'confirm_delete' && $permissiontodelete) {
189 if ($savtype ==
'bank-transfer') {
190 header(
"Location: ".DOL_URL_ROOT.
'/compta/paymentbybanktransfer/index.php');
192 header(
"Location: ".DOL_URL_ROOT.
'/compta/prelevement/index.php');
205$form =
new Form($db);
207llxHeader(
'', $langs->trans(
"WithdrawalsReceipts"));
209if ($id > 0 || $ref) {
211 print
dol_get_fiche_head($head,
'prelevement', $langs->trans(
"WithdrawalsReceipts"), -1,
'payment');
213 if (
GETPOST(
'error',
'alpha') !=
'') {
214 print
'<div class="error">'.$object->getErrorString(
GETPOST(
'error',
'alpha')).
'</div>';
217 $linkback =
'<a href="'.DOL_URL_ROOT.
'/compta/prelevement/orders_list.php?restore_lastsearch_values=1'.(
$object->type !=
'bank-transfer' ?
'' :
'&type=bank-transfer').
'">'.$langs->trans(
"BackToList").
'</a>';
219 dol_banner_tab(
$object,
'ref', $linkback, 1,
'ref',
'ref');
221 print
'<div class="fichecenter">';
222 print
'<div class="underbanner clearboth"></div>';
223 print
'<table class="border centpercent tableforfield">';
226 print
'<tr><td class="titlefieldcreate">'.$langs->trans(
"Date").
'</td><td>'.
dol_print_date(
$object->datec,
'day').
'</td></tr>';
228 print
'<tr><td>'.$langs->trans(
"Amount").
'</td><td><span class="amount">'.
price(
$object->amount).
'</span></td></tr>';
231 if (!empty(
$object->date_trans)) {
232 $muser =
new User($db);
233 $muser->fetch(
$object->user_trans);
237 print
'<table class="nobordernopadding centpercent"><tr><td>';
238 print $langs->trans(
'TransData');
240 if ($action !=
'editdate_trans' && $permissiontosend) {
241 print
'<td class="right"><a class="editfielda" href="'.$_SERVER[
"PHP_SELF"].
'?action=editdate_trans&token='.
newToken().
'&id='.
$object->id.
'">'.
img_edit($langs->trans(
'SetTransDate'), 1).
'</a></td>';
243 print
'</tr></table>';
245 if ($action ==
'editdate_trans' && $permissiontosend) {
246 print
'<form name="setdate_trans" action="'.$_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'" method="post">';
247 print
'<input type="hidden" name="token" value="'.newToken().
'">';
248 print
'<input type="hidden" name="action" value="setdate_trans">';
249 print $form->selectDate(
$object->date_trans ?
$object->date_trans : -1,
'date_trans', 0, 0, 0,
"setdate_trans");
250 print
'<input type="submit" class="button button-edit smallpaddingimp valign middle" value="'.$langs->trans(
'Modify').
'">';
254 print
' <span class="opacitymedium">'.$langs->trans(
"By").
'</span> '.$muser->getNomUrl(-1).
'</td>';
260 print
'<tr><td>'.$langs->trans(
"TransMetod").
'</td><td>';
266 if (!empty(
$object->date_credit)) {
267 print
'<tr><td>'.$langs->trans(
'CreditDate').
'</td><td>';
276 print
'<div class="underbanner clearboth"></div>';
277 print
'<table class="border centpercent tableforfield">';
281 $fk_bank_account =
$object->fk_bank_account;
282 if (empty($fk_bank_account)) {
285 if ($fk_bank_account > 0) {
286 $result = $acc->fetch($fk_bank_account);
290 $labelofbankfield =
"BankToReceiveWithdraw";
291 if (
$object->type ==
'bank-transfer') {
292 $labelofbankfield =
'BankToPayCreditTransfer';
295 $caneditbank = $permissiontoadd;
296 if (
$object->status != $object::STATUS_DRAFT) {
308 print
'<tr><td class="titlefieldcreate">';
309 print
'<table class="nobordernopadding centpercent"><tr><td class="nowrap">';
310 print $form->textwithpicto($langs->trans(
"BankAccount"), $langs->trans($labelofbankfield));
312 if (($action !=
'editbankaccount') && $caneditbank) {
313 print
'<td class="right"><a class="editfielda" href="'.$_SERVER[
"PHP_SELF"].
'?action=editfkbankaccount&token='.
newToken().
'&id='.
$object->id.
'">'.
img_edit($langs->trans(
'SetBankAccount'), 1).
'</a></td>';
315 print
'</tr></table>';
317 if ($action ==
'editfkbankaccount') {
318 $form->formSelectAccount($_SERVER[
'PHP_SELF'].
'?id='.
$object->id, $fk_bank_account,
'fk_bank_account', 0);
320 $form->formSelectAccount($_SERVER[
'PHP_SELF'].
'?id='.
$object->id, $fk_bank_account,
'none');
326 print
'<tr><td class="titlefieldcreate">';
327 $labelfororderfield =
'WithdrawalFile';
328 if (
$object->type ==
'bank-transfer') {
329 $labelfororderfield =
'CreditTransferFile';
331 print $langs->trans($labelfororderfield).
'</td><td>';
333 $modulepart =
'prelevement';
334 if (
$object->type ==
'bank-transfer') {
335 $modulepart =
'paymentbybanktransfer';
338 if (isModEnabled(
'multicompany')) {
339 $labelentity =
$conf->entity;
340 $relativepath =
'receipts/'.$object->ref.
'-'.$labelentity.
'.xml';
342 if ($type !=
'bank-transfer') {
343 $dir =
$conf->prelevement->dir_output;
345 $dir =
$conf->paymentbybanktransfer->dir_output;
348 $relativepath =
'receipts/'.$object->ref.
'.xml';
351 $relativepath =
'receipts/'.$object->ref.
'.xml';
354 print
'<a data-ajax="false" href="'.DOL_URL_ROOT.
'/document.php?type=text/plain&modulepart='.$modulepart.
'&file='.urlencode($relativepath).
'">'.$relativepath;
355 print
img_picto(
'',
'download',
'class="paddingleft"');
360 $parameters = array();
361 $reshook = $hookmanager->executeHooks(
'formObjectOptions', $parameters,
$object, $action);
362 print $hookmanager->resPrint;
374 if ($action ==
'delete') {
375 $formconfirm = $form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.
$object->id, $langs->trans(
'Delete'), $langs->trans(
'ConfirmDeleteObject'),
'confirm_delete',
'', 0, 1);
388 if (empty(
$object->date_trans) && (($user->hasRight(
'prelevement',
'bons',
'send') &&
$object->type !=
'bank-transfer') || ($user->hasRight(
'paymentbybanktransfer',
'send') &&
$object->type ==
'bank-transfer')) && $action ==
'settransmitted') {
389 print
'<form method="post" name="userfile" action="card.php?id='.$object->id.
'" enctype="multipart/form-data">';
390 print
'<input type="hidden" name="token" value="'.newToken().
'">';
391 print
'<input type="hidden" name="action" value="infotrans">';
392 print
'<table class="noborder centpercent">';
393 print
'<tr class="liste_titre">';
394 print
'<td colspan="3">'.$langs->trans(
"NotifyTransmision").
'</td></tr>';
395 print
'<tr class="oddeven"><td>'.$langs->trans(
"TransData").
'</td><td>';
396 print $form->selectDate(
'',
'', 0, 0, 0,
"userfile", 1, 1);
398 print
'<tr class="oddeven"><td>'.$langs->trans(
"TransMetod").
'</td><td>';
399 print $form->selectarray(
"methode",
$object->methodes_trans);
402 print
'<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans(
"SetToStatusSent")).
'"></div>';
407 if (
$object->status == BonPrelevement::STATUS_TRANSFERED && (($user->hasRight(
'prelevement',
'bons',
'credit') &&
$object->type !=
'bank-transfer') || ($user->hasRight(
'paymentbybanktransfer',
'debit') &&
$object->type ==
'bank-transfer')) && $action ==
'setcredited') {
408 $btnLabel = (
$object->type ==
'bank-transfer') ? $langs->trans(
"ClassDebited") : $langs->trans(
"ClassCredited");
409 print
'<form name="infocredit" method="post" action="card.php?id='.$object->id.
'">';
410 print
'<input type="hidden" name="token" value="'.newToken().
'">';
411 print
'<input type="hidden" name="action" value="setinfocredit">';
412 print
'<table class="noborder centpercent">';
413 print
'<tr class="liste_titre">';
414 print
'<td colspan="3">'.$langs->trans(
"NotifyCredit").
'</td></tr>';
415 print
'<tr class="oddeven"><td>'.$langs->trans(
'CreditDate').
'</td><td>';
416 print $form->selectDate(-1,
'', 0, 0, 0,
"infocredit", 1, 1, 0,
'',
'', array(array(
'adddateof' =>
$object->date_trans,
'labeladddateof' => $langs->transnoentitiesnoconv(
'TransData'))));
419 print
'<br><div class="center"><span class="opacitymedium">'.$langs->trans(
"ThisWillAlsoAddPaymentOnInvoice").
'</span></div>';
420 print
'<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($btnLabel).
'"></div>';
426 if ($action !=
'settransmitted' && $action !=
'setcredited') {
427 print
"\n".
'<div class="tabsAction">'.
"\n";
428 $parameters = array();
429 $reshook = $hookmanager->executeHooks(
'addMoreActionsButtons', $parameters,
$object, $action);
430 if (empty($reshook)) {
431 if (empty(
$object->date_trans)) {
432 if (
$object->type ==
'bank-transfer') {
433 print
dolGetButtonAction($langs->trans(
"SetToStatusSent"),
'',
'default',
'card.php?action=settransmitted&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'paymentbybanktransfer',
'send'));
435 print
dolGetButtonAction($langs->trans(
"SetToStatusSent"),
'',
'default',
'card.php?action=settransmitted&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'prelevement',
'bons',
'send'));
439 if (
$object->status == BonPrelevement::STATUS_TRANSFERED) {
440 if (
$object->type ==
'bank-transfer') {
441 print
dolGetButtonAction($langs->trans(
"ClassDebited"),
'',
'default',
'card.php?action=setcredited&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'paymentbybanktransfer',
'debit'));
443 print
dolGetButtonAction($langs->trans(
"ClassCredited"),
'',
'default',
'card.php?action=setcredited&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'prelevement',
'bons',
'credit'));
448 if (
$object->status == BonPrelevement::STATUS_DEBITED ||
$object->status == BonPrelevement::STATUS_CREDITED) {
449 if (
$object->type ==
'bank-transfer') {
450 print
dolGetButtonAction($langs->trans(
"ReOpen"),
'',
'default',
'card.php?action=reopen&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'paymentbybanktransfer',
'debit'));
452 print
dolGetButtonAction($langs->trans(
"ReOpen"),
'',
'default',
'card.php?action=reopen&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'prelevement',
'bons',
'credit'));
457 if (
$object->type ==
'bank-transfer') {
458 print
dolGetButtonAction($langs->trans(
"Delete"),
'',
'delete',
'card.php?action=delete&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'paymentbybanktransfer',
'create'));
460 print
dolGetButtonAction($langs->trans(
"Delete"),
'',
'delete',
'card.php?action=delete&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'prelevement',
'bons',
'creer'));
471 $sql =
"SELECT pl.rowid, pl.statut, pl.amount, pl.fk_user,";
472 $sql .=
" u.rowid as socid, u.login as name";
473 $sql .=
" FROM ".MAIN_DB_PREFIX.
"prelevement_lignes as pl";
474 $sql .=
", ".MAIN_DB_PREFIX.
"prelevement_bons as pb";
475 $sql .=
", ".MAIN_DB_PREFIX.
"user as u";
476 $sql .=
" WHERE pl.fk_prelevement_bons = ".((int) $id);
477 $sql .=
" AND pl.fk_prelevement_bons = pb.rowid";
478 $sql .=
" AND pb.entity = ".((int)
$conf->entity);
479 $sql .=
" AND pl.fk_user = u.rowid";
481 $sql .=
" AND u.rowid = ".((int) $socid);
483 $sql .= $db->order($sortfield, $sortorder);
485 $sql =
"SELECT pl.rowid, pl.statut, pl.amount,";
486 $sql .=
" s.rowid as socid, s.nom as name";
487 $sql .=
" FROM ".MAIN_DB_PREFIX.
"prelevement_lignes as pl";
488 $sql .=
", ".MAIN_DB_PREFIX.
"prelevement_bons as pb";
489 $sql .=
", ".MAIN_DB_PREFIX.
"societe as s";
490 $sql .=
" WHERE pl.fk_prelevement_bons = ".((int) $id);
491 $sql .=
" AND pl.fk_prelevement_bons = pb.rowid";
492 $sql .=
" AND pb.entity = ".((int)
$conf->entity);
493 $sql .=
" AND pl.fk_soc = s.rowid";
495 $sql .=
" AND s.rowid = ".((int) $socid);
497 $sql .= $db->order($sortfield, $sortorder);
500 $nbtotalofrecords =
'';
502 $result = $db->query($sql);
503 $nbtotalofrecords = $db->num_rows($result);
504 if (($page * $limit) > $nbtotalofrecords) {
511 $sql .= $db->plimit($limit + 1, $offset);
513 $result = $db->query($sql);
516 $num = $db->num_rows($result);
519 $urladd =
"&id=".urlencode((
string) (
$id));
520 if ($limit > 0 && $limit !=
$conf->liste_limit) {
521 $urladd .=
'&limit='.((int) $limit);
524 print
'<form method="POST" action="'.$_SERVER [
'PHP_SELF'].
'" name="search_form">'.
"\n";
525 print
'<input type="hidden" name="token" value="'.newToken().
'"/>';
526 print
'<input type="hidden" name="id" value="'.$id.
'"/>';
527 print
'<input type="hidden" name="socid" value="'.$socid.
'"/>';
529 print
'<input type="hidden" name="page" value="'.$page.
'"/>';
531 if (!empty($limit)) {
532 print
'<input type="hidden" name="limit" value="'.$limit.
'"/>';
534 if (!empty($sortfield)) {
535 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'"/>';
537 if (!empty($sortorder)) {
538 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'"/>';
541 print_barre_liste($langs->trans(
"Lines"), $page, $_SERVER[
"PHP_SELF"], $urladd, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'', 0,
'',
'', $limit);
543 print
'<div class="div-table-responsive-no-min">';
544 print
'<table class="noborder liste centpercent">';
545 print
'<tr class="liste_titre">';
547 print_liste_field_titre((!$salaryBonPl ?
"ThirdParty" :
"Employee"), $_SERVER[
"PHP_SELF"],
"s.nom",
'', $urladd,
'', $sortfield, $sortorder);
548 print_liste_field_titre(
"Amount", $_SERVER[
"PHP_SELF"],
"pl.amount",
"", $urladd,
'class="right"', $sortfield, $sortorder);
554 while ($i < min($num, $limit)) {
555 $obj = $db->fetch_object($result);
557 print
'<tr class="oddeven">';
561 print
'<a class="valignmiddle" href="'.DOL_URL_ROOT.
'/compta/prelevement/line.php?id='.$obj->rowid.
'&type='.
$object->type.
'&token='.
newToken().
'">';
562 print $ligne->LibStatut($obj->statut, 2);
563 print
'<span class="paddingleft">'.$obj->rowid.
'</span>';
566 $thirdparty =
new Societe($db);
567 $thirdparty->fetch($obj->socid);
568 $name = $thirdparty->getNomUrl(1);
570 $userSalary =
new User($db);
571 $userSalary->fetch($obj->fk_user);
572 $name = $userSalary->getNomUrl(-1);
574 print
'<td class="tdoverflowmax150">';
578 print
'<td class="right"><span class="amount">'.price($obj->amount).
"</span></td>\n";
580 print
'<td class="right">';
582 if ($obj->statut == 3) {
583 print
'<span class="error">'.$langs->trans(
"StatusRefused").
'</span>';
585 if (
$object->statut == BonPrelevement::STATUS_CREDITED) {
586 if ($obj->statut == LignePrelevement::STATUS_CREDITED) {
587 if ($user->hasRight(
'prelevement',
'bons',
'credit')) {
589 print
'<a href="line.php?action=rejet&type='.$object->type.
'&id='.$obj->rowid.
'&token='.
newToken().
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
601 $total += $obj->amount;
609 print
'<tr class="liste_total">';
610 print
'<td>'.$langs->trans(
"Total").
'</td>';
611 print
'<td> </td>';
612 print
'<td class="right">';
613 if (empty($offset) && $num <= $limit) {
615 if ($total !=
$object->amount) {
616 print
img_warning($langs->trans(
"TotalAmountOfdirectDebitOrderDiffersFromSumOfLines"));
621 print
'<td> </td>';
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
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 bank accounts.
Class to manage withdrawal receipts.
Class to manage withdrawals.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage Dolibarr users.
dol_is_file($pathoffile)
Return if path is a file.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed information (by default a local PHP server timestamp) Rep...
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $selectlimitsuffix=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
img_warning($titlealt='default', $moreatt='', $morecss='pictowarning')
Show warning logo.
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.
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.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
newToken()
Return the value of token currently saved into session with name 'newtoken'.
dolGetButtonAction($label, $text='', $actionType='default', $url='', $id='', $userRight=1, $params=array())
Function dolGetButtonAction.
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_clone($object, $native=2)
Create a clone of instance of object (new instance with same value for each properties) With native =...
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.
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
prelevement_prepare_head(BonPrelevement $object)
Prepare array with list of tabs.
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.