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:
parent
62ad12b8be
commit
0f37c587e1
@ -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');
|
||||
|
@ -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']),
|
||||
]));
|
||||
|
@ -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' ? '%' : ' €'),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
|
||||
|
@ -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']),
|
||||
]));
|
||||
|
@ -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' ? '%' : ' €'),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
|
||||
|
@ -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' ? '%' : ' €'),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
|
||||
|
@ -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'];
|
||||
|
@ -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' ? '%' : ' €'),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'
|
||||
</span>';
|
||||
}
|
||||
|
@ -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' ? '%' : ' €'),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'
|
||||
</span>';
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -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>';
|
||||
|
@ -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' ? '%' : ' €'),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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' ? '%' : ' €'),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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');
|
||||
|
||||
|
@ -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.
|
||||
*
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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)).' €
|
||||
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' €';
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
|
||||
|
||||
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' ? '%' : ' €'),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
@ -172,7 +172,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th class="text-center">
|
||||
<b>'.Translator::numberToLocale($imponibile, 2).' €</b>
|
||||
<b>'.Translator::numberToLocale($imponibile).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
@ -183,7 +183,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th class="text-center">
|
||||
<b>-'.Translator::numberToLocale($sconto, 2).' €</b>
|
||||
<b>-'.Translator::numberToLocale($sconto).' €</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).' €</b>
|
||||
<b>'.Translator::numberToLocale($totale).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
}
|
||||
|
@ -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).' €/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)."€ 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']).' €/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'])."€ 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)." €</b></span>\n";
|
||||
$body .= '<span><b>'.Translator::numberToLocale($totale)." €</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)." €</span>\n";
|
||||
$body .= '<span>'.Translator::numberToLocale($netto)." €</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> €</span>\n";
|
||||
$body .= "<span><span class='prezzo_articolo'>".Translator::numberToLocale($netto * $qta)."</span> €</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)." €</b>\n";
|
||||
$body .= '<b>'.Translator::numberToLocale($totale_articoli)." €</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)." €</span>\n";
|
||||
$body .= '<span>'.Translator::numberToLocale($netto)." €</span>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
// Prezzo di vendita
|
||||
$body .= "<td class='table_cell' align='center'>\n";
|
||||
$body .= '<span>'.Translator::numberToLocale($netto * $qta, 2)." €</span>\n";
|
||||
$body .= '<span>'.Translator::numberToLocale($netto * $qta)." €</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)." €</b>\n";
|
||||
$body .= '<b>'.Translator::numberToLocale($totale_spese)." €</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." €</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." €</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." €</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 (ore erogate: ".Translator::numberToLocale($totale_ore_impiegate, 2).' - ore in contratto: '.Translator::numberToLocale($contratto_tot_ore, 2).")</b>\n";
|
||||
$diff2 = Translator::numberToLocale($contratto_tot_ore - $totale_ore_impiegate);
|
||||
$body .= "<b>$diff2 (ore erogate: ".Translator::numberToLocale($totale_ore_impiegate).' - ore in contratto: '.Translator::numberToLocale($contratto_tot_ore).")</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
}
|
||||
|
||||
|
@ -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).' €
|
||||
".Translator::numberToLocale($r['subtotale'] / $r['qta']).' €
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".Translator::numberToLocale($r['subtotale'], 2).' €';
|
||||
".Translator::numberToLocale($r['subtotale']).' €';
|
||||
|
||||
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' ? '%' : ' €'),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</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 '
|
||||
|
@ -21,7 +21,7 @@ if ($mostra_prezzi) {
|
||||
echo "
|
||||
<tr>
|
||||
<td class='cell-padded text-right'>
|
||||
".Translator::numberToLocale($imponibile, 2).' €
|
||||
".Translator::numberToLocale($imponibile).' €
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
@ -35,7 +35,7 @@ if ($mostra_prezzi) {
|
||||
|
||||
<tr>
|
||||
<td class='cell-padded text-right'>
|
||||
".Translator::numberToLocale($iva, 2).' €
|
||||
".Translator::numberToLocale($iva).' €
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
@ -49,7 +49,7 @@ if ($mostra_prezzi) {
|
||||
|
||||
<tr>
|
||||
<td class='cell-padded text-right'>
|
||||
".Translator::numberToLocale($totale, 2).' €
|
||||
".Translator::numberToLocale($totale).' €
|
||||
</td>
|
||||
</tr>';
|
||||
} else {
|
||||
|
@ -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)." €</td>\n";
|
||||
$body .= "<td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs2[0]['iva'], 2)." €</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)." €</td></tr>\n";
|
||||
$body .= "<td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs2[0]['imponibile'])." €</td>\n";
|
||||
$body .= "<td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs2[0]['iva'])." €</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'])." €</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)." €</b></td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_iva, 2)." €</b></td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale, 2)." €</b></td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_imponibile)." €</b></td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_iva)." €</b></td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale)." €</b></td>\n";
|
||||
$body .= "</tr>\n";
|
||||
|
||||
$body .= "</table>\n";
|
||||
|
@ -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)).' €
|
||||
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
|
||||
|
||||
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' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' €';
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</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' ? '%' : ' €'),
|
||||
]).'</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>';
|
||||
|
||||
|
@ -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).' €</small>
|
||||
<small>".Translator::numberToLocale($rs2[$i]['da_pagare']).' €</small>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
@ -75,11 +75,11 @@ if (!empty($v_iva)) {
|
||||
</td>
|
||||
|
||||
<td class='text-right'>
|
||||
<small>".Translator::numberToLocale($v_totale[$desc_iva], 2)." €</small>
|
||||
<small>".Translator::numberToLocale($v_totale[$desc_iva])." €</small>
|
||||
</td>
|
||||
|
||||
<td class='text-right'>
|
||||
<small>".Translator::numberToLocale($v_iva[$desc_iva], 2).' €</small>
|
||||
<small>".Translator::numberToLocale($v_iva[$desc_iva]).' €</small>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
@ -132,28 +132,28 @@ echo "
|
||||
|
||||
<tr>
|
||||
<td class='cell-padded text-center'>
|
||||
".Translator::numberToLocale($imponibile, 2)." €
|
||||
".Translator::numberToLocale($imponibile)." €
|
||||
</td>";
|
||||
|
||||
if (!empty($sconto)) {
|
||||
echo "
|
||||
|
||||
<td class='cell-padded text-center'>
|
||||
".Translator::numberToLocale($sconto, 2)." €
|
||||
".Translator::numberToLocale($sconto)." €
|
||||
</td>
|
||||
|
||||
<td class='cell-padded text-center'>
|
||||
".Translator::numberToLocale($imponibile - $sconto, 2)." €
|
||||
".Translator::numberToLocale($imponibile - $sconto)." €
|
||||
</td>";
|
||||
}
|
||||
|
||||
echo "
|
||||
<td class='cell-padded text-center'>
|
||||
".Translator::numberToLocale($iva, 2)." €
|
||||
".Translator::numberToLocale($iva)." €
|
||||
</td>
|
||||
|
||||
<td class='cell-padded text-center'>
|
||||
".Translator::numberToLocale($totale, 2).' €
|
||||
".Translator::numberToLocale($totale).' €
|
||||
</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)." €
|
||||
".Translator::numberToLocale($records[0]['ritenutaacconto'])." €
|
||||
</td>
|
||||
|
||||
<td class='cell-padded text-center' colspan=".(!empty($sconto) ? 2 : 1).">
|
||||
".Translator::numberToLocale($totale - $records[0]['ritenutaacconto'], 2).' €
|
||||
".Translator::numberToLocale($totale - $records[0]['ritenutaacconto']).' €
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
|
@ -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).' €';
|
||||
($subtotale == 0) ? $subtotale = '-' : $subtotale = Translator::numberToLocale($subtotale).' €';
|
||||
$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)." €<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
|
||||
$body .= '<br/>'.Translator::numberToLocale($iva)." €<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)." €\n";
|
||||
$body .= Translator::numberToLocale($subtot)." €\n";
|
||||
if ($rsr[$i]['sconto'] > 0) {
|
||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'], 2)." €</small>\n";
|
||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'])." €</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)." €<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
|
||||
$body .= '<br/>'.Translator::numberToLocale($iva)." €<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)." €\n";
|
||||
$body .= Translator::numberToLocale($subtot)." €\n";
|
||||
if ($rsr[$i]['sconto'] > 0) {
|
||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'], 2)." €</small>\n";
|
||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'])." €</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)." €<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
|
||||
$body .= '<br/>'.Translator::numberToLocale($iva)." €<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)." €\n";
|
||||
$body .= Translator::numberToLocale($subtot)." €\n";
|
||||
if ($rsr[$i]['sconto'] > 0) {
|
||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'], 2)." €</small>\n";
|
||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'])." €</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)." €\n";
|
||||
$body .= Translator::numberToLocale($rsr[$i]['subtotale'] / $rsr[$i]['sumqta'])." €\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td class='table_cell center'>\n";
|
||||
$iva = $rsr[$i]['iva'];
|
||||
$body .= '<br/>'.Translator::numberToLocale($iva, 2)." €<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
|
||||
$body .= '<br/>'.Translator::numberToLocale($iva)." €<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)." €\n";
|
||||
$body .= Translator::numberToLocale($subtot)." €\n";
|
||||
if ($rsr[$i]['sconto'] > 0) {
|
||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'], 2)." €</small>\n";
|
||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'])." €</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)." €\n";
|
||||
$body .= Translator::numberToLocale($rsr[$i]['subtotale'] / $rsr[$i]['qta'])." €\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
// Iva
|
||||
$body .= "<td class='table_cell center'>\n";
|
||||
$iva = $rsr[$i]['iva'];
|
||||
$body .= '<br/>'.Translator::numberToLocale($iva, 2)." €<br/><small style='color:#777;'>".$rsr[$i]['desc_iva']."</small>\n";
|
||||
$body .= '<br/>'.Translator::numberToLocale($iva)." €<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)." €\n";
|
||||
$body .= Translator::numberToLocale($subtot)." €\n";
|
||||
if ($rsr[$i]['sconto'] > 0) {
|
||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'], 2)." €</small>\n";
|
||||
$body .= "<br/>\n<small style='color:#555;'>- sconto ".Translator::numberToLocale($rsr[$i]['sconto'])." €</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)." €\n";
|
||||
$body .= Translator::numberToLocale($totale_documento)." €\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)." €\n";
|
||||
$body .= Translator::numberToLocale($sconto)." €\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)." €\n";
|
||||
$body .= Translator::numberToLocale($totale_documento)." €\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)." €\n";
|
||||
$body .= Translator::numberToLocale($rs[0]['rivalsainps'])." €\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)." €\n";
|
||||
$body .= Translator::numberToLocale($totale_iva)." €\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)." €</b>\n";
|
||||
$body .= '<b>'.Translator::numberToLocale($totale_documento)." €</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).' €';
|
||||
$body .= Translator::numberToLocale($marca_da_bollo).' €';
|
||||
$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).' €';
|
||||
$body .= Translator::numberToLocale($rs[0]['ritenutaacconto']).' €';
|
||||
$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)." €</b>\n";
|
||||
$body .= '<b>'.Translator::numberToLocale($netto_a_pagare)." €</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
}
|
||||
$body .= "</tbody>\n";
|
||||
|
@ -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).' €</b>
|
||||
<b>'.Translator::numberToLocale($costi_intervento['ricambi_scontato']).' €</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).' €' : '-').'
|
||||
'.($mostra_prezzi ? Translator::numberToLocale($r['prezzo_vendita']).' €' : '-').'
|
||||
</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).' €</b>
|
||||
<b>'.Translator::numberToLocale($costi_intervento['altro_scontato']).' €</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).' €</b>
|
||||
<b>'.Translator::numberToLocale($costi_intervento['totale_scontato']).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
@ -418,7 +418,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th class="text-center">
|
||||
<b>-'.Translator::numberToLocale($costi_intervento['sconto_globale'], 2).' €</b>
|
||||
<b>-'.Translator::numberToLocale($costi_intervento['sconto_globale']).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
@ -430,7 +430,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th class="text-center">
|
||||
<b>'.Translator::numberToLocale($costi_intervento['totale'], 2).' €</b>
|
||||
<b>'.Translator::numberToLocale($costi_intervento['totale']).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
}
|
||||
@ -452,7 +452,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th class="text-center">
|
||||
<b>'.Translator::numberToLocale($iva, 2).' €</b>
|
||||
<b>'.Translator::numberToLocale($iva).' €</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).' €</b>
|
||||
<b>'.Translator::numberToLocale($totale).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
}
|
||||
|
@ -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)." €</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)." €</td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'>".Translator::numberToLocale(($rs[$r]['prezzo_acquisto'] * $rs[$r]['qta']), 2)." €</td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'>".Translator::numberToLocale($rs[$r]['prezzo_vendita'])." €</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'])." €</td>\n";
|
||||
$body .= " <td class='table_cell text-right cell-padded'>".Translator::numberToLocale(($rs[$r]['prezzo_acquisto'] * $rs[$r]['qta']))." €</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)." €</b></td>\n";
|
||||
$body .= "<td bgcolor='#dddddd' class='table_cell text-right cell-padded'><b>".Translator::numberToLocale($totale_acquisto)." €</b></td>\n";
|
||||
$body .= "</tr>\n";
|
||||
$body .= "</table>\n";
|
||||
|
||||
|
@ -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)).' €
|
||||
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
|
||||
|
||||
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' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' €';
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
|
||||
|
||||
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' ? '%' : ' €'),
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</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).' €</b>
|
||||
<b>'.Translator::numberToLocale($imponibile).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
@ -141,7 +155,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th colspan="2" class="text-center">
|
||||
<b>-'.Translator::numberToLocale($sconto, 2).' €</b>
|
||||
<b>-'.Translator::numberToLocale($sconto).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
@ -153,7 +167,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th colspan="2" class="text-center">
|
||||
<b>'.Translator::numberToLocale($totale, 2).' €</b>
|
||||
<b>'.Translator::numberToLocale($totale).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
}
|
||||
@ -166,7 +180,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th colspan="2" class="text-center">
|
||||
<b>'.Translator::numberToLocale($iva, 2).' €</b>
|
||||
<b>'.Translator::numberToLocale($iva).' €</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).' €</b>
|
||||
<b>'.Translator::numberToLocale($totale).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
}
|
||||
|
@ -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À</th><th align='right' class='bb br padded'>".Translator::numberToLocale($totale_attivita, 2)."</th>\n";
|
||||
$body .= " <tr><th class='br bb padded'>TOTALE ATTIVITÀ</th><th align='right' class='bb br padded'>".Translator::numberToLocale($totale_attivita)."</th>\n";
|
||||
|
||||
// Passività
|
||||
$body .= " <th class='br bb padded'>PASSIVITÀ</th><th align='right' class='bb padded'>".Translator::numberToLocale($totale_passivita, 2)."</th></tr>\n";
|
||||
$body .= " <th class='br bb padded'>PASSIVITÀ</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'> </th><th align='right' class='bb padded'> </th></tr>\n";
|
||||
@ -302,14 +302,14 @@ elseif (get('lev') == '1') {
|
||||
$body .= " <tr><th class='br bb padded'> </th><th align='right' class='bb br padded'> </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>
|
||||
|
@ -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)).' €
|
||||
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
|
||||
|
||||
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' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'], 2)).' €';
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
|
||||
|
||||
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' ? '%' : ' €'),
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</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).' €</b>
|
||||
<b>'.Translator::numberToLocale($imponibile).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
@ -190,7 +204,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th colspan="2" class="text-center">
|
||||
<b>-'.Translator::numberToLocale($sconto, 2).' €</b>
|
||||
<b>-'.Translator::numberToLocale($sconto).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
@ -202,7 +216,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th colspan="2" class="text-center">
|
||||
<b>'.Translator::numberToLocale($totale, 2).' €</b>
|
||||
<b>'.Translator::numberToLocale($totale).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
}
|
||||
@ -215,7 +229,7 @@ if ($mostra_prezzi) {
|
||||
</td>
|
||||
|
||||
<th colspan="2" class="text-center">
|
||||
<b>'.Translator::numberToLocale($iva, 2).' €</b>
|
||||
<b>'.Translator::numberToLocale($iva).' €</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).' €</b>
|
||||
<b>'.Translator::numberToLocale($totale).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
}
|
||||
|
556
templates/preventivi_cons/body.php
Normal file
556
templates/preventivi_cons/body.php
Normal 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']).' €
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($int['subtotale']).' €
|
||||
</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).' €</b>
|
||||
</td>
|
||||
|
||||
<th class="text-center">
|
||||
<b>'.Translator::numberToLocale($totale_int).' €</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.tà').'</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']).' €';
|
||||
|
||||
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' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Netto
|
||||
$netto = $r['prezzo_vendita'] * $r['qta'];
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($netto).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</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).' €</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.tà').'</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']).' €';
|
||||
|
||||
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' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Netto
|
||||
$netto = $r['prezzo_vendita'] * $r['qta'];
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($netto).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</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).' €</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).' €</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).' €</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).' €</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).' €</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).' €</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).' €</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).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
echo'
|
||||
</table>';
|
16
templates/preventivi_cons/header.php
Normal file
16
templates/preventivi_cons/header.php
Normal 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>';
|
11
templates/preventivi_cons/init.php
Normal file
11
templates/preventivi_cons/init.php
Normal 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'];
|
@ -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/> ', '<small>'.$rspreventivii[$i]['descrizione'].'</small>');
|
||||
$line = 'Attività <b>'.$rspreventivii[$i]['codice'].'</b> del <b>'.Translator::dateToLocale($rspreventivii[$i]['data'])."</b><br/>\n ".$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 al km</small></th>\n";
|
||||
$body .= "<th align=\"center\"><small>Ore</small></th>\n";
|
||||
$body .= "<th align=\"center\"><small>Costo 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)." €</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)." €</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)." €</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)." €</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> €</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)." €</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)." €</span>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
// Prezzo di vendita
|
||||
$body .= "<td class='table_cell' align='center'>\n";
|
||||
$body .= '<span>'.Translator::numberToLocale($netto * $qta, 2)." €</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)." €</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)." €</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)." €</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." €</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." €</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." €</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
|
||||
$body .= "</table>\n";
|
||||
|
||||
$report_name = 'preventivo_'.$idpreventivo.'_cons.pdf';
|
@ -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>
|
@ -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>
|
@ -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).' €</td>';
|
||||
$body .= " <td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs[$i]['iva'], 2).' €</td>';
|
||||
$body .= " <td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs[$i]['subtotale']).' €</td>';
|
||||
$body .= " <td class='table_cell cell-padded text-right'>".Translator::numberToLocale($rs[$i]['iva']).' €</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)." €\n";
|
||||
$body .= Translator::numberToLocale($v_totale[$desc_iva])." €\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
$body .= "<td valign='top' align='right' class='table_cell cell-padded'>\n";
|
||||
$body .= Translator::numberToLocale($v_iva[$desc_iva], 2)." €\n";
|
||||
$body .= Translator::numberToLocale($v_iva[$desc_iva])." €\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)." €</td>
|
||||
<td class='full_cell1 cell-padded text-right'>".Translator::numberToLocale($totale_iva, 2).' €</td>
|
||||
<td class='full_cell1 cell-padded text-right'>".Translator::numberToLocale($totale_subtotale)." €</td>
|
||||
<td class='full_cell1 cell-padded text-right'>".Translator::numberToLocale($totale_iva).' €</td>
|
||||
</tr>';
|
||||
|
||||
$body .= '
|
||||
|
@ -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).' €\n';
|
||||
$body .= ' '.Translator::numberToLocale($rs[$i]['budget_totale']).' €\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)." €</b>\n";
|
||||
$body .= ' <b>'.Translator::numberToLocale($totale)." €</b>\n";
|
||||
$body .= "</td></tr>\n";
|
||||
|
||||
$body .= "</tbody>\n";
|
||||
|
@ -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)." €</b>\n";
|
||||
$body .= '<b>'.Translator::numberToLocale($totale_calcolato)." €</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)." €</b>\n";
|
||||
$body .= "<b>".Translator::numberToLocale( -$sconto)." €</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)." €</b>\n";
|
||||
$body .= '<b>'.Translator::numberToLocale($totale_calcolato - $sconto)." €</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)." €</span>\n";
|
||||
$body .= '<span>'.Translator::numberToLocale($netto)." €</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> €</span>\n";
|
||||
$body .= '<span><span>'.Translator::numberToLocale($netto * $qta)."</span> €</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)." €</b>\n";
|
||||
$body .= '<b>'.Translator::numberToLocale($totale_articoli)." €</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)." €</span>\n";
|
||||
$body .= '<span>'.Translator::numberToLocale($netto)." €</span>\n";
|
||||
$body .= "</td>\n";
|
||||
|
||||
// Prezzo di vendita
|
||||
$body .= "<td class='table_cell' align='center'>\n";
|
||||
$body .= '<span>'.Translator::numberToLocale($netto * $qta, 2)." €</span>\n";
|
||||
$body .= '<span>'.Translator::numberToLocale($netto * $qta)." €</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)." €</b>\n";
|
||||
$body .= '<b>'.Translator::numberToLocale($totale_spese)." €</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)." €</b></big>\n";
|
||||
$body .= '<big><b>TOTALE INTERVENTI: '.Translator::numberToLocale($totale_intervento_scontato + $totale_articoli + $totale_spese)." €</b></big>\n";
|
||||
$body .= "</p>\n";
|
||||
|
||||
$report_name = 'Riepilogo_interventi.pdf';
|
||||
|
@ -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";
|
||||
|
@ -92,19 +92,19 @@ foreach ($anagrafiche as $i => $anagrafica) {
|
||||
// Imponible
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($riga['imponibile'], 2).' €
|
||||
'.Translator::numberToLocale($riga['imponibile']).' €
|
||||
</td>';
|
||||
|
||||
// IVA
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($riga['iva'], 2).' €
|
||||
'.Translator::numberToLocale($riga['iva']).' €
|
||||
</td>';
|
||||
|
||||
// Totale
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($riga['totale'], 2).' €
|
||||
'.Translator::numberToLocale($riga['totale']).' €
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
@ -131,7 +131,7 @@ echo '
|
||||
</td>
|
||||
|
||||
<th colspan="3" class="text-center">
|
||||
<b>'.Translator::numberToLocale(sum($imponibile), 2).' €</b>
|
||||
<b>'.Translator::numberToLocale(sum($imponibile)).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
@ -147,7 +147,7 @@ foreach ($iva as $desc => $values) {
|
||||
</td>
|
||||
|
||||
<th colspan="3" class="text-center">
|
||||
<b>'.Translator::numberToLocale($sum, 2).' €</b>
|
||||
<b>'.Translator::numberToLocale($sum).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
@ -162,7 +162,7 @@ echo '
|
||||
</td>
|
||||
|
||||
<th colspan="3" class="text-center">
|
||||
<b>'.Translator::numberToLocale($totale_iva, 2).' €</b>
|
||||
<b>'.Translator::numberToLocale($totale_iva).' €</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).' €</b>
|
||||
<b>'.Translator::numberToLocale(sum($totale)).' €</b>
|
||||
</th>
|
||||
</tr>';
|
||||
|
||||
|
@ -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',
|
||||
|
Loading…
x
Reference in New Issue
Block a user