Aggiornamento stampa Fatturato (#537)
This commit is contained in:
parent
bc81339f18
commit
fb43fc8e6c
|
@ -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.
|
||||
*
|
||||
|
|
|
@ -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%;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
if ($dir == 'entrata') {
|
||||
$title = tr('Fatturato mensile dal _START_ al _END_', [
|
||||
'_START_' => 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 '
|
||||
<h4><strong>'.$title.'</strong></h4>';
|
||||
|
||||
// Intestazione tabella per righe
|
||||
echo '
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>'.tr('Mese').'</th>
|
||||
<th class="text-center" style="width: 15%">'.tr('Imponibile').'</th>
|
||||
<th class="text-center" style="width: 15%">'.tr('IVA').'</th>
|
||||
<th class="text-center" style="width: 15%">'.tr('Totale').'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>';
|
||||
|
||||
echo '
|
||||
</tbody>';
|
||||
|
||||
$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 '
|
||||
<tr>
|
||||
<td>'.$mese.'</td>
|
||||
<td class="text-right">'.moneyFormat($imponibile).'</td>
|
||||
<td class="text-right">'.moneyFormat($iva).'</td>
|
||||
<td class="text-right">'.moneyFormat($totale).'</td>
|
||||
</tr>';
|
||||
|
||||
$totale_imponibile += $imponibile;
|
||||
$totale_iva += $iva;
|
||||
$totale_finale += $totale;
|
||||
}
|
||||
|
||||
echo '
|
||||
<tr>
|
||||
<td class="text-right text-bold">'.tr('Totale', [], ['upper' => true]).':</td>
|
||||
<td class="text-right text-bold">'.moneyFormat($totale_imponibile).'</td>
|
||||
<td class="text-right text-bold">'.moneyFormat($totale_iva).'</td>
|
||||
<td class="text-right text-bold">'.moneyFormat($totale_finale).'</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>';
|
|
@ -1,59 +0,0 @@
|
|||
<style>
|
||||
<!--
|
||||
.table_values td{
|
||||
border: 1px solid #888;
|
||||
padding: 4px;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.table_values th{
|
||||
background: #abbfcb;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.first_cell{
|
||||
border-left: 1px solid #aaa;
|
||||
border-right: 1px solid #aaa;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
.table_cell{
|
||||
border-bottom: 1px solid #aaa;
|
||||
border-right: 1px solid #aaa;
|
||||
}
|
||||
|
||||
.full_cell1{
|
||||
border: 1px solid #aaa;
|
||||
}
|
||||
|
||||
.full_cell{
|
||||
border-top: 1px solid #aaa;
|
||||
border-right: 1px solid #aaa;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
.text-center{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.text-right{
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.b-right{
|
||||
border-right: 1px solid #aaa;
|
||||
}
|
||||
|
||||
.b-bottom{
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
.cell-padded{
|
||||
padding: 4px;
|
||||
}
|
||||
-->
|
||||
</style>
|
||||
|
||||
<page backcolor="#ffffff" backtop="35mm" backbottom="10mm" backleft="0mm" backright="0mm" footer="" style="font-size: $font_size$">
|
||||
$body$
|
||||
</page>
|
|
@ -1,9 +0,0 @@
|
|||
<page_header>
|
||||
<table $body_table_params$>
|
||||
<!-- Intestazione fornitore -->
|
||||
<tr><td style="width:105mm; font-size:8pt; color:#555;">
|
||||
<img src="$logo$" alt="Logo" border="0" />
|
||||
</td></tr>
|
||||
</table>
|
||||
<br/>
|
||||
</page_header>
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$dir = get('dir');
|
||||
$date_start = $_SESSION['period_start'];
|
||||
$date_end = $_SESSION['period_end'];
|
||||
|
||||
// Raggruppamento
|
||||
$query = "SELECT data,
|
||||
DATE_FORMAT(data, '%m-%Y') AS periodo,
|
||||
SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) as imponibile,
|
||||
SUM(iva) as iva,
|
||||
SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto + iva) as totale
|
||||
FROM co_documenti
|
||||
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento = co_tipidocumento.id
|
||||
INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id
|
||||
WHERE
|
||||
(data >= ".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);
|
|
@ -1,71 +0,0 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
// carica report html
|
||||
$report = file_get_contents($docroot.'/templates/fatturato/fatturato.html');
|
||||
$body = file_get_contents($docroot.'/templates/fatturato/fatturato_body.html');
|
||||
|
||||
$mesi = months();
|
||||
|
||||
$dir = get('dir');
|
||||
|
||||
$date_start = $_SESSION['period_start'];
|
||||
$date_end = $_SESSION['period_end'];
|
||||
|
||||
include_once $docroot.'/templates/pdfgen_variables.php';
|
||||
|
||||
$totale_imponibile = 0;
|
||||
$totale_iva = 0;
|
||||
$totale = 0;
|
||||
|
||||
if ($dir == 'entrata') {
|
||||
$addwhere = Modules::getAdditionalsQuery('Fatture di vendita');
|
||||
} else {
|
||||
$addwhere = Modules::getAdditionalsQuery('Fatture di acquisto');
|
||||
}
|
||||
|
||||
// Ciclo tra le fatture selezionate
|
||||
$query = "SELECT DATE_FORMAT( data, '%m-%Y' ) AS periodo, data FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id GROUP BY periodo, dir HAVING (data BETWEEN '".$date_start."' AND '".$date_end."') AND dir='".$dir."' ".$add_where.' ORDER BY data ASC';
|
||||
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$totrows = sizeof($rs);
|
||||
|
||||
if ($dir == 'entrata') {
|
||||
$body .= '<h3>FATTURATO MENSILE DAL '.Translator::dateToLocale($date_start).' AL '.Translator::dateToLocale($date_end)."</h3>\n";
|
||||
} else {
|
||||
$body .= '<h3>ACQUISTI MENSILI DAL '.Translator::dateToLocale($date_start).' AL '.Translator::dateToLocale($date_end)."</h3>\n";
|
||||
}
|
||||
|
||||
$body .= "<table cellspacing='0' style='table-layout:fixed;'>\n";
|
||||
$body .= "<col width='320'><col width='100'><col width='100'><col width='100'>\n";
|
||||
|
||||
$body .= "<tr><th bgcolor='#dddddd' class='full_cell1 cell-padded' width='320'>Mese</th>\n";
|
||||
$body .= "<th bgcolor='#dddddd' class='full_cell cell-padded' width='100'>Imponibile</th>\n";
|
||||
$body .= "<th bgcolor='#dddddd' class='full_cell cell-padded' width='100'>Iva</th>\n";
|
||||
$body .= "<th bgcolor='#dddddd' class='full_cell cell-padded' width='100'>Totale</th></tr>\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 .= "<tr><td class='first_cell cell-padded'>".$mesi[intval(date('m', strtotime($rs[$r]['data'])))].' '.date('Y', strtotime($rs[$r]['data']))."</td>\n";
|
||||
$body .= "<td class='table_cell cell-padded text-right'>".moneyFormat($rs2[0]['imponibile'])."</td>\n";
|
||||
$body .= "<td class='table_cell cell-padded text-right'>".moneyFormat($rs2[0]['iva'])."</td>\n";
|
||||
$body .= "<td class='table_cell cell-padded text-right'>".moneyFormat($rs2[0]['imponibile'] + $rs2[0]['iva'])."</td></tr>\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 .= "<tr>\n";
|
||||
$body .= " <td class='first_cell cell-padded text-right'><b>TOTALE:</b></td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'><b>".moneyFormat($totale_imponibile)."</b></td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'><b>".moneyFormat($totale_iva)."</b></td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'><b>".moneyFormat($totale)."</b></td>\n";
|
||||
$body .= "</tr>\n";
|
||||
|
||||
$body .= "</table>\n";
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
// File e cartelle deprecate
|
||||
$files = [
|
||||
'templates\fatturato\pdfgen.fatturato.php',
|
||||
'templates\fatturato\fatturato_body.html',
|
||||
'templates\fatturato\fatturato.html',
|
||||
'modules/interventi/widgets/interventi.pianificazionedashboard.interventi.php',
|
||||
];
|
||||
|
||||
foreach ($files as $key => $value) {
|
||||
$files[$key] = realpath(DOCROOT.'\\'.$value);
|
||||
}
|
||||
|
||||
delete($files);
|
Loading…
Reference in New Issue