Bug when ledger badly parametrized

This commit is contained in:
sparkyx 2022-05-03 22:53:51 +02:00
parent 6c4a4156a4
commit bbf995e827
4 changed files with 21 additions and 9 deletions

View file

@ -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)";
}
}

View file

@ -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)

View file

@ -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).')');
}

View file

@ -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':