29require
'../../../main.inc.php';
30require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/paymentvarious.class.php';
31require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
32require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
34require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingaccount.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
36if (isModEnabled(
'project')) {
37 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
49$langs->loadLangs(array(
"compta",
"banks",
"bills",
"accountancy"));
51$optioncss =
GETPOST(
'optioncss',
'alpha');
52$mode =
GETPOST(
'mode',
'alpha');
53$massaction =
GETPOST(
'massaction',
'aZ09');
54$toselect =
GETPOST(
'toselect',
'array');
55$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'directdebitcredittransferlist';
58$search_ref =
GETPOST(
'search_ref',
'alpha');
59$search_user =
GETPOST(
'search_user',
'alpha');
60$search_label =
GETPOST(
'search_label',
'alpha');
65$search_amount_deb =
GETPOST(
'search_amount_deb',
'alpha');
66$search_amount_cred =
GETPOST(
'search_amount_cred',
'alpha');
67$search_bank_account =
GETPOST(
'search_account',
"intcomma");
68$search_bank_entry =
GETPOST(
'search_bank_entry',
'alpha');
69$search_accountancy_account =
GETPOST(
"search_accountancy_account");
70if ($search_accountancy_account == - 1) {
71 $search_accountancy_account =
'';
73$search_accountancy_subledger =
GETPOST(
"search_accountancy_subledger");
74if ($search_accountancy_subledger == - 1) {
75 $search_accountancy_subledger =
'';
77if (empty($search_datep_start)) {
78 $search_datep_start =
GETPOSTINT(
"search_datep_start");
80if (empty($search_datep_end)) {
81 $search_datep_end =
GETPOSTINT(
"search_datep_end");
83if (empty($search_datev_start)) {
84 $search_datev_start =
GETPOSTINT(
"search_datev_start");
86if (empty($search_datev_end)) {
87 $search_datev_end =
GETPOSTINT(
"search_datev_end");
89$search_type_id =
GETPOST(
'search_type_id',
'int');
91$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
92$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
94if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
98$offset = $limit * $page;
100$pagenext = $page + 1;
106$hookmanager->initHooks(array($contextpage));
109$extrafields->fetch_name_optionals_label(
$object->table_element);
111$search_array_options = $extrafields->getOptionalsFromPost(
$object->table_element,
'',
'search_');
115 $sortfield =
"v.datep,v.rowid";
118 $sortorder =
"DESC,DESC";
121$filtre =
GETPOST(
"filtre",
'alpha');
123if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
126 $search_datep_start =
'';
127 $search_datep_end =
'';
128 $search_datev_start =
'';
129 $search_datev_end =
'';
130 $search_amount_deb =
'';
131 $search_amount_cred =
'';
132 $search_bank_account =
'';
133 $search_bank_entry =
'';
134 $search_accountancy_account =
'';
135 $search_accountancy_subledger =
'';
136 $search_type_id =
'';
139$search_all = trim(
GETPOST(
'search_all',
'alphanohtml'));
162$fieldstosearchall = array(
164 'v.label' =>
"Label",
165 'v.datep' =>
"DatePayment",
166 'v.datev' =>
"DateValue",
167 'v.amount' => $langs->trans(
"Debit").
", ".$langs->trans(
"Credit"),
172 'ref' => array(
'label' =>
"Ref",
'checked' => 1,
'position' => 100),
173 'label' => array(
'label' =>
"Label",
'checked' => 1,
'position' => 110),
174 'datep' => array(
'label' =>
"DatePayment",
'checked' => 1,
'position' => 120),
175 'datev' => array(
'label' =>
"DateValue",
'checked' => -1,
'position' => 130),
176 'type' => array(
'label' =>
"PaymentMode",
'checked' => 1,
'position' => 140),
177 'project' => array(
'label' =>
"Project",
'checked' => -1,
'position' => 200,
"enabled" => isModEnabled(
'project')),
178 'bank' => array(
'label' =>
"BankAccount",
'checked' => 1,
'position' => 300,
"enabled" => isModEnabled(
"bank")),
179 'entry' => array(
'label' =>
"BankTransactionLine",
'checked' => 1,
'position' => 310,
"enabled" => isModEnabled(
"bank")),
180 'account' => array(
'label' =>
"AccountAccountingShort",
'checked' => 1,
'position' => 400,
"enabled" => isModEnabled(
'accounting')),
181 'subledger' => array(
'label' =>
"SubledgerAccount",
'checked' => 1,
'position' => 410,
"enabled" => isModEnabled(
'accounting')),
182 'debit' => array(
'label' =>
"Debit",
'checked' => 1,
'position' => 500),
183 'credit' => array(
'label' =>
"Credit",
'checked' => 1,
'position' => 510),
187'@phan-var-force array<string,array{label:string,checked?:int<0,1>,position?:int,help?:string}> $arrayfields';
192 $socid = $user->socid;
202if (
GETPOST(
'cancel',
'alpha')) {
206if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend') {
210$parameters = array();
211$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
216if (empty($reshook)) {
218 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
221 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
222 foreach (
$object->fields as $key => $val) {
224 if (preg_match(
'/^(date|timestamp|datetime)/', $val[
'type'])) {
225 $search[$key.
'_dtstart'] =
'';
226 $search[$key.
'_dtend'] =
'';
230 $search_array_options = array();
232 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')
233 ||
GETPOST(
'button_search_x',
'alpha') ||
GETPOST(
'button_search.x',
'alpha') ||
GETPOST(
'button_search',
'alpha')) {
242$form =
new Form($db);
247$accountstatic =
null;
248$accountingjournal =
null;
249if ($arrayfields[
'account'][
'checked'] || $arrayfields[
'subledger'][
'checked']) {
252if ($arrayfields[
'bank'][
'checked'] && isModEnabled(
'accounting')) {
255if ($arrayfields[
'bank'][
'checked']) {
256 $accountstatic =
new Account($db);
258if (isModEnabled(
'project') && $arrayfields[
'project'][
'checked']) {
262$title = $langs->trans(
"VariousPayments");
269$sql =
"SELECT v.rowid, v.sens, v.amount, v.label, v.datep as datep, v.datev as datev, v.fk_typepayment as type, v.num_payment, v.fk_bank, v.accountancy_code, v.subledger_account, v.fk_projet as fk_project,";
270$sql .=
" ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number as bank_account_number, ba.fk_accountancy_journal as accountancy_journal, ba.label as blabel,";
271$sql .=
" pst.code as payment_code";
275$sql .=
" FROM ".MAIN_DB_PREFIX.
"payment_various as v";
276$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as pst ON v.fk_typepayment = pst.id";
277$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank as b ON v.fk_bank = b.rowid";
278$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank_account as ba ON b.fk_account = ba.rowid";
279$sql .=
" WHERE v.entity IN (".getEntity(
'payment_various').
")";
283 $sql .=
" AND v.rowid = ".((int) $search_ref);
288if ($search_datep_start) {
289 $sql .=
" AND v.datep >= '".$db->idate($search_datep_start).
"'";
291if ($search_datep_end) {
292 $sql .=
" AND v.datep <= '".$db->idate($search_datep_end).
"'";
294if ($search_datev_start) {
295 $sql .=
" AND v.datev >= '".$db->idate($search_datev_start).
"'";
297if ($search_datev_end) {
298 $sql .=
" AND v.datev <= '".$db->idate($search_datev_end).
"'";
300if ($search_amount_deb) {
303if ($search_amount_cred) {
306if ($search_bank_account > 0) {
307 $sql .=
" AND b.fk_account = ".((int) $search_bank_account);
309if ($search_bank_entry > 0) {
310 $sql .=
" AND b.fk_account = ".((int) $search_bank_account);
312if ($search_accountancy_account > 0) {
313 $sql .=
" AND v.accountancy_code = ".((int) $search_accountancy_account);
316 $sql .=
" AND v.subledger_account = '".$db->escape($search_accountancy_subledger).
"'";
318 if ($search_accountancy_subledger !=
'' && $search_accountancy_subledger !=
'-1') {
319 $sql .=
natural_search(
"v.subledger_account", $search_accountancy_subledger);
322if ($search_type_id > 0) {
323 $sql .=
" AND v.fk_typepayment=".((int) $search_type_id);
326 $sql .=
natural_search(array_keys($fieldstosearchall), $search_all);
331include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
333$parameters = array();
334$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object, $action);
335$sql .= $hookmanager->resPrint;
338$nbtotalofrecords =
'';
341 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
342 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
343 $resql = $db->query($sqlforcount);
345 $objforcount = $db->fetch_object($resql);
346 $nbtotalofrecords = $objforcount->nbtotalofrecords;
351 if (($page * $limit) > $nbtotalofrecords) {
359$sql .= $db->order($sortfield, $sortorder);
361 $sql .= $db->plimit($limit + 1, $offset);
364$resql = $db->query($sql);
370$num = $db->num_rows($resql);
373if ($num == 1 &&
getDolGlobalInt(
'MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE') && $search_all && !$page) {
374 $obj = $db->fetch_object($resql);
376 header(
"Location: ".DOL_URL_ROOT.
'/compta/bank/various_payment/card.php?id='.
$id);
383llxHeader(
'', $title, $help_url,
'', 0, 0,
'',
'',
'',
'bodyforlist');
385$arrayofselected = is_array($toselect) ? $toselect : array();
389 $param .=
'&mode='.urlencode($mode);
391if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
392 $param .=
'&contextpage='.urlencode($contextpage);
394if ($limit > 0 && $limit !=
$conf->liste_limit) {
395 $param .=
'&limit='.((int) $limit);
397if ($optioncss !=
'') {
398 $param .=
'&optioncss='.urlencode($optioncss);
401 $param .=
'&search_ref='.urlencode($search_ref);
404 $param .=
'&search_label='.urlencode($search_label);
406if ($search_datep_start) {
407 $param .=
'&search_datep_start='.urlencode($search_datep_start);
409if ($search_datep_end) {
410 $param .=
'&search_datep_end='.urlencode($search_datep_end);
412if ($search_datev_start) {
413 $param .=
'&search_datev_start='.urlencode($search_datev_start);
415if ($search_datev_end) {
416 $param .=
'&search_datev_end='.urlencode($search_datev_end);
418if ($search_type_id > 0) {
419 $param .=
'&search_type_id='.urlencode((
string) ($search_type_id));
421if ($search_amount_deb) {
422 $param .=
'&search_amount_deb='.urlencode($search_amount_deb);
424if ($search_amount_cred) {
425 $param .=
'&search_amount_cred='.urlencode($search_amount_cred);
427if ($search_bank_account > 0) {
428 $param .=
'&search_account='.urlencode((
string) ($search_bank_account));
430if ($search_accountancy_account > 0) {
431 $param .=
'&search_accountancy_account='.urlencode($search_accountancy_account);
433if ($search_accountancy_subledger > 0) {
434 $param .=
'&search_accountancy_subledger='.urlencode($search_accountancy_subledger);
437$url = DOL_URL_ROOT.
'/compta/bank/various_payment/card.php?action=create';
439 $url .=
'&socid='.urlencode((
string) ($socid));
443$arrayofmassactions = array();
444$massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
446print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">'.
"\n";
447if ($optioncss !=
'') {
448 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
450print
'<input type="hidden" name="token" value="'.newToken().
'">';
451print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
452print
'<input type="hidden" name="action" value="list">';
453print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
454print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
455print
'<input type="hidden" name="page" value="'.$page.
'">';
456print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
457print
'<input type="hidden" name="page_y" value="">';
458print
'<input type="hidden" name="mode" value="'.$mode.
'">';
461$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'));
462$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'));
464$newcardbutton .=
dolGetButtonTitle($langs->trans(
'MenuNewVariousPayment'),
'',
'fa fa-plus-circle', $url,
'', $user->hasRight(
'banque',
'modifier'));
466print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'object_payment', 0, $newcardbutton,
'', $limit, 0, 0, 1);
470 foreach ($fieldstosearchall as $key => $val) {
471 $fieldstosearchall[$key] = $langs->trans($val);
472 $setupstring .= $key.
"=".$val.
";";
474 print
'<!-- Search done like if VARIOUSPAYMENT_QUICKSEARCH_ON_FIELDS = '.$setupstring.
' -->'.
"\n";
475 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $search_all).implode(
', ', $fieldstosearchall).
'</div>';
478$arrayofmassactions = array();
482$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
483$htmlofselectarray = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
484$selectedfields = ($mode !=
'kanban' ? $htmlofselectarray :
'');
485$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons(
'checkforselect', 1) :
'');
488print
'<div class="div-table-responsive">';
489print
'<table class="tagtable nobottomiftotal noborder liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
493print
'<tr class="liste_titre liste_titre_filter">';
496 print
'<td class="liste_titre center maxwidthsearch">';
497 $searchpicto = $form->showFilterButtons(
'left');
503 print
'<td class="liste_titre">';
508if ($arrayfields[
'ref'][
'checked']) {
509 print
'<td class="liste_titre left">';
510 print
'<input class="flat" type="text" size="3" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
515if ($arrayfields[
'label'][
'checked']) {
516 print
'<td class="liste_titre">';
517 print
'<input type="text" class="flat" size="10" name="search_label" value="'.dol_escape_htmltag($search_label).
'">';
522if ($arrayfields[
'datep'][
'checked']) {
523 print
'<td class="liste_titre center">';
524 print
'<div class="nowrapfordate">';
525 print $form->selectDate($search_datep_start ? $search_datep_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
527 print
'<div class="nowrapfordate">';
528 print $form->selectDate($search_datep_end ? $search_datep_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
534if ($arrayfields[
'datev'][
'checked']) {
535 print
'<td class="liste_titre center">';
536 print
'<div class="nowrapfordate">';
537 print $form->selectDate($search_datev_start ? $search_datev_start : -1,
'search_date_value_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
539 print
'<div class="nowrapfordate">';
540 print $form->selectDate($search_datev_end ? $search_datev_end : -1,
'search_date_value_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
546if ($arrayfields[
'type'][
'checked']) {
547 print
'<td class="liste_titre center">';
548 print $form->select_types_paiements($search_type_id,
'search_type_id',
'', 0, 1, 1, 16, 1,
'maxwidth100', 1);
553if (isModEnabled(
'project') && $arrayfields[
'project'][
'checked']) {
554 print
'<td class="liste_titre">';
560if ($arrayfields[
'bank'][
'checked']) {
561 print
'<td class="liste_titre">';
562 $form->select_comptes($search_bank_account,
'search_account', 0,
'', 1,
'', 0,
'maxwidth100');
567if ($arrayfields[
'entry'][
'checked']) {
568 print
'<td class="liste_titre left">';
569 print
'<input name="search_bank_entry" class="flat maxwidth50" type="text" value="'.dol_escape_htmltag($search_bank_entry).
'">';
574if (!empty($arrayfields[
'account'][
'checked'])) {
576 print
'<td class="liste_titre">';
577 print
'<div class="nowrap">';
578 print $formaccounting->select_account($search_accountancy_account,
'search_accountancy_account', 1, array(), 1, 1,
'maxwidth200');
584if (!empty($arrayfields[
'subledger'][
'checked'])) {
586 print
'<td class="liste_titre">';
587 print
'<div class="nowrap">';
590 print $formaccounting->select_auxaccount($search_accountancy_subledger,
'search_accountancy_subledger', 1,
'maxwidth150');
592 print
'<input type="text" class="maxwidth150 maxwidthonsmartphone" name="search_accountancy_subledger" value="'.$search_accountancy_subledger.
'">';
600if (!empty($arrayfields[
'debit'][
'checked'])) {
601 print
'<td class="liste_titre right">';
602 print
'<input name="search_amount_deb" class="flat maxwidth50" type="text" value="'.dol_escape_htmltag($search_amount_deb).
'">';
607if ($arrayfields[
'credit'][
'checked']) {
608 print
'<td class="liste_titre right">';
609 print
'<input name="search_amount_cred" class="flat maxwidth50" type="text" size="8" value="'.dol_escape_htmltag($search_amount_cred).
'">';
614 print
'<td class="liste_titre center maxwidthsearch">';
615 $searchpicto = $form->showFilterButtons();
622$totalarray = array();
623$totalarray[
'nbfield'] = 0;
627print
'<tr class="liste_titre">';
630 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
631 $totalarray[
'nbfield']++;
635 $totalarray[
'nbfield']++;
638if ($arrayfields[
'ref'][
'checked']) {
639 print_liste_field_titre($arrayfields[
'ref'][
'label'], $_SERVER[
"PHP_SELF"],
'v.rowid',
'', $param,
'', $sortfield, $sortorder);
640 $totalarray[
'nbfield']++;
642if ($arrayfields[
'label'][
'checked']) {
643 print_liste_field_titre($arrayfields[
'label'][
'label'], $_SERVER[
"PHP_SELF"],
'v.label',
'', $param,
'', $sortfield, $sortorder);
644 $totalarray[
'nbfield']++;
646if ($arrayfields[
'datep'][
'checked']) {
647 print_liste_field_titre($arrayfields[
'datep'][
'label'], $_SERVER[
"PHP_SELF"],
'v.datep,v.rowid',
'', $param,
'', $sortfield, $sortorder,
'center ');
648 $totalarray[
'nbfield']++;
650if ($arrayfields[
'datev'][
'checked']) {
651 print_liste_field_titre($arrayfields[
'datev'][
'label'], $_SERVER[
"PHP_SELF"],
'v.datev,v.rowid',
'', $param,
'', $sortfield, $sortorder,
'center ');
652 $totalarray[
'nbfield']++;
654if ($arrayfields[
'type'][
'checked']) {
655 print_liste_field_titre($arrayfields[
'type'][
'label'], $_SERVER[
"PHP_SELF"],
'type',
'', $param,
'', $sortfield, $sortorder,
'center ');
656 $totalarray[
'nbfield']++;
658if (isModEnabled(
'project') && $arrayfields[
'project'][
'checked']) {
659 print_liste_field_titre($arrayfields[
'project'][
'label'], $_SERVER[
"PHP_SELF"],
'fk_project',
'', $param,
'', $sortfield, $sortorder);
660 $totalarray[
'nbfield']++;
662if ($arrayfields[
'bank'][
'checked']) {
663 print_liste_field_titre($arrayfields[
'bank'][
'label'], $_SERVER[
"PHP_SELF"],
'ba.label',
'', $param,
'', $sortfield, $sortorder);
664 $totalarray[
'nbfield']++;
666if ($arrayfields[
'entry'][
'checked']) {
667 print_liste_field_titre($arrayfields[
'entry'][
'label'], $_SERVER[
"PHP_SELF"],
'ba.label',
'', $param,
'', $sortfield, $sortorder);
668 $totalarray[
'nbfield']++;
670if (!empty($arrayfields[
'account'][
'checked'])) {
672 print_liste_field_titre($arrayfields[
'account'][
'label'], $_SERVER[
"PHP_SELF"],
'v.accountancy_code',
'', $param,
'', $sortfield, $sortorder,
'left ');
673 $totalarray[
'nbfield']++;
675if (!empty($arrayfields[
'subledger'][
'checked'])) {
676 print_liste_field_titre($arrayfields[
'subledger'][
'label'], $_SERVER[
"PHP_SELF"],
'v.subledger_account',
'', $param,
'', $sortfield, $sortorder,
'left ');
677 $totalarray[
'nbfield']++;
679if ($arrayfields[
'debit'][
'checked']) {
680 print_liste_field_titre($arrayfields[
'debit'][
'label'], $_SERVER[
"PHP_SELF"],
'v.amount',
'', $param,
'', $sortfield, $sortorder,
'right ');
681 $totalarray[
'nbfield']++;
683if ($arrayfields[
'credit'][
'checked']) {
684 print_liste_field_titre($arrayfields[
'credit'][
'label'], $_SERVER[
"PHP_SELF"],
'v.amount',
'', $param,
'', $sortfield, $sortorder,
'right ');
685 $totalarray[
'nbfield']++;
688include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
690$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder,
'totalarray' => &$totalarray);
691$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object, $action);
692print $hookmanager->resPrint;
695 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
696 $totalarray[
'nbfield']++;
704$savnbfield = $totalarray[
'nbfield'];
705$totalarray = array();
706$totalarray[
'nbfield'] = 0;
707$totalarray[
'val'][
'total_cred'] = 0;
708$totalarray[
'val'][
'total_deb'] = 0;
709$imaxinloop = ($limit ? min($num, $limit) : $num);
710while ($i < $imaxinloop) {
711 $obj = $db->fetch_object($resql);
716 $variousstatic->id = $obj->rowid;
717 $variousstatic->ref = $obj->rowid;
718 $variousstatic->label = $obj->label;
719 $variousstatic->datep = $obj->datep;
720 $variousstatic->type_payment = $obj->payment_code;
721 $variousstatic->accountancy_code = $obj->accountancy_code;
722 $variousstatic->amount = $obj->amount;
724 if ($mode ==
'kanban') {
725 if ($obj->fk_bank > 0) {
726 $bankline->fetch($obj->fk_bank);
730 $accountingaccount->fetch(0, $obj->accountancy_code, 1);
733 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
734 print
'<div class="box-flex-container kanban">';
737 print $variousstatic->getKanbanView(
'', array(
'selected' => in_array(
$object->id, $arrayofselected),
'bankline' => $bankline,
'formatedaccountancycode' => $accountingaccount->getNomUrl(0, 0, 1, $obj->accountancy_code, 1)));
738 if ($i == ($imaxinloop) - 1) {
745 print
'<tr data-rowid="'.$object->id.
'" class="oddeven">';
750 $totalarray[
'nbfield']++;
756 print
'<td>'.(($offset * $limit) + $i).
'</td>';
760 if ($arrayfields[
'ref'][
'checked']) {
761 print
'<td>'.$variousstatic->getNomUrl(1).
"</td>";
763 $totalarray[
'nbfield']++;
768 if ($arrayfields[
'label'][
'checked']) {
769 print
'<td class="tdoverflowmax150" title="'.$variousstatic->label.
'">'.$variousstatic->label.
"</td>";
771 $totalarray[
'nbfield']++;
776 if ($arrayfields[
'datep'][
'checked']) {
777 print
'<td class="center">'.dol_print_date($db->jdate($obj->datep),
'day').
"</td>";
779 $totalarray[
'nbfield']++;
785 if ($arrayfields[
'datev'][
'checked']) {
786 print
'<td class="center">'.dol_print_date($db->jdate($obj->datev),
'day').
"</td>";
788 $totalarray[
'nbfield']++;
793 if ($arrayfields[
'type'][
'checked']) {
795 if ($obj->payment_code) {
796 $labeltoshow = $langs->transnoentitiesnoconv(
"PaymentTypeShort".$obj->payment_code).
' ';
798 $labeltoshow .= $obj->num_payment;
799 print
'<td class="center tdoverflowmax150" title="'.dolPrintHTML($labeltoshow).
'">';
803 $totalarray[
'nbfield']++;
808 if (isModEnabled(
'project') && $arrayfields[
'project'][
'checked']) {
809 print
'<td class="nowraponall">';
810 if ($obj->fk_project > 0 && is_object($proj)) {
811 $proj->fetch($obj->fk_project);
812 print $proj->getNomUrl(1);
816 $totalarray[
'nbfield']++;
821 if ($arrayfields[
'bank'][
'checked']) {
822 print
'<td class="nowraponall">';
823 if (is_object($accountstatic) && $obj->bid > 0) {
824 $accountstatic->id = $obj->bid;
825 $accountstatic->ref = $obj->bref;
826 $accountstatic->number = $obj->bnumber;
828 if (isModEnabled(
'accounting') && is_object($accountingjournal)) {
829 $accountstatic->account_number = $obj->bank_account_number;
830 $accountingjournal->fetch($obj->accountancy_journal);
831 $accountstatic->accountancy_journal = $accountingjournal->getNomUrl(0, 1, 1,
'', 1);
834 $accountstatic->label = $obj->blabel;
835 print $accountstatic->getNomUrl(1);
839 $totalarray[
'nbfield']++;
844 if ($arrayfields[
'entry'][
'checked']) {
845 $bankline->fetch($obj->fk_bank);
846 print
'<td>'.$bankline->getNomUrl(1).
'</td>';
848 $totalarray[
'nbfield']++;
853 if (!empty($arrayfields[
'account'][
'checked'])) {
854 require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
855 $result = $accountingaccount->fetch(0, $obj->accountancy_code, 1);
857 print
'<td class="tdoverflowmax150" title="'.dol_escape_htmltag($obj->accountancy_code.
' '.$accountingaccount->label).
'">'.$accountingaccount->getNomUrl(0, 1, 1,
'', 1).
'</td>';
862 $totalarray[
'nbfield']++;
867 if (!empty($arrayfields[
'subledger'][
'checked'])) {
868 print
'<td class="tdoverflowmax150">'.length_accounta($obj->subledger_account).
'</td>';
870 $totalarray[
'nbfield']++;
875 if ($arrayfields[
'debit'][
'checked']) {
876 print
'<td class="nowrap right">';
877 if ($obj->sens == 0) {
878 print
'<span class="amount">'.price($obj->amount).
'</span>';
879 $totalarray[
'val'][
'total_deb'] += $obj->amount;
882 $totalarray[
'nbfield']++;
885 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'total_deb';
891 if ($arrayfields[
'credit'][
'checked']) {
892 print
'<td class="nowrap right">';
893 if ($obj->sens == 1) {
894 print
'<span class="amount">'.price($obj->amount).
'</span>';
895 $totalarray[
'val'][
'total_cred'] += $obj->amount;
898 $totalarray[
'nbfield']++;
901 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'total_cred';
909 $totalarray[
'nbfield']++;
919include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
924 foreach ($arrayfields as $key => $val) {
925 if (!empty($val[
'checked'])) {
929 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
934$parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
935$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object);
936print $hookmanager->resPrint;
938print
'</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 accounts.
Class to manage accounting journals.
Class to manage various payments.
Class to manage projects.
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.
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.
getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $disablesortlink=0, $tooltip='', $forcenowrapcolumntitle=0)
Get title line of an array.
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
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.