<?php
/*
 * OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
 * Copyright (C) DevCode s.r.l.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org/licenses/>.
 */

use Models\Module;
use Models\Plugin;
use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Sede;
use Modules\Interventi\Stato;

include_once __DIR__.'/../../core.php';

$block_edit = $record['flag_completato'];
$id_modulo_anagrafiche = Module::where('name', 'Anagrafiche')->first()->id;
$id_segment = $record['id_segment'];

// Verifica aggiuntive sulla sequenzialità dei numeri
$numero_previsto = verifica_numero_intervento($intervento, $id_segment);

if (!empty($numero_previsto) && intval(setting('Verifica numero intervento'))) {
    echo '
<div class="alert alert-warning alert-dismissable">
    <i class="fa fa-warning"></i> '.tr("E' assente una attività con numero _NUM_ in data precedente o corrispondente al _DATE_: potrebbero esserci alcuni errori di continuità con la numerazione delle attività", [
        '_DATE_' => dateFormat($intervento->data_richiesta),
        '_NUM_' => '"'.$numero_previsto.'"',
    ]).'.</b>

    <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
</div>';
}

$tags = $database->fetchArray('SELECT `id_tag` FROM `in_interventi_tags` WHERE id_intervento = '.prepare($id_record));
$tags = $tags ? array_column($tags, 'id_tag') : [];

echo '
    
<br>
<form action="" method="post" id="edit-form">
	<input type="hidden" name="op" value="update">
	<input type="hidden" name="backto" value="record-edit">
	<input type="hidden" name="id_record" value="'.$id_record.'">

    <div class="row">
        <div class="col-md-12">
            <!-- DATI CLIENTE -->

            <div class="card card-primary collapsable '.(empty($espandi_dettagli) ? 'collapsed-card' : '').'">
                <div class="card-header with-border">
                    <h3 class="card-title">'.tr('Dati cliente').'</h3>
                    <div class="card-tools pull-right">
                        <button type="button" class="btn btn-xs btn-tool" data-card-widget="collapse">
                            <i class="fa fa-'.(empty($espandi_dettagli) ? 'plus' : 'minus').'"></i>
                        </button>
                    </div>
                </div>
            
                <div class="card-body">
                    <div class="card-body">
                        <!-- RIGA 1 -->
                        <div class="row">
                            <div class="col-md-3">
                                '.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']).'" ]}
                            </div>
                            <div class="col-md-3">
                                {[ "type": "select", "label": "'.tr('Zona').'", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( \' - \', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome", "value": "$idzona$" , "placeholder": "'.tr('Nessuna zona').'", "extra": "readonly", "help":"'.tr('La zona viene definita automaticamente in base al cliente selezionato.').'" ]}
                            </div>

                            <div class="col-md-3">';
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'].'" ]}
                            </div>
                            <div class="col-md-3">
                                {[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": '.json_encode(['idanagrafica' => $record['idanagrafica'], 'idclientefinale' => $record['idclientefinale'], 'idsede_destinazione' => $record['idsede_destinazione']]).', "readonly": "'.intval($record['flag_completato']).'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.Plugin::where('name', 'Referenti')->first()->id.'&id_parent='.$record['idanagrafica'].'" ]}
                            </div>
                        </div>
                        <!-- RIGA 2 -->
                        <div class="row">
                            <div class="col-md-3">';
if ($record['idagente'] != 0) {
    echo Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
}
echo '

                                {[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
                            </div>


                            <div class="col-md-3">';
echo !empty($record['idpagamento']) ? Modules::link('Pagamenti', $record['idpagamento'], null, null, 'class="pull-right"') : '';
echo '
                                {[ "type": "select", "label": "'.tr('Pagamento').'", "name": "idpagamento", "required": 0, "ajax-source": "pagamenti", "value": "$idpagamento$" ]}
                            </div>
                            
                            <div class="col-md-6">';
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'].'", "icon-after": "add|'.Module::where('name', 'Preventivi')->first()->id.'|pianificabile=1&idanagrafica='.$record['idanagrafica'].'"  ]}
                            </div>

                            <div class="col-md-6">';

$idpreventivo_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'].'", "icon-after": "add|'.Module::where('name', 'Contratti')->first()->id.'|pianificabile=1&idanagrafica='.$record['idanagrafica'].'" ]}

                                <input type="hidden" name="idcontratto_riga" value="'.$idcontratto_riga.'">
                            </div>

                            <div class="col-md-6">';

$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'].'" ]}
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>';

$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;

?>
    <!-- DATI INTERVENTO -->
    <div class="card card-primary">
        <div class="card-header">
            <h3 class="card-title"><?php echo tr('Dati intervento'); ?></h3>
        </div>

        <div class="card-body">
            <!-- RIGA 3 -->
            <div class="row">
                <div class="col-md-2">
                    {[ "type": "text", "label": "<?php echo tr('Numero'); ?>", "name": "codice", "value": "$codice$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
                </div>

                <div class="col-md-2">
                    {[ "type": "timestamp", "label": "<?php echo tr('Data/ora richiesta'); ?>", "name": "data_richiesta", "required": 1, "value": "$data_richiesta$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
                </div>

                <div class="col-md-2">
                    {[ "type": "timestamp", "label": "<?php echo tr('Data/ora scadenza'); ?>", "name": "data_scadenza", "required": 0, "value": "$data_scadenza$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
                </div>
                <div class="col-md-3">
                    {[ "type": "select", "label": "<?php echo tr('Tipo attività'); ?>", "name": "idtipointervento", "required": 1, "ajax-source": "tipiintervento", "value": "$idtipointervento$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
                </div>
                <div class="col-md-3">
<?php
                if (setting('Cambia automaticamente stato attività fatturate')) {
                    $id_stato_fatt = Stato::where('codice', 'FAT')->first()->id;
                    if ($intervento->stato->id == $id_stato_fatt) {
                        echo '
                        {[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `title` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento`  LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL ORDER BY `title`", "value": "$idstatointervento$", "class": "unblockable" ]}';
                    } else {
                        echo '
                        {[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `title` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento`  LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `in_statiintervento`.`id`!='.prepare($id_stato_fatt).' AND `deleted_at` IS NULL ORDER BY `title`", "value": "$idstatointervento$", "class": "unblockable" ]}';
                    }
                } else {
                    echo '
                    {[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `title` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento`  LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL ORDER BY `title`", "value": "$idstatointervento$", "class": "unblockable" ]}';
                }
?>
                </div>
            </div>

<?php

$tecnici_assegnati = $database->fetchArray('SELECT id_tecnico FROM in_interventi_tecnici_assegnati WHERE id_intervento = '.prepare($id_record));
$tecnici_assegnati = array_column($tecnici_assegnati, 'id_tecnico');
echo '
<!-- RIGA 4 -->
            <div class="row">
                <div class="col-md-3">
                    {[ "type": "select", "label": "'.tr('Tecnici assegnati').'", "multiple": "1", "name": "tecnici_assegnati[]", "ajax-source": "tecnici", "value": "'.implode(',', $tecnici_assegnati).'", "icon-after": "add|'.$id_modulo_anagrafiche.'|tipoanagrafica=Tecnico&readonly_tipo=1" ]}
                </div>
                ';
// Conteggio numero articoli intervento per eventuale blocco della sede di partenza
$articoli = $intervento->articoli;
echo '
                <div class="col-md-3">
                    {[ "type": "select", "label": "'.tr('Sede partenza').'", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "readonly": "'.(($record['flag_completato'] || !$articoli->isEmpty()) ? 1 : 0).'" ]}
                </div>
                <div class="col-md-3">
                    {[ "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'].'" ]}
                </div>
                <div class="col-md-3">
                    {[ "type": "select", "label": "'.tr('Tags').'", "multiple": "1", "name": "tags[]", "values": "query=SELECT `id`, `name` as descrizione FROM `in_tags` ORDER BY `name`", "value": "'.implode(',', $tags).'", "icon-after": "add|'.Module::where('name', 'Tags')->first()->id.'|" ]}
                </div>
            </div>
            <!-- RIGA 5 -->
            <div class="row">
                <div class="col-lg-6">';
echo input([
    'type' => 'ckeditor',
    'label' => tr('Richiesta'),
    'name' => 'richiesta',
    'required' => 1,
    'value' => $record['richiesta'],
    'extra' => 'style=\'max-height:40px;\'',
]);
echo '
                </div>
                <div class="col-lg-6">';
echo input([
    'type' => 'ckeditor',
    'label' => tr('Descrizione'),
    'name' => 'descrizione',
    'value' => $record['descrizione'],
    'extra' => 'style=\'max-height:40px;\'',
]);
echo '
                </div>
            </div>';
// Nascondo le note interne ai clienti
if ($user->gruppo != 'Clienti') {
    echo '
            <div class="row">
                <div class="col-md-12">
                    {[ "type": "textarea", "label": "'.tr('Note interne').'", "name": "informazioniaggiuntive", "class": "autosize", "value": "$informazioniaggiuntive$", "extra": "rows=\'5\'" ]}
                </div>
            </div>';
}
echo '
        </div>
    </div>';

// Visualizzo solo se l'anagrafica cliente è un ente pubblico
if (!empty($record['idcontratto'])) {
    $contratto = $dbo->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'];
}

?>
    <!-- Fatturazione Elettronica PA-->
    <div class="card card-primary collapsable collapsed-card" >
        <div class="card-header with-border <?php echo ($record['tipo_anagrafica'] == 'Ente pubblico' || $record['tipo_anagrafica'] == 'Azienda') ? '' : 'hidden'; ?>">
            <h3 class="card-title"><?php echo tr('Dati appalto'); ?></h3>
            <div class="card-tools pull-right">
                <button type="button" class="btn btn-tool" data-card-widget="collapse">
                    <i class="fa fa-plus"></i>
                </button>
            </div>
        </div>

            
        <div class="card-body">
            <div class="card-body">
                <div class="row">
                    <div class="col-md-3">
                        {[ "type": "<?php echo !empty($record['idcontratto']) ? 'span' : 'text'; ?>", "label": "<?php echo tr('Identificatore Documento'); ?>", "name": "id_documento_fe", "required": 0, "help": "<?php echo tr('<span>Obbligatorio per valorizzare CIG/CUP. &Egrave; possible inserire: </span><ul><li>N. determina</li><li>RDO</li><li>Ordine MEPA</li></ul>'); ?>", "value": "<?php echo $record['id_documento_fe']; ?>", "maxlength": 20, "readonly": "<?php echo $record['flag_completato']; ?>", "extra": "" ]}
                    </div>

                    <div class="col-md-3">
                        {[ "type": "<?php echo !empty($record['idcontratto']) ? 'span' : 'text'; ?>", "label": "<?php echo tr('Numero Riga'); ?>", "name": "num_item", "required": 0, "value": "<?php echo $record['num_item']; ?>", "maxlength": 15, "readonly": "<?php echo $record['flag_completato']; ?>", "extra": "" ]}
                    </div>

                    <div class="col-md-3">
                        {[ "type": "<?php echo !empty($record['idcontratto']) ? 'span' : 'text'; ?>", "label": "<?php echo tr('Codice CIG'); ?>", "name": "codice_cig", "required": 0, "value": "<?php echo $record['codice_cig']; ?>", "maxlength": 15, "readonly": "<?php echo $record['flag_completato']; ?>", "extra": "" ]}
                    </div>

                    <div class="col-md-3">
                        {[ "type": "<?php echo !empty($record['idcontratto']) ? 'span' : 'text'; ?>", "label": "<?php echo tr('Codice CUP'); ?>", "name": "codice_cup", "required": 0, "value": "<?php echo $record['codice_cup']; ?>", "maxlength": 15, "readonly": "<?php echo $record['flag_completato']; ?>", "extra": "" ]}
                    </div>
                </div>
            </div>
        </div>
    </div>
</form>

<!-- ORE LAVORO -->
<div class="card card-primary">
    <div class="card-header">
        <h3 class="card-title"><?php echo tr('Sessioni di lavoro'); ?></h3>
    </div>

    <div class="card-body">
    <?php
            if ($show_prezzi) {
                echo "
        <div class=\"pull-right\">
            <a class='btn btn-default btn-details' onclick=\"$('.extra').removeClass('hide'); $(this).addClass('hide'); $('#dontshowall_dettagli').removeClass('hide');\" id='showall_dettagli'><i class='fa fa-square-o'></i> <?php echo tr('Visualizza dettaglio costi'); ?></a>
            <a class='btn btn-info btn-details hide' onclick=\"$('.extra').addClass('hide'); $(this).addClass('hide'); $('#showall_dettagli').removeClass('hide');\" id='dontshowall_dettagli'><i class='fa fa-check-square-o'></i> <?php echo tr('Visualizza dettaglio costi'); ?></a>
        </div>
        <div class=\"clearfix\"></div>
        <br>";
            }
?>

        <div class="row">
            <div class="col-md-12" id="tecnici"></div>
        </div>
    </div>
</div>

<!-- RIGHE -->
<div class="card card-primary">
    <div class="card-header">
        <h3 class="card-title"><?php echo tr('Righe'); ?></h3>
    </div>

    <div class="card-body">
        <div class="row">
            <div class="col-md-12">

<?php

if (!$block_edit) {
    // Lettura preventivi accettati, in attesa di conferma o in lavorazione
    $prev_query = 'SELECT 
            COUNT(*) AS tot 
        FROM 
            `co_preventivi`
            INNER JOIN `co_statipreventivi` ON `co_preventivi`.`idstato` = `co_statipreventivi`.`id`
            INNER JOIN `co_righe_preventivi` ON `co_preventivi`.`id` = `co_righe_preventivi`.`idpreventivo`
        WHERE 
            idanagrafica='.prepare($record['idanagrafica']).' AND `co_statipreventivi`.`is_fatturabile` = 1 AND `default_revision`=1 AND ((`co_righe_preventivi`.`qta` - `co_righe_preventivi`.`qta_evasa`) > 0)';
    $preventivi = $dbo->fetchArray($prev_query)[0]['tot'];

    // 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'];

    // 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`
            INNER JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
            LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
            INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt`
            INNER JOIN `dt_righe_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id`
        WHERE 
            `idanagrafica`='.prepare($record['idanagrafica']).'
            AND `dt_statiddt_lang`.`title` IN ("Evaso", "Parzialmente evaso", "Parzialmente fatturato")
            AND `dt_tipiddt`.`dir` = '.prepare($intervento->direzione).'
            AND `dt_causalet`.`is_importabile` = 1
            AND (`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0';
    $ddt = $dbo->fetchArray($ddt_query)[0]['tot'];

    // Form di inserimento riga documento
    echo '
                <form id="link_form" action="" method="post">
                    <input type="hidden" name="op" value="add_articolo">
                    <input type="hidden" name="backto" value="record-edit">

                    <div class="row">
                        <div class="col-md-4">
                            {[ "type": "text", "label": "'.tr('Aggiungi un articolo tramite barcode').'", "name": "barcode", "extra": "autocomplete=\"off\"", "icon-before": "<i class=\"fa fa-barcode\"></i>", "required": 0 ]}
                        </div>

                        <div class="col-md-4">
                            {[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": '.json_encode(['idsede_partenza' => $record['idsede_partenza']]).', "icon-after": "add|'.Module::where('name', 'Articoli')->first()->id.'" ]}
                        </div>

                        <div class="col-md-4" style="margin-top: 25px">
                            <button title="'.tr('Aggiungi articolo alla vendita').'" class="btn btn-primary tip" type="button" onclick="salvaArticolo()">
                                <i class="fa fa-plus"></i> '.tr('Aggiungi').'
                            </button>
                            
                            <a class="btn btn-primary" onclick="gestioneRiga(this)" data-title="'.tr('Aggiungi riga').'">
                                <i class="fa fa-plus"></i> '.tr('Riga').'
                            </a>

                            <div class="btn-group tip" data-card-widget="tooltip">
                                <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                                    <i class="fa fa-list"></i> '.tr('Altro').'
                                    <span class="caret"></span>
                                </button>
                                <ul class="dropdown-menu dropdown-menu-right">';
    echo '

                                    <a class="dropdown-item" style="cursor:pointer" onclick="gestioneSconto(this)" data-title="'.tr('Aggiungi sconto/maggiorazione').'">
                                        <i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').'
                                    </a>
                                   
                                    <a class="'.(!empty($preventivi) ? '' : ' disabled').' dropdown-item" title="'.tr("L'aggiunta del documento secondo questa procedura non associa l'attività al relativo consuntivo del documento: utilizzare i campi soprastanti a questo fine").'." style="cursor:pointer" data-href="'.$structure->fileurl('add_preventivo.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Preventivo').'" onclick="saveForm()">
                                        <i class="fa fa-plus"></i> '.tr('Preventivo').'
                                    </a>
                            
                                    <a class="'.(!empty($contratti) ? '' : ' disabled').' dropdown-item" title="'.tr("L'aggiunta del documento secondo questa procedura non associa l'attività al relativo consuntivo del documento: utilizzare i campi soprastanti a questo fine").'." style="cursor:pointer" data-href="'.$structure->fileurl('add_contratto.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Contratto').'" onclick="saveForm()">
                                        <i class="fa fa-plus"></i> '.tr('Contratto').'
                                    </a>
                                  

                                    <a class="'.(!empty($ddt) ? '' : ' disabled').' dropdown-item" title="'.tr('DDT in uscita per il Cliente che si trovano nello stato di Evaso o Parzialmente Evaso con una Causale importabile').'. '.tr("L'aggiunta del documento secondo questa procedura non associa l'attività al relativo consuntivo del documento: utilizzare i campi soprastanti a questo fine").'." style="cursor:pointer" data-href="'.$structure->fileurl('add_ddt.php').'?id_module='.$id_module.'&id_record='.$id_record.'" data-card-widget="modal" data-title="'.tr('Aggiungi Ddt').'" onclick="saveForm()">
                                        <i class="fa fa-plus"></i> '.tr('Ddt').'
                                    </a>

                                </ul>
                            </div>
                        </div>
                    </div>
                </form>';
}

?>
            </div>
        </div>

        <div class="row">
            <div class="col-md-12" id="righe"></div>
        </div>
    </div>
</div>

<!-- COSTI TOTALI -->
<div class="card card-primary">
    <div class="card-header">
        <h3 class="card-title"><?php echo tr('Costi totali'); ?></h3>
    </div>

    <div class="card-body">
        <div class="row">
            <div class="col-md-12" id="costi"></div>
        </div>
    </div>
</div>

{( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$", <?php echo ($record['flag_completato']) ? '"readonly": 1' : '"readonly": 0'; ?> )}

<!-- EVENTUALE FIRMA GIA' EFFETTUATA -->
<div class="text-center row">
	<div class="col-md-12" >
	    <?php
        if ($record['firma_file'] == '') {
            echo '
	    <div class="alert alert-warning"><i class="fa fa-warning"></i> '.tr('Questo intervento non è ancora stato firmato dal cliente').'.</div>';
        } else {
            echo '
	    <img src="'.base_path().'/files/interventi/'.$record['firma_file'].'" class="img-thumbnail"><div>&nbsp;</div>
	   	<div class="col-md-6 offset-md-3 alert alert-success"><i class="fa fa-check"></i> '.tr('Firmato il _DATE_ alle _TIME_ da _PERSON_', [
                '_DATE_' => Translator::dateToLocale($record['firma_data']),
                '_TIME_' => Translator::timeToLocale($record['firma_data']),
                '_PERSON_' => (!empty($record['firma_nome']) ? $record['firma_nome'] : $intervento->anagrafica->ragione_sociale),
            ]).'</div>';
        }

echo '
	</div>
</div>

{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}

<script>
    async function saveForm() {
        // Salvataggio via AJAX
        await salvaForm("#edit-form");
    }

    function gestioneSconto(button) {
        gestioneRiga(button, "is_sconto=1");
    }

    function gestioneDescrizione(button) {
        gestioneRiga(button, "is_descrizione=1");
    }

    async function gestioneRiga(button, options) {
        // Salvataggio via AJAX
        await salvaForm("#edit-form", {}, button);

        // Lettura titolo e chiusura tooltip
        let title = $(button).attr("data-title");

        // Apertura modal
        options = options ? options : "is_riga=1";
        openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options);
    }

    /**
     * Funzione dedicata al caricamento dinamico via AJAX delle righe del documento.
     */
    function caricaRighe(id_riga) {
        let container = $("#righe");

        localLoading(container, true);
        return $.get("'.$structure->fileurl('row-list.php').'?id_module='.$id_module.'&id_record='.$id_record.'", function(data) {
            container.html(data);
            localLoading(container, false);
            if (id_riga != null) {
                $("tr[data-id="+ id_riga +"]").effect("highlight",1000);
            }
        });
    }

    /**
     * Funzione dedicata al caricamento dinamico via AJAX delle sessioni dei tecnici per l\'Attività.
     */
    function caricaTecnici() {
        let container = $("#tecnici");

        localLoading(container, true);
        return $.get("'.$structure->fileurl('ajax_tecnici.php').'?id_module='.$id_module.'&id_record='.$id_record.'", function(data) {
            caricaRighe(null);
            container.html(data);
            localLoading(container, false);
        });
    }

    /**
     * Funzione dedicata al caricamento dinamico via AJAX delle sessioni dei tecnici per l\'Attività.
     */
    function caricaCosti() {
        let container = $("#costi");

        localLoading(container, true);
        return $.get("'.$structure->fileurl('ajax_costi.php').'?id_module='.$id_module.'&id_record='.$id_record.'", function(data) {
            container.html(data);
            localLoading(container, false);
        });
    }

    $(document).ready(function() {
        caricaRighe(null);
        caricaTecnici();
        caricaCosti();

        $("#idsede_partenza").trigger("change");

        $("#id_articolo").on("change", function(e) {
            if ($(this).val()) {
                var data = $(this).selectData();

                if (data.barcode) {
                    $("#barcode").val(data.barcode);
                } else {
                    $("#barcode").val("");
                }
            }

            e.preventDefault();

            setTimeout(function(){
                $("#barcode").focus();
            }, 100);
        });

        $("#barcode").focus();
        content_was_modified = false;
    });

    var anagrafica = input("idanagrafica");
    var sede = input("idsede_destinazione");
    var contratto = input("idcontratto");
    var preventivo = input("idpreventivo");
    var ordine = input("idordine");
    var cliente_finale = input("idclientefinale");
    var referente = input("idreferente");
    var sede_partenza = input("idsede_partenza");

    // Gestione della modifica dell\'anagrafica
	anagrafica.change(function() {
        updateSelectOption("idanagrafica", $(this).val());
        session_set("superselect,idanagrafica", $(this).val(), 0);

        let value = !$(this).val();
        let placeholder = value ? "'.tr('Seleziona prima un cliente').'" : "'.tr("Seleziona un'opzione").'";

        referente.getElement()
            .selectReset(placeholder);

        sede.setDisabled(value)
            .getElement().selectReset(placeholder);

        preventivo.setDisabled(value)
            .getElement().selectReset(placeholder);

        contratto.setDisabled(value)
            .getElement().selectReset(placeholder);

        ordine.setDisabled(value)
            .getElement().selectReset(placeholder);

        input("idimpianti").setDisabled(value);

        let data = anagrafica.getData();
		if (data) {
		    input("idzona").set(data.idzona ? data.idzona : "");
			// session_set("superselect,idzona", $(this).selectData().idzona, 0);

            // Impostazione del tipo intervento da anagrafica
            if (data.idtipointervento) {
                input("idtipointervento").getElement()
                    .selectSet(data.idtipointervento);
            }
		}
    });

    //gestione del cliente finale
    cliente_finale.change(function() {
        updateSelectOption("idclientefinale", $(this).val());
        session_set("superselect,idclientefinale", $(this).val(), 0);

        referente.getElement()
            .selectReset("'.tr("Seleziona un'opzione").'");
    });

    // Gestione della modifica della sede selezionato
	sede.change(function() {
        updateSelectOption("idsede_destinazione", $(this).val());
		session_set("superselect,idsede_destinazione", $(this).val(), 0);
        input("idimpianti").getElement().selectReset();
        input("idreferente").getElement().selectReset();
        
        let data = sede.getData();
		if (data) {
		    input("idzona").set(data.idzona ? data.idzona : "");
			// session_set("superselect,idzona", $(this).selectData().idzona, 0);
		}
	});

    // Gestione della modifica dell\'ordine selezionato
	ordine.change(function() {
		if (ordine.get()) {
            contratto.getElement().selectReset();
            preventivo.getElement().selectReset();
        }
	});

    // Gestione della modifica del preventivo selezionato
	preventivo.change(function() {
		if (preventivo.get()){
            contratto.getElement().selectReset();
            ordine.getElement().selectReset();

             // Impostazione del tipo intervento da preventivo
            var data = $(this).selectData()
            if (data.idtipointervento) {
                input("idtipointervento").getElement()
                    .selectSet(data.idtipointervento);
            }
        }
	});

    // Gestione della modifica del contratto selezionato
	contratto.change(function() {
		if (contratto.get()){
            preventivo.getElement().selectReset();
            ordine.getElement().selectReset();

            $("input[name=idcontratto_riga]").val("");
        }
	});

    // Gestione delle modifiche agli impianti selezionati
	input("idimpianti").change(function() {
        updateSelectOption("matricola", $(this).val());
		session_set("superselect,matricola", $(this).val(), 0);

        input("componenti").setDisabled(!$(this).val())
            .getElement().selectReset();
	});

    // Impostazione della sede di partenza
    sede_partenza.change(function() {
        updateSelectOption("idsede_partenza", $(this).val());
        session_set("superselect,idsede_partenza", $(this).val(), 0);
    })

    $("#codice_cig, #codice_cup").bind("keyup change", function (e) {
        if ($("#codice_cig").val() == "" && $("#codice_cup").val() == "") {
            $("#id_documento_fe").prop("required", false);
        } else {
            $("#id_documento_fe").prop("required", true);
        }
    });

    async function salvaArticolo() {
        // Salvataggio via AJAX
        await salvaForm("#edit-form");
        
        $("#link_form").ajaxSubmit({
            url: globals.rootdir + "/actions.php",
            data: {
                id_module: globals.id_module,
                id_record: globals.id_record,
                ajax: true,
            },
            type: "post",
            beforeSubmit: function(arr, $form, options) {
                return $form.parsley().validate();
            },
            success: function(response){
                renderMessages();
                if(response.length > 0){
                    response = JSON.parse(response);
                    swal({
                        type: "error",
                        title: "'.tr('Errore').'",
                        text: response.error,
                    });
                }
    
                $("#barcode").val("");
                $("#id_articolo").selectReset();
                content_was_modified = false;
                caricaRighe(null);
                caricaCosti();
            }
        });
    }
    
    $("#link_form").bind("keypress", function(e) {
        if (e.keyCode == 13) {
            e.preventDefault();
            salvaArticolo();
            return false;
        }
    });
</script>';

// Collegamenti diretti
// Fatture collegate a questo intervento
$elementi = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento_lang`.`title` AS tipo_documento, `co_statidocumento_lang`.`title` AS stato_documento, `co_tipidocumento`.`dir` FROM `co_documenti` INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_documenti`.`idtipodocumento` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') INNER JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento` LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento_lang`.`id_record` = `co_documenti`.`idstatodocumento` AND `co_statidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idintervento` = '.prepare($id_record).') ORDER BY `data`');

if (!empty($elementi)) {
    echo '
<div class="card card-warning collapsable collapsed-card">
    <div class="card-header with-border">
        <h3 class="card-title"><i class="fa fa-warning"></i> '.tr('Documenti collegati: _NUM_', [
        '_NUM_' => count($elementi),
    ]).'</h3>
        <div class="card-tools pull-right">
            <button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
        </div>
    </div>
    <div class="card-body">
        <ul>';

    foreach ($elementi as $fattura) {
        $descrizione = tr('_DOC_ num. _NUM_ del _DATE_ _STATO_', [
            '_DOC_' => $fattura['tipo_documento'],
            '_NUM_' => !empty($fattura['numero_esterno']) ? $fattura['numero_esterno'] : $fattura['numero'],
            '_DATE_' => Translator::dateToLocale($fattura['data']),
			'_STATO_' => (!empty($elemento['stato_documento']) ? "(".$elemento['stato_documento'].")" : ''),
        ]);

        $modulo = ($fattura['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
        $id = $fattura['id'];

        echo '
            <li>'.Modules::link($modulo, $id, $descrizione).'</li>';
    }

    echo '
        </ul>
    </div>
</div>';
}

if (!empty($elementi)) {
    echo '
<div class="alert alert-danger">
    '.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale').'.
</div>';
}

?>

<a class="btn btn-danger ask" data-backto="record-list">
    <i id ="elimina" class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
</a>