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 ' +
'.tr('Descrizione').' | +'.tr('Importo').' | '; + if ($conto_primo['descrizione'] == 'Economico') { + echo ' +'.tr('Importo reddito').' | '; + } + echo ' +
---|---|---|
'; + + // 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).' + | '; + if ($conto_primo['descrizione'] == 'Economico') { + echo ' ++ '.moneyFormat($totale_reddito, 2).' + | '; + } + echo ' +
'.tr('Totale').' | +'.moneyFormat($totale_conto2).' | '; + if ($conto_primo['descrizione'] == 'Economico') { + echo ''.moneyFormat($totale_reddito2).' | '; + } + echo ' +