From 3baffc93258ab61dc673ab773703574b43587755 Mon Sep 17 00:00:00 2001 From: Fabio Lovato Date: Wed, 1 Apr 2020 19:20:55 +0200 Subject: [PATCH] Velocizzazione stampa piano dei conti livello 1 --- .../pdfgen.partitario_mastrino.php | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/templates/partitario_mastrino/pdfgen.partitario_mastrino.php b/templates/partitario_mastrino/pdfgen.partitario_mastrino.php index 2698bc9fd..d2ec03c7b 100755 --- a/templates/partitario_mastrino/pdfgen.partitario_mastrino.php +++ b/templates/partitario_mastrino/pdfgen.partitario_mastrino.php @@ -167,23 +167,21 @@ elseif (get('lev') == '1') { $rs2 = $dbo->fetchArray('SELECT id, numero, descrizione FROM co_pianodeiconti2 WHERE idpianodeiconti1="'.$rs1[$x]['id'].'"'); for ($y = 0; $y < sizeof($rs2); ++$y) { - $body .= " ".$rs2[$y]['numero'].' '.$rs2[$y]['descrizione']."\n"; - // Ciclo fra i sotto-conti di livello 2 - $rs3 = $dbo->fetchArray('SELECT id, numero, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2="'.$rs2[$y]['id'].'"'); + $rs3 = $dbo->fetchArray('SELECT id, numero, descrizione, movimenti.totale FROM co_pianodeiconti3 LEFT JOIN (SELECT SUM(totale) AS totale, idconto FROM co_movimenti GROUP BY idconto) AS movimenti ON co_pianodeiconti3.id=movimenti.idconto WHERE idpianodeiconti2="'.$rs2[$y]['id'].'" AND movimenti.totale != 0'); + + if( !empty($rs3)){ + $body .= " ".$rs2[$y]['numero'].' '.$rs2[$y]['descrizione']."\n"; + } for ($z = 0; $z < sizeof($rs3); ++$z) { $v_dare = []; $v_avere = []; - $rs = $dbo->fetchArray('SELECT * FROM co_movimenti WHERE idconto="'.$rs3[$z]['id'].'" AND data >= '.prepare($date_start).' AND data <= '.prepare($date_end).' ORDER BY data ASC'); - - for ($i = 0; $i < sizeof($rs); ++$i) { - if ($rs[$i]['totale'] >= 0) { - $v_dare[] = abs($rs[$i]['totale']); - } else { - $v_avere[] = abs($rs[$i]['totale']); - } + if ($rs3[$z]['totale'] >= 0) { + $v_dare[] = abs($rs3[$z]['totale']); + } else { + $v_avere[] = abs($rs3[$z]['totale']); } $totale = sum($v_dare) - sum($v_avere);