. */ include_once __DIR__.'/../../core.php'; use Carbon\Carbon; use Models\Module; use Models\Upload; use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Sede; use Modules\Contratti\Contratto; use Modules\Interventi\Intervento; use Modules\Ordini\Ordine; use Modules\Preventivi\Preventivo; use Modules\Scadenzario\Scadenza; // Anagrafica $anagrafica = $intervento->anagrafica; // Sede if ($intervento->idsede_destinazione) { $sede = $dbo->selectOne('an_sedi', '*', ['id' => $intervento->idsede_destinazione]); } else { $sede = $anagrafica->toArray(); } // Referente $referente = null; if ($intervento->idreferente) { $referente = $dbo->selectOne('an_referenti', '*', ['id' => $intervento->idreferente]); } // Contratto $contratto = null; $ore_erogate = 0; $ore_previste = 0; $perc_ore = 0; $color = 'danger'; if ($intervento->id_contratto) { $contratto = Contratto::find($intervento->id_contratto); $ore_erogate = $contratto->interventi->sum('ore_totali'); $ore_previste = $contratto->getRighe()->where('um', 'ore')->sum('qta'); $perc_ore = $ore_previste != 0 ? ($ore_erogate * 100) / ($ore_previste?:1) : 0; if ($perc_ore < 75) { $color = 'success'; } elseif ($perc_ore <= 100) { $color = 'warning'; } } // Preventivo $preventivo = null; if ($intervento->id_preventivo) { $preventivo = Preventivo::find($intervento->id_preventivo); } // Ordine $ordine = null; if ($intervento->id_ordine) { $ordine = Ordine::find($intervento->id_ordine); } // Altre attività $interventi_programmati = Intervento::select('in_interventi.*') ->join('in_statiintervento', 'in_interventi.idstatointervento', '=', 'in_statiintervento.id') ->where('idanagrafica', $intervento->idanagrafica) ->where('idsede_destinazione', $intervento->idsede_destinazione) ->where('is_completato', '!=', 1) ->where('in_interventi.id', '!=', $id_record) ->get(); // Insoluti $insoluti = Scadenza::where('idanagrafica', $intervento->idanagrafica) ->whereRaw('co_scadenziario.da_pagare > co_scadenziario.pagato') ->whereRaw('co_scadenziario.scadenza < NOW()') ->count(); // Logo $logo = Upload::where('id_module', Module::where('name', 'Anagrafiche')->first()->id)->where('id_record', $intervento->idanagrafica)->where('name', 'Logo azienda')->first()->filename; $logo = $logo ? base_path().'/files/anagrafiche/'.$logo : App::getPaths()['img'].'/logo_header.png'; echo '

'.tr('Cliente').'

'; // Cliente echo '

'.Modules::link('Anagrafiche', $intervento->idanagrafica, $intervento->anagrafica->ragione_sociale, $intervento->anagrafica->ragione_sociale).'

'.($sede['nomesede'] ? $sede['nomesede'].'
' : '').' '.$sede['indirizzo'].'
'.$sede['cap'].' - '.$sede['citta'].' ('.$sede['provincia'].')

'.($sede['telefono'] ? ' '.$sede['telefono'].'' : '').' '.($sede['email'] ? ' '.$sede['email'].'' : '').' '.($referente['nome'] ? '

'.$referente['nome'].'
' : '').' '.($referente['telefono'] ? ' '.$referente['telefono'].'' : '').' '.($referente['email'] ? ' '.$referente['email'].'' : '').'

'; // Panoramica $show_prezzi = Auth::user()['gruppo'] != 'Tecnici' || (Auth::user()['gruppo'] == 'Tecnici' && setting('Mostra i prezzi al tecnico')); $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); $stato = Modules\Interventi\Stato::find($intervento->stato->id); echo '

'.tr('Attività _NUM_ del _DATA_', [ '_NUM_' => $intervento->codice, '_DATA_' => Translator::dateToLocale($intervento->data_richiesta), ]).'

'.$intervento->sessioni->count().' | '.Translator::numberToLocale($intervento->sessioni->sum('ore')).' | '.Translator::numberToLocale($intervento->sessioni->sum('km')).' '.tr('km').' | '.($show_prezzi ? moneyFormat($prezzi_ivati ? $intervento->totale : $intervento->totale_imponibile, 2) : '-').' | '.$stato->getTranslation('title').'


'.($insoluti ? tr('Sono presenti insoluti') : tr('Non sono presenti insoluti')).'

'.(count($interventi_programmati) == 0 ? tr('Non sono presenti altre attività programmate') : 'Attività aperte:'); if (count($interventi_programmati) != 0) { foreach ($interventi_programmati as $intervento_programmato) { echo ' '.$intervento_programmato->codice.' ('.(new Carbon($intervento_programmato->data_richiesta))->diffForHumans().')'; } } echo '

'; // Contratto if ($contratto) { echo '

'.Modules::link('Contratti', $contratto->id, tr('Contratto num. _NUM_ del _DATA_', ['_NUM_' => $contratto->numero, '_DATA_' => Translator::dateToLocale($contratto->data_bozza)])); if ($ore_previste > 0) { echo ' - '.Translator::numberToLocale($ore_erogate, 2).'/'.$ore_previste.' '.tr('ore').'

'; } echo '

'; } // Preventivo if ($preventivo) { echo '

'.Modules::link('Preventivi', $preventivo->id, tr('Preventivo num. _NUM_ del _DATA_', ['_NUM_' => $preventivo->numero, '_DATA_' => Translator::dateToLocale($preventivo->data_bozza)])).'

'; } // Ordine if ($ordine) { echo '

'.Modules::link('Ordini cliente', $ordine->id, tr('Ordine num. _NUM_ del _DATA_', ['_NUM_' => $ordine->numero, '_DATA_' => Translator::dateToLocale($ordine->data)])).'

'; } echo '
'; // Geolocalizzazione $anagrafica_cliente = $intervento->anagrafica; $sede_cliente = $anagrafica_cliente->sedeLegale; if (!empty($intervento->idsede_destinazione)) { $sede_cliente = Sede::find($intervento->idsede_destinazione); } $anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita')); $sede_azienda = $anagrafica_azienda->sedeLegale; echo '

'.tr('Geolocalizzazione').'

'; if (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) { echo '

'; // Navigazione diretta verso l'indirizzo echo '
'; // Navigazione diretta verso l'indirizzo echo ' '.tr('Calcola percorso').'
'; } else { echo '
'; // Navigazione diretta verso l'indirizzo echo ' '.tr('Calcola percorso').'
'; // Ricerca diretta su Mappa echo ' '.tr('Cerca su Mappa').'
'; } echo '
';