From fb43fc8e6ca6bf00e8b593e07b6c22d7e3af7317 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Sat, 14 Mar 2020 14:32:47 +0100 Subject: [PATCH] Aggiornamento stampa Fatturato (#537) --- modules/fatture/src/Fattura.php | 34 +++++++++++- templates/base/style.css | 1 - templates/fatturato/body.php | 71 ++++++++++++++++++++++++ templates/fatturato/fatturato.html | 59 -------------------- templates/fatturato/fatturato_body.html | 9 --- templates/fatturato/init.php | 24 ++++++++ templates/fatturato/pdfgen.fatturato.php | 71 ------------------------ update/2_4_14.php | 15 +++++ 8 files changed, 143 insertions(+), 141 deletions(-) create mode 100755 templates/fatturato/body.php delete mode 100755 templates/fatturato/fatturato.html delete mode 100755 templates/fatturato/fatturato_body.html create mode 100755 templates/fatturato/init.php delete mode 100755 templates/fatturato/pdfgen.fatturato.php create mode 100755 update/2_4_14.php diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php index 9aa8e9d11..456022e32 100755 --- a/modules/fatture/src/Fattura.php +++ b/modules/fatture/src/Fattura.php @@ -34,6 +34,10 @@ class Fattura extends Document 'tipo', ]; + protected $dates = [ + 'data', + ]; + /** * Crea una nuova fattura. * @@ -602,7 +606,7 @@ class Fattura extends Document } /** - * Scope a query to only include popular users. + * Scope per l'inclusione delle sole fatture con valore contabile. * * @param \Illuminate\Database\Eloquent\Builder $query * @@ -731,6 +735,34 @@ class Fattura extends Document return $numero; } + /** + * Scope per l'inclusione delle fatture di vendita. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeVendita($query) + { + return $query->whereHas('tipo', function (Builder $query) { + $query->where('dir', 'entrata'); + }); + } + + /** + * Scope per l'inclusione delle fatture di acquisto. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeAcquisto($query) + { + return $query->whereHas('tipo', function (Builder $query) { + $query->where('dir', 'uscita'); + }); + } + /** * Calcola il nuovo numero secondario di fattura. * diff --git a/templates/base/style.css b/templates/base/style.css index 9fa2af605..f5d1929e0 100755 --- a/templates/base/style.css +++ b/templates/base/style.css @@ -46,7 +46,6 @@ table.table-bordered thead tr:nth-child(2) th { small, .small, .small-bold, -table.table-bordered thead th, table#contents thead th { font-size: 70%; } diff --git a/templates/fatturato/body.php b/templates/fatturato/body.php new file mode 100755 index 000000000..94fe4649a --- /dev/null +++ b/templates/fatturato/body.php @@ -0,0 +1,71 @@ + Translator::dateToLocale($date_start), + '_END_' => Translator::dateToLocale($date_end), + ], ['upper' => true]); +} else { + $title = tr('Acquisti mensili dal _START_ al _END_', [ + '_START_' => Translator::dateToLocale($date_start), + '_END_' => Translator::dateToLocale($date_end), + ], ['upper' => true]); +} + +echo ' +

'.$title.'

'; + +// Intestazione tabella per righe +echo ' + + + + + + + + + + + '; + +echo ' + '; + +$totale_imponibile = 0; +$totale_iva = 0; +$totale_finale = 0; + +// Nel fatturato totale è corretto NON tenere in considerazione eventuali rivalse, ritenute acconto o contributi. +foreach ($raggruppamenti as $raggruppamento) { + $data = new \Carbon\Carbon($raggruppamento['data']); + $mese = $data->formatLocalized('%B %Y'); + + $imponibile = $raggruppamento['imponibile']; + $iva = $raggruppamento['iva']; + $totale = $raggruppamento['totale']; + + echo ' + + + + + + '; + + $totale_imponibile += $imponibile; + $totale_iva += $iva; + $totale_finale += $totale; +} + +echo ' + + + + + + + +
'.tr('Mese').''.tr('Imponibile').''.tr('IVA').''.tr('Totale').'
'.$mese.''.moneyFormat($imponibile).''.moneyFormat($iva).''.moneyFormat($totale).'
'.tr('Totale', [], ['upper' => true]).':'.moneyFormat($totale_imponibile).''.moneyFormat($totale_iva).''.moneyFormat($totale_finale).'
'; diff --git a/templates/fatturato/fatturato.html b/templates/fatturato/fatturato.html deleted file mode 100755 index 29fa3dd20..000000000 --- a/templates/fatturato/fatturato.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - $body$ - diff --git a/templates/fatturato/fatturato_body.html b/templates/fatturato/fatturato_body.html deleted file mode 100755 index ddffbe2a5..000000000 --- a/templates/fatturato/fatturato_body.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - -
- Logo -
-
-
diff --git a/templates/fatturato/init.php b/templates/fatturato/init.php new file mode 100755 index 000000000..057752753 --- /dev/null +++ b/templates/fatturato/init.php @@ -0,0 +1,24 @@ += ".prepare($date_start).' AND data <= '.prepare($date_end).') + AND dir = '.prepare($dir).' + '.$add_where.' +GROUP BY periodo +ORDER BY data ASC'; +$raggruppamenti = $dbo->fetchArray($query); diff --git a/templates/fatturato/pdfgen.fatturato.php b/templates/fatturato/pdfgen.fatturato.php deleted file mode 100755 index 32f53b6b0..000000000 --- a/templates/fatturato/pdfgen.fatturato.php +++ /dev/null @@ -1,71 +0,0 @@ -fetchArray($query); -$totrows = sizeof($rs); - -if ($dir == 'entrata') { - $body .= '

FATTURATO MENSILE DAL '.Translator::dateToLocale($date_start).' AL '.Translator::dateToLocale($date_end)."

\n"; -} else { - $body .= '

ACQUISTI MENSILI DAL '.Translator::dateToLocale($date_start).' AL '.Translator::dateToLocale($date_end)."

\n"; -} - -$body .= "\n"; -$body .= "\n"; - -$body .= "\n"; -$body .= "\n"; -$body .= "\n"; -$body .= "\n"; - -for ($r = 0; $r < sizeof($rs); ++$r) { - // Lettura totali - $rs2 = $dbo->fetchArray("SELECT SUM(subtotale-co_righe_documenti.sconto) AS imponibile, SUM(iva) AS iva FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE DATE_FORMAT(data,'%m-%Y') = \"".$rs[$r]['periodo'].'" AND idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="'.$dir.'")'); - - $body .= "\n"; - $body .= "\n"; - $body .= "\n"; - $body .= "\n"; - - $totale_imponibile += $rs2[0]['imponibile']; - $totale_iva += $rs2[0]['iva']; - //Nel fatturato totale è corretto NON tenere in considerazione eventuali rivalse, ritenute acconto o contributi. - $totale += $rs2[0]['imponibile'] + $rs2[0]['iva']; -} - -// Totali -$body .= "\n"; -$body .= " \n"; -$body .= " \n"; -$body .= " \n"; -$body .= " \n"; -$body .= "\n"; - -$body .= "
MeseImponibileIvaTotale
".$mesi[intval(date('m', strtotime($rs[$r]['data'])))].' '.date('Y', strtotime($rs[$r]['data']))."".moneyFormat($rs2[0]['imponibile'])."".moneyFormat($rs2[0]['iva'])."".moneyFormat($rs2[0]['imponibile'] + $rs2[0]['iva'])."
TOTALE:".moneyFormat($totale_imponibile)."".moneyFormat($totale_iva)."".moneyFormat($totale)."
\n"; diff --git a/update/2_4_14.php b/update/2_4_14.php new file mode 100755 index 000000000..dd1af6560 --- /dev/null +++ b/update/2_4_14.php @@ -0,0 +1,15 @@ + $value) { + $files[$key] = realpath(DOCROOT.'\\'.$value); +} + +delete($files);