29require
'../../main.inc.php';
37require_once DOL_DOCUMENT_ROOT.
'/core/lib/prelevement.lib.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
39require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/ligneprelevement.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/bonprelevement.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
44$langs->loadLangs(array(
'banks',
'categories',
'bills',
'companies',
'withdrawals'));
47$action =
GETPOST(
'action',
'aZ09');
57$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
58$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
60if (empty($page) || $page == -1) {
63$offset = $limit * $page;
68 $sortfield =
'pl.rowid';
77include DOL_DOCUMENT_ROOT.
'/core/actions_fetchobject.inc.php';
79$hookmanager->initHooks(array(
'directdebitprevcard',
'globalcard',
'directdebitprevlist'));
84$salaryBonPl =
$object->checkIfSalaryBonPrelevement();
87if ($type ==
'bank-transfer') {
88 $result =
restrictedArea($user,
'paymentbybanktransfer',
'',
'',
'');
90 $permissiontoadd = $user->hasRight(
'paymentbybanktransfer',
'create');
91 $permissiontosend = $user->hasRight(
'paymentbybanktransfer',
'send');
92 $permissiontocreditdebit = $user->hasRight(
'paymentbybanktransfer',
'debit');
93 $permissiontodelete = $user->hasRight(
'paymentbybanktransfer',
'read');
97 $permissiontoadd = $user->hasRight(
'prelevement',
'bons',
'creer');
98 $permissiontosend = $user->hasRight(
'prelevement',
'bons',
'send');
99 $permissiontocreditdebit = $user->hasRight(
'prelevement',
'bons',
'credit');
100 $permissiontodelete = $user->hasRight(
'prelevement',
'bons',
'read');
108$parameters = array(
'socid' => $socid);
109$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
111 setEventMessages($hookmanager->error, $hookmanager->errors,
'errors');
114if (empty($reshook)) {
115 if ($action ==
'setbankaccount' && $permissiontoadd) {
119 $result =
$object->update($user);
126 if ($action ==
'setdate_trans' && $permissiontosend) {
127 $result =
$object->setValueFrom(
'date_trans', $date_trans,
'',
null,
'date');
133 if ($action ==
'infotrans' && $permissiontosend) {
134 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
160 header(
"Location: card.php?id=".
$id.
"&error=$error");
166 if ($action ==
'setinfocredit' && $permissiontocreditdebit) {
169 if ((
$object->type !=
'bank-transfer' &&
$object->status == BonPrelevement::STATUS_CREDITED) || (
$object->type ==
'bank-transfer' &&
$object->statut == BonPrelevement::STATUS_DEBITED)) {
171 setEventMessages(
'WithdrawalCantBeCreditedTwice', array(),
'errors');
173 $error =
$object->set_infocredit($user, $dt, ($salaryBonPl ?
'salary' :
''));
181 if ($action ==
'reopen' && $permissiontocreditdebit) {
183 $res =
$object->setStatut(BonPrelevement::STATUS_TRANSFERED);
189 if ($action ==
'setcancel' && $permissiontocreditdebit) {
191 $res =
$object->setStatut(BonPrelevement::STATUS_CANCELED);
197 if ($action ==
'confirm_delete' && $permissiontodelete) {
202 if ($savtype ==
'bank-transfer') {
203 header(
"Location: ".DOL_URL_ROOT.
'/compta/paymentbybanktransfer/index.php');
205 header(
"Location: ".DOL_URL_ROOT.
'/compta/prelevement/index.php');
219$form =
new Form($db);
221llxHeader(
'', $langs->trans(
"WithdrawalsReceipts"));
223if ($id > 0 || $ref) {
226 print
dol_get_fiche_head($head,
'prelevement', $langs->trans(
"WithdrawalsReceipts"), -1,
'payment');
228 if (
GETPOST(
'error',
'alpha') !=
'') {
229 print
'<div class="error">'.$object->getErrorString(
GETPOSTINT(
'error')).
'</div>';
232 $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>';
234 dol_banner_tab($object,
'ref', $linkback, 1,
'ref',
'ref');
236 print
'<div class="fichecenter">';
237 print
'<div class="underbanner clearboth"></div>';
238 print
'<table class="border centpercent tableforfield">';
241 print
'<tr><td class="titlefieldcreate">'.$langs->trans(
"Date").
'</td><td>'.
dol_print_date(
$object->datec,
'day').
'</td></tr>';
243 print
'<tr><td>'.$langs->trans(
"Amount").
'</td><td><span class="amount">'.
price(
$object->amount).
'</span></td></tr>';
246 if (!empty(
$object->date_trans)) {
247 $muser =
new User($db);
248 $muser->fetch(
$object->user_trans);
252 print
'<table class="nobordernopadding centpercent"><tr><td>';
253 print $langs->trans(
'TransData');
255 if ($action !=
'editdate_trans' && $permissiontosend) {
256 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>';
258 print
'</tr></table>';
260 if ($action ==
'editdate_trans' && $permissiontosend) {
261 print
'<form name="setdate_trans" action="'.$_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'" method="post">';
262 print
'<input type="hidden" name="token" value="'.newToken().
'">';
263 print
'<input type="hidden" name="action" value="setdate_trans">';
264 print $form->selectDate(
$object->date_trans ?
$object->date_trans : -1,
'date_trans', 0, 0, 0,
"setdate_trans");
265 print
'<input type="submit" class="button button-edit smallpaddingimp valign middle" value="'.$langs->trans(
'Modify').
'">';
269 print
' <span class="opacitymedium">'.$langs->trans(
"By").
'</span> '.$muser->getNomUrl(-1).
'</td>';
275 print
'<tr><td>'.$langs->trans(
"TransMetod").
'</td><td>';
281 if (!empty(
$object->date_credit)) {
282 print
'<tr><td>'.$langs->trans(
'CreditDate').
'</td><td>';
291 print
'<div class="underbanner clearboth"></div>';
292 print
'<table class="border centpercent tableforfield">';
296 $fk_bank_account =
$object->fk_bank_account;
297 if (empty($fk_bank_account)) {
300 if ($fk_bank_account > 0) {
301 $result = $acc->fetch($fk_bank_account);
305 $labelofbankfield =
"BankToReceiveWithdraw";
306 if (
$object->type ==
'bank-transfer') {
307 $labelofbankfield =
'BankToPayCreditTransfer';
310 $caneditbank = $permissiontoadd;
311 if (
$object->status != $object::STATUS_DRAFT) {
323 print
'<tr><td class="titlefieldcreate">';
324 print
'<table class="nobordernopadding centpercent"><tr><td class="nowrap">';
325 print $form->textwithpicto($langs->trans(
"BankAccount"), $langs->trans($labelofbankfield));
327 if (($action !=
'editbankaccount') && $caneditbank) {
328 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>';
330 print
'</tr></table>';
332 if ($action ==
'editfkbankaccount') {
333 $form->formSelectAccount($_SERVER[
'PHP_SELF'].
'?id='.
$object->id, (
string) $fk_bank_account,
'fk_bank_account', 0);
335 $form->formSelectAccount($_SERVER[
'PHP_SELF'].
'?id='.
$object->id, (
string) $fk_bank_account,
'none');
341 print
'<tr><td class="titlefieldcreate">';
342 $labelfororderfield =
'WithdrawalFile';
343 if (
$object->type ==
'bank-transfer') {
344 $labelfororderfield =
'CreditTransferFile';
346 print $langs->trans($labelfororderfield).
'</td><td>';
348 $modulepart =
'prelevement';
349 if (
$object->type ==
'bank-transfer') {
350 $modulepart =
'paymentbybanktransfer';
354 $labelentity =
$conf->entity;
355 $relativepath =
'receipts/'.$object->ref.
'-'.$labelentity.
'.xml';
357 if ($type !=
'bank-transfer') {
358 $dir =
$conf->prelevement->dir_output;
360 $dir =
$conf->paymentbybanktransfer->dir_output;
363 $relativepath =
'receipts/'.$object->ref.
'.xml';
366 $relativepath =
'receipts/'.$object->ref.
'.xml';
369 print
'<a data-ajax="false" href="'.DOL_URL_ROOT.
'/document.php?type=text/plain&modulepart='.$modulepart.
'&file='.urlencode($relativepath).
'">'.$relativepath;
370 print img_picto(
'',
'download',
'class="paddingleft"');
375 $parameters = array();
376 $reshook = $hookmanager->executeHooks(
'formObjectOptions', $parameters, $object, $action);
377 print $hookmanager->resPrint;
389 if ($action ==
'delete') {
390 $formconfirm = $form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.
$object->id, $langs->trans(
'Delete'), $langs->trans(
'ConfirmDeleteObject'),
'confirm_delete',
'', 0, 1);
403 if (empty(
$object->date_trans) && (($user->hasRight(
'prelevement',
'bons',
'send') &&
$object->type !=
'bank-transfer') || ($user->hasRight(
'paymentbybanktransfer',
'send') &&
$object->type ==
'bank-transfer')) && $action ==
'settransmitted') {
404 print
'<form method="post" name="userfile" action="card.php?id='.$object->id.
'" enctype="multipart/form-data">';
405 print
'<input type="hidden" name="token" value="'.newToken().
'">';
406 print
'<input type="hidden" name="action" value="infotrans">';
407 print
'<table class="noborder centpercent">';
408 print
'<tr class="liste_titre">';
409 print
'<td colspan="3">'.$langs->trans(
"NotifyTransmision").
'</td></tr>';
410 print
'<tr class="oddeven"><td>'.$langs->trans(
"TransData").
'</td><td>';
411 print $form->selectDate(
'',
'', 0, 0, 0,
"userfile", 1, 1);
413 print
'<tr class="oddeven"><td>'.$langs->trans(
"TransMetod").
'</td><td>';
414 print $form->selectarray(
"methode",
$object->methodes_trans);
417 print
'<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans(
"SetToStatusSent")).
'"></div>';
422 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') {
425 $btnLabel = (
$object->type ==
'bank-transfer') ? $langs->trans(
"ClassDebited") : $langs->trans(
"ClassCredited");
426 print
'<form name="infocredit" method="post" action="card.php?id='.$object->id.
'">';
427 print
'<input type="hidden" name="token" value="'.newToken().
'">';
428 print
'<input type="hidden" name="action" value="setinfocredit">';
429 print
'<table class="noborder centpercent">';
430 print
'<tr class="liste_titre">';
431 print
'<td colspan="3">'.$langs->trans(
"NotifyCredit").
'</td></tr>';
432 print
'<tr class="oddeven"><td>'.$langs->trans(
'CreditDate').
'</td><td>';
433 print $form->selectDate(-1,
'', 0, 0, 0,
"infocredit", 1, 1, 0,
'',
'', array(array(
'adddateof' =>
$object->date_trans,
'labeladddateof' => $langs->transnoentitiesnoconv(
'TransData'))));
436 print
'<br><div class="center"><span class="opacitymedium">'.$langs->trans(
"ThisWillAlsoAddPaymentOnInvoice").
'</span></div>';
437 print
'<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($btnLabel).
'"></div>';
443 if ($action !=
'settransmitted' && $action !=
'setcredited') {
444 print
"\n".
'<div class="tabsAction">'.
"\n";
445 $parameters = array();
446 $reshook = $hookmanager->executeHooks(
'addMoreActionsButtons', $parameters, $object, $action);
447 if (empty($reshook)) {
448 if (empty(
$object->date_trans)) {
449 if (
$object->type ==
'bank-transfer') {
450 print dolGetButtonAction($langs->trans(
"SetToStatusSent"),
'',
'default',
'card.php?action=settransmitted&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'paymentbybanktransfer',
'send'));
452 print dolGetButtonAction($langs->trans(
"SetToStatusSent"),
'',
'default',
'card.php?action=settransmitted&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'prelevement',
'bons',
'send'));
457 if (
$object->status == BonPrelevement::STATUS_DEBITED ||
$object->status == BonPrelevement::STATUS_CREDITED) {
458 if (
$object->type ==
'bank-transfer') {
459 print dolGetButtonAction($langs->trans(
"ReOpen"),
'',
'default',
'card.php?action=reopen&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'paymentbybanktransfer',
'debit'));
461 print dolGetButtonAction($langs->trans(
"ReOpen"),
'',
'default',
'card.php?action=reopen&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'prelevement',
'bons',
'credit'));
466 if (
$object->status == BonPrelevement::STATUS_TRANSFERED) {
467 if (
$object->type ==
'bank-transfer') {
468 print dolGetButtonAction($langs->trans(
"ClassDebited"),
'',
'default',
'card.php?action=setcredited&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'paymentbybanktransfer',
'debit'));
470 print dolGetButtonAction($langs->trans(
"ClassCredited"),
'',
'default',
'card.php?action=setcredited&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'prelevement',
'bons',
'credit'));
475 if (
$object->status == BonPrelevement::STATUS_TRANSFERED) {
476 if (
$object->type ==
'bank-transfer') {
477 print dolGetButtonAction($langs->trans(
"Cancel"),
'',
'default',
'card.php?action=setcancel&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'paymentbybanktransfer',
'debit'), array(
'attr' => array(
'classOverride' =>
'butAction butActionDanger'))).
"\n";
479 print dolGetButtonAction($langs->trans(
"Cancel"),
'',
'default',
'card.php?action=setcancel&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'prelevement',
'bons',
'credit'), array(
'attr' => array(
'classOverride' =>
'butAction butActionDanger'))).
"\n";
483 if (
$object->type ==
'bank-transfer') {
484 print dolGetButtonAction($langs->trans(
"Delete"), $langs->trans(
"Delete"),
'delete',
'card.php?action=delete&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'paymentbybanktransfer',
'create'), array(
'attr' => array(
'class' =>
'reposition'))).
"\n";
486 print dolGetButtonAction($langs->trans(
"Delete"), $langs->trans(
"Delete"),
'delete',
'card.php?action=delete&token='.newToken().
'&id='.
$object->id,
'', $user->hasRight(
'prelevement',
'bons',
'creer'), array(
'attr' => array(
'class' =>
'reposition'))).
"\n";
497 $sql =
"SELECT pl.rowid, pl.statut as status, pl.amount,";
498 $sql .=
" u.rowid as parentid, u.login as name";
499 $sql .=
" FROM ".MAIN_DB_PREFIX.
"prelevement_lignes as pl";
500 $sql .=
", ".MAIN_DB_PREFIX.
"prelevement_bons as pb";
501 $sql .=
", ".MAIN_DB_PREFIX.
"user as u";
502 $sql .=
" WHERE pl.fk_prelevement_bons = ".((int) $id);
503 $sql .=
" AND pl.fk_prelevement_bons = pb.rowid";
504 $sql .=
" AND pb.entity = ".((int)
$conf->entity);
505 $sql .=
" AND pl.fk_user = u.rowid";
507 $sql .=
" AND u.rowid = ".((int) $socid);
509 $sql .= $db->order($sortfield, $sortorder);
511 $sql =
"SELECT pl.rowid, pl.statut as status, pl.amount,";
512 $sql .=
" s.rowid as parentid, s.nom as name";
513 $sql .=
" FROM ".MAIN_DB_PREFIX.
"prelevement_lignes as pl";
514 $sql .=
", ".MAIN_DB_PREFIX.
"prelevement_bons as pb";
515 $sql .=
", ".MAIN_DB_PREFIX.
"societe as s";
516 $sql .=
" WHERE pl.fk_prelevement_bons = ".((int) $id);
517 $sql .=
" AND pl.fk_prelevement_bons = pb.rowid";
518 $sql .=
" AND pb.entity = ".((int)
$conf->entity);
519 $sql .=
" AND pl.fk_soc = s.rowid";
521 $sql .=
" AND s.rowid = ".((int) $socid);
523 $sql .= $db->order($sortfield, $sortorder);
526 $nbtotalofrecords =
'';
528 $result = $db->query($sql);
529 $nbtotalofrecords = $db->num_rows($result);
530 if (($page * $limit) > (int) $nbtotalofrecords) {
537 $sql .= $db->plimit($limit + 1, $offset);
539 $result = $db->query($sql);
542 $num = $db->num_rows($result);
545 $urladd =
"&id=".urlencode((
string) (
$id));
546 if ($limit > 0 && $limit !=
$conf->liste_limit) {
547 $urladd .=
'&limit='.((int) $limit);
550 print
'<form method="POST" action="'.$_SERVER [
'PHP_SELF'].
'" name="search_form">'.
"\n";
551 print
'<input type="hidden" name="token" value="'.newToken().
'"/>';
552 print
'<input type="hidden" name="id" value="'.$id.
'"/>';
553 print
'<input type="hidden" name="socid" value="'.$socid.
'"/>';
555 print
'<input type="hidden" name="page" value="'.$page.
'"/>';
557 if (!empty($limit)) {
558 print
'<input type="hidden" name="limit" value="'.$limit.
'"/>';
560 if (!empty($sortfield)) {
561 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'"/>';
563 if (!empty($sortorder)) {
564 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'"/>';
567 print_barre_liste($langs->trans(
"Lines"), $page, $_SERVER[
"PHP_SELF"], $urladd, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'', 0,
'',
'', $limit);
569 print
'<div class="div-table-responsive-no-min">';
570 print
'<table class="noborder liste centpercent">';
571 print
'<tr class="liste_titre">';
573 print_liste_field_titre((!$salaryBonPl ?
"ThirdParty" :
"Employee"), $_SERVER[
"PHP_SELF"],
"s.nom",
'', $urladd,
'', $sortfield, $sortorder);
574 print_liste_field_titre(
"Amount", $_SERVER[
"PHP_SELF"],
"pl.amount",
"", $urladd,
'class="right"', $sortfield, $sortorder);
580 while ($i < min($num, $limit)) {
581 $obj = $db->fetch_object($result);
583 print
'<tr class="oddeven">';
587 print
'<a class="valignmiddle" href="'.DOL_URL_ROOT.
'/compta/prelevement/line.php?id='.$obj->rowid.
'&type='.
$object->type.
'&token='.
newToken().
'">';
588 print $ligne->LibStatut($obj->status, 2);
589 print
'<span class="paddingleft">'.$obj->rowid.
'</span>';
592 $thirdparty =
new Societe($db);
593 $thirdparty->fetch($obj->parentid);
594 $name = $thirdparty->getNomUrl(1);
596 $userSalary =
new User($db);
597 $userSalary->fetch($obj->parentid);
598 $name = $userSalary->getNomUrl(-1);
600 print
'<td class="tdoverflowmax150">';
604 print
'<td class="right"><span class="amount">'.price($obj->amount).
"</span></td>\n";
606 print
'<td class="right">';
608 if ($obj->status == 3) {
609 print
'<span class="error">'.$langs->trans(
"StatusRefused").
'</span>';
611 if (
$object->status == BonPrelevement::STATUS_CREDITED) {
612 if ($obj->status == LignePrelevement::STATUS_CREDITED) {
613 if ($user->hasRight(
'prelevement',
'bons',
'credit')) {
615 print
'<a href="line.php?action=rejet&type='.$object->type.
'&id='.$obj->rowid.
'&token='.
newToken().
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
627 $total += $obj->amount;
635 print
'<tr class="liste_total">';
636 print
'<td>'.$langs->trans(
"Total").
'</td>';
637 print
'<td> </td>';
638 print
'<td class="right">';
639 if (empty($offset) && $num <= $limit) {
641 if ($total !=
$object->amount) {
642 print img_warning($langs->trans(
"TotalAmountOfdirectDebitOrderDiffersFromSumOfLines"));
647 print
'<td> </td>';
657 dol_print_error($db);
$id
Support class for third parties, contacts, members, users or resources.
if(! $sortfield) if(! $sortorder) $object
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
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...
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
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.
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, $nodefault=0)
Return value of a param into GET or POST supervariable.
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_clone($srcobject, $native=2)
Create a clone of instance of object (new instance with same value for each properties) With native =...
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false, $decorate=0)
Output date in a string format according to outputlangs (or langs if not defined).
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
print_liste_field_titre($name, $file="", $field="", $begin="", $param="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0, $morecssdiv='')
Show tabs of a record.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
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, $nodie=0, $mode='')
Check permissions of a user to show a page and an object.