From 782a1656c6ec80249444d7b7bc66c25f688b1b6b Mon Sep 17 00:00:00 2001 From: loviuz Date: Sat, 21 Dec 2019 16:31:34 +0100 Subject: [PATCH] Aggiunta apertura conti automatica nel piano dei conti --- modules/partitario/dettagli_conto.php | 24 ++++++++++++++++++++++++ modules/partitario/edit.php | 8 ++++++++ 2 files changed, 32 insertions(+) diff --git a/modules/partitario/dettagli_conto.php b/modules/partitario/dettagli_conto.php index a4cbcb41f..35d5e8fa4 100644 --- a/modules/partitario/dettagli_conto.php +++ b/modules/partitario/dettagli_conto.php @@ -19,6 +19,30 @@ GROUP BY co_movimenti.idmastrino ORDER BY co_movimenti.data DESC'; $movimenti = $dbo->fetchArray($query); +// Se il conto fa parte dello stato patrimoniale, sommo i movimenti del periodo precedente +$primo_livello = $dbo->fetchOne('SELECT co_pianodeiconti1.descrizione FROM co_pianodeiconti1 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti1.id=co_pianodeiconti2.idpianodeiconti1 INNER JOIN co_pianodeiconti3 ON co_pianodeiconti2.id=co_pianodeiconti3.idpianodeiconti2 WHERE co_pianodeiconti3.id='.prepare($id_conto))['descrizione']; + +if ($primo_livello == 'Patrimoniale') { + $saldo_precedente = $dbo->fetchOne('SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto='.prepare($id_conto).' AND data < '.prepare($_SESSION['period_start']).' GROUP BY idconto')['totale']; + + $movimenti_precedenti[] = + [ + 'id' => null, + 'idmastrino' => null, + 'data' => $_SESSION['period_start'], + 'data_documento' => null, + 'iddocumento' => 0, + 'id_scadenza' => null, + 'is_insoluto' => 0, + 'idanagrafica' => 0, + 'descrizione' => 'Apertura conti', + 'idconto' => $idconto, + 'totale' => $saldo_precedente, + 'primanota' => 0, + ]; + $movimenti = array_merge($movimenti_precedenti, $movimenti); +} + if (!empty($movimenti)) { echo ' diff --git a/modules/partitario/edit.php b/modules/partitario/edit.php index 23d471f4c..fe7c6adc7 100644 --- a/modules/partitario/edit.php +++ b/modules/partitario/edit.php @@ -56,6 +56,14 @@ foreach ($primo_livello as $conto_primo) { $movimenti = $dbo->fetchArray($query); $totale_conto = sum(array_column($movimenti, 'totale')); + + // Se il conto รจ patrimoniale, aggiungo i movimenti del periodo precedente + if ($conto_primo['descrizione'] == 'Patrimoniale') { + $saldo_precedente = $dbo->fetchOne('SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto='.prepare($conto_terzo['id']).' AND data < '.prepare($_SESSION['period_start']).' GROUP BY idconto')['totale']; + + $totale_conto += $saldo_precedente; + } + $totale_conto = ($conto_primo['descrizione'] == 'Patrimoniale') ? $totale_conto : -$totale_conto; // Somma dei totali