36require
'../../main.inc.php';
46require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
47require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
48require_once DOL_DOCUMENT_ROOT.
'/core/lib/bank.lib.php';
50require_once DOL_DOCUMENT_ROOT.
'/societe/class/societe.class.php';
51require_once DOL_DOCUMENT_ROOT.
'/user/class/user.class.php';
52require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
53require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/bankcateg.class.php';
54require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
55require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/chargesociales.class.php';
56require_once DOL_DOCUMENT_ROOT.
'/compta/tva/class/paymentvat.class.php';
57require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
58require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/paymentsocialcontribution.class.php';
59require_once DOL_DOCUMENT_ROOT.
'/compta/tva/class/tva.class.php';
60require_once DOL_DOCUMENT_ROOT.
'/salaries/class/paymentsalary.class.php';
61require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/paymentvarious.class.php';
62require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/bonprelevement.class.php';
63require_once DOL_DOCUMENT_ROOT.
'/don/class/don.class.php';
64require_once DOL_DOCUMENT_ROOT.
'/don/class/paymentdonation.class.php';
65require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/paymentexpensereport.class.php';
66require_once DOL_DOCUMENT_ROOT.
'/loan/class/loan.class.php';
67require_once DOL_DOCUMENT_ROOT.
'/fourn/class/paiementfourn.class.php';
68require_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));
151$extrafieldsobjectkey =
'bank';
154$extrafields->fetch_name_optionals_label($extrafieldsobjectkey);
155$search_array_options = $extrafields->getOptionalsFromPost($extrafieldsobjectkey,
'',
'search_');
158 'b.rowid' => array(
'label' => $langs->trans(
"Ref"),
'checked' =>
'1',
'position' => 10),
159 'b.label' => array(
'label' => $langs->trans(
"Description"),
'checked' =>
'1',
'position' => 20),
160 'b.dateo' => array(
'label' => $langs->trans(
"DateOperationShort"),
'checked' =>
'-1',
'position' => 30),
161 'b.datev' => array(
'label' => $langs->trans(
"DateValueShort"),
'checked' =>
'1',
'position' => 40),
162 'type' => array(
'label' => $langs->trans(
"Type"),
'checked' =>
'1',
'position' => 50),
163 'b.num_chq' => array(
'label' => $langs->trans(
"Numero"),
'checked' =>
'0',
'position' => 60),
164 'b.fk_bordereau' => array(
'label' => $langs->trans(
"ChequeNumber"),
'checked' =>
'0',
'position' => 65),
165 'bu.label' => array(
'label' => $langs->trans(
"ThirdParty").
'/'.$langs->trans(
"User"),
'checked' =>
'1',
'position' => 70),
166 'ba.ref' => array(
'label' => $langs->trans(
"BankAccount"),
'checked' => (($id > 0 || !empty($ref)) ?
'0' :
'1'),
'position' => 80),
167 'b.debit' => array(
'label' => $langs->trans(
"Debit"),
'checked' =>
'1',
'position' => 90),
168 'b.credit' => array(
'label' => $langs->trans(
"Credit"),
'checked' =>
'1',
'position' => 100),
169 'balancebefore' => array(
'label' => $langs->trans(
"BalanceBefore"),
'checked' =>
'0',
'position' => 110),
170 'balance' => array(
'label' => $langs->trans(
"Balance"),
'checked' =>
'1',
'position' => 120),
171 'b.num_releve' => array(
'label' => $langs->trans(
"AccountStatement"),
'checked' =>
'1',
'position' => 130),
172 'b.conciliated' => array(
'label' => $langs->trans(
"BankLineReconciled"),
'enabled' => (
string) (int)
$object->rappro,
'checked' => ($action ==
'reconcile' ?
'1' :
'0'),
'position' => 140),
175include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
177$parameters = array(
'arrayfields' => &$arrayfields);
178$reshook = $hookmanager->executeHooks(
'completeArrayFields', $parameters, $object, $action);
184$fieldvalue = (!empty($id) ?
$id : (!empty($ref) ? $ref :
''));
185$fieldtype = (!empty($ref) ?
'ref' :
'rowid');
188 $socid = $user->socid;
190 $result =
restrictedArea($user,
'banque', $fieldvalue,
'bank_account&bank_account',
'',
'', $fieldtype);
193 $socid = $user->socid;
203if (
GETPOST(
'cancel',
'alpha')) {
207if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend') {
211$parameters = array();
212$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
217include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
219if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
220 $search_dt_start =
'';
222 $search_dv_start =
'';
230 $search_description =
'';
231 $search_thirdparty_user =
'';
232 $search_num_releve =
'';
233 $search_conciliated =
'';
234 $search_fk_bordereau =
'';
237 $search_account =
"";
238 if ($id > 0 || !empty($ref)) {
243if (empty($reshook)) {
244 $objectclass =
'Account';
245 $objectlabel =
'BankTransaction';
246 $permissiontoread = $user->hasRight(
'banque',
'lire');
247 $permissiontodelete = $user->hasRight(
'banque',
'modifier');
248 $uploaddir =
$conf->bank->dir_output;
249 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
252$rowids =
GETPOST(
'rowid',
'array:int');
255if ((
GETPOST(
'confirm_savestatement',
'alpha') ||
GETPOST(
'confirm_reconcile',
'alpha'))
256 && (
GETPOST(
"num_releve",
"alpha") || !empty($rowids))
257 && $user->hasRight(
'banque',
'consolidate')
262 $num_releve =
GETPOST(
"num_releve",
"alpha");
267 $rowids =
GETPOST(
'rowid',
'array:int');
269 if (!empty($rowids) && is_array($rowids)) {
270 foreach ($rowids as $row) {
272 $result = $bankline->fetch($row);
273 $bankline->num_releve = $num_releve;
274 $result = $bankline->update_conciliation($user,
GETPOSTINT(
"cat"),
GETPOST(
'confirm_reconcile',
'alpha') ? 1 : 0);
282 if (!$error && count($rowids) > 0) {
283 setEventMessages($langs->trans(
"XNewLinesConciliated", count($rowids)),
null);
287 $langs->load(
"errors");
292 $langs->load(
"errors");
293 setEventMessages($langs->trans(
"ErrorPleaseTypeBankTransactionReportName"),
null,
'errors');
297 $param =
'action=reconcile&contextpage=banktransactionlist&id='.((int)
$object->id).
'&search_account='.((int)
$object->id);
299 $param .=
'&page='.urlencode((
string) ($page));
302 $param .=
'&offset='.urlencode((
string) ($offset));
305 $param .=
'&limit='.((int) $limit);
307 if ($search_conciliated !=
'' && $search_conciliated !=
'-1') {
308 $param .=
'&search_conciliated='.urlencode((
string) ($search_conciliated));
310 if ($search_thirdparty_user) {
311 $param .=
'&search_thirdparty='.urlencode($search_thirdparty_user);
313 if ($search_num_releve) {
314 $param .=
'&search_num_releve='.urlencode($search_num_releve);
316 if ($search_description) {
317 $param .=
'&search_description='.urlencode($search_description);
320 $param .=
'&search_start_dtmonth='.GETPOSTINT(
'search_start_dtmonth').
'&search_start_dtday='.
GETPOSTINT(
'search_start_dtday').
'&search_start_dtyear='.
GETPOSTINT(
'search_start_dtyear');
323 $param .=
'&search_end_dtmonth='.GETPOSTINT(
'search_end_dtmonth').
'&search_end_dtday='.
GETPOSTINT(
'search_end_dtday').
'&search_end_dtyear='.
GETPOSTINT(
'search_end_dtyear');
326 $param .=
'&search_start_dvmonth='.GETPOSTINT(
'search_start_dvmonth').
'&search_start_dvday='.
GETPOSTINT(
'search_start_dvday').
'&search_start_dvyear='.
GETPOSTINT(
'search_start_dvyear');
329 $param .=
'&search_end_dvmonth='.GETPOSTINT(
'search_end_dvmonth').
'&search_end_dvday='.
GETPOSTINT(
'search_end_dvday').
'&search_end_dvyear='.
GETPOSTINT(
'search_end_dvyear');
332 $param .=
'&search_type='.urlencode($search_type);
335 $param .=
'&search_debit='.urlencode($search_debit);
337 if ($search_credit) {
338 $param .=
'&search_credit='.urlencode($search_credit);
340 $param .=
'&sortfield='.urlencode($sortfield).
'&sortorder='.urlencode($sortorder);
341 header(
'Location: '.$_SERVER[
"PHP_SELF"].
'?'.$param);
347if (
GETPOST(
'save') && !$cancel && $user->hasRight(
'banque',
'modifier')) {
356 $operation =
GETPOST(
"operation",
'alpha');
357 $num_chq =
GETPOST(
"num_chq",
'alpha');
358 $label =
GETPOST(
"label",
'alpha');
359 $cat1 =
GETPOST(
"cat1",
'alpha');
361 $bankaccountid =
$id;
367 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Date")),
null,
'errors');
371 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Type")),
null,
'errors');
375 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Label")),
null,
'errors');
379 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Amount")),
null,
'errors');
381 if (!($bankaccountid > 0)) {
383 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"BankAccount")),
null,
'errors');
393 $objecttmp->fetch($bankaccountid);
394 $insertid = $objecttmp->addline((
int) $dateop, $operation, $label, (
float) $amount, $num_chq, ($cat1 > 0 ? $cat1 : 0), $user,
'',
'', $search_accountancy_code);
397 header(
"Location: ".$_SERVER[
'PHP_SELF'].($id ?
"?id=".$id :
''));
407if ($action ==
'confirm_deleteonreconcile' && $confirm ==
'yes' && $user->hasRight(
'banque',
'modifier')) {
409 $result = $accline->fetch(
GETPOSTINT(
"rowid"));
410 $result = $accline->delete($user);
417 $action =
'reconcile';
420if ($action ==
'confirm_delete' && $confirm ==
'yes' && $user->hasRight(
'banque',
'modifier')) {
422 $result = $accline->fetch(
GETPOSTINT(
"rowid"));
423 $result = $accline->delete($user);
467if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
468 $param .=
'&contextpage='.urlencode($contextpage);
470if ($limit > 0 && $limit !=
$conf->liste_limit) {
471 $param .=
'&limit='.((int) $limit);
474 $param .=
'&id='.urlencode((
string) (
$id));
477 $param .=
'&ref='.urlencode($ref);
479if (!empty($search_ref)) {
480 $param .=
'&search_ref='.urlencode($search_ref);
482if (!empty($search_description)) {
483 $param .=
'&search_description='.urlencode($search_description);
485if (!empty($search_type)) {
486 $param .=
'&type='.urlencode($search_type);
488if (!empty($search_thirdparty_user)) {
489 $param .=
'&search_thirdparty='.urlencode($search_thirdparty_user);
491if (!empty($search_debit)) {
492 $param .=
'&search_debit='.urlencode($search_debit);
494if (!empty($search_credit)) {
495 $param .=
'&search_credit='.urlencode($search_credit);
497if ($search_account > 0) {
498 $param .=
'&search_account='.((int) $search_account);
500if (!empty($search_num_releve)) {
501 $param .=
'&search_num_releve='.urlencode($search_num_releve);
503if ($search_conciliated !=
'' && $search_conciliated !=
'-1') {
504 $param .=
'&search_conciliated='.urlencode((
string) ($search_conciliated));
506if ($search_fk_bordereau > 0) {
507 $param .=
'$&search_fk_bordereau='.urlencode((
string) ($search_fk_bordereau));
509if ($search_bid > 0) {
510 $param .=
'&search_bid='.((int) $search_bid);
513 $param .=
'&search_start_dtmonth='.GETPOSTINT(
'search_start_dtmonth').
'&search_start_dtday='.
GETPOSTINT(
'search_start_dtday').
'&search_start_dtyear='.
GETPOSTINT(
'search_start_dtyear');
516 $param .=
'&search_end_dtmonth='.GETPOSTINT(
'search_end_dtmonth').
'&search_end_dtday='.
GETPOSTINT(
'search_end_dtday').
'&search_end_dtyear='.
GETPOSTINT(
'search_end_dtyear');
519 $param .=
'&search_start_dvmonth='.GETPOSTINT(
'search_start_dvmonth').
'&search_start_dvday='.
GETPOSTINT(
'search_start_dvday').
'&search_start_dvyear='.
GETPOSTINT(
'search_start_dvyear');
522 $param .=
'&search_end_dvmonth='.GETPOSTINT(
'search_end_dvmonth').
'&search_end_dvday='.
GETPOSTINT(
'search_end_dvday').
'&search_end_dvyear='.
GETPOSTINT(
'search_end_dvyear');
525 $param .=
'&req_nb='.urlencode($search_req_nb);
528 $param .=
'&thirdparty='.urlencode((
string) (
GETPOSTINT(
"search_thirdparty")));
530if ($optioncss !=
'') {
531 $param .=
'&optioncss='.urlencode($optioncss);
533if ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile') {
534 $param .=
'&action=reconcile';
542include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
546$buttonreconcile =
'';
549if ($id > 0 || !empty($ref)) {
550 $title =
$object->ref.
' - '.$langs->trans(
"Transactions");
552 $title = $langs->trans(
"BankTransactions");
556llxHeader(
'', $title, $help_url,
'', 0, 0, array(), array(), $param);
559if ($id > 0 || !empty($ref)) {
561 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/bankcateg.class.php';
564 $arrayofbankcateg = $bankcateg->fetchAll();
565 foreach ($arrayofbankcateg as $bankcategory) {
566 $options[$bankcategory->id] = $bankcategory->label;
571 $activetab =
'journal';
572 if ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile') {
573 $activetab =
'reconcile';
575 print
dol_get_fiche_head($head, $activetab, $langs->trans(
"FinancialAccount"), 0,
'account');
577 $linkback =
'<a href="'.DOL_URL_ROOT.
'/compta/bank/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
579 dol_banner_tab($object,
'ref', $linkback, 1,
'ref',
'ref', $morehtmlref,
'', 0,
'',
'', 1);
584$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,";
585$sql .=
" b.fk_account, b.fk_type, b.fk_bordereau,";
586$sql .=
" ba.rowid as bankid, ba.ref as bankref";
588if (!empty($extrafields->attributes[$extrafieldsobjectkey][
'label'])) {
589 foreach ($extrafields->attributes[$extrafieldsobjectkey][
'label'] as $key => $val) {
590 $sql .= ($extrafields->attributes[$extrafieldsobjectkey][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
594$parameters = array();
595$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object, $action);
596$sql .= $hookmanager->resPrint;
598if ($search_bid > 0) {
599 $sql .= MAIN_DB_PREFIX.
"category_bankline as l,";
601$sql .=
" ".MAIN_DB_PREFIX.
"bank_account as ba,";
602$sql .=
" ".MAIN_DB_PREFIX.
"bank as b";
603if (!empty($extrafields->attributes[$extrafieldsobjectkey][
'label']) && is_array($extrafields->attributes[$extrafieldsobjectkey][
'label']) && count($extrafields->attributes[$extrafieldsobjectkey][
'label'])) {
604 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.$extrafieldsobjectkey.
"_extrafields as ef on (b.rowid = ef.fk_object)";
608$parameters = array();
609$reshook = $hookmanager->executeHooks(
'printFieldListJoin', $parameters, $object, $action);
610$sql .= $hookmanager->resPrint;
612$sql .=
" WHERE b.fk_account = ba.rowid";
613$sql .=
" AND ba.entity IN (".getEntity(
'bank_account').
")";
614if ($search_account > 0) {
615 $sql .=
" AND b.fk_account = ".((int) $search_account);
619 $sql .=
" AND b.dateo >= '".$db->idate($search_dt_start).
"'";
622 $sql .=
" AND b.dateo <= '".$db->idate($search_dt_end).
"'";
626 $sql .=
" AND b.datev >= '".$db->idate($search_dv_start).
"'";
629 $sql .=
" AND b.datev <= '".$db->idate($search_dv_end).
"'";
637if ($search_num_releve) {
640if ($search_conciliated !=
'' && $search_conciliated !=
'-1') {
641 $sql .=
" AND b.rappro = ".((int) $search_conciliated);
643if ($search_fk_bordereau > 0) {
644 $sql .=
" AND b.fk_bordereau = " . ((int) $search_fk_bordereau);
646if ($search_thirdparty_user) {
647 $sql .=
" AND (b.rowid IN ";
648 $sql .=
" ( SELECT bu.fk_bank FROM ".MAIN_DB_PREFIX.
"bank_url AS bu";
649 $sql .=
" JOIN ".MAIN_DB_PREFIX.
"bank AS b2 ON b2.rowid = bu.fk_bank";
650 $sql .=
" JOIN ".MAIN_DB_PREFIX.
"user AS subUser ON (bu.type = 'user' AND bu.url_id = subUser.rowid)";
651 $sql .=
" WHERE ".
natural_search(array(
"subUser.firstname",
"subUser.lastname"), $search_thirdparty_user, 0, 1).
")";
653 $sql .=
" OR b.rowid IN ";
654 $sql .=
" ( SELECT bu.fk_bank FROM ".MAIN_DB_PREFIX.
"bank_url AS bu";
655 $sql .=
" JOIN ".MAIN_DB_PREFIX.
"bank AS b2 ON b2.rowid = bu.fk_bank";
656 $sql .=
" JOIN ".MAIN_DB_PREFIX.
"societe AS subSoc ON (bu.type = 'company' AND bu.url_id = subSoc.rowid)";
657 $sql .=
" WHERE ".
natural_search(array(
"subSoc.nom"), $search_thirdparty_user, 0, 1);
660if ($search_description) {
661 $search_description_to_use = $search_description;
662 $arrayoffixedlabels = array(
664 'CustomerInvoicePayment',
665 'CustomerInvoicePaymentBack',
666 'SupplierInvoicePayment',
667 'SupplierInvoicePaymentBack',
669 'ExpenseReportPayment',
670 'SocialContributionPayment',
671 'SubscriptionPayment',
674 foreach ($arrayoffixedlabels as $keyforlabel) {
675 $translatedlabel = $langs->transnoentitiesnoconv($keyforlabel);
676 if (preg_match(
'/'.$search_description.
'/i', $translatedlabel)) {
677 $search_description_to_use .=
"|".$keyforlabel;
683if ($search_bid > 0) {
684 $sql .=
" AND b.rowid = l.lineid AND l.fk_categ = ".((int) $search_bid);
686if (!empty($search_type)) {
687 $sql .=
" AND b.fk_type = '".$db->escape($search_type).
"'";
692 $sql .=
' AND b.amount <= 0';
696 $sql .=
' AND b.amount >= 0';
699include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
702$parameters = array();
703$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object, $action);
704$sql .= $hookmanager->resPrint;
706$sql .=
$db->order($sortfield, $sortorder);
708$nbtotalofrecords =
'';
711 $result =
$db->query($sql);
712 $nbtotalofrecords =
$db->num_rows($result);
713 $nbtotalofpages = ceil($nbtotalofrecords / $limit);
716if (($id > 0 || !empty($ref)) && ((
string) $page ==
'')) {
719 $page = ($nbtotalofpages - 1);
720 $offset = $limit * $page;
725if ($page >= $nbtotalofpages) {
727 $page = ($nbtotalofpages - 1);
728 $offset = $limit * $page;
736if (empty($search_account)) {
737 $mode_balance_ok =
false;
740if (!empty($search_ref)) {
741 $mode_balance_ok =
false;
743if (!empty($search_description)) {
744 $mode_balance_ok =
false;
746if (!empty($search_type)) {
747 $mode_balance_ok =
false;
749if (!empty($search_debit)) {
750 $mode_balance_ok =
false;
752if (!empty($search_credit)) {
753 $mode_balance_ok =
false;
755if (!empty($search_thirdparty_user)) {
756 $mode_balance_ok =
false;
758if ($search_conciliated !=
'' && $search_conciliated !=
'-1') {
759 $mode_balance_ok =
false;
761if (!empty($search_num_releve)) {
762 $mode_balance_ok =
false;
764if (!empty($search_fk_bordereau)) {
765 $mode_balance_ok =
false;
768$sql .=
$db->plimit($limit + 1, $offset);
770dol_syslog(
'compta/bank/bankentries_list.php', LOG_DEBUG);
771$resql =
$db->query($sql);
773 $num =
$db->num_rows($resql);
775 $arrayofselected = (!empty($toselect) && is_array($toselect)) ? $toselect : array();
778 $arrayofmassactions = array(
782 if (in_array($massaction, array(
'presend',
'predelete'))) {
783 $arrayofmassactions = array();
785 $massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
788 if ($action ==
'delete') {
789 $text = $langs->trans(
'ConfirmDeleteTransaction');
790 print $form->formconfirm($_SERVER[
'PHP_SELF'].
'?id='.
$object->id.
'&rowid='.
GETPOSTINT(
"rowid"), $langs->trans(
'DeleteTransaction'), $text,
'confirm_delete',
null,
'', 1);
794 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'" name="search_form">'.
"\n";
795 if ($optioncss !=
'') {
796 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
798 print
'<input type="hidden" name="token" value="'.newToken().
'">';
799 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
800 print
'<input type="hidden" name="action" value="'.($action !=
'delete' ? $action :
'search').
'">';
802 print
'<input type="hidden" name="mode" value="'.dol_escape_htmltag($mode).
'">';
804 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
805 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
806 print
'<input type="hidden" name="page" value="'.$page.
'">';
807 print
'<input type="hidden" name="id" value="'.$id.
'">';
808 print
'<input type="hidden" name="ref" value="'.$ref.
'">';
810 print
'<input type="hidden" name="bid" value="'.GETPOSTINT(
"bid").
'">';
814 if ($user->hasRight(
'banque',
'modifier') && $action ==
'addline' &&
getDolGlobalString(
'BANK_USE_OLD_VARIOUS_PAYMENT')) {
817 print
'<table class="noborder centpercent">';
819 print
'<tr class="liste_titre">';
820 print
'<td>'.$langs->trans(
"Description").
'</td>';
821 print
'<td>'.$langs->trans(
"Date").
'</td>';
822 print
'<td> </td>';
823 print
'<td>'.$langs->trans(
"Type").
'</td>';
824 print
'<td>'.$langs->trans(
"Numero").
'</td>';
825 print
'<td class=right>'.$langs->trans(
"BankAccount").
'</td>';
826 print
'<td class=right>'.$langs->trans(
"Debit").
'</td>';
827 print
'<td class=right>'.$langs->trans(
"Credit").
'</td>';
834 print
'<td class="center"> </td>';
839 print
'<input name="label" class="flat minwidth200" type="text" value="'.GETPOST(
"label",
"alpha").
'">';
840 if (is_array($options) && count($options)) {
841 print
'<br>'.$langs->trans(
"Rubrique").
': ';
845 print
'<td class="nowrap">';
846 print $form->selectDate(empty($dateop) ? -1 : $dateop,
'op', 0, 0, 0,
'transaction');
848 print
'<td> </td>';
849 print
'<td class="nowrap">';
850 print $form->select_types_paiements((
GETPOST(
'operation') ?
GETPOST(
'operation') : (
$object->
type ==
Account::TYPE_CASH ?
'LIQ' :
'')),
'operation',
'1,2', 2, 1, 0, 0, 1,
'', 1);
853 print
'<input name="num_chq" class="flat" type="text" size="4" value="'.GETPOST(
"num_chq",
"alpha").
'">';
857 print
'<td class=right>';
858 print $form->select_comptes(
GETPOSTINT(
'add_account') ?
GETPOSTINT(
'add_account') : $search_account,
'add_account', 0,
'', 1, (
$id > 0 || !empty($ref) ?
' disabled="disabled"' :
''), 0,
'', 1);
861 print
'<td class="right"><input name="adddebit" class="flat" type="text" size="4" value="'.GETPOST(
"adddebit",
"alpha").
'"></td>';
862 print
'<td class="right"><input name="addcredit" class="flat" type="text" size="4" value="'.GETPOST(
"addcredit",
"alpha").
'"></td>';
869 print
'<td class="center">';
870 print
'<input type="submit" name="save" class="button buttongen marginbottomonly button-add" value="'.$langs->trans(
"Add").
'"><br>';
871 print
'<input type="submit" name="cancel" class="button buttongen marginbottomonly button-cancel" value="'.$langs->trans(
"Cancel").
'">';
879 $urlajax = DOL_URL_ROOT.
'/core/ajax/bankconciliate.php?format=dayreduceformat&token='.
currentToken();
881 <script type="text/javascript">
883 $("a.ajaxforbankoperationchange").each(function(){
884 var current = $(this);
885 current.click(function()
887 var url = "'.$urlajax.
'&"+current.attr("href").split("?")[1];
888 console.log("We click on ajaxforbankoperationchange url="+url);
889 $.get(url, function(data)
892 current.parent().parent().find(".spanforajaxedit").replaceWith(data);
907 if ($action !=
'addline') {
909 if (
$object->status == $object::STATUS_CLOSED) {
910 $newcardbutton =
dolGetButtonTitle($langs->trans(
'AddBankRecord'),
'Bank account is closed',
'fa fa-plus-circle', $_SERVER[
"PHP_SELF"].
'?action=addline&token='.
newToken().
'&page='.$page.$param,
'', -2);
913 $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->hasRight(
'banque',
'modifier'));
915 $newcardbutton =
dolGetButtonTitle($langs->trans(
'AddBankRecord'),
'',
'fa fa-plus-circle', $_SERVER[
"PHP_SELF"].
'?action=addline&token='.
newToken().
'&page='.$page.$param,
'', $user->hasRight(
'banque',
'modifier'));
919 $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);
925 if ($action !=
'addline' && $action !=
'reconcile' && $action !=
'confirm_deleteonreconcile') {
926 $morehtml .= $buttonreconcile;
929 $morehtmlright =
'<!-- Add New button -->'.$newcardbutton;
931 $picto =
'bank_account';
932 if ($id > 0 || !empty($ref)) {
937 print_barre_liste($langs->trans(
"BankTransactions"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton.$morehtml, $num, $nbtotalofrecords, $picto, 0, $morehtmlright,
'', $limit, 0, 0, 1);
940 if ($user->hasRight(
'banque',
'consolidate') && ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile')) {
943 $listoflastreceipts =
'';
944 $sql =
"SELECT DISTINCT num_releve FROM ".MAIN_DB_PREFIX.
"bank";
945 $sql .=
" WHERE fk_account = ".((int)
$object->id).
" AND num_releve IS NOT NULL";
946 $sql .=
$db->order(
"num_releve",
"DESC");
947 $sql .=
$db->plimit($nbmax + 1);
949 $last_receipts = array();
954 $resqlr =
$db->query($sql);
957 $numr =
$db->num_rows($resqlr);
958 while (($i < $numr) && ($i < $nbmax)) {
959 $objr =
$db->fetch_object($resqlr);
961 $last_receipts[] = $objr->num_releve;
963 $last_releve = $objr->num_releve;
971 print
'<!-- form with reconciliation input -->'.
"\n";
972 print
'<div class="valignmiddle inline-block" style="padding-right: 20px;">';
974 print
'<strong>'.$langs->trans(
"InputReceiptNumber").
'</strong>: ';
975 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') :
'').
'">';
977 $texttoshow = $langs->trans(
"InputReceiptNumber").
': ';
978 $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);
979 $mm =
dol_substr($langs->transnoentitiesnoconv(
"Month"), 0, 1).substr($langs->transnoentitiesnoconv(
"Month"), 0, 1);
980 $dd =
dol_substr($langs->transnoentitiesnoconv(
"Day"), 0, 1).substr($langs->transnoentitiesnoconv(
"Day"), 0, 1);
981 $placeholder = $yyyy.$mm;
982 $placeholder2 = $yyyy.$mm;
983 $placeholder2 .=
' '.$langs->trans(
"or").
' ';
984 $placeholder2 .= $yyyy.$mm.$dd;
986 $texttoshow .= $langs->trans(
"InputReceiptNumberBis");
989 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') :
'').
'">';
993 if (!empty($last_receipts)) {
994 print
'<datalist id="num_releve_list">';
995 foreach ($last_receipts as $num_releve) {
996 print
'<option value="'.$num_releve.
'"></option>';
1002 if (is_array($options) && count($options)) {
1003 print $langs->trans(
"EventualyAddCategory").
': ';
1006 print
'<br><div style="margin-top: 5px;"><span class="opacitymedium">'.$langs->trans(
"ThenCheckLinesAndConciliate").
'</span> ';
1007 print
'<input type="submit" class="button" name="confirm_reconcile" value="'.$langs->trans(
"Conciliate").
'">';
1008 print
' <span class="opacitymedium">'.$langs->trans(
"otherwise").
'</span> ';
1009 print
'<input type="submit" class="button small" name="confirm_savestatement" value="'.$langs->trans(
"SaveStatementOnly").
'">';
1015 print
'<!-- Last bank statements -->'.
"\n";
1016 print $langs->trans(
"LastAccountStatements").
' : ';
1018 foreach ($last_receipts as $num_releve) {
1019 $newentreyinlist =
'<a target="_blank" href="'.DOL_URL_ROOT.
'/compta/bank/releve.php?account='.((int) $id).
'&num='.urlencode($num_releve).
'">';
1020 $newentreyinlist .=
img_picto($num_releve,
'generic',
'class="paddingright"');
1022 $listoflastreceipts = $newentreyinlist.$listoflastreceipts;
1024 if ($numr >= $nbmax) {
1025 $listoflastreceipts =
"... ".$listoflastreceipts;
1027 print $listoflastreceipts;
1029 print
'<b>'.$langs->trans(
"None").
'</b>';
1035 <script type="text/javascript">
1036 $("#num_releve").val("' . $last_releve.
'");
1045 $param .=
'&page='.urlencode((
string) ($page));
1048 $moreforfilter =
'';
1049 $moreforfilter .=
'<div class="divsearchfield">';
1050 $moreforfilter .= $langs->trans(
'DateOperationShort');
1051 $moreforfilter .= (
$conf->browser->layout ==
'phone' ?
'<br>' :
' ');
1052 $moreforfilter .=
'<div class="nowrap inline-block">';
1053 $moreforfilter .= $form->selectDate($search_dt_start,
'search_start_dt', 0, 0, 1,
"search_form", 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1054 $moreforfilter .=
'</div>';
1055 $moreforfilter .= (
$conf->browser->layout ==
'phone' ?
'' :
' ');
1056 $moreforfilter .=
'<div class="nowrap inline-block">';
1057 $moreforfilter .= $form->selectDate($search_dt_end,
'search_end_dt', 0, 0, 1,
"search_form", 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1058 $moreforfilter .=
'</div>';
1059 $moreforfilter .=
'</div>';
1061 $moreforfilter .=
'<div class="divsearchfield">';
1062 $moreforfilter .= $langs->trans(
'DateValueShort');
1063 $moreforfilter .= (
$conf->browser->layout ==
'phone' ?
'<br>' :
' ');
1064 $moreforfilter .=
'<div class="nowrap inline-block">';
1065 $moreforfilter .= $form->selectDate($search_dv_start,
'search_start_dv', 0, 0, 1,
"search_form", 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1066 $moreforfilter .=
'</div>';
1067 $moreforfilter .= (
$conf->browser->layout ==
'phone' ?
'' :
' ');
1068 $moreforfilter .=
'<div class="nowrap inline-block">';
1069 $moreforfilter .= $form->selectDate($search_dv_end,
'search_end_dv', 0, 0, 1,
"search_form", 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1070 $moreforfilter .=
'</div>';
1071 $moreforfilter .=
'</div>';
1075 if (
isModEnabled(
'category') && $user->hasRight(
'categorie',
'lire')) {
1076 $langs->load(
'categories');
1079 $moreforfilter .=
'<div class="divsearchfield">';
1080 $tmptitle = $langs->trans(
'RubriquesTransactions');
1081 $cate_arbo = $form->select_all_categories(Categorie::TYPE_BANK_LINE, $search_bid,
'parent', 0, 0, 1);
1082 $moreforfilter .=
img_picto($tmptitle,
'category',
'class="pictofixedwidth"').$form->selectarray(
'search_bid', $cate_arbo, $search_bid, $tmptitle, 0, 0,
'', 0, 0, 0,
'',
'', 1);
1083 $moreforfilter .=
'</div>';
1087 $parameters = array();
1088 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1089 if (empty($reshook)) {
1090 $moreforfilter .= $hookmanager->resPrint;
1092 $moreforfilter = $hookmanager->resPrint;
1095 if ($moreforfilter) {
1096 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1097 print $moreforfilter;
1098 print
'</div>'.
"\n";
1101 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1102 $htmlofselectarray = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
$conf->main_checkbox_left_column);
1103 $selectedfields = ($mode !=
'kanban' ? $htmlofselectarray :
'');
1104 $selectedfields .= (($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile') ? $form->showCheckAddButtons(
'checkforselect', 1) :
'');
1107 if ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile') {
1108 $arrayfields[
'b.num_releve'][
'checked'] = 1;
1111 print
'<div class="div-table-responsive">';
1112 print
'<table class="tagtable liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
1116 print
'<tr class="liste_titre_filter">';
1118 if (
$conf->main_checkbox_left_column) {
1119 print
'<td class="liste_titre valignmiddle center">';
1120 $searchpicto = $form->showFilterButtons(
'left');
1126 if (!empty($arrayfields[
'b.rowid'][
'checked'])) {
1127 print
'<td class="liste_titre">';
1128 print
'<input type="text" class="flat" name="search_ref" size="2" value="'.dol_escape_htmltag($search_ref).
'">';
1131 if (!empty($arrayfields[
'b.label'][
'checked'])) {
1132 print
'<td class="liste_titre">';
1133 print
'<input type="text" class="flat maxwidth100" name="search_description" value="'.dol_escape_htmltag($search_description).
'">';
1136 if (!empty($arrayfields[
'b.dateo'][
'checked'])) {
1137 print
'<td class="liste_titre"> </td>';
1139 if (!empty($arrayfields[
'b.datev'][
'checked'])) {
1140 print
'<td class="liste_titre"> </td>';
1143 if (!empty($arrayfields[
'type'][
'checked'])) {
1144 print
'<td class="liste_titre">';
1145 print $form->select_types_paiements(empty($search_type) ?
'' : $search_type,
'search_type',
'', 2, 1, 1, 0, 1,
'maxwidth100', 1);
1149 if (!empty($arrayfields[
'b.num_chq'][
'checked'])) {
1150 print
'<td class="liste_titre center"><input type="text" class="flat" name="req_nb" value="'.dol_escape_htmltag($search_req_nb).
'" size="2"></td>';
1153 if (!empty($arrayfields[
'b.fk_bordereau'][
'checked'])) {
1154 print
'<td class="liste_titre center"><input type="text" class="flat width50" name="search_fk_bordereau" value="'.dol_escape_htmltag($search_fk_bordereau).
'"></td>';
1157 if (!empty($arrayfields[
'bu.label'][
'checked'])) {
1158 print
'<td class="liste_titre"><input type="text" class="flat maxwidth75" name="search_thirdparty" value="'.dol_escape_htmltag($search_thirdparty_user).
'"></td>';
1161 if (!empty($arrayfields[
'ba.ref'][
'checked'])) {
1162 print
'<td class="liste_titre">';
1163 $form->select_comptes($search_account,
'search_account', 0,
'', 1, ($id > 0 || !empty($ref) ?
' disabled="disabled"' :
''), 0,
'maxwidth100');
1167 if (!empty($arrayfields[
'b.debit'][
'checked'])) {
1168 print
'<td class="liste_titre right">';
1169 print
'<input type="text" class="flat width50" name="search_debit" value="'.dol_escape_htmltag($search_debit).
'">';
1173 if (!empty($arrayfields[
'b.credit'][
'checked'])) {
1174 print
'<td class="liste_titre right">';
1175 print
'<input type="text" class="flat width50" name="search_credit" value="'.dol_escape_htmltag($search_credit).
'">';
1179 if (!empty($arrayfields[
'balancebefore'][
'checked'])) {
1180 print
'<td class="liste_titre right">';
1181 $htmltext = $langs->trans(
"BalanceVisibilityDependsOnSortAndFilters", $langs->transnoentitiesnoconv(
"DateValue"));
1182 print $form->textwithpicto(
'', $htmltext, 1);
1186 if (!empty($arrayfields[
'balance'][
'checked'])) {
1187 print
'<td class="liste_titre right">';
1188 $htmltext = $langs->trans(
"BalanceVisibilityDependsOnSortAndFilters", $langs->transnoentitiesnoconv(
"DateValue"));
1189 print $form->textwithpicto(
'', $htmltext, 1);
1193 if (!empty($arrayfields[
'b.num_releve'][
'checked'])) {
1195 print
'<td class="liste_titre center"><input type="text" class="flat width50" name="search_num_releve" value="'.dol_escape_htmltag($search_num_releve).
'"></td>';
1198 if (!empty($arrayfields[
'b.conciliated'][
'checked'])) {
1199 print
'<td class="liste_titre center parentonrightofpage">';
1200 print $form->selectyesno(
'search_conciliated', $search_conciliated, 1,
false, 1, 1,
'search_status onrightofpage width75');
1204 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
1206 print
'<td class="nowraponall center"></td>';
1209 if (!
$conf->main_checkbox_left_column) {
1210 print
'<td class="liste_titre valignmiddle center">';
1213 $searchpicto = $form->showFilterButtons();
1223 print
'<tr class="liste_titre">';
1225 if (
$conf->main_checkbox_left_column) {
1226 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
1229 if (!empty($arrayfields[
'b.rowid'][
'checked'])) {
1230 print_liste_field_titre($arrayfields[
'b.rowid'][
'label'], $_SERVER[
'PHP_SELF'],
'b.rowid',
'', $param,
'', $sortfield, $sortorder);
1233 if (!empty($arrayfields[
'b.label'][
'checked'])) {
1234 print_liste_field_titre($arrayfields[
'b.label'][
'label'], $_SERVER[
'PHP_SELF'],
'b.label',
'', $param,
'', $sortfield, $sortorder);
1237 if (!empty($arrayfields[
'b.dateo'][
'checked'])) {
1238 print_liste_field_titre($arrayfields[
'b.dateo'][
'label'], $_SERVER[
'PHP_SELF'],
'b.dateo',
'', $param,
'', $sortfield, $sortorder,
"center ");
1241 if (!empty($arrayfields[
'b.datev'][
'checked'])) {
1242 print_liste_field_titre($arrayfields[
'b.datev'][
'label'], $_SERVER[
'PHP_SELF'],
'b.datev,b.dateo,b.rowid',
'', $param,
'', $sortfield, $sortorder,
'center ');
1245 if (!empty($arrayfields[
'type'][
'checked'])) {
1246 print_liste_field_titre($arrayfields[
'type'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder);
1249 if (!empty($arrayfields[
'b.num_chq'][
'checked'])) {
1250 print_liste_field_titre($arrayfields[
'b.num_chq'][
'label'], $_SERVER[
'PHP_SELF'],
'b.num_chq',
'', $param,
'', $sortfield, $sortorder,
"center ");
1253 if (!empty($arrayfields[
'b.fk_bordereau'][
'checked'])) {
1254 print_liste_field_titre($arrayfields[
'b.fk_bordereau'][
'label'], $_SERVER[
'PHP_SELF'],
'b.fk_bordereau',
'', $param,
'', $sortfield, $sortorder,
"center ");
1257 if (!empty($arrayfields[
'bu.label'][
'checked'])) {
1258 print_liste_field_titre($arrayfields[
'bu.label'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder);
1261 if (!empty($arrayfields[
'ba.ref'][
'checked'])) {
1262 print_liste_field_titre($arrayfields[
'ba.ref'][
'label'], $_SERVER[
'PHP_SELF'],
'ba.ref',
'', $param,
'', $sortfield, $sortorder);
1265 if (!empty($arrayfields[
'b.debit'][
'checked'])) {
1266 print_liste_field_titre($arrayfields[
'b.debit'][
'label'], $_SERVER[
'PHP_SELF'],
'b.amount',
'', $param,
'', $sortfield, $sortorder,
"right ");
1269 if (!empty($arrayfields[
'b.credit'][
'checked'])) {
1270 print_liste_field_titre($arrayfields[
'b.credit'][
'label'], $_SERVER[
'PHP_SELF'],
'b.amount',
'', $param,
'', $sortfield, $sortorder,
"right ");
1273 if (!empty($arrayfields[
'balancebefore'][
'checked'])) {
1274 print_liste_field_titre($arrayfields[
'balancebefore'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
"right ");
1277 if (!empty($arrayfields[
'balance'][
'checked'])) {
1278 print_liste_field_titre($arrayfields[
'balance'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
"right ");
1281 if (!empty($arrayfields[
'b.num_releve'][
'checked'])) {
1283 print_liste_field_titre($arrayfields[
'b.num_releve'][
'label'], $_SERVER[
'PHP_SELF'],
'b.num_releve',
'', $param,
'', $sortfield, $sortorder,
"center ");
1286 if (!empty($arrayfields[
'b.conciliated'][
'checked'])) {
1287 print_liste_field_titre($arrayfields[
'b.conciliated'][
'label'], $_SERVER[
'PHP_SELF'],
'b.rappro',
'', $param,
'', $sortfield, $sortorder,
"center ");
1292 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
1294 $parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder,
'totalarray' => &$totalarray);
1295 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object, $action);
1296 print $hookmanager->resPrint;
1298 print
'<td class="nowraponall center"></td>';
1301 if (!
$conf->main_checkbox_left_column) {
1303 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'maxwidthsearch center ');
1310 $balancecalculated =
false;
1311 $posconciliatecol = 0;
1312 $cachebankaccount = array();
1324 $imaxinloop = ($limit ? min($num, $limit) : $num);
1325 while ($i < $imaxinloop) {
1326 $objp =
$db->fetch_object($resql);
1327 $links = $bankaccountstatic->get_url($objp->rowid);
1329 if (!$balancecalculated && (!empty($arrayfields[
'balancebefore'][
'checked']) || !empty($arrayfields[
'balance'][
'checked'])) && ($mode_balance_ok || $search_conciliated ===
'0')) {
1330 if (!$search_account) {
1331 dol_print_error(
null,
'account is not defined but $mode_balance_ok is true');
1338 $sqlforbalance =
'SELECT SUM(b.amount) as previoustotal';
1339 $sqlforbalance .=
" FROM ";
1340 $sqlforbalance .=
" ".MAIN_DB_PREFIX.
"bank_account as ba,";
1341 $sqlforbalance .=
" ".MAIN_DB_PREFIX.
"bank as b";
1342 $sqlforbalance .=
" WHERE b.fk_account = ba.rowid";
1343 $sqlforbalance .=
" AND ba.entity IN (".getEntity(
'bank_account').
")";
1344 $sqlforbalance .=
" AND b.fk_account = ".((int) $search_account);
1346 $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 < ".((
int) $objp->rowid).
"))))";
1347 $resqlforbalance =
$db->query($sqlforbalance);
1350 if ($resqlforbalance) {
1351 $objforbalance =
$db->fetch_object($resqlforbalance);
1352 if ($objforbalance) {
1354 if ($sortfield ==
'b.datev,b.dateo,b.rowid' && ($sortorder ==
'desc' || $sortorder ==
'desc,desc' || $sortorder ==
'desc,desc,desc')) {
1355 $balancebefore = $objforbalance->previoustotal + ($sign * $objp->amount);
1358 $balance = $objforbalance->previoustotal;
1365 $balancecalculated =
true;
1368 if ($user->hasRight(
'banque',
'consolidate') && ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile')) {
1369 $tmpnbfieldbeforebalance = 0;
1370 $tmpnbfieldafterbalance = 0;
1371 $balancefieldfound = 0;
1372 foreach ($arrayfields as $key => $val) {
1373 if ($key ==
'balancebefore' || $key ==
'balance') {
1374 $balancefieldfound++;
1377 if (!empty($arrayfields[$key][
'checked'])) {
1378 if (!$balancefieldfound) {
1379 $tmpnbfieldbeforebalance++;
1381 $tmpnbfieldafterbalance++;
1386 $element = $extrafieldsobjectkey;
1387 if (!empty($extrafields->attributes[$element][
'label']) && is_array($extrafields->attributes[$element][
'label']) && count($extrafields->attributes[$element][
'label'])) {
1388 foreach ($extrafields->attributes[$element][
'label'] as $key => $val) {
1389 if (!empty($arrayfields[
"ef.".$key][
'checked'])) {
1390 if (!empty($arrayfields[$key][
'checked'])) {
1391 if (!$balancefieldfound) {
1392 $tmpnbfieldbeforebalance++;
1394 $tmpnbfieldafterbalance++;
1401 print
'<tr class="oddeven trforbreak">';
1403 if (
$conf->main_checkbox_left_column) {
1406 if ($tmpnbfieldbeforebalance) {
1407 print
'<td colspan="'.$tmpnbfieldbeforebalance.
'">';
1412 if (!empty($arrayfields[
'balancebefore'][
'checked'])) {
1413 print
'<td class="right">';
1414 if ($search_conciliated !==
'0') {
1415 if ($sortfield ==
'b.datev,b.dateo,b.rowid' && ($sortorder ==
'desc' || $sortorder ==
'desc,desc' || $sortorder ==
'desc,desc,desc')) {
1423 if (!empty($arrayfields[
'balance'][
'checked'])) {
1424 print
'<td class="right">';
1425 if ($search_conciliated !==
'0') {
1426 if ($sortfield ==
'b.datev,b.dateo,b.rowid' && ($sortorder ==
'desc' || $sortorder ==
'desc,desc' || $sortorder ==
'desc,desc,desc')) {
1435 if (!empty($arrayfields[
'b.num_releve'][
'checked'])) {
1440 print
'<td colspan="'.($tmpnbfieldafterbalance).
'">';
1445 if (!
$conf->main_checkbox_left_column) {
1453 if ($sortfield ==
'b.datev,b.dateo,b.rowid' && ($sortorder ==
'desc' || $sortorder ==
'desc,desc' || $sortorder ==
'desc,desc,desc')) {
1454 $balance =
price2num($balancebefore,
'MT');
1455 $balancebefore =
price2num($balancebefore - ($sign * $objp->amount),
'MT');
1457 $balancebefore =
price2num($balance,
'MT');
1458 $balance =
price2num($balance + ($sign * $objp->amount),
'MT');
1461 if (empty($cachebankaccount[$objp->bankid])) {
1463 $bankaccounttmp->fetch($objp->bankid);
1464 $cachebankaccount[$objp->bankid] = $bankaccounttmp;
1465 $bankaccount = $bankaccounttmp;
1467 $bankaccount = $cachebankaccount[$objp->bankid];
1471 $backgroundcolor =
"class='oddeven'";
1473 if ($objp->amount < 0) {
1475 $backgroundcolor =
'style="background: '.$color.
';"';
1478 $backgroundcolor =
'style="background: '.$color.
';"';
1482 $banklinestatic->id = $objp->rowid;
1483 $banklinestatic->ref = (
string) $objp->rowid;
1484 $banklinestatic->amount = $objp->amount;
1486 print
'<tr class="oddeven" '.$backgroundcolor.
'>';
1489 if (
$conf->main_checkbox_left_column) {
1490 print
'<td class="center">';
1491 if (!$objp->conciliated && ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile')) {
1492 print
'<input class="flat checkforselect" name="rowid['.$objp->rowid.
']" type="checkbox" name="toselect[]" value="'.$objp->rowid.
'" size="1"'.(in_array($objp->rowid, $rowids) ?
' checked' :
'').
'>';
1501 if (!empty($arrayfields[
'b.rowid'][
'checked'])) {
1502 print
'<td class="nowrap left">';
1503 print $banklinestatic->getNomUrl(1);
1511 if (!empty($arrayfields[
'b.label'][
'checked'])) {
1515 preg_match(
'/\((.+)\)/i', $objp->label, $reg);
1516 if (!empty($reg[1]) && $langs->trans($reg[1]) != $reg[1]) {
1518 $labeltoshow = $langs->trans($reg[1]);
1520 if ($objp->label ==
'(payment_salary)') {
1521 $labeltoshow = $langs->trans(
"SalaryPayment");
1524 $titletoshow = $objp->label;
1529 print
'<td class="tdoverflowmax250"'.($titletoshow ?
' title="'.dol_escape_htmltag($titletoshow).
'"' :
'').
'>';
1532 $cachebankaccount = array();
1533 foreach ($links as $key => $val) {
1534 print
'<!-- '.$links[$key][
'type'].
' -->';
1535 if ($links[$key][
'type'] ==
'withdraw') {
1536 $banktransferstatic->id = $links[$key][
'url_id'];
1537 $banktransferstatic->ref = $links[$key][
'label'];
1538 print $banktransferstatic->getNomUrl(0).($labeltoshow ?
' ' :
'');
1539 } elseif ($links[$key][
'type'] ==
'payment') {
1540 $paymentstatic->id = $links[$key][
'url_id'];
1541 $paymentstatic->ref = (
string) $links[$key][
'url_id'];
1542 $paymentstatic->date =
$db->jdate($objp->do);
1543 print $paymentstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1544 } elseif ($links[$key][
'type'] ==
'payment_supplier') {
1545 $paymentsupplierstatic->id = $links[$key][
'url_id'];
1546 $paymentsupplierstatic->ref = (
string) $links[$key][
'url_id'];
1547 print $paymentsupplierstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1548 } elseif ($links[$key][
'type'] ==
'payment_sc') {
1549 $paymentscstatic->id = $links[$key][
'url_id'];
1550 $paymentscstatic->ref = (
string) $links[$key][
'url_id'];
1551 $paymentscstatic->label = $links[$key][
'label'];
1552 print $paymentscstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1553 } elseif ($links[$key][
'type'] ==
'payment_vat') {
1554 $paymentvatstatic->id = $links[$key][
'url_id'];
1555 $paymentvatstatic->ref = (
string) $links[$key][
'url_id'];
1556 print $paymentvatstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1557 } elseif ($links[$key][
'type'] ==
'payment_salary') {
1558 $paymentsalstatic->id = $links[$key][
'url_id'];
1559 $paymentsalstatic->ref = (
string) $links[$key][
'url_id'];
1560 $paymentsalstatic->label = $links[$key][
'label'];
1561 print $paymentsalstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1562 } elseif ($links[$key][
'type'] ==
'payment_loan') {
1563 print
'<a href="'.DOL_URL_ROOT.
'/loan/payment/card.php?id='.$links[$key][
'url_id'].
'">';
1564 print
' '.img_object($langs->trans(
'ShowPayment'),
'payment').
' ';
1565 print
'</a>'.($labeltoshow ?
' ' :
'');
1566 } elseif ($links[$key][
'type'] ==
'payment_donation') {
1567 $paymentdonationstatic->id = $links[$key][
'url_id'];
1568 $paymentdonationstatic->ref = (
string) $links[$key][
'url_id'];
1569 print $paymentdonationstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1570 } elseif ($links[$key][
'type'] ==
'payment_expensereport') {
1571 $paymentexpensereportstatic->id = $links[$key][
'url_id'];
1572 $paymentexpensereportstatic->ref = (
string) $links[$key][
'url_id'];
1573 print $paymentexpensereportstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1574 } elseif ($links[$key][
'type'] ==
'payment_various') {
1575 $paymentvariousstatic->id = $links[$key][
'url_id'];
1576 $paymentvariousstatic->ref = (
string) $links[$key][
'url_id'];
1577 print $paymentvariousstatic->getNomUrl(2).($labeltoshow ?
' ' :
'');
1578 } elseif ($links[$key][
'type'] ==
'banktransfert') {
1580 if ($objp->amount > 0) {
1581 $banklinestatic->fetch($links[$key][
'url_id']);
1582 $bankstatic->id = $banklinestatic->fk_account;
1583 $bankstatic->label = $banklinestatic->bank_account_ref;
1584 print $langs->trans(
"TransferFrom").
' ';
1585 print $bankstatic->getNomUrl(1,
'transactions');
1586 print
' '.$langs->trans(
"toward").
' ';
1587 $bankstatic->id = $objp->bankid;
1588 $bankstatic->label = $objp->bankref;
1589 print $bankstatic->getNomUrl(1,
'');
1590 print($labeltoshow ?
' - ' :
'');
1592 $bankstatic->id = $objp->bankid;
1593 $bankstatic->label = $objp->bankref;
1594 print $langs->trans(
"TransferFrom").
' ';
1595 print $bankstatic->getNomUrl(1,
'');
1596 print
' '.$langs->trans(
"toward").
' ';
1597 $banklinestatic->fetch($links[$key][
'url_id']);
1598 $bankstatic->id = $banklinestatic->fk_account;
1599 $bankstatic->label = $banklinestatic->bank_account_ref;
1600 print $bankstatic->getNomUrl(1,
'transactions');
1601 print($labeltoshow ?
' - ' :
'');
1604 } elseif ($links[$key][
'type'] ==
'company') {
1605 } elseif ($links[$key][
'type'] ==
'user') {
1606 } elseif ($links[$key][
'type'] ==
'member') {
1607 } elseif ($links[$key][
'type'] ==
'sc') {
1608 } elseif ($links[$key][
'type'] ==
'vat') {
1609 } elseif ($links[$key][
'type'] ==
'salary') {
1613 print
'<a href="'.$links[$key][
'url'].$links[$key][
'url_id'].
'">';
1614 if (preg_match(
'/^\((.*)\)$/i', $links[$key][
'label'], $reg)) {
1616 if ($reg[1] ==
'paiement') {
1617 $reg[1] =
'Payment';
1619 print $langs->trans($reg[1]);
1621 print $links[$key][
'label'];
1623 print
'</a>'.($labeltoshow ?
' - ' :
'');
1636 if (!empty($arrayfields[
'b.dateo'][
'checked'])) {
1637 print
'<td class="nowraponall center">';
1638 print
'<span class="spanforajaxedit" id="dateoperation_'.$objp->rowid.
'" title="'.
dol_print_date(
$db->jdate($objp->do),
"day").
'">';
1642 print
'<span class="inline-block">';
1643 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=doprev&account='.$objp->bankid.
'&rowid='.$objp->rowid.
'">';
1645 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=donext&account='.$objp->bankid.
'&rowid='.$objp->rowid.
'">';
1655 if (!empty($arrayfields[
'b.datev'][
'checked'])) {
1656 print
'<td class="nowraponall center">';
1657 print
'<span class="spanforajaxedit" id="datevalue_'.$objp->rowid.
'" title="'.
dol_print_date(
$db->jdate($objp->dv),
"day").
'">';
1661 print
'<span class="inline-block">';
1662 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=dvprev&account='.$objp->bankid.
'&rowid='.$objp->rowid.
'">';
1664 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=dvnext&account='.$objp->bankid.
'&rowid='.$objp->rowid.
'">';
1674 if (!empty($arrayfields[
'type'][
'checked'])) {
1675 $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);
1676 if (empty($arrayfields[
'b.num_chq'][
'checked'])) {
1677 $labeltype .= ($objp->num_chq ?
' <span class="opacitymedium">- '.$objp->num_chq.
'</span>' :
'');
1679 print
'<td class="tdoverflowmax100" title="'.dolPrintLabel($labeltype).
'">';
1680 if ($labeltype ==
'SOLD') {
1692 if (!empty($arrayfields[
'b.num_chq'][
'checked'])) {
1693 print
'<td class="tdoverflowmax100 center" title="'.($objp->num_chq ?
dolPrintLabel($objp->num_chq) :
"").
'">'.($objp->num_chq ?
dolPrintLabel($objp->num_chq) :
"").
"</td>\n";
1700 if (!empty($arrayfields[
'b.fk_bordereau'][
'checked'])) {
1701 print
'<td class="nowraponall center">';
1702 if ($objp->fk_bordereau > 0) {
1703 $bordereaustatic->fetch($objp->fk_bordereau);
1704 print $bordereaustatic->getNomUrl();
1713 if (!empty($arrayfields[
'bu.label'][
'checked'])) {
1714 print
'<td class="tdoverflowmax125">';
1716 $companylinked_id = 0;
1722 foreach ($links as $key => $value) {
1723 if ($links[$key][
'type'] ==
'payment_sc') {
1724 $type_link =
'payment_sc';
1726 if ($links[$key][
'type'] ==
'payment_salary') {
1727 $type_link =
'payment_salary';
1729 if ($links[$key][
'type'] ==
'payment_donation') {
1730 $paymentdonationstatic->fetch($links[$key][
'url_id']);
1731 $donstatic->fetch($paymentdonationstatic->fk_donation);
1732 $companylinked_id = $donstatic->socid;
1733 if (!$companylinked_id) {
1734 $thirdstr = ($donstatic->societe !==
"" ?
1735 $donstatic->societe :
1736 $donstatic->firstname.
" ".$donstatic->lastname);
1739 if ($links[$key][
'type'] ==
'payment_expensereport') {
1740 $type_link =
'payment_expensereport';
1743 if ($links[$key][
'type'] ==
'company') {
1744 $companylinked_id = $links[$key][
'url_id'];
1746 if ($links[$key][
'type'] ==
'user') {
1747 $userlinked_id = $links[$key][
'url_id'];
1752 if ($companylinked_id) {
1754 $companystatic->fetch($companylinked_id);
1755 print $companystatic->getNomUrl(1);
1756 } elseif ($userlinked_id &&
1757 (($type_link ==
'payment_salary' && $user->hasRight(
'salaries',
'read'))
1758 || ($type_link ==
'payment_sc' && $user->hasRight(
'tax',
'charges',
'lire'))
1759 || ($type_link ==
'payment_expensereport' && $user->hasRight(
'expensereport',
'lire')))) {
1761 if (!empty(
$conf->cache[
'user'][$userlinked_id])) {
1762 $tmpuser =
$conf->cache[
'user'][$userlinked_id];
1765 $tmpuser->fetch($userlinked_id);
1766 $conf->cache[
'user'][$userlinked_id] = $tmpuser;
1768 print $tmpuser->getNomUrl(-1);
1769 } elseif ($thirdstr) {
1782 if (!empty($arrayfields[
'ba.ref'][
'checked'])) {
1783 print
'<td class="nowrap">';
1784 print $bankaccount->getNomUrl(1);
1792 if (!empty($arrayfields[
'b.debit'][
'checked'])) {
1793 print
'<td class="nowraponall right"><span class="amount">';
1794 if ($objp->amount < 0) {
1795 print
price($objp->amount * -1);
1798 print
"</span></td>\n";
1808 if (!empty($arrayfields[
'b.credit'][
'checked'])) {
1809 print
'<td class="nowraponall right"><span class="amount">';
1810 if ($objp->amount > 0) {
1811 print
price($objp->amount);
1814 print
"</span></td>\n";
1824 if (!empty($arrayfields[
'balancebefore'][
'checked'])) {
1825 if ($mode_balance_ok) {
1826 if ($balancebefore >= 0) {
1827 print
'<td class="nowrap right"> '.price($balancebefore).
'</td>';
1829 print
'<td class="error nowrap right"> '.price($balancebefore).
'</td>';
1832 print
'<td class="right">-</td>';
1840 if (!empty($arrayfields[
'balance'][
'checked'])) {
1841 if ($mode_balance_ok) {
1842 if ($balance >= 0) {
1843 print
'<td class="nowrap right"> '.price($balance).
'</td>';
1845 print
'<td class="error nowrap right"> '.price($balance).
'</td>';
1848 print
'<td class="right">-</td>';
1855 if (!empty($arrayfields[
'b.num_releve'][
'checked'])) {
1856 print
'<td class="nowraponall center">';
1858 if ($bankaccount->canBeConciliated() > 0) {
1859 if ($objp->num_releve) {
1860 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>';
1871 if (!empty($arrayfields[
'b.conciliated'][
'checked'])) {
1872 print
'<td class="nowraponall center">';
1873 print
yn($objp->conciliated);
1880 if (!empty($arrayfields[
'b.fk_bordereau'][
'checked'])) {
1881 print
'<td class="nowraponall center">';
1882 if ($objp->fk_bordereau > 0) {
1883 $bordereaustatic->fetch($objp->fk_bordereau);
1884 print $bordereaustatic->getNomUrl();
1894 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
1896 $parameters = array(
'arrayfields' => $arrayfields,
'object' => $object,
'obj' => $objp,
'i' => $i,
'totalarray' => &$totalarray);
1897 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters, $object, $action);
1898 print $hookmanager->resPrint;
1901 print
'<td class="nowraponall center">';
1903 if ($objp->conciliated && $bankaccount->canBeConciliated() > 0) {
1904 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.
'">';
1908 if ($user->hasRight(
'banque',
'modifier') || $user->hasRight(
'banque',
'consolidate')) {
1909 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.
'">';
1913 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.
'">';
1917 if ($bankaccount->canBeConciliated() > 0 && empty($objp->conciliated)) {
1918 if (
$db->jdate($objp->dv) < ($now -
$conf->bank->rappro->warning_delay)) {
1919 print
' '.img_warning($langs->trans(
"ReconciliationLate"));
1922 if ($user->hasRight(
'banque',
'modifier')) {
1925 $parambis = preg_replace(
'/&?action=(reconcile|confirm_deleteonreconcile)(&|$)/',
'\2', $param);
1926 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 :
'').
'">';
1927 print
img_delete(
'',
'class="marginleftonly"');
1937 if (!
$conf->main_checkbox_left_column) {
1938 print
'<td class="center">';
1939 if (!$objp->conciliated && ($action ==
'reconcile' || $action ==
'confirm_deleteonreconcile')) {
1940 print
'<input class="flat checkforselect" name="rowid['.$objp->rowid.
']" type="checkbox" value="'.$objp->rowid.
'" size="1"'.(in_array($objp->rowid, $rowids) ?
' checked' :
'').
'>';
1954 if (isset($totalarray[
'totaldebfield']) || isset($totalarray[
'totalcredfield'])) {
1955 print
'<tr class="liste_total">';
1957 while ($i < $totalarray[
'nbfield']) {
1960 if ($num < $limit && empty($offset)) {
1961 print
'<td class="left">'.$langs->trans(
"Total").
'</td>';
1963 print
'<td class="left tdoverflowmax50" title="'.$langs->trans(
"Totalforthispage").
'">'.$langs->trans(
"Totalforthispage").
'</td>';
1965 } elseif ($totalarray[
'totaldebfield'] == $i) {
1966 print
'<td class="right"><span class="amount">'.price(-1 * $totalarray[
'totaldeb']).
'</span></td>';
1967 } elseif ($totalarray[
'totalcredfield'] == $i) {
1968 print
'<td class="right"><span class="amount">'.price($totalarray[
'totalcred']).
'</span></td>';
1969 } elseif ($i == $posconciliatecol) {
1970 print
'<td class="center">';
1982 foreach ($arrayfields as $key => $val) {
1983 if (!empty($val[
'checked'])) {
1987 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.
dolPrintHTML($s, $allowiframe=0, $moreallowedtags=array())
Return a string (that can be on several lines) ready to be output on a HTML page.
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.
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'.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0, $nodefault=0)
Return value of a param into GET or POST supervariable.
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.
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
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.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
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...
print $langs trans("Show") . '< td style="' . $timeColor . '" align="center"> s</td > badge status0 badge status4 badge status3 Error badge status8< td align="center">< span class="badge ' . $badge . '"></span ></td >< td align="center">< a href="#" class="button button-small" onclick="openLogModal(this)" data-req="' . dol_escape_htmltag($reqSafe) . '" data-res="' . dol_escape_htmltag($resSafe) . '" data-err="' . dol_escape_htmltag($errSafe) . '">< span class="fa fa-search-plus"></span ></a ></td ></tr >< tr >< td colspan="' . $colspan . '" class="opacitymedium"></td ></tr ></table ></div ></form > logModal none logModal none s a JSON string
buildzip.php
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, $nodie=0, $mode='')
Check permissions of a user to show a page and an object.