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 '
+
+
+
+ '.tr('Mese').' |
+ '.tr('Imponibile').' |
+ '.tr('IVA').' |
+ '.tr('Totale').' |
+
+
+
+ ';
+
+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 '
+
+ '.$mese.' |
+ '.moneyFormat($imponibile).' |
+ '.moneyFormat($iva).' |
+ '.moneyFormat($totale).' |
+
';
+
+ $totale_imponibile += $imponibile;
+ $totale_iva += $iva;
+ $totale_finale += $totale;
+}
+
+echo '
+
+ '.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 @@
-
-
-
-
-
- |
-
-
-
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 .= "Mese | \n";
-$body .= "Imponibile | \n";
-$body .= "Iva | \n";
-$body .= "Totale |
\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 .= "".$mesi[intval(date('m', strtotime($rs[$r]['data'])))].' '.date('Y', strtotime($rs[$r]['data']))." | \n";
- $body .= "".moneyFormat($rs2[0]['imponibile'])." | \n";
- $body .= "".moneyFormat($rs2[0]['iva'])." | \n";
- $body .= "".moneyFormat($rs2[0]['imponibile'] + $rs2[0]['iva'])." |
\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 .= " TOTALE: | \n";
-$body .= " ".moneyFormat($totale_imponibile)." | \n";
-$body .= " ".moneyFormat($totale_iva)." | \n";
-$body .= " ".moneyFormat($totale)." | \n";
-$body .= "
\n";
-
-$body .= "
\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);