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.
 
 
 

275 righe
12 KiB

<?php
$mode = $_REQUEST['action'];
switch ($mode) {
case 'saveSconto':
saveSconto();
break;
case 'delSconto':
deleteSconto();
break;
case 'listSconti':
listSconti();
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();
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']) {
$respBiglietto = File::checkFileAllegato('FILEPATH_BIGLIETTO', MAX_SIZE_FILE, 'pdf');
if ($respBiglietto['esito'] == 1) {
$fileNameBiglietto = time() . "_" . $richiesta->CODICE_FISCALE . "_BE_" . $richiesta->NUMERO_VOLO . "_" . File::GetValidFilename($_FILES['FILEPATH_BIGLIETTO']['name']);
$fileFullPathBiglietto = $folder . "/" . $fileNameBiglietto;
if (copy($_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)";
}
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = $respBiglietto['erroreDescrizione'];
}
}
if ($_FILES['FILEPATH_CARTAIMBARCO']) {
$respImbarco = File::checkFileAllegato('FILEPATH_CARTAIMBARCO', MAX_SIZE_FILE, 'pdf');
if ($respImbarco['esito'] == 1) {
$fileNameImbarco = time() . "_" . $richiesta->CODICE_FISCALE . "_CI_" . $richiesta->NUMERO_VOLO . "_" . File::GetValidFilename($_FILES['FILEPATH_CARTAIMBARCO']['name']);
$fileFullPathImbarco = $folder . "/" . $fileNameImbarco;
if (copy($_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)";
}
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = $respImbarco['erroreDescrizione'];
}
}
}
}
########################################################
$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' href='" . BASE_HTTP . "assets/docs/" . $datiDrs['FILEPATH'] . "' download>[Visualizza DRS]</a>";
}
}
}
}
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));
}