36require
'../../main.inc.php';
37require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
38require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
41require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
52$langs->loadLangs(array(
'bills',
'banks',
'compta',
'companies'));
54$action =
GETPOST(
'action',
'alpha');
55$massaction =
GETPOST(
'massaction',
'alpha');
56$confirm =
GETPOST(
'confirm',
'alpha');
57$optioncss =
GETPOST(
'optioncss',
'alpha');
58$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'paymentlist';
59$mode =
GETPOST(
'mode',
'alpha');
61$facid =
GETPOST(
'facid',
'int');
62$socid =
GETPOST(
'socid',
'int');
63$userid =
GETPOST(
'userid',
'int');
65$search_ref =
GETPOST(
"search_ref",
"alpha");
66$search_date_startday =
GETPOSTINT(
'search_date_startday');
67$search_date_startmonth =
GETPOSTINT(
'search_date_startmonth');
68$search_date_startyear =
GETPOSTINT(
'search_date_startyear');
69$search_date_endday =
GETPOSTINT(
'search_date_endday');
70$search_date_endmonth =
GETPOSTINT(
'search_date_endmonth');
71$search_date_endyear =
GETPOSTINT(
'search_date_endyear');
72$search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
73$search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
74$search_company =
GETPOST(
"search_company",
'alpha');
75$search_paymenttype =
GETPOST(
"search_paymenttype");
76$search_account =
GETPOST(
"search_account",
'alpha');
77$search_payment_num =
GETPOST(
'search_payment_num',
'alpha');
78$search_amount =
GETPOST(
"search_amount",
'alpha');
79$search_noteprivate =
GETPOST(
"search_noteprivate");
80$search_status =
GETPOST(
'search_status',
'intcomma');
85$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
86$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
89if (empty($page) || $page == -1) {
92$offset = $limit * $page;
100 $sortfield =
"p.ref";
103$search_all = trim(
GETPOST(
'search_all',
'alphanohtml'));
106$fieldstosearchall = array(
107 'p.ref' =>
"RefPayment",
108 's.nom' =>
"ThirdParty",
109 'p.num_paiement' =>
"Numero",
110 'p.amount' =>
"Amount",
114 'p.ref' => array(
'label' =>
"RefPayment",
'checked' => 1,
'position' => 10),
115 'p.datep' => array(
'label' =>
"Date",
'checked' => 1,
'position' => 20),
116 's.nom' => array(
'label' =>
"ThirdParty",
'checked' => 1,
'position' => 30),
117 'c.libelle' => array(
'label' =>
"Type",
'checked' => 1,
'position' => 40),
118 'transaction' => array(
'label' =>
"BankTransactionLine",
'checked' => 1,
'position' => 50,
'enabled' => (isModEnabled(
"bank"))),
119 'ba.label' => array(
'label' =>
"BankAccount",
'checked' => 1,
'position' => 60,
'enabled' => (isModEnabled(
"bank"))),
120 'p.num_paiement' => array(
'label' =>
"Numero",
'checked' => 1,
'position' => 70,
'tooltip' =>
"ChequeOrTransferNumber"),
121 'p.amount' => array(
'label' =>
"Amount",
'checked' => 1,
'position' => 80),
122 'p.note' => array(
'label' =>
"Comment",
'checked' => -1,
'position' => 85),
123 'p.ext_payment_id' => array(
'label' =>
"ExtPaymentID",
'checked' => -1,
'position' => 87),
124 'p.ext_payment_site' => array(
'label' =>
"ExtPaymentSite",
'checked' => -1,
'position' => 88),
125 'p.statut' => array(
'label' =>
"Status",
'checked' => 1,
'position' => 90,
'enabled' => (
getDolGlobalString(
'BILL_ADD_PAYMENT_VALIDATION'))),
128'@phan-var-force array<string,array{label:string,checked?:int<0,1>,position?:int,help?:string}> $arrayfields';
131$hookmanager->initHooks(array(
'paymentlist'));
134if (!$user->hasRight(
'societe',
'client',
'voir')) {
135 $search_sale = $user->id;
140 $socid = $user->socid;
149$parameters = array(
'socid' => $socid);
150$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
156if (empty($reshook)) {
157 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
160 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
162 $search_date_startday =
'';
163 $search_date_startmonth =
'';
164 $search_date_startyear =
'';
165 $search_date_endday =
'';
166 $search_date_endmonth =
'';
167 $search_date_endyear =
'';
168 $search_date_start =
'';
169 $search_date_end =
'';
170 $search_account =
'';
172 $search_paymenttype =
'';
173 $search_payment_num =
'';
174 $search_company =
'';
175 $search_noteprivate =
'';
179 $search_array_options = array();
188$form =
new Form($db);
190$accountstatic =
new Account($db);
191$companystatic =
new Societe($db);
194$title = $langs->trans(
'ListPayment');
196llxHeader(
'', $title,
'',
'', 0, 0,
'',
'',
'',
'bodyforlist');
198if (
GETPOST(
"orphelins",
"alpha")) {
200 $sql =
"SELECT p.rowid, p.ref, p.datep, p.fk_bank, p.statut, p.num_paiement as num_payment, p.amount, p.note as private_note";
201 $sql .=
", c.code as paiement_code";
206 $parameters = array();
207 $reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters);
208 $sql .= $hookmanager->resPrint;
209 $sql .=
" FROM ".MAIN_DB_PREFIX.
"paiement as p LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as c ON p.fk_paiement = c.id";
210 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"paiement_facture as pf ON p.rowid = pf.fk_paiement";
211 $sql .=
" WHERE p.entity IN (".getEntity(
'invoice').
")";
212 $sql .=
" AND pf.fk_facture IS NULL";
215 $parameters = array();
216 $reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters);
217 $sql .= $hookmanager->resPrint;
219 $sql =
"SELECT p.rowid, p.ref, p.datep, p.fk_bank, p.statut, p.num_paiement as num_payment, p.amount, p.note as note_private, p.ext_payment_id, p.ext_payment_site";
220 $sql .=
", c.code as paiement_code";
221 $sql .=
", ba.rowid as bid, ba.ref as bref, ba.label as blabel, ba.number, ba.account_number as account_number, ba.fk_accountancy_journal as accountancy_journal";
222 $sql .=
", s.rowid as socid, s.nom as name, s.email";
225 $sql .=
", SUM(pf.amount) as totalamount, COUNT(f.rowid) as nbinvoices";
228 $parameters = array();
229 $reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters);
230 $sql .= $hookmanager->resPrint;
234 $sql .=
" FROM ".MAIN_DB_PREFIX.
"paiement as p";
235 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as c ON p.fk_paiement = c.id";
236 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank as b ON p.fk_bank = b.rowid";
237 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank_account as ba ON b.fk_account = ba.rowid";
239 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"paiement_facture as pf ON p.rowid = pf.fk_paiement";
240 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"facture as f ON pf.fk_facture = f.rowid";
241 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"societe as s ON f.fk_soc = s.rowid";
243 $sql .=
" WHERE p.entity IN (".getEntity(
'invoice').
")";
245 $sql .=
" AND EXISTS (SELECT f.fk_soc FROM ".MAIN_DB_PREFIX.
"facture as f, ".MAIN_DB_PREFIX.
"paiement_facture as pf";
246 $sql .=
" WHERE p.rowid = pf.fk_paiement AND pf.fk_facture = f.rowid AND f.fk_soc = ".((int) $socid).
")";
250 $sql .=
" AND p.fk_user_creat IS NULL";
252 $sql .=
" AND p.fk_user_creat = ".((int) $userid);
260 if ($search_date_start) {
261 $sql .=
" AND p.datep >= '" . $db->idate($search_date_start) .
"'";
263 if ($search_date_end) {
264 $sql .=
" AND p.datep <= '" . $db->idate($search_date_end) .
"'";
266 if ($search_account > 0) {
267 $sql .=
" AND b.fk_account=".((int) $search_account);
269 if ($search_paymenttype !=
'') {
270 $sql .=
" AND c.code='".$db->escape($search_paymenttype).
"'";
272 if ($search_payment_num !=
'') {
275 if ($search_amount) {
276 $sql .=
" AND (".natural_search(
'p.amount', $search_amount, 1, 1);
281 if ($search_company) {
284 if ($search_noteprivate) {
288 if ($search_sale && $search_sale != -1) {
289 if ($search_sale == -2) {
290 $sql .=
" AND NOT EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = f.fk_soc)";
291 } elseif ($search_sale > 0) {
292 $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).
")";
297 $sql .=
natural_search(array_keys($fieldstosearchall), $search_all);
301 $parameters = array();
302 $reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters);
303 $sql .= $hookmanager->resPrint;
305 $sql .=
" GROUP BY p.rowid, p.ref, p.datep, p.fk_bank, p.statut, p.num_paiement, p.amount, p.note, p.ext_payment_id, p.ext_payment_site";
307 $sql .=
", ba.rowid, ba.ref, ba.label, ba.number, ba.account_number, ba.fk_accountancy_journal";
308 $sql .=
", s.rowid, s.nom, s.email";
312$nbtotalofrecords =
'';
315 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(DISTINCT p.rowid) as nbtotalofrecords', $sql);
316 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
317 $resql = $db->query($sqlforcount);
319 $objforcount = $db->fetch_object($resql);
320 $nbtotalofrecords = $objforcount->nbtotalofrecords;
325 if (($page * $limit) > $nbtotalofrecords) {
333$sql .= $db->order($sortfield, $sortorder);
335 $sql .= $db->plimit($limit + 1, $offset);
339$resql = $db->query($sql);
347$num = $db->num_rows($resql);
350if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
351 $param .=
'&contextpage='.urlencode($contextpage);
353if ($limit > 0 && $limit !=
$conf->liste_limit) {
354 $param .=
'&limit='.((int) $limit);
356if ($optioncss !=
'') {
357 $param .=
'&optioncss='.urlencode($optioncss);
361 $param .=
'&orphelins=1';
364 $param .=
'&search_ref='.urlencode($search_ref);
366if ($search_date_startday) {
367 $param .=
'&search_date_startday='.urlencode((
string) ($search_date_startday));
369if ($search_date_startmonth) {
370 $param .=
'&search_date_startmonth='.urlencode((
string) ($search_date_startmonth));
372if ($search_date_startyear) {
373 $param .=
'&search_date_startyear='.urlencode((
string) ($search_date_startyear));
375if ($search_date_endday) {
376 $param .=
'&search_date_endday='.urlencode((
string) ($search_date_endday));
378if ($search_date_endmonth) {
379 $param .=
'&search_date_endmonth='.urlencode((
string) ($search_date_endmonth));
381if ($search_date_endyear) {
382 $param .=
'&search_date_endyear='.urlencode((
string) ($search_date_endyear));
384if ($search_company) {
385 $param .=
'&search_company='.urlencode($search_company);
387if ($search_amount !=
'') {
388 $param .=
'&search_amount='.urlencode($search_amount);
390if ($search_paymenttype) {
391 $param .=
'&search_paymenttype='.urlencode($search_paymenttype);
393if ($search_account) {
394 $param .=
'&search_account='.urlencode((
string) ($search_account));
396if ($search_payment_num) {
397 $param .=
'&search_payment_num='.urlencode($search_payment_num);
399if ($search_noteprivate) {
400 $param .=
'&search_noteprivate='.urlencode($search_noteprivate);
403print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
404if ($optioncss !=
'') {
405 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
407print
'<input type="hidden" name="token" value="'.newToken().
'">';
408print
'<input type="hidden" name="action" value="list">';
409print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
410print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
411print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
412print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
415print_barre_liste($langs->trans(
"ReceivedCustomersPayments"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'bill', 0,
'',
'', $limit, 0, 0, 1);
418 foreach ($fieldstosearchall as $key => $val) {
419 $fieldstosearchall[$key] = $langs->trans($val);
421 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $search_all).implode(
', ', $fieldstosearchall).
'</div>';
424$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
425$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
426$massactionbutton =
'';
427if ($massactionbutton) {
428 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
432print
'<div class="div-table-responsive">';
433print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
'').
'">';
437print
'<tr class="liste_titre_filter">';
441 print
'<td class="liste_titre center maxwidthsearch">';
442 $searchpicto = $form->showFilterButtons(
'left');
449 print
'<td class="liste_titre">';
454if (!empty($arrayfields[
'p.ref'][
'checked'])) {
455 print
'<td class="liste_titre left">';
456 print
'<input class="flat" type="text" size="4" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
461if (!empty($arrayfields[
'p.datep'][
'checked'])) {
462 print
'<td class="liste_titre center">';
463 print
'<div class="nowrapfordate">';
464 print $form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
466 print
'<div class="nowrapfordate">';
467 print $form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
473if (!empty($arrayfields[
's.nom'][
'checked'])) {
474 print
'<td class="liste_titre">';
475 print
'<input class="flat" type="text" size="6" name="search_company" value="'.dol_escape_htmltag($search_company).
'">';
480if (!empty($arrayfields[
'c.libelle'][
'checked'])) {
481 print
'<td class="liste_titre">';
482 print $form->select_types_paiements($search_paymenttype,
'search_paymenttype',
'', 2, 1, 1, 0, 1,
'maxwidth100', 1);
487if (!empty($arrayfields[
'transaction'][
'checked'])) {
488 print
'<td class="liste_titre">';
489 print
'<input class="flat" type="text" size="4" name="search_payment_num" value="'.dol_escape_htmltag($search_payment_num).
'">';
494if (!empty($arrayfields[
'p.num_paiement'][
'checked'])) {
495 print
'<td class="liste_titre">';
500if (!empty($arrayfields[
'ba.label'][
'checked'])) {
501 print
'<td class="liste_titre">';
502 $form->select_comptes($search_account,
'search_account', 0,
'', 1,
'', 0,
'maxwidth125');
507if (!empty($arrayfields[
'p.amount'][
'checked'])) {
508 print
'<td class="liste_titre right">';
509 print
'<input class="flat" type="text" size="4" name="search_amount" value="'.dol_escape_htmltag($search_amount).
'">';
514if (!empty($arrayfields[
'p.note'][
'checked'])) {
515 print
'<td class="liste_titre">';
516 print
'<input class="flat maxwidth150" type="text" name="search_noteprivate" value="'.dol_escape_htmltag($search_noteprivate).
'">';
521if (!empty($arrayfields[
'p.ext_payment_id'][
'checked'])) {
522 print
'<td class="liste_titre">';
528if (!empty($arrayfields[
'p.ext_payment_site'][
'checked'])) {
529 print
'<td class="liste_titre">';
535if (!empty($arrayfields[
'p.statut'][
'checked'])) {
536 print
'<td class="liste_titre right">';
541$parameters = array(
'arrayfields' => $arrayfields);
542$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object, $action);
543print $hookmanager->resPrint;
547 print
'<td class="liste_titre center maxwidthsearch">';
548 $searchpicto = $form->showFilterButtons();
555$totalarray = array();
556$totalarray[
'nbfield'] = 0;
560print
'<tr class="liste_titre">';
563 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'align="center"', $sortfield, $sortorder,
'maxwidthsearch ');
564 $totalarray[
'nbfield']++;
568 $totalarray[
'nbfield']++;
570if (!empty($arrayfields[
'p.ref'][
'checked'])) {
572 print_liste_field_titre($arrayfields[
'p.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ref",
'', $param,
'', $sortfield, $sortorder);
573 $totalarray[
'nbfield']++;
575if (!empty($arrayfields[
'p.datep'][
'checked'])) {
576 print_liste_field_titre($arrayfields[
'p.datep'][
'label'], $_SERVER[
"PHP_SELF"],
"p.datep",
'', $param,
'', $sortfield, $sortorder,
'center ');
577 $totalarray[
'nbfield']++;
579if (!empty($arrayfields[
's.nom'][
'checked'])) {
580 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"s.nom",
'', $param,
'', $sortfield, $sortorder);
581 $totalarray[
'nbfield']++;
583if (!empty($arrayfields[
'c.libelle'][
'checked'])) {
584 print_liste_field_titre($arrayfields[
'c.libelle'][
'label'], $_SERVER[
"PHP_SELF"],
"c.libelle",
'', $param,
'', $sortfield, $sortorder);
585 $totalarray[
'nbfield']++;
587if (!empty($arrayfields[
'p.num_paiement'][
'checked'])) {
588 print_liste_field_titre($arrayfields[
'p.num_paiement'][
'label'], $_SERVER[
"PHP_SELF"],
"p.num_paiement",
'', $param,
'', $sortfield, $sortorder,
'', $arrayfields[
'p.num_paiement'][
'tooltip']);
589 $totalarray[
'nbfield']++;
591if (!empty($arrayfields[
'transaction'][
'checked'])) {
592 print_liste_field_titre($arrayfields[
'transaction'][
'label'], $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder);
593 $totalarray[
'nbfield']++;
595if (!empty($arrayfields[
'ba.label'][
'checked'])) {
596 print_liste_field_titre($arrayfields[
'ba.label'][
'label'], $_SERVER[
"PHP_SELF"],
"ba.label",
'', $param,
'', $sortfield, $sortorder);
597 $totalarray[
'nbfield']++;
599if (!empty($arrayfields[
'p.amount'][
'checked'])) {
600 print_liste_field_titre($arrayfields[
'p.amount'][
'label'], $_SERVER[
"PHP_SELF"],
"p.amount",
'', $param,
'class="right"', $sortfield, $sortorder);
601 $totalarray[
'nbfield']++;
603if (!empty($arrayfields[
'p.note'][
'checked'])) {
604 print_liste_field_titre($arrayfields[
'p.note'][
'label'], $_SERVER[
"PHP_SELF"],
"p.note",
'', $param,
'', $sortfield, $sortorder);
605 $totalarray[
'nbfield']++;
607if (!empty($arrayfields[
'p.ext_payment_id'][
'checked'])) {
608 print_liste_field_titre($arrayfields[
'p.ext_payment_id'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ext_payment_id",
'', $param,
'', $sortfield, $sortorder);
609 $totalarray[
'nbfield']++;
611if (!empty($arrayfields[
'p.ext_payment_site'][
'checked'])) {
612 print_liste_field_titre($arrayfields[
'p.ext_payment_site'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ext_payment_site",
'', $param,
'', $sortfield, $sortorder);
613 $totalarray[
'nbfield']++;
615if (!empty($arrayfields[
'p.statut'][
'checked'])) {
616 print_liste_field_titre($arrayfields[
'p.statut'][
'label'], $_SERVER[
"PHP_SELF"],
"p.statut",
'', $param,
'class="right"', $sortfield, $sortorder);
617 $totalarray[
'nbfield']++;
620include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
622$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
623$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
624print $hookmanager->resPrint;
627 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'align="center"', $sortfield, $sortorder,
'maxwidthsearch ');
628 $totalarray[
'nbfield']++;
634$needToFetchEachLine = 0;
635if (isset($extrafields->attributes[
$object->table_element][
'computed']) && is_array($extrafields->attributes[
$object->table_element][
'computed']) && count($extrafields->attributes[
$object->table_element][
'computed']) > 0) {
636 foreach ($extrafields->attributes[
$object->table_element][
'computed'] as $key => $val) {
637 if (!is_null($val) && preg_match(
'/\$object/', $val)) {
638 $needToFetchEachLine++;
647$savnbfield = $totalarray[
'nbfield'];
648$totalarray = array();
649$totalarray[
'nbfield'] = 0;
650$imaxinloop = ($limit ? min($num, $limit) : $num);
651while ($i < $imaxinloop) {
652 $objp = $db->fetch_object($resql);
658 $object->ref = ($objp->ref ? $objp->ref : $objp->rowid);
659 $object->date = $db->jdate($objp->datep);
660 $object->amount = $objp->amount;
661 $object->note_private = $objp->note_private;
663 $companystatic->id = $objp->socid;
664 $companystatic->name = $objp->name;
665 $companystatic->email = $objp->email;
667 if ($mode ==
'kanban') {
669 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
670 print
'<div class="box-flex-container kanban">';
674 if ($massactionbutton || $massaction) {
676 if (in_array(
$object->id, $arrayofselected)) {
681 print
$object->getKanbanView(
'', array(
'selected' => $selected));
682 if ($i == ($imaxinloop - 1)) {
689 print
'<tr data-rowid="'.$object->id.
'" class="oddeven">';
693 print
'<td class="nowrap center">';
694 if ($massactionbutton || $massaction) {
696 if (in_array(
$object->id, $arrayofselected)) {
699 print
'<input id="cb'.$object->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.
$object->id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
703 $totalarray[
'nbfield']++;
709 print
'<td class="nowraponall">'.(($offset * $limit) + $i).
'</td>';
711 $totalarray[
'nbfield']++;
716 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
717 print
'<td class="nowraponall">'.$object->getNomUrl(1).
'</td>';
719 $totalarray[
'nbfield']++;
724 if (!empty($arrayfields[
'p.datep'][
'checked'])) {
725 $dateformatforpayment =
'dayhour';
726 print
'<td class="nowraponall center">'.dol_print_date($db->jdate($objp->datep), $dateformatforpayment,
'tzuser').
'</td>';
728 $totalarray[
'nbfield']++;
733 if (!empty($arrayfields[
's.nom'][
'checked'])) {
734 print
'<td class="tdoverflowmax125">';
735 if ($objp->socid > 0) {
736 print $companystatic->getNomUrl(1,
'', 24);
740 $totalarray[
'nbfield']++;
745 if (!empty($arrayfields[
'c.libelle'][
'checked'])) {
746 print
'<td class="tdoverflowmax100" title="'.dolPrintHTMLForAttribute($langs->trans(
"PaymentTypeShort".$objp->paiement_code)).
'">'.
dolPrintHTML($langs->trans(
"PaymentTypeShort".$objp->paiement_code)).
'</td>';
748 $totalarray[
'nbfield']++;
753 if (!empty($arrayfields[
'p.num_paiement'][
'checked'])) {
754 print
'<td>'.$objp->num_payment.
'</td>';
756 $totalarray[
'nbfield']++;
761 if (!empty($arrayfields[
'transaction'][
'checked'])) {
762 print
'<td class="tdoverflowmax125">';
763 if ($objp->fk_bank > 0) {
764 $bankline->fetch($objp->fk_bank);
765 print $bankline->getNomUrl(1, 0);
769 $totalarray[
'nbfield']++;
774 if (!empty($arrayfields[
'ba.label'][
'checked'])) {
776 if ($objp->bid > 0) {
777 $accountstatic->id = $objp->bid;
778 $accountstatic->ref = $objp->bref;
779 $accountstatic->label = $objp->blabel;
780 $accountstatic->number = $objp->number;
781 $accountstatic->account_number = $objp->account_number;
784 $accountingjournal->fetch($objp->accountancy_journal);
785 $accountstatic->accountancy_journal = $accountingjournal->code;
787 print $accountstatic->getNomUrl(1);
791 $totalarray[
'nbfield']++;
796 if (!empty($arrayfields[
'p.amount'][
'checked'])) {
797 print
'<td class="right">';
798 if ($objp->nbinvoices > 1 || ($objp->totalamount && $objp->amount != $objp->totalamount)) {
799 print $form->textwithpicto(
'', $langs->trans(
"PaymentMadeForSeveralInvoices"));
801 print
'<span class="amount">'.price($objp->amount).
'</span>';
804 $totalarray[
'nbfield']++;
805 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'amount';
807 if (empty($totalarray[
'val'][
'amount'])) {
808 $totalarray[
'val'][
'amount'] = $objp->amount;
810 $totalarray[
'val'][
'amount'] += $objp->amount;
815 if (!empty($arrayfields[
'p.note'][
'checked'])) {
817 print
'<td class="tdoverflowmax200" title="'.dolPrintHTMLForAttribute($firstline).
'">';
821 $totalarray[
'nbfield']++;
826 if (!empty($arrayfields[
'p.ext_payment_id'][
'checked'])) {
827 print
'<td class="tdoverflowmax200" title="'.dolPrintHTMLForAttribute($objp->ext_payment_id).
'">';
831 $totalarray[
'nbfield']++;
836 if (!empty($arrayfields[
'p.ext_payment_site'][
'checked'])) {
837 print
'<td class="tdoverflowmax200" title="'.dolPrintHTMLForAttribute($objp->ext_payment_site).
'">';
841 $totalarray[
'nbfield']++;
846 if (!empty($arrayfields[
'p.statut'][
'checked'])) {
847 print
'<td class="right">';
848 if ($objp->statut == 0) {
849 print
'<a href="card.php?id='.$objp->rowid.
'&action=valide">';
851 print
$object->LibStatut($objp->statut, 5);
852 if ($objp->statut == 0) {
857 $totalarray[
'nbfield']++;
863 print
'<td class="nowrap center">';
864 if ($massactionbutton || $massaction) {
866 if (in_array(
$object->id, $arrayofselected)) {
869 print
'<input id="cb'.$object->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.
$object->id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
873 $totalarray[
'nbfield']++;
884include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
889 foreach ($arrayfields as $key => $val) {
890 if (!empty($val[
'checked'])) {
894 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
899$parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
900$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
901print $hookmanager->resPrint;
903print
'</table>'.
"\n";
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $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 payments of customer invoices.
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...
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $selectlimitsuffix=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dolGetFirstLineOfText($text, $nboflines=1, $charset='UTF-8')
Return first line of text.
dolPrintHTML($s, $allowiframe=0)
Return a string (that can be on several lines) ready to be output on a HTML page.
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.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
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.