1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-03-09 15:50:14 +01:00

Aggiornamento delle stampe

Aggiornamento della stampa del consuntivo del contratto al nuovo sistema.
Miglioramento della gestione automatica della formattazione dei numeri con decimali predefiniti.
This commit is contained in:
Thomas Zilio 2017-09-21 10:01:07 +02:00
parent 62ad12b8be
commit 0f37c587e1
43 changed files with 929 additions and 659 deletions

View File

@ -803,7 +803,7 @@ function sum($first, $second = null, $decimals = null)
$result = 0;
if (!is_numeric($decimals)) {
$decimals = is_numeric($decimals) ? $decimals : Settings::get('Cifre decimali per importi');
$decimals = is_numeric($decimals) ? $decimals : Translator::getFormatter()->getPrecision();
}
$bcadd = function_exists('bcadd');

View File

@ -80,7 +80,7 @@ if (count($rsp) != 0) {
if (!empty($rsp[$i]['idintervento'])) {
$rsp2 = $dbo->fetchArray('SELECT id, codice, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS data FROM in_interventi WHERE id='.prepare($rsp[$i]['idintervento']));
$info_intervento = Modules::link('Interventi', $rsp2[0]['id'], tr('Intervento _NUM_ del _DATE_', [
$info_intervento = Modules::link('Interventi', $rsp2[0]['id'], tr('Intervento num. _NUM_ del _DATE_', [
'_NUM_' => $rsp2[0]['codice'],
'_DATE_' => Translator::dateToLocale($rsp2[0]['data']),
]));

View File

@ -74,7 +74,7 @@ if (!empty($rs_art)) {
echo '
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
}

View File

@ -69,7 +69,7 @@ if (!empty($rsp)) {
if (!empty($r['idintervento'])) {
$rsp2 = $dbo->fetchArray('SELECT id, codice, data FROM in_interventi WHERE id='.prepare($r['idintervento']));
echo Modules::link('Interventi', $rsp2[0]['id'], tr('Intervento _NUM_ del _DATE_', [
echo Modules::link('Interventi', $rsp2[0]['id'], tr('Intervento num. _NUM_ del _DATE_', [
'_NUM_' => $rsp2[0]['codice'],
'_DATE_' => Translator::dateToLocale($rsp2[0]['data']),
]));

View File

@ -110,7 +110,7 @@ if (!empty($rs)) {
echo '
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
}

View File

@ -170,7 +170,7 @@ if (!empty($rs)) {
echo '
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
}

View File

@ -86,14 +86,30 @@ switch (post('op')) {
$rs = $dbo->fetchArray('SELECT * FROM in_interventi_tecnici WHERE idtecnico='.prepare($post['idtecnico'][$idriga]).' AND idintervento='.prepare($id_record));
if ($idtipointervento_tecnico != $rs[0]['idtipointervento']) {
$rs = $dbo->fetchArray('SELECT * FROM in_tariffe WHERE idtecnico='.prepare($post['idtecnico'][$idriga]).' AND idtipointervento='.prepare($idtipointervento_tecnico));
$rsc = $dbo->fetchArray('SELECT * FROM in_tariffe WHERE idtecnico='.prepare($post['idtecnico'][$idriga]).' AND idtipointervento='.prepare($idtipointervento_tecnico));
$prezzo_ore_unitario = $rs[0]['costo_ore'];
$prezzo_km_unitario = $rs[0]['costo_km'];
$prezzo_dirittochiamata = $rs[0]['costo_dirittochiamata'];
$prezzo_ore_unitario_tecnico = $rs[0]['costo_ore_tecnico'];
$prezzo_km_unitario_tecnico = $rs[0]['costo_km_tecnico'];
$prezzo_dirittochiamata_tecnico = $rs[0]['costo_dirittochiamata_tecnico'];
if ($rsc[0]['costo_ore'] != 0 || $rsc[0]['costo_km'] != 0 || $rsc[0]['costo_dirittochiamata'] != 0 || $rsc[0]['costo_ore_tecnico'] != 0 || $rsc[0]['costo_km_tecnico'] != 0 || $rsc[0]['costo_dirittochiamata_tecnico'] != 0) {
$prezzo_ore_unitario = $rsc[0]['costo_ore'];
$prezzo_km_unitario = $rsc[0]['costo_km'];
$prezzo_dirittochiamata = $rsc[0]['costo_dirittochiamata'];
$prezzo_ore_unitario_tecnico = $rsc[0]['costo_ore_tecnico'];
$prezzo_km_unitario_tecnico = $rsc[0]['costo_km_tecnico'];
$prezzo_dirittochiamata_tecnico = $rsc[0]['costo_dirittochiamata_tecnico'];
}
// ...altrimenti se non c'è una tariffa per il tecnico leggo i costi globali
else {
$rsc = $dbo->fetchArray('SELECT * FROM in_tipiintervento WHERE idtipointervento='.prepare($idtipointervento_tecnico));
$prezzo_ore_unitario = $rsc[0]['costo_orario'];
$prezzo_km_unitario = $rsc[0]['costo_km'];
$prezzo_dirittochiamata = $rsc[0]['costo_diritto_chiamata'];
$prezzo_ore_unitario_tecnico = $rsc[0]['costo_orario_tecnico'];
$prezzo_km_unitario_tecnico = $rsc[0]['costo_km_tecnico'];
$prezzo_dirittochiamata_tecnico = $rsc[0]['costo_diritto_chiamata_tecnico'];
}
} else {
$prezzo_ore_unitario = $rs[0]['prezzo_ore_unitario'];
$prezzo_km_unitario = $rs[0]['prezzo_km_unitario'];

View File

@ -92,7 +92,7 @@ if (!empty($rs)) {
<br><span class="label label-danger">
- '.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'
</span>';
}

View File

@ -59,7 +59,7 @@ if (count($rs2) > 0) {
<br><span class="label label-danger">
- '.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'
</span>';
}

View File

@ -24,8 +24,8 @@ if (!empty($results)) {
echo '
<tr>
<td>
'.Modules::link('Interventi', $result['codice'], tr('Intervento _NUM_ del _DATE_', [
'_NUM_' => $result['idintervento'],
'.Modules::link('Interventi', $result['codice'], tr('Intervento num. _NUM_ del _DATE_', [
'_NUM_' => $result['codice'],
'_DATE_' => Translator::dateToLocale($result['data']),
])).'
</td>

View File

@ -241,7 +241,7 @@ if (!empty($rs2)) {
if (!empty($rs2[$j]['idintervento'])) {
echo '
'.Modules::link('Interventi', $rs2[$j]['id'], tr('Intervento _NUM_ del _DATE_', [
'.Modules::link('Interventi', $rs2[$j]['id'], tr('Intervento num. _NUM_ del _DATE_', [
'_NUM_' => $rs2[$j]['codice'],
'_DATE_' => Translator::dateToLocale($rs2[$j]['data_intervento']),
])).'<br>';

View File

@ -100,7 +100,7 @@ if (!empty($rs)) {
echo '
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
}

View File

@ -26,7 +26,7 @@ $totale = 0;
$totale_stato = [];
// Tabella con riepilogo interventi
$rsi = $dbo->fetchArray('SELECT *, in_interventi.id, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS inizio, (SELECT SUM(ore) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS ore, (SELECT MIN(km) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS km FROM co_preventivi_interventi INNER JOIN in_interventi ON co_preventivi_interventi.idintervento=in_interventi.id WHERE co_preventivi_interventi.idpreventivo='.prepare($id_record).' ORDER BY co_preventivi_interventi.idintervento DESC');
$rsi = $dbo->fetchArray('SELECT *, in_interventi.id, in_interventi.codice, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS inizio, (SELECT SUM(ore) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS ore, (SELECT MIN(km) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS km FROM co_preventivi_interventi INNER JOIN in_interventi ON co_preventivi_interventi.idintervento=in_interventi.id WHERE co_preventivi_interventi.idpreventivo='.prepare($id_record).' ORDER BY co_preventivi_interventi.idintervento DESC');
if (!empty($rsi)) {
echo '
<table class="table table-bordered table-condensed">
@ -49,8 +49,8 @@ if (!empty($rsi)) {
<tr style="background:'.$colori[$int['idstatointervento']].';">
<td>
<a href="javascript:;" class="btn btn-primary btn-xs" onclick="$(\'#dettagli_'.$int['id'].'\').toggleClass(\'hide\'); $(this).find(\'i\').toggleClass(\'fa-plus\').toggleClass(\'fa-minus\');"><i class="fa fa-plus"></i></a>
'.Modules::link('Interventi', $int['id'], tr('Intervento _NUM_ del _DATE_', [
'_NUM_' => $int['id'],
'.Modules::link('Interventi', $int['id'], tr('Intervento num. _NUM_ del _DATE_', [
'_NUM_' => $int['codice'],
'_DATE_' => Translator::dateToLocale($int['inizio']),
])).'
</td>

View File

@ -57,7 +57,7 @@ if (!empty($rs)) {
echo '
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
}

View File

@ -30,15 +30,15 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body">
<div class="row">
<div class="col-md-3">
<div class="col-md-4">
{[ "type": "number", "label": "<?php echo tr('Costo orario'); ?>", "name": "costo_orario", "required": 1, "value": "$costo_orario$", "icon-after": "<i class='fa fa-euro'></i>" ]}
</div>
<div class="col-md-3">
<div class="col-md-4">
{[ "type": "number", "label": "<?php echo tr('Costo km'); ?>", "name": "costo_km", "required": 1, "value": "$costo_km$", "icon-after": "<i class='fa fa-euro'></i>" ]}
</div>
<div class="col-md-3">
<div class="col-md-4">
{[ "type": "number", "label": "<?php echo tr('Diritto chiamata'); ?>", "name": "costo_diritto_chiamata", "required": 1, "value": "$costo_diritto_chiamata$", "icon-after": "<i class='fa fa-euro'></i>" ]}
</div>
</div>
@ -53,15 +53,15 @@ include_once __DIR__.'/../../core.php';
<div class="panel-body">
<div class="row">
<div class="col-md-3">
<div class="col-md-4">
{[ "type": "number", "label": "<?php echo tr('Costo orario'); ?>", "name": "costo_orario_tecnico", "required": 1, "value": "$costo_orario_tecnico$", "icon-after": "<i class='fa fa-euro'></i>" ]}
</div>
<div class="col-md-3">
<div class="col-md-4">
{[ "type": "number", "label": "<?php echo tr('Costo km'); ?>", "name": "costo_km_tecnico", "required_tecnico": 1, "value": "$costo_km_tecnico$", "icon-after": "<i class='fa fa-euro'></i>" ]}
</div>
<div class="col-md-3">
<div class="col-md-4">
{[ "type": "number", "label": "<?php echo tr('Diritto chiamata'); ?>", "name": "costo_diritto_chiamata_tecnico", "required": 1, "value": "$costo_diritto_chiamata_tecnico$", "icon-after": "<i class='fa fa-euro'></i>" ]}
</div>
</div>

View File

@ -9,6 +9,9 @@ foreach ($get as $key => $value) {
${$key} = !empty(${$key}) ? ${$key} : $value;
}
// Impostazione automatica della precisione a 2 numeri decimali
Translator::getFormatter()->setPrecision(2);
// Individuazione del formato della stampa
$old_format = file_exists($docroot.'/templates/'.$ptype.'/pdfgen.'.$ptype.'.php') || file_exists($docroot.'/templates/'.$ptype.'/custom/pdfgen.'.$ptype.'.php');

View File

@ -58,6 +58,50 @@ class Formatter
return static::$standards;
}
/**
* Restituisce gli elementi di separazione secondo la formattazione in utilizzo.
*
* @return mixed
*/
public function format($value)
{
if (!empty($value)) {
if ($this->isStandardDate($value)) {
$value = $this->formatDate($value);
} elseif ($this->isStandardTime($value)) {
$value = $this->formatTime($value);
} elseif ($this->isStandardTimestamp($value)) {
$value = $this->formatTimestamp($value);
} elseif ($this->isStandardNumber($value)) {
$value = $this->formatNumber($value);
}
}
return $value;
}
/**
* Restituisce gli elementi di separazione secondo la formattazione in utilizzo.
*
* @return mixed
*/
public function parse($value)
{
if (!empty($value)) {
if ($this->isFormattedDate($value)) {
$value = $this->parseDate($value);
} elseif ($this->isFormattedTime($value)) {
$value = $this->parseTime($value);
} elseif ($this->isFormattedTimestamp($value)) {
$value = $this->parseTimestamp($value);
} elseif ($this->isFormattedNumber($value)) {
$value = $this->parseNumber($value);
}
}
return $value;
}
// Gestione della conversione dei numeri
/**
@ -71,25 +115,23 @@ class Formatter
{
$value = trim($value);
if (isset($decimals)) {
$original = $this->getPrecision();
$this->setPrecision($decimals);
}
if (is_object($this->numberFormatter)) {
if (!empty($decimals)) {
$original = $this->numberFormatter->getAttribute(NumberFormatter::FRACTION_DIGITS);
$this->numberFormatter->setAttribute(NumberFormatter::FRACTION_DIGITS, $decimals);
}
$result = $this->numberFormatter->format($value);
if (!empty($decimals)) {
$this->numberFormatter->setAttribute(NumberFormatter::FRACTION_DIGITS, $original);
}
} else {
$decimals = !empty($decimals) ? $decimals : $this->precision;
$number = number_format($value, $decimals, $this->getStandardFormats()['number']['decimals'], $this->getStandardFormats()['number']['thousands']);
$number = number_format($value, $this->getPrecision(), $this->getStandardFormats()['number']['decimals'], $this->getStandardFormats()['number']['thousands']);
$result = $this->customNumber($number, $this->getStandardFormats()['number'], $this->getNumberSeparators());
}
if (isset($decimals)) {
$this->setPrecision($original);
}
return is_numeric($value) ? $result : false;
}
@ -112,6 +154,8 @@ class Formatter
$result = $this->customNumber($value, $this->getNumberSeparators(), $this->getStandardFormats()['number']);
}
$result = is_numeric($result) ? floatval($result) : $result;
return $result;
}
@ -157,6 +201,16 @@ class Formatter
}
}
/**
* Restituisce la precisione di default per i numeri da formattare.
*
* @return int
*/
public function getPrecision()
{
return is_object($this->numberFormatter) ? $this->numberFormatter->getAttribute(NumberFormatter::FRACTION_DIGITS) : $this->precision;
}
/**
* Restituisce gli elementi di separazione secondo la formattazione in utilizzo.
*

View File

@ -198,7 +198,7 @@ class Translator extends Util\Singleton
*/
public static function numberToEnglish($string)
{
return floatval(self::getFormatter()->parseNumber($string));
return self::getFormatter()->parseNumber($string);
}
/**

View File

@ -107,26 +107,26 @@ foreach ($righe as $r) {
echo "
<td class='text-center'>
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'], 2)).' '.$r['um'].'
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'])).' '.$r['um'].'
</td>';
if ($mostra_prezzi) {
// Prezzo unitario
echo "
<td class='text-right'>
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'], 2)).' &euro;
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' &euro;
</td>';
// Imponibile
echo "
<td class='text-right'>
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' &euro;';
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' &euro;';
if ($r['sconto'] > 0) {
echo '
<br><small class="help-block">- '.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
if ($count <= 1) {
@ -172,7 +172,7 @@ if ($mostra_prezzi) {
</td>
<th class="text-center">
<b>'.Translator::numberToLocale($imponibile, 2).' &euro;</b>
<b>'.Translator::numberToLocale($imponibile).' &euro;</b>
</th>
</tr>';
@ -183,7 +183,7 @@ if ($mostra_prezzi) {
</td>
<th class="text-center">
<b>-'.Translator::numberToLocale($sconto, 2).' &euro;</b>
<b>-'.Translator::numberToLocale($sconto).' &euro;</b>
</th>
</tr>';
}
@ -195,7 +195,7 @@ if ($mostra_prezzi) {
<b>'.tr('Quotazione totale', [], ['upper' => true]).':</b>
</td>
<th class="text-center">
<b>'.Translator::numberToLocale($totale, 2).' &euro;</b>
<b>'.Translator::numberToLocale($totale).' &euro;</b>
</th>
</tr>';
}

View File

@ -70,7 +70,7 @@ for ($r = 0; $r < sizeof($rs_righe); ++$r) {
$orario .= Translator::timestampToLocale($rst[$j]['orario_inizio']).' - '.Translator::timestampToLocale($rst[$j]['orario_fine']);
}
$tecnici_full .= '<b>'.$rst[$j]['ragione_sociale'].'</b> ('.$orario.')<br/>'.Translator::numberToLocale($t1 / 60, 2).'h x '.Translator::numberToLocale($rst[$j]['prezzo_ore_unitario'], 2).' &euro;/h<br>'.Translator::numberToLocale($rst[$j]['km'], 2).'km x '.Translator::numberToLocale($rst[$j]['prezzo_km_unitario'], 2).' km/h<br>'.Translator::numberToLocale($rst[$j]['prezzo_dirittochiamata'], 2)."&euro; d.c.<br><br>\n";
$tecnici_full .= '<b>'.$rst[$j]['ragione_sociale'].'</b> ('.$orario.')<br/>'.Translator::numberToLocale($t1 / 60).'h x '.Translator::numberToLocale($rst[$j]['prezzo_ore_unitario']).' &euro;/h<br>'.Translator::numberToLocale($rst[$j]['km']).'km x '.Translator::numberToLocale($rst[$j]['prezzo_km_unitario']).' km/h<br>'.Translator::numberToLocale($rst[$j]['prezzo_dirittochiamata'])."&euro; d.c.<br><br>\n";
// Conteggio ore totali
$t += $t1 / 60;
@ -143,7 +143,7 @@ if (sizeof($contratti) > 0) {
// Subtotale
$subtotale = $tot_ore_consuntivo[$j] + $km[$j] * $costo_km[$j] + $diritto_chiamata[$j];
$body .= "<td valign=\"top\" align='right'>\n";
$body .= ' '.Translator::numberToLocale($subtotale, 2)."\n";
$body .= ' '.Translator::numberToLocale($subtotale)."\n";
$body .= "</td></tr>\n";
$totale += $subtotale;
$totale_consuntivo += $tot_ore_consuntivo[$j] + $tot_km_consuntivo[$j];
@ -154,7 +154,7 @@ if (sizeof($contratti) > 0) {
$body .= "</td>\n";
$body .= "<td align=\"right\" bgcolor=\"#dddddd\">\n";
$body .= '<span><b>'.Translator::numberToLocale($totale, 2)." &euro;</b></span>\n";
$body .= '<span><b>'.Translator::numberToLocale($totale)." &euro;</b></span>\n";
$body .= "</td></tr>\n";
$body .= "</tbody>\n";
$body .= "</table>\n";
@ -210,12 +210,12 @@ if (!empty($idinterventi)) {
$netto = $rs2[$i]['prezzo_vendita'];
$netto = $netto + $netto / 100 * $rs2[$i]['prc_guadagno'];
$iva = $netto / 100 * $rs2[$i]['prciva_vendita'];
$body .= '<span>'.Translator::numberToLocale($netto, 2)." &euro;</span>\n";
$body .= '<span>'.Translator::numberToLocale($netto)." &euro;</span>\n";
$body .= "</td>\n";
// Prezzo di vendita
$body .= "<td class='table_cell' align='center'>\n";
$body .= "<span><span class='prezzo_articolo'>".Translator::numberToLocale($netto * $qta, 2)."</span> &euro;</span>\n";
$body .= "<span><span class='prezzo_articolo'>".Translator::numberToLocale($netto * $qta)."</span> &euro;</span>\n";
$body .= "</td></tr>\n";
$totale_articoli += $netto * $qta;
}
@ -226,7 +226,7 @@ if (!empty($idinterventi)) {
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_articoli, 2)." &euro;</b>\n";
$body .= '<b>'.Translator::numberToLocale($totale_articoli)." &euro;</b>\n";
$body .= "</td></tr>\n";
$body .= "</table><br/>\n";
}
@ -269,18 +269,18 @@ if (!empty($idinterventi)) {
// Quantità
$qta = $rs2[$i]['qta'];
$body .= "<td class='table_cell' align='center'>\n";
$body .= '<span>'.Translator::numberToLocale($rs2[$i]['qta'], 2)."</span>\n";
$body .= '<span>'.Translator::numberToLocale($rs2[$i]['qta'])."</span>\n";
$body .= "</td>\n";
// Prezzo unitario
$body .= "<td class='table_cell' align='center'>\n";
$netto = $rs2[$i]['prezzo'];
$body .= '<span>'.Translator::numberToLocale($netto, 2)." &euro;</span>\n";
$body .= '<span>'.Translator::numberToLocale($netto)." &euro;</span>\n";
$body .= "</td>\n";
// Prezzo di vendita
$body .= "<td class='table_cell' align='center'>\n";
$body .= '<span>'.Translator::numberToLocale($netto * $qta, 2)." &euro;</span>\n";
$body .= '<span>'.Translator::numberToLocale($netto * $qta)." &euro;</span>\n";
$body .= "</td></tr>\n";
$totale_spese += $netto * $qta;
}
@ -290,7 +290,7 @@ if (!empty($idinterventi)) {
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_spese, 2)." &euro;</b>\n";
$body .= '<b>'.Translator::numberToLocale($totale_spese)." &euro;</b>\n";
$body .= "</td></tr>\n";
$body .= "</table><br/>\n";
}
@ -303,7 +303,7 @@ $body .= "<tr><td align=\"right\" width=\"131mm\">\n";
$body .= "<b>TOTALE CONSUNTIVO:</b>\n";
$body .= "</td>\n";
$body .= "<td align=\"left\" bgcolor=\"#cccccc\" width=\"24mm\">\n";
$totale_intervento_consuntivo = Translator::numberToLocale($totale + $totale_articoli + $totale_spese, 2);
$totale_intervento_consuntivo = Translator::numberToLocale($totale + $totale_articoli + $totale_spese);
$body .= '<b>'.$totale_intervento_consuntivo." &euro;</b>\n";
$body .= "</td></tr>\n";
@ -312,7 +312,7 @@ $body .= "<b>BUDGET TOTALE (NO IVA):</b>\n";
$body .= "</td>\n";
$body .= "<td align=\"left\" bgcolor=\"#cccccc\" width=\"24mm\">\n";
$contratto_tot_budget = Translator::numberToLocale($contratto_tot_budget, 2);
$contratto_tot_budget = Translator::numberToLocale($contratto_tot_budget);
$body .= '<b>'.$contratto_tot_budget." &euro;</b>\n";
$body .= "</td></tr>\n";
@ -320,7 +320,7 @@ $body .= "<tr><td align=\"right\" width=\"131mm\">\n";
$body .= "<b>RAPPORTO BUDGET/SPESA (NO IVA):</b>\n";
$body .= "</td>\n";
$diff = Translator::numberToLocale($contratto_tot_budget - $totale_intervento_consuntivo, 2);
$diff = Translator::numberToLocale($contratto_tot_budget - $totale_intervento_consuntivo);
$body .= "<td align=\"left\" bgcolor=\"#cccccc\" width=\"24mm\">\n";
$body .= '<b>'.$diff." &euro;</b>\n";
$body .= "</td></tr>\n";
@ -331,8 +331,8 @@ if (!empty($contratto_tot_ore)) {
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#cccccc\" width=\"24mm\">\n";
$diff2 = Translator::numberToLocale($contratto_tot_ore - $totale_ore_impiegate, 2);
$body .= "<b>$diff2&nbsp;&nbsp;(ore erogate: ".Translator::numberToLocale($totale_ore_impiegate, 2).'&nbsp;-&nbsp;ore in contratto: '.Translator::numberToLocale($contratto_tot_ore, 2).")</b>\n";
$diff2 = Translator::numberToLocale($contratto_tot_ore - $totale_ore_impiegate);
$body .= "<b>$diff2&nbsp;&nbsp;(ore erogate: ".Translator::numberToLocale($totale_ore_impiegate).'&nbsp;-&nbsp;ore in contratto: '.Translator::numberToLocale($contratto_tot_ore).")</b>\n";
$body .= "</td></tr>\n";
}

View File

@ -70,19 +70,19 @@ foreach ($rs_gen as $r) {
echo "
<td class='text-center'>
".Translator::numberToLocale($r['qta'], 2).' '.$r['um'].'
".Translator::numberToLocale($r['qta']).' '.$r['um'].'
</td>';
if ($mostra_prezzi) {
echo "
<td class='text-right'>
".Translator::numberToLocale($r['subtotale'] / $r['qta'], 2).' &euro;
".Translator::numberToLocale($r['subtotale'] / $r['qta']).' &euro;
</td>';
// Imponibile
echo "
<td class='text-right'>
".Translator::numberToLocale($r['subtotale'], 2).' &euro;';
".Translator::numberToLocale($r['subtotale']).' &euro;';
if ($r['sconto'] > 0) {
if ($count <= 1) {
@ -91,7 +91,7 @@ foreach ($rs_gen as $r) {
echo '
<br><small class="help-block">- '.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
}
@ -101,7 +101,7 @@ foreach ($rs_gen as $r) {
// Iva
echo "
<td class='text-center'>
".Translator::numberToLocale($r['perc_iva'], 2).'
".Translator::numberToLocale($r['perc_iva']).'
</td>';
}
echo '

View File

@ -21,7 +21,7 @@ if ($mostra_prezzi) {
echo "
<tr>
<td class='cell-padded text-right'>
".Translator::numberToLocale($imponibile, 2).' &euro;
".Translator::numberToLocale($imponibile).' &euro;
</td>
</tr>';
@ -35,7 +35,7 @@ if ($mostra_prezzi) {
<tr>
<td class='cell-padded text-right'>
".Translator::numberToLocale($iva, 2).' &euro;
".Translator::numberToLocale($iva).' &euro;
</td>
</tr>';
@ -49,7 +49,7 @@ if ($mostra_prezzi) {
<tr>
<td class='cell-padded text-right'>
".Translator::numberToLocale($totale, 2).' &euro;
".Translator::numberToLocale($totale).' &euro;
</td>
</tr>';
} else {

View File

@ -47,9 +47,9 @@ for ($r = 0; $r < sizeof($rs); ++$r) {
$rs2 = $dbo->fetchArray("SELECT SUM(subtotale-co_righe_documenti.sconto) AS imponibile, SUM(iva) AS iva, (SELECT SUM(bollo) FROM co_documenti WHERE DATE_FORMAT(data,'%m-%Y') = \"".$rs[$r]['periodo'].'" AND idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="'.$dir."\")) AS bollo, SUM(co_righe_documenti.rivalsainps) AS rivalsainps, SUM(co_righe_documenti.ritenutaacconto) AS ritenutaacconto 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'>".Translator::numberToLocale($rs2[0]['imponibile'], 2)." &euro;</td>\n";
$body .= "<td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs2[0]['iva'], 2)." &euro;</td>\n";
$body .= "<td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs2[0]['imponibile'] + $rs2[0]['iva'] + $rs2[0]['rivalsainps'] + $rs2[0]['bollo'] + $rs2[0]['ritenutaacconto'], 2)." &euro;</td></tr>\n";
$body .= "<td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs2[0]['imponibile'])." &euro;</td>\n";
$body .= "<td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs2[0]['iva'])." &euro;</td>\n";
$body .= "<td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs2[0]['imponibile'] + $rs2[0]['iva'] + $rs2[0]['rivalsainps'] + $rs2[0]['bollo'] + $rs2[0]['ritenutaacconto'])." &euro;</td></tr>\n";
$totale_imponibile += $rs2[0]['imponibile'];
$totale_iva += $rs2[0]['iva'];
@ -59,9 +59,9 @@ for ($r = 0; $r < sizeof($rs); ++$r) {
// 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>".Translator::numberToLocale($totale_imponibile, 2)." &euro;</b></td>\n";
$body .= " <td class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_iva, 2)." &euro;</b></td>\n";
$body .= " <td class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale, 2)." &euro;</b></td>\n";
$body .= " <td class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_imponibile)." &euro;</b></td>\n";
$body .= " <td class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_iva)." &euro;</b></td>\n";
$body .= " <td class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale)." &euro;</b></td>\n";
$body .= "</tr>\n";
$body .= "</table>\n";

View File

@ -106,29 +106,44 @@ foreach ($righe as $r) {
echo "
<td class='text-center'>
".Translator::numberToLocale($r['qta'], 2).' '.$r['um'].'
".Translator::numberToLocale($r['qta']).' '.$r['um'].'
</td>';
// Prezzo unitario
echo "
<td class='text-right'>
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'], 2)).' &euro;
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' &euro;';
if ($r['sconto'] > 0) {
echo "
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
if ($count <= 1) {
$count += 0.4;
}
}
echo '
</td>';
// Imponibile
echo "
<td class='text-right'>
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' &euro;';
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' &euro;';
if ($r['sconto'] > 0) {
echo "
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto']),
'_TYPE_' => '&euro;',
]).'</small>';
if ($count <= 1) {
$count += 0.4;
}
echo "
<br><small class='help-block'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
]).'</small>';
}
echo '
@ -137,7 +152,7 @@ foreach ($righe as $r) {
// Iva
echo '
<td class="text-center">
'.Translator::numberToLocale($r['perc_iva'], 2).'
'.Translator::numberToLocale($r['perc_iva']).'
</td>
</tr>';

View File

@ -31,7 +31,7 @@ if (!empty($rs2)) {
<small>".Translator::dateToLocale($rs2[$i]['scadenza'])."</small>
</td>
<td style='width:50%;' class='text-right'>
<small>".Translator::numberToLocale($rs2[$i]['da_pagare'], 2).' &euro;</small>
<small>".Translator::numberToLocale($rs2[$i]['da_pagare']).' &euro;</small>
</td>
</tr>';
}
@ -75,11 +75,11 @@ if (!empty($v_iva)) {
</td>
<td class='text-right'>
<small>".Translator::numberToLocale($v_totale[$desc_iva], 2)." &euro;</small>
<small>".Translator::numberToLocale($v_totale[$desc_iva])." &euro;</small>
</td>
<td class='text-right'>
<small>".Translator::numberToLocale($v_iva[$desc_iva], 2).' &euro;</small>
<small>".Translator::numberToLocale($v_iva[$desc_iva]).' &euro;</small>
</td>
</tr>';
}
@ -132,28 +132,28 @@ echo "
<tr>
<td class='cell-padded text-center'>
".Translator::numberToLocale($imponibile, 2)." &euro;
".Translator::numberToLocale($imponibile)." &euro;
</td>";
if (!empty($sconto)) {
echo "
<td class='cell-padded text-center'>
".Translator::numberToLocale($sconto, 2)." &euro;
".Translator::numberToLocale($sconto)." &euro;
</td>
<td class='cell-padded text-center'>
".Translator::numberToLocale($imponibile - $sconto, 2)." &euro;
".Translator::numberToLocale($imponibile - $sconto)." &euro;
</td>";
}
echo "
<td class='cell-padded text-center'>
".Translator::numberToLocale($iva, 2)." &euro;
".Translator::numberToLocale($iva)." &euro;
</td>
<td class='cell-padded text-center'>
".Translator::numberToLocale($totale, 2).' &euro;
".Translator::numberToLocale($totale).' &euro;
</td>
</tr>';
@ -176,11 +176,11 @@ if ($records[0]['ritenutaacconto'] != 0) {
<tr>
<td class='cell-padded text-center' colspan=".(!empty($sconto) ? 3 : 2).">
".Translator::numberToLocale($records[0]['ritenutaacconto'], 2)." &euro;
".Translator::numberToLocale($records[0]['ritenutaacconto'])." &euro;
</td>
<td class='cell-padded text-center' colspan=".(!empty($sconto) ? 2 : 1).">
".Translator::numberToLocale($totale - $records[0]['ritenutaacconto'], 2).' &euro;
".Translator::numberToLocale($totale - $records[0]['ritenutaacconto']).' &euro;
</td>
</tr>';
}

View File

@ -152,7 +152,7 @@ if ($tot > 0) {
$body .= "</td>\n";
$qta = $rsr[$i]['qta'];
($qta == 0) ? $qta = '-' : $qta = Translator::numberToLocale($qta, 2);
($qta == 0) ? $qta = '-' : $qta = Translator::numberToLocale($qta);
$body .= "<td class='table_cell center'>\n";
$body .= $qta;
$body .= "</td>\n";
@ -164,21 +164,21 @@ if ($tot > 0) {
// costo unitario
$subtotale = $rsr[$i]['subtotale'] / $rsr[$i]['qta'];
($subtotale == 0) ? $subtotale = '-' : $subtotale = Translator::numberToLocale($subtotale, 2).' &euro;';
($subtotale == 0) ? $subtotale = '-' : $subtotale = Translator::numberToLocale($subtotale).' &euro;';
$body .= "<td class='table_cell center'>\n";
$body .= $subtotale."\n";
$body .= "</td>\n";
$body .= "<td class='table_cell center'>\n";
$iva = $rsr[$i]['iva'];
$body .= '<br/>'.Translator::numberToLocale($iva, 2)." &euro;<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
$body .= '<br/>'.Translator::numberToLocale($iva)." &euro;<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
$body .= "</td>\n";
$body .= "<td class='table_cell' align='right'>\n";
$subtot = $rsr[$i]['subtotale'];
$body .= Translator::numberToLocale($subtot, 2)." &euro;\n";
$body .= Translator::numberToLocale($subtot)." &euro;\n";
if ($rsr[$i]['sconto'] > 0) {
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'], 2)." &euro;</small>\n";
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'])." &euro;</small>\n";
}
$body .= "</td></tr>\n";
@ -208,15 +208,15 @@ if ($tot > 0) {
// Iva
$body .= "<td class='table_cell center'>\n";
$iva = $rsr[$i]['iva'];
$body .= '<br/>'.Translator::numberToLocale($iva, 2)." &euro;<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
$body .= '<br/>'.Translator::numberToLocale($iva)." &euro;<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
$body .= "</td>\n";
// Imponibile
$body .= "<td class='table_cell' align='right'>\n";
$subtot = $rsr[$i]['subtotale'];
$body .= Translator::numberToLocale($subtot, 2)." &euro;\n";
$body .= Translator::numberToLocale($subtot)." &euro;\n";
if ($rsr[$i]['sconto'] > 0) {
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'], 2)." &euro;</small>\n";
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'])." &euro;</small>\n";
}
$body .= "</td></tr>\n";
@ -246,15 +246,15 @@ if ($tot > 0) {
// Iva
$body .= "<td class='table_cell center'>\n";
$iva = $rsr[$i]['iva'];
$body .= '<br/>'.Translator::numberToLocale($iva, 2)." &euro;<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
$body .= '<br/>'.Translator::numberToLocale($iva)." &euro;<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
$body .= "</td>\n";
// Imponibile
$body .= "<td class='table_cell' align='right'>\n";
$subtot = $rsr[$i]['subtotale'];
$body .= Translator::numberToLocale($subtot, 2)." &euro;\n";
$body .= Translator::numberToLocale($subtot)." &euro;\n";
if ($rsr[$i]['sconto'] > 0) {
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'], 2)." &euro;</small>\n";
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'])." &euro;</small>\n";
}
$body .= "</td></tr>\n";
@ -292,7 +292,7 @@ if ($tot > 0) {
$body .= "</td>\n";
$body .= "<td class='table_cell center'>\n";
$body .= Translator::numberToLocale($rsr[$i]['qta'], 2);
$body .= Translator::numberToLocale($rsr[$i]['qta']);
$body .= "</td>\n";
$body .= "<td class='table_cell center'>\n";
@ -301,19 +301,19 @@ if ($tot > 0) {
// costo unitario
$body .= "<td class='table_cell center'>\n";
$body .= Translator::numberToLocale($rsr[$i]['subtotale'] / $rsr[$i]['sumqta'], 2)." &euro;\n";
$body .= Translator::numberToLocale($rsr[$i]['subtotale'] / $rsr[$i]['sumqta'])." &euro;\n";
$body .= "</td>\n";
$body .= "<td class='table_cell center'>\n";
$iva = $rsr[$i]['iva'];
$body .= '<br/>'.Translator::numberToLocale($iva, 2)." &euro;<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
$body .= '<br/>'.Translator::numberToLocale($iva)." &euro;<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
$body .= "</td>\n";
$body .= "<td class='table_cell' align='right'>\n";
$subtot = $rsr[$i]['subtotale'];
$body .= Translator::numberToLocale($subtot, 2)." &euro;\n";
$body .= Translator::numberToLocale($subtot)." &euro;\n";
if ($rsr[$i]['sconto'] > 0) {
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'], 2)." &euro;</small>\n";
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'])." &euro;</small>\n";
}
$body .= "</td></tr>\n";
@ -343,7 +343,7 @@ if ($tot > 0) {
$body .= "</td>\n";
$body .= "<td class='table_cell center'>\n";
$body .= Translator::numberToLocale($rsr[$i]['qta'], 2)."\n";
$body .= Translator::numberToLocale($rsr[$i]['qta'])."\n";
$body .= "</td>\n";
$body .= "<td class='table_cell center'>\n";
@ -351,21 +351,21 @@ if ($tot > 0) {
$body .= "</td>\n";
$body .= "<td class='table_cell center'>\n";
$body .= Translator::numberToLocale($rsr[$i]['subtotale'] / $rsr[$i]['qta'], 2)." &euro;\n";
$body .= Translator::numberToLocale($rsr[$i]['subtotale'] / $rsr[$i]['qta'])." &euro;\n";
$body .= "</td>\n";
// Iva
$body .= "<td class='table_cell center'>\n";
$iva = $rsr[$i]['iva'];
$body .= '<br/>'.Translator::numberToLocale($iva, 2)." &euro;<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
$body .= '<br/>'.Translator::numberToLocale($iva)." &euro;<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
$body .= "</td>\n";
// Imponibile
$body .= "<td class='table_cell' align='right'>\n";
$subtot = $rsr[$i]['subtotale'];
$body .= Translator::numberToLocale($subtot, 2)." &euro;\n";
$body .= Translator::numberToLocale($subtot)." &euro;\n";
if ($rsr[$i]['sconto'] > 0) {
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'], 2)." &euro;</small>\n";
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'])." &euro;</small>\n";
}
$body .= "</td></tr>\n";
@ -404,7 +404,7 @@ $body .= "</td>\n";
// Imponibile
$body .= "<td class='table_cell' align='right'>\n";
$totale_documento = $imponibile_documento;
$body .= Translator::numberToLocale($totale_documento, 2)." &euro;\n";
$body .= Translator::numberToLocale($totale_documento)." &euro;\n";
$body .= "</td></tr>\n";
// Mostra sconto se c'è
@ -415,7 +415,7 @@ if (abs($sconto) > 0) {
// Sconto
$body .= "<td class='table_cell' align='right'>\n";
$body .= Translator::numberToLocale($sconto, 2)." &euro;\n";
$body .= Translator::numberToLocale($sconto)." &euro;\n";
$body .= '</td></tr>';
// Totale scontato
@ -426,7 +426,7 @@ if (abs($sconto) > 0) {
// Sconto
$body .= "<td class='table_cell' align='right'>\n";
$totale_documento -= $sconto;
$body .= Translator::numberToLocale($totale_documento, 2)." &euro;\n";
$body .= Translator::numberToLocale($totale_documento)." &euro;\n";
$body .= "</td></tr>\n";
}
@ -438,7 +438,7 @@ if (abs($rs[0]['rivalsainps']) > 0) {
// Rivalsa INPS
$body .= "<td class='table_cell' align='right'>\n";
$body .= Translator::numberToLocale($rs[0]['rivalsainps'], 2)." &euro;\n";
$body .= Translator::numberToLocale($rs[0]['rivalsainps'])." &euro;\n";
$body .= "</td></tr>\n";
$totale_documento += $rs[0]['rivalsainps'];
}
@ -452,7 +452,7 @@ if (abs($totale_iva) > 0) {
// Iva
$body .= "<td class='table_cell' align='right'>\n";
$body .= Translator::numberToLocale($totale_iva, 2)." &euro;\n";
$body .= Translator::numberToLocale($totale_iva)." &euro;\n";
$body .= "</td></tr>\n";
$totale_documento += $totale_iva;
}
@ -465,7 +465,7 @@ $body .= '<b>Totale documento:</b>';
$body .= "</td>\n";
$body .= "<td class='table_cell_h' align='right'>\n";
$body .= '<b>'.Translator::numberToLocale($totale_documento, 2)." &euro;</b>\n";
$body .= '<b>'.Translator::numberToLocale($totale_documento)." &euro;</b>\n";
$body .= "</td></tr>\n";
$netto_a_pagare = $totale_documento;
@ -478,7 +478,7 @@ if (abs($rs[0]['bollo']) > 0) {
// Marca da bollo
$body .= "<td class='table_cell' align='right'>\n";
$marca_da_bollo = str_replace(',', '.', $rs[0]['bollo']);
$body .= Translator::numberToLocale($marca_da_bollo, 2).' &euro;';
$body .= Translator::numberToLocale($marca_da_bollo).' &euro;';
$body .= "</td></tr>\n";
$netto_a_pagare += $marca_da_bollo;
}
@ -491,7 +491,7 @@ if (abs($rs[0]['ritenutaacconto']) > 0) {
// Ritenuta d'acconto
$body .= "<td class='table_cell' align='right'>\n";
$body .= Translator::numberToLocale($rs[0]['ritenutaacconto'], 2).' &euro;';
$body .= Translator::numberToLocale($rs[0]['ritenutaacconto']).' &euro;';
$body .= "</td></tr>\n";
$netto_a_pagare -= $rs[0]['ritenutaacconto'];
}
@ -505,7 +505,7 @@ if ($totale_documento != $netto_a_pagare) {
$body .= "</td>\n";
$body .= "<td class='table_cell_h' align='right'>\n";
$body .= '<b>'.Translator::numberToLocale($netto_a_pagare, 2)." &euro;</b>\n";
$body .= '<b>'.Translator::numberToLocale($netto_a_pagare)." &euro;</b>\n";
$body .= "</td></tr>\n";
}
$body .= "</tbody>\n";

View File

@ -146,14 +146,14 @@ if (!empty($rs2)) {
// Quantità
echo '
<td class="text-center">
'.Translator::numberToLocale($r['qta'], 2).' '.$r['um'].'
'.Translator::numberToLocale($r['qta']).' '.$r['um'].'
</td>';
// Netto
$netto = $r['prezzo_vendita'] * $r['qta'] - $r['sconto'];
echo '
<td class="text-center">
'.($mostra_prezzi ? Translator::numberToLocale($netto, 2) : '-').'
'.($mostra_prezzi ? Translator::numberToLocale($netto) : '-').'
</td>
</tr>';
}
@ -170,7 +170,7 @@ if (!empty($rs2)) {
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($costi_intervento['ricambi_scontato'], 2).' &euro;</b>
<b>'.Translator::numberToLocale($costi_intervento['ricambi_scontato']).' &euro;</b>
</th>
</tr>';
}
@ -225,20 +225,20 @@ if (!empty($rs2)) {
// Quantità
echo '
<td class="text-center">
'.Translator::numberToLocale($r['qta'], 2).'
'.Translator::numberToLocale($r['qta']).'
</td>';
// Prezzo unitario
echo '
<td class="text-center">
'.($mostra_prezzi ? Translator::numberToLocale($r['prezzo_vendita'], 2).' &euro;' : '-').'
'.($mostra_prezzi ? Translator::numberToLocale($r['prezzo_vendita']).' &euro;' : '-').'
</td>';
// Prezzo totale
$netto = $r['prezzo_vendita'] * $r['qta'] - $r['sconto'];
echo '
<td class="text-center">
'.($mostra_prezzi ? Translator::numberToLocale($netto, 2) : '-').'
'.($mostra_prezzi ? Translator::numberToLocale($netto) : '-').'
</td>
</tr>';
}
@ -254,7 +254,7 @@ if (!empty($rs2)) {
</td>
<th class="text-center">
<b>'.Translator::numberToLocale($costi_intervento['altro_scontato'], 2).' &euro;</b>
<b>'.Translator::numberToLocale($costi_intervento['altro_scontato']).' &euro;</b>
</th>
</tr>';
}
@ -360,17 +360,17 @@ if ($mostra_prezzi) {
echo '
<td class="text-center">
'.tr('Ore lavorate').':<br/><b>'.Translator::numberToLocale($ore, 2).'</b>
'.tr('Ore lavorate').':<br/><b>'.Translator::numberToLocale($ore).'</b>
</td>';
// Costo orario
echo '
<td class="text-center">
'.tr('Costo orario').':<br/><b>'.Translator::numberToLocale($costo_orario, 2).'</b>';
'.tr('Costo orario').':<br/><b>'.Translator::numberToLocale($costo_orario).'</b>';
if ($records[0]['tot_dirittochiamata'] != 0) {
echo '
<small> + '.Translator::numberToLocale($records[0]['tot_dirittochiamata'], 2).' d.c.</small>';
<small> + '.Translator::numberToLocale($records[0]['tot_dirittochiamata']).' d.c.</small>';
}
echo '
@ -379,7 +379,7 @@ if ($mostra_prezzi) {
// Costo totale manodopera
echo '
<td colspan="2" class="text-center">
'.tr('Manodopera').':<br/><b>'.Translator::numberToLocale($costi_intervento['manodopera_scontato'], 2).'</b>
'.tr('Manodopera').':<br/><b>'.Translator::numberToLocale($costi_intervento['manodopera_scontato']).'</b>
</td>';
} else {
echo '
@ -405,7 +405,7 @@ if ($mostra_prezzi) {
</td>
<th class="text-center">
<b>'.Translator::numberToLocale($costi_intervento['totale_scontato'], 2).' &euro;</b>
<b>'.Translator::numberToLocale($costi_intervento['totale_scontato']).' &euro;</b>
</th>
</tr>';
@ -418,7 +418,7 @@ if ($mostra_prezzi) {
</td>
<th class="text-center">
<b>-'.Translator::numberToLocale($costi_intervento['sconto_globale'], 2).' &euro;</b>
<b>-'.Translator::numberToLocale($costi_intervento['sconto_globale']).' &euro;</b>
</th>
</tr>';
@ -430,7 +430,7 @@ if ($mostra_prezzi) {
</td>
<th class="text-center">
<b>'.Translator::numberToLocale($costi_intervento['totale'], 2).' &euro;</b>
<b>'.Translator::numberToLocale($costi_intervento['totale']).' &euro;</b>
</th>
</tr>';
}
@ -452,7 +452,7 @@ if ($mostra_prezzi) {
</td>
<th class="text-center">
<b>'.Translator::numberToLocale($iva, 2).' &euro;</b>
<b>'.Translator::numberToLocale($iva).' &euro;</b>
</th>
</tr>';
@ -465,7 +465,7 @@ if ($mostra_prezzi) {
<b>'.tr('Totale intervento', [], ['upper' => true]).':</b>
</td>
<th class="text-center">
<b>'.Translator::numberToLocale($totale, 2).' &euro;</b>
<b>'.Translator::numberToLocale($totale).' &euro;</b>
</th>
</tr>';
}

View File

@ -50,10 +50,10 @@ for ($r = 0; $r < sizeof($rs); ++$r) {
$body .= "<tr>\n";
$body .= " <td class='first_cell cell-padded'>".$rs[$r]['codice']."</td>\n";
$body .= " <td class='table_cell cell-padded'>".$rs[$r]['descrizione']."</td>\n";
$body .= " <td class='table_cell text-right cell-padded'>".Translator::numberToLocale($rs[$r]['prezzo_vendita'], 2)." &euro;</td>\n";
$body .= " <td class='table_cell text-right cell-padded'>".$rs[$r]['um'].' '.Translator::numberToLocale($rs[$r]['qta'], 2)."</td>\n";
$body .= " <td class='table_cell text-right cell-padded'>".Translator::numberToLocale($rs[$r]['prezzo_acquisto'], 2)." &euro;</td>\n";
$body .= " <td class='table_cell text-right cell-padded'>".Translator::numberToLocale(($rs[$r]['prezzo_acquisto'] * $rs[$r]['qta']), 2)." &euro;</td>\n";
$body .= " <td class='table_cell text-right cell-padded'>".Translator::numberToLocale($rs[$r]['prezzo_vendita'])." &euro;</td>\n";
$body .= " <td class='table_cell text-right cell-padded'>".$rs[$r]['um'].' '.Translator::numberToLocale($rs[$r]['qta'])."</td>\n";
$body .= " <td class='table_cell text-right cell-padded'>".Translator::numberToLocale($rs[$r]['prezzo_acquisto'])." &euro;</td>\n";
$body .= " <td class='table_cell text-right cell-padded'>".Translator::numberToLocale(($rs[$r]['prezzo_acquisto'] * $rs[$r]['qta']))." &euro;</td>\n";
$body .= "</tr>\n";
$totale_qta += $rs[$r]['qta'];
@ -64,9 +64,9 @@ for ($r = 0; $r < sizeof($rs); ++$r) {
$body .= "<tr>\n";
$body .= "<td colspan='2' bgcolor='#dddddd' class='first_cell text-right cell-padded'><b>TOTALE:</b></td>\n";
$body .= "<td bgcolor='#dddddd' class='first_cell text-right cell-padded'></td>\n";
$body .= "<td bgcolor='#dddddd' class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_qta, 2)."</b></td>\n";
$body .= "<td bgcolor='#dddddd' class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_qta)."</b></td>\n";
$body .= "<td bgcolor='#dddddd' class='first_cell text-right cell-padded'></td>\n";
$body .= "<td bgcolor='#dddddd' class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_acquisto, 2)." &euro;</b></td>\n";
$body .= "<td bgcolor='#dddddd' class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_acquisto)." &euro;</b></td>\n";
$body .= "</tr>\n";
$body .= "</table>\n";

View File

@ -59,26 +59,40 @@ foreach ($righe as $r) {
echo "
<td class='text-center'>
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'], 2)).' '.$r['um'].'
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'])).' '.$r['um'].'
</td>';
if ($mostra_prezzi) {
// Prezzo unitario
echo "
<td class='text-right'>
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'], 2)).' &euro;
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' &euro;';
if ($r['sconto'] > 0) {
echo "
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
if ($count <= 1) {
$count += 0.4;
}
}
echo '
</td>';
// Imponibile
echo "
<td class='text-right'>
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' &euro;';
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' &euro;';
if ($r['sconto'] > 0) {
echo "
<br><small class='help-block'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto']),
'_TYPE_' => '&euro;',
]).'</small>';
if ($count <= 1) {
@ -97,7 +111,7 @@ foreach ($righe as $r) {
// Iva
echo '
<td class="text-center">
'.Translator::numberToLocale($r['perc_iva'], 2).'
'.Translator::numberToLocale($r['perc_iva']).'
</td>
</tr>';
@ -128,7 +142,7 @@ if ($mostra_prezzi) {
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($imponibile, 2).' &euro;</b>
<b>'.Translator::numberToLocale($imponibile).' &euro;</b>
</th>
</tr>';
@ -141,7 +155,7 @@ if ($mostra_prezzi) {
</td>
<th colspan="2" class="text-center">
<b>-'.Translator::numberToLocale($sconto, 2).' &euro;</b>
<b>-'.Translator::numberToLocale($sconto).' &euro;</b>
</th>
</tr>';
@ -153,7 +167,7 @@ if ($mostra_prezzi) {
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($totale, 2).' &euro;</b>
<b>'.Translator::numberToLocale($totale).' &euro;</b>
</th>
</tr>';
}
@ -166,7 +180,7 @@ if ($mostra_prezzi) {
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($iva, 2).' &euro;</b>
<b>'.Translator::numberToLocale($iva).' &euro;</b>
</th>
</tr>';
@ -179,7 +193,7 @@ if ($mostra_prezzi) {
<b>'.tr('Quotazione totale', [], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($totale, 2).' &euro;</b>
<b>'.Translator::numberToLocale($totale).' &euro;</b>
</th>
</tr>';
}

View File

@ -67,17 +67,17 @@ if (get('lev') == '3') {
$avere = '';
}
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'><b>SALDO INIZIALE</b></td><td class='br bb padded text-right'><b>".Translator::numberToLocale(abs($dare), 2)."</b></td><td class='bb padded text-right'><b>".Translator::numberToLocale(abs($avere), 2)."</b></td></tr>\n";
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'><b>SALDO INIZIALE</b></td><td class='br bb padded text-right'><b>".Translator::numberToLocale(abs($dare))."</b></td><td class='bb padded text-right'><b>".Translator::numberToLocale(abs($avere))."</b></td></tr>\n";
$rs = $dbo->fetchArray('SELECT * FROM co_movimenti WHERE idconto="'.$idconto.'" AND data >= "'.$_SESSION['period_start'].'" AND data <= "'.$_SESSION['period_end'].'" ORDER BY data ASC');
for ($i = 0; $i < sizeof($rs); ++$i) {
if ($rs[$i]['totale'] >= 0) {
$dare = Translator::numberToLocale(abs($rs[$i]['totale']), 2);
$dare = Translator::numberToLocale(abs($rs[$i]['totale']));
$avere = '';
} else {
$dare = '';
$avere = Translator::numberToLocale(abs($rs[$i]['totale']), 2);
$avere = Translator::numberToLocale(abs($rs[$i]['totale']));
}
$body .= " <tr><td class='br bb padded text-center'>".Translator::dateToLocale($rs[$i]['data'])."</td><td class='br bb padded'>".$rs[$i]['descrizione']."</td><td class='br bb padded text-right'>".$dare."</td><td class='bb padded text-right'>".$avere."</td></tr>\n";
@ -94,7 +94,7 @@ if (get('lev') == '3') {
}
// Mostro il saldo finale
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'><b>SALDO FINALE</b></td><td class='br bb padded text-right'><b>".Translator::numberToLocale(abs($dare), 2)."</b></td><td class='bb padded text-right'><b>".Translator::numberToLocale(abs($avere), 2)."</b></td></tr>\n";
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'><b>SALDO FINALE</b></td><td class='br bb padded text-right'><b>".Translator::numberToLocale(abs($dare))."</b></td><td class='bb padded text-right'><b>".Translator::numberToLocale(abs($avere))."</b></td></tr>\n";
$body .= " </tbody>
</table>\n";
@ -139,11 +139,11 @@ elseif (get('lev') == '2') {
$totale = $dare - $avere;
if ($totale >= 0) {
$dare = Translator::numberToLocale(abs($totale), 2);
$dare = Translator::numberToLocale(abs($totale));
$avere = '';
} else {
$dare = '';
$avere = Translator::numberToLocale(abs($totale), 2);
$avere = Translator::numberToLocale(abs($totale));
}
// Mostro il saldo finale del conto di livello 3
@ -207,16 +207,16 @@ elseif (get('lev') == '1') {
}
// Mostro il saldo finale del conto di livello 3
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'>".$rs3[$z]['numero'].' '.$rs3[$z]['descrizione']."</td><td class='br bb padded text-right'>".Translator::numberToLocale(abs($dare), 2)."</td><td class='bb padded text-right'>".Translator::numberToLocale(abs($avere), 2)."</td></tr>\n";
$body .= " <tr><td class='br bb padded'></td><td class='br bb padded'>".$rs3[$z]['numero'].' '.$rs3[$z]['descrizione']."</td><td class='br bb padded text-right'>".Translator::numberToLocale(abs($dare))."</td><td class='bb padded text-right'>".Translator::numberToLocale(abs($avere))."</td></tr>\n";
}
}
}
// Stampa "Costi/Ricavi" se conto economico
if ($rs1[0]['descrizione'] == 'Economico') {
$body .= " <tr><th colspan='3' class='br bb padded'>RICAVI</th><th align='right' class='bb padded'>".Translator::numberToLocale($ricavi, 2)."</th></tr>\n";
$body .= " <tr><th colspan='3' class='br bb padded'>COSTI</th><th align='right' class='bb padded'>".Translator::numberToLocale($costi, 2)."</th></tr>\n";
$body .= " <tr><th colspan='3' class='br padded'>UTILE</th><th class='padded' align='right'>".Translator::numberToLocale($ricavi - $costi, 2)."</th></tr>\n";
$body .= " <tr><th colspan='3' class='br bb padded'>RICAVI</th><th align='right' class='bb padded'>".Translator::numberToLocale($ricavi)."</th></tr>\n";
$body .= " <tr><th colspan='3' class='br bb padded'>COSTI</th><th align='right' class='bb padded'>".Translator::numberToLocale($costi)."</th></tr>\n";
$body .= " <tr><th colspan='3' class='br padded'>UTILE</th><th class='padded' align='right'>".Translator::numberToLocale($ricavi - $costi)."</th></tr>\n";
}
// Stampa "Attività/Passività" se stato patrimoniale
@ -286,14 +286,14 @@ elseif (get('lev') == '1') {
<tbody>\n";
// Attività
$body .= " <tr><th class='br bb padded'>TOTALE ATTIVIT&Agrave;</th><th align='right' class='bb br padded'>".Translator::numberToLocale($totale_attivita, 2)."</th>\n";
$body .= " <tr><th class='br bb padded'>TOTALE ATTIVIT&Agrave;</th><th align='right' class='bb br padded'>".Translator::numberToLocale($totale_attivita)."</th>\n";
// Passività
$body .= " <th class='br bb padded'>PASSIVIT&Agrave;</th><th align='right' class='bb padded'>".Translator::numberToLocale($totale_passivita, 2)."</th></tr>\n";
$body .= " <th class='br bb padded'>PASSIVIT&Agrave;</th><th align='right' class='bb padded'>".Translator::numberToLocale($totale_passivita)."</th></tr>\n";
if ($utile_perdita < 0) {
// Perdita d'esercizio
$body .= " <tr><th class='br bb padded'>PERDITA D'ESERCIZIO</th><th align='right' class='bb br padded'>".Translator::numberToLocale(abs($utile_perdita), 2)."</th>\n";
$body .= " <tr><th class='br bb padded'>PERDITA D'ESERCIZIO</th><th align='right' class='bb br padded'>".Translator::numberToLocale(abs($utile_perdita))."</th>\n";
// Utile
$body .= " <th class='br bb padded'>&nbsp;</th><th align='right' class='bb padded'>&nbsp;</th></tr>\n";
@ -302,14 +302,14 @@ elseif (get('lev') == '1') {
$body .= " <tr><th class='br bb padded'>&nbsp;</th><th align='right' class='bb br padded'>&nbsp;</th>\n";
// Utile
$body .= " <th class='br bb padded'>UTILE</th><th align='right' class='bb padded'>".Translator::numberToLocale(abs($utile_perdita), 2)."</th></tr>\n";
$body .= " <th class='br bb padded'>UTILE</th><th align='right' class='bb padded'>".Translator::numberToLocale(abs($utile_perdita))."</th></tr>\n";
}
// PAREGGIO 1
$body .= " <tr><th class='br padded'>TOTALE A PAREGGIO</th><th align='right' class='br padded'>".Translator::numberToLocale($pareggio1, 2)."</th>\n";
$body .= " <tr><th class='br padded'>TOTALE A PAREGGIO</th><th align='right' class='br padded'>".Translator::numberToLocale($pareggio1)."</th>\n";
// PAREGGIO 2
$body .= " <th class='br padded'>TOTALE A PAREGGIO</th><th align='right' class='padded'>".Translator::numberToLocale($pareggio2, 2)."</th></tr>\n";
$body .= " <th class='br padded'>TOTALE A PAREGGIO</th><th align='right' class='padded'>".Translator::numberToLocale($pareggio2)."</th></tr>\n";
}
$body .= " </tbody>

View File

@ -108,26 +108,40 @@ foreach ($righe as $r) {
echo "
<td class='text-center'>
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'], 2)).' '.$r['um'].'
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'])).' '.$r['um'].'
</td>';
if ($mostra_prezzi) {
// Prezzo unitario
echo "
<td class='text-right'>
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'], 2)).' &euro;
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' &euro;';
if ($r['sconto'] > 0) {
echo "
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
if ($count <= 1) {
$count += 0.4;
}
}
echo '
</td>';
// Imponibile
echo "
<td class='text-right'>
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' &euro;';
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' &euro;';
if ($r['sconto'] > 0) {
echo "
<br><small class='help-block'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : ' &euro;'),
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto']),
'_TYPE_' => '&euro;',
]).'</small>';
if ($count <= 1) {
@ -146,7 +160,7 @@ foreach ($righe as $r) {
// Iva
echo '
<td class="text-center">
'.Translator::numberToLocale($r['perc_iva'], 2).'
'.Translator::numberToLocale($r['perc_iva']).'
</td>
</tr>';
@ -177,7 +191,7 @@ if ($mostra_prezzi) {
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($imponibile, 2).' &euro;</b>
<b>'.Translator::numberToLocale($imponibile).' &euro;</b>
</th>
</tr>';
@ -190,7 +204,7 @@ if ($mostra_prezzi) {
</td>
<th colspan="2" class="text-center">
<b>-'.Translator::numberToLocale($sconto, 2).' &euro;</b>
<b>-'.Translator::numberToLocale($sconto).' &euro;</b>
</th>
</tr>';
@ -202,7 +216,7 @@ if ($mostra_prezzi) {
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($totale, 2).' &euro;</b>
<b>'.Translator::numberToLocale($totale).' &euro;</b>
</th>
</tr>';
}
@ -215,7 +229,7 @@ if ($mostra_prezzi) {
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($iva, 2).' &euro;</b>
<b>'.Translator::numberToLocale($iva).' &euro;</b>
</th>
</tr>';
@ -228,7 +242,7 @@ if ($mostra_prezzi) {
<b>'.tr('Quotazione totale', [], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($totale, 2).' &euro;</b>
<b>'.Translator::numberToLocale($totale).' &euro;</b>
</th>
</tr>';
}

View File

@ -0,0 +1,556 @@
<?php
include_once __DIR__.'/../../core.php';
include_once $docroot.'/modules/interventi/modutil.php';
$report_name = 'preventivo_'.$idpreventivo.'_cons.pdf';
echo '
<div class="row">
<div class="col-xs-6">
<div class="text-center" style="height:5mm;">
<b>'.tr('Preventivo Num. _NUM_ del _DATE_', [
'_NUM_' => $records[0]['numero'],
'_DATE_' => Translator::dateToLocale($records[0]['data']),
], ['upper' => true]).'</b>
</div>
</div>
<div class="col-xs-5 col-xs-offset-1">
<table class="table" style="width:100%;margin-top:5mm;">
<tr>
<td colspan=2 class="border-full" style="height:16mm;">
<p class="small-bold">'.tr('Spett.le', [], ['upper' => true]).'</p>
<p>$c_ragionesociale$</p>
<p>$c_indirizzo$ $c_citta_full$</p>
</td>
</tr>
<tr>
<td class="border-bottom border-left">
<p class="small-bold">'.tr('Partita IVA', [], ['upper' => true]).'</p>
</td>
<td class="border-right border-bottom text-right">
<small>$c_piva$</small>
</td>
</tr>
<tr>
<td class="border-bottom border-left">
<p class="small-bold">'.tr('Codice fiscale', [], ['upper' => true]).'</p>
</td>
<td class="border-right border-bottom text-right">
<small>$c_codicefiscale$</small>
</td>
</tr>
</table>
</div>
</div>';
// Descrizione
if (!empty($records[0]['descrizione'])) {
echo '
<p>'.nl2br($records[0]['descrizione']).'</p>
<br>';
}
$sconto = [];
$imponibile = [];
$interventi = $dbo->fetchArray('SELECT *, in_interventi.id, in_interventi.codice, (SELECT GROUP_CONCAT(DISTINCT ragione_sociale) FROM in_interventi_tecnici JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = in_interventi_tecnici.idtecnico WHERE idintervento=in_interventi.id) AS tecnici, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS inizio, (SELECT SUM(ore) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS ore, (SELECT SUM(km) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS km FROM co_preventivi_interventi JOIN in_interventi ON co_preventivi_interventi.idintervento=in_interventi.id WHERE co_preventivi_interventi.idpreventivo='.prepare($idpreventivo).' ORDER BY inizio DESC');
if (!empty($interventi)) {
// Interventi
echo "
<table class='table table-striped table-bordered' id='contents'>
<thead>
<tr>
<th class='text-center' style='width:50%'>".tr('Attività', [], ['upper' => true])."</th>
<th class='text-center' style='width:10%'>".tr('Ore', [], ['upper' => true])."</th>
<th class='text-center' style='width:15%'>".tr('Km', [], ['upper' => true])."</th>
<th class='text-center' style='width:15%'>".tr('Sconto', [], ['upper' => true])."</th>
<th class='text-center' style='width:10%'>".tr('Imponibile', [], ['upper' => true]).'</th>
</tr>
</thead>
<tbody>';
$ore = [];
$km = [];
$sconto_int = [];
$imponibile_int = [];
foreach ($interventi as $int) {
$int = array_merge($int, get_costi_intervento($int['id']));
$int['sconto'] = ($int['manodopera_addebito'] - $int['manodopera_scontato']) + ($int['viaggio_addebito'] - $int['viaggio_scontato']);
$int['subtotale'] = $int['manodopera_scontato'] + $int['viaggio_scontato'];
echo '
<tr>
<td>
'.tr('Intervento num. _NUM_ del _DATE_', [
'_NUM_' => $int['codice'],
'_DATE_' => Translator::dateToLocale($int['inizio']),
]);
if (!empty($int['tecnici'])) {
echo '
<br><small class="text-muted">'.tr('Tecnici').': '.str_replace(',', ', ', $int['tecnici']).'.</small>';
}
echo '
</td>';
echo '
<td class="text-center">
'.Translator::numberToLocale($int['ore']).'
</td>
<td class="text-center">
'.Translator::numberToLocale($int['km']).'
</td>
<td class="text-center">
'.Translator::numberToLocale($int['sconto']).' &euro;
</td>
<td class="text-center">
'.Translator::numberToLocale($int['subtotale']).' &euro;
</td>
</tr>';
$ore[] = $int['ore'];
$km[] = $int['km'];
$sconto_int[] = $sconto;
$imponibile_int[] = $int['subtotale'];
}
$ore = sum($ore);
$km = sum($km);
$sconto_int = sum($sconto_int);
$imponibile_int = sum($imponibile_int);
$totale_int = $imponibile_int - $sconto_int;
$sconto[] = $sconto_int;
$imponibile[] = $imponibile_int;
echo '
</tbody>';
// Totale interventi
echo '
<tr>
<td class="text-right">
<b>'.tr('Totale', [], ['upper' => true]).':</b>
</td>
<td class="text-center">
<b>'.Translator::numberToLocale($ore).'</b>
</td>
<td class="text-center">
<b>'.Translator::numberToLocale($km).'</b>
</td>
<td class="text-center">
<b>'.Translator::numberToLocale($sconto_int).' &euro;</b>
</td>
<th class="text-center">
<b>'.Translator::numberToLocale($totale_int).' &euro;</b>
</th>
</tr>';
echo '
</table>';
$count = $dbo->fetchArray('SELECT COUNT(*) FROM `mg_articoli_interventi` WHERE idintervento IN ('.implode(',', array_column($interventi, 'id')).')');
if (!empty($count)) {
echo '
<table class="table table-bordered">
<thead>
<tr>
<th colspan="4" class="text-center">
<b>'.tr('Materiale utilizzato', [], ['upper' => true]).'</b>
</th>
</tr>
<tr>
<th style="font-size:8pt;width:50%" class="text-center">
<b>'.tr('Descrizione').'</b>
</th>
<th style="font-size:8pt;width:15%" class="text-center">
<b>'.tr('Q.').'</b>
</th>
<th style="font-size:8pt;width:15%" class="text-center">
<b>'.tr('Prezzo').'</b>
</th>
<th style="font-size:8pt;width:15%" class="text-center">
<b>'.tr('Importo').'</b>
</th>
</tr>
</thead>
<tbody>';
$sconto_art = [];
$imponibile_art = [];
// Articoli per intervento
foreach ($interventi as $int) {
$righe = $dbo->fetchArray("SELECT *, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice, (SELECT CONCAT_WS(serial, 'SN: ', ', ') FROM mg_prodotti WHERE mg_articoli_interventi.idarticolo = mg_prodotti.id_articolo) AS serials FROM `mg_articoli_interventi` WHERE idintervento =".prepare($int['id']).' ORDER BY idarticolo ASC');
foreach ($righe as $r) {
echo '
<tr>';
// Descrizione
echo '
<td>
'.$r['descrizione'];
// Codice
if (!empty($r['codice'])) {
echo '
<br><small class="text-muted">'.tr('COD. _COD_', [
'_COD_' => $r['codice'],
]).'</small>';
}
echo '
<br><small class="text-muted">'.tr('Intervento num. _NUM_ del _DATE_', [
'_NUM_' => $int['id'],
'_DATE_' => Translator::dateToLocale($int['inizio']),
]).'.</small>';
echo '
</td>';
// Quantità
echo '
<td class="text-center">
'.Translator::numberToLocale($r['qta']).' '.$r['um'].'
</td>';
// Prezzo unitario
echo "
<td class='text-center'>
".Translator::numberToLocale($r['prezzo_vendita']).' &euro;';
if ($r['sconto'] > 0) {
echo "
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
if ($count <= 1) {
$count += 0.4;
}
}
echo '
</td>';
// Netto
$netto = $r['prezzo_vendita'] * $r['qta'];
echo '
<td class="text-center">
'.Translator::numberToLocale($netto).' &euro;';
if ($r['sconto'] > 0) {
echo "
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto']),
'_TYPE_' => '&euro;',
]).'</small>';
if ($count <= 1) {
$count += 0.4;
}
}
echo '
</td>
</tr>';
$sconto_art[] = $r['sconto'];
$imponibile_art[] = $r['prezzo_vendita'] * $r['qta'];
}
}
echo '
</tbody>';
$sconto_art = sum($sconto_art);
$imponibile_art = sum($imponibile_art);
$totale_art = $imponibile_art - $sconto_art;
$sconto[] = $sconto_art;
$imponibile[] = $imponibile_art;
// Totale spesa articoli
echo '
<tr>
<td colspan="2" class="text-right">
<b>'.tr('Totale materiale utilizzato', [], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($totale_art).' &euro;</b>
</th>
</tr>';
echo '
</table>';
}
// Altre spese per intervento
$count = $dbo->fetchArray('SELECT COUNT(*) FROM `in_righe_interventi` WHERE idintervento IN ('.implode(',', array_column($interventi, 'id')).')');
if (!empty($count)) {
echo '
<table class="table table-bordered">
<thead>
<tr>
<th colspan="4" class="text-center">
<b>'.tr('Spese aggiuntive', [], ['upper' => true]).'</b>
</th>
</tr>
<tr>
<th style="font-size:8pt;width:50%" class="text-center">
<b>'.tr('Descrizione').'</b>
</th>
<th style="font-size:8pt;width:15%" class="text-center">
<b>'.tr('Q.').'</b>
</th>
<th style="font-size:8pt;width:15%" class="text-center">
<b>'.tr('Prezzo').'</b>
</th>
<th style="font-size:8pt;width:15%" class="text-center">
<b>'.tr('Importo').'</b>
</th>
</tr>
</thead>
<tbody>';
$sconto_spese = [];
$imponibile_spese = [];
// Articoli per intervento
foreach ($interventi as $int) {
$righe = $dbo->fetchArray('SELECT * FROM `in_righe_interventi` WHERE idintervento ='.prepare($int['id']).' ORDER BY id ASC');
foreach ($righe as $r) {
echo '
<tr>';
// Descrizione
echo '
<td>
'.$r['descrizione'];
echo '
<br><small class="text-muted">'.tr('Intervento num. _NUM_ del _DATE_', [
'_NUM_' => $int['id'],
'_DATE_' => Translator::dateToLocale($int['inizio']),
]).'.</small>';
echo '
</td>';
// Quantità
echo '
<td class="text-center">
'.Translator::numberToLocale($r['qta']).' '.$r['um'].'
</td>';
// Prezzo unitario
echo "
<td class='text-center'>
".Translator::numberToLocale($r['prezzo_vendita']).' &euro;';
if ($r['sconto'] > 0) {
echo "
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
if ($count <= 1) {
$count += 0.4;
}
}
echo '
</td>';
// Netto
$netto = $r['prezzo_vendita'] * $r['qta'];
echo '
<td class="text-center">
'.Translator::numberToLocale($netto).' &euro;';
if ($r['sconto'] > 0) {
echo "
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto']),
'_TYPE_' => '&euro;',
]).'</small>';
if ($count <= 1) {
$count += 0.4;
}
}
echo '
</td>
</tr>';
$sconto_spese[] = $r['sconto'];
$imponibile_spese[] = $r['prezzo_vendita'] * $r['qta'];
}
}
echo '
</tbody>';
$sconto_spese = sum($sconto_spese);
$imponibile_spese = sum($imponibile_spese);
$totale_spese = $imponibile_spese - $sconto_spese;
$sconto[] = $sconto_spese;
$imponibile[] = $imponibile_spese;
// Totale spese aggiuntive
echo '
<tr>
<td colspan="2" class="text-right">
<b>'.tr('Totale spese aggiuntive', [], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($totale_spese).' &euro;</b>
</th>
</tr>';
echo '
</table>';
}
}
// TOTALE COSTI FINALI
$sconto = sum($sconto);
$imponibile = sum($imponibile);
$totale = $imponibile - $sconto;
$rs = $dbo->fetchArray('SELECT SUM(subtotale) as budget FROM `co_righe_preventivi` WHERE idpreventivo = '.prepare($idpreventivo));
$budget = $rs[0]['budget'];
$rapporto = $budget - $totale;
// Totale imponibile
echo '
<table class="table table-bordered">
<tr>
<td colspan="3" class="text-right border-top">
<b>'.tr('Imponibile', [], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($imponibile).' &euro;</b>
</th>
</tr>';
// Eventuale sconto incondizionato
if (!empty($sconto)) {
echo '
<tr>
<td colspan="3" class="text-right border-top">
<b>'.tr('Sconto', [], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>-'.Translator::numberToLocale($sconto).' &euro;</b>
</th>
</tr>';
// Imponibile scontato
echo '
<tr>
<td colspan="3" class="text-right border-top">
<b>'.tr('Imponibile scontato', [], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($totale).' &euro;</b>
</th>
</tr>';
}
// IVA
$rs = $dbo->fetchArray('SELECT * FROM co_iva WHERE co_iva.id = '.prepare(get_var('Iva predefinita')));
$percentuale_iva = $rs[0]['percentuale'];
$iva = $totale / 100 * $percentuale_iva;
echo '
<tr>
<td colspan="3" class="text-right border-top">
<b>'.tr('Iva (_PRC_%)', [
'_PRC_' => Translator::numberToLocale($percentuale_iva, 0),
], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($iva).' &euro;</b>
</th>
</tr>';
$totale = sum($totale, $iva);
// TOTALE
echo '
<tr>
<td colspan="3" class="text-right border-top">
<b>'.tr('Totale consuntivo', [], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($totale).' &euro;</b>
</th>
</tr>';
// BUDGET
echo '
<tr>
<td colspan="3" class="text-right border-top">
<b>'.tr('Budget (no IVA)', [], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($budget).' &euro;</b>
</th>
</tr>';
// RAPPORTO
echo '
<tr>
<td colspan="3" class="text-right border-top">
<b>'.tr('Rapporto budget/spesa (no IVA)', [], ['upper' => true]).':</b>
</td>
<th colspan="2" class="text-center">
<b>'.Translator::numberToLocale($rapporto).' &euro;</b>
</th>
</tr>';
echo'
</table>';

View File

@ -0,0 +1,16 @@
<?php
echo '
<div class="row">
<div class="col-xs-6">
<img src="'.__DIR__.'/logo_azienda.jpg" alt="Logo" border="0"/>
</div>
<div class="col-xs-6 text-right">
<p><b>$f_ragionesociale$</b></p>
<p>$f_indirizzo$ $f_citta_full$</p>
<p>'.(!empty($f_piva) ? tr('P.Iva').': ' : '').'$f_piva$</p>
<p>'.(!empty($f_codicefiscale) ? tr('C.F.').': ' : '').'$f_codicefiscale$</p>
<p>'.(!empty($f_capsoc) ? tr('Cap.Soc.').': ' : '').'$f_capsoc$</p>
<p>'.(!empty($f_telefono) ? tr('Tel').': ' : '').'$f_telefono$</p>
</div>
</div>';

View File

@ -0,0 +1,11 @@
<?php
include_once __DIR__.'/../../core.php';
$module_name = 'Preventivi';
// Lettura info fattura
$records = $dbo->fetchArray('SELECT *, data_bozza AS data FROM co_preventivi WHERE co_preventivi.id='.prepare($idpreventivo));
$id_cliente = $records[0]['idanagrafica'];
$id_sede = $records[0]['idsede'];

View File

@ -1,387 +0,0 @@
<?php
include_once __DIR__.'/../../core.php';
// carica intervento
$idpreventivo = save($_GET['idpreventivo']);
// Lettura dati preventivo e interventi
$q = 'SELECT *, (SELECT orario_inizio FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento = in_interventi.id) AS data, (SELECT SUM(km) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento = in_interventi.id) AS km, co_preventivi.descrizione AS `cdescrizione`, (SELECT SUM(subtotale) as totale_budget FROM `co_righe_preventivi` WHERE idpreventivo = '.$idpreventivo." ) AS `budget` , co_preventivi.idanagrafica AS `idanagrafica`, (SELECT costo_orario FROM in_tipiintervento WHERE idtipointervento=in_interventi.idtipointervento) AS src_costo_orario, (SELECT costo_km FROM in_tipiintervento WHERE idtipointervento=in_interventi.idtipointervento) AS src_costo_km, (SELECT costo_diritto_chiamata FROM in_tipiintervento WHERE idtipointervento=in_interventi.idtipointervento) AS src_diritto_chiamata, (SELECT SUM(prezzo_ore_consuntivo) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_ore_consuntivo`, (SELECT SUM(prezzo_km_consuntivo) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_km_consuntivo`, (SELECT SUM(sconto) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_sconto_ore`, (SELECT SUM(scontokm) FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento=in_interventi.id) AS `tot_sconto_km` FROM co_preventivi LEFT OUTER JOIN (co_preventivi_interventi LEFT OUTER JOIN in_interventi ON co_preventivi_interventi.idintervento=in_interventi.id) ON co_preventivi.id=co_preventivi_interventi.idpreventivo WHERE co_preventivi.id='".$idpreventivo."' ORDER BY data DESC";
$rspreventivii = $dbo->fetchArray($q);
$idcliente = $rspreventivii[0]['idanagrafica'];
$budget = Translator::numberToLocale($rspreventivii[0]['budget'], 2);
// carica report html
$report = file_get_contents($docroot.'/templates/preventivi_cons/preventivo.html');
$body = file_get_contents($docroot.'/templates/preventivi_cons/preventivo_body.html');
include_once $docroot.'/templates/pdfgen_variables.php';
$totrows = sizeof($rspreventivii);
$totale_km = 0;
$totale_ore = 0;
$totale = 0;
$preventivi = [];
$ore = [];
$km = [];
$dc = [];
$ntecnici = [];
$tecnici = [];
$costi_orari = [];
$costi_km = [];
$idinterventi = [];
if ($totrows > 0) {
for ($i = 0; $i < $totrows; ++$i) {
if (!empty($rspreventivii[$i]['codice'])) {
// Lettura numero tecnici collegati all'intervento
$query = 'SELECT an_anagrafiche.idanagrafica, ragione_sociale, in_interventi_tecnici.ore, in_interventi_tecnici.km, prezzo_dirittochiamata FROM in_interventi_tecnici LEFT OUTER JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico=an_anagrafiche.idanagrafica WHERE idintervento="'.$rspreventivii[$i]['id'].'"';
$rst = $dbo->fetchArray($query);
$n_tecnici = sizeof($rst);
$tecnici_full = [];
$dc_tecnici = 0;
$t = 0;
for ($j = 0; $j < $n_tecnici; ++$j) {
$t1 = $rst[$j]['ore'];
array_push($tecnici_full, $rst[$j]['ragione_sociale']);
// Conteggio ore totali
$t += $rst[$j]['ore'];
$dc_tecnici += $rst[$j]['prezzo_dirittochiamata'];
}
$desc = str_replace("\n", '<br/>&nbsp;&nbsp;', '<small>'.$rspreventivii[$i]['descrizione'].'</small>');
$line = 'Attività <b>'.$rspreventivii[$i]['codice'].'</b> del <b>'.Translator::dateToLocale($rspreventivii[$i]['data'])."</b><br/>\n&nbsp;&nbsp;".$desc;
array_push($preventivi, $line);
array_push($km, $rspreventivii[$i]['km']);
array_push($ore, $t);
array_push($dc, $dc_tecnici);
array_push($ntecnici, $n_tecnici);
array_push($tecnici, implode(', ', array_unique($tecnici_full)));
$totale_ore += $t;
$totale_km += floatval($rspreventivii[$i]['km']);
$totale_diritto_chiamata += $dc_tecnici;
}
}
}
$body .= '<big><b>PREVENTIVO: '.$rspreventivii[0]['nome']."</b></big><br/><br/>\n";
$body .= '<span>'.str_replace("\n", '<br/>', $rspreventivii[0]['cdescrizione'])."</span><br/>\n";
// Sostituisco i valori tra | | con il valore del campo del db
$body .= preg_replace('/|(.+?)|/', $rspreventivii[0]['${1}'], $body);
if (sizeof($preventivi) > 0) {
// Tabella con riepilogo interventi, km e ore
$body .= "<table class=\"table_values\" border=\"0\">\n";
$body .= "<col width='237'><col width='60'><col width='60'><col width='60'><col width='60'><col width='60'><col width='60'>\n";
$body .= "<tr><th align=\"left\"><small>Attività</small></th>\n";
$body .= "<th align=\"center\"><small>Km</small></th>\n";
$body .= "<th align=\"center\"><small>Costo&nbsp;al&nbsp;km</small></th>\n";
$body .= "<th align=\"center\"><small>Ore</small></th>\n";
$body .= "<th align=\"center\"><small>Costo&nbsp;orario</small></th>\n";
$body .= "<th align=\"center\"><small>Diritto ch.</small></th>\n";
$body .= "<th align=\"center\"><small>Subtotale</small></th></tr>\n";
$body .= "<tbody>\n";
// Tabella con i dati
for ($j = 0; $j < sizeof($preventivi); ++$j) {
$body .= "<tr><td align=\"left\" valign=\"top\">\n";
$body .= $preventivi[$j]."<br/>\n";
$body .= '<span style="font-size:10px; color:#777;"><b>Tecnici:</b><br/>'.$tecnici[$j]."</span>\n";
$body .= "</td>\n";
// Km
$body .= "<td align=\"right\" valign=\"top\">\n";
$body .= Translator::numberToLocale($km[$j], 2);
$body .= "</td>\n";
// Costo unitario km
$body .= "<td align=\"right\" valign=\"top\">\n";
$body .= Translator::numberToLocale($rspreventivii[$j]['src_costo_km'], 2);
$body .= "</td>\n";
// Ore
$body .= "<td align=\"right\" valign=\"top\">\n";
$body .= Translator::numberToLocale($ore[$j], 2);
$body .= "</td>\n";
// Costo unitario ore
$body .= "<td align=\"right\" valign=\"top\">\n";
$body .= Translator::numberToLocale($rspreventivii[$j]['src_costo_orario'], 2);
$body .= "</td>\n";
// Diritto chiamata
$body .= "<td align=\"right\" valign=\"top\">\n";
$body .= Translator::numberToLocale($dc[$j], 2);
$body .= "</td>\n";
// Subtotale
$subtotale = $rspreventivii[$j]['src_costo_km'] * $km[$j] + $rspreventivii[$j]['src_costo_orario'] * $ore[$j] + $rspreventivii[$j]['src_diritto_chiamata'];
$body .= "<td align=\"right\" valign=\"top\">\n";
$body .= Translator::numberToLocale($subtotale, 2);
// Sconto ore + km
if ($rspreventivii[$j]['tot_sconto_ore'] + $rspreventivii[$j]['tot_sconto_km'] > 0) {
$body .= "<br><small style='color:#aaa;'>".Translator::numberToLocale(-($rspreventivii[$j]['tot_sconto_ore'] + $rspreventivii[$j]['tot_sconto_km']), 2).'</small>';
}
$body .= "</td></tr>\n";
$totale += $subtotale;
$totale_consuntivo += $rspreventivii[$j]['tot_ore_consuntivo'] + $rspreventivii[$j]['tot_km_consuntivo'];
array_push($idinterventi, "'".$rspreventivii[$j]['id']."'");
}
$body .= "<tr><td style='border:0px;' align=\"right\">\n";
$body .= "<span><b>Totale:</b></span>\n";
$body .= "</td>\n";
$body .= "<td align=\"right\">\n";
$body .= '<span><b>'.Translator::numberToLocale($totale_km, 2)."</b></span>\n";
$body .= "</td>\n";
$body .= "<td></td>\n";
$body .= "<td align=\"right\">\n";
$body .= '<span><b>'.Translator::numberToLocale($totale_ore, 2)."</b></span>\n";
$body .= "</td>\n";
$body .= "<td></td>\n";
$body .= "<td align=\"right\">\n";
$body .= '<span><b>'.Translator::numberToLocale($totale_diritto_chiamata, 2)."</b></span>\n";
$body .= "</td>\n";
$body .= "<td align=\"right\" bgcolor=\"#dddddd\">\n";
$body .= '<span><b>'.Translator::numberToLocale($totale, 2)." &euro;</b></span>\n";
$body .= "</td></tr>\n";
// Riga dello sconto
// $sconto = $totale_consuntivo - $totale;
// $sconto = 0;
if ($sconto != 0) {
/*
$body .= "<tr><td style=\"border:0px;\" align=\"right\" colspan=\"6\">\n";
$body .= "<span><b>Arrotondamenti:</b></span>\n";
$body .= "</td><td align=\"center\">\n";
$body .= "<span><b>".Translator::numberToLocale( $sconto, 2)." &euro;</b></span>\n";
$body .= "</td></tr>\n\n";
*/
$body .= "<tr><td style=\"border:0px;\" align=\"right\" colspan=\"6\">\n";
$body .= "<span><b>Totale:</b></span>\n";
$body .= "</td><td align=\"center\" bgcolor=\"#dddddd\">\n";
$body .= '<span><b>'.Translator::numberToLocale($totale_consuntivo, 2)." &euro;</b></span>\n";
$body .= "</td></tr>\n";
}
// Fine riga dello sconto
$totale_intervento_consuntivo += $totale_consuntivo;
$totale_intervento_consuntivo = $totale;
$body .= "</tbody>\n";
$body .= "</table>\n";
}
$body .= "<br/>\n";
if (!empty($idinterventi)) {
// Conteggio articoli utilizzati
$query = "SELECT *, (SELECT orario_inizio FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento = mg_articoli_interventi.idintervento) AS data_intervento, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno,(SELECT percentuale FROM co_iva WHERE id=mg_articoli_interventi.idiva_vendita) AS prciva_vendita, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice_art, CONCAT_WS(serial, 'SN: ', ', ') AS codice, SUM(qta) AS sumqta FROM `mg_articoli_interventi` JOIN mg_prodotti ON mg_articoli_interventi.idarticolo = mg_prodotti.id_articolo GROUP BY idarticolo, idintervento, lotto HAVING idintervento IN(".implode(',', $idinterventi).") AND NOT idarticolo='0' ORDER BY idarticolo ASC";
$rs2 = $dbo->fetchArray($query);
if (sizeof($rs2) > 0) {
$body .= "<table style=\"width:100%;\" class=\"table_values\" cellspacing=\"2\" cellpadding=\"5\" style=\"border-color:#aaa;\">\n";
$body .= "<tr><th align='center' colspan='4'><b>Materiale utilizzato per gli interventi</b></th></tr>\n";
$body .= "<tr><th style=\"width:130mm;\">\n";
$body .= "<b>Articolo</b>\n";
$body .= "</th>\n";
$body .= "<th style=\"width:10mm;\" align=\"center\">\n";
$body .= "<b>Q.tà</b>\n";
$body .= "</th>\n";
$body .= "<th style=\"width:20mm;\" align=\"center\">\n";
$body .= "<b>Prezzo unitario</b>\n";
$body .= "</th>\n";
$body .= "<th style=\"width:20mm;\" align=\"center\">\n";
$body .= "<b>Subtot</b>\n";
$body .= "</th></tr>\n";
$totale_articoli = 0.00;
for ($i = 0; $i < sizeof($rs2); ++$i) {
// Articolo
$body .= "<tr><td class='first_cell'>\n";
$body .= '<span>'.nl2br($rs2[$i]['descrizione'])."</span>\n";
if ($rs2[$i]['codice'] != '' && $rs2[$i]['codice'] != 'Lotto: , SN: , Altro: ') {
$body .= '<br/><small>'.$rs2[$i]['codice']."</small>\n";
}
$body .= '<br/><span><small style="color:#777;">Intervento del '.Translator::dateToLocale($rs2[$i]['data_intervento'])."</small></span>\n";
$body .= "</td>\n";
// Quantità
$qta = $rs2[$i]['sumqta'];
$body .= "<td class='table_cell' align='center'>\n";
$body .= '<span>'.$rs2[$i]['sumqta']."</span>\n";
$body .= "</td>\n";
// Prezzo unitario
$body .= "<td class='table_cell' align='center'>\n";
$netto = $rs2[$i]['prezzo_vendita'];
$netto = $netto + $netto / 100 * $rs2[$i]['prc_guadagno'];
$iva = $netto / 100 * $rs2[$i]['prciva_vendita'];
$body .= '<span>'.Translator::numberToLocale($netto, 2)." &euro;</span>\n";
$body .= "</td>\n";
// Prezzo di vendita
$body .= "<td class='table_cell' align='center'>\n";
$body .= "<span><span class='prezzo_articolo'>".Translator::numberToLocale($netto * $qta, 2)."</span> &euro;</span>\n";
$body .= "</td></tr>\n";
$totale_articoli += $netto * $qta;
}
// Totale spesa articoli
$body .= "<tr><td colspan=\"3\" align=\"right\">\n";
$body .= "<b>TOTALE MATERIALE UTILIZZATO:</b>\n";
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_articoli, 2)." &euro;</b>\n";
$body .= "</td></tr>\n";
$body .= "</table><br/>\n";
}
}
if (!empty($idinterventi)) {
// Conteggio spese aggiuntive
$query = 'SELECT *, (SELECT orario_inizio FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento = in_righe_interventi.idintervento) AS data_intervento FROM in_righe_interventi WHERE idintervento IN('.implode(',', $idinterventi).') ORDER BY id ASC';
$rs2 = $dbo->fetchArray($query);
if (sizeof($rs2) > 0) {
$body .= "<table style=\"width:100%;\" class=\"table_values\" cellspacing=\"2\" cellpadding=\"5\" style=\"border-color:#aaa;\">\n";
$body .= "<tr><th align='center' colspan='4'><b>Spese aggiuntive</b></th></tr>\n";
$body .= "<tr><th style=\"width:130mm;\">\n";
$body .= "<b>Descrizione</b>\n";
$body .= "</th>\n";
$body .= "<th style=\"width:10mm;\" align=\"center\">\n";
$body .= "<b>Q.tà</b>\n";
$body .= "</th>\n";
$body .= "<th style=\"width:20mm;\" align=\"center\">\n";
$body .= "<b>Prezzo unitario</b>\n";
$body .= "</th>\n";
$body .= "<th style=\"width:20mm;\" align=\"center\">\n";
$body .= "<b>Subtot</b>\n";
$body .= "</th></tr>\n";
$totale_spese = 0.00;
for ($i = 0; $i < sizeof($rs2); ++$i) {
// Articolo
$body .= "<tr><td class='first_cell'>\n";
$body .= '<span>'.$rs2[$i]['descrizione']."</span><br/>\n";
$body .= '<span><small style="color:#777;">Intervento del '.Translator::dateToLocale($rs2[$i]['data_intervento'])."</small></span>\n";
$body .= "</td>\n";
// Quantità
$qta = $rs2[$i]['qta'];
$body .= "<td class='table_cell' align='center'>\n";
$body .= '<span>'.Translator::numberToLocale($rs2[$i]['qta'], 2)."</span>\n";
$body .= "</td>\n";
// Prezzo unitario
$body .= "<td class='table_cell' align='center'>\n";
$netto = $rs2[$i]['prezzo'];
$body .= '<span>'.Translator::numberToLocale($netto, 2)." &euro;</span>\n";
$body .= "</td>\n";
// Prezzo di vendita
$body .= "<td class='table_cell' align='center'>\n";
$body .= '<span>'.Translator::numberToLocale($netto * $qta, 2)." &euro;</span>\n";
$body .= "</td></tr>\n";
$totale_spese += $netto * $qta;
}
// Totale spese aggiuntive
$body .= "<tr><td colspan=\"3\" align=\"right\">\n";
$body .= "<b>ALTRE SPESE:</b>\n";
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_spese, 2)." &euro;</b>\n";
$body .= "</td></tr>\n";
$body .= "</table><br/>\n";
}
}
// Totale complessivo intervento
$body .= "<table class=\"table_values\" cellspacing=\"0\" border=\"0\" cellpadding=\"0\" style=\"table-layout:fixed; border-color:#aaa;\">\n";
$body .= "<tr><td align=\"center\" colspan=\"2\" valign=\"middle\" style=\"width:194.5mm;font-size:11pt;border:0px;\"><b></b></td></tr>\n";
// IMPONIBILE
$body .= "<tr><td align=\"right\" >\n";
$body .= "<b>IMPONIBILE:</b>\n";
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#cccccc\" style=\"width:85mm\ >\n";
$totale = Translator::numberToLocale($totale_intervento_consuntivo + $totale_articoli + $totale_spese, 2);
$body .= '<b>'.Translator::numberToLocale($totale_intervento_consuntivo + $totale_articoli + $totale_spese, 2)." &euro;</b>\n";
$body .= "</td></tr>\n";
// IVA
$q = "SELECT * FROM co_iva INNER JOIN zz_settings WHERE co_iva.id = zz_settings.valore AND zz_settings.nome = 'Iva predefinita' ";
$rs = $dbo->fetchArray($q);
$percentuale_iva = $rs[0]['percentuale'];
$body .= "<tr><td align=\"right\" >\n";
$body .= '<b>IVA ('.number_format($percentuale_iva, 0)."%):</b>\n";
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#cccccc\" >\n";
$body .= '<b>'.Translator::numberToLocale(($totale_intervento_consuntivo + $totale_articoli + $totale_spese) / 100 * $percentuale_iva, 2)." &euro;</b>\n";
$body .= "</td></tr>\n";
// TOTALE (IMPONIBILE + IVA)
$body .= "<tr><td align=\"right\" >\n";
$body .= "<b>TOTALE CONSUNTIVO:</b>\n";
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#cccccc\" >\n";
$totale_ivato = Translator::numberToLocale(($totale_intervento_consuntivo + $totale_articoli + $totale_spese) + ($totale_intervento_consuntivo + $totale_articoli + $totale_spese) / 100 * $percentuale_iva, 2);
$body .= '<b>'.$totale_ivato." &euro;</b>\n";
$body .= "</td></tr>\n";
// BUDGET
$body .= "<tr><td align=\"right\" >\n";
$body .= "<b>BUDGET (NO IVA):</b>\n";
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#cccccc\" >\n";
$body .= '<b>'.$budget." &euro;</b>\n";
$body .= "</td></tr>\n";
$body .= "<tr><td align=\"right\" width=\"131mm\">\n";
$body .= "<b>RAPPORTO BUDGET/SPESA (NO IVA):</b>\n";
$body .= "</td>\n";
$diff = Translator::numberToLocale($budget - $totale, 2);
$body .= "<td align=\"center\" bgcolor=\"#cccccc\" width=\"24mm\">\n";
$body .= '<b>'.$diff." &euro;</b>\n";
$body .= "</td></tr>\n";
$body .= "</table>\n";
$report_name = 'preventivo_'.$idpreventivo.'_cons.pdf';

View File

@ -1,18 +0,0 @@
<style>
<!--
.table_values td{
border: 1px solid #888;
padding: 4px;
white-space: normal;
}
.table_values th{
background: #abbfcb;
padding: 4px;
}
-->
</style>
<page backcolor="#ffffff" backtop="55mm" backbottom="0mm" backleft="0mm" backright="0mm" footer="" style="font-size: $font_size$">
$body$
</page>

View File

@ -1,27 +0,0 @@
<page_header>
<table $body_table_params$>
<!-- Intestazione fornitore -->
<tr><td style="width:105mm; font-size:8pt; color:#555;">
<img src="$docroot$/templates/preventivi/logo_azienda.jpg" alt="Logo" border="0" /><br/>
$f_ragionesociale$
$f_indirizzo$
$f_citta_full$
$f_piva$
$f_codicefiscale$
$f_capsoc$
$f_telefono$
$f_sitoweb$
$f_email$
</td>
<!-- Intestazione cliente -->
<td style="width:95mm; font-size:10pt">
Spett.le $c_ragionesociale$
$c_indirizzo$
$c_citta$
$c_piva$
</td></tr>
</table>
<br/>
</page_header>

View File

@ -101,8 +101,8 @@ for ($i = 0; $i < sizeof($rs); ++$i) {
</td>';
}
$body .= " <td class='table_cell cell-padded'>".$rs[$i]['desc_iva'].'</td>';
$body .= " <td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs[$i]['subtotale'], 2).' &euro;</td>';
$body .= " <td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs[$i]['iva'], 2).' &euro;</td>';
$body .= " <td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs[$i]['subtotale']).' &euro;</td>';
$body .= " <td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs[$i]['iva']).' &euro;</td>';
$body .= '</tr>';
$v_iva[$rs[$i]['desc_iva']] += $rs[$i]['iva'];
@ -136,19 +136,19 @@ foreach ($v_iva as $desc_iva => $tot_iva) {
$body .= "</td>\n";
$body .= "<td valign='top' align='right' class='table_cell cell-padded'>\n";
$body .= Translator::numberToLocale($v_totale[$desc_iva], 2)." &euro;\n";
$body .= Translator::numberToLocale($v_totale[$desc_iva])." &euro;\n";
$body .= "</td>\n";
$body .= "<td valign='top' align='right' class='table_cell cell-padded'>\n";
$body .= Translator::numberToLocale($v_iva[$desc_iva], 2)." &euro;\n";
$body .= Translator::numberToLocale($v_iva[$desc_iva])." &euro;\n";
$body .= "</td></tr>\n";
}
}
$body .= " <tr bgcolor='#dddddd'>
<td class='full_cell1 cell-padded text-right'><b>TOTALE</b></td>
<td class='full_cell1 cell-padded text-right'>".Translator::numberToLocale($totale_subtotale, 2)." &euro;</td>
<td class='full_cell1 cell-padded text-right'>".Translator::numberToLocale($totale_iva, 2).' &euro;</td>
<td class='full_cell1 cell-padded text-right'>".Translator::numberToLocale($totale_subtotale)." &euro;</td>
<td class='full_cell1 cell-padded text-right'>".Translator::numberToLocale($totale_iva).' &euro;</td>
</tr>';
$body .= '

View File

@ -126,7 +126,7 @@ for ($i = 0; $i < sizeof($rs); ++$i) {
$body .= "</td>\n";
$body .= "<td align=\"right\" style=\"width:20mm;\">\n";
$body .= ' '.Translator::numberToLocale($rs[$i]['budget_totale'], 2).' &euro;\n';
$body .= ' '.Translator::numberToLocale($rs[$i]['budget_totale']).' &euro;\n';
$body .= "</td></tr>\n";
$totale += $rs[$i]['budget_totale'];
@ -138,7 +138,7 @@ $body .= " <b>TOTALE:</b>\n";
$body .= "</td>\n";
$body .= "<td align=\"right\">\n";
$body .= ' <b>'.Translator::numberToLocale($totale, 2)." &euro;</b>\n";
$body .= ' <b>'.Translator::numberToLocale($totale)." &euro;</b>\n";
$body .= "</td></tr>\n";
$body .= "</tbody>\n";

View File

@ -197,32 +197,32 @@ if (sizeof($info_intervento) > 0) {
// Totale km
$body .= '<td align="center" valign="top">';
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($km[$i], 2)."</span></div>\n";
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($km[$i])."</span></div>\n";
$body .= "</td>\n";
// Costo km
$body .= '<td align="center" valign="top">';
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($costi_km[$i], 2)."</span></div>\n";
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($costi_km[$i])."</span></div>\n";
$body .= "</td>\n";
// Totale ore
$body .= '<td align="center" valign="top">';
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($ore[$i], 2)."</span></div>\n";
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($ore[$i])."</span></div>\n";
$body .= "</td>\n";
// Costo ore
$body .= '<td align="center" valign="top">';
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($costi_orari[$i], 2)."</span></div>\n";
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($costi_orari[$i])."</span></div>\n";
$body .= "</td>\n";
// Diritto chiamata
$body .= '<td align="center" valign="top">';
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($diritto_chiamata[$i], 2)."</span></div>\n";
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($diritto_chiamata[$i])."</span></div>\n";
$body .= "</td>\n";
// Subtot
$body .= '<td align="center" valign="top">';
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($subtotale_calcolato, 2)."</span></div>\n";
$body .= '<div style="width:15mm;"><span>'.Translator::numberToLocale($subtotale_calcolato)."</span></div>\n";
$body .= "</td></tr>\n";
}
@ -232,23 +232,23 @@ if (sizeof($info_intervento) > 0) {
// Totale costo km
$body .= "<td align=\"center\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_km, 2)."</b>\n";
$body .= '<b>'.Translator::numberToLocale($totale_km)."</b>\n";
$body .= "</td>\n";
$body .= "<td></td>\n";
// Totale costo ore
$body .= "<td align=\"center\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_ore, 2)."</b>\n";
$body .= '<b>'.Translator::numberToLocale($totale_ore)."</b>\n";
$body .= "</td>\n";
$body .= "<td></td>\n";
// Totale diritto chiamata
$body .= "<td align=\"center\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_dirittochiamata, 2)."</b>\n";
$body .= '<b>'.Translator::numberToLocale($totale_dirittochiamata)."</b>\n";
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_calcolato, 2)." &euro;</b>\n";
$body .= '<b>'.Translator::numberToLocale($totale_calcolato)." &euro;</b>\n";
$body .= "</td></tr>\n";
// Riga dello sconto
@ -258,14 +258,14 @@ if (sizeof($info_intervento) > 0) {
$body .= "<tr><td style=\"border:0px;\" align=\"right\" colspan=\"6\">\n";
$body .= "<b>Arrotondamenti:</b>\n";
$body .= "</td><td align=\"center\">\n";
$body .= "<b>".Translator::numberToLocale( -$sconto, 2)." &euro;</b>\n";
$body .= "<b>".Translator::numberToLocale( -$sconto)." &euro;</b>\n";
$body .= "</td></tr>\n\n";
*/
$body .= "<tr><td style=\"border:0px;\" align=\"right\" colspan=\"6\">\n";
$body .= "<b>Totale scontato:</b>\n";
$body .= "</td><td align=\"center\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_calcolato - $sconto, 2)." &euro;</b>\n";
$body .= '<b>'.Translator::numberToLocale($totale_calcolato - $sconto)." &euro;</b>\n";
$body .= "</td></tr>\n";
}
@ -323,12 +323,12 @@ if (sizeof($rs2) > 0) {
$netto = $rs2[$i]['prezzo_vendita'];
$netto = $netto + $netto / 100 * $rs2[$i]['prc_guadagno'];
$iva = $netto / 100 * $rs2[$i]['prciva_vendita'];
$body .= '<span>'.Translator::numberToLocale($netto, 2)." &euro;</span>\n";
$body .= '<span>'.Translator::numberToLocale($netto)." &euro;</span>\n";
$body .= "</td>\n";
// Prezzo di vendita
$body .= "<td class='table_cell' align='center'>\n";
$body .= '<span><span>'.Translator::numberToLocale($netto * $qta, 2)."</span> &euro;</span>\n";
$body .= '<span><span>'.Translator::numberToLocale($netto * $qta)."</span> &euro;</span>\n";
$body .= "</td></tr>\n";
$totale_articoli += $netto * $qta;
}
@ -339,7 +339,7 @@ if (sizeof($rs2) > 0) {
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_articoli, 2)." &euro;</b>\n";
$body .= '<b>'.Translator::numberToLocale($totale_articoli)." &euro;</b>\n";
$body .= "</td></tr>\n";
$body .= "</table><br/>\n";
}
@ -384,18 +384,18 @@ if (sizeof($rs2) > 0) {
// Quantità
$qta = $rs2[$i]['qta'];
$body .= "<td class='table_cell' align='center'>\n";
$body .= '<span>'.Translator::numberToLocale($rs2[$i]['qta'], 2)."</span>\n";
$body .= '<span>'.Translator::numberToLocale($rs2[$i]['qta'])."</span>\n";
$body .= "</td>\n";
// Prezzo unitario
$body .= "<td class='table_cell' align='center'>\n";
$netto = $rs2[$i]['prezzo'];
$body .= '<span>'.Translator::numberToLocale($netto, 2)." &euro;</span>\n";
$body .= '<span>'.Translator::numberToLocale($netto)." &euro;</span>\n";
$body .= "</td>\n";
// Prezzo di vendita
$body .= "<td class='table_cell' align='center'>\n";
$body .= '<span>'.Translator::numberToLocale($netto * $qta, 2)." &euro;</span>\n";
$body .= '<span>'.Translator::numberToLocale($netto * $qta)." &euro;</span>\n";
$body .= "</td></tr>\n";
$totale_spese += $netto * $qta;
}
@ -406,14 +406,14 @@ if (sizeof($rs2) > 0) {
$body .= "</td>\n";
$body .= "<td align=\"center\" bgcolor=\"#dddddd\">\n";
$body .= '<b>'.Translator::numberToLocale($totale_spese, 2)." &euro;</b>\n";
$body .= '<b>'.Translator::numberToLocale($totale_spese)." &euro;</b>\n";
$body .= "</td></tr>\n";
$body .= "</table><br/>\n";
}
// Totale complessivo intervento
$body .= "<p align=\"right\">\n";
$body .= '<big><b>TOTALE INTERVENTI: '.Translator::numberToLocale($totale_intervento_scontato + $totale_articoli + $totale_spese, 2)." &euro;</b></big>\n";
$body .= '<big><b>TOTALE INTERVENTI: '.Translator::numberToLocale($totale_intervento_scontato + $totale_articoli + $totale_spese)." &euro;</b></big>\n";
$body .= "</p>\n";
$report_name = 'Riepilogo_interventi.pdf';

View File

@ -54,8 +54,8 @@ for ($i = 0; $i < sizeof($rs); ++$i) {
$body .= ' <td>'.$rs[$i]['Anagrafica']."</td>\n";
$body .= ' <td>'.$rs[$i]['Tipo di pagamento']."</td>\n";
$body .= " <td align='center'>".$rs[$i]['Data scadenza']."</td>\n";
$body .= " <td align='right'>".Translator::numberToLocale($rs[$i]['Importo'], 2)."</td>\n";
$body .= " <td align='right'>".Translator::numberToLocale($rs[$i]['Pagato'], 2)."</td>\n";
$body .= " <td align='right'>".Translator::numberToLocale($rs[$i]['Importo'])."</td>\n";
$body .= " <td align='right'>".Translator::numberToLocale($rs[$i]['Pagato'])."</td>\n";
$body .= " </tr>\n";
$totale_da_pagare += $rs[$i]['Importo'];
@ -63,7 +63,7 @@ for ($i = 0; $i < sizeof($rs); ++$i) {
}
$body .= " <tr>\n";
$body .= " <td colspan='4' align='right'><b>TOTALE:</b></td><td align='right'>".Translator::numberToLocale($totale_da_pagare, 2)."</td><td align='right'>".Translator::numberToLocale($totale_pagato, 2)."</td>\n";
$body .= " <td colspan='4' align='right'><b>TOTALE:</b></td><td align='right'>".Translator::numberToLocale($totale_da_pagare)."</td><td align='right'>".Translator::numberToLocale($totale_pagato)."</td>\n";
$body .= " </tr>\n";
$body .= "</tbody>\n";

View File

@ -92,19 +92,19 @@ foreach ($anagrafiche as $i => $anagrafica) {
// Imponible
echo '
<td class="text-center">
'.Translator::numberToLocale($riga['imponibile'], 2).' &euro;
'.Translator::numberToLocale($riga['imponibile']).' &euro;
</td>';
// IVA
echo '
<td class="text-center">
'.Translator::numberToLocale($riga['iva'], 2).' &euro;
'.Translator::numberToLocale($riga['iva']).' &euro;
</td>';
// Totale
echo '
<td class="text-center">
'.Translator::numberToLocale($riga['totale'], 2).' &euro;
'.Translator::numberToLocale($riga['totale']).' &euro;
</td>
</tr>';
@ -131,7 +131,7 @@ echo '
</td>
<th colspan="3" class="text-center">
<b>'.Translator::numberToLocale(sum($imponibile), 2).' &euro;</b>
<b>'.Translator::numberToLocale(sum($imponibile)).' &euro;</b>
</th>
</tr>';
@ -147,7 +147,7 @@ foreach ($iva as $desc => $values) {
</td>
<th colspan="3" class="text-center">
<b>'.Translator::numberToLocale($sum, 2).' &euro;</b>
<b>'.Translator::numberToLocale($sum).' &euro;</b>
</th>
</tr>';
@ -162,7 +162,7 @@ echo '
</td>
<th colspan="3" class="text-center">
<b>'.Translator::numberToLocale($totale_iva, 2).' &euro;</b>
<b>'.Translator::numberToLocale($totale_iva).' &euro;</b>
</th>
</tr>';
@ -173,7 +173,7 @@ echo '
<b>'.tr('Totale', [], ['upper' => true]).':</b>
</td>
<th colspan="3" class="text-center">
<b>'.Translator::numberToLocale(sum($totale), 2).' &euro;</b>
<b>'.Translator::numberToLocale(sum($totale)).' &euro;</b>
</th>
</tr>';

View File

@ -96,6 +96,9 @@ $files = [
'templates/preventivi/preventivi_body.html',
'templates/preventivi/preventivi.html',
'templates/preventivi/pdfgen.preventivi.php',
'templates/preventivi_cons/preventivo_body.html',
'templates/preventivi_cons/preventivo.html',
'templates/preventivi_cons/pdfgen.preventivi_cons.php',
'update/install_2.0.sql',
'update/update_2.1.sql',
'update/update_2.1.php',