38require
'../../main.inc.php';
39require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/paymentexpensereport.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
43require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
46$langs->loadLangs(array(
'trips',
'bills',
'banks',
'compta'));
48$action =
GETPOST(
'action',
'alpha');
49$massaction =
GETPOST(
'massaction',
'alpha');
50$optioncss =
GETPOST(
'optioncss',
'alpha');
51$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'vendorpaymentlist';
52$mode =
GETPOST(
'mode',
'alpha');
58 $socid = $user->socid;
61$search_ref =
GETPOST(
'search_ref',
'alpha');
62$search_date_startday =
GETPOSTINT(
'search_date_startday');
63$search_date_startmonth =
GETPOSTINT(
'search_date_startmonth');
64$search_date_startyear =
GETPOSTINT(
'search_date_startyear');
65$search_date_endday =
GETPOSTINT(
'search_date_endday');
66$search_date_endmonth =
GETPOSTINT(
'search_date_endmonth');
67$search_date_endyear =
GETPOSTINT(
'search_date_endyear');
68$search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
69$search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
70$search_user =
GETPOST(
'search_user',
'alpha');
71$search_payment_type =
GETPOST(
'search_payment_type');
72$search_cheque_num =
GETPOST(
'search_cheque_num',
'alpha');
73$search_bank_account =
GETPOST(
'search_bank_account',
'int');
74$search_amount =
GETPOST(
'search_amount',
'alpha');
77$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
78$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
80if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
84$offset = $limit * $page;
92 $sortfield =
"pndf.datep";
95$search_all = trim(GETPOSTISSET(
"search_all") ?
GETPOST(
"search_all",
'alpha') :
GETPOST(
'sall'));
98$fieldstosearchall = array(
99 'pndf.rowid' =>
"RefPayment",
101 'pndf.num_payment' =>
"Numero",
102 'pndf.amount' =>
"Amount",
106 'pndf.rowid' => array(
'label' =>
"RefPayment",
'checked' => 1,
'position' => 10),
107 'pndf.datep' => array(
'label' =>
"Date",
'checked' => 1,
'position' => 20),
108 'u.login' => array(
'label' =>
"User",
'checked' => 1,
'position' => 30),
109 'c.libelle' => array(
'label' =>
"Type",
'checked' => 1,
'position' => 40),
110 'pndf.num_payment' => array(
'label' =>
"Numero",
'checked' => 1,
'position' => 50,
'tooltip' =>
"ChequeOrTransferNumber"),
111 'ba.label' => array(
'label' =>
"BankAccount",
'checked' => 1,
'position' => 60,
'enable' => (isModEnabled(
"bank"))),
112 'pndf.amount' => array(
'label' =>
"Amount",
'checked' => 1,
'position' => 70),
115'@phan-var-force array<string,array{label:string,checked?:int<0,1>,position?:int,help?:string}> $arrayfields';
118$hookmanager->initHooks(array(
'paymentexpensereportlist'));
123 $socid = $user->socid;
132if (!$user->hasRight(
'expensereport',
'lire')) {
141$childids = $user->getAllChildIds(1);
143$parameters = array(
'socid' => $socid);
144$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
149if (empty($reshook)) {
151 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
154 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
156 $search_date_startday =
'';
157 $search_date_startmonth =
'';
158 $search_date_startyear =
'';
159 $search_date_endday =
'';
160 $search_date_endmonth =
'';
161 $search_date_endyear =
'';
162 $search_date_start =
'';
163 $search_date_end =
'';
165 $search_payment_type =
'';
166 $search_cheque_num =
'';
167 $search_bank_account =
'';
176$form =
new Form($db);
178$accountstatic =
new Account($db);
179$userstatic =
new User($db);
185$sql =
'SELECT pndf.rowid, pndf.rowid as ref, pndf.datep, pndf.amount as pamount, pndf.num_payment';
186$sql .=
', u.rowid as userid, u.login, u.email, u.lastname, u.firstname, u.photo';
187$sql .=
', c.code as paiement_type, c.libelle as paiement_libelle';
188$sql .=
', 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';
189$sql .=
', SUM(pndf.amount)';
191$parameters = array();
192$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object, $action);
193$sql .= $hookmanager->resPrint;
194$sql = preg_replace(
'/,\s*$/',
'', $sql);
198$sql .=
' FROM '.MAIN_DB_PREFIX.
'payment_expensereport AS pndf';
199$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'expensereport AS ndf ON ndf.rowid=pndf.fk_expensereport';
200$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_paiement AS c ON pndf.fk_typepayment = c.id';
201$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user AS u ON u.rowid = ndf.fk_user_author';
202$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'bank as b ON pndf.fk_bank = b.rowid';
203$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'bank_account as ba ON b.fk_account = ba.rowid';
204$sql .=
' WHERE ndf.entity IN ('.getEntity(
"expensereport").
')';
207if (!$user->hasRight(
'expensereport',
'readall') && !$user->hasRight(
'expensereport',
'lire_tous')
208 && (!
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') || !$user->hasRight(
'expensereport',
'writeall_advance'))) {
209 $sql .=
" AND ndf.fk_user_author IN (".$db->sanitize(implode(
',', $childids)).
")\n";
215if ($search_date_start) {
216 $sql .=
" AND pndf.datep >= '" . $db->idate($search_date_start) .
"'";
218if ($search_date_end) {
219 $sql .=
" AND pndf.datep <= '" . $db->idate($search_date_end) .
"'";
223 $sql .=
natural_search(array(
'u.login',
'u.lastname',
'u.firstname'), $search_user);
225if ($search_payment_type !=
'') {
226 $sql .=
" AND c.code = '".$db->escape($search_payment_type).
"'";
228if ($search_cheque_num !=
'') {
234if ($search_bank_account > 0) {
235 $sql .=
' AND b.fk_account = '.((int) $search_bank_account);
238 $sql .=
natural_search(array_keys($fieldstosearchall), $search_all);
242include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
244$parameters = array();
245$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object, $action);
246$sql .= $hookmanager->resPrint;
248$sql .=
' GROUP BY pndf.rowid, pndf.datep, pndf.amount, pndf.num_payment, u.rowid, u.login, u.email, u.lastname, u.firstname, u.photo, c.code, c.libelle,';
249$sql .=
' ba.rowid, ba.ref, ba.label, ba.number, ba.account_number, ba.iban_prefix, ba.bic, ba.currency_code, ba.fk_accountancy_journal';
252$nbtotalofrecords =
'';
255 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
256 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
258 $resql = $db->query($sqlforcount);
260 $objforcount = $db->fetch_object($resql);
261 $nbtotalofrecords = $objforcount->nbtotalofrecords;
266 if (($page * $limit) > $nbtotalofrecords) {
274$sql .= $db->order($sortfield, $sortorder);
276 $sql .= $db->plimit($limit + 1, $offset);
279$resql = $db->query($sql);
285$num = $db->num_rows($resql);
293llxHeader(
'', $langs->trans(
'ListPayment'),
'', 0, 0,
'',
'',
'',
'bodyforlist');
295$arrayofselected = is_array($toselect) ? $toselect : array();
299 $param .=
'&mode='.urlencode($mode);
301if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
302 $param .=
'&contextpage='.urlencode($contextpage);
304if ($limit > 0 && $limit != $conf->liste_limit) {
305 $param .=
'&limit='.((int) $limit);
307if ($optioncss !=
'') {
308 $param .=
'&optioncss='.urlencode($optioncss);
312 $param .=
'&search_ref='.urlencode($search_ref);
314if ($search_date_startday) {
315 $param .=
'&search_date_startday='.urlencode((
string) ($search_date_startday));
317if ($search_date_startmonth) {
318 $param .=
'&search_date_startmonth='.urlencode((
string) ($search_date_startmonth));
320if ($search_date_startyear) {
321 $param .=
'&search_date_startyear='.urlencode((
string) ($search_date_startyear));
323if ($search_date_endday) {
324 $param .=
'&search_date_endday='.urlencode((
string) ($search_date_endday));
326if ($search_date_endmonth) {
327 $param .=
'&search_date_endmonth='.urlencode((
string) ($search_date_endmonth));
329if ($search_date_endyear) {
330 $param .=
'&search_date_endyear='.urlencode((
string) ($search_date_endyear));
333 $param .=
'&search_user='.urlencode($search_user);
335if ($search_payment_type) {
336 $param .=
'&search_payment_type='.urlencode($search_payment_type);
338if ($search_cheque_num) {
339 $param .=
'&search_cheque_num='.urlencode($search_cheque_num);
342 $param .=
'&search_amount='.urlencode($search_amount);
344if ($search_bank_account) {
345 $param .=
'&search_bank_account='.urlencode((
string) ($search_bank_account));
349include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
351$parameters = array(
'param' => &$param);
352$reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object, $action);
353$param .= $hookmanager->resPrint;
356$arrayofmassactions = array(
363if (
GETPOSTINT(
'nomassaction') || in_array($massaction, array(
'presend',
'predelete'))) {
364 $arrayofmassactions = array();
366$massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
368print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">'.
"\n";
369if ($optioncss !=
'') {
370 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
372print
'<input type="hidden" name="token" value="'.newToken().
'">';
373print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
374print
'<input type="hidden" name="action" value="list">';
375print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
376print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
377print
'<input type="hidden" name="page" value="'.$page.
'">';
378print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
379print
'<input type="hidden" name="page_y" value="">';
380print
'<input type="hidden" name="mode" value="'.$mode.
'">';
383$newcardbutton .=
dolGetButtonTitle($langs->trans(
'ViewList'),
'',
'fa fa-bars imgforviewmode', $_SERVER[
"PHP_SELF"].
'?mode=common'.preg_replace(
'/(&|\?)*mode=[^&]+/',
'', $param),
'', ((empty($mode) || $mode ==
'common') ? 2 : 1), array(
'morecss' =>
'reposition'));
384$newcardbutton .=
dolGetButtonTitle($langs->trans(
'ViewKanban'),
'',
'fa fa-th-list imgforviewmode', $_SERVER[
"PHP_SELF"].
'?mode=kanban'.preg_replace(
'/(&|\?)*mode=[^&]+/',
'', $param),
'', ($mode ==
'kanban' ? 2 : 1), array(
'morecss' =>
'reposition'));
387print_barre_liste($langs->trans(
'ExpenseReportPayments'), $page, $_SERVER[
'PHP_SELF'], $param, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'expensereport', 0, $newcardbutton,
'', $limit, 0, 0, 1);
391 foreach ($fieldstosearchall as $key => $val) {
392 $fieldstosearchall[$key] = $langs->trans($val);
393 $setupstring .= $key.
"=".$val.
";";
395 print
'<!-- Search done like if EXPENSEREPORT_PAYMENT_QUICKSEARCH_ON_FIELDS = '.$setupstring.
' -->'.
"\n";
396 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $search_all).implode(
', ', $fieldstosearchall).
'</div>';
401$parameters = array();
402$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
403if (empty($reshook)) {
404 $moreforfilter .= $hookmanager->resPrint;
406 $moreforfilter = $hookmanager->resPrint;
409if (!empty($moreforfilter)) {
410 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
411 print $moreforfilter;
412 $parameters = array();
413 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
414 print $hookmanager->resPrint;
418$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
419$htmlofselectarray = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
420$selectedfields = ($mode !=
'kanban' ? $htmlofselectarray :
'');
421$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons(
'checkforselect', 1) :
'');
423print
'<div class="div-table-responsive">';
424print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
'').
'">';
428print
'<tr class="liste_titre_filter">';
432 print
'<td class="liste_titre center maxwidthsearch">';
433 $searchpicto = $form->showFilterButtons(
'left');
439if (!empty($arrayfields[
'pndf.rowid'][
'checked'])) {
440 print
'<td class="liste_titre left">';
441 print
'<input class="flat" type="text" size="4" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
446if (!empty($arrayfields[
'pndf.datep'][
'checked'])) {
447 print
'<td class="liste_titre center">';
448 print
'<div class="nowrapfordate">';
449 print $form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
451 print
'<div class="nowrapfordate">';
452 print $form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
458if (!empty($arrayfields[
'u.login'][
'checked'])) {
459 print
'<td class="liste_titre">';
460 print
'<input class="flat width75" type="text" name="search_user" value="'.dol_escape_htmltag($search_user).
'">';
465if (!empty($arrayfields[
'c.libelle'][
'checked'])) {
466 print
'<td class="liste_titre">';
467 $form->select_types_paiements($search_payment_type,
'search_payment_type',
'', 2, 1, 1);
472if (!empty($arrayfields[
'pndf.num_payment'][
'checked'])) {
473 print
'<td class="liste_titre">';
474 print
'<input class="flat" type="text" size="4" name="search_cheque_num" value="'.dol_escape_htmltag($search_cheque_num).
'">';
479if (!empty($arrayfields[
'ba.label'][
'checked'])) {
480 print
'<td class="liste_titre">';
481 $form->select_comptes($search_bank_account,
'search_bank_account', 0,
'', 1);
486if (!empty($arrayfields[
'pndf.amount'][
'checked'])) {
487 print
'<td class="liste_titre right">';
488 print
'<input class="flat" type="text" size="4" name="search_amount" value="'.dol_escape_htmltag($search_amount).
'">';
493$parameters = array(
'arrayfields' => $arrayfields);
494$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
495print $hookmanager->resPrint;
499 print
'<td class="liste_titre center maxwidthsearch">';
500 $searchpicto = $form->showFilterButtons();
507$totalarray = array();
508$totalarray[
'nbfield'] = 0;
512print
'<tr class="liste_titre">';
515 print_liste_field_titre($selectedfields, $_SERVER[
'PHP_SELF'],
'',
'',
'',
'align="center"', $sortfield, $sortorder,
'maxwidthsearch ');
516 $totalarray[
'nbfield']++;
518if (!empty($arrayfields[
'i'][
'checked'])) {
520 $totalarray[
'nbfield']++;
522if (!empty($arrayfields[
'pndf.rowid'][
'checked'])) {
523 print_liste_field_titre($arrayfields[
'pndf.rowid'][
'label'], $_SERVER[
"PHP_SELF"],
'pndf.rowid',
'', $param,
'', $sortfield, $sortorder);
524 $totalarray[
'nbfield']++;
526if (!empty($arrayfields[
'pndf.datep'][
'checked'])) {
527 print_liste_field_titre($arrayfields[
'pndf.datep'][
'label'], $_SERVER[
"PHP_SELF"],
'pndf.datep',
'', $param,
'', $sortfield, $sortorder,
'center ');
528 $totalarray[
'nbfield']++;
530if (!empty($arrayfields[
'u.login'][
'checked'])) {
531 print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"],
'u.lastname',
'', $param,
'', $sortfield, $sortorder);
532 $totalarray[
'nbfield']++;
534if (!empty($arrayfields[
'c.libelle'][
'checked'])) {
535 print_liste_field_titre($arrayfields[
'c.libelle'][
'label'], $_SERVER[
"PHP_SELF"],
'c.libelle',
'', $param,
'', $sortfield, $sortorder);
536 $totalarray[
'nbfield']++;
538if (!empty($arrayfields[
'pndf.num_payment'][
'checked'])) {
539 print_liste_field_titre($arrayfields[
'pndf.num_payment'][
'label'], $_SERVER[
"PHP_SELF"],
"pndf.num_payment",
'', $param,
'', $sortfield, $sortorder,
'', $arrayfields[
'pndf.num_payment'][
'tooltip']);
540 $totalarray[
'nbfield']++;
542if (!empty($arrayfields[
'ba.label'][
'checked'])) {
543 print_liste_field_titre($arrayfields[
'ba.label'][
'label'], $_SERVER[
"PHP_SELF"],
'ba.label',
'', $param,
'', $sortfield, $sortorder);
544 $totalarray[
'nbfield']++;
546if (!empty($arrayfields[
'pndf.amount'][
'checked'])) {
547 print_liste_field_titre($arrayfields[
'pndf.amount'][
'label'], $_SERVER[
"PHP_SELF"],
'pndf.amount',
'', $param,
'', $sortfield, $sortorder,
'right ');
548 $totalarray[
'nbfield']++;
552$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder,
'totalarray' => &$totalarray);
553$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
554print $hookmanager->resPrint;
557 print_liste_field_titre($selectedfields, $_SERVER[
'PHP_SELF'],
'',
'',
'',
'align="center"', $sortfield, $sortorder,
'maxwidthsearch ');
558 $totalarray[
'nbfield']++;
563foreach ($arrayfields as $column) {
564 if ($column[
'checked']) {
572$savnbfield = $totalarray[
'nbfield'];
573$totalarray = array();
574$totalarray[
'nbfield'] = 0;
575$imaxinloop = ($limit ? min($num, $limit) : $num);
576while ($i < $imaxinloop) {
577 $objp = $db->fetch_object($resql);
582 $paymentexpensereportstatic->id = $objp->rowid;
583 $paymentexpensereportstatic->ref = $objp->ref;
584 $paymentexpensereportstatic->datep = $db->jdate($objp->datep);
585 $paymentexpensereportstatic->amount = $objp->pamount;
586 $paymentexpensereportstatic->fk_typepayment = $objp->paiement_type;
589 $accountstatic->fetch($objp->bid);
590 $paymentexpensereportstatic->fk_bank = $accountstatic->id;
592 $paymentexpensereportstatic->fk_bank = 0;
595 $userstatic->id = $objp->userid;
596 $userstatic->lastname = $objp->lastname;
597 $userstatic->firstname = $objp->firstname;
598 $userstatic->login = $objp->login;
599 $userstatic->email = $objp->email;
600 $userstatic->photo = $objp->photo;
602 if ($mode ==
'kanban') {
604 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
605 print
'<div class="box-flex-container kanban">';
608 print $paymentexpensereportstatic->getKanbanView(
'', array(
'selected' => in_array($objp->id, $arrayofselected)));
609 if ($i == ($imaxinloop - 1)) {
616 print
'<tr data-rowid="'.$object->id.
'" class="oddeven">';
620 print
'<td class="nowrap center">';
621 if ($massactionbutton || $massaction) {
623 if (in_array(
$object->id, $arrayofselected)) {
626 print
'<input id="cb'.$object->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.
$object->id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
630 $totalarray[
'nbfield']++;
635 if (!empty($arrayfields[
'i'][
'checked'])) {
636 print
'<td>#'.(($offset * $limit) + $i).
'</td>';
638 $totalarray[
'nbfield']++;
643 if (!empty($arrayfields[
'pndf.rowid'][
'checked'])) {
644 print
'<td class="nowrap">'.$paymentexpensereportstatic->getNomUrl(1).
'</td>';
646 $totalarray[
'nbfield']++;
651 if (!empty($arrayfields[
'pndf.datep'][
'checked'])) {
652 $dateformatforpayment =
'dayhour';
653 print
'<td class="nowrap center">'.dol_print_date($db->jdate($objp->datep), $dateformatforpayment).
'</td>';
655 $totalarray[
'nbfield']++;
660 if (!empty($arrayfields[
'u.login'][
'checked'])) {
662 if ($userstatic->id > 0) {
663 print $userstatic->getNomUrl(-1);
667 $totalarray[
'nbfield']++;
672 if (!empty($arrayfields[
'c.libelle'][
'checked'])) {
673 $payment_type = $langs->trans(
"PaymentType".$objp->paiement_type) !=
"PaymentType".$objp->paiement_type ? $langs->trans(
"PaymentType".$objp->paiement_type) : $objp->paiement_libelle;
674 print
'<td>'.$payment_type.
' '.
dol_trunc($objp->num_payment, 32).
'</td>';
676 $totalarray[
'nbfield']++;
681 if (!empty($arrayfields[
'pndf.num_payment'][
'checked'])) {
682 print
'<td>'.$objp->num_payment.
'</td>';
684 $totalarray[
'nbfield']++;
689 if (!empty($arrayfields[
'ba.label'][
'checked'])) {
692 $accountstatic->id = $objp->bid;
693 $accountstatic->ref = $objp->bref;
694 $accountstatic->label = $objp->blabel;
695 $accountstatic->number = $objp->number;
696 $accountstatic->iban = $objp->iban_prefix;
697 $accountstatic->bic = $objp->bic;
698 $accountstatic->currency_code = $objp->currency_code;
699 $accountstatic->account_number = $objp->account_number;
702 $accountingjournal->fetch($objp->accountancy_journal);
703 $accountstatic->accountancy_journal = $accountingjournal->code;
705 print $accountstatic->getNomUrl(1);
711 $totalarray[
'nbfield']++;
716 if (!empty($arrayfields[
'pndf.amount'][
'checked'])) {
717 print
'<td class="right"><span class="amount">'.price($objp->pamount).
'</span></td>';
719 $totalarray[
'nbfield']++;
721 $totalarray[
'pos'][$checkedCount] =
'amount';
722 if (empty($totalarray[
'val'][
'amount'])) {
723 $totalarray[
'val'][
'amount'] = $objp->pamount;
725 $totalarray[
'val'][
'amount'] += $objp->pamount;
731 print
'<td class="nowrap center">';
732 if ($massactionbutton || $massaction) {
734 if (in_array(
$object->id, $arrayofselected)) {
737 print
'<input id="cb'.$object->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.
$object->id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
741 $totalarray[
'nbfield']++;
752include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
757 foreach ($arrayfields as $key => $val) {
758 if (!empty($val[
'checked'])) {
762 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
767$parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
768$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
769print $hookmanager->resPrint;
771print
'</table>'.
"\n";
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()
Empty header.
Class to manage bank accounts.
Class to manage accounting journals.
Class to manage payments of expense report.
Class to manage Dolibarr users.
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...
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
natural_search($fields, $value, $mode=0, $nofirstand=0)
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...
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $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, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
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_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_trunc($string, $size=40, $trunc='right', $stringencoding='UTF-8', $nodot=0, $display=0)
Truncate a string to a particular length adding '…' if string larger than length.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.