Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
951 righe
61 KiB
951 righe
61 KiB
<!doctype html> |
|
<?php |
|
include '../../lib/api.php'; |
|
|
|
if (!Utils::isStatoSportelloPreparazione()) { |
|
Utils::RedirectTo(HTTP_PRIVATE_SECTION . 'info.php'); |
|
} |
|
$nucleo = $LoggedAccount->loadNucleoFamiliare(); |
|
$id_sconto = (isset($_POST['ID']) && intval($_POST['ID']) > 0 ? intval($_POST['ID']) : 0); |
|
$sconto = new DomandaSconti($id_sconto); |
|
$istanza = Domanda::loadDomandaFromAccount(); |
|
$controlliDomanda = $istanza->checkDatiPreSave(); |
|
$sezioni = 2; |
|
$btn_view = 0; |
|
if ($sconto->ID > 0 && $sconto->ID_DOMANDA != $istanza->ID) { |
|
Utils::RedirectTo(HTTP_PRIVATE_SECTION . 'sconto.php'); |
|
} |
|
if (intval($istanza->ID) <= 0) { |
|
Utils::RedirectTo(HTTP_PRIVATE_SECTION . 'dashboard.php'); |
|
} elseif ($controlliDomanda['checkDati']) { |
|
$btn_view++; |
|
$controlloAllegati = Allegati::checkDocumentiObbligatoriCompletati(); |
|
if ($controlloAllegati) { |
|
$btn_view++; |
|
} |
|
} else { |
|
Utils::RedirectTo(HTTP_PRIVATE_SECTION . 'dashboard.php'); |
|
} |
|
|
|
if ($sezioni != $btn_view) { |
|
Utils::RedirectTo(HTTP_PRIVATE_SECTION . 'dashboard.php'); |
|
} |
|
$state = array(); |
|
//Utils::print_array($sconto).exit(); |
|
if ($sconto->STATO > RS_IN_ELABORAZIONE) { |
|
$state['disabled'] = "disabled"; |
|
} |
|
$toDay = new DateTime(); |
|
$oggi = $toDay->format('Y-m-d'); |
|
$data_inizio_bando = new DateTime(MIN_DATA_CONTRIBUTO_JS); |
|
$oggiMeno30 = $toDay->modify('-' . MIN_DATA_VOLO . ' days'); |
|
if ($oggiMeno30 < $data_inizio_bando) { |
|
$meno30 = $data_inizio_bando->format('Y-m-d'); |
|
} else { |
|
$meno30 = $oggiMeno30->format('Y-m-d'); |
|
} |
|
$isPresenteIntegrazione = false; |
|
if (ATTIVA_SOCCORSO_ISTRUTTORIO) { |
|
$integrazione = RichiestaIntegrazione::loadFromDomanda($id_sconto); |
|
$isPresenteIntegrazione = is_array($integrazione) && count($integrazione) > 0 ? true : false; |
|
$datiIntegrazione = $integrazione[0]; |
|
} |
|
?> |
|
<html lang="en"> |
|
<? include_once ROOT . 'layout/head.php'; ?> |
|
<body> |
|
<? |
|
include_once ROOT . 'layout/header.php'; |
|
?> |
|
<main role="main"> |
|
<header class="masthead masthead-page"> |
|
<div class="container "> |
|
<div class="row "> |
|
<div class="col-lg-12 p-3"> |
|
<div class="row"> |
|
<div class="col-lg-2"> |
|
<img src="<?= BASE_HTTP ?>assets/img/footer_web_loghi_white.png" alt="" class="logo-footer"/> |
|
</div> |
|
<div class="col-lg-10"> |
|
<h6><?= TEXT_ASSESSORATO_BANDO ?></h6> |
|
<h6><?= TEXT_DESCRIZIONE_BANDO ?></h6> |
|
</div> |
|
</div> |
|
<? |
|
$txtBenvenuto = ($LoggedAccount->Anagrafica->SESSO == "M" ? "Benvenuto Sig." : "Benvenuta Sig.ra"); |
|
$contenuto = $txtBenvenuto . ' <b>' . $LoggedAccount->Anagrafica->COGNOME . ' ' . $LoggedAccount->Anagrafica->NOME . '</b>'; |
|
?> |
|
<h3 class="mb-2"><?= $contenuto ?></h3> |
|
</div> |
|
</div> |
|
</div> |
|
<? |
|
include_once ROOT . 'layout/header_svg.php'; |
|
?> |
|
</header> |
|
<div class="container"> |
|
<? include_once ROOT . 'layout/loader.php'; ?> |
|
<div class="row"> |
|
<div class="col-sm-12"> |
|
<nav aria-label="breadcrumb"> |
|
<ol class="breadcrumb"> |
|
<li class="breadcrumb-item"><a href="javascript:goToPage('dashboard')">Pagina iniziale</a></li> |
|
<li class="breadcrumb-item"><a href="javascript:goBack()">Sezione Richieste Sconti sui Voli</a></li> |
|
<li class="breadcrumb-item active" aria-current="page">Richiesta Sconto</li> |
|
|
|
</ol> |
|
</nav> |
|
</div> |
|
</div> |
|
|
|
<? if ($isPresenteIntegrazione && ATTIVA_SOCCORSO_ISTRUTTORIO) { ?> |
|
<div class="row"> |
|
<div class="col-sm-12"> |
|
<div class="card"> |
|
<div class="card-header bg-danger text-white"> |
|
<div class="row"> |
|
<div class="col-lg-12"> |
|
<i class="fas fa-question"></i> Richiesta di Integrazione |
|
</div> |
|
</div> |
|
</div> |
|
<div class="card-body"> |
|
<table class="table table-bordered"> |
|
<tr> |
|
<td width='40%'> |
|
<strong> |
|
Data Richiesta Integrazione |
|
</strong> |
|
</td> |
|
<td><?= Date::dateOracleTimeStamp($datiIntegrazione['DATA_RICHIESTA'], 'd-m-Y') ?></td> |
|
</tr> |
|
<tr> |
|
<td> |
|
<strong> |
|
Descrizione Richiesta |
|
</strong> |
|
</td> |
|
<td><?= $datiIntegrazione['DESCRIZIONE_RICHIESTA'] ?></td> |
|
</tr> |
|
<? if ($datiIntegrazione['FILEPATH_PDF_PROTOCOLLATO'] != "") { ?> |
|
<tr> |
|
<td> |
|
<strong> |
|
Documento Ufficiale |
|
</strong> |
|
</td> |
|
<td> |
|
<button class='btn btn-sm btn-primary' onclick="openStreamer('<?= $datiIntegrazione['ID'] ?>', 'richiesta_iniziale', 'richiesta_integrazione');"> |
|
<i class="fas fa-download"></i> |
|
Scarica |
|
</button> |
|
</td> |
|
</tr> |
|
<? } ?> |
|
<tr> |
|
<td> |
|
<strong> |
|
Protocollo |
|
</strong> |
|
</td> |
|
<td><?= $datiIntegrazione['NUMERO_PROTOCOLLO'] . " del " . Date::dateOracleTimeStamp($datiIntegrazione['DATA_PROTOCOLLO'], 'd-m-Y H:i:s') ?></td> |
|
</tr> |
|
<tr> |
|
<td> |
|
<strong> |
|
Termine ultimo per la presentazione dell'integrazione richiesta |
|
</strong> |
|
</td> |
|
<td><?= Date::dateOracleDate($datiIntegrazione['SCADENZA'], 'd-m-Y') ?></td> |
|
</tr> |
|
<tr> |
|
<td> |
|
<strong> |
|
Stato procedura di integrazione |
|
</strong> |
|
</td> |
|
<td><?= str_replace("_", " ", $datiIntegrazione['STATO']) ?></td> |
|
</tr> |
|
<tr> |
|
<td> |
|
<strong> |
|
Note |
|
</strong> |
|
</td> |
|
<td><?= $datiIntegrazione['NOTE_OPERATORE'] ?></td> |
|
</tr> |
|
<? if ($datiIntegrazione['STATO'] != RI_INTEGRAZIONE_IN_ATTESA) { ?> |
|
<tr> |
|
<td> |
|
<strong> |
|
Data Risposta |
|
</strong> |
|
</td> |
|
<td><?= Date::dateOracleDate($datiIntegrazione['DATA_CARICAMENTO'], 'd-m-Y') ?></td> |
|
</tr> |
|
<tr> |
|
<td> |
|
<strong> |
|
Integrazione |
|
</strong> |
|
</td> |
|
<td> |
|
<?= $datiIntegrazione['NOTE_UTENTE'] ?><br> |
|
<button class='btn btn-sm btn-primary' onclick="openStreamer('<?= $datiIntegrazione['ID'] ?>', 'integrazione', 'richiesta_integrazione');"> |
|
<i class="fas fa-download"></i> |
|
Scarica Documento Inviato |
|
</button> |
|
</td> |
|
</tr> |
|
<? } ?> |
|
</table> |
|
<? if ($datiIntegrazione['STATO'] == RI_INTEGRAZIONE_IN_ATTESA) { ?> |
|
<div class='card'> |
|
<form id="form-add-integrazione" class="needs-validation" action="javascript:saveIntegrazione()" novalidate> |
|
<div class='card-body'> |
|
<input type="hidden" name="csrf_contratti" value="<?= $_SESSION['Token']['csrf_contratti'] ?>" readonly> |
|
<input type="hidden" name="ID_INTEGRAZIONE" value="<?= $datiIntegrazione['ID'] ?>" readonly> |
|
<input type="hidden" name="ID_DOMANDA_SCONTI" value="<?= $datiIntegrazione['ID_DOMANDA_SCONTI'] ?>" readonly> |
|
<div class="form-group"> |
|
<div class="row"> |
|
<div class='col-sm-12'> |
|
<label for="note_utente"> Note:<span class="text-danger">* </span></label> |
|
<textarea class="form-control" id="note_utente" name='NOTE_UTENTE'></textarea> |
|
<div class="invalid-tooltip"> |
|
Il campo è obbligatorio! |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="form-group"> |
|
<div class="row"> |
|
<div class="col-12"> |
|
<div class="card text-danger bg-light mb-3"> |
|
<div class="card-header"> |
|
<b>Documento di integrazione <span class="text-danger">* </span> [formato pdf, dimensione max 30mb]</b> |
|
</div> |
|
<div class="card-body"> |
|
<div class="row p-1"> |
|
<div class="col-12"> |
|
<div class="input-group custom-file-button"> |
|
<label class="input-group-text" for="FILEPATH_RISPOSTA">Scegli il file</label> |
|
<input type="file" class="form-control" name="FILEPATH_RISPOSTA" id="FILEPATH_RISPOSTA" required> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="card-footer"> |
|
<div class="row"> |
|
<div class="col-sm-12"> |
|
<span class="text-danger h5"><b>* I campi contrassegnati con l'asterisco sono obbligatori</b></span> |
|
</div> |
|
</div> |
|
<div class="row "> |
|
<div class="offset-sm-2 col-sm-10 text-right "> |
|
<? if ($datiIntegrazione['STATO'] == RI_INTEGRAZIONE_IN_ATTESA) { ?> |
|
<button type="submit" class="btn btn-md btn-success"><i class="fas fa-save"></i> Salva</button> |
|
<? } ?> |
|
|
|
<button type="button" id="btn-dashboard" class="btn btn-md btn-primary" onclick="goBack()"><i class="fas fa-ship"></i> Torna alla sezione richieste rimborsi</button> |
|
</div> |
|
</div> |
|
</div> |
|
</form> |
|
</div> |
|
<? } ?> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<? } ?> |
|
<div class="row"> |
|
<div class="col-sm-12"> |
|
<div class="card"> |
|
<div class="card-header bg-primary text-white"> |
|
<div class="row"> |
|
<div class="col-lg-12"> |
|
<i class="fas fa-plus"></i> Richiesta Sconto |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<form id="form-add-sconto" class="needs-validation" action="javascript:saveSconto()" novalidate> |
|
<div class="card-body"> |
|
<input type="hidden" readonly name="ID" id="ID_SCONTO" value="<?= $sconto->ID ?>"> |
|
<div class="form-group"> |
|
<div class="row"> |
|
<div class='col-sm-3'> |
|
<label for="codice_fiscale">Passeggero:<span class="text-danger">* </span></label> |
|
<select <?= $state['disabled'] ?> class="form-control" required id="codice_fiscale" name="CODICE_FISCALE"> |
|
<option value="">...Seleziona...</option> |
|
<? foreach ($nucleo as $passeggero) { ?> |
|
<option value="<?= $passeggero['CODICE_FISCALE'] ?>" <?= $sconto->CODICE_FISCALE == $passeggero['CODICE_FISCALE'] ? "selected" : "" ?>><?= $passeggero['COGNOME'] . " " . $passeggero['NOME'] ?></option> |
|
<? } ?> |
|
</select> |
|
<div class="invalid-tooltip"> |
|
Il campo è obbligatorio! |
|
</div> |
|
<small class="text-info">Scegliere il passeggero dal nucleo familiare</small> |
|
</div> |
|
<div class='col-sm-3'> |
|
<label for="numero_volo" >Numero di Volo (es. ITY1786):<span class="text-danger">* </span></label> |
|
<input <?= $state['disabled'] ?> type="text" autocomplete="new-password" required class="form-control" id="numero_volo" name="NUMERO_VOLO" value="<?= $sconto->NUMERO_VOLO ?>"> |
|
<div class="invalid-tooltip"> |
|
Il campo è obbligatorio! |
|
</div> |
|
<small class="text-info">Inserire il numero del volo presente sulla carta d'imbarco</small> |
|
</div> |
|
<div class='col-sm-3'> |
|
<!----> |
|
<label for="DATA_ACQUISTO">Data Acquisto Biglietto:<span class="text-danger">* </span></label> |
|
<input <?= $state['disabled'] ?> type="date" required autocomplete="off" class="form-control" id="DATA_ACQUISTO" name="DATA_ACQUISTO" min='<?= MIN_DATA_ACQUISTO_BIGLIETTO_JS; ?>' max='<?= $oggi ?>' value="<?= (trim($sconto->DATA_ACQUISTO) != "" ? Date::dateOracleDateNascita($sconto->DATA_ACQUISTO, 'Y-m-d') : '') ?>"> |
|
<div class="invalid-tooltip"> |
|
Il campo è obbligatorio! |
|
</div> |
|
<small class="text-info">Inserire la data di acquisto del biglietto</small> |
|
</div> |
|
<div class='col-sm-3'> |
|
<label for="DATA_VOLO">Data Volo:<span class="text-danger">* </span></label> |
|
<input <?= $state['disabled'] ?> type="date" required autocomplete="off" class="form-control" id="DATA_VOLO" name="DATA_VOLO" min='<?= $meno30; ?>' max='<?= $oggi ?>' value="<?= (trim($sconto->DATA_VOLO) != "" ? Date::dateOracleDateNascita($sconto->DATA_VOLO, 'Y-m-d') : '') ?>"> |
|
<div class="invalid-tooltip"> |
|
Il campo è obbligatorio! |
|
</div> |
|
<small class="text-info">Inserire la data presente sulla carta d'imbarco</small> |
|
</div> |
|
|
|
</div> |
|
</div> |
|
<div class="row mt-3 mb-3"> |
|
<div class="col-sm-12"> |
|
<h5 class='text-danger text-center'> |
|
<u> |
|
<strong> |
|
<?= ASSUNZIONE_RESP_SCONTO ?> |
|
</strong> |
|
</u> |
|
</h5> |
|
</div> |
|
</div> |
|
<?php /* ?> |
|
<div class="form-group"> |
|
<div class="row"> |
|
<div class='col-sm-12'> |
|
<label for="CITTADINANZA">Stato di Cittadinanza del passeggero:<span class="text-danger">* </span></label> |
|
<select <?= $state['readonly'] ?> style="width: 100%" required class="form-control cfinput" id="CITTADINANZA" name="CITTADINANZA"></select> |
|
<div class="invalid-tooltip"> |
|
Il campo è obbligatorio! |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<?php */ ?> |
|
<div class="form-group"> |
|
<div class="row"> |
|
<div class='col-sm-6'> |
|
<label for="AEROPORTO_PARTENZA">Aeroporto di partenza:<span class="text-danger">* </span></label> |
|
<select <?= $state['readonly'] ?> style="width: 100%" required="" class="form-control cfinput" id="AEROPORTO_PARTENZA" name="AEROPORTO_PARTENZA"></select> |
|
<input type="hidden" id="AEROPORTO_PARTENZA_CODICE" name="AEROPORTO_PARTENZA_CODICE" value="<?= $sconto->AEROPORTO_PARTENZA_CODICE ?>"> |
|
<div class="invalid-tooltip"> |
|
Il campo è obbligatorio! |
|
</div> |
|
</div> |
|
<div class='col-sm-6'> |
|
<label for="AEROPORTO_DESTINAZIONE">Aeroporto di destinazione:<span class="text-danger">* </span></label> |
|
<select <?= $state['readonly'] ?> style="width: 100%" required="" class="form-control cfinput" id="AEROPORTO_DESTINAZIONE" name="AEROPORTO_DESTINAZIONE"></select> |
|
<input type="hidden" id="AEROPORTO_DESTINAZIONE_CODICE" name="AEROPORTO_DESTINAZIONE_CODICE" value="<?= $sconto->AEROPORTO_DESTINAZIONE_CODICE ?>"> |
|
<div class="invalid-tooltip"> |
|
Il campo è obbligatorio! |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="form-group"> |
|
<div class='row'> |
|
<div class='col-sm-6'> |
|
<label for="COMPAGNIA_AEREA">Compagnia Aerea:<span class="text-danger">* </span></label> |
|
<select <?= $state['readonly'] ?> style="width: 100%" required="" class="form-control" id="COMPAGNIA_AEREA" name="COMPAGNIA_AEREA"></select> |
|
<input type="hidden" id="COMPAGNIA_ID" name="COMPAGNIA_ID" value="<?= $sconto->COMPAGNIA_ID ?>"> |
|
<div class="invalid-tooltip"> |
|
Il campo è obbligatorio! |
|
</div> |
|
</div> |
|
<div class='col-sm-6'> |
|
<label for="costo_tratta">Costo del volo per singola tratta <span class="text-danger">*</span></label> |
|
<div class="input-group"> |
|
<div class="input-group-prepend"> |
|
<div class="input-group-text"><i class="fas fa-euro-sign"></i></div> |
|
</div> |
|
<input <?= $state['disabled'] ?> placeholder="Importo Minimo € 1" class="form-control " required autocomplete="new-password" name="COSTO_TRATTA" id="costo_tratta" value="<?= floatval($sconto->COSTO_TRATTA) > 0 ? number_format($sconto->COSTO_TRATTA, 2, ',', '') : "" ?>" step="0.01" min="0"> |
|
</div> |
|
<small class="text-danger">(Inserire il separatore solo per le DUE cifre decimali Es.: 56,74) <br/>Costo totale della singola tratta, comprensivo di tutte le tasse, spese e accessori fatturate dal vettore.</small> |
|
</div> |
|
</div> |
|
</div> |
|
<!--id="rigaForzaResidenza"--> |
|
<? |
|
$dataAcquisto = new DateTime($sconto->DATA_ACQUISTO); |
|
$dataAutodichiearazione = new DateTime(DATA_INIZIO_AUTODICHIARAZIONE_SCONTO); |
|
|
|
if ($dataAcquisto >= $dataAutodichiearazione) { |
|
?> |
|
<div class="form-group mb-3" id="rigaForzaResidenza"> |
|
<div class="row row-group card border-secondary mb-3 p-2"> |
|
<div class="col-lg-12"> |
|
<div class="custom-control custom-radio"> |
|
<input type="radio" <?= $state['disabled'] ?> required="" id="FORZA_RESIDENZA_1" name="FORZA_RESIDENZA" value="1" class="custom-control-input" <?= ($sconto->FORZA_RESIDENZA == 1 ? 'checked' : '') ?>> |
|
<label class="custom-control-label" for="FORZA_RESIDENZA_1"> |
|
<?= |
|
LABEL_FORZA_RESIDENZA . " " |
|
. "<span class='text-danger'><b><u>NON E' STATO APPLICATO</u></b></span> " . LABEL_FORZA_RESIDENZA_PARTE_2 . "" |
|
. " e pertanto <span class='text-danger'><b><u>chiedo l'applicazione dello stesso tramite questa piattaforma.</u></b></span>" |
|
?> |
|
</label> |
|
</div><br> |
|
<div class="custom-control custom-radio"> |
|
<input type="radio" <?= $state['disabled'] ?> required="" id="FORZA_RESIDENZA_0" name="FORZA_RESIDENZA" value="0" class="custom-control-input" <?= ($sconto->FORZA_RESIDENZA == 0 ? 'checked' : '') ?>> |
|
<label class="custom-control-label" for="FORZA_RESIDENZA_0"> |
|
<?= LABEL_FORZA_RESIDENZA . " è stato applicato " . LABEL_FORZA_RESIDENZA_PARTE_2 . "." ?> |
|
</label> |
|
</div> |
|
</div> |
|
</div> |
|
<!-- <div class='card'> |
|
<div class='card-body'> |
|
<div class="form-check"> |
|
<input class="form-check-input" type="checkbox" id="forza_residenza" name="FORZA_RESIDENZA" <?= ($sconto->FORZA_RESIDENZA == 1 ? "checked" : ""); ?>> |
|
<label class="form-check-label text-danger h5" for="forza_residenza"> |
|
<strong><?= LABEL_FORZA_RESIDENZA ?></strong> |
|
</label> |
|
</div> |
|
</div> |
|
</div>--> |
|
</div> |
|
<? } |
|
?> |
|
|
|
<? if ($sconto->STATO == RS_IN_ELABORAZIONE) { ?> |
|
<div class="form-group"> |
|
<div class="row"> |
|
<div class='col-sm-6'> |
|
<? |
|
if ($sconto->FILEPATH_BIGLIETTO == "") { |
|
?> |
|
<div class="row"> |
|
<div class="col-12"> |
|
<div class="card text-danger bg-light mb-3"> |
|
<div class="card-header">Biglietto Elettronico <span class="text-danger">* </span> [formato pdf, dimensione max 30mb]</div> |
|
<div class="card-body"> |
|
<div class="row p-1"> |
|
<div class="col-12"> |
|
<div class="progress mb-2"> |
|
<div id="progress_FILEPATH_BIGLIETTO" class="progress-bar bg-warning" role="progressbar" style="width: 0%" aria-valuenow="0" aria-valuemin="0" aria-valuemax="0"> |
|
<smal id="msg_FILEPATH_BIGLIETTO"></smal> |
|
</div> |
|
</div> |
|
<div class="input-group custom-file-button"> |
|
<label class="input-group-text" for="FILEPATH_BIGLIETTO">Scegli il file</label> |
|
<input type="file" accept="application/pdf" class="form-control" name="FILEPATH_BIGLIETTO" id="FILEPATH_BIGLIETTO" required> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<? } else { ?> |
|
<div class="row"> |
|
<div class="col-12"> |
|
<div class="card text-white bg-primary mb-3"> |
|
<div class="card-header">Biglietto Elettronico [formato pdf, dimensione max 30mb]</div> |
|
<div class="card-body"> |
|
<div class="row p-1"> |
|
<div class="col-10"> |
|
<div class="progress"> |
|
<div class="progress-bar bg-success" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100">Caricato</div> |
|
</div> |
|
</div> |
|
<div class="col-2"> |
|
<button type="button" class="btn btn-sm btn-success" onclick="openStreamer('<?= $sconto->ID ?>', 'biglietto', 'download_sconti');" alt="Download allegato" title="Download"><i class="fas fa-download"></i></button> |
|
</div> |
|
</div> |
|
<div class="row p-1"> |
|
<div class="col-12"> |
|
<div class="progress mb-2"> |
|
<div id="progress_FILEPATH_BIGLIETTO" class="progress-bar bg-warning" role="progressbar" style="width: 0%" aria-valuenow="0" aria-valuemin="0" aria-valuemax="0"> |
|
<smal id="msg_FILEPATH_BIGLIETTO"></smal> |
|
</div> |
|
</div> |
|
<div class="input-group custom-file-button"> |
|
<label class="input-group-text" for="FILEPATH_BIGLIETTO">Sostituisci il file</label> |
|
<input type="file" accept="application/pdf" class="form-control" name="FILEPATH_BIGLIETTO" id="FILEPATH_BIGLIETTO"> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<? } ?> |
|
</div> |
|
<div class='col-sm-6'> |
|
<? |
|
if ($sconto->FILEPATH_CARTAIMBARCO == "") { |
|
?> |
|
<div class="row"> |
|
<div class="col-12"> |
|
<div class="card text-danger bg-light mb-3"> |
|
<div class="card-header">Carta di imbarco <span class="text-danger">* </span> [formato pdf, dimensione max 30mb]</div> |
|
<div class="card-body"> |
|
<div class="row p-1"> |
|
<div class="col-12"> |
|
<div class="progress mb-2"> |
|
<div id="progress_FILEPATH_CARTAIMBARCO" class="progress-bar bg-warning" role="progressbar" style="width: 0%" aria-valuenow="0" aria-valuemin="0" aria-valuemax="0"> |
|
<smal id="msg_FILEPATH_CARTAIMBARCO"></smal> |
|
</div> |
|
</div> |
|
<div class="input-group custom-file-button"> |
|
<label class="input-group-text" for="FILEPATH_CARTAIMBARCO">Scegli il file</label> |
|
<input type="file" accept="application/pdf" class="form-control" name="FILEPATH_CARTAIMBARCO" id="FILEPATH_CARTAIMBARCO" required> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<? } else { ?> |
|
<div class="row"> |
|
<div class="col-12"> |
|
<div class="card text-white bg-primary mb-3"> |
|
<div class="card-header">Carta di imbarco [formato pdf, dimensione max 30mb]</div> |
|
<div class="card-body"> |
|
<div class="row p-1"> |
|
<div class="col-10"> |
|
<div class="progress"> |
|
<div class="progress-bar bg-success" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100">Caricato</div> |
|
</div> |
|
</div> |
|
<div class="col-2"> |
|
<button type="button" class="btn btn-sm btn-success" onclick="openStreamer('<?= $sconto->ID ?>', 'imbarco', 'download_sconti');" alt="Download allegato" title="Download"><i class="fas fa-download"></i></button> |
|
</div> |
|
</div> |
|
<div class="row p-1"> |
|
<div class="col-12"> |
|
<div class="progress mb-2"> |
|
<div id="progress_FILEPATH_CARTAIMBARCO" class="progress-bar bg-warning" role="progressbar" style="width: 0%" aria-valuenow="0" aria-valuemin="0" aria-valuemax="0"> |
|
<smal id="msg_FILEPATH_CARTAIMBARCO"></smal> |
|
</div> |
|
</div> |
|
<div class="input-group custom-file-button"> |
|
<label class="input-group-text" for="FILEPATH_CARTAIMBARCO">Sostituisci il file</label> |
|
<input type="file" accept="application/pdf" class="form-control" name="FILEPATH_CARTAIMBARCO" id="FILEPATH_CARTAIMBARCO"> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<? } ?> |
|
</div> |
|
</div> |
|
</div> |
|
<? } ?> |
|
<div class="card-footer"> |
|
<div class="row"> |
|
<div class="col-sm-12"> |
|
<span class="text-danger h5"><b>* I campi contrassegnati con l'asterisco sono obbligatori</b></span> |
|
</div> |
|
</div> |
|
<div class="row "> |
|
<div class="offset-sm-2 col-sm-10 text-right "> |
|
<? if ($sconto->STATO == RS_IN_ELABORAZIONE) { ?> |
|
<button type="submit" class="btn btn-md btn-success"><i class="fas fa-save"></i> Salva</button> |
|
<? } ?> |
|
|
|
<button type="button" id="btn-dashboard" class="btn btn-md btn-primary" onclick="goBack()"><i class="fas fa-plane"></i> Torna alla sezione richieste sconti</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</form> |
|
</div> |
|
</div> |
|
</div> |
|
</main> |
|
<? include_once ROOT . 'layout/footer.php'; ?> |
|
</body> |
|
<script> |
|
|
|
var id = "<?= $id_sconto ?>"; |
|
var isModified = false; |
|
var compagnieAderentiGenerali = "<?= COMPAGNIE_ADERENTI ?>"; |
|
var scaliGenerali = "<?= SCALI_FASE1 ?>"; |
|
var compagnieAderenti = compagnieAderentiGenerali.split("|"); |
|
var scaliFase1 = scaliGenerali.split("|"); |
|
$.fn.alphanum.setNumericSeparators({ |
|
thousandsSeparator: " ", |
|
decimalSeparator: "," |
|
}); |
|
$('#costo_tratta').numeric({ |
|
allowThouSep: false, |
|
maxPreDecimalPlaces: 5, |
|
maxDecimalPlaces: 2, |
|
min: <?= IMPORTO_MINIMO_VOLO ?>, |
|
max: 1000, |
|
}); |
|
$('#form-add-sconto :input').each(function () { |
|
|
|
<? |
|
if ($sconto->STATO == RS_IN_ELABORAZIONE) { |
|
?> |
|
|
|
$(this).change(function () { |
|
isModified = true; |
|
if ($(this)[0].type === 'date') { |
|
verifyDateField($(this)); |
|
} else { |
|
$(this).addClass('is-valid'); |
|
} |
|
}); |
|
<? |
|
} |
|
?> |
|
}); |
|
$(document).ready(function () { |
|
if (compagnieAderenti.includes(<?= $sconto->COMPAGNIA_ID ?>)) { |
|
$("#rigaForzaResidenza").attr("hidden", false); |
|
} else { |
|
$("#rigaForzaResidenza").attr("hidden", true); |
|
} |
|
$("#FILEPATH_BIGLIETTO").change(function (e) { |
|
$("#msg_FILEPATH_BIGLIETTO").empty(); |
|
if (e.target.files[0]) { |
|
$("#progress_FILEPATH_BIGLIETTO").css("width", "100%"); |
|
$("#msg_FILEPATH_BIGLIETTO").append('File pronto per essere salvato'); |
|
} else { |
|
$("#progress_FILEPATH_BIGLIETTO").css("width", "0%"); |
|
} |
|
}); |
|
$("#FILEPATH_CARTAIMBARCO").change(function (e) { |
|
$("#msg_FILEPATH_CARTAIMBARCO").empty(); |
|
if (e.target.files[0]) { |
|
$("#progress_FILEPATH_CARTAIMBARCO").css("width", "100%"); |
|
$("#msg_FILEPATH_CARTAIMBARCO").append('File pronto per essere salvato'); |
|
} else { |
|
$("#progress_FILEPATH_CARTAIMBARCO").css("width", "0%"); |
|
} |
|
}); |
|
$("#AEROPORTO_PARTENZA").select2({ |
|
language: "it", |
|
minimumInputLength: 0, |
|
ajax: { |
|
url: WS_CALL + "?module=tratte_aeroporti&action=searchAeroporto", |
|
type: "post", |
|
dataType: 'json', |
|
delay: 250, |
|
data: function (params) { |
|
return { |
|
searchTerm: params.term // search term |
|
}; |
|
}, |
|
processResults: function (response) { |
|
return { |
|
results: response |
|
}; |
|
}, |
|
cache: true |
|
} |
|
}); |
|
$('#AEROPORTO_PARTENZA').on('select2:select', function (e) { |
|
|
|
var data = e.params.data; |
|
if (data) { |
|
$("#COMPAGNIA_AEREA").val(''); |
|
//console.log($("#COMPAGNIA_AEREA")); |
|
$("#AEROPORTO_DESTINAZIONE").val(''); |
|
$("#AEROPORTO_DESTINAZIONE_CODICE").val(''); |
|
$("#AEROPORTO_PARTENZA_CODICE").val(data.codice); |
|
$("#AEROPORTO_DESTINAZIONE").select2({ |
|
language: "it", |
|
minimumInputLength: 0, |
|
ajax: { |
|
url: WS_CALL + "?module=tratte_aeroporti&action=searchAeroportoRitorno&codice=" + data.codice, |
|
type: "post", |
|
dataType: 'json', |
|
delay: 250, |
|
data: function (params) { |
|
return { |
|
searchTerm: params.term // search term |
|
}; |
|
}, |
|
processResults: function (response) { |
|
return { |
|
results: response |
|
}; |
|
}, |
|
cache: true |
|
} |
|
}); |
|
} else { |
|
functionSwall('error', "Selezionare un Aeroporto presente nella lista sottostante!", 'error'); |
|
$("#AEROPORTO_DESTINAZIONE").val(""); |
|
$("#AEROPORTO_PARTENZA_CODICE").val(""); |
|
} |
|
}); |
|
$('#AEROPORTO_DESTINAZIONE').on('select2:select', function (e) { |
|
var data = e.params.data; |
|
if (data) { |
|
$("#AEROPORTO_DESTINAZIONE_CODICE").val(data.codice); |
|
var partenza = $("#AEROPORTO_PARTENZA_CODICE").val(); |
|
var destinazione = data.codice; |
|
$("#COMPAGNIA_AEREA").val(''); |
|
$("#COMPAGNIA_ID").val(''); |
|
$("#COMPAGNIA_AEREA").select2({ |
|
language: "it", |
|
minimumInputLength: 0, |
|
ajax: { |
|
url: WS_CALL + "?module=tratte_aeroporti&action=searchCompagnie&partenza=" + partenza + "&destinazione=" + destinazione, |
|
type: "post", |
|
dataType: 'json', |
|
delay: 250, |
|
data: function (params) { |
|
return { |
|
searchTerm: params.term // search term |
|
}; |
|
}, |
|
processResults: function (response) { |
|
return { |
|
results: response |
|
}; |
|
}, |
|
cache: true |
|
} |
|
}); |
|
} else { |
|
functionSwall('error', "Selezionare un Aeroporto presente nella lista sottostante!", 'error'); |
|
$("#AEROPORTO_DESTINAZIONE_CODICE").val(""); |
|
} |
|
}); |
|
$('#COMPAGNIA_AEREA').on('select2:select', function (e) { |
|
var data = e.params.data; |
|
if (data) { |
|
$("#COMPAGNIA_ID").val(data.codice); |
|
if (compagnieAderenti.includes(data.codice) && (scaliFase1.includes($("#AEROPORTO_DESTINAZIONE_CODICE").val()) && scaliFase1.includes($("#AEROPORTO_PARTENZA_CODICE").val()))) { |
|
$("#rigaForzaResidenza").attr("hidden", false); |
|
} else { |
|
$("#rigaForzaResidenza").attr("hidden", true); |
|
} |
|
} else { |
|
functionSwall('error', "Selezionare un Aeroporto presente nella lista sottostante!", 'error'); |
|
$("#COMPAGNIA_ID").val(""); |
|
} |
|
}); |
|
<? |
|
if ($sconto->AEROPORTO_PARTENZA != "") { |
|
?> |
|
$("#AEROPORTO_PARTENZA").select2("trigger", "select", { |
|
data: { |
|
id: '<?= addslashes($sconto->AEROPORTO_PARTENZA) ?>', |
|
text: '<?= addslashes($sconto->AEROPORTO_PARTENZA) ?>' |
|
} |
|
|
|
}); |
|
$("#AEROPORTO_PARTENZA_CODICE").val('<?= $sconto->AEROPORTO_PARTENZA_CODICE ?>'); |
|
<? |
|
} |
|
if ($sconto->AEROPORTO_DESTINAZIONE != "") { |
|
?> |
|
$("#AEROPORTO_DESTINAZIONE").select2("trigger", "select", { |
|
data: { |
|
id: '<?= addslashes($sconto->AEROPORTO_DESTINAZIONE) ?>', |
|
text: '<?= addslashes($sconto->AEROPORTO_DESTINAZIONE) ?>' |
|
} |
|
}); |
|
$("#AEROPORTO_DESTINAZIONE_CODICE").val('<?= $sconto->AEROPORTO_DESTINAZIONE_CODICE ?>'); |
|
<? } ?> |
|
|
|
<? |
|
if ($sconto->COMPAGNIA_AEREA != "") { |
|
?> |
|
$("#COMPAGNIA_AEREA").select2("trigger", "select", { |
|
data: { |
|
id: '<?= addslashes($sconto->COMPAGNIA_AEREA) ?>', |
|
text: '<?= addslashes($sconto->COMPAGNIA_AEREA) ?>' |
|
} |
|
}); |
|
if (compagnieAderenti.includes('<?= addslashes($sconto->COMPAGNIA_ID) ?>') && (scaliFase1.includes('<?= addslashes($sconto->AEROPORTO_PARTENZA_CODICE) ?>') && scaliFase1.includes('<?= addslashes($sconto->AEROPORTO_DESTINAZIONE_CODICE) ?>'))) { |
|
$("#rigaForzaResidenza").attr("hidden", false); |
|
} else { |
|
$("#rigaForzaResidenza").attr("hidden", true); |
|
} |
|
$("#COMPAGNIA_ID").val('<?= addslashes($sconto->COMPAGNIA_ID) ?>'); |
|
$("#AEROPORTO_DESTINAZIONE_CODICE").val('<?= $sconto->AEROPORTO_DESTINAZIONE_CODICE ?>'); |
|
<? } ?> |
|
}); |
|
<? if ($sconto->STATO == RS_IN_ELABORAZIONE) { ?> |
|
function saveSconto() { |
|
$('#loader').show(); |
|
var form = document.getElementById('form-add-sconto'); |
|
var formInvio = new FormData(form); |
|
formInvio.append('module', 'sconto'); |
|
formInvio.append('action', 'saveSconto'); |
|
postdata(WS_CALL, formInvio, function (response) { |
|
var risp = jQuery.parseJSON(response); |
|
if (risp.esito === 1) { |
|
$('#loader').hide(); |
|
isModified = false; |
|
Swal.fire({ |
|
type: 'success', |
|
title: 'OK', |
|
text: "Operazione completata con successo", |
|
showCancelButton: false, |
|
confirmButtonColor: '#3085d6', |
|
confirmButtonText: 'OK', |
|
allowOutsideClick: false |
|
}).then((result) => { |
|
goBack(); |
|
}); |
|
} else { |
|
$('#loader').hide(); |
|
functionSwall('error', risp.erroreDescrizione, ""); |
|
} |
|
}); |
|
} |
|
<? } ?> |
|
function goBack() { |
|
|
|
if (isModified) { |
|
Swal.fire({ |
|
title: "Attenzione", |
|
text: "Sei sicuro di volere procedere? Eventuali modifiche non salvate andranno perse.", |
|
icon: 'warning', |
|
showCancelButton: true, |
|
confirmButtonColor: '#3085d6', |
|
cancelButtonColor: '#d33', |
|
confirmButtonText: 'OK', |
|
cancelButtonText: 'Annulla' |
|
}).then((result) => { |
|
if (result.value) { |
|
$.redirect(HTTP_PRIVATE_SECTION + "sconti.php"); |
|
} |
|
}); |
|
} else { |
|
$.redirect(HTTP_PRIVATE_SECTION + "sconti.php"); |
|
} |
|
|
|
|
|
} |
|
|
|
function openStreamer(id, t, action) { |
|
var object = { |
|
id: id, |
|
module: 'streamerFile', |
|
action: action, |
|
type: t |
|
}; |
|
$.redirect(WS_CALL, object, "POST"); |
|
} |
|
|
|
function verifyDateField(t) { |
|
var arr1 = t[0].min.split("-"); |
|
var arr2 = t[0].max.split("-"); |
|
var arr3 = t.val().split("-"); |
|
var d1 = new Date(arr1[0], arr1[1] - 1, arr1[2]); |
|
var d2 = new Date(arr2[0], arr2[1] - 1, arr2[2]); |
|
var d3 = new Date(arr3[0], arr3[1] - 1, arr3[2]); |
|
var r1 = d1.getTime(); |
|
var r2 = d2.getTime(); |
|
var r3 = d3.getTime(); |
|
if (Number.isNaN(r3)) { |
|
t.removeClass('is-valid').addClass('is-invalid'); |
|
} else { |
|
if (r1 > r3 || r3 > r2) { |
|
t.removeClass('is-valid').addClass('is-invalid'); |
|
} else { |
|
t.removeClass('is-invalid').addClass('is-valid'); |
|
} |
|
} |
|
} |
|
|
|
function redirectDomanda() { |
|
var object = { |
|
ID: id |
|
}; |
|
if (isModified) { |
|
Swal.fire({ |
|
title: "Attenzione", |
|
text: "Sicuro di volere procedere? Eventuali modifiche non salvate andranno perse.", |
|
icon: 'warning', |
|
showCancelButton: true, |
|
confirmButtonColor: '#3085d6', |
|
cancelButtonColor: '#d33', |
|
confirmButtonText: 'OK' |
|
}).then((result) => { |
|
if (result.value) { |
|
$.redirect("page_sconto.php", object); |
|
} |
|
}); |
|
} else { |
|
$.redirect("page_sconto.php", object); |
|
} |
|
} |
|
|
|
<? if ($datiIntegrazione['STATO'] == RI_INTEGRAZIONE_IN_ATTESA) { ?> |
|
|
|
function saveIntegrazione() { |
|
Swal.fire({ |
|
title: "Attenzione", |
|
html: "Sei sicuro di volere procedere?<br>Dopo l'invio della documentazione non sarà più possibile apportare modifiche ai dati sottomessi.", |
|
icon: 'warning', |
|
showCancelButton: true, |
|
confirmButtonColor: '#3085d6', |
|
cancelButtonColor: '#d33', |
|
confirmButtonText: 'OK', |
|
cancelButtonText: 'Annulla' |
|
}).then((result) => { |
|
if (result.value) { |
|
$('#loader').show(); |
|
var form = document.getElementById('form-add-integrazione'); |
|
var formInvio = new FormData(form); |
|
formInvio.append('module', 'sconto'); |
|
formInvio.append('action', 'saveIntegrazione'); |
|
postdata(WS_CALL, formInvio, function (response) { |
|
var risp = jQuery.parseJSON(response); |
|
if (risp.esito === 1) { |
|
$('#loader').hide(); |
|
isModified = false; |
|
Swal.fire({ |
|
type: 'success', |
|
title: 'OK', |
|
text: "Operazione completata con successo", |
|
showCancelButton: false, |
|
confirmButtonColor: '#3085d6', |
|
confirmButtonText: 'OK', |
|
allowOutsideClick: false |
|
}).then((result) => { |
|
goBack(); |
|
}); |
|
} else { |
|
$('#loader').hide(); |
|
functionSwall('error', risp.erroreDescrizione, ""); |
|
} |
|
}); |
|
} |
|
}); |
|
|
|
} |
|
|
|
<? } ?> |
|
$(window).on('load', function () { |
|
setTimeout(() => $('html, body').scrollTop(0), 200); |
|
}); |
|
|
|
|
|
</script> |
|
</html>
|