From bcc41c2a3389da42e480780babbfd1e4010eefe7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 13:16:12 +0200 Subject: [PATCH] NEW Can filter on description on bank account transaction lists. --- htdocs/compta/bank/bankentries_list.php | 79 ++++++++++++++++--------- 1 file changed, 52 insertions(+), 27 deletions(-) diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index cd964c7f4f4..1b0f7feffe4 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -75,15 +75,15 @@ else $result=restrictedArea($user, 'banque'); } -$description=GETPOST("description", 'alpha'); $dateop = dol_mktime(12, 0, 0, GETPOST("opmonth", 'int'), GETPOST("opday", 'int'), GETPOST("opyear", 'int')); -$debit=GETPOST("debit", 'alpha'); -$credit=GETPOST("credit", 'alpha'); +$search_debit=GETPOST("search_debit", 'alpha'); +$search_credit=GETPOST("search_credit", 'alpha'); $search_type=GETPOST("search_type", 'alpha'); $search_account=GETPOST("search_account", 'int')?GETPOST("search_account", 'int'):GETPOST("account", 'int'); $search_accountancy_code=GETPOST('search_accountancy_code', 'alpha')?GETPOST('search_accountancy_code', 'alpha'):GETPOST('accountancy_code', 'alpha'); $search_bid=GETPOST("search_bid", "int")?GETPOST("search_bid", "int"):GETPOST("bid", "int"); $search_ref=GETPOST('search_ref', 'alpha'); +$search_description=GETPOST("search_description", 'alpha'); $search_dt_start = dol_mktime(0, 0, 0, GETPOST('search_start_dtmonth', 'int'), GETPOST('search_start_dtday', 'int'), GETPOST('search_start_dtyear', 'int')); $search_dt_end = dol_mktime(0, 0, 0, GETPOST('search_end_dtmonth', 'int'), GETPOST('search_end_dtday', 'int'), GETPOST('search_end_dtyear', 'int')); $search_dv_start = dol_mktime(0, 0, 0, GETPOST('search_start_dvmonth', 'int'), GETPOST('search_start_dvday', 'int'), GETPOST('search_start_dvyear', 'int')); @@ -142,7 +142,7 @@ $search_array_options=$extrafields->getOptionalsFromPost('banktransaction', '', $arrayfields=array( 'b.rowid'=>array('label'=>$langs->trans("Ref"), 'checked'=>1), - 'description'=>array('label'=>$langs->trans("Description"), 'checked'=>1), + 'b.label'=>array('label'=>$langs->trans("Description"), 'checked'=>1), 'b.dateo'=>array('label'=>$langs->trans("DateOperationShort"), 'checked'=>1), 'b.datev'=>array('label'=>$langs->trans("DateValueShort"), 'checked'=>1), 'type'=>array('label'=>$langs->trans("Type"), 'checked'=>1), @@ -186,13 +186,13 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_dt_end=''; $search_dv_start=''; $search_dv_end=''; - $description=""; $search_type=""; - $debit=""; - $credit=""; + $search_debit=""; + $search_credit=""; $search_bid=""; $search_ref=""; $search_req_nb=''; + $search_description=''; $search_thirdparty=''; $search_num_releve=''; $search_conciliated=''; @@ -263,6 +263,7 @@ if ((GETPOST('confirm_savestatement', 'alpha') || GETPOST('confirm_reconcile', ' if ($offset) $param.='&offset='.urlencode($offset); if ($search_thirdparty) $param.='&search_thirdparty='.urlencode($search_thirdparty); if ($search_num_releve) $param.='&search_num_releve='.urlencode($search_num_releve); + if ($search_description) $param.='&search_description='.urlencode($search_description); if ($search_start_dt) $param.='&search_start_dt='.urlencode($search_start_dt); if ($search_end_dt) $param.='&search_end_dt='.urlencode($search_end_dt); if ($search_start_dv) $param.='&search_start_dv='.urlencode($search_start_dv); @@ -393,11 +394,11 @@ if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($lim if ($id > 0) $param.='&id='.urlencode($id); if (!empty($ref)) $param.='&ref='.urlencode($ref); if (!empty($search_ref)) $param.='&search_ref='.urlencode($search_ref); -if (!empty($description)) $param.='&description='.urlencode($description); +if (!empty($search_description)) $param.='&search_description='.urlencode($search_description); if (!empty($search_type)) $param.='&type='.urlencode($search_type); if (!empty($search_thirdparty)) $param.='&search_thirdparty='.urlencode($search_thirdparty); -if (!empty($debit)) $param.='&debit='.urlencode($debit); -if (!empty($credit)) $param.='&credit='.urlencode($credit); +if (!empty($search_debit)) $param.='&search_debit='.urlencode($search_debit); +if (!empty($search_credit)) $param.='&search_credit='.urlencode($search_credit); if (!empty($search_account)) $param.='&search_account='.urlencode($search_account); if (!empty($search_num_releve)) $param.='&search_num_releve='.urlencode($search_num_releve); if ($search_conciliated != '' && $search_conciliated != '-1') $param.='&search_conciliated='.urlencode($search_conciliated); @@ -498,14 +499,36 @@ if ($search_req_nb) $sql.= natural_search("b.num_chq", $search_req_nb); if ($search_num_releve) $sql.= natural_search("b.num_releve", $search_num_releve); if ($search_conciliated != '' && $search_conciliated != '-1') $sql.= " AND b.rappro = ".$search_conciliated; if ($search_thirdparty) $sql.= natural_search("s.nom", $search_thirdparty); -if ($description) $sql.= natural_search("b.label", $description); // Warning some text are just translation keys, not translated strings +if ($search_description) +{ + $search_description_to_use = $search_description; + $arrayoffixedlabels=array( + 'payment_salary', + 'CustomerInvoicePayment', 'CustomerInvoicePaymentBack', + 'SupplierInvoicePayment', 'SupplierInvoicePaymentBack', + 'DonationPayment', + 'ExpenseReportPayment', + 'SocialContributionPayment', + 'SubscriptionPayment', + 'WithdrawalPayment' + ); + foreach($arrayoffixedlabels as $keyforlabel) + { + $translatedlabel = $langs->transnoentitiesnoconv($keyforlabel); + if (preg_match('/'.$search_description.'/i', $translatedlabel)) + { + $search_description_to_use.="|".$keyforlabel; + } + } + $sql.= natural_search("b.label", $search_description_to_use); // Warning some text are just translation keys, not translated strings +} if ($search_bid > 0) $sql.= " AND b.rowid=l.lineid AND l.fk_categ=".$search_bid; if (! empty($search_type)) $sql.= " AND b.fk_type = '".$db->escape($search_type)."' "; // Search criteria amount -$debit = price2num(str_replace('-', '', $debit)); -$credit = price2num(str_replace('-', '', $credit)); -if ($debit) $sql.= natural_search('- b.amount', $debit, 1); -if ($credit) $sql.= natural_search('b.amount', $credit, 1); +$search_debit = price2num(str_replace('-', '', $search_debit)); +$search_credit = price2num(str_replace('-', '', $search_credit)); +if ($search_debit) $sql.= natural_search('- b.amount', $search_debit, 1); +if ($search_credit) $sql.= natural_search('b.amount', $search_credit, 1); // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; @@ -853,10 +876,10 @@ if ($resql) print ''; print ''; } - if (! empty($arrayfields['description']['checked'])) + if (! empty($arrayfields['b.label']['checked'])) { print ''; - //print ''; + print ''; print ''; } if (! empty($arrayfields['b.dateo']['checked'])) @@ -891,13 +914,13 @@ if ($resql) if (! empty($arrayfields['b.debit']['checked'])) { print ''; - print ''; + print ''; print ''; } if (! empty($arrayfields['b.credit']['checked'])) { print ''; - print ''; + print ''; print ''; } if (! empty($arrayfields['balancebefore']['checked'])) @@ -937,7 +960,7 @@ if ($resql) // Fields title print ''; if (! empty($arrayfields['b.rowid']['checked'])) print_liste_field_titre($arrayfields['b.rowid']['label'], $_SERVER['PHP_SELF'], 'b.rowid', '', $param, '', $sortfield, $sortorder); - if (! empty($arrayfields['description']['checked'])) print_liste_field_titre($arrayfields['description']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder); + if (! empty($arrayfields['b.label']['checked'])) print_liste_field_titre($arrayfields['b.label']['label'], $_SERVER['PHP_SELF'], 'b.label', '', $param, '', $sortfield, $sortorder); if (! empty($arrayfields['b.dateo']['checked'])) print_liste_field_titre($arrayfields['b.dateo']['label'], $_SERVER['PHP_SELF'], 'b.dateo', '', $param, '', $sortfield, $sortorder, "center "); if (! empty($arrayfields['b.datev']['checked'])) print_liste_field_titre($arrayfields['b.datev']['label'], $_SERVER['PHP_SELF'], 'b.datev,b.dateo,b.rowid', '', $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['type']['checked'])) print_liste_field_titre($arrayfields['type']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'align="center"', $sortfield, $sortorder); @@ -1142,7 +1165,7 @@ if ($resql) } // Description - if (! empty($arrayfields['description']['checked'])) + if (! empty($arrayfields['b.label']['checked'])) { print ""; @@ -1557,6 +1580,14 @@ if ($resql) print ''; } + // If no record found + if ($num == 0) + { + $colspan=1; + foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; } + print ''.$langs->trans("NoRecordFound").''; + } + print ""; print ""; @@ -1568,12 +1599,6 @@ else dol_print_error($db); } -// If no data to display after a search -if ($_POST["action"] == "search" && ! $num) -{ - print '
'.$langs->trans("NoRecordFound").'
'; -} - // End of page llxFooter(); $db->close();