'.tr('Cliente').': '.$c_codiceanagrafica.' '.$c_ragionesociale.'
'.tr('Indirizzo').': '.$c_indirizzo.'-'.$c_cap.' '.$c_citta.' ('.strtoupper($c_provincia).')
'.tr('Referente').': '.$referente.''; if ($c_telefono != '') { $body .= '
'.tr('Telefono azienda').': '.$c_telefono.''; } if ($c_email != '') { $body .= '
'.tr('Email').': '.$c_email.''; } $body .= ' '; // Richiesta $body .= ' '.tr('Richiesta').': '.nl2br($records[0]['richiesta']).' '; // Descrizione if ($records[0]['descrizione_intervento'] != '') { $body .= ' '.tr('Descrizione').': '.nl2br($records[0]['descrizione_intervento']).' '; } $body .= ' '; $totale = []; // MATERIALE UTILIZZATO // Conteggio articoli utilizzati $rs2 = $dbo->fetchArray('SELECT *, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice_art, SUM(qta) AS sumqta FROM `mg_articoli_interventi` GROUP BY idgruppo HAVING idintervento='.prepare($idintervento)." AND NOT idarticolo='0' ORDER BY idarticolo ASC"); if (!empty($rs2)) { $body .= ' '; $totale_articoli = []; foreach ($rs2 as $r) { $body .= ' '; // Codice $body .= ' '; // Descrizione $body .= ' '; // Quantità $body .= ' '; // Prezzo unitario $body .= ' '; // Sconto unitario if ($r['sconto_unitario'] > 0) { $sconto = Translator::numberToLocale($r['sconto_unitario']).($r['tipo_sconto'] == 'PRC' ? '%' : ' €'); } else { $sconto = '-'; } $body .= ' '; // Netto $netto = ($r['prezzo_vendita'] - $r['sconto']) * $r['sumqta']; $body .= ' '; // Totale $totale_articoli[] = $netto; } $totale_articoli = sum($totale_articoli); $totale[] = $totale_articoli; // Totale spesa articoli if ($visualizza_costi) { $body .= ' '; } $body .= '
'.strtoupper(tr('Materiale utilizzato')).'
'.tr('Codice').' '.tr('Descrizione').' '.tr('Q.tà').' '.tr('Prezzo listino').' '.tr('Sconto').' '.tr('Subtot. netto').'
'.$r['codice_art'].' '.$r['descrizione'].' '.Translator::numberToLocale($r['sumqta'], 2).' '.$r['um'].' '.($visualizza_costi ? Translator::numberToLocale($r['prezzo_vendita'], 2).' €' : '-').' '.($visualizza_costi ? $sconto : '-').' '.($visualizza_costi ? Translator::numberToLocale($netto, 2) : '-').'
'.strtoupper(tr('Totale materiale utilizzato')).': '.Translator::numberToLocale($totale_articoli, 2).' €
'; } // FINE MATERIALE UTILIZZATO // Conteggio SPESE AGGIUNTIVE $rs2 = $dbo->fetchArray('SELECT * FROM in_righe_interventi WHERE idintervento='.prepare($idintervento).' ORDER BY id ASC'); if (!empty($rs2)) { $body .= ' '; $totale_righe = []; foreach ($rs2 as $r) { // Articolo $body .= ' '; // Quantità $body .= ' '; // Prezzo unitario $body .= ' '; // Sconto unitario if ($r['sconto_unitario'] > 0) { $sconto = Translator::numberToLocale($r['sconto_unitario']).($r['tipo_sconto'] == 'PRC' ? '%' : ' €'); } else { $sconto = '-'; } $body .= ' '; // Prezzo totale $netto = ($r['prezzo_vendita'] - $r['sconto']) * $r['qta']; $body .= ' '; // Subtot $totale_righe[] = $netto; } $totale_righe = sum($totale_righe); $totale[] = $totale_righe; if ($visualizza_costi) { // Totale spese aggiuntive $body .= ' '; } $body .= '
'.strtoupper(tr('Spese aggiuntive')).'
'.tr('Descrizione').' '.tr('Q.tà').' '.tr('Prezzo listino').' '.tr('Sconto').' '.tr('Subtot. netto').'
'.nl2br($r['descrizione']).' '.Translator::numberToLocale($r['qta'], 2).' '.($visualizza_costi ? Translator::numberToLocale($r['prezzo_vendita'], 2).' €' : '-').' '.($visualizza_costi ? $sconto : '-').' '.($visualizza_costi ? Translator::numberToLocale($netto, 2) : '-').'
'.strtoupper(tr('Totale spese aggiuntive')).': '.Translator::numberToLocale($totale_righe, 2).' €
'; } // FINE SPESE AGGIUNTIVE // ORE TECNICI + FIRMA $body .= ' '; // INTESTAZIONE ELENCO TECNICI $body .= ' '; // Sessioni di lavoro dei tecnici $rst = $dbo->fetchArray('SELECT an_anagrafiche.*, in_interventi_tecnici.* FROM in_interventi_tecnici JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico=an_anagrafiche.idanagrafica WHERE in_interventi_tecnici.idintervento='.prepare($idintervento).' ORDER BY in_interventi_tecnici.orario_inizio'); $totale_ore = 0; $totale_costo_ore = 0; $totale_costo_km = 0; $totale_sconto = 0; $totale_sconto_km = 0; $totale_manodopera = 0; $totale_viaggio = 0; foreach ($rst as $r) { $body .= ' '; // nome tecnico $body .= ' '; // data $body .= ' '; // ora inizio $body .= ' '; // ora fine $body .= ' '; // Sconto $body .= ' '; $totale_ore += $r['ore']; $totale_km += $r['km']; $totale_costo_ore = sum($totale_costo_ore, $r['prezzo_ore_consuntivo']); $totale_sconto = sum($totale_sconto, $r['sconto']); $totale_costo_km = sum($totale_costo_km, $r['prezzo_km_consuntivo']); $totale_sconto_km = sum($totale_sconto_km, $r['scontokm']); } $totale_manodopera = sum($totale_costo_ore, -$totale_sconto); $totale_viaggio = sum($totale_costo_km, -$totale_sconto_km); $totale_intervento = sum($totale_manodopera, $totale_viaggio); $totale[] = $totale_intervento; $body .= '
'.strtoupper(tr('Ore tecnici')).'
'.tr('Tecnico').' '.tr('Data').' '.tr('Dalle').' '.tr('Alle').' '.tr('Sconto').'
'.$r['ragione_sociale'].' '.Translator::dateToLocale($r['orario_inizio'], '-').' '.Translator::timeToLocale($r['orario_inizio'], '-').' '.Translator::timeToLocale($r['orario_fine'], '-').' '.($r['sconto_unitario'] > 0 ? Translator::numberToLocale($r['sconto_unitario']).($r['tipo_sconto'] == 'PRC' ? '%' : ' €') : '-').'
'; // ore lavorate $body .= ' '; // Ore lavoro $body .= ' '; if ($visualizza_costi) { $body .= ' '; } else { $body .= ' '; } $body .= ' '; // Ore di viaggio if ($totale_km > 0) { $body .= ' '; if ($visualizza_costi) { $body .= ' '; } else { $body .= ' '; } $body .= ' '; } // Subtotale manodopera + viaggio if ($visualizza_costi) { $body .= ' '; } $body .= '
'.tr('Descrizione').' '.tr('Q.tà').' '.tr('Prezzo listino').' '.tr('Subtot. netto').'
'.tr('Ore tecnici').' '.Translator::numberToLocale($totale_ore, 2).' ore '.Translator::numberToLocale($totale_costo_ore, 2).' € '.Translator::numberToLocale($totale_manodopera, 2).' € - -
'.tr('Km / viaggio').' '.Translator::numberToLocale($totale_km, 2).' km '.Translator::numberToLocale($totale_costo_km, 2).' € '.Translator::numberToLocale($totale_viaggio, 2).' € - -
'.strtoupper(tr('Totale intervento')).': '.Translator::numberToLocale($totale_intervento, 2).' €
'; $totale = sum($totale); // TOTALE COSTI FINALI if ($visualizza_costi) { $body .= '
'; // Totale imponibile $body .= ' '; // Eventuale sconto incondizionato if ($records[0]['sconto_globale'] > 0) { $prc = ($records[0]['tipo_sconto'] == 'PRC'); $records[0]['sconto_globale'] = $prc ? $totale * $records[0]['sconto_globale'] / 100 : $records[0]['sconto_globale']; $sconto = Translator::numberToLocale($records[0]['sconto_globale'], ($prc ? 0 : 2)).($prc ? '%' : '€'); $totale = sum($totale, -$records[0]['sconto_globale']); $body .= ' '; // Imponibile scontato $body .= ' '; } // Leggo iva da applicare $q1 = 'SELECT percentuale FROM co_iva WHERE id='.prepare(get_var('Iva predefinita')); $rs1 = $dbo->fetchArray($q1); $percentuale_iva = $rs1[0]['percentuale']; $iva = ($totale / 100 * $percentuale_iva); // IVA // Totale intervento $body .= ' '; $totale = sum($totale, $iva); // TOTALE INTERVENTO $body .= '
'.strtoupper(tr('Imponibile')).': '.Translator::numberToLocale($totale, 2).' €
'.strtoupper(tr('Sconto incondizionato')).': -'.Translator::numberToLocale($sconto, 2).' €
'.strtoupper(tr('Imponibile scontato')).': '.Translator::numberToLocale($totale, 2).' €
'.strtoupper(tr('Iva')).' ('.Translator::numberToLocale($percentuale_iva, 0).'%): '.Translator::numberToLocale($iva, 2).' €
'.strtoupper(tr('Totale intervento')).': '.Translator::numberToLocale($totale, 2).' €
'; } // timbro e firma if ($records[0]['firma_file'] != '') { $firma = ''; } else { $firma = ''; } $body .= '
'.tr('Si dichiara che i lavori sono stati eseguiti ed i materiali installati').'.
'.tr('I dati del ricevente verrano trattati in base al D.lgs n. 196/2003').'.
'.$firma.'
('.tr('Timbro e firma leggibile').'.)
'; $report_name = 'intervento_'.$idintervento.'.pdf';