36require
'../../main.inc.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/lib/bank.lib.php';
42require_once DOL_DOCUMENT_ROOT.
'/societe/class/societe.class.php';
43require_once DOL_DOCUMENT_ROOT.
'/user/class/user.class.php';
44require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
45require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/bankcateg.class.php';
46require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
47require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/chargesociales.class.php';
48require_once DOL_DOCUMENT_ROOT.
'/compta/tva/class/paymentvat.class.php';
49require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
50require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/paymentsocialcontribution.class.php';
51require_once DOL_DOCUMENT_ROOT.
'/compta/tva/class/tva.class.php';
52require_once DOL_DOCUMENT_ROOT.
'/salaries/class/paymentsalary.class.php';
53require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/paymentvarious.class.php';
54require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/bonprelevement.class.php';
55require_once DOL_DOCUMENT_ROOT.
'/don/class/don.class.php';
56require_once DOL_DOCUMENT_ROOT.
'/don/class/paymentdonation.class.php';
57require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/paymentexpensereport.class.php';
58require_once DOL_DOCUMENT_ROOT.
'/loan/class/loan.class.php';
59require_once DOL_DOCUMENT_ROOT.
'/fourn/class/paiementfourn.class.php';
60require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/cheque/class/remisecheque.class.php';
71$langs->loadLangs(array(
"banks",
"bills",
"categories",
"companies",
"margins",
"salaries",
"loan",
"donations",
"trips",
"members",
"compta",
"accountancy"));
75$action =
GETPOST(
'action',
'aZ09');
76$cancel =
GETPOST(
'cancel',
'alpha');
77$confirm =
GETPOST(
'confirm',
'alpha');
78$contextpage =
'bankentrieslist';
79$massaction =
GETPOST(
'massaction',
'alpha');
80$optioncss =
GETPOST(
'optioncss',
'aZ09');
84$search_debit =
GETPOST(
"search_debit",
'alpha');
85$search_credit =
GETPOST(
"search_credit",
'alpha');
86$search_type =
GETPOST(
"search_type",
'alpha');
87$search_account =
GETPOST(
"search_account",
'int') ?
GETPOST(
"search_account",
'int') :
GETPOST(
"account",
'int');
88$search_accountancy_code =
GETPOST(
'search_accountancy_code',
'alpha') ?
GETPOST(
'search_accountancy_code',
'alpha') :
GETPOST(
'accountancy_code',
'alpha');
90$search_ref =
GETPOST(
'search_ref',
'alpha');
91$search_description =
GETPOST(
"search_description",
'alpha');
96$search_thirdparty_user =
GETPOST(
"search_thirdparty",
'alpha') ?
GETPOST(
"search_thirdparty",
'alpha') :
GETPOST(
"thirdparty",
'alpha');
97$search_req_nb =
GETPOST(
"req_nb",
'alpha');
98$search_num_releve =
GETPOST(
"search_num_releve",
'alpha');
99$search_conciliated =
GETPOST(
"search_conciliated",
'int');
100$search_fk_bordereau =
GETPOST(
"search_fk_bordereau",
'int');
101$optioncss =
GETPOST(
'optioncss',
'alpha');
102$toselect =
GETPOST(
'toselect',
'array:int');
103$num_releve =
GETPOST(
"num_releve",
"alpha");
109$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
110$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
112if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
116$offset = $limit * $page;
117$pageprev = $page - 1;
118$pagenext = $page + 1;
120 $sortorder =
'desc,desc,desc';
123 $sortfield =
'b.datev,b.dateo,b.rowid';
127if ($id > 0 || !empty($ref)) {
128 $result =
$object->fetch($id, $ref);
137$contextpage =
'banktransactionlist'.(empty(
$object->id) ?
'' :
'-'.$object->id);
139$mode_balance_ok =
false;
141if (($sortfield ==
'b.datev' || $sortfield ==
'b.datev,b.dateo,b.rowid')) {
142 $sortfield =
'b.datev,b.dateo,b.rowid';
143 if ($id > 0 || !empty($ref) || $search_account > 0) {
144 $mode_balance_ok =
true;
149$hookmanager->initHooks(array(
'banktransactionlist', $contextpage));
152$extrafieldsobjectkey =
'bank';
155$extrafields->fetch_name_optionals_label($extrafieldsobjectkey);
156$search_array_options = $extrafields->getOptionalsFromPost($extrafieldsobjectkey,
'',
'search_');
159 'b.rowid' => array(
'label' => $langs->trans(
"Ref"),
'checked' =>
'1',
'position' => 10),
160 'b.label' => array(
'label' => $langs->trans(
"Description"),
'checked' =>
'1',
'position' => 20),
161 'b.dateo' => array(
'label' => $langs->trans(
"DateOperationShort"),
'checked' =>
'-1',
'position' => 30),
162 'b.datev' => array(
'label' => $langs->trans(
"DateValueShort"),
'checked' =>
'1',
'position' => 40),
163 'type' => array(
'label' => $langs->trans(
"Type"),
'checked' =>
'1',
'position' => 50),
164 'b.num_chq' => array(
'label' => $langs->trans(
"Numero"),
'checked' =>
'0',
'position' => 60),
165 'b.fk_bordereau' => array(
'label' => $langs->trans(
"ChequeNumber"),
'checked' =>
'0',
'position' => 65),
166 'bu.label' => array(
'label' => $langs->trans(
"ThirdParty").
'/'.$langs->trans(
"User"),
'checked' =>
'1',
'position' => 70),
167 'ba.ref' => array(
'label' => $langs->trans(
"BankAccount"),
'checked' => (($id > 0 || !empty($ref)) ?
'0' :
'1'),
'position' => 80),
168 'b.debit' => array(
'label' => $langs->trans(
"Debit"),
'checked' =>
'1',
'position' => 90),
169 'b.credit' => array(
'label' => $langs->trans(
"Credit"),
'checked' =>
'1',
'position' => 100),
170 'balancebefore' => array(
'label' => $langs->trans(
"BalanceBefore"),
'checked' =>
'0',
'position' => 110),
171 'balance' => array(
'label' => $langs->trans(
"Balance"),
'checked' =>
'1',
'position' => 120),
172 'b.num_releve' => array(
'label' => $langs->trans(
"AccountStatement"),
'checked' =>
'1',
'position' => 130),
173 'b.conciliated' => array(
'label' => $langs->trans(
"BankLineReconciled"),
'enabled' => (string) (int)
$object->rappro,
'checked' => ($action ==
'reconcile' ?
'1' :
'0'),
'position' => 140),
176include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
182$fieldvalue = (!empty($id) ?
$id : (!empty($ref) ? $ref :
''));
183$fieldtype = (!empty($ref) ?
'ref' :
'rowid');
186 $socid = $user->socid;
188 $result =
restrictedArea($user,
'banque', $fieldvalue,
'bank_account&bank_account',
'',
'', $fieldtype);
191 $socid = $user->socid;
201if (
GETPOST(
'cancel',
'alpha')) {
205if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend') {
209$parameters = array();
210$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
215include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
217if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
218 $search_dt_start =
'';
220 $search_dv_start =
'';
228 $search_description =
'';
229 $search_thirdparty_user =
'';
230 $search_num_releve =
'';
231 $search_conciliated =
'';
232 $search_fk_bordereau =
'';
235 $search_account =
"";
236 if ($id > 0 || !empty($ref)) {
241if (empty($reshook)) {
242 $objectclass =
'Account';
243 $objectlabel =
'BankTransaction';
244 $permissiontoread = $user->hasRight(
'banque',
'lire');
245 $permissiontodelete = $user->hasRight(
'banque',
'modifier');
246 $uploaddir = $conf->bank->dir_output;
247 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
250$rowids =
GETPOST(
'rowid',
'array:int');
253if ((
GETPOST(
'confirm_savestatement',
'alpha') ||
GETPOST(
'confirm_reconcile',
'alpha'))
254 && (
GETPOST(
"num_releve",
"alpha") || !empty($rowids))
255 && $user->hasRight(
'banque',
'consolidate')
256 && (!GETPOSTISSET(
'pageplusone') || (
GETPOST(
'pageplusone') ==
GETPOST(
'pageplusoneold')))) {
260 $num_releve =
GETPOST(
"num_releve",
"alpha");
265 $rowids =
GETPOST(
'rowid',
'array:int');
267 if (!empty($rowids) && is_array($rowids)) {
268 foreach ($rowids as $row) {
270 $result = $bankline->fetch($row);
271 $bankline->num_releve = $num_releve;
272 $result = $bankline->update_conciliation($user,
GETPOSTINT(
"cat"),
GETPOST(
'confirm_reconcile',
'alpha') ? 1 : 0);
280 if (!$error && count($rowids) > 0) {
281 setEventMessages($langs->trans(
"XNewLinesConciliated", count($rowids)),
null);
285 $langs->load(
"errors");
290 $langs->load(
"errors");
291 setEventMessages($langs->trans(
"ErrorPleaseTypeBankTransactionReportName"),
null,
'errors');
295 $param =
'action=reconcile&contextpage=banktransactionlist&id='.((int)
$object->id).
'&search_account='.((int)
$object->id);
297 $param .=
'&page='.urlencode((
string) ($page));
300 $param .=
'&offset='.urlencode((
string) ($offset));
303 $param .=
'&limit='.((int) $limit);
305 if ($search_conciliated !=
'' && $search_conciliated !=
'-1') {
306 $param .=
'&search_conciliated='.urlencode((
string) ($search_conciliated));
308 if ($search_thirdparty_user) {
309 $param .=
'&search_thirdparty='.urlencode($search_thirdparty_user);
311 if ($search_num_releve) {
312 $param .=
'&search_num_releve='.urlencode($search_num_releve);
314 if ($search_description) {
315 $param .=
'&search_description='.urlencode($search_description);
318 $param .=
'&search_start_dtmonth='.GETPOSTINT(
'search_start_dtmonth').
'&search_start_dtday='.
GETPOSTINT(
'search_start_dtday').
'&search_start_dtyear='.
GETPOSTINT(
'search_start_dtyear');
321 $param .=
'&search_end_dtmonth='.GETPOSTINT(
'search_end_dtmonth').
'&search_end_dtday='.
GETPOSTINT(
'search_end_dtday').
'&search_end_dtyear='.
GETPOSTINT(
'search_end_dtyear');
324 $param .=
'&search_start_dvmonth='.GETPOSTINT(
'search_start_dvmonth').
'&search_start_dvday='.
GETPOSTINT(
'search_start_dvday').
'&search_start_dvyear='.
GETPOSTINT(
'search_start_dvyear');
327 $param .=
'&search_end_dvmonth='.GETPOSTINT(
'search_end_dvmonth').
'&search_end_dvday='.
GETPOSTINT(
'search_end_dvday').
'&search_end_dvyear='.
GETPOSTINT(
'search_end_dvyear');
330 $param .=
'&search_type='.urlencode($search_type);
333 $param .=
'&search_debit='.urlencode($search_debit);
335 if ($search_credit) {
336 $param .=
'&search_credit='.urlencode($search_credit);
338 $param .=
'&sortfield='.urlencode($sortfield).
'&sortorder='.urlencode($sortorder);
339 header(
'Location: '.$_SERVER[
"PHP_SELF"].
'?'.$param);
345if (
GETPOST(
'save') && !$cancel && $user->hasRight(
'banque',
'modifier')) {
354 $operation =
GETPOST(
"operation",
'alpha');
355 $num_chq =
GETPOST(
"num_chq",
'alpha');
356 $label =
GETPOST(
"label",
'alpha');
357 $cat1 =
GETPOST(
"cat1",
'alpha');
359 $bankaccountid =
$id;
365 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Date")),
null,
'errors');
369 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Type")),
null,
'errors');
373 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Label")),
null,
'errors');
377 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Amount")),
null,
'errors');
379 if (!($bankaccountid > 0)) {
381 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"BankAccount")),
null,
'errors');
391 $objecttmp->fetch($bankaccountid);
392 $insertid = $objecttmp->addline((
int) $dateop, $operation, $label, (
float) $amount, $num_chq, ($cat1 > 0 ? $cat1 : 0), $user,
'',
'', $search_accountancy_code);
395 header(
"Location: ".$_SERVER[
'PHP_SELF'].($id ?
"?id=".$id :
''));
405if ($action ==
'confirm_deleteonreconcile' && $confirm ==
'yes' && $user->hasRight(
'banque',
'modifier')) {
407 $result = $accline->fetch(
GETPOSTINT(
"rowid"));
408 $result = $accline->delete($user);
415 $action =
'reconcile';
418if ($action ==
'confirm_delete' && $confirm ==
'yes' && $user->hasRight(
'banque',
'modifier')) {
420 $result = $accline->fetch(
GETPOSTINT(
"rowid"));
421 $result = $accline->delete($user);
434$form =
new Form($db);
438$companystatic =
new Societe($db);
439$bankaccountstatic =
new Account($db);
440$userstatic =
new User($db);
443$societestatic =
new Societe($db);
444$userstatic =
new User($db);
446$loanstatic =
new Loan($db);
448$donstatic =
new Don($db);
465if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
466 $param .=
'&contextpage='.urlencode($contextpage);
468if ($limit > 0 && $limit != $conf->liste_limit) {
469 $param .=
'&limit='.((int) $limit);
472 $param .=
'&id='.urlencode((
string) (
$id));
475 $param .=
'&ref='.urlencode($ref);
477if (!empty($search_ref)) {
478 $param .=
'&search_ref='.urlencode($search_ref);
480if (!empty($search_description)) {
481 $param .=
'&search_description='.urlencode($search_description);
483if (!empty($search_type)) {
484 $param .=
'&type='.urlencode($search_type);
486if (!empty($search_thirdparty_user)) {
487 $param .=
'&search_thirdparty='.urlencode($search_thirdparty_user);
489if (!empty($search_debit)) {
490 $param .=
'&search_debit='.urlencode($search_debit);
492if (!empty($search_credit)) {
493 $param .=
'&search_credit='.urlencode($search_credit);
495if ($search_account > 0) {
496 $param .=
'&search_account='.((int) $search_account);
498if (!empty($search_num_releve)) {
499 $param .=
'&search_num_releve='.urlencode($search_num_releve);
501if ($search_conciliated !=
'' && $search_conciliated !=
'-1') {
502 $param .=
'&search_conciliated='.urlencode((
string) ($search_conciliated));
504if ($search_fk_bordereau > 0) {
505 $param .=
'$&search_fk_bordereau='.urlencode((
string) ($search_fk_bordereau));
507if ($search_bid > 0) {
508 $param .=
'&search_bid='.((int) $search_bid);
511 $param .=
'&search_start_dtmonth='.GETPOSTINT(
'search_start_dtmonth').
'&search_start_dtday='.
GETPOSTINT(
'search_start_dtday').
'&search_start_dtyear='.
GETPOSTINT(
'search_start_dtyear');
514 $param .=
'&search_end_dtmonth='.GETPOSTINT(
'search_end_dtmonth').
'&search_end_dtday='.
GETPOSTINT(
'search_end_dtday').
'&search_end_dtyear='.
GETPOSTINT(
'search_end_dtyear');
517 $param .=
'&search_start_dvmonth='.GETPOSTINT(
'search_start_dvmonth').
'&search_start_dvday='.
GETPOSTINT(
'search_start_dvday').
'&search_start_dvyear='.
GETPOSTINT(
'search_start_dvyear');
520 $param .=
'&search_end_dvmonth='.GETPOSTINT(
'search_end_dvmonth').
'&search_end_dvday='.
GETPOSTINT(
'search_end_dvday').
'&search_end_dvyear='.
GETPOSTINT(
'search_end_dvyear');
523 $param .=
'&req_nb='.urlencode($search_req_nb);
526 $param .=
'&thirdparty='.urlencode((
string) (
GETPOSTINT(
"search_thirdparty")));
528if ($optioncss !=
'') {
529 $param .=
'&optioncss='.urlencode($optioncss);
531if ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile') {
532 $param .=
'&action=reconcile';
540include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
544$buttonreconcile =
'';
547if ($id > 0 || !empty($ref)) {
548 $title =
$object->ref.
' - '.$langs->trans(
"Transactions");
550 $title = $langs->trans(
"BankTransactions");
554llxHeader(
'', $title, $help_url,
'', 0, 0, array(), array(), $param);
557if ($id > 0 || !empty($ref)) {
559 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/bankcateg.class.php';
562 $arrayofbankcateg = $bankcateg->fetchAll();
563 foreach ($arrayofbankcateg as $bankcategory) {
564 $options[$bankcategory->id] = $bankcategory->label;
569 $activetab =
'journal';
570 if ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile') {
571 $activetab =
'reconcile';
573 print
dol_get_fiche_head($head, $activetab, $langs->trans(
"FinancialAccount"), 0,
'account');
575 $linkback =
'<a href="'.DOL_URL_ROOT.
'/compta/bank/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
577 dol_banner_tab($object,
'ref', $linkback, 1,
'ref',
'ref', $morehtmlref,
'', 0,
'',
'', 1);
582$sql =
"SELECT b.rowid, b.dateo as do, b.datev as dv, b.amount, b.label, b.rappro as conciliated, b.num_releve, b.num_chq,";
583$sql .=
" b.fk_account, b.fk_type, b.fk_bordereau,";
584$sql .=
" ba.rowid as bankid, ba.ref as bankref";
586if (!empty($extrafields->attributes[$extrafieldsobjectkey][
'label'])) {
587 foreach ($extrafields->attributes[$extrafieldsobjectkey][
'label'] as $key => $val) {
588 $sql .= ($extrafields->attributes[$extrafieldsobjectkey][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
592$parameters = array();
593$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object, $action);
594$sql .= $hookmanager->resPrint;
596if ($search_bid > 0) {
597 $sql .= MAIN_DB_PREFIX.
"category_bankline as l,";
599$sql .=
" ".MAIN_DB_PREFIX.
"bank_account as ba,";
600$sql .=
" ".MAIN_DB_PREFIX.
"bank as b";
601if (!empty($extrafields->attributes[$extrafieldsobjectkey][
'label']) && is_array($extrafields->attributes[$extrafieldsobjectkey][
'label']) && count($extrafields->attributes[$extrafieldsobjectkey][
'label'])) {
602 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.$extrafieldsobjectkey.
"_extrafields as ef on (b.rowid = ef.fk_object)";
606$parameters = array();
607$reshook = $hookmanager->executeHooks(
'printFieldListJoin', $parameters, $object, $action);
608$sql .= $hookmanager->resPrint;
610$sql .=
" WHERE b.fk_account = ba.rowid";
611$sql .=
" AND ba.entity IN (".getEntity(
'bank_account').
")";
612if ($search_account > 0) {
613 $sql .=
" AND b.fk_account = ".((int) $search_account);
617 $sql .=
" AND b.dateo >= '".$db->idate($search_dt_start).
"'";
620 $sql .=
" AND b.dateo <= '".$db->idate($search_dt_end).
"'";
624 $sql .=
" AND b.datev >= '".$db->idate($search_dv_start).
"'";
627 $sql .=
" AND b.datev <= '".$db->idate($search_dv_end).
"'";
635if ($search_num_releve) {
638if ($search_conciliated !=
'' && $search_conciliated !=
'-1') {
639 $sql .=
" AND b.rappro = ".((int) $search_conciliated);
641if ($search_fk_bordereau > 0) {
642 $sql .=
" AND b.fk_bordereau = " . ((int) $search_fk_bordereau);
644if ($search_thirdparty_user) {
645 $sql .=
" AND (b.rowid IN ";
646 $sql .=
" ( SELECT bu.fk_bank FROM ".MAIN_DB_PREFIX.
"bank_url AS bu";
647 $sql .=
" JOIN ".MAIN_DB_PREFIX.
"bank AS b2 ON b2.rowid = bu.fk_bank";
648 $sql .=
" JOIN ".MAIN_DB_PREFIX.
"user AS subUser ON (bu.type = 'user' AND bu.url_id = subUser.rowid)";
649 $sql .=
" WHERE ".
natural_search(array(
"subUser.firstname",
"subUser.lastname"), $search_thirdparty_user, 0, 1).
")";
651 $sql .=
" OR b.rowid IN ";
652 $sql .=
" ( SELECT bu.fk_bank FROM ".MAIN_DB_PREFIX.
"bank_url AS bu";
653 $sql .=
" JOIN ".MAIN_DB_PREFIX.
"bank AS b2 ON b2.rowid = bu.fk_bank";
654 $sql .=
" JOIN ".MAIN_DB_PREFIX.
"societe AS subSoc ON (bu.type = 'company' AND bu.url_id = subSoc.rowid)";
655 $sql .=
" WHERE ".
natural_search(array(
"subSoc.nom"), $search_thirdparty_user, 0, 1);
658if ($search_description) {
659 $search_description_to_use = $search_description;
660 $arrayoffixedlabels = array(
662 'CustomerInvoicePayment',
663 'CustomerInvoicePaymentBack',
664 'SupplierInvoicePayment',
665 'SupplierInvoicePaymentBack',
667 'ExpenseReportPayment',
668 'SocialContributionPayment',
669 'SubscriptionPayment',
672 foreach ($arrayoffixedlabels as $keyforlabel) {
673 $translatedlabel = $langs->transnoentitiesnoconv($keyforlabel);
674 if (preg_match(
'/'.$search_description.
'/i', $translatedlabel)) {
675 $search_description_to_use .=
"|".$keyforlabel;
681if ($search_bid > 0) {
682 $sql .=
" AND b.rowid = l.lineid AND l.fk_categ = ".((int) $search_bid);
684if (!empty($search_type)) {
685 $sql .=
" AND b.fk_type = '".$db->escape($search_type).
"'";
690 $sql .=
' AND b.amount <= 0';
694 $sql .=
' AND b.amount >= 0';
697include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
700$parameters = array();
701$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object, $action);
702$sql .= $hookmanager->resPrint;
704$sql .= $db->order($sortfield, $sortorder);
706$nbtotalofrecords =
'';
709 $result = $db->query($sql);
710 $nbtotalofrecords = $db->num_rows($result);
711 $nbtotalofpages = ceil($nbtotalofrecords / $limit);
714if (($id > 0 || !empty($ref)) && ((
string) $page ==
'')) {
717 $page = ($nbtotalofpages - 1);
718 $offset = $limit * $page;
723if ($page >= $nbtotalofpages) {
725 $page = ($nbtotalofpages - 1);
726 $offset = $limit * $page;
734if (empty($search_account)) {
735 $mode_balance_ok =
false;
738if (!empty($search_ref)) {
739 $mode_balance_ok =
false;
741if (!empty($search_description)) {
742 $mode_balance_ok =
false;
744if (!empty($search_type)) {
745 $mode_balance_ok =
false;
747if (!empty($search_debit)) {
748 $mode_balance_ok =
false;
750if (!empty($search_credit)) {
751 $mode_balance_ok =
false;
753if (!empty($search_thirdparty_user)) {
754 $mode_balance_ok =
false;
756if ($search_conciliated !=
'' && $search_conciliated !=
'-1') {
757 $mode_balance_ok =
false;
759if (!empty($search_num_releve)) {
760 $mode_balance_ok =
false;
762if (!empty($search_fk_bordereau)) {
763 $mode_balance_ok =
false;
766$sql .= $db->plimit($limit + 1, $offset);
768dol_syslog(
'compta/bank/bankentries_list.php', LOG_DEBUG);
769$resql = $db->query($sql);
771 $num = $db->num_rows($resql);
773 $arrayofselected = (!empty($toselect) && is_array($toselect)) ? $toselect : array();
776 $arrayofmassactions = array(
780 if (in_array($massaction, array(
'presend',
'predelete'))) {
781 $arrayofmassactions = array();
783 $massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
786 if ($action ==
'delete') {
787 $text = $langs->trans(
'ConfirmDeleteTransaction');
788 print $form->formconfirm($_SERVER[
'PHP_SELF'].
'?id='.
$object->id.
'&rowid='.
GETPOSTINT(
"rowid"), $langs->trans(
'DeleteTransaction'), $text,
'confirm_delete',
null,
'', 1);
792 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'" name="search_form">'.
"\n";
793 if ($optioncss !=
'') {
794 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
796 print
'<input type="hidden" name="token" value="'.newToken().
'">';
797 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
798 print
'<input type="hidden" name="action" value="'.($action !=
'delete' ? $action :
'search').
'">';
800 print
'<input type="hidden" name="mode" value="'.dol_escape_htmltag($mode).
'">';
802 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
803 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
804 print
'<input type="hidden" name="page" value="'.$page.
'">';
805 print
'<input type="hidden" name="id" value="'.$id.
'">';
806 print
'<input type="hidden" name="ref" value="'.$ref.
'">';
808 print
'<input type="hidden" name="bid" value="'.GETPOSTINT(
"bid").
'">';
812 if ($user->hasRight(
'banque',
'modifier') && $action ==
'addline' &&
getDolGlobalString(
'BANK_USE_OLD_VARIOUS_PAYMENT')) {
815 print
'<table class="noborder centpercent">';
817 print
'<tr class="liste_titre">';
818 print
'<td>'.$langs->trans(
"Description").
'</td>';
819 print
'<td>'.$langs->trans(
"Date").
'</td>';
820 print
'<td> </td>';
821 print
'<td>'.$langs->trans(
"Type").
'</td>';
822 print
'<td>'.$langs->trans(
"Numero").
'</td>';
823 print
'<td class=right>'.$langs->trans(
"BankAccount").
'</td>';
824 print
'<td class=right>'.$langs->trans(
"Debit").
'</td>';
825 print
'<td class=right>'.$langs->trans(
"Credit").
'</td>';
832 print
'<td class="center"> </td>';
837 print
'<input name="label" class="flat minwidth200" type="text" value="'.GETPOST(
"label",
"alpha").
'">';
838 if (is_array($options) && count($options)) {
839 print
'<br>'.$langs->trans(
"Rubrique").
': ';
843 print
'<td class="nowrap">';
844 print $form->selectDate(empty($dateop) ? -1 : $dateop,
'op', 0, 0, 0,
'transaction');
846 print
'<td> </td>';
847 print
'<td class="nowrap">';
848 print $form->select_types_paiements((
GETPOST(
'operation') ?
GETPOST(
'operation') : (
$object->
type ==
Account::TYPE_CASH ?
'LIQ' :
'')),
'operation',
'1,2', 2, 1, 0, 0, 1,
'', 1);
851 print
'<input name="num_chq" class="flat" type="text" size="4" value="'.GETPOST(
"num_chq",
"alpha").
'">';
855 print
'<td class=right>';
856 print $form->select_comptes(
GETPOSTINT(
'add_account') ?
GETPOSTINT(
'add_account') : $search_account,
'add_account', 0,
'', 1, (
$id > 0 || !empty($ref) ?
' disabled="disabled"' :
''), 0,
'', 1);
859 print
'<td class="right"><input name="adddebit" class="flat" type="text" size="4" value="'.GETPOST(
"adddebit",
"alpha").
'"></td>';
860 print
'<td class="right"><input name="addcredit" class="flat" type="text" size="4" value="'.GETPOST(
"addcredit",
"alpha").
'"></td>';
867 print
'<td class="center">';
868 print
'<input type="submit" name="save" class="button buttongen marginbottomonly button-add" value="'.$langs->trans(
"Add").
'"><br>';
869 print
'<input type="submit" name="cancel" class="button buttongen marginbottomonly button-cancel" value="'.$langs->trans(
"Cancel").
'">';
877 $urlajax = DOL_URL_ROOT.
'/core/ajax/bankconciliate.php?format=dayreduceformat&token='.
currentToken();
879 <script type="text/javascript">
881 $("a.ajaxforbankoperationchange").each(function(){
882 var current = $(this);
883 current.click(function()
885 var url = "'.$urlajax.
'&"+current.attr("href").split("?")[1];
886 console.log("We click on ajaxforbankoperationchange url="+url);
887 $.get(url, function(data)
890 current.parent().parent().find(".spanforajaxedit").replaceWith(data);
905 if ($action !=
'addline') {
907 if (
$object->status == $object::STATUS_CLOSED) {
908 $newcardbutton =
dolGetButtonTitle($langs->trans(
'AddBankRecord'),
'Bank account is closed',
'fa fa-plus-circle', $_SERVER[
"PHP_SELF"].
'?action=addline&token='.
newToken().
'&page='.$page.$param,
'', -2);
911 $newcardbutton =
dolGetButtonTitle($langs->trans(
'AddBankRecord'),
'',
'fa fa-plus-circle', DOL_URL_ROOT.
'/compta/bank/various_payment/card.php?action=create&accountid='.urlencode($search_account).
'&backtopage='.urlencode($_SERVER[
'PHP_SELF'].
'?id='.urlencode($search_account)),
'', $user->rights->banque->modifier);
913 $newcardbutton =
dolGetButtonTitle($langs->trans(
'AddBankRecord'),
'',
'fa fa-plus-circle', $_SERVER[
"PHP_SELF"].
'?action=addline&token='.
newToken().
'&page='.$page.$param,
'', $user->rights->banque->modifier);
917 $newcardbutton =
dolGetButtonTitle($langs->trans(
'AddBankRecord'),
'Direct input in bank lines has been disabled by option BANK_DISABLE_DIRECT_INPUT',
'fa fa-plus-circle', $_SERVER[
"PHP_SELF"].
'?action=addline&token='.
newToken().
'&page='.$page.$param,
'', -2);
923 if ($action !=
'addline' && $action !=
'reconcile' && $action !=
'confirm_deleteonreconcile') {
924 $morehtml .= $buttonreconcile;
927 $morehtmlright =
'<!-- Add New button -->'.$newcardbutton;
929 $picto =
'bank_account';
930 if ($id > 0 || !empty($ref)) {
935 print_barre_liste($langs->trans(
"BankTransactions"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton.$morehtml, $num, $nbtotalofrecords, $picto, 0, $morehtmlright,
'', $limit, 0, 0, 1);
938 if ($user->hasRight(
'banque',
'consolidate') && ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile')) {
941 $listoflastreceipts =
'';
942 $sql =
"SELECT DISTINCT num_releve FROM ".MAIN_DB_PREFIX.
"bank";
943 $sql .=
" WHERE fk_account = ".((int)
$object->id).
" AND num_releve IS NOT NULL";
944 $sql .= $db->order(
"num_releve",
"DESC");
945 $sql .= $db->plimit($nbmax + 1);
947 $last_receipts = array();
952 $resqlr = $db->query($sql);
955 $numr = $db->num_rows($resqlr);
956 while (($i < $numr) && ($i < $nbmax)) {
957 $objr = $db->fetch_object($resqlr);
959 $last_receipts[] = $objr->num_releve;
961 $last_releve = $objr->num_releve;
969 print
'<!-- form with reconciliation input -->'.
"\n";
970 print
'<div class="valignmiddle inline-block" style="padding-right: 20px;">';
972 print
'<strong>'.$langs->trans(
"InputReceiptNumber").
'</strong>: ';
973 print
'<input class="flat width100 center" id="num_releve" list="num_releve_list" name="num_releve" type="text" value="'.(GETPOST(
'num_releve') ?
GETPOST(
'num_releve') :
'').
'">';
975 $texttoshow = $langs->trans(
"InputReceiptNumber").
': ';
976 $yyyy =
dol_substr($langs->transnoentitiesnoconv(
"Year"), 0, 1).substr($langs->transnoentitiesnoconv(
"Year"), 0, 1).substr($langs->transnoentitiesnoconv(
"Year"), 0, 1).substr($langs->transnoentitiesnoconv(
"Year"), 0, 1);
977 $mm =
dol_substr($langs->transnoentitiesnoconv(
"Month"), 0, 1).substr($langs->transnoentitiesnoconv(
"Month"), 0, 1);
978 $dd =
dol_substr($langs->transnoentitiesnoconv(
"Day"), 0, 1).substr($langs->transnoentitiesnoconv(
"Day"), 0, 1);
979 $placeholder = $yyyy.$mm;
980 $placeholder2 = $yyyy.$mm;
981 $placeholder2 .=
' '.$langs->trans(
"or").
' ';
982 $placeholder2 .= $yyyy.$mm.$dd;
984 $texttoshow .= $langs->trans(
"InputReceiptNumberBis");
987 print
'<input class="flat width100 center" pattern="[0-9]+" title="'.dol_escape_htmltag($texttoshow.
': '.$placeholder2).
'" id="num_releve" list="num_releve_list" name="num_releve" placeholder="'.
dol_escape_htmltag($placeholder).
'" type="text" value="'.(
GETPOSTINT(
'num_releve') ?
GETPOSTINT(
'num_releve') :
'').
'">';
991 if (!empty($last_receipts)) {
992 print
'<datalist id="num_releve_list">';
993 foreach ($last_receipts as $num_releve) {
994 print
'<option value="'.$num_releve.
'"></option>';
1000 if (is_array($options) && count($options)) {
1001 print $langs->trans(
"EventualyAddCategory").
': ';
1004 print
'<br><div style="margin-top: 5px;"><span class="opacitymedium">'.$langs->trans(
"ThenCheckLinesAndConciliate").
'</span> ';
1005 print
'<input type="submit" class="button" name="confirm_reconcile" value="'.$langs->trans(
"Conciliate").
'">';
1006 print
' <span class="opacitymedium">'.$langs->trans(
"otherwise").
'</span> ';
1007 print
'<input type="submit" class="button small" name="confirm_savestatement" value="'.$langs->trans(
"SaveStatementOnly").
'">';
1013 print
'<!-- Last bank statements -->'.
"\n";
1014 print $langs->trans(
"LastAccountStatements").
' : ';
1016 foreach ($last_receipts as $num_releve) {
1017 $newentreyinlist =
'<a target="_blank" href="'.DOL_URL_ROOT.
'/compta/bank/releve.php?account='.((int) $id).
'&num='.urlencode($num_releve).
'">';
1018 $newentreyinlist .=
img_picto($num_releve,
'generic',
'class="paddingright"');
1020 $listoflastreceipts = $newentreyinlist.$listoflastreceipts;
1022 if ($numr >= $nbmax) {
1023 $listoflastreceipts =
"... ".$listoflastreceipts;
1025 print $listoflastreceipts;
1027 print
'<b>'.$langs->trans(
"None").
'</b>';
1033 <script type="text/javascript">
1034 $("#num_releve").val("' . $last_releve.
'");
1043 $param .=
'&page='.urlencode((
string) ($page));
1046 $moreforfilter =
'';
1047 $moreforfilter .=
'<div class="divsearchfield">';
1048 $moreforfilter .= $langs->trans(
'DateOperationShort');
1049 $moreforfilter .= ($conf->browser->layout ==
'phone' ?
'<br>' :
' ');
1050 $moreforfilter .=
'<div class="nowrap inline-block">';
1051 $moreforfilter .= $form->selectDate($search_dt_start,
'search_start_dt', 0, 0, 1,
"search_form", 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1052 $moreforfilter .=
'</div>';
1053 $moreforfilter .= ($conf->browser->layout ==
'phone' ?
'' :
' ');
1054 $moreforfilter .=
'<div class="nowrap inline-block">';
1055 $moreforfilter .= $form->selectDate($search_dt_end,
'search_end_dt', 0, 0, 1,
"search_form", 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1056 $moreforfilter .=
'</div>';
1057 $moreforfilter .=
'</div>';
1059 $moreforfilter .=
'<div class="divsearchfield">';
1060 $moreforfilter .= $langs->trans(
'DateValueShort');
1061 $moreforfilter .= ($conf->browser->layout ==
'phone' ?
'<br>' :
' ');
1062 $moreforfilter .=
'<div class="nowrap inline-block">';
1063 $moreforfilter .= $form->selectDate($search_dv_start,
'search_start_dv', 0, 0, 1,
"search_form", 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1064 $moreforfilter .=
'</div>';
1065 $moreforfilter .= ($conf->browser->layout ==
'phone' ?
'' :
' ');
1066 $moreforfilter .=
'<div class="nowrap inline-block">';
1067 $moreforfilter .= $form->selectDate($search_dv_end,
'search_end_dv', 0, 0, 1,
"search_form", 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1068 $moreforfilter .=
'</div>';
1069 $moreforfilter .=
'</div>';
1073 if (
isModEnabled(
'category') && $user->hasRight(
'categorie',
'lire')) {
1074 $langs->load(
'categories');
1077 $moreforfilter .=
'<div class="divsearchfield">';
1078 $tmptitle = $langs->trans(
'RubriquesTransactions');
1079 $cate_arbo = $form->select_all_categories(Categorie::TYPE_BANK_LINE, $search_bid,
'parent', 0, 0, 1);
1080 $moreforfilter .=
img_picto($tmptitle,
'category',
'class="pictofixedwidth"').$form->selectarray(
'search_bid', $cate_arbo, $search_bid, $tmptitle, 0, 0,
'', 0, 0, 0,
'',
'', 1);
1081 $moreforfilter .=
'</div>';
1085 $parameters = array();
1086 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1087 if (empty($reshook)) {
1088 $moreforfilter .= $hookmanager->resPrint;
1090 $moreforfilter = $hookmanager->resPrint;
1093 if ($moreforfilter) {
1094 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1095 print $moreforfilter;
1096 print
'</div>'.
"\n";
1099 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1100 $htmlofselectarray = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
1101 $selectedfields = ($mode !=
'kanban' ? $htmlofselectarray :
'');
1102 $selectedfields .= (($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile') ? $form->showCheckAddButtons(
'checkforselect', 1) :
'');
1105 if ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile') {
1106 $arrayfields[
'b.num_releve'][
'checked'] = 1;
1109 print
'<div class="div-table-responsive">';
1110 print
'<table class="tagtable liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
1114 print
'<tr class="liste_titre_filter">';
1117 print
'<td class="liste_titre valignmiddle center">';
1118 $searchpicto = $form->showFilterButtons(
'left');
1124 if (!empty($arrayfields[
'b.rowid'][
'checked'])) {
1125 print
'<td class="liste_titre">';
1126 print
'<input type="text" class="flat" name="search_ref" size="2" value="'.dol_escape_htmltag($search_ref).
'">';
1129 if (!empty($arrayfields[
'b.label'][
'checked'])) {
1130 print
'<td class="liste_titre">';
1131 print
'<input type="text" class="flat maxwidth100" name="search_description" value="'.dol_escape_htmltag($search_description).
'">';
1134 if (!empty($arrayfields[
'b.dateo'][
'checked'])) {
1135 print
'<td class="liste_titre"> </td>';
1137 if (!empty($arrayfields[
'b.datev'][
'checked'])) {
1138 print
'<td class="liste_titre"> </td>';
1141 if (!empty($arrayfields[
'type'][
'checked'])) {
1142 print
'<td class="liste_titre">';
1143 print $form->select_types_paiements(empty($search_type) ?
'' : $search_type,
'search_type',
'', 2, 1, 1, 0, 1,
'maxwidth100', 1);
1147 if (!empty($arrayfields[
'b.num_chq'][
'checked'])) {
1148 print
'<td class="liste_titre center"><input type="text" class="flat" name="req_nb" value="'.dol_escape_htmltag($search_req_nb).
'" size="2"></td>';
1151 if (!empty($arrayfields[
'b.fk_bordereau'][
'checked'])) {
1152 print
'<td class="liste_titre center"><input type="text" class="flat width50" name="search_fk_bordereau" value="'.dol_escape_htmltag($search_fk_bordereau).
'"></td>';
1155 if (!empty($arrayfields[
'bu.label'][
'checked'])) {
1156 print
'<td class="liste_titre"><input type="text" class="flat maxwidth75" name="search_thirdparty" value="'.dol_escape_htmltag($search_thirdparty_user).
'"></td>';
1159 if (!empty($arrayfields[
'ba.ref'][
'checked'])) {
1160 print
'<td class="liste_titre">';
1161 $form->select_comptes($search_account,
'search_account', 0,
'', 1, ($id > 0 || !empty($ref) ?
' disabled="disabled"' :
''), 0,
'maxwidth100');
1165 if (!empty($arrayfields[
'b.debit'][
'checked'])) {
1166 print
'<td class="liste_titre right">';
1167 print
'<input type="text" class="flat width50" name="search_debit" value="'.dol_escape_htmltag($search_debit).
'">';
1171 if (!empty($arrayfields[
'b.credit'][
'checked'])) {
1172 print
'<td class="liste_titre right">';
1173 print
'<input type="text" class="flat width50" name="search_credit" value="'.dol_escape_htmltag($search_credit).
'">';
1177 if (!empty($arrayfields[
'balancebefore'][
'checked'])) {
1178 print
'<td class="liste_titre right">';
1179 $htmltext = $langs->trans(
"BalanceVisibilityDependsOnSortAndFilters", $langs->transnoentitiesnoconv(
"DateValue"));
1180 print $form->textwithpicto(
'', $htmltext, 1);
1184 if (!empty($arrayfields[
'balance'][
'checked'])) {
1185 print
'<td class="liste_titre right">';
1186 $htmltext = $langs->trans(
"BalanceVisibilityDependsOnSortAndFilters", $langs->transnoentitiesnoconv(
"DateValue"));
1187 print $form->textwithpicto(
'', $htmltext, 1);
1191 if (!empty($arrayfields[
'b.num_releve'][
'checked'])) {
1193 print
'<td class="liste_titre center"><input type="text" class="flat width50" name="search_num_releve" value="'.dol_escape_htmltag($search_num_releve).
'"></td>';
1196 if (!empty($arrayfields[
'b.conciliated'][
'checked'])) {
1197 print
'<td class="liste_titre center parentonrightofpage">';
1198 print $form->selectyesno(
'search_conciliated', $search_conciliated, 1,
false, 1, 1,
'search_status onrightofpage width75');
1202 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
1204 print
'<td class="nowraponall center"></td>';
1208 print
'<td class="liste_titre valignmiddle center">';
1211 $searchpicto = $form->showFilterButtons();
1221 print
'<tr class="liste_titre">';
1224 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
1227 if (!empty($arrayfields[
'b.rowid'][
'checked'])) {
1228 print_liste_field_titre($arrayfields[
'b.rowid'][
'label'], $_SERVER[
'PHP_SELF'],
'b.rowid',
'', $param,
'', $sortfield, $sortorder);
1231 if (!empty($arrayfields[
'b.label'][
'checked'])) {
1232 print_liste_field_titre($arrayfields[
'b.label'][
'label'], $_SERVER[
'PHP_SELF'],
'b.label',
'', $param,
'', $sortfield, $sortorder);
1235 if (!empty($arrayfields[
'b.dateo'][
'checked'])) {
1236 print_liste_field_titre($arrayfields[
'b.dateo'][
'label'], $_SERVER[
'PHP_SELF'],
'b.dateo',
'', $param,
'', $sortfield, $sortorder,
"center ");
1239 if (!empty($arrayfields[
'b.datev'][
'checked'])) {
1240 print_liste_field_titre($arrayfields[
'b.datev'][
'label'], $_SERVER[
'PHP_SELF'],
'b.datev,b.dateo,b.rowid',
'', $param,
'', $sortfield, $sortorder,
'center ');
1243 if (!empty($arrayfields[
'type'][
'checked'])) {
1244 print_liste_field_titre($arrayfields[
'type'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder);
1247 if (!empty($arrayfields[
'b.num_chq'][
'checked'])) {
1248 print_liste_field_titre($arrayfields[
'b.num_chq'][
'label'], $_SERVER[
'PHP_SELF'],
'b.num_chq',
'', $param,
'', $sortfield, $sortorder,
"center ");
1251 if (!empty($arrayfields[
'b.fk_bordereau'][
'checked'])) {
1252 print_liste_field_titre($arrayfields[
'b.fk_bordereau'][
'label'], $_SERVER[
'PHP_SELF'],
'b.fk_bordereau',
'', $param,
'', $sortfield, $sortorder,
"center ");
1255 if (!empty($arrayfields[
'bu.label'][
'checked'])) {
1256 print_liste_field_titre($arrayfields[
'bu.label'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder);
1259 if (!empty($arrayfields[
'ba.ref'][
'checked'])) {
1260 print_liste_field_titre($arrayfields[
'ba.ref'][
'label'], $_SERVER[
'PHP_SELF'],
'ba.ref',
'', $param,
'', $sortfield, $sortorder);
1263 if (!empty($arrayfields[
'b.debit'][
'checked'])) {
1264 print_liste_field_titre($arrayfields[
'b.debit'][
'label'], $_SERVER[
'PHP_SELF'],
'b.amount',
'', $param,
'', $sortfield, $sortorder,
"right ");
1267 if (!empty($arrayfields[
'b.credit'][
'checked'])) {
1268 print_liste_field_titre($arrayfields[
'b.credit'][
'label'], $_SERVER[
'PHP_SELF'],
'b.amount',
'', $param,
'', $sortfield, $sortorder,
"right ");
1271 if (!empty($arrayfields[
'balancebefore'][
'checked'])) {
1272 print_liste_field_titre($arrayfields[
'balancebefore'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
"right ");
1275 if (!empty($arrayfields[
'balance'][
'checked'])) {
1276 print_liste_field_titre($arrayfields[
'balance'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
"right ");
1279 if (!empty($arrayfields[
'b.num_releve'][
'checked'])) {
1281 print_liste_field_titre($arrayfields[
'b.num_releve'][
'label'], $_SERVER[
'PHP_SELF'],
'b.num_releve',
'', $param,
'', $sortfield, $sortorder,
"center ");
1284 if (!empty($arrayfields[
'b.conciliated'][
'checked'])) {
1285 print_liste_field_titre($arrayfields[
'b.conciliated'][
'label'], $_SERVER[
'PHP_SELF'],
'b.rappro',
'', $param,
'', $sortfield, $sortorder,
"center ");
1290 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
1292 $parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder,
'totalarray' => &$totalarray);
1293 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object, $action);
1294 print $hookmanager->resPrint;
1296 print
'<td class="nowraponall center"></td>';
1301 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'maxwidthsearch center ');
1308 $balancecalculated =
false;
1309 $posconciliatecol = 0;
1310 $cachebankaccount = array();
1322 $imaxinloop = ($limit ? min($num, $limit) : $num);
1323 while ($i < $imaxinloop) {
1324 $objp = $db->fetch_object($resql);
1325 $links = $bankaccountstatic->get_url($objp->rowid);
1327 if (!$balancecalculated && (!empty($arrayfields[
'balancebefore'][
'checked']) || !empty($arrayfields[
'balance'][
'checked'])) && ($mode_balance_ok || $search_conciliated ===
'0')) {
1328 if (!$search_account) {
1329 dol_print_error(
null,
'account is not defined but $mode_balance_ok is true');
1336 $sqlforbalance =
'SELECT SUM(b.amount) as previoustotal';
1337 $sqlforbalance .=
" FROM ";
1338 $sqlforbalance .=
" ".MAIN_DB_PREFIX.
"bank_account as ba,";
1339 $sqlforbalance .=
" ".MAIN_DB_PREFIX.
"bank as b";
1340 $sqlforbalance .=
" WHERE b.fk_account = ba.rowid";
1341 $sqlforbalance .=
" AND ba.entity IN (".getEntity(
'bank_account').
")";
1342 $sqlforbalance .=
" AND b.fk_account = ".((int) $search_account);
1344 $sqlforbalance .=
" AND (b.datev < '".$db->idate($db->jdate($objp->dv)).
"' OR (b.datev = '".$db->idate($db->jdate($objp->dv)).
"' AND (b.dateo < '".$db->idate($db->jdate($objp->do)).
"' OR (b.dateo = '".$db->idate($db->jdate($objp->do)).
"' AND b.rowid < ".$objp->rowid.
"))))";
1345 $resqlforbalance = $db->query($sqlforbalance);
1348 if ($resqlforbalance) {
1349 $objforbalance = $db->fetch_object($resqlforbalance);
1350 if ($objforbalance) {
1352 if ($sortfield ==
'b.datev,b.dateo,b.rowid' && ($sortorder ==
'desc' || $sortorder ==
'desc,desc' || $sortorder ==
'desc,desc,desc')) {
1353 $balancebefore = $objforbalance->previoustotal + ($sign * $objp->amount);
1356 $balance = $objforbalance->previoustotal;
1363 $balancecalculated =
true;
1366 if ($user->hasRight(
'banque',
'consolidate') && ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile')) {
1367 $tmpnbfieldbeforebalance = 0;
1368 $tmpnbfieldafterbalance = 0;
1369 $balancefieldfound = 0;
1370 foreach ($arrayfields as $key => $val) {
1371 if ($key ==
'balancebefore' || $key ==
'balance') {
1372 $balancefieldfound++;
1375 if (!empty($arrayfields[$key][
'checked'])) {
1376 if (!$balancefieldfound) {
1377 $tmpnbfieldbeforebalance++;
1379 $tmpnbfieldafterbalance++;
1384 $element = $extrafieldsobjectkey;
1385 if (!empty($extrafields->attributes[$element][
'label']) && is_array($extrafields->attributes[$element][
'label']) && count($extrafields->attributes[$element][
'label'])) {
1386 foreach ($extrafields->attributes[$element][
'label'] as $key => $val) {
1387 if (!empty($arrayfields[
"ef.".$key][
'checked'])) {
1388 if (!empty($arrayfields[$key][
'checked'])) {
1389 if (!$balancefieldfound) {
1390 $tmpnbfieldbeforebalance++;
1392 $tmpnbfieldafterbalance++;
1399 print
'<tr class="oddeven trforbreak">';
1404 if ($tmpnbfieldbeforebalance) {
1405 print
'<td colspan="'.$tmpnbfieldbeforebalance.
'">';
1410 if (!empty($arrayfields[
'balancebefore'][
'checked'])) {
1411 print
'<td class="right">';
1412 if ($search_conciliated !==
'0') {
1413 if ($sortfield ==
'b.datev,b.dateo,b.rowid' && ($sortorder ==
'desc' || $sortorder ==
'desc,desc' || $sortorder ==
'desc,desc,desc')) {
1421 if (!empty($arrayfields[
'balance'][
'checked'])) {
1422 print
'<td class="right">';
1423 if ($search_conciliated !==
'0') {
1424 if ($sortfield ==
'b.datev,b.dateo,b.rowid' && ($sortorder ==
'desc' || $sortorder ==
'desc,desc' || $sortorder ==
'desc,desc,desc')) {
1433 if (!empty($arrayfields[
'b.num_releve'][
'checked'])) {
1438 print
'<td colspan="'.($tmpnbfieldafterbalance).
'">';
1451 if ($sortfield ==
'b.datev,b.dateo,b.rowid' && ($sortorder ==
'desc' || $sortorder ==
'desc,desc' || $sortorder ==
'desc,desc,desc')) {
1452 $balance =
price2num($balancebefore,
'MT');
1453 $balancebefore =
price2num($balancebefore - ($sign * $objp->amount),
'MT');
1455 $balancebefore =
price2num($balance,
'MT');
1456 $balance =
price2num($balance + ($sign * $objp->amount),
'MT');
1459 if (empty($cachebankaccount[$objp->bankid])) {
1460 $bankaccounttmp =
new Account($db);
1461 $bankaccounttmp->fetch($objp->bankid);
1462 $cachebankaccount[$objp->bankid] = $bankaccounttmp;
1463 $bankaccount = $bankaccounttmp;
1465 $bankaccount = $cachebankaccount[$objp->bankid];
1469 $backgroundcolor =
"class='oddeven'";
1471 if ($objp->amount < 0) {
1473 $backgroundcolor =
'style="background: '.$color.
';"';
1476 $backgroundcolor =
'style="background: '.$color.
';"';
1480 $banklinestatic->id = $objp->rowid;
1481 $banklinestatic->ref = (string) $objp->rowid;
1482 $banklinestatic->amount = $objp->amount;
1484 print
'<tr class="oddeven" '.$backgroundcolor.
'>';
1488 print
'<td class="center">';
1489 if (!$objp->conciliated && ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile')) {
1490 print
'<input class="flat checkforselect" name="rowid['.$objp->rowid.
']" type="checkbox" name="toselect[]" value="'.$objp->rowid.
'" size="1"'.(!empty($tmparray[$objp->rowid]) ?
' checked' :
'').
'>';
1499 if (!empty($arrayfields[
'b.rowid'][
'checked'])) {
1500 print
'<td class="nowrap left">';
1501 print $banklinestatic->getNomUrl(1);
1509 if (!empty($arrayfields[
'b.label'][
'checked'])) {
1513 preg_match(
'/\((.+)\)/i', $objp->label, $reg);
1514 if (!empty($reg[1]) && $langs->trans($reg[1]) != $reg[1]) {
1516 $labeltoshow = $langs->trans($reg[1]);
1518 if ($objp->label ==
'(payment_salary)') {
1519 $labeltoshow = $langs->trans(
"SalaryPayment");
1522 $titletoshow = $objp->label;
1527 print
'<td class="tdoverflowmax250"'.($titletoshow ?
' title="'.dol_escape_htmltag($titletoshow).
'"' :
'').
'>';
1530 $cachebankaccount = array();
1531 foreach ($links as $key => $val) {
1532 print
'<!-- '.$links[$key][
'type'].
' -->';
1533 if ($links[$key][
'type'] ==
'withdraw') {
1534 $banktransferstatic->id = $links[$key][
'url_id'];
1535 $banktransferstatic->ref = $links[$key][
'label'];
1536 print $banktransferstatic->getNomUrl(0).($labeltoshow ?
' ' :
'');
1537 } elseif ($links[$key][
'type'] ==
'payment') {
1538 $paymentstatic->id = $links[$key][
'url_id'];
1539 $paymentstatic->ref = (string) $links[$key][
'url_id'];
1540 $paymentstatic->date = $db->jdate($objp->do);
1541 print $paymentstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1542 } elseif ($links[$key][
'type'] ==
'payment_supplier') {
1543 $paymentsupplierstatic->id = $links[$key][
'url_id'];
1544 $paymentsupplierstatic->ref = (string) $links[$key][
'url_id'];
1545 print $paymentsupplierstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1546 } elseif ($links[$key][
'type'] ==
'payment_sc') {
1547 $paymentscstatic->id = $links[$key][
'url_id'];
1548 $paymentscstatic->ref = (string) $links[$key][
'url_id'];
1549 $paymentscstatic->label = $links[$key][
'label'];
1550 print $paymentscstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1551 } elseif ($links[$key][
'type'] ==
'payment_vat') {
1552 $paymentvatstatic->id = $links[$key][
'url_id'];
1553 $paymentvatstatic->ref = (string) $links[$key][
'url_id'];
1554 print $paymentvatstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1555 } elseif ($links[$key][
'type'] ==
'payment_salary') {
1556 $paymentsalstatic->id = $links[$key][
'url_id'];
1557 $paymentsalstatic->ref = (string) $links[$key][
'url_id'];
1558 $paymentsalstatic->label = $links[$key][
'label'];
1559 print $paymentsalstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1560 } elseif ($links[$key][
'type'] ==
'payment_loan') {
1561 print
'<a href="'.DOL_URL_ROOT.
'/loan/payment/card.php?id='.$links[$key][
'url_id'].
'">';
1562 print
' '.img_object($langs->trans(
'ShowPayment'),
'payment').
' ';
1563 print
'</a>'.($labeltoshow ?
' ' :
'');
1564 } elseif ($links[$key][
'type'] ==
'payment_donation') {
1565 $paymentdonationstatic->id = $links[$key][
'url_id'];
1566 $paymentdonationstatic->ref = (string) $links[$key][
'url_id'];
1567 print $paymentdonationstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1568 } elseif ($links[$key][
'type'] ==
'payment_expensereport') {
1569 $paymentexpensereportstatic->id = $links[$key][
'url_id'];
1570 $paymentexpensereportstatic->ref = (string) $links[$key][
'url_id'];
1571 print $paymentexpensereportstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1572 } elseif ($links[$key][
'type'] ==
'payment_various') {
1573 $paymentvariousstatic->id = $links[$key][
'url_id'];
1574 $paymentvariousstatic->ref = (string) $links[$key][
'url_id'];
1575 print $paymentvariousstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1576 } elseif ($links[$key][
'type'] ==
'banktransfert') {
1578 if ($objp->amount > 0) {
1579 $banklinestatic->fetch($links[$key][
'url_id']);
1580 $bankstatic->id = $banklinestatic->fk_account;
1581 $bankstatic->label = $banklinestatic->bank_account_ref;
1582 print $langs->trans(
"TransferFrom").
' ';
1583 print $bankstatic->getNomUrl(1,
'transactions');
1584 print
' '.$langs->trans(
"toward").
' ';
1585 $bankstatic->id = $objp->bankid;
1586 $bankstatic->label = $objp->bankref;
1587 print $bankstatic->getNomUrl(1,
'');
1588 print($labeltoshow ?
' - ' :
'');
1590 $bankstatic->id = $objp->bankid;
1591 $bankstatic->label = $objp->bankref;
1592 print $langs->trans(
"TransferFrom").
' ';
1593 print $bankstatic->getNomUrl(1,
'');
1594 print
' '.$langs->trans(
"toward").
' ';
1595 $banklinestatic->fetch($links[$key][
'url_id']);
1596 $bankstatic->id = $banklinestatic->fk_account;
1597 $bankstatic->label = $banklinestatic->bank_account_ref;
1598 print $bankstatic->getNomUrl(1,
'transactions');
1599 print($labeltoshow ?
' - ' :
'');
1602 } elseif ($links[$key][
'type'] ==
'company') {
1603 } elseif ($links[$key][
'type'] ==
'user') {
1604 } elseif ($links[$key][
'type'] ==
'member') {
1605 } elseif ($links[$key][
'type'] ==
'sc') {
1606 } elseif ($links[$key][
'type'] ==
'vat') {
1607 } elseif ($links[$key][
'type'] ==
'salary') {
1611 print
'<a href="'.$links[$key][
'url'].$links[$key][
'url_id'].
'">';
1612 if (preg_match(
'/^\((.*)\)$/i', $links[$key][
'label'], $reg)) {
1614 if ($reg[1] ==
'paiement') {
1615 $reg[1] =
'Payment';
1617 print $langs->trans($reg[1]);
1619 print $links[$key][
'label'];
1621 print
'</a>'.($labeltoshow ?
' - ' :
'');
1634 if (!empty($arrayfields[
'b.dateo'][
'checked'])) {
1635 print
'<td class="nowraponall center">';
1636 print
'<span class="spanforajaxedit" id="dateoperation_'.$objp->rowid.
'" title="'.
dol_print_date($db->jdate($objp->do),
"day").
'">';
1640 print
'<span class="inline-block">';
1641 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=doprev&account='.$objp->bankid.
'&rowid='.$objp->rowid.
'">';
1643 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=donext&account='.$objp->bankid.
'&rowid='.$objp->rowid.
'">';
1653 if (!empty($arrayfields[
'b.datev'][
'checked'])) {
1654 print
'<td class="nowraponall center">';
1655 print
'<span class="spanforajaxedit" id="datevalue_'.$objp->rowid.
'" title="'.
dol_print_date($db->jdate($objp->dv),
"day").
'">';
1659 print
'<span class="inline-block">';
1660 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=dvprev&account='.$objp->bankid.
'&rowid='.$objp->rowid.
'">';
1662 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=dvnext&account='.$objp->bankid.
'&rowid='.$objp->rowid.
'">';
1672 if (!empty($arrayfields[
'type'][
'checked'])) {
1673 $labeltype = ($langs->transnoentitiesnoconv(
"PaymentTypeShort".$objp->fk_type) !=
"PaymentTypeShort".$objp->fk_type) ? $langs->transnoentitiesnoconv(
"PaymentTypeShort".$objp->fk_type) : $langs->getLabelFromKey($db, $objp->fk_type,
'c_paiement',
'code',
'libelle',
'', 1);
1674 if (empty($arrayfields[
'b.num_chq'][
'checked'])) {
1675 $labeltype .= ($objp->num_chq ?
' <span class="opacitymedium">- '.$objp->num_chq.
'</span>' :
'');
1677 print
'<td class="tdoverflowmax100" title="'.dolPrintLabel($labeltype).
'">';
1678 if ($labeltype ==
'SOLD') {
1690 if (!empty($arrayfields[
'b.num_chq'][
'checked'])) {
1691 print
'<td class="tdoverflowmax100 center" title="'.($objp->num_chq ?
dolPrintLabel($objp->num_chq) :
"").
'">'.($objp->num_chq ?
dolPrintLabel($objp->num_chq) :
"").
"</td>\n";
1698 if (!empty($arrayfields[
'b.fk_bordereau'][
'checked'])) {
1699 print
'<td class="nowraponall center">';
1700 if ($objp->fk_bordereau > 0) {
1701 $bordereaustatic->fetch($objp->fk_bordereau);
1702 print $bordereaustatic->getNomUrl();
1711 if (!empty($arrayfields[
'bu.label'][
'checked'])) {
1712 print
'<td class="tdoverflowmax125">';
1714 $companylinked_id = 0;
1720 foreach ($links as $key => $value) {
1721 if ($links[$key][
'type'] ==
'payment_sc') {
1722 $type_link =
'payment_sc';
1724 if ($links[$key][
'type'] ==
'payment_salary') {
1725 $type_link =
'payment_salary';
1727 if ($links[$key][
'type'] ==
'payment_donation') {
1728 $paymentdonationstatic->fetch($links[$key][
'url_id']);
1729 $donstatic->fetch($paymentdonationstatic->fk_donation);
1730 $companylinked_id = $donstatic->socid;
1731 if (!$companylinked_id) {
1732 $thirdstr = ($donstatic->societe !==
"" ?
1733 $donstatic->societe :
1734 $donstatic->firstname.
" ".$donstatic->lastname);
1737 if ($links[$key][
'type'] ==
'payment_expensereport') {
1738 $type_link =
'payment_expensereport';
1741 if ($links[$key][
'type'] ==
'company') {
1742 $companylinked_id = $links[$key][
'url_id'];
1744 if ($links[$key][
'type'] ==
'user') {
1745 $userlinked_id = $links[$key][
'url_id'];
1750 if ($companylinked_id) {
1752 $companystatic->fetch($companylinked_id);
1753 print $companystatic->getNomUrl(1);
1754 } elseif ($userlinked_id &&
1755 (($type_link ==
'payment_salary' && $user->hasRight(
'salaries',
'read'))
1756 || ($type_link ==
'payment_sc' && $user->hasRight(
'tax',
'charges',
'lire'))
1757 || ($type_link ==
'payment_expensereport' && $user->hasRight(
'expensereport',
'lire')))) {
1759 if (!empty($conf->cache[
'user'][$userlinked_id])) {
1760 $tmpuser = $conf->cache[
'user'][$userlinked_id];
1762 $tmpuser =
new User($db);
1763 $tmpuser->fetch($userlinked_id);
1764 $conf->cache[
'user'][$userlinked_id] = $tmpuser;
1766 print $tmpuser->getNomUrl(-1);
1767 } elseif ($thirdstr) {
1780 if (!empty($arrayfields[
'ba.ref'][
'checked'])) {
1781 print
'<td class="nowrap">';
1782 print $bankaccount->getNomUrl(1);
1790 if (!empty($arrayfields[
'b.debit'][
'checked'])) {
1791 print
'<td class="nowraponall right"><span class="amount">';
1792 if ($objp->amount < 0) {
1793 print
price($objp->amount * -1);
1796 print
"</span></td>\n";
1806 if (!empty($arrayfields[
'b.credit'][
'checked'])) {
1807 print
'<td class="nowraponall right"><span class="amount">';
1808 if ($objp->amount > 0) {
1809 print
price($objp->amount);
1812 print
"</span></td>\n";
1822 if (!empty($arrayfields[
'balancebefore'][
'checked'])) {
1823 if ($mode_balance_ok) {
1824 if ($balancebefore >= 0) {
1825 print
'<td class="nowrap right"> '.price($balancebefore).
'</td>';
1827 print
'<td class="error nowrap right"> '.price($balancebefore).
'</td>';
1830 print
'<td class="right">-</td>';
1838 if (!empty($arrayfields[
'balance'][
'checked'])) {
1839 if ($mode_balance_ok) {
1840 if ($balance >= 0) {
1841 print
'<td class="nowrap right"> '.price($balance).
'</td>';
1843 print
'<td class="error nowrap right"> '.price($balance).
'</td>';
1846 print
'<td class="right">-</td>';
1853 if (!empty($arrayfields[
'b.num_releve'][
'checked'])) {
1854 print
'<td class="nowraponall center">';
1856 if ($bankaccount->canBeConciliated() > 0) {
1857 if ($objp->num_releve) {
1858 print
'<a href="releve.php?num='.urlencode($objp->num_releve).
'&account='.urlencode($objp->bankid).
'&save_lastsearch_values=1">'.
dol_escape_htmltag($objp->num_releve).
'</a>';
1869 if (!empty($arrayfields[
'b.conciliated'][
'checked'])) {
1870 print
'<td class="nowraponall center">';
1871 print
yn($objp->conciliated);
1878 if (!empty($arrayfields[
'b.fk_bordereau'][
'checked'])) {
1879 print
'<td class="nowraponall center">';
1880 if ($objp->fk_bordereau > 0) {
1881 $bordereaustatic->fetch($objp->fk_bordereau);
1882 print $bordereaustatic->getNomUrl();
1892 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
1894 $parameters = array(
'arrayfields' => $arrayfields,
'object' => $object,
'obj' => $objp,
'i' => $i,
'totalarray' => &$totalarray);
1895 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters, $object, $action);
1896 print $hookmanager->resPrint;
1899 print
'<td class="nowraponall center">';
1901 if ($objp->conciliated && $bankaccount->canBeConciliated() > 0) {
1902 print
'<a class="editfielda" href="'.DOL_URL_ROOT.
'/compta/bank/line.php?save_lastsearch_values=1&rowid='.$objp->rowid.($object->id > 0 ?
'&account='.$object->id :
'').
'&page='.$page.
'">';
1906 if ($user->hasRight(
'banque',
'modifier') || $user->hasRight(
'banque',
'consolidate')) {
1907 print
'<a class="editfielda" href="'.DOL_URL_ROOT.
'/compta/bank/line.php?save_lastsearch_values=1&rowid='.$objp->rowid.($object->id > 0 ?
'&account='.$object->id :
'').
'&page='.$page.
'">';
1911 print
'<a class="editfielda" href="'.DOL_URL_ROOT.
'/compta/bank/line.php?save_lastsearch_values=1&rowid='.$objp->rowid.($object->id > 0 ?
'&account='.$object->id :
'').
'&page='.$page.
'">';
1915 if ($bankaccount->canBeConciliated() > 0 && empty($objp->conciliated)) {
1916 if ($db->jdate($objp->dv) < ($now - $conf->bank->rappro->warning_delay)) {
1917 print
' '.img_warning($langs->trans(
"ReconciliationLate"));
1920 if ($user->hasRight(
'banque',
'modifier')) {
1923 $parambis = preg_replace(
'/&?action=(reconcile|confirm_deleteonreconcile)(&|$)/',
'\2', $param);
1924 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?action='.($action ==
'reconcile' ?
'confirm_deleteonreconcile&confirm=yes' :
'delete').
'&token='.
newToken().
'&rowid='.$objp->rowid.
'&page='.$page.$parambis.($sortfield ?
'&sortfield='.$sortfield :
'').($sortorder ?
'&sortorder='.$sortorder :
'').
'">';
1925 print
img_delete(
'',
'class="marginleftonly"');
1936 print
'<td class="center">';
1937 if (!$objp->conciliated && ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile')) {
1938 print
'<input class="flat checkforselect" name="rowid['.$objp->rowid.
']" type="checkbox" value="'.$objp->rowid.
'" size="1"'.(!empty($tmparray[$objp->rowid]) ?
' checked' :
'').
'>';
1952 if (isset($totalarray[
'totaldebfield']) || isset($totalarray[
'totalcredfield'])) {
1953 print
'<tr class="liste_total">';
1955 while ($i < $totalarray[
'nbfield']) {
1958 if ($num < $limit && empty($offset)) {
1959 print
'<td class="left">'.$langs->trans(
"Total").
'</td>';
1961 print
'<td class="left tdoverflowmax50" title="'.$langs->trans(
"Totalforthispage").
'">'.$langs->trans(
"Totalforthispage").
'</td>';
1963 } elseif ($totalarray[
'totaldebfield'] == $i) {
1964 print
'<td class="right"><span class="amount">'.price(-1 * $totalarray[
'totaldeb']).
'</span></td>';
1965 } elseif ($totalarray[
'totalcredfield'] == $i) {
1966 print
'<td class="right"><span class="amount">'.price($totalarray[
'totalcred']).
'</span></td>';
1967 } elseif ($i == $posconciliatecol) {
1968 print
'<td class="center">';
1980 foreach ($arrayfields as $key => $val) {
1981 if (!empty($val[
'checked'])) {
1985 print
'<tr><td colspan="'.($colspan + 1).
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
$id
Support class for third parties, contacts, members, users or resources.
if(! $sortfield) if(! $sortorder) $object
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
bank_prepare_head(Account $object)
Prepare array with list of tabs.
Class to manage bank accounts.
Class to manage bank transaction lines.
Class to manage members of a foundation.
Class to manage bank categories.
Class to manage withdrawal receipts.
Class for managing the social charges.
Class to manage donations.
Class to manage payments for supplier invoices.
Class to manage payments of customer invoices.
Class to manage payments of donations.
Class to manage payments of expense report.
Class to manage payments of salaries.
Class to manage payments of social contributions.
Class to manage payments of social contributions.
Class to manage various payments.
Class to manage cheque delivery receipts.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage Dolibarr users.
dol_now($mode='gmt')
Return date for now.
recordNotFound($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Displays an error page when a record is not found.
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_liste_field_titre($name, $file="", $field="", $begin="", $param="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $selectlimitsuffix=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
img_delete($titlealt='default', $other='class="pictodelete"', $morecss='')
Show delete logo.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0, $morecssdiv='')
Show tabs of a record.
dolPrintHTML($s, $allowiframe=0)
Return a string (that can be on several lines) ready to be output on a HTML page.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
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.
currentToken()
Return the value of token currently saved into session with name 'token'.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
natural_search($fields, $value, $mode=0, $nofirstand=0, $sqltoadd='')
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
img_view($titlealt='default', $float=0, $other='class="valignmiddle"')
Show logo view card.
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...
newToken()
Return the value of token currently saved into session with name 'newtoken'.
dolPrintLabel($s, $escapeonlyhtmltags=0)
Return a string label (so on 1 line only and that should not contains any HTML) ready to be output on...
yn($yesno, $format=1, $color=0)
Return yes or no in current language.
getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $disablesortlink=0, $tooltip='', $forcenowrapcolumntitle=0)
Get title line of an array.
dol_substr($string, $start, $length=null, $stringencoding='', $trunconbytes=0)
Make a substring.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false, $decorate=0)
Output date in a string format according to outputlangs (or langs if not defined).
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
img_edit_add($titlealt='default', $other='')
Show logo "+".
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
img_edit_remove($titlealt='default', $other='')
Show logo "-".
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
if(preg_match('/(crypted|dolcrypt):/i', $dolibarr_main_db_pass)||!empty($dolibarr_main_db_encrypted_pass)) $conf db type
'integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter[:Sortfield]]]',...
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.