31require
'../../main.inc.php';
32require_once DOL_DOCUMENT_ROOT.
'/don/class/don.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
46$langs->loadLangs(array(
'companies',
'donations'));
48$action =
GETPOST(
'action',
'aZ09') ?
GETPOST(
'action',
'aZ09') :
'view';
49$massaction =
GETPOST(
'massaction',
'alpha');
50$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'sclist';
51$mode =
GETPOST(
'mode',
'alpha');
52$toselect =
GETPOST(
'toselect',
'array:int');
56$search_ref =
GETPOST(
"search_ref",
"alpha");
57$search_date_startday =
GETPOSTINT(
'search_date_startday');
58$search_date_startmonth =
GETPOSTINT(
'search_date_startmonth');
59$search_date_startyear =
GETPOSTINT(
'search_date_startyear');
60$search_date_endday =
GETPOSTINT(
'search_date_endday');
61$search_date_endmonth =
GETPOSTINT(
'search_date_endmonth');
62$search_date_endyear =
GETPOSTINT(
'search_date_endyear');
63$search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
64$search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
65$search_company =
GETPOST(
"search_company",
'alpha');
66$search_paymenttype =
GETPOST(
"search_paymenttype",
"intcomma");
67$search_account =
GETPOST(
"search_account",
'alpha');
68$search_payment_num =
GETPOST(
'search_payment_num',
'alpha');
69$search_amount =
GETPOST(
"search_amount",
'alpha');
70$search_status =
GETPOST(
'search_status',
'intcomma');
73$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
74$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
76if (empty($page) || $page == -1) {
79$offset = $limit * $page;
86 $sortfield =
"pd.rowid";
89$search_all = trim(
GETPOST(
'search_all',
'alphanohtml'));
97$fieldstosearchall = array(
98 'pd.rowid' =>
"RefPayment",
99 's.nom' =>
"ThirdParty",
100 'pd.num_paiement' =>
"Numero",
101 'pd.amount' =>
"Amount",
105 'pd.rowid' => array(
'label' =>
"RefPayment",
'checked' =>
'1',
'position' => 10),
106 'pd.datep' => array(
'label' =>
"Date",
'checked' =>
'1',
'position' => 20),
107 's.nom' => array(
'label' =>
"ThirdParty",
'checked' =>
'1',
'position' => 30),
108 'c.code' => array(
'label' =>
"Type",
'checked' =>
'1',
'position' => 40),
109 'pd.num_paiement' => array(
'label' =>
"Numero",
'checked' =>
'1',
'position' => 50,
'tooltip' =>
"ChequeOrTransferNumber"),
110 'transaction' => array(
'label' =>
"BankTransactionLine",
'checked' =>
'1',
'position' => 60,
'enabled' => (
string) (
int) (
isModEnabled(
"bank"))),
111 'ba.label' => array(
'label' =>
"BankAccount",
'checked' =>
'1',
'position' => 70,
'enabled' => (
string) (
int) (
isModEnabled(
"bank"))),
112 'pd.amount' => array(
'label' =>
"Amount",
'checked' =>
'1',
'position' => 80),
115$parameters = array(
'arrayfields' => &$arrayfields);
116$reshook = $hookmanager->executeHooks(
'completeArrayFields', $parameters, $object, $action);
119$optioncss =
GETPOST(
'optioncss',
'alpha');
120$moreforfilter =
GETPOST(
'moreforfilter',
'alpha');
123$hookmanager->initHooks(array(
'donationlist'));
128$permissiontoread = $user->hasRight(
'don',
'read');
129$permissiontoadd = $user->hasRight(
'don',
'write');
130$permissiontodelete = $user->hasRight(
'don',
'delete');
136$parameters = array(
'socid' => $paiementid);
137$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
142if (empty($reshook)) {
143 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
146 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
148 $search_date_startday =
'';
149 $search_date_startmonth =
'';
150 $search_date_startyear =
'';
151 $search_date_endday =
'';
152 $search_date_endmonth =
'';
153 $search_date_endyear =
'';
154 $search_date_start =
'';
155 $search_date_end =
'';
156 $search_account =
'';
158 $search_paymenttype =
'';
159 $search_payment_num =
'';
160 $search_company =
'';
163 $search_array_options = array();
176$title = $langs->trans(
"Donations");
177$help_url =
'EN:Module_Donations|FR:Module_Dons|ES:Módulo_Donaciones|DE:Modul_Spenden';
181$sql =
"SELECT pd.rowid as payment_id, pd.amount, pd.datep, pd.fk_typepayment, pd.num_payment, pd.amount, pd.fk_bank, ";
182$sql .=
' s.rowid as soc_id, s.nom, ';
183$sql .=
' d.societe, ';
184$sql .=
' c.code as paiement_code, ';
185$sql .=
' d.rowid, ba.rowid as bid, ba.ref as bref, ba.label as blabel, ba.number, ba.account_number as account_number, ba.iban_prefix, ba.bic, ba.currency_code, ba.fk_accountancy_journal as accountancy_journal ';
188$parameters = array();
189$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters);
190$sql .= $hookmanager->resPrint;
194$sql .=
" FROM ".MAIN_DB_PREFIX.
"payment_donation as pd";
195$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"don as d ON (d.rowid = pd.fk_donation)";
196$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank as b ON (b.rowid = pd.fk_bank)";
197$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank_account as ba ON (ba.rowid = b.fk_account)";
198$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"societe as s ON (s.rowid = d.fk_soc)";
199$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as c ON (c.id = pd.fk_typepayment)";
200$sql .=
" WHERE d.entity IN (".getEntity(
'donation').
")";
205if ($search_date_start) {
206 $sql .=
" AND pd.datep >= '" .
$db->idate($search_date_start) .
"'";
208if ($search_date_end) {
209 $sql .=
" AND pd.datep <= '" .
$db->idate($search_date_end) .
"'";
211if ($search_account > 0) {
212 $sql .=
" AND b.fk_account=".((int) $search_account);
214if ($search_paymenttype !=
'') {
215 $sql .=
" AND c.code='".$db->escape($search_paymenttype).
"'";
217if ($search_payment_num !=
'') {
223if ($search_company) {
227 $sql .=
natural_search(array_keys($fieldstosearchall), $search_all);
231$parameters = array();
232$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters);
233$sql .= $hookmanager->resPrint;
236$nbtotalofrecords =
'';
239 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
240 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
241 $resql =
$db->query($sqlforcount);
243 $objforcount =
$db->fetch_object($resql);
244 $nbtotalofrecords = $objforcount->nbtotalofrecords;
249 if (($page * $limit) > (
int) $nbtotalofrecords) {
256$sql .=
$db->order($sortfield, $sortorder);
260 $sql .=
$db->plimit($limit + 1, $offset);
263$resql =
$db->query($sql);
270$num =
$db->num_rows($resql);
275llxHeader(
'', $title, $help_url,
'', 0, 0, $morejs, $morecss,
'',
'bodyforlist');
277$arrayofselected = is_array($toselect) ? $toselect : array();
279if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
280 $param .=
'&contextpage='.urlencode($contextpage);
282if ($limit > 0 && $limit !=
$conf->liste_limit) {
283 $param .=
'&limit='.((int) $limit);
286 $param .=
'&search_ref='.urlencode($search_ref);
288if ($search_date_startday) {
289 $param .=
'&search_date_startday='.urlencode((
string) ($search_date_startday));
291if ($search_date_startmonth) {
292 $param .=
'&search_date_startmonth='.urlencode((
string) ($search_date_startmonth));
294if ($search_date_startyear) {
295 $param .=
'&search_date_startyear='.urlencode((
string) ($search_date_startyear));
297if ($search_date_endday) {
298 $param .=
'&search_date_endday='.urlencode((
string) ($search_date_endday));
300if ($search_date_endmonth) {
301 $param .=
'&search_date_endmonth='.urlencode((
string) ($search_date_endmonth));
303if ($search_date_endyear) {
304 $param .=
'&search_date_endyear='.urlencode((
string) ($search_date_endyear));
306if ($search_company) {
307 $param .=
'&search_company='.urlencode($search_company);
309if ($search_amount !=
'') {
310 $param .=
'&search_amount='.urlencode($search_amount);
312if ($search_paymenttype) {
313 $param .=
'&search_paymenttype='.urlencode($search_paymenttype);
315if ($search_account) {
316 $param .=
'&search_account='.urlencode((
string) ($search_account));
318if ($search_payment_num) {
319 $param .=
'&search_payment_num='.urlencode($search_payment_num);
321if ($optioncss !=
'') {
322 $param .=
'&optioncss='.urlencode($optioncss);
325print
'<form method="POST" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
326if ($optioncss !=
'') {
327 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
329print
'<input type="hidden" name="token" value="'.newToken().
'">';
330print
'<input type="hidden" name="action" value="list">';
331print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
332print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
333print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
334print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
337print_barre_liste($langs->trans(
"DonationPayments"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'bill', 0,
'',
'', $limit, 0, 0, 1);
340 foreach ($fieldstosearchall as $key => $val) {
341 $fieldstosearchall[$key] = $langs->trans($val);
343 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $search_all).implode(
', ', $fieldstosearchall).
'</div>';
346$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
347$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
$conf->main_checkbox_left_column);
354print
'<div class="div-table-responsive">';
355print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
'').
'">';
359print
'<tr class="liste_titre_filter">';
361if (
$conf->main_checkbox_left_column) {
362 print
'<td class="liste_titre center maxwidthsearch">';
363 $searchpicto = $form->showFilterButtons(
'left');
369 print
'<td class="liste_titre">';
373if (!empty($arrayfields[
'pd.rowid'][
'checked'])) {
374 print
'<td class="liste_titre left">';
375 print
'<input class="flat" type="text" size="4" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
380if (!empty($arrayfields[
'pd.datep'][
'checked'])) {
381 print
'<td class="liste_titre">';
382 print
'<div class="nowrapfordate">';
383 print $form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
385 print
'<div class="nowrapfordate">';
386 print $form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
392if (!empty($arrayfields[
's.nom'][
'checked'])) {
393 print
'<td class="liste_titre">';
394 print
'<input class="flat" type="text" size="6" name="search_company" value="'.dol_escape_htmltag($search_company).
'">';
399if (!empty($arrayfields[
'c.code'][
'checked'])) {
400 print
'<td class="liste_titre">';
401 print $form->select_types_paiements($search_paymenttype,
'search_paymenttype',
'', 2, 1, 1, 0, 1,
'maxwidth100', 1);
406if (!empty($arrayfields[
'transaction'][
'checked'])) {
407 print
'<td class="liste_titre">';
408 print
'<input class="flat" type="text" size="4" name="search_payment_num" value="'.dol_escape_htmltag($search_payment_num).
'">';
413if (!empty($arrayfields[
'pd.num_paiement'][
'checked'])) {
414 print
'<td class="liste_titre">';
419if (!empty($arrayfields[
'ba.label'][
'checked'])) {
420 print
'<td class="liste_titre">';
421 $form->select_comptes($search_account,
'search_account', 0,
'', 1);
426if (!empty($arrayfields[
'pd.amount'][
'checked'])) {
427 print
'<td class="liste_titre right">';
428 print
'<input class="flat" type="text" size="6" name="search_amount" value="'.dol_escape_htmltag($search_amount).
'">';
433$parameters = array(
'arrayfields' => $arrayfields);
434$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object, $action);
435print $hookmanager->resPrint;
438if (!
$conf->main_checkbox_left_column) {
439 print
'<td class="liste_titre center maxwidthsearch">';
440 $searchpicto = $form->showFilterButtons();
452print
'<tr class="liste_titre">';
454if (
$conf->main_checkbox_left_column) {
455 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'align="center"', $sortfield, $sortorder,
'maxwidthsearch ');
462if (!empty($arrayfields[
'pd.rowid'][
'checked'])) {
464 print_liste_field_titre($arrayfields[
'pd.rowid'][
'label'], $_SERVER[
"PHP_SELF"],
"pd.rowid",
'', $param,
'', $sortfield, $sortorder);
467if (!empty($arrayfields[
'pd.datep'][
'checked'])) {
468 print_liste_field_titre($arrayfields[
'pd.datep'][
'label'], $_SERVER[
"PHP_SELF"],
"pd.datep",
'', $param,
'', $sortfield, $sortorder);
471if (!empty($arrayfields[
's.nom'][
'checked'])) {
472 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"s.nom",
'', $param,
'', $sortfield, $sortorder);
475if (!empty($arrayfields[
'c.code'][
'checked'])) {
476 print_liste_field_titre($arrayfields[
'c.code'][
'label'], $_SERVER[
"PHP_SELF"],
"c.code",
'', $param,
'', $sortfield, $sortorder);
479if (!empty($arrayfields[
'pd.num_paiement'][
'checked'])) {
480 print_liste_field_titre($arrayfields[
'pd.num_paiement'][
'label'], $_SERVER[
"PHP_SELF"],
"pd.num_payment",
'', $param,
'', $sortfield, $sortorder,
'', $arrayfields[
'pd.num_paiement'][
'tooltip']);
483if (!empty($arrayfields[
'transaction'][
'checked'])) {
484 print_liste_field_titre($arrayfields[
'transaction'][
'label'], $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder);
487if (!empty($arrayfields[
'ba.label'][
'checked'])) {
488 print_liste_field_titre($arrayfields[
'ba.label'][
'label'], $_SERVER[
"PHP_SELF"],
"ba.label",
'', $param,
'', $sortfield, $sortorder);
491if (!empty($arrayfields[
'pd.amount'][
'checked'])) {
492 print_liste_field_titre($arrayfields[
'pd.amount'][
'label'], $_SERVER[
"PHP_SELF"],
"pd.amount",
'', $param,
'', $sortfield, $sortorder,
'right ');
497include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
499$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
500$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
501print $hookmanager->resPrint;
503if (!
$conf->main_checkbox_left_column) {
504 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'align="center"', $sortfield, $sortorder,
'maxwidthsearch ');
510$needToFetchEachLine = 0;
511if (isset($extrafields->attributes[
$object->table_element][
'computed']) && is_array($extrafields->attributes[
$object->table_element][
'computed']) && count($extrafields->attributes[
$object->table_element][
'computed']) > 0) {
512 foreach ($extrafields->attributes[
$object->table_element][
'computed'] as $key => $val) {
513 if (!is_null($val) && preg_match(
'/\$object/', $val)) {
514 $needToFetchEachLine++;
525$imaxinloop = ($limit ? min($num, $limit) : $num);
526while ($i < $imaxinloop) {
527 $obj =
$db->fetch_object($resql);
529 $companystatic->id = $obj->soc_id;
530 $companystatic->name = $obj->nom;
533 $result = $company->fetch($obj->socid);
535 print
'<tr class="oddeven">';
536 if (
$conf->main_checkbox_left_column) {
537 print
'<td class="nowrap center">';
540 if (in_array($obj->id_paiement, $arrayofselected)) {
543 print
'<input id="cb'.$obj->id_paiement.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->id_paiement.
'"'.($selected ?
' checked="checked"' :
'').
'>';
552 if (!empty($arrayfields[
'pd.rowid'][
'checked'])) {
553 print
'<td><a href="' . DOL_URL_ROOT .
'/don/payment/card.php?id=' . $obj->payment_id .
'">' .
img_object($langs->trans(
"Payment"),
"payment") .
' ' . $obj->payment_id .
'</a></td>';
560 if (!empty($arrayfields[
'pd.datep'][
'checked'])) {
561 $dateformatforpayment =
'dayhour';
562 print
'<td class="nowraponall">'.dol_print_date(
$db->jdate($obj->datep), $dateformatforpayment,
'tzuser').
'</td>';
569 if (!empty($arrayfields[
's.nom'][
'checked'])) {
570 print
'<td class="nowraponall">';
571 if ($obj->soc_id > 0) {
572 print $companystatic->getNomUrl(1,
'', 24);
574 print
$object->societe = $obj->societe;
583 if (!empty($arrayfields[
'c.code'][
'checked'])) {
584 print
'<td>'.$langs->trans(
"PaymentTypeShort".$obj->paiement_code).
'</td>';
591 if (!empty($arrayfields[
'pd.num_paiement'][
'checked'])) {
592 print
'<td>'.$obj->num_payment.
'</td>';
599 if (!empty($arrayfields[
'transaction'][
'checked'])) {
600 print
'<td class="tdoverflowmax125">';
601 if ($obj->fk_bank > 0) {
602 $test = $bankline->fetch($obj->fk_bank);
603 print $bankline->getNomUrl(1, 0);
612 if (!empty($arrayfields[
'ba.label'][
'checked'])) {
615 $accountstatic->id = $obj->bid;
616 $accountstatic->ref = $obj->bref;
617 $accountstatic->label = $obj->blabel;
618 $accountstatic->number = $obj->number;
619 $accountstatic->account_number = $obj->account_number;
622 $accountingjournal->fetch($obj->accountancy_journal);
623 $accountstatic->accountancy_journal = $accountingjournal->code;
625 print $accountstatic->getNomUrl(1);
633 if (!empty($arrayfields[
'pd.amount'][
'checked'])) {
634 print
'<td class="right"><span class="amount">' .
price($obj->amount) .
'</span></td>';
646 if (!
$conf->main_checkbox_left_column) {
647 print
'<td class="nowrap center">';
650 if (in_array($obj->id_paiement, $arrayofselected)) {
653 print
'<input id="cb'.$obj->id_paiement.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->id_paiement.
'"'.($selected ?
' checked="checked"' :
'').
'>';
665include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
670 foreach ($arrayfields as $key => $val) {
671 if (!empty($val[
'checked'])) {
675 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
680$parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
681$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
682print $hookmanager->resPrint;
684print
'</table>'.
"\n";
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 bank transaction lines.
Class to manage accounting journals.
Class to manage donations.
Class to manage third parties objects (customers, suppliers, prospects...)
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...
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.
natural_search($fields, $value, $mode=0, $nofirstand=0, $sqltoadd='')
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_sort_array(&$array, $index, $order='asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by the value of a given key, which produces ascending (default) or descending out...
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.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
print_liste_field_titre($name, $file="", $field="", $begin="", $param="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
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_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $allowothertags=array())
Show a picto called object_picto (generic function)
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
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.