From 3821054407b84999d5209c3c7925ed717f99bbb2 Mon Sep 17 00:00:00 2001 From: FabioL <1647128+loviuz@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:57:13 +0200 Subject: [PATCH] Miglioramento stampa intervento --- templates/base/style.css | 4 + templates/interventi/body.php | 429 +++++++++++++++++++--------------- 2 files changed, 249 insertions(+), 184 deletions(-) diff --git a/templates/base/style.css b/templates/base/style.css index 2da59d2ec..c89d4da7d 100755 --- a/templates/base/style.css +++ b/templates/base/style.css @@ -139,3 +139,7 @@ table#contents tbody td { .cell-padded { padding: 4px; } + +.bg-gray{ + background: #eee; +} \ No newline at end of file diff --git a/templates/interventi/body.php b/templates/interventi/body.php index 18b5c8527..97d12a593 100755 --- a/templates/interventi/body.php +++ b/templates/interventi/body.php @@ -27,142 +27,156 @@ $d_qta = (int) setting('Cifre decimali per quantità in stampa'); $d_importi = (int) setting('Cifre decimali per importi in stampa'); $d_totali = (int) setting('Cifre decimali per totali in stampa'); -/* - Dati intervento -*/ +$sessioni = $documento->sessioni->sortBy('orario_inizio'); + +$firma = !empty($documento['firma_file']) ? '' : ''; + echo '
+ - + - - - '; // Indirizzo if (!empty($s_indirizzo) or !empty($s_cap) or !empty($s_citta) or !empty($s_provincia)) { echo ' - '; } elseif (!empty($c_indirizzo) or !empty($c_cap) or !empty($c_citta) or !empty($c_provincia)) { echo ' '; } echo ' + - - '; - -// Dati cliente - -if (!empty($preventivo) or !empty($contratto)) { - echo ' - - - - - - '; -} - -echo ' - - - - + +
'.tr('Rapporto attività', [], ['upper' => true]).'

'.tr('Cliente', [], ['upper' => true]).'

-

'.tr('Cliente', [], ['upper' => true]).':

+
+

'.tr('Cliente', [], ['upper' => true]).':

- '.$c_ragionesociale.' + + '.$c_ragionesociale.' -

'.tr('Indirizzo', [], ['upper' => true]).':

+
+

'.tr('Indirizzo', [], ['upper' => true]).':

- '.$s_indirizzo.' '.$s_cap.' - '.$s_citta.' ('.strtoupper((string) $s_provincia).') + '.$s_indirizzo.' '.$s_cap.' - '.$s_citta.' ('.strtoupper((string) $s_provincia).') -

'.tr('Indirizzo', [], ['upper' => true]).':

+

'.tr('Indirizzo', [], ['upper' => true]).':

- '.$c_indirizzo.' '.$c_cap.' - '.$c_citta.' ('.strtoupper((string) $c_provincia).') + '.$c_indirizzo.' '.$c_cap.' - '.$c_citta.' ('.strtoupper((string) $c_provincia).')
-

'.tr('Attività n.', [], ['upper' => true]).':

+

'.tr('P.Iva', [], ['upper' => true]).':

- '.$documento['codice'].' + '.strtoupper((string) $c_piva).' -

'.tr('Data richiesta', [], ['upper' => true]).':

-
- '.Translator::dateToLocale($documento['data_richiesta']).' -
-

'.tr('Preventivo n.', [], ['upper' => true]).':

-
- '.(!empty($preventivo) ? $preventivo['numero'].' del '.Translator::dateToLocale($preventivo['data_bozza']) : 'Nessuno').' - -

'.tr('Contratto n.', [], ['upper' => true]).':

-
- '.(!empty($contratto) ? $contratto['numero'].' del '.Translator::dateToLocale($contratto['data_bozza']) : 'Nessuno').' -
-

'.tr('P.Iva', [], ['upper' => true]).':

+

'.tr('C.F.', [], ['upper' => true]).':

- '.strtoupper((string) $c_piva).' - -

'.tr('C.F.', [], ['upper' => true]).':

-
- '.strtoupper((string) $c_codicefiscale).' + '.strtoupper((string) $c_codicefiscale).'
-

'.tr('Telefono', [], ['upper' => true]).':

+

'.tr('Telefono', [], ['upper' => true]).':

- '.$c_telefono.' + '.$c_telefono.' -

'.tr('Cellulare', [], ['upper' => true]).':

+

'.tr('Cellulare', [], ['upper' => true]).':

- '.$c_cellulare.' + '.$c_cellulare.' +
'; + + +// Dati attività +echo ' + + + + + + + + + + + + + + '; +// Dati preventivo o contratto +if (!empty($preventivo) or !empty($contratto)) { + echo ' + + + + + + + '; +} + + + // riga 3 // Elenco impianti su cui è stato fatto l'intervento $rs2 = $dbo->fetchArray('SELECT *, (SELECT nome FROM my_impianti WHERE id=my_impianti_interventi.idimpianto) AS nome, (SELECT matricola FROM my_impianti WHERE id=my_impianti_interventi.idimpianto) AS matricola FROM my_impianti_interventi WHERE idintervento='.prepare($id_record)); $impianti = []; for ($j = 0; $j < count($rs2); ++$j) { - $impianti[] = ''.$rs2[$j]['nome']."(".$rs2[$j]['matricola'].')'; + $impianti[] = ''.$rs2[$j]['nome']." (".$rs2[$j]['matricola'].')'; } echo ' - - - '; // Richiesta -// Rimosso nl2br, non necessario con ckeditor echo ' - - '; @@ -171,10 +185,8 @@ echo ' // Rimosso nl2br, non necessario con ckeditor echo ' - - @@ -206,27 +218,27 @@ if (!$righe->isEmpty()) {
+

'.tr('Rapporto attività', [], ['upper' => true]).'

+
+

'.tr('Codice', [], ['upper' => true]).':

+
+ '.$documento['codice'].' + +

'.tr('Data richiesta', [], ['upper' => true]).':

+
+ '.Translator::dateToLocale($documento['data_richiesta']).' + +

'.tr('Tipologia', [], ['upper' => true]).':

+
+ '.$documento->tipo->getTranslation('title').'
+

'.tr('Preventivo n.', [], ['upper' => true]).':

+
+ '.(!empty($preventivo) ? $preventivo['numero'].' del '.Translator::dateToLocale($preventivo['data_bozza']) : '-').' + +

'.tr('Contratto n.', [], ['upper' => true]).':

+
+ '.(!empty($contratto) ? $contratto['numero'].' del '.Translator::dateToLocale($contratto['data_bozza']) : '-').' +
-

'.tr('Impianti', [], ['upper' => true]).':

+

'.tr('Impianti', [], ['upper' => true]).':

- '.implode(', ', $impianti).' - -

'.tr('Tipo intervento', [], ['upper' => true]).':

-
- '.$documento->tipo->getTranslation('title').' + + + '.implode(', ', $impianti).'
-

'.tr('Richiesta', [], ['upper' => true]).':

-
+ +

'.tr('Richiesta', [], ['upper' => true]).':

'.$documento['richiesta'].'

-

'.tr('Descrizione', [], ['upper' => true]).':

-
+ +

'.tr('Descrizione', [], ['upper' => true]).':

'.$documento['descrizione'].'

- - + - + - + - + @@ -252,7 +264,7 @@ if (!$righe->isEmpty()) { if (in_array($riga->id, $riferimento)) { if ($riga->id === $riferimento[0]) { $riga_ordine = $riga->getOriginalComponent()->getDocument(); - $text = ''.$key.'
'; + $text = ''.$key.'
'; if ($options['pricing']) { $text = $text.''; // Prezzo unitario echo ' - '; @@ -326,12 +338,12 @@ if (!$righe->isEmpty()) { // Totale spese aggiuntive echo ' - - '; } @@ -342,23 +354,23 @@ if (!$righe->isEmpty()) { // INTESTAZIONE ELENCO TECNICI echo ' -
- '.tr('Materiale utilizzato e spese aggiuntive', [], ['upper' => true]).' + +

'.tr('Materiale utilizzato e spese aggiuntive', [], ['upper' => true]).'

- '.tr('Descrizione').' - + '.tr('Descrizione', [], ['upper' => true]).' + - '.tr('Q.tà').' - + '.tr('Q.tà', [], ['upper' => true]).' + - '.tr('Prezzo unitario').' - + '.tr('Prezzo unitario', [], ['upper' => true]).' + - '.tr('Importo').' - + '.tr('Importo', [], ['upper' => true]).' +
'; @@ -292,13 +304,13 @@ if (!$righe->isEmpty()) { // Quantità echo ' - + '.$qta.' '.$riga->um.' + '.($options['pricing'] ? moneyFormat($riga->prezzo_unitario_corrente, $d_importi) : '-'); if ($options['pricing'] && $riga->sconto > 0) { @@ -313,7 +325,7 @@ if (!$righe->isEmpty()) { // Prezzo totale echo ' - + '.($options['pricing'] ? moneyFormat($riga->importo, $d_importi) : '-').'
- '.tr('Totale', [], ['upper' => true]).': + + '.tr('Totale', [], ['upper' => true]).' - '.moneyFormat($righe->sum('importo'), $d_totali).' + + '.moneyFormat($righe->sum('importo'), $d_totali).'
+
- - + - + - @@ -367,44 +379,64 @@ echo ' '; // Sessioni di lavoro dei tecnici -$sessioni = $documento->sessioni->sortBy('orario_inizio'); -foreach ($sessioni as $i => $sessione) { - echo ' - '; - // Nome tecnico - echo ' - '; - - $inizio = new Carbon($sessione['orario_inizio']); - $fine = new Carbon($sessione['orario_fine']); - if ($inizio->isSameDay($fine)) { - $orario = timestampFormat($inizio).' - '.timeFormat($fine); - } else { - $orario = timestampFormat($inizio).' - '.timestampFormat($fine); - } - - // Orario - echo ' - '; - - // Spazio aggiuntivo - if ($i == 0) { +$i = 0; +if (count($sessioni) > 0) { + foreach ($sessioni as $id => $sessione) { echo ' - '; - } else { - echo ' - '; - } + '; - echo ' - '; + // Nome tecnico + echo ' + '; + + $inizio = new Carbon($sessione['orario_inizio']); + $fine = new Carbon($sessione['orario_fine']); + if ($inizio->isSameDay($fine)) { + $orario = timestampFormat($inizio).' - '.timeFormat($fine); + } else { + $orario = timestampFormat($inizio).' - '.timestampFormat($fine); + } + + // Orario + echo ' + '; + + + // Testo lavori eseguiti 1/2 + if ($i == 0) { + echo ' + '; + } + + // Firma 1/3 + if ($i == 1) { + echo ' + '; + } + + echo ' + '; + + $i++; + } } // Ore lavorate @@ -417,49 +449,61 @@ if (setting('Formato ore in stampa') == 'Sessantesimi') { echo ' '; // Costo totale manodopera if ($options['pricing']) { echo ' '; } else { echo ' '; } -// Timbro e firma -$firma = !empty($documento['firma_file']) ? '' : ''; -echo ' - '; +} + +// Firma 2/3 +if (count($sessioni) == 1) { + echo ''; } echo ' - '; + // Totale km echo ' '; // Costo trasferta if ($options['pricing']) { echo ' '; } else { echo ' @@ -470,13 +514,30 @@ if ($options['pricing']) { if ($options['pricing']) { echo ' '; } else { echo ' '; } +// Firma 3/3 +if (count($sessioni) == 0) { + echo ''; +} + + // Calcoli $imponibile = abs($documento->imponibile); $sconto = $documento->sconto; @@ -492,38 +553,38 @@ if ($options['pricing']) { // Totale imponibile echo ' - - '; // Eventuale sconto totale if ($show_sconto) { echo ' - - + '; // Totale imponibile echo ' - - + '; } @@ -531,24 +592,24 @@ if ($options['pricing']) { // Totale intervento echo ' - - + '; // TOTALE INTERVENTO echo ' - - '; } @@ -565,7 +626,7 @@ if ($options['checklist']) {
- '.tr('Ore tecnici', [], ['upper' => true]).' + +

'.tr('Ore tecnici', [], ['upper' => true]).'

- '.tr('Tecnico').' - + '.tr('Tecnico', [], ['upper' => true]).' + - '.tr('Orario').' - + '.tr('Orario', [], ['upper' => true]).' + + '.tr('I dati del ricevente verrano trattati in base alla normativa europea UE 2016/679 del 27 aprile 2016 (GDPR)').'
- '.$sessione->anagrafica->ragione_sociale.' - ('.$sessione->tipo->getTranslation('title').') - - '.$orario.' - - '.tr('Si dichiara che i lavori sono stati eseguiti ed i materiali installati nel rispetto delle vigenti normative tecniche').' -
+ '.$sessione->anagrafica->ragione_sociale.' + ('.$sessione->tipo->getTranslation('title').') + + '.$orario.' + + '.tr('Si dichiara che i lavori sono stati eseguiti ed i materiali installati nel rispetto delle vigenti normative tecniche').' + + '.$firma.'
'; + + + if (empty($documento['firma_file'])) { + echo ' ('.tr('Timbro e firma leggibile').')'; + } else { + echo ' '.$documento['firma_nome'].''; + } + + echo ' +
- '.tr('Ore lavorate').':
'.$ore_totali.' + '.tr('Ore lavorate', [], ['upper' => true]).'
'.$ore_totali.'
- '.tr('Totale manodopera').':
'.moneyFormat($sessioni->sum('prezzo_manodopera'), $d_totali).' + '.tr('Totale manodopera', [], ['upper' => true]).'
'.moneyFormat($sessioni->sum('prezzo_manodopera'), $d_totali).'
- +// Testo lavori eseguiti 2/2 +if (count($sessioni) == 0) { + echo ' + + '.tr('Si dichiara che i lavori sono stati eseguiti ed i materiali installati nel rispetto delle vigenti normative tecniche').' + '.$firma.'
'; -if (empty($documento['firma_file'])) { - echo ' ('.tr('Timbro e firma leggibile').')'; -} else { - echo ' '.$documento['firma_nome'].''; + + if (empty($documento['firma_file'])) { + echo '


('.tr('Timbro e firma leggibile').')'; + } else { + echo ' '.$documento['firma_nome'].''; + } + + echo ' +
- '.tr('Km percorsi').':
'.Translator::numberToLocale($documento->km_totali, $d_qta).' + '.tr('Km percorsi', [], ['upper' => true]).'
'.Translator::numberToLocale($documento->km_totali, $d_qta).'
- '.tr('Costi di trasferta').':
'.moneyFormat($sessioni->sum('prezzo_viaggio'), $d_totali).' + '.tr('Costi di trasferta', [], ['upper' => true]).'
'.moneyFormat($sessioni->sum('prezzo_viaggio'), $d_totali).'
- '.tr('Diritto di chiamata').':
'.moneyFormat($sessioni->sum('prezzo_diritto_chiamata'), $d_totali).' + '.tr('Diritto di chiamata', [], ['upper' => true]).'
'.moneyFormat($sessioni->sum('prezzo_diritto_chiamata'), $d_totali).'
- + '.$firma.'
'; + + + if (empty($documento['firma_file'])) { + echo '


('.tr('Timbro e firma leggibile').')'; + } else { + echo ' '.$documento['firma_nome'].''; + } + + echo ' +
- '.tr('Imponibile', [], ['upper' => true]).': + + '.tr('Imponibile', [], ['upper' => true]).' + '.moneyFormat($show_sconto ? $imponibile : $totale_imponibile, $d_totali).' - +
- '.tr('Sconto', [], ['upper' => true]).': + + '.tr('Sconto', [], ['upper' => true]).' - '.moneyFormat($sconto, $d_totali).' - + '.moneyFormat($sconto, $d_totali).' +
- '.tr('Totale imponibile', [], ['upper' => true]).': + + '.tr('Totale imponibile', [], ['upper' => true]).' - '.moneyFormat($totale_imponibile, $d_totali).' - + '.moneyFormat($totale_imponibile, $d_totali).' +
- '.tr('Iva', [], ['upper' => true]).': + + '.tr('Iva', [], ['upper' => true]).' - '.moneyFormat($totale_iva, $d_totali).' - + '.moneyFormat($totale_iva, $d_totali).' +
- '.tr('Totale intervento', [], ['upper' => true]).': + + '.tr('Totale', [], ['upper' => true]).' + '.moneyFormat($totale, $d_totali).' - +
'; @@ -584,7 +645,7 @@ if ($options['checklist']) { echo ' '; foreach ($checks as $check) {
- CHECKLIST + CHECKLIST
- '.tr('Impianto', [], ['upper' => true]).' '.$impianto['matricola'].' - '.$impianto['nome'].' + '.tr('Impianto', [], ['upper' => true]).' '.$impianto['matricola'].' - '.$impianto['nome'].'