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.
 
 
 

412 righe
19 KiB

<?php
$mode = $_REQUEST['action'];
switch ($mode) {
case 'saveSconto':
saveSconto();
break;
case 'delSconto':
deleteSconto();
break;
case 'listSconti':
listSconti();
break;
case 'saveIntegrazione':
saveIntegrazione();
break;
}
function saveSconto() {
global $con, $LoggedAccount;
$transaction = false;
$controllo = true;
$con->db_transactionStart();
$response = Utils::initDefaultResponse(-999, '');
// VERIFICO SE SONO NEL PERIODO DELLA PRESENTAZIONE DELLA DOMANDA
if (!Utils::isStatoSportelloPreparazione()) {
$return['erroreDescrizione'] = "Accesso non consentito (0)";
exit(json_encode($return));
}
$istanza = Domanda::loadDomandaFromAccount();
$idDomandaSconto = intval(Utils::get_filter_int_POST('ID'));
if ($idDomandaSconto > 0) {
$idIstanzaMia = false;
foreach ($istanza->richieste_sconti as $mieiSconti) {
if ($mieiSconti['ID'] == $idDomandaSconto) {
$idIstanzaMia = true;
}
}
} else {
$idIstanzaMia = true;
}
if (!$idIstanzaMia) {
$return['erroreDescrizione'] = "Accesso non consentito (0)";
exit(json_encode($return));
}
// Utils::print_array($istanza);
// exit();
DomandaSconti::checkVerificaDatiPreSalvataggio();
$richiesta = new DomandaSconti($_POST);
########################################################
if ($_FILES) {
$md5FileBiglietto = File::getSha256File($_FILES['FILEPATH_BIGLIETTO']['tmp_name']);
$md5FileCartaImbarco = File::getSha256File($_FILES['FILEPATH_CARTAIMBARCO']['tmp_name']);
$folder = $istanza->generateDirForUpload(ROOT_UPLOAD_PRESENTAZIONE, 'biglietti');
if ($folder) {
if ($_FILES['FILEPATH_BIGLIETTO']['size'] > 0) {
$respBiglietto = File::checkFileAllegato('FILEPATH_BIGLIETTO', MAX_SIZE_FILE, 'pdf');
if ($respBiglietto['esito'] == 1) {
$fileNameBiglietto = time() . "_" . $richiesta->CODICE_FISCALE . "_BE_" . File::GetValidName($richiesta->NUMERO_VOLO) . "_" . File::GetValidFilename($_FILES['FILEPATH_BIGLIETTO']['name']);
$fileFullPathBiglietto = $folder . "/" . $fileNameBiglietto;
if (move_uploaded_file($_FILES['FILEPATH_BIGLIETTO']['tmp_name'], $fileFullPathBiglietto)) {
if ($richiesta->FILEPATH_BIGLIETTO != "") {
unlink($folder . "/" . $richiesta->FILEPATH_BIGLIETTO);
}
$richiesta->FILEPATH_BIGLIETTO = $fileNameBiglietto;
$richiesta->FILEPATH_BIGLIETTO_HASH = $md5FileBiglietto;
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = "Al momento non è possibile allegare il file, contattare un amministratore! (10996)";
exit(json_encode($response));
}
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = $respBiglietto['erroreDescrizione'];
exit(json_encode($response));
}
}
if ($_FILES['FILEPATH_CARTAIMBARCO']['size'] > 0) {
$respImbarco = File::checkFileAllegato('FILEPATH_CARTAIMBARCO', MAX_SIZE_FILE, 'pdf');
if ($respImbarco['esito'] == 1) {
$fileNameImbarco = time() . "_" . $richiesta->CODICE_FISCALE . "_CI_" . File::GetValidName($richiesta->NUMERO_VOLO) . "_" . File::GetValidFilename($_FILES['FILEPATH_CARTAIMBARCO']['name']);
$fileFullPathImbarco = $folder . "/" . $fileNameImbarco;
if (move_uploaded_file($_FILES['FILEPATH_CARTAIMBARCO']['tmp_name'], $fileFullPathImbarco)) {
if ($richiesta->FILEPATH_CARTAIMBARCO != "") {
unlink($folder . "/" . $richiesta->FILEPATH_CARTAIMBARCO);
}
$richiesta->FILEPATH_CARTAIMBARCO = $fileNameImbarco;
$richiesta->FILEPATH_CARTAIMBARCO_HASH = $md5FileCartaImbarco;
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = "Al momento non è possibile allegare il file, contattare un amministratore! (10996)";
exit(json_encode($response));
}
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = $respImbarco['erroreDescrizione'];
exit(json_encode($response));
}
}
}
}
########################################################
$controlliRichiesta = $richiesta->checkDatiPreSave();
if ($controlliRichiesta['checkDati']) {
$verificaVolo = $richiesta->VerificaDataVolo();
if ($verificaVolo['esito'] == 1) {
$response = $richiesta->Save();
if ($response['esito'] == 1) {
$transaction = true;
}
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = $verificaVolo['erroreDescrizione'];
}
} else {
$response['erroreDescrizione'] = ("Verificare i seguenti campi: " . $controlliRichiesta['txt_dati_mancanti']);
}
if ($transaction) {
$con->db_transactionCommit();
} else {
$con->db_transactionRollback();
######################################
unlink($fileFullPathBiglietto);
unlink($fileFullPathImbarco);
######################################
}
exit(json_encode($response));
}
function deleteSconto() {
global $con, $LoggedAccount;
$transaction = false;
$con->db_transactionStart();
$response = Utils::initDefaultResponse(-999, '');
// VERIFICO SE SONO NEL PERIODO DELLA PRESENTAZIONE DELLA DOMANDA
if (!Utils::isStatoSportelloPreparazione()) {
$return['erroreDescrizione'] = "Accesso non consentito (0)";
exit(json_encode($return));
}
$id_sconto = Utils::get_filter_int_POST('id_sconto');
$sconto = new DomandaSconti($id_sconto);
$istanza = Domanda::loadDomandaFromAccount();
$folder = $istanza->generateDirForUpload(ROOT_UPLOAD_PRESENTAZIONE, 'biglietti');
if ($sconto->isErasable()) {
$old_path_be = $sconto->FILEPATH_BIGLIETTO;
$old_path_ci = $sconto->FILEPATH_CARTAIMBARCO;
$response = $sconto->Delete();
if ($response['esito'] == 1) {
$transaction = true;
}
} else {
$response['erroreDescrizione'] = 'Sconto non cancellabile';
}
if ($transaction) {
unlink($folder . "/" . $old_path_be);
unlink($folder . "/" . $old_path_ci);
$con->db_transactionCommit();
} else {
$con->db_transactionRollback();
}
exit(json_encode($response));
}
function listSconti() {
// error_reporting(E_ALL);
//ini_set('display_errors', 1);
global $LoggedAccount, $STATI_RICHIESTE_SCONTI, $ICONE_STATI_RICHIESTE_SCONTI;
$response = array();
$domanda = Domanda::loadDomandaFromAccount();
$idDomanda = $domanda->ID;
if ($idDomanda > 0 && Utils::isStatoSportelloPreparazione(true)) {
$draw = $_POST['draw'];
$row = $_POST['start'];
$rowperpage = $_POST['length']; // Rows display per page
$columnIndex = $_POST['order'][0]['column']; // Column index
$columnName = $_POST['columns'][$columnIndex]['data']; // Column name
$columnSortOrder = $_POST['order'][0]['dir']; // asc or desc
$searchValue = $_POST['search']['value']; // Search value
$data = array();
$searchArray = array();
$data_modifica = "";
//$countAllegatiCompleti = 0;
//$iTotalRecordsObbligatori = 0;
## Search
$totCount = false;
$searchQuery = "";
if ($_POST['columns'][7]['search']['value'] != '') {
$stato = intval($_POST['columns'][7]['search']['value']);
$searchQuery .= " AND STATO = :STATO ";
} else {
$stato = 0;
$searchQuery .= " AND STATO >= :STATO ";
}
$searchQuery .= " AND ID_DOMANDA = :ID_DOMANDA "; //
$searchArray = array(
'ID_DOMANDA' => $domanda->ID,
'STATO' => $stato,
);
/* if ($searchValue != '') {
$searchQuery .= " AND ( REGEXP_LIKE(DOCUMENTO_NOME,:DOCUMENTO_NOME,'i')) ";
$searchArray['DOCUMENTO_NOME'] = $searchValue;
} */
$res = DomandaSconti::LoadDataTable($searchQuery, $searchArray, $columnName, $columnSortOrder, $row, $rowperpage);
//Utils::print_array($res);exit();
foreach ($res['empRecords'] as $row) {
$btn = '';
$btn_downoload = '';
if ($row['STATO'] == RS_IN_ELABORAZIONE) {
$btn = '<button type="button" onclick="goToSconto(\'page_sconto.php\', \'' . $row['ID'] . '\')" class="btn btn-sm btn-warning"><i class="fas fa-edit"></i></button>';
$btn_downoload = '<button type="button" onclick="delSconto(\'' . $row['ID'] . '\')" class="btn btn-sm btn-danger"><i class="fas fa-trash-alt"></i></button>';
} else {
$btn = '<button type="button" onclick="goToSconto(\'page_sconto.php\', \'' . $row['ID'] . '\')" class="btn btn-sm btn-warning"><i class="fas fa-eye"></i></button>';
}
$data_richiesta = '';
if ($row['DATA_REGISTRAZIONE'] != "") {
$data_richiesta = Date::dateOracleTimeStamp($row['DATA_REGISTRAZIONE'], 'd-m-Y');
}
$data_acquisto = '';
if ($row['DATA_ACQUISTO'] != "") {
$data_acquisto = Date::dateOracleDate($row['DATA_ACQUISTO'], 'd-m-Y');
}
$data_volo = '';
if ($row['DATA_VOLO'] != "") {
$data_volo = Date::dateOracleDate($row['DATA_VOLO'], 'd-m-Y');
}
$tratta = '<small class="text-success"><i class="fas fa-ticket-alt"></i>&nbsp;' . $row['NUMERO_VOLO'] . '</small><br/>';
$tratta .= '<small>Compagnia: <b>' . $row['COMPAGNIA_AEREA'] . '</b></small><br/>';
$tratta .= '<small class="text-info"><i class="fas fa-plane-departure"></i>&nbsp;' . $row['AEROPORTO_PARTENZA'] . '</small> - ';
$tratta .= '<small class="text-success"><i class="fas fa-plane-arrival"></i>&nbsp;' . $row['AEROPORTO_DESTINAZIONE'] . '</small><br/>';
$tratta .= '<small class="text-primary"><i class="fas fa-euro-sign"></i>&nbsp;' . number_format($row['COSTO_TRATTA'], 2, ',', '.') . '</small>';
if ($row['STATO'] == RS_EROGATA) {
$scontoTotale = number_format($row['SCONTO_TOTALE'], 2, ',', '.');
if ($row['SCONTO_TOTALE'] <= 0) {
$scontoTotale .= $ICONE_STATI_RICHIESTE_SCONTI[RS_NON_AVENTE_DIRITTO];
}
} else {
$scontoTotale = $ICONE_STATI_RICHIESTE_SCONTI[$row['STATO']];
}
$statoSconto = $ICONE_STATI_RICHIESTE_SCONTI[$row['STATO']];
if (($row['STATO'] == RS_EROGATA || $row['STATO'] == RS_APPROVATA) && $row['SCONTO_TOTALE'] <= 0) {
$statoSconto = $ICONE_STATI_RICHIESTE_SCONTI[RS_NON_AVENTE_DIRITTO];
$scontoTotale = number_format($row['SCONTO_TOTALE'], 2, ',', '.');
$scontoTotale .= $ICONE_STATI_RICHIESTE_SCONTI[RS_NON_AVENTE_DIRITTO];
} else {
if (intval($row['LOTTO']) > 0 && $row['STATO'] == RS_EROGATA) {
$datiDrs = DomandaSconti::getDrsFromLotto($row['LOTTO']);
if ($datiDrs['NUMERO_DRS'] != "" && $datiDrs['DATA_DRS'] != "") {
$statoSconto .= "<br><strong>DRS: </strong>" . $datiDrs['NUMERO_DRS'] . "<br><strong>DATA: </strong>" . Date::convertData($datiDrs['DATA_DRS']);
if ($datiDrs['FILEPATH'] != "") {
//$statoSconto .= "<br>" . "<a class='text-primary' on href='" . BASE_HTTP . "assets/docs/" . $datiDrs['FILEPATH'] . "' download>[Visualizza DRS]</a>";
$btnDrs = '<button type="button" onclick="openStreamer(\'' . trim($datiDrs['FILEPATH']) . '\')" class="btn btn-sm btn-success">[Visualizza DRS]</button>';
$statoSconto .= "<br>" . $btnDrs;
}
}
}
}
if ($row['NOTE'] != "") {
$statoSconto .= "<br>" . $row['NOTE'];
}
$gruopButton = '<div class="btn-group" role="group" aria-label="Basic example">' . $btn . $btn_downoload . '</div>';
$data[] = array(
"ID" => $row['ID'],
"DATA_RICHIESTA" => $data_richiesta,
"BENEFICIARIO" => $row['CODICE_FISCALE'], //$row['COGNOME'] . " " .$row['NOME']. " ".
"DATA_ACQUISTO" => $data_acquisto,
"DATA_VOLO" => $data_volo,
"TRATTA" => $tratta,
"SCONTO_TOTALE" => $scontoTotale,
"STATO" => $statoSconto,
"OP" => $gruopButton//($domanda->STATO > STATO_DOMANDA_IN_PREPARAZIONE ? '' : $btn_genera . $btn)
);
}
## Response
$response = array(
"draw" => intval($draw),
"iTotalRecords" => $res['iTotalRecords'],
"iTotalDisplayRecords" => $res['iTotalDisplayRecords'],
"aaData" => $data
);
//
}
exit(json_encode($response));
}
function saveIntegrazione() {
// error_reporting(E_ALL);
// ini_set('display_errors', 1);
global $con, $LoggedAccount;
// $verificaCsrf = Utils::verifyCsrfToken($_SESSION['Token'], 'csrf_contratti', $_POST['csrf_contratti']);
// if (!$verificaCsrf) {
// $return['erroreDescrizione'] = "Operazione non consentita - 159";
// exit(json_encode($return));
// }
$transaction = false;
$con->db_transactionStart();
$response = Utils::initDefaultResponse(-999, '');
if (!Utils::isStatoSportelloPreparazione()) {
$return['erroreDescrizione'] = "Accesso non consentito (0)";
exit(json_encode($return));
}
$istanza = Domanda::loadDomandaFromAccount();
RichiestaIntegrazione::checkVerificaDatiPreSalvataggio();
$integrazione = new RichiestaIntegrazione($_POST['ID_INTEGRAZIONE']);
$sconto = new DomandaSconti($_POST['ID_DOMANDA_SCONTI']);
if ($sconto->ID > 0 && $sconto->ID_DOMANDA != $istanza->ID) {
$return['erroreDescrizione'] = "Accesso non consentito (1)";
exit(json_encode($return));
}
if ($sconto->ID > 0 && $sconto->ID != $integrazione->ID_DOMANDA_SCONTI) {
$return['erroreDescrizione'] = "Accesso non consentito (2)";
exit(json_encode($return));
}
########################################################
if ($_FILES['FILEPATH_RISPOSTA']['size'] > 0) {
$md5FileBiglietto = File::getSha256File($_FILES['FILEPATH_RISPOSTA']['tmp_name']);
$folder = $istanza->generateDirForUpload(ROOT_UPLOAD_PRESENTAZIONE, 'integrazione');
if ($folder) {
if ($_FILES['FILEPATH_RISPOSTA']) {
$respBiglietto = File::checkFileAllegato('FILEPATH_RISPOSTA', MAX_SIZE_FILE, 'pdf');
if ($respBiglietto['esito'] == 1) {
$fileNameBiglietto = time() . "_" . $LoggedAccount->CODICE_FISCALE . "_INT_" . $integrazione->ID . "_" . File::GetValidFilename($_FILES['FILEPATH_RISPOSTA']['name']);
$fileFullPathBiglietto = $folder . "/" . $fileNameBiglietto;
if (copy($_FILES['FILEPATH_RISPOSTA']['tmp_name'], $fileFullPathBiglietto)) {
if ($integrazione->FILEPATH_RISPOSTA != "") {
unlink($folder . "/" . $integrazione->FILEPATH_BIGLIETTO);
}
$integrazione->FILEPATH_RISPOSTA = $fileNameBiglietto;
// $integrazione->FILEPATH_BIGLIETTO_HASH = $md5FileBiglietto;
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = "Al momento non è possibile allegare il file, contattare un amministratore! (10996)";
exit(json_encode($response));
}
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = $respBiglietto['erroreDescrizione'];
exit(json_encode($response));
}
}
}
}
########################################################
// Utils::print_array($integrazione);
// EXIT();
$integrazione->NOTE_UTENTE = $_POST['NOTE_UTENTE'];
$integrazione->STATO = RI_INTEGRAZIONE_INSERITO;
$integrazione->DATA_CARICAMENTO = (new DateTime())->format('d-M-y');
$controlliRichiesta = $integrazione->checkDatiPreSave();
if ($controlliRichiesta['checkDati']) {
$response = $integrazione->Save();
if ($response['esito'] == 1) {
$destinatario_email = EMAIL_DIPARTIMENTO;
$oggetto = "SiciliaPEI - Bando Caro Voli - Richiesta Integrazione Documentale - Sconto nr. " . $sconto->ID;
$testo = "E' presente una nuova risposta alla richiesta di integrazione per lo sconto nr. " . $sconto->ID . ", "
. "presentato dall'utente con codice fiscale " . $LoggedAccount->CODICE_FISCALE . ".<br/><br/>"
. "Per maggiori informazioni, consultare il portale <b><u>https://siciliapei.regione.sicilia.it/bandocarovoli_be/</u></b>.<br/><br/>Cordiali saluti.";
$invioEmail = EmailSms::sendGenericEmail($destinatario_email, $oggetto, $testo);
$queue = new IntegrazioniEmailQueue();
$queue->ID_RICHIESTA = $integrazione->ID;
$queue->DESTINATARIO = EMAIL_DIPARTIMENTO;
$queue->OGGETTO = $oggetto;
$queue->CORPO = $testo;
$queue->STATO = $invioEmail;
$queue->DATA_INVIO = date(FORMAT_TIMESTAMP_ORACLE);
$eseguo = $queue->Save();
if ($eseguo['esito'] == 1) {
$transaction = true;
} else {
$response['erroreDescrizione'] = "Errore durante la generazione della coda mail di integrazione.";
}
}
} else {
$response['erroreDescrizione'] = ("Verificare i seguenti campi: " . $controlliRichiesta['txt_dati_mancanti']);
}
if ($transaction) {
$con->db_transactionCommit();
} else {
$con->db_transactionRollback();
######################################
unlink($fileFullPathBiglietto);
######################################
}
exit(json_encode($response));
}