38 require
'../../main.inc.php';
39 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/paiementfourn.class.php';
40 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
41 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
42 require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
43 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
46 $langs->loadLangs(array(
'companies',
'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';
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_payment_type =
GETPOST(
'search_payment_type',
'alpha');
67 $search_cheque_num =
GETPOST(
'search_cheque_num',
'alpha');
68 $search_bank_account =
GETPOST(
'search_bank_account',
'int');
69 $search_amount =
GETPOST(
'search_amount',
'alpha');
73 $sortfield =
GETPOST(
'sortfield',
'aZ09comma');
74 $sortorder =
GETPOST(
'sortorder',
'aZ09comma');
77 if (empty($page) || $page == -1) {
80 $offset = $limit * $page;
81 $pageprev = $page - 1;
82 $pagenext = $page + 1;
88 $sortfield =
"p.datep";
94 $fieldstosearchall = array(
95 'p.ref' =>
"RefPayment",
96 's.nom' =>
"ThirdParty",
97 'p.num_paiement' =>
"Numero",
98 'p.amount' =>
"Amount",
101 $arrayfields = array(
102 'p.ref' => array(
'label' =>
"RefPayment",
'checked' => 1,
'position' => 10),
103 'p.datep' => array(
'label' =>
"Date",
'checked' => 1,
'position' => 20),
104 's.nom' => array(
'label' =>
"ThirdParty",
'checked' => 1,
'position' => 30),
105 'c.libelle' => array(
'label' =>
"Type",
'checked' => 1,
'position' => 40),
106 'p.num_paiement' => array(
'label' =>
"Numero",
'checked' => 1,
'position' => 50,
'tooltip' =>
"ChequeOrTransferNumber"),
107 'ba.label' => array(
'label' =>
"BankAccount",
'checked' => 1,
'position' => 60,
'enable' => (
isModEnabled(
"bank"))),
108 'p.amount' => array(
'label' =>
"Amount",
'checked' => 1,
'position' => 70),
111 '@phan-var-force array<string,array{label:string,checked?:int<0,1>,position?:int,help?:string}> $arrayfields';
114 $hookmanager->initHooks(array(
'paymentsupplierlist'));
117 if (!$user->hasRight(
'societe',
'client',
'voir')) {
118 $search_sale = $user->id;
123 $socid = $user->socid;
135 if ((!$user->hasRight(
"fournisseur",
"facture",
"lire") && !
getDolGlobalString(
'MAIN_USE_NEW_SUPPLIERMOD'))
136 || (!$user->hasRight(
"supplier_invoice",
"lire") &&
getDolGlobalString(
'MAIN_USE_NEW_SUPPLIERMOD'))) {
145 $parameters = array(
'socid' => $socid);
146 $reshook = $hookmanager->executeHooks(
'doActions', $parameters,
$object, $action);
151 if (empty($reshook)) {
152 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 =
'';
164 $search_company =
'';
165 $search_payment_type =
'';
166 $search_cheque_num =
'';
167 $search_bank_account =
'';
171 $search_array_options = array();
179 llxHeader(
'', $langs->trans(
'ListPayment'));
181 $form =
new Form($db);
183 $accountstatic =
new Account($db);
184 $companystatic =
new Societe($db);
187 $sql =
'SELECT p.rowid, p.ref, p.datep, p.fk_bank, p.statut, p.num_paiement as num_payment, p.amount';
188 $sql .=
', c.code as paiement_type, c.libelle as paiement_libelle';
189 $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';
190 $sql .=
', s.rowid as socid, s.nom as name, s.email';
193 $sql .=
", SUM(pf.amount) as totalamount, COUNT(f.rowid) as nbinvoices";
197 $sql .=
' FROM '.MAIN_DB_PREFIX.
'paiementfourn AS p';
198 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_paiement AS c ON p.fk_paiement = c.id';
199 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'bank as b ON p.fk_bank = b.rowid';
200 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'bank_account as ba ON b.fk_account = ba.rowid';
202 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'paiementfourn_facturefourn AS pf ON p.rowid = pf.fk_paiementfourn';
203 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'facture_fourn AS f ON f.rowid = pf.fk_facturefourn';
204 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe AS s ON s.rowid = f.fk_soc';
206 $sql .=
' WHERE f.entity IN ('.getEntity(
'supplier_invoice').
')';
208 $sql .=
" AND EXISTS (SELECT f.fk_soc FROM ".MAIN_DB_PREFIX.
"facture_fourn as f, ".MAIN_DB_PREFIX.
"paiementfourn_facturefourn as pf";
209 $sql .=
" WHERE p.rowid = pf.fk_paiementfourn AND pf.fk_facturefourn = f.rowid AND f.fk_soc = ".((int) $socid).
")";
216 if ($search_date_start) {
217 $sql .=
" AND p.datep >= '" . $db->idate($search_date_start) .
"'";
219 if ($search_date_end) {
220 $sql .=
" AND p.datep <= '" . $db->idate($search_date_end) .
"'";
223 if ($search_company) {
226 if ($search_payment_type !=
'') {
227 $sql .=
" AND c.code = '".$db->escape($search_payment_type).
"'";
229 if ($search_cheque_num !=
'') {
232 if ($search_amount) {
233 $sql .=
" AND (".natural_search(
'p.amount', $search_amount, 1, 1);
238 if ($search_bank_account > 0) {
239 $sql .=
' AND b.fk_account = '.((int) $search_bank_account);
245 if ($search_sale && $search_sale !=
'-1') {
246 if ($search_sale == -2) {
247 $sql .=
" AND NOT EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = f.fk_soc)";
248 } elseif ($search_sale > 0) {
249 $sql .=
" AND EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = f.fk_soc AND sc.fk_user = ".((int) $search_sale).
")";
254 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
256 $sql .=
' GROUP BY p.rowid, p.ref, p.datep, p.fk_bank, p.statut, p.num_paiement, p.amount, s.rowid, s.nom, s.email, c.code, c.libelle,';
257 $sql .=
' ba.rowid, ba.ref, ba.label, ba.number, ba.account_number, ba.iban_prefix, ba.bic, ba.currency_code, ba.fk_accountancy_journal';
260 $nbtotalofrecords =
'';
263 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(DISTINCT p.rowid) as nbtotalofrecords',
$sql);
264 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
265 $resql = $db->query($sqlforcount);
267 $objforcount = $db->fetch_object($resql);
268 $nbtotalofrecords = $objforcount->nbtotalofrecords;
273 if (($page * $limit) > $nbtotalofrecords) {
281 $sql .= $db->order($sortfield, $sortorder);
283 $sql .= $db->plimit($limit + 1, $offset);
287 $resql = $db->query(
$sql);
295 $num = $db->num_rows($resql);
299 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
300 $param .=
'&contextpage='.urlencode($contextpage);
302 if ($limit > 0 && $limit != $conf->liste_limit) {
303 $param .=
'&limit='.((int) $limit);
305 if ($optioncss !=
'') {
306 $param .=
'&optioncss='.urlencode($optioncss);
310 $param .=
'&search_ref='.urlencode($search_ref);
312 if ($search_date_startday) {
313 $param .=
'&search_date_startday='.urlencode((
string) ($search_date_startday));
315 if ($search_date_startmonth) {
316 $param .=
'&search_date_startmonth='.urlencode((
string) ($search_date_startmonth));
318 if ($search_date_startyear) {
319 $param .=
'&search_date_startyear='.urlencode((
string) ($search_date_startyear));
321 if ($search_date_endday) {
322 $param .=
'&search_date_endday='.urlencode((
string) ($search_date_endday));
324 if ($search_date_endmonth) {
325 $param .=
'&search_date_endmonth='.urlencode((
string) ($search_date_endmonth));
327 if ($search_date_endyear) {
328 $param .=
'&search_date_endyear='.urlencode((
string) ($search_date_endyear));
330 if ($search_company) {
331 $param .=
'&search_company='.urlencode($search_company);
333 if ($search_payment_type) {
334 $param .=
'&search_company='.urlencode($search_payment_type);
336 if ($search_cheque_num) {
337 $param .=
'&search_cheque_num='.urlencode($search_cheque_num);
339 if ($search_amount) {
340 $param .=
'&search_amount='.urlencode($search_amount);
344 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
346 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
347 if ($optioncss !=
'') {
348 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
350 print
'<input type="hidden" name="token" value="'.newToken().
'">';
351 print
'<input type="hidden" name="action" value="list">';
352 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
353 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
354 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
355 print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
358 print_barre_liste($langs->trans(
'SupplierPayments'), $page, $_SERVER[
'PHP_SELF'], $param, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'supplier_invoice', 0,
'',
'', $limit, 0, 0, 1);
361 foreach ($fieldstosearchall as $key => $val) {
362 $fieldstosearchall[$key] = $langs->trans($val);
364 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $search_all).implode(
', ', $fieldstosearchall).
'</div>';
369 $parameters = array();
370 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters);
371 if (empty($reshook)) {
372 $moreforfilter .= $hookmanager->resPrint;
374 $moreforfilter = $hookmanager->resPrint;
377 if ($moreforfilter) {
378 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
379 print $moreforfilter;
383 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
384 $selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
385 if (!empty($massactionbutton)) {
386 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
389 print
'<div class="div-table-responsive">';
390 print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
'').
'">';
394 print
'<tr class="liste_titre_filter">';
398 print
'<td class="liste_titre center maxwidthsearch">';
399 $searchpicto = $form->showFilterButtons(
'left');
406 print
'<td class="liste_titre">';
411 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
412 print
'<td class="liste_titre left">';
413 print
'<input class="flat" type="text" size="4" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
418 if (!empty($arrayfields[
'p.datep'][
'checked'])) {
419 print
'<td class="liste_titre center">';
420 print
'<div class="nowrapfordate">';
421 print $form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
423 print
'<div class="nowrapfordate">';
424 print $form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
430 if (!empty($arrayfields[
's.nom'][
'checked'])) {
431 print
'<td class="liste_titre">';
432 print
'<input class="flat" type="text" size="6" name="search_company" value="'.dol_escape_htmltag($search_company).
'">';
437 if (!empty($arrayfields[
'c.libelle'][
'checked'])) {
438 print
'<td class="liste_titre">';
439 $form->select_types_paiements($search_payment_type,
'search_payment_type',
'', 2, 1, 1);
444 if (!empty($arrayfields[
'p.num_paiement'][
'checked'])) {
445 print
'<td class="liste_titre">';
446 print
'<input class="flat" type="text" size="4" name="search_cheque_num" value="'.dol_escape_htmltag($search_cheque_num).
'">';
451 if (!empty($arrayfields[
'ba.label'][
'checked'])) {
452 print
'<td class="liste_titre">';
453 $form->select_comptes($search_bank_account,
'search_bank_account', 0,
'', 1);
458 if (!empty($arrayfields[
'p.amount'][
'checked'])) {
459 print
'<td class="liste_titre right">';
460 print
'<input class="flat" type="text" size="4" name="search_amount" value="'.dol_escape_htmltag($search_amount).
'">';
465 $parameters = array(
'arrayfields' => $arrayfields);
466 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters,
$object, $action);
467 print $hookmanager->resPrint;
471 print
'<td class="liste_titre center maxwidthsearch">';
472 $searchpicto = $form->showFilterButtons();
479 $totalarray = array();
480 $totalarray[
'nbfield'] = 0;
484 print
'<tr class="liste_titre">';
487 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
488 $totalarray[
'nbfield']++;
492 $totalarray[
'nbfield']++;
494 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
495 print_liste_field_titre($arrayfields[
'p.ref'][
'label'], $_SERVER[
"PHP_SELF"],
'p.rowid',
'', $param,
'', $sortfield, $sortorder);
496 $totalarray[
'nbfield']++;
498 if (!empty($arrayfields[
'p.datep'][
'checked'])) {
499 print_liste_field_titre($arrayfields[
'p.datep'][
'label'], $_SERVER[
"PHP_SELF"],
'p.datep',
'', $param,
'', $sortfield, $sortorder,
'center ');
500 $totalarray[
'nbfield']++;
502 if (!empty($arrayfields[
's.nom'][
'checked'])) {
503 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
's.nom',
'', $param,
'', $sortfield, $sortorder);
504 $totalarray[
'nbfield']++;
506 if (!empty($arrayfields[
'c.libelle'][
'checked'])) {
507 print_liste_field_titre($arrayfields[
'c.libelle'][
'label'], $_SERVER[
"PHP_SELF"],
'c.libelle',
'', $param,
'', $sortfield, $sortorder);
508 $totalarray[
'nbfield']++;
510 if (!empty($arrayfields[
'p.num_paiement'][
'checked'])) {
511 print_liste_field_titre($arrayfields[
'p.num_paiement'][
'label'], $_SERVER[
"PHP_SELF"],
"p.num_paiement",
'', $param,
'', $sortfield, $sortorder,
'', $arrayfields[
'p.num_paiement'][
'tooltip']);
512 $totalarray[
'nbfield']++;
514 if (!empty($arrayfields[
'ba.label'][
'checked'])) {
515 print_liste_field_titre($arrayfields[
'ba.label'][
'label'], $_SERVER[
"PHP_SELF"],
'ba.label',
'', $param,
'', $sortfield, $sortorder);
516 $totalarray[
'nbfield']++;
518 if (!empty($arrayfields[
'p.amount'][
'checked'])) {
519 print_liste_field_titre($arrayfields[
'p.amount'][
'label'], $_SERVER[
"PHP_SELF"],
'p.amount',
'', $param,
'', $sortfield, $sortorder,
'right ');
520 $totalarray[
'nbfield']++;
524 $parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
525 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
526 print $hookmanager->resPrint;
530 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
531 $totalarray[
'nbfield']++;
538 $needToFetchEachLine = 0;
539 if (isset($extrafields->attributes[
$object->table_element][
'computed']) && is_array($extrafields->attributes[
$object->table_element][
'computed']) && count($extrafields->attributes[
$object->table_element][
'computed']) > 0) {
540 foreach ($extrafields->attributes[
$object->table_element][
'computed'] as $key => $val) {
541 if (!is_null($val) && preg_match(
'/\$object/', $val)) {
542 $needToFetchEachLine++;
551 $savnbfield = $totalarray[
'nbfield'];
552 $totalarray = array();
553 $totalarray[
'nbfield'] = 0;
554 $imaxinloop = ($limit ? min($num, $limit) : $num);
555 while ($i < $imaxinloop) {
556 $objp = $db->fetch_object($resql);
561 $paymentfournstatic->id = $objp->rowid;
562 $paymentfournstatic->ref = $objp->ref;
563 $paymentfournstatic->datepaye = $db->jdate($objp->datep);
564 $paymentfournstatic->amount = $objp->amount;
566 $companystatic->id = $objp->socid;
567 $companystatic->name = $objp->name;
568 $companystatic->email = $objp->email;
570 if ($mode ==
'kanban') {
572 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
573 print
'<div class="box-flex-container kanban">';
577 if ($massactionbutton || $massaction) {
579 if (in_array(
$object->id, $arrayofselected)) {
584 print
$object->getKanbanView(
'', array(
'selected' => $selected));
585 if ($i == ($imaxinloop - 1)) {
592 print
'<tr data-rowid="'.$object->id.
'" class="oddeven">';
596 print
'<td class="nowrap center">';
597 if ($massactionbutton || $massaction) {
599 if (in_array(
$object->id, $arrayofselected)) {
602 print
'<input id="cb'.$object->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.
$object->id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
606 $totalarray[
'nbfield']++;
612 print
'<td class="nowraponall">'.(($offset * $limit) + $i).
'</td>';
614 $totalarray[
'nbfield']++;
619 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
620 print
'<td class="nowraponall">'.$paymentfournstatic->getNomUrl(1).
'</td>';
622 $totalarray[
'nbfield']++;
627 if (!empty($arrayfields[
'p.datep'][
'checked'])) {
628 $dateformatforpayment =
'dayhour';
629 print
'<td class="nowraponall center">'.dol_print_date($db->jdate($objp->datep), $dateformatforpayment).
'</td>';
631 $totalarray[
'nbfield']++;
636 if (!empty($arrayfields[
's.nom'][
'checked'])) {
637 print
'<td class="tdoverflowmax125">';
638 if ($objp->socid > 0) {
639 print $companystatic->getNomUrl(1,
'', 24);
643 $totalarray[
'nbfield']++;
648 if (!empty($arrayfields[
'c.libelle'][
'checked'])) {
649 $payment_type = $langs->trans(
"PaymentType".$objp->paiement_type) !=
"PaymentType".$objp->paiement_type ? $langs->trans(
"PaymentType".$objp->paiement_type) : $objp->paiement_libelle;
650 print
'<td>'.$payment_type.
' '.
dol_trunc($objp->num_payment, 32).
'</td>';
652 $totalarray[
'nbfield']++;
657 if (!empty($arrayfields[
'p.num_paiement'][
'checked'])) {
658 print
'<td>'.$objp->num_payment.
'</td>';
660 $totalarray[
'nbfield']++;
665 if (!empty($arrayfields[
'ba.label'][
'checked'])) {
666 print
'<td class="tdoverflowmax125">';
668 $accountstatic->id = $objp->bid;
669 $accountstatic->ref = $objp->bref;
670 $accountstatic->label = $objp->blabel;
671 $accountstatic->number = $objp->number;
672 $accountstatic->iban = $objp->iban_prefix;
673 $accountstatic->bic = $objp->bic;
674 $accountstatic->currency_code = $objp->currency_code;
675 $accountstatic->account_number = $objp->account_number;
678 $accountingjournal->fetch($objp->accountancy_journal);
679 $accountstatic->accountancy_journal = $accountingjournal->code;
681 print $accountstatic->getNomUrl(1);
685 $totalarray[
'nbfield']++;
690 if (!empty($arrayfields[
'p.amount'][
'checked'])) {
691 print
'<td class="right">';
692 if ($objp->nbinvoices > 1 || ($objp->totalamount && $objp->amount != $objp->totalamount)) {
693 print $form->textwithpicto(
'', $langs->trans(
"PaymentMadeForSeveralInvoices"));
695 print
'<span class="amount">'.price($objp->amount).
'</span>';
698 $totalarray[
'nbfield']++;
699 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'amount';
701 if (empty($totalarray[
'val'][
'amount'])) {
702 $totalarray[
'val'][
'amount'] = $objp->amount;
704 $totalarray[
'val'][
'amount'] += $objp->amount;
709 print
'<td class="nowrap center">';
710 if ($massactionbutton || $massaction) {
712 if (in_array(
$object->id, $arrayofselected)) {
715 print
'<input id="cb'.$object->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.
$object->id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
719 $totalarray[
'nbfield']++;
729 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
734 foreach ($arrayfields as $key => $val) {
735 if (!empty($val[
'checked'])) {
739 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
744 $parameters = array(
'arrayfields' => $arrayfields,
'sql' =>
$sql);
745 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters,
$object, $action);
746 print $hookmanager->resPrint;
748 print
'</table>'.
"\n";
751 print
'</form>'.
"\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 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.
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.
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.
getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $disablesortlink=0, $tooltip='', $forcenowrapcolumntitle=0)
Get 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.
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 dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.