diff --git a/modules/partitario/actions.php b/modules/partitario/actions.php index 7f421c622..a3a5b60b4 100755 --- a/modules/partitario/actions.php +++ b/modules/partitario/actions.php @@ -229,4 +229,23 @@ switch (post('op')) { co_movimenti.data BETWEEN '.prepare($start).' AND '.prepare($end)); break; + + case 'search': + $text = post('text'); + $id_conti2 = 0; + $id_conti3 = 0; + + if (!empty($text)) { + $id_conti = $dbo->fetchArray('SELECT id AS idpianodeiconti2 FROM co_pianodeiconti2 WHERE descrizione LIKE '.prepare('%'.$text.'%')); + $id_conti2 = array_column($id_conti, 'idpianodeiconti2'); + + $id_conti = $dbo->fetchArray('SELECT id AS idpianodeiconti3, idpianodeiconti2 FROM co_pianodeiconti3 WHERE descrizione LIKE '.prepare('%'.$text.'%')); + + $id_conti3 = array_column($id_conti, 'idpianodeiconti3'); + $id_conti2_3 = array_column($id_conti, 'idpianodeiconti2'); + } + + echo json_encode(['conti2' => $id_conti2, 'conti3' => $id_conti3, 'conti2_3' => $id_conti2_3]); + + break; } diff --git a/modules/partitario/dettagli_conto2.php b/modules/partitario/dettagli_conto2.php new file mode 100644 index 000000000..58732ece9 --- /dev/null +++ b/modules/partitario/dettagli_conto2.php @@ -0,0 +1,235 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +$id_conto = get('id_conto'); +$conto_secondo = $dbo->selectOne('co_pianodeiconti2', '*', ['id' => $id_conto]); +$conto_primo = $dbo->selectOne('co_pianodeiconti1', '*', ['id' => $conto_secondo['idpianodeiconti1']]); + +// Livello 3 +$query3 = 'SELECT `co_pianodeiconti3`.*, movimenti.numero_movimenti, movimenti.totale, movimenti.totale_reddito, anagrafica.idanagrafica, anagrafica.deleted_at + FROM `co_pianodeiconti3` + LEFT OUTER JOIN ( + SELECT idanagrafica, + idconto_cliente, + idconto_fornitore, + deleted_at + FROM an_anagrafiche + ) AS anagrafica ON co_pianodeiconti3.id IN (anagrafica.idconto_cliente, anagrafica.idconto_fornitore) + LEFT OUTER JOIN ( + SELECT COUNT(idconto) AS numero_movimenti, + idconto, + SUM(totale) AS totale, + SUM(totale_reddito) AS totale_reddito + FROM co_movimenti + WHERE data BETWEEN '.prepare($_SESSION['period_start']).' AND '.prepare($_SESSION['period_end']).' GROUP BY idconto + ) movimenti ON co_pianodeiconti3.id=movimenti.idconto + WHERE `idpianodeiconti2` = '.prepare($conto_secondo['id']).' ORDER BY numero ASC'; + +$terzo_livello = $dbo->fetchArray($query3); + +if (!empty($terzo_livello)) { + echo ' +
+ + + + + '; + if ($conto_primo['descrizione'] == 'Economico') { + echo ' + '; + } + echo ' + + + '; + foreach ($terzo_livello as $conto_terzo) { + // Se il conto non ha documenti collegati posso eliminarlo + $numero_movimenti = $conto_terzo['numero_movimenti']; + + $totale_conto = $conto_terzo['totale']; + $totale_reddito = $conto_terzo['totale_reddito']; + if ($conto_primo['descrizione'] != 'Patrimoniale') { + $totale_conto = -$totale_conto; + $totale_reddito = -$totale_reddito; + } + + $totale_conto2 += $totale_conto; + $totale_reddito2 += $totale_reddito; + + echo ' + + + + '; + if ($conto_primo['descrizione'] == 'Economico') { + echo ' + '; + } + echo ' + '; + } +} else { + echo ' +
'.tr('Nessun conto presente').''; +} + +if (!empty($terzo_livello)) { + echo ' + + + + + '; + if ($conto_primo['descrizione'] == 'Economico') { + echo ' '; + } + echo ' + + +
'.tr('Descrizione').''.tr('Importo').''.tr('Importo reddito').'
'; + + // Possibilità di esplodere i movimenti del conto + if (!empty($numero_movimenti)) { + echo ' + '; + } + + // Span con i pulsanti + echo ' + '; + + // Possibilità di visionare l'anagrafica + $id_anagrafica = $conto_terzo['idanagrafica']; + $anagrafica_deleted = $conto_terzo['deleted_at']; + if (isset($id_anagrafica)) { + echo Modules::link('Anagrafiche', $id_anagrafica, ' '); + } + + // Stampa mastrino + if (!empty($numero_movimenti)) { + echo ' + '.Prints::getLink('Mastrino', $conto_terzo['id'], 'btn-info btn-xs', '', null, 'lev=3'); + } + + // Pulsante per aggiornare il totale reddito del conto di livello 3 + echo ' + '; + + // Pulsante per modificare il nome del conto di livello 3 + echo ' + '; + + // Possibilità di eliminare il conto se non ci sono movimenti collegati + if ($numero_movimenti <= 0) { + echo ' + + + '; + } + + echo ' + '; + + // Span con info del conto + echo ' + +  '.$conto_secondo['numero'].'.'.$conto_terzo['numero'].' '.$conto_terzo['descrizione'].($conto_terzo['percentuale_deducibile'] < 100 ? ' ('.tr('deducibile al _PERC_%', ['_PERC_' => Translator::numberToLocale($conto_terzo['percentuale_deducibile'], 0)]).')' : '').' + + + + '.moneyFormat($totale_conto, 2).' + + '.moneyFormat($totale_reddito, 2).' +
'.tr('Totale').''.moneyFormat($totale_conto2).''.moneyFormat($totale_reddito2).'
+

+
'; +} + +echo ' +'; \ No newline at end of file diff --git a/modules/partitario/dettagli_conto.php b/modules/partitario/dettagli_conto3.php old mode 100755 new mode 100644 similarity index 100% rename from modules/partitario/dettagli_conto.php rename to modules/partitario/dettagli_conto3.php diff --git a/modules/partitario/edit.php b/modules/partitario/edit.php index b3383c689..367bf4300 100755 --- a/modules/partitario/edit.php +++ b/modules/partitario/edit.php @@ -32,10 +32,16 @@ if ($bilancio_gia_aperto) { echo '
-
+
+
+ +
+
-
-
- '.$conto_secondo['numero'].' '.$conto_secondo['descrizione'].' -
- -
- - - - - '; - if ($conto_primo['descrizione'] == 'Economico') { - echo ' - '; - } - echo ' - - - - '; - - // Livello 3 - $query3 = 'SELECT `co_pianodeiconti3`.*, movimenti.numero_movimenti, movimenti.totale, movimenti.totale_reddito, anagrafica.idanagrafica, anagrafica.deleted_at - FROM `co_pianodeiconti3` - LEFT OUTER JOIN ( - SELECT idanagrafica, - idconto_cliente, - idconto_fornitore, - deleted_at - FROM an_anagrafiche - ) AS anagrafica ON co_pianodeiconti3.id IN (anagrafica.idconto_cliente, anagrafica.idconto_fornitore) - LEFT OUTER JOIN ( - SELECT COUNT(idconto) AS numero_movimenti, - idconto, - SUM(totale) AS totale, - SUM(totale_reddito) AS totale_reddito - FROM co_movimenti - WHERE data BETWEEN '.prepare($_SESSION['period_start']).' AND '.prepare($_SESSION['period_end']).' GROUP BY idconto - ) movimenti ON co_pianodeiconti3.id=movimenti.idconto - WHERE `idpianodeiconti2` = '.prepare($conto_secondo['id']).' ORDER BY numero ASC'; - $terzo_livello = $dbo->fetchArray($query3); - foreach ($terzo_livello as $conto_terzo) { - // Se il conto non ha documenti collegati posso eliminarlo - $numero_movimenti = $conto_terzo['numero_movimenti']; - - $totale_conto = $conto_terzo['totale']; - $totale_reddito = $conto_terzo['totale_reddito']; - if ($conto_primo['descrizione'] != 'Patrimoniale') { - $totale_conto = -$totale_conto; - $totale_reddito = -$totale_reddito; - } - - $totale_conto2 += $totale_conto; - $totale_reddito2 += $totale_reddito; - - echo ' - - - - '; - if ($conto_primo['descrizione'] == 'Economico') { - echo ' - '; - } - echo ' - '; - } - - echo ' - - - - - - '; - if ($conto_primo['descrizione'] == 'Economico') { - echo ''; - } - echo ' - - -
'.tr('Descrizione').''.tr('Importo').''.tr('Importo reddito').'
'; - - // Possibilità di esplodere i movimenti del conto - if (!empty($numero_movimenti)) { - echo ' - '; - } - - // Span con i pulsanti - echo ' - '; - - // Possibilità di visionare l'anagrafica - $id_anagrafica = $conto_terzo['idanagrafica']; - $anagrafica_deleted = $conto_terzo['deleted_at']; - if (isset($id_anagrafica)) { - echo Modules::link('Anagrafiche', $id_anagrafica, ' '); - } - - // Stampa mastrino - if (!empty($numero_movimenti)) { - echo ' - '.Prints::getLink('Mastrino', $conto_terzo['id'], 'btn-info btn-xs', '', null, 'lev=3'); - } - - // Pulsante per aggiornare il totale reddito del conto di livello 3 - echo ' - '; - - // Pulsante per modificare il nome del conto di livello 3 - echo ' - '; - - // Possibilità di eliminare il conto se non ci sono movimenti collegati - if ($numero_movimenti <= 0) { - echo ' - - - '; - } - - echo ' - '; - - // Span con info del conto - echo ' - -  '.$conto_secondo['numero'].'.'.$conto_terzo['numero'].' '.$conto_terzo['descrizione'].($conto_terzo['percentuale_deducibile'] < 100 ? ' ('.tr('deducibile al _PERC_%', ['_PERC_' => Translator::numberToLocale($conto_terzo['percentuale_deducibile'], 0)]).')' : '').' - - - - '.moneyFormat($totale_conto, 2).' - - '.moneyFormat($totale_reddito, 2).' -
'.tr('Totale').''.moneyFormat($totale_conto2).''.moneyFormat($totale_reddito2).'
- -

+ +
+ + + '.$conto_secondo['numero'].' '.$conto_secondo['descrizione'].' + + +
+
'; // Somma dei totali if ($conto_primo['descrizione'] == 'Patrimoniale') { @@ -287,6 +163,7 @@ foreach ($primo_livello as $conto_primo) { '.moneyFormat($passivita, 2).' + '; // Perdita d'esercizio @@ -302,6 +179,7 @@ foreach ($primo_livello as $conto_primo) { + '; } else { echo ' @@ -315,6 +193,7 @@ foreach ($primo_livello as $conto_primo) { '.moneyFormat(sum($utile_perdita), 2).' + '; } @@ -335,6 +214,7 @@ foreach ($primo_livello as $conto_primo) { '.moneyFormat(sum($pareggio2), 2).' + '; } else { echo ' @@ -345,6 +225,7 @@ foreach ($primo_livello as $conto_primo) { '.moneyFormat(sum($totale_ricavi), 2).' + @@ -354,6 +235,7 @@ foreach ($primo_livello as $conto_primo) { '.moneyFormat(sum($totale_costi), 2).' + @@ -363,6 +245,7 @@ foreach ($primo_livello as $conto_primo) { '.moneyFormat(sum($totale_ricavi) - abs(sum($totale_costi)), 2).' + '; } @@ -395,47 +278,35 @@ echo '