From bbf995e827c73b4c750b3e5bb9c027cc0e2c6ef3 Mon Sep 17 00:00:00 2001 From: sparkyx Date: Tue, 3 May 2022 22:53:51 +0200 Subject: [PATCH] Bug when ledger badly parametrized --- html/fid.php | 1 + html/fid_card.php | 6 ++++-- include/ajax/ajax_card.php | 19 ++++++++++++++----- include/class/fiche.class.php | 4 ++-- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/html/fid.php b/html/fid.php index 6dc6ae940..1b84cbc98 100644 --- a/html/fid.php +++ b/html/fid.php @@ -111,6 +111,7 @@ if ( isset($_SESSION[SESSION_KEY.'isValid']) && $_SESSION[SESSION_KEY.'isValid'] break; default: + $d= ( empty($d) )?-1:$d; $filter_card="and fd_id in ($d)"; } } diff --git a/html/fid_card.php b/html/fid_card.php index 57f783535..dd92aa4a4 100644 --- a/html/fid_card.php +++ b/html/fid_card.php @@ -73,9 +73,11 @@ if ( $typecard == 'all') else if (strpos($typecard,'sql]')==true) { $filter_card= str_replace('[sql]', " and ", $typecard); -} else +} else +{ + $typecard=(empty($typecard))?-1:sql_string($typecard); $filter_card="and fd_id in ($typecard)"; - +} if ( $jrn != -1 ) { switch ($typecard) diff --git a/include/ajax/ajax_card.php b/include/ajax/ajax_card.php index 863e59d7a..ea9b266aa 100644 --- a/include/ajax/ajax_card.php +++ b/include/ajax/ajax_card.php @@ -234,26 +234,35 @@ case 'st': { case -1: $l=new Acc_Ledger($cn,$ledger); + $array=$l->get_all_fiche_def(); + $array=(empty($array))?"-1":$array; $where=' where fd_id in ('.$l->get_all_fiche_def().')'; break; case 'cred': $l=new Acc_Ledger($cn,$ledger); $prop=$l->get_propertie(); - if ( $prop['jrn_def_fiche_cred']=='')$prop=-1; - $where=' where fd_id in ('.$prop['jrn_def_fiche_cred'].')'; + if ( empty($prop) || empty($prop['jrn_def_fiche_cred'])=='') + { + $where =""; + }else { + $where=' where fd_id in ('.$prop['jrn_def_fiche_cred'].')'; + } break; case 'deb': $l=new Acc_Ledger($cn,$ledger); $prop=$l->get_propertie(); - if ( $prop=='')$prop=-1; - $where=' where fd_id in ('.$prop['jrn_def_fiche_deb'].')'; + if ( empty($prop) || empty($prop['jrn_def_fiche_deb']) ) { + $where = "" ; + } else { + $where=' where fd_id in ('.$prop['jrn_def_fiche_deb'].')'; + } break; } } else { /* we filter thanks a given model of card */ - if ( isset($cat)) + if ( isset($cat) && ! empty($cat)) { $where=sprintf(' where frd_id in ('.sql_string ($cat).')'); } diff --git a/include/class/fiche.class.php b/include/class/fiche.class.php index d3d43fe5f..e17467a65 100644 --- a/include/class/fiche.class.php +++ b/include/class/fiche.class.php @@ -1605,7 +1605,7 @@ class Fiche throw Exception('Erreur pas de valeur pour jrn'); $filter_jrn=$this->cn->make_list("select jrn_def_fiche_cred from jrn_Def where jrn_def_id=$1", array($jrn)); - $filter_fd_id=" fd_id in (".$filter_jrn.")"; + $filter_fd_id=(empty($filter_jrn))?" fd_id in (-1) ":" fd_id in (".$filter_jrn.")"; $and=" and "; break; case 'deb': @@ -1613,7 +1613,7 @@ class Fiche throw Exception('Erreur pas de valeur pour jrn'); $filter_jrn=$this->cn->make_list("select jrn_def_fiche_deb from jrn_Def where jrn_def_id=$1", array($jrn)); - $filter_fd_id=" fd_id in (".$filter_jrn.")"; + $filter_fd_id=(empty($filter_jrn))?"fd_id in (-1) ":" fd_id in (".$filter_jrn.")"; $and=" and "; break; case 'filter':