. */ use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Sede; include_once __DIR__.'/../../core.php'; $block_edit = $record['flag_completato']; $module_anagrafiche = Modules::get('Anagrafiche'); // Verifica aggiuntive sulla sequenzialità dei numeri $numero_previsto = verifica_numero_intervento($intervento); if (!empty($numero_previsto) && intval((setting('Verifica numero intervento')))) { echo '
'.tr("E' assente una attività di numero _NUM_ in data precedente o corrispondente a _DATE_: potrebbero esserci un errore di continuità con la numerazione corrente delle attività", [ '_DATE_' => dateFormat($intervento->data_richiesta), '_NUM_' => '"'.$numero_previsto.'"', ]).'.
'; } echo '

'.tr('Dati cliente').'

'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"').' {[ "type": "select", "label": "'.tr('Cliente').'", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti", "readonly": "'.($user['gruppo'] == 'Clienti' ? '1' : $record['flag_completato']).'" ]}
{[ "type": "select", "label": "'.tr('Sede destinazione').'", "name": "idsede_destinazione","value": "$idsede_destinazione$", "ajax-source": "sedi", "select-options": '.json_encode(['idanagrafica' => $record['idanagrafica']]).', "placeholder": "'.tr('Sede legale').'", "readonly": "'.$record['flag_completato'].'" ]}
'; if (!empty($record['idclientefinale'])) { echo ' '.Modules::link('Anagrafiche', $record['idclientefinale'], null, null, 'class="pull-right"'); } echo ' {[ "type": "select", "label": "'.tr('Per conto di').'", "name": "idclientefinale", "value": "$idclientefinale$", "ajax-source": "clienti", "readonly": "'.$record['flag_completato'].'" ]}
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": '.json_encode(['idanagrafica' => $record['idanagrafica'], 'idclientefinale' => $record['idclientefinale']]).', "readonly": "'.intval($record['flag_completato']).'" ]}
'; if (!empty($record['idpreventivo'])) { echo ' '.Modules::link('Preventivi', $record['idpreventivo'], null, null, 'class="pull-right"'); } echo ' {[ "type": "select", "label": "'.tr('Preventivo').'", "name": "idpreventivo", "value": "'.$record['id_preventivo'].'", "ajax-source": "preventivi", "select-options": '.json_encode(['idanagrafica' => $record['idanagrafica']]).', "readonly": "'.$record['flag_completato'].'" ]}
'; $idcontratto_riga = $dbo->fetchOne('SELECT id FROM co_promemoria WHERE idintervento='.prepare($id_record))['id']; if (!empty($record['idcontratto'])) { echo ' '.Modules::link('Contratti', $record['idcontratto'], null, null, 'class="pull-right"'); } echo ' {[ "type": "select", "label": "'.tr('Contratto').'", "name": "idcontratto", "value": "'.$record['id_contratto'].'", "ajax-source": "contratti", "select-options": '.json_encode(['idanagrafica' => $record['idanagrafica']]).', "readonly": "'.$record['flag_completato'].'" ]}
'; $idcontratto_riga = $dbo->fetchOne('SELECT id FROM co_promemoria WHERE idintervento='.prepare($id_record))['id']; if (!empty($record['idordine'])) { echo ' '.Modules::link('Ordini cliente', $record['idordine'], null, null, 'class="pull-right"'); } echo ' {[ "type": "select", "label": "'.tr('Ordine').'", "name": "idordine", "value": "'.$record['id_ordine'].'", "ajax-source": "ordini-cliente", "select-options": '.json_encode(['idanagrafica' => $record['idanagrafica']]).', "readonly": "'.$record['flag_completato'].'" ]}
'; $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; $google = setting('Google Maps API key'); echo '

'.tr('Geolocalizzazione').'

'; $map_load_message = tr('Clicca per visualizzare'); if (empty($google)) { echo '
'.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, '&search=Google Maps API key').'.
'; } elseif (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) { echo '

'.$map_load_message.'


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

{[ "type": "text", "label": "", "name": "codice", "value": "$codice$", "readonly": "" ]}
{[ "type": "timestamp", "label": "", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$", "readonly": "" ]}
{[ "type": "timestamp", "label": "", "name": "data_scadenza", "required": 0, "value": "$data_scadenza$", "readonly": "" ]}
{[ "type": "select", "label": "", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome", "value": "$idzona$" , "placeholder": "", "extra": "readonly", "help":"." ]}
{[ "type": "select", "label": "", "name": "idtipointervento", "required": 1, "ajax-source": "tipiintervento", "value": "$idtipointervento$", "readonly": "" ]}
{[ "type": "select", "label": "", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "$idstatointervento$", "class": "unblockable" ]}
fetchArray('SELECT id_tecnico FROM in_interventi_tecnici_assegnati WHERE id_intervento = '.prepare($id_record)); $tecnici_assegnati = array_column($tecnici_assegnati, 'id_tecnico'); echo '
{[ "type": "select", "label": "'.tr('Tecnici assegnati').'", "multiple": "1", "name": "tecnici_assegnati[]", "ajax-source": "tecnici", "value": "'.implode(',', $tecnici_assegnati).'", "icon-after": "add|'.$module_anagrafiche['id'].'|tipoanagrafica=Tecnico&readonly_tipo=1" ]}
'; ?>
{[ "type": "ckeditor", "label": "", "name": "richiesta", "required": 1, "class": "autosize", "value": "$richiesta$", "extra": "rows='5'", "readonly": "" ]}
{[ "type": "ckeditor", "label": "", "name": "descrizione", "class": "autosize", "value": "$descrizione$", "extra": "rows='10'", "readonly": "" ]}
gruppo != 'Clienti') { echo '
{[ "type": "textarea", "label": "'.tr('Note interne').'", "name": "informazioniaggiuntive", "class": "autosize", "value": "$informazioniaggiuntive$", "extra": "rows=\'5\'" ]}
'; } ?>
fetchOne('SELECT num_item,codice_cig,codice_cup,id_documento_fe FROM co_contratti WHERE id = '.prepare($record['idcontratto'])); $record['id_documento_fe'] = $contratto['id_documento_fe']; $record['codice_cup'] = $contratto['codice_cup']; $record['codice_cig'] = $contratto['codice_cig']; $record['num_item'] = $contratto['num_item']; } ?>

{[ "type": "", "label": "", "name": "id_documento_fe", "required": 0, "help": "Obbligatorio per valorizzare CIG/CUP. È possible inserire:
  • N. determina
  • RDO
  • Ordine MEPA
'); ?>", "value": "", "maxlength": 20, "readonly": "", "extra": "" ]}
{[ "type": "", "label": "", "name": "num_item", "required": 0, "value": "", "maxlength": 15, "readonly": "", "extra": "" ]}
{[ "type": "", "label": "", "name": "codice_cig", "required": 0, "value": "", "maxlength": 15, "readonly": "", "extra": "" ]}
{[ "type": "", "label": "", "name": "codice_cup", "required": 0, "value": "", "maxlength": 15, "readonly": "", "extra": "" ]}


"; } ?>

0)'; $preventivi = $dbo->fetchArray($prev_query)[0]['tot']; echo ' '; // Lettura contratti accettati, in attesa di conferma o in lavorazione $contr_query = 'SELECT COUNT(*) AS tot FROM co_contratti WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstato IN( SELECT id FROM co_staticontratti WHERE is_fatturabile = 1) AND co_contratti.id IN (SELECT idcontratto FROM co_righe_contratti WHERE co_righe_contratti.idcontratto = co_contratti.id AND (qta - qta_evasa) > 0)'; $contratti = $dbo->fetchArray($contr_query)[0]['tot']; echo ' '; // Lettura ddt (entrata o uscita) $ddt_query = 'SELECT COUNT(*) AS tot FROM dt_ddt LEFT JOIN `dt_causalet` ON `dt_causalet`.`id` = `dt_ddt`.`idcausalet` LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt` LEFT JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE idanagrafica='.prepare($record['idanagrafica']).' AND `dt_statiddt`.`descrizione` IN (\'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\') AND `dt_tipiddt`.`dir` = '.prepare($intervento->direzione).' AND `dt_causalet`.`is_importabile` = 1 AND dt_ddt.id IN (SELECT idddt FROM dt_righe_ddt WHERE dt_righe_ddt.idddt = dt_ddt.id AND (qta - qta_evasa) > 0)'; $ddt = $dbo->fetchArray($ddt_query)[0]['tot']; echo '
'; echo ' '; echo ' '; echo ' '; /* echo ' ';*/ echo ' '; } // Conteggio numero articoli intervento per eventuale blocco della sede di partenza $articoli = $intervento->articoli; ?>
{[ "type": "select", "label": "", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "readonly": "isEmpty()) ? 1 : 0; ?>" ]}

{( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$", )}
'.tr('Questo intervento non è ancora stato firmato dal cliente').'.
'; } else { echo '
 
'.tr('Firmato il _DATE_ alle _TIME_ da _PERSON_', [ '_DATE_' => Translator::dateToLocale($record['firma_data']), '_TIME_' => Translator::timeToLocale($record['firma_data']), '_PERSON_' => ''.$record['firma_nome'].'', ]).'
'; } echo '
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )} '; // Collegamenti diretti // Fatture collegate a questo intervento $elementi = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_statidocumento`.`descrizione` AS stato_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idintervento` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($elementi)) { echo '

'.tr('Documenti collegati: _NUM_', [ '_NUM_' => count($elementi), ]).'

'; } if (!empty($elementi)) { echo '
'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale').'.
'; } ?>