diff --git a/templates/partitario_mastrino/bottom.php b/templates/partitario_mastrino/bottom.php index be07e4aef..67b8d3d63 100644 --- a/templates/partitario_mastrino/bottom.php +++ b/templates/partitario_mastrino/bottom.php @@ -22,6 +22,7 @@ include_once __DIR__.'/../../core.php'; if (get('lev') == '2' || get('lev') == '3') { $dare = 0; $avere = 0; + $scalare += $saldo_iniziale; for ($i = 0; $i < sizeof($records); ++$i) { if ($records[$i]['totale'] >= 0) { $dare += $records[$i]['totale']; diff --git a/templates/partitario_mastrino/init.php b/templates/partitario_mastrino/init.php index a705f2d66..0da2a02eb 100644 --- a/templates/partitario_mastrino/init.php +++ b/templates/partitario_mastrino/init.php @@ -21,6 +21,8 @@ include_once __DIR__.'/../../core.php'; $azienda = $dbo->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica='.setting('Azienda predefinita')); $date_start = $_SESSION['period_start']; $date_end = $_SESSION['period_end']; +$saldo_iniziale = 0; +$i = 0; if (get('lev') == '3') { $conto3 = $dbo->fetchOne('SELECT * FROM co_pianodeiconti3 WHERE id='.prepare($id_record)); @@ -28,6 +30,20 @@ if (get('lev') == '3') { $conto1 = $dbo->fetchOne('SELECT * FROM co_pianodeiconti1 WHERE id='.prepare($conto2['idpianodeiconti1'])); // Movimenti $records = $dbo->fetchArray('SELECT * FROM co_movimenti WHERE idconto='.prepare($id_record).' AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data<='.prepare($date_end).' ORDER BY co_movimenti.data'); + + // Calcolo saldo iniziale se non รจ presente nessun movimento di apertura tra i movimenti del periodo + $has_movimento_apertura = false; + foreach ($records as $record) { + if ($record['is_apertura'] == 1) { + $has_movimento_apertura = true; + continue; + } + } + + if (empty($has_movimento_apertura)) { + $saldo_iniziale = $dbo->fetchOne('SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto='.prepare($id_record).' AND co_movimenti.data<'.prepare($date_start).' GROUP BY idconto')['totale']; + $data_saldo_iniziale = date('Y-m-d', strtotime($date_start.' -1 day')); + } } elseif (get('lev') == '2') { $records = $dbo->fetchArray('SELECT CONCAT(co_pianodeiconti3.numero, " ",co_pianodeiconti3.descrizione) AS descrizione, SUM(totale) AS totale FROM `co_movimenti` INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id WHERE idconto IN(SELECT id FROM co_pianodeiconti3 WHERE idpianodeiconti2='.prepare($id_record).') AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data<='.prepare($date_end).' GROUP BY idconto HAVING totale!=0'); $conto2 = $dbo->fetchOne('SELECT * FROM co_pianodeiconti2 WHERE id='.prepare($id_record)); diff --git a/templates/partitario_mastrino/piece.php b/templates/partitario_mastrino/piece.php index 6138a0c71..4d7ffb9ab 100644 --- a/templates/partitario_mastrino/piece.php +++ b/templates/partitario_mastrino/piece.php @@ -26,6 +26,19 @@ if ($record['titolo'] != $prev_titolo && get('lev') == 1) { '; } +if (!empty($saldo_iniziale) && $i == 0) { + echo ' +