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.
 
 
 

1138 righe
48 KiB

<?php
require_once ROOT . "lib/classes/IDataClass.php";
/**
* Description of DomandaSconti
*
* @author Anselmo
*/
class DomandaSconti extends DataClass {
const TABLE_NAME = "DOMANDA_SCONTI";
const VIEW = "VIEW_EXPORT_SCONTI";
const SEQ_NAME = "DOMANDA_SCONTI_ID_SEQ";
// const FNZ_SLOTCONTRATTI = "FNSLOTCONTRATTI";
public $ID = 0;
public $ID_DOMANDA = 0;
public $COGNOME = "";
public $NOME = "";
public $DATA_NASCITA = null;
public $RAPPORTO_PARENTELA = 0;
public $CODICE_FISCALE = "";
public $COMUNE_RESIDENZA = "";
public $PROV_RESIDENZA = "";
public $CAP_RESIDENZA = "";
public $COMPAGNIA_AEREA = "";
public $NUMERO_VOLO = "";
public $DATA_ACQUISTO = null;
public $DATA_VOLO = null;
public $COSTO_TRATTA = 0;
public $AEROPORTO_PARTENZA = "";
public $AEROPORTO_PARTENZA_CODICE = "";
public $AEROPORTO_DESTINAZIONE = "";
public $AEROPORTO_DESTINAZIONE_CODICE = "";
public $FILEPATH_BIGLIETTO = "";
public $FILEPATH_CARTAIMBARCO = "";
public $ISEE = 0;
public $DATA_RILASCIO_ISEE = null;
public $FILEPATH_ISEE = "";
public $IBAN = "";
public $ISTITUTO_CREDITO = "";
public $FILIALE_CREDITO = "";
public $STATO = 0;
public $DATA_REGISTRAZIONE = null;
public $ID_UID_FIREBASE = 0;
public $DATA_ESPORTAZIONE = null;
public $DATA_ESITO = null;
public $DATA_EROGAZIONE = null;
public $NOTE = "";
public $SCONTO_TOTALE = 0;
public $COMPAGNIA_ID = 0;
public $LOTTO = 0;
public $FORZA_RESIDENZA = 0;
public function __construct($src = null) {
global $con;
if ($src == null) {
return;
}
$stripSlashes = 0;
if (is_array($src)) {
if (isset($src['ID']) && $src['ID'] > 0) {
$this->_loadAndFillObject($src['ID'], self::TABLE_NAME, $src);
} else {
$this->_loadByRow($src, $stripSlashes);
}
} elseif (intval($src)) {
$sql = "SELECT * FROM " . self::TABLE_NAME . " WHERE ID = :id";
$query = $con->prepare($sql);
$query->bindParam(":id", $src);
try {
$query->execute();
$it = $query->fetchAll(PDO::FETCH_ASSOC);
Utils::FillObjectFromRow($this, $it[0]);
} catch (Exception $exc) {
$exc->getMessage();
}
}
}
/**
*
* @param type $filter
* @return type
*/
public static function Count($filter = null) {
return parent::_count(self::TABLE_NAME, $filter);
}
public static function LoadDataTable($searchQuery = "", $searchArray = array(), $columnName = array(), $columnSortOrder = array(), $start = 0, $offset = 0) {
return parent::_loadDataTable(self::VIEW, $searchQuery, $searchArray, $columnName, $columnSortOrder, $start, $offset);
}
/**
*
* @global type $con
* @global type $LoggedAccount
* @param type $id_domanda
* @return type array
*/
public static function load($id_domanda = 0, $stato) {
global $con, $LoggedAccount;
$rows = array();
if (intval($id_domanda) > 0) {
if ($stato == RS_IN_ELABORAZIONE) {
$filter = "AND STATO = :stato ";
} elseif ($stato == RS_PRESA_IN_CARICO) {
$filter = "AND STATO >= :stato ";
} else {
$filter = "";
}
$sql = "SELECT * FROM " . self::VIEW . " WHERE ID_DOMANDA=:id_domanda " . $filter . " ORDER BY ID_DOMANDA ASC ";
$query = $con->prepare($sql);
$query->bindParam(":id_domanda", $id_domanda);
if ($stato >= 0) {
$query->bindParam(":stato", $stato);
}
try {
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
}
return $rows;
}
public static function checkVerificaDatiPreSalvataggio() {
global $LoggedAccount;
$domanda = Domanda::loadDomandaFromAccount();
$_POST['ID'] = intval(Utils::get_filter_int_POST('ID'));
$_POST['ID_DOMANDA'] = $domanda->ID;
$_POST['CODICE_FISCALE'] = Utils::get_filter_string_POST('CODICE_FISCALE');
$_POST['NUMERO_VOLO'] = Utils::get_filter_string_POST('NUMERO_VOLO');
$_POST['DATA_ACQUISTO'] = Utils::get_filter_string_POST('DATA_ACQUISTO');
$_POST['DATA_VOLO'] = Utils::get_filter_string_POST('DATA_VOLO');
$_POST['AEROPORTO_PARTENZA'] = Utils::get_filter_string_POST('AEROPORTO_PARTENZA');
$_POST['AEROPORTO_PARTENZA_CODICE'] = Utils::get_filter_string_POST('AEROPORTO_PARTENZA_CODICE');
$_POST['AEROPORTO_DESTINAZIONE'] = Utils::get_filter_string_POST('AEROPORTO_DESTINAZIONE');
$_POST['AEROPORTO_DESTINAZIONE_CODICE'] = Utils::get_filter_string_POST('AEROPORTO_DESTINAZIONE_CODICE');
$_POST['COMPAGNIA_AEREA'] = Utils::get_filter_string_POST('COMPAGNIA_AEREA');
$_POST['COSTO_TRATTA'] = Utils::get_filter_string_POST('COSTO_TRATTA');
}
public function checkDatiPreSave() {
global $LoggedAccount;
$response = array();
$controllValidita = true;
$dati_mancanti = '';
if (trim($this->CODICE_FISCALE) == '') {
$controllValidita = false;
$dati_mancanti .= " <br><b>Il codice fiscale del passeggero</b><br> ";
}
if (trim($this->NUMERO_VOLO) == '') {
$controllValidita = false;
$dati_mancanti .= " <br><b>Il numero del volo</b><br> ";
}
if (!Utils::VerificaNumeroBigliettoAereo(trim($this->NUMERO_VOLO))) {
$controllValidita = false;
$dati_mancanti .= " <br><b>Il numero del volo non è corretto</b><br> ";
}
if (trim($this->DATA_ACQUISTO) == '') {
$controllValidita = false;
$dati_mancanti .= " <br><b>La data di acquisto del biglietto</b><br> ";
} else {
$this->DATA_ACQUISTO = Date::dateOracleDate($this->DATA_ACQUISTO, 'd-m-Y');
$checkRilascio = Date::checkSaveDate(MIN_DATA_ACQUISTO_BIGLIETTO_PHP, $this->DATA_ACQUISTO, "", true);
if ($checkRilascio['esito'] != 1) {
$controllValidita = false;
$dati_mancanti .= " <br><b>Data di acquisto del biglietto minore del " . MIN_DATA_ACQUISTO_BIGLIETTO_PHP . " </b>";
}
}
if (trim($this->DATA_VOLO) == '') {
$controllValidita = false;
$dati_mancanti .= " <br><b>La data del volo</b><br> ";
}
if (trim($this->AEROPORTO_PARTENZA) == '' || trim($this->AEROPORTO_PARTENZA_CODICE) == '') {
$controllValidita = false;
$dati_mancanti .= " <br><b>L'aeroporto di partenza</b><br> ";
}
if (trim($this->AEROPORTO_DESTINAZIONE) == '' || trim($this->AEROPORTO_DESTINAZIONE_CODICE) == '') {
$controllValidita = false;
$dati_mancanti .= " <br><b>L'aeroporto di destinazione</b><br> ";
}
if (trim($this->COMPAGNIA_AEREA) == '') {
$controllValidita = false;
$dati_mancanti .= " <br><b>La compagnia aerea</b><br> ";
}
if (intval($this->COSTO_TRATTA) == 0 || trim($this->COSTO_TRATTA) == '') {
$controllValidita = false;
$dati_mancanti .= " <br><b>Il costo del volo per singola tratta</b><br> ";
}
if (trim($this->FILEPATH_BIGLIETTO) == '') {
$controllValidita = false;
$dati_mancanti .= " <br><b>Il file del biglietto elettronico</b><br> ";
}
if (trim($this->FILEPATH_CARTAIMBARCO) == '') {
$controllValidita = false;
$dati_mancanti .= " <br><b>Il file della carta di imbarco</b><br> ";
}
$checkContratto = Date::checkSaveDate($this->DATA_VOLO);
if ($checkContratto['esito'] != 1) {
$controllValidita = false;
$dati_mancanti .= "Controllo data volo: " . $checkContratto['erroreDescrizione'] . "<br>";
}
if (trim($this->CODICE_FISCALE) == '' || strlen(trim($this->CODICE_FISCALE)) < MIN_CF || strlen(trim($this->CODICE_FISCALE)) > MAX_CF) {
$controllValidita = false;
$dati_mancanti .= " <br><b>Il campo passeggero</b><br> ";
}
if (CONTROLLO_FORMATTAZIONE_CF && !Utils::ControlloCodiceFiscale(trim($this->CODICE_FISCALE))) {
$controllValidita = false;
$dati_mancanti .= " <br><b>Codice fiscale dell'intestatario del contratto non valido</b><br> ";
}
if (!$LoggedAccount->isNucleoFamiliare(trim($this->CODICE_FISCALE))) {
$controllValidita = false;
$dati_mancanti .= " <br><b>Il codice fiscale del beneficiario non è presente nel proprio nucleo familiare</b><br> ";
} else {
$beneficiario = AccountNucleoFamiliare::loadFromCf(trim($this->CODICE_FISCALE));
$this->COGNOME = $beneficiario->COGNOME;
$this->NOME = $beneficiario->NOME;
$this->DATA_NASCITA = $beneficiario->DATA_NASCITA;
/* $this->COMUNE_RESIDENZA = $beneficiario->COMUNE_RESIDENZA;
$this->PROV_RESIDENZA = $beneficiario->PROV_RESIDENZA;
$this->CAP_RESIDENZA = $beneficiario->CAP_RESIDENZA;
$this->STUDENTE = $beneficiario->STUDENTE;
$this->DISABILE = $beneficiario->DISABILE; */
}
$this->COSTO_TRATTA = str_replace(",", ".", $this->COSTO_TRATTA);
$this->DATA_ACQUISTO = Date::dateOracleDate($this->DATA_ACQUISTO, 'd-M-y');
$this->DATA_VOLO = Date::dateOracleDate($this->DATA_VOLO, 'd-M-y');
$response['checkDati'] = $controllValidita;
$response['txt_dati_mancanti'] = $dati_mancanti;
return $response;
}
public function isErasable() {
global $LoggedAccount;
$response = false;
$domanda = Domanda::loadDomandaFromAccount();
if (($this->ID_DOMANDA == $domanda->ID) && $this->STATO == RS_IN_ELABORAZIONE) {
$response = true;
}
return $response;
}
/**
*
* @global type $con
* @global type $LoggedAccount
* @return type
*/
public function Save() {
global $con, $LoggedAccount;
$vars = get_object_vars($this);
unset($vars["DATA_REGISTRAZIONE"]);
$sql = Utils::prepareQuery(self::TABLE_NAME, $vars);
/* Utils::print_array($sql);
Utils::print_array($vars); */
$queryabi = $con->prepare($sql);
foreach ($vars as $k => $v) {
if ($k == "ID" && $v == 0) {
continue;
}
$queryabi->bindValue(":" . $k, $v);
}
try {
$it = parent::_Save($queryabi);
if (trim($it['erroreCode']) == 'HY000') {
$it['erroreDescrizione'] = '<b>Richiesta già inserita!</b><br/> Non è possibile richiedere un ulteriore rimborso per questo biglietto';
}
} catch (Exception $exc) {
$it['erroreDescrizione'] = $exc->getMessage();
}
return $it;
}
public function Delete() {
return parent::_Delete(self::TABLE_NAME, "ID = " . $this->ID);
}
public function DeleteAll() {
return parent::_Delete(self::TABLE_NAME, "ID_DOMANDA = " . $this->ID_DOMANDA);
}
public function Parse(&$record, $campo = "") {
array_push($record, array("Campo" => $campo, "Valore" => $this->$campo));
}
public function VerificaSlotTemporale() {
global $con;
$response = Utils::initDefaultResponse();
$response['erroreDescrizione'] = 'Il periodo di contratto inserito si sovrappone con altri periodi già inseriti';
$from = new DateTime(MIN_DATA_CONTRIBUTO);
$to = new DateTime(MAX_DATA_CONTRIBUTO);
if ($this->SFRATTO_ESECUTIVO == 1 && !empty($this->SFRATTO_ESECUTIVO_DATA)) {
$d_sfratto = new DateTime($this->SFRATTO_ESECUTIVO_DATA);
$d_al = new DateTime($this->CONTRATTO_AL);
$out = ($d_sfratto < $d_al ? $d_sfratto : $d_al);
} else {
$out = new DateTime($this->CONTRATTO_AL);
}
$in = new DateTime($this->CONTRATTO_DAL);
if ($in <= $to && $from <= $out) {
$sql = "SELECT " . self::FNZ_SLOTCONTRATTI . "('" . $this->ID . "','" . $this->ID_DOMANDA . "', '" . $this->CONTRATTO_DAL . "', '" . $out->format('d-M-y') . "') AS COUNT FROM DUAL";
$query = $con->prepare($sql);
try {
$query->execute();
$res = $query->fetch(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
if (intval($res['COUNT']) <= 0) {
$response['esito'] = 1;
}
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = "Le date del contratto devono ricadere nel periodo richiesto dal bando";
}
return $response;
}
public function getPathInfoDocumento() {
$response = array();
$response["TIPO_DOCUMENTO"] = TIPO_UPLOAD_OBBLIGATORIO;
$response["PATH_DOCUMENTO"] = "biglietti";
return $response;
}
public function VerificaDataVolo() {
$response = Utils::initDefaultResponse();
$from = new DateTime(MIN_DATA_CONTRIBUTO);
$to = new DateTime(MAX_DATA_CONTRIBUTO);
$data_volo = new DateTime($this->DATA_VOLO);
$out = new DateTime($this->DATA_VOLO);
$oggi = new DateTime();
$out->add(new DateInterval('P' . MIN_DATA_VOLO . 'D'));
if ($data_volo <= $to && $data_volo >= $from && $out >= $oggi) {
$response['esito'] = 1;
} elseif ($out < $oggi) {
$response['esito'] = -999;
$response['erroreDescrizione'] = "La data del volo supera i " . MIN_DATA_VOLO . " giorni previsti dal bando";
} elseif ($data_volo > $to) {
$response['esito'] = -999;
$response['erroreDescrizione'] = "La data del volo supera la data della fine (" . $to->format('d-M-y') . ") del contributo prevista dal bando";
} elseif ($data_volo < $from) {
$response['esito'] = -999;
$response['erroreDescrizione'] = "La data del volo è antecedente la data di inizio (" . $from->format('d-M-y') . ") del contributo prevista dal bando";
} else {
$response['esito'] = -999;
}
return $response;
}
/**
* @param $data
* @return array
*/
public static function GetTotalePerStato_OLD($data) {
global $con;
$result = array();
$res = array();
if (!empty($data)) {
if (Date::is_date($data)) {
$sql2 = "SELECT COUNT(V.ID) AS NUM, V.STATO, SUM(V.SCONTO_TOTALE) AS SCONTO, SUM(V.COSTO_TRATTA) AS COSTO,
V.LOTTO,TO_CHAR(V.DATA_ESPORTAZIONE, 'dd/mm/YYYY') AS DATA_ESPORTAZIONE, TO_CHAR(V.DATA_EROGAZIONE, 'dd/mm/YYYY') AS DATA_EROGAZIONE,
TO_CHAR(V.DATA_ESITO, 'dd/mm/YYYY') AS DATA_ESITO, PRIORITA, TO_CHAR(E.DATA_FILTRO, 'dd/mm/YYYY') AS DATA_FILTRO, E.FILEPATH
FROM VIEW_EXPORT_SCONTI V
LEFT JOIN ESPORTAZIONI E ON E.LOTTO = V.LOTTO
WHERE V.DATA_REGISTRAZIONE <= TO_DATE('" . $data . " 23:59:59','dd/mm/yyyy hh24:mi:ss') GROUP BY V.STATO, V.LOTTO, TO_CHAR(V.DATA_ESPORTAZIONE, 'dd/mm/YYYY'),TO_CHAR(V.DATA_EROGAZIONE, 'dd/mm/YYYY'), TO_CHAR(V.DATA_ESITO, 'dd/mm/YYYY'), PRIORITA, TO_CHAR(E.DATA_FILTRO, 'dd/mm/YYYY'), E.FILEPATH ORDER BY V.STATO desc, V.LOTTO asc";
$query = $con->prepare($sql2);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
}
}
return $res;
}
public static function GetTotalePerStato($data) {
global $con;
$result = array();
$res = array();
if (!empty($data)) {
if (Date::is_date($data)) {
$sqlNatalizio = "(SELECT
COUNT(T.ID) AS NUM, T.STATO, SUM(T.SCONTO_TOTALE) AS SCONTO, SUM(T.COSTO_TRATTA) AS COSTO,
T.LOTTO, T.DATA_ESPORTAZIONE , T.DATA_EROGAZIONE,
T.DATA_ESITO,
T.PRIORITA , T.DATA_FILTRO, T.FILEPATH
FROM(
SELECT V.ID, V.STATO, V.SCONTO_TOTALE, V.COSTO_TRATTA, V.LOTTO,TO_CHAR(V.DATA_ESPORTAZIONE, 'dd/mm/YYYY') AS DATA_ESPORTAZIONE, TO_CHAR(V.DATA_EROGAZIONE, 'dd/mm/YYYY') AS DATA_EROGAZIONE,
TO_CHAR(V.DATA_ESITO, 'dd/mm/YYYY') AS DATA_ESITO,
CASE
WHEN V.ISEE = 0 AND V.PRIORITA = 0 THEN 0
ELSE 1 END
AS PRIORITA,
TO_CHAR(E.DATA_FILTRO, 'dd/mm/YYYY') AS DATA_FILTRO, E.FILEPATH
FROM VIEW_EXPORT_SCONTI V
LEFT JOIN ESPORTAZIONI E ON E.LOTTO = V.LOTTO
WHERE V.DATA_REGISTRAZIONE <= TO_DATE('" . $data . " 23:59:59','dd/mm/yyyy hh24:mi:ss') AND V.DATA_VOLO < TO_DATE('07/12/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') AND (V.LOTTO = 0 OR V.LOTTO = 99)
)T
GROUP BY T.STATO, T.LOTTO, T.DATA_ESPORTAZIONE,T.DATA_EROGAZIONE, T.DATA_ESITO,T.PRIORITA, T.DATA_FILTRO, T.FILEPATH )
UNION
(SELECT
COUNT(T.ID) AS NUM, T.STATO, SUM(T.SCONTO_TOTALE) AS SCONTO, SUM(T.COSTO_TRATTA) AS COSTO,
T.LOTTO, T.DATA_ESPORTAZIONE , T.DATA_EROGAZIONE,
T.DATA_ESITO,
T.PRIORITA , T.DATA_FILTRO, T.FILEPATH
FROM(
SELECT V.ID, V.STATO, V.SCONTO_TOTALE, V.COSTO_TRATTA, V.LOTTO,TO_CHAR(V.DATA_ESPORTAZIONE, 'dd/mm/YYYY') AS DATA_ESPORTAZIONE, TO_CHAR(V.DATA_EROGAZIONE, 'dd/mm/YYYY') AS DATA_EROGAZIONE,
TO_CHAR(V.DATA_ESITO, 'dd/mm/YYYY') AS DATA_ESITO,
10 AS PRIORITA,
TO_CHAR(E.DATA_FILTRO, 'dd/mm/YYYY') AS DATA_FILTRO, E.FILEPATH
FROM VIEW_EXPORT_SCONTI V
LEFT JOIN ESPORTAZIONI E ON E.LOTTO = V.LOTTO
WHERE
V.DATA_REGISTRAZIONE <= TO_DATE('" . $data . " 23:59:59','dd/mm/yyyy hh24:mi:ss')
AND V.DATA_VOLO BETWEEN TO_DATE('07/12/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') AND TO_DATE('06/01/2025 23:59:59','dd/mm/yyyy hh24:mi:ss')
AND (V.LOTTO = 0 OR V.LOTTO = 99)
)T
GROUP BY T.STATO, T.LOTTO, T.DATA_ESPORTAZIONE,T.DATA_EROGAZIONE, T.DATA_ESITO,T.PRIORITA, T.DATA_FILTRO, T.FILEPATH )
UNION
(SELECT
COUNT(T.ID) AS NUM, T.STATO, SUM(T.SCONTO_TOTALE) AS SCONTO, SUM(T.COSTO_TRATTA) AS COSTO,
T.LOTTO, T.DATA_ESPORTAZIONE , T.DATA_EROGAZIONE,
T.DATA_ESITO,
T.TIPO AS PRIORITA, T.DATA_FILTRO, T.FILEPATH
FROM(
SELECT V.ID, V.STATO, V.SCONTO_TOTALE, V.COSTO_TRATTA, V.LOTTO,TO_CHAR(V.DATA_ESPORTAZIONE, 'dd/mm/YYYY') AS DATA_ESPORTAZIONE, TO_CHAR(V.DATA_EROGAZIONE, 'dd/mm/YYYY') AS DATA_EROGAZIONE,
TO_CHAR(V.DATA_ESITO, 'dd/mm/YYYY') AS DATA_ESITO,
E.TIPO,
TO_CHAR(E.DATA_FILTRO, 'dd/mm/YYYY') AS DATA_FILTRO, E.FILEPATH
FROM VIEW_EXPORT_SCONTI V
LEFT JOIN ESPORTAZIONI E ON E.LOTTO = V.LOTTO
WHERE V.LOTTO > 0 AND V.LOTTO <> 99
)T
GROUP BY T.STATO, T.LOTTO, T.DATA_ESPORTAZIONE,T.DATA_EROGAZIONE, T.DATA_ESITO,T.TIPO, T.DATA_FILTRO, T.FILEPATH
) ORDER BY STATO asc, LOTTO asc";
$sql2 = "(SELECT
COUNT(T.ID) AS NUM, T.STATO, SUM(T.SCONTO_TOTALE) AS SCONTO, SUM(T.COSTO_TRATTA) AS COSTO,
T.LOTTO, T.DATA_ESPORTAZIONE , T.DATA_EROGAZIONE,
T.DATA_ESITO,
T.PRIORITA , T.DATA_FILTRO, T.FILEPATH
FROM(
SELECT V.ID, V.STATO, V.SCONTO_TOTALE, V.COSTO_TRATTA, V.LOTTO,TO_CHAR(V.DATA_ESPORTAZIONE, 'dd/mm/YYYY') AS DATA_ESPORTAZIONE, TO_CHAR(V.DATA_EROGAZIONE, 'dd/mm/YYYY') AS DATA_EROGAZIONE,
TO_CHAR(V.DATA_ESITO, 'dd/mm/YYYY') AS DATA_ESITO,
CASE
WHEN V.ISEE = 0 AND V.PRIORITA = 0 THEN 0
ELSE 1 END
AS PRIORITA,
TO_CHAR(E.DATA_FILTRO, 'dd/mm/YYYY') AS DATA_FILTRO, E.FILEPATH
FROM VIEW_EXPORT_SCONTI V
LEFT JOIN ESPORTAZIONI E ON E.LOTTO = V.LOTTO
WHERE V.DATA_REGISTRAZIONE <= TO_DATE('" . $data . " 23:59:59','dd/mm/yyyy hh24:mi:ss') AND (V.LOTTO = 0 OR V.LOTTO = 99)
)T
GROUP BY T.STATO, T.LOTTO, T.DATA_ESPORTAZIONE,T.DATA_EROGAZIONE, T.DATA_ESITO,T.PRIORITA, T.DATA_FILTRO, T.FILEPATH )
UNION
(SELECT
COUNT(T.ID) AS NUM, T.STATO, SUM(T.SCONTO_TOTALE) AS SCONTO, SUM(T.COSTO_TRATTA) AS COSTO,
T.LOTTO, T.DATA_ESPORTAZIONE , T.DATA_EROGAZIONE,
T.DATA_ESITO,
T.TIPO AS PRIORITA, T.DATA_FILTRO, T.FILEPATH
FROM(
SELECT V.ID, V.STATO, V.SCONTO_TOTALE, V.COSTO_TRATTA, V.LOTTO,TO_CHAR(V.DATA_ESPORTAZIONE, 'dd/mm/YYYY') AS DATA_ESPORTAZIONE, TO_CHAR(V.DATA_EROGAZIONE, 'dd/mm/YYYY') AS DATA_EROGAZIONE,
TO_CHAR(V.DATA_ESITO, 'dd/mm/YYYY') AS DATA_ESITO,
E.TIPO,
TO_CHAR(E.DATA_FILTRO, 'dd/mm/YYYY') AS DATA_FILTRO, E.FILEPATH
FROM VIEW_EXPORT_SCONTI V
LEFT JOIN ESPORTAZIONI E ON E.LOTTO = V.LOTTO
WHERE V.LOTTO > 0 AND V.LOTTO <> 99
)T
GROUP BY T.STATO, T.LOTTO, T.DATA_ESPORTAZIONE,T.DATA_EROGAZIONE, T.DATA_ESITO,T.TIPO, T.DATA_FILTRO, T.FILEPATH
) ORDER BY STATO asc, LOTTO asc";
$query = $con->prepare($sql2);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
}
}
return $res;
}
public static function GetTotaleFromLotto($lotto) {
global $con;
$result = array();
$res = array();
if (intval($lotto) > 0) {
$sql2 = "SELECT COUNT(V.ID) AS NUM, "
. "V.STATO, SUM(V.SCONTO_TOTALE) AS SCONTO, SUM(V.COSTO_TRATTA) "
. "AS COSTO, V.LOTTO,TO_CHAR(V.DATA_ESPORTAZIONE, 'dd/mm/YYYY') AS DATA_ESPORTAZIONE, "
. "TO_CHAR(V.DATA_EROGAZIONE, 'dd/mm/YYYY') AS DATA_EROGAZIONE, TO_CHAR(V.DATA_ESITO, 'dd/mm/YYYY') AS DATA_ESITO "
. "FROM VIEW_EXPORT_SCONTI V WHERE V.LOTTO = " . $lotto . " AND STATO = 2 "
. "GROUP BY V.STATO, V.LOTTO, TO_CHAR(V.DATA_ESPORTAZIONE, 'dd/mm/YYYY'),TO_CHAR(V.DATA_EROGAZIONE, 'dd/mm/YYYY'),"
. " TO_CHAR(V.DATA_ESITO, 'dd/mm/YYYY') ORDER BY V.STATO desc, V.LOTTO asc";
$query = $con->prepare($sql2);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
}
return $res[0];
}
public static function listEsportVista() {
global $con;
$result = array();
$res = array();
// $sql = 'SELECT
// ID AS "ID RICHIESTA",
// ID_DOMANDA AS "ID ISTANZA",
// COMUNE_RESIDENZA AS "COMUNE DI RESIDENZA", PROV_RESIDENZA AS "PROVINCIA DI RESIDENZA", CAP_RESIDENZA AS "CAP DI RESIDENZA",
// CASE WHEN PRIORITA = 1 OR ISEE = 1 THEN \'SI\' ELSE \'NO\' END AS "CATEGORIA PRIORITARIA",
// COMPAGNIA_AEREA AS "COMPAGNIA AEREA", NUMERO_VOLO AS "NUMERO DEL VOLO",
// TO_CHAR(DATA_VOLO, \'dd/mm/YYYY\') AS "DATA DEL VOLO", COSTO_TRATTA AS "COSTO DELLA TRATTA",
// AEROPORTO_PARTENZA AS "PARTEZA DA", AEROPORTO_DESTINAZIONE AS "ARRIVO A",
// IBAN, ISTITUTO_CREDITO AS "ISTITUTO DI CREDITO", FILIALE_CREDITO AS "FILIALE DI CREDITO",
// SCONTO_TOTALE AS "SCONTO TOTALE", TO_CHAR(DATA_ACQUISTO, \'dd/mm/YYYY\') AS "DATA DI ACQUISTO DEL BIGLIETTO", LOTTO,
// CASE WHEN STATO = 1 THEN \'PRESA IN CARICO\' WHEN STATO = 2 THEN \'APPROVATO\' WHEN STATO = 3 THEN \'EROGATO\' WHEN STATO = 99 THEN \'NON APPROVATO\' ELSE \'IN ELABORAZIONE\' END AS "STATO DELLE PRATICA",
// FLAG
// FROM VIEW_EXPORT_SCONTI WHERE STATO >= 0 ORDER BY DATA_REGISTRAZIONE ASC';
//
$sql = 'SELECT
VIEW_EXPORT_SCONTI.ID AS "ID RICHIESTA",
VIEW_EXPORT_SCONTI.ID_DOMANDA AS "ID ISTANZA",
VIEW_EXPORT_SCONTI.COGNOME,
VIEW_EXPORT_SCONTI.NOME,
VIEW_EXPORT_SCONTI.CODICE_FISCALE,
VIEW_EXPORT_SCONTI.DATA_NASCITA AS "DATA NASCITA",
VIEW_EXPORT_SCONTI.COMUNE_RESIDENZA AS "COMUNE DI RESIDENZA",
VIEW_EXPORT_SCONTI.PROV_RESIDENZA AS "PROVINCIA DI RESIDENZA",
VIEW_EXPORT_SCONTI.CAP_RESIDENZA AS "CAP DI RESIDENZA",
ACCOUNT_ANAGRAFICA.SESSO,
VIEW_EXPORT_SCONTI.COMPAGNIA_AEREA AS "COMPAGNIA AEREA", VIEW_EXPORT_SCONTI.NUMERO_VOLO AS "NUMERO DEL VOLO",
TO_CHAR(VIEW_EXPORT_SCONTI.DATA_VOLO, \'dd/mm/YYYY\') AS "DATA DEL VOLO", VIEW_EXPORT_SCONTI.COSTO_TRATTA AS "COSTO DELLA TRATTA",
VIEW_EXPORT_SCONTI.AEROPORTO_PARTENZA AS "PARTENZA DA", VIEW_EXPORT_SCONTI.AEROPORTO_DESTINAZIONE AS "ARRIVO A",
VIEW_EXPORT_SCONTI.IBAN, VIEW_EXPORT_SCONTI.ISTITUTO_CREDITO AS "ISTITUTO DI CREDITO", VIEW_EXPORT_SCONTI.FILIALE_CREDITO AS "FILIALE DI CREDITO",
VIEW_EXPORT_SCONTI.SCONTO_TOTALE AS "SCONTO TOTALE", TO_CHAR(VIEW_EXPORT_SCONTI.DATA_ACQUISTO, \'dd/mm/YYYY\') AS "DATA DI ACQUISTO DEL BIGLIETTO", VIEW_EXPORT_SCONTI.LOTTO,
CASE WHEN VIEW_EXPORT_SCONTI.STATO = 1 THEN \'PRESA IN CARICO\' WHEN VIEW_EXPORT_SCONTI.STATO = 2 THEN \'APPROVATO\' WHEN VIEW_EXPORT_SCONTI.STATO = 3 THEN \'EROGATO\' WHEN VIEW_EXPORT_SCONTI.STATO = 99 THEN \'NON APPROVATO\' ELSE \'IN ELABORAZIONE\' END AS "STATO DELLE PRATICA",
VIEW_EXPORT_SCONTI.FLAG,
CASE WHEN VIEW_EXPORT_SCONTI.PRIORITA = 1 OR VIEW_EXPORT_SCONTI.ISEE = 1 THEN \'SI\' ELSE \'NO\' END AS "CATEGORIA PRIORITARIA",
CASE WHEN VIEW_EXPORT_SCONTI.ISEE = 1 THEN \'SI\' ELSE \'NO\' END AS "PRIORITARIO ISEE"
FROM VIEW_EXPORT_SCONTI
LEFT JOIN ACCOUNT_ANAGRAFICA ON ACCOUNT_ANAGRAFICA.CODICE_FISCALE=VIEW_EXPORT_SCONTI.CODICE_FISCALE WHERE VIEW_EXPORT_SCONTI.STATO >= 0
AND VIEW_EXPORT_SCONTI.DATA_REGISTRAZIONE BETWEEN
TO_DATE(\'01/03/2025 00:00:00\',\'dd/mm/yyyy hh24:mi:ss\') AND
TO_DATE(\'31/03/2025 23:59:59\',\'dd/mm/yyyy hh24:mi:ss\')
ORDER BY VIEW_EXPORT_SCONTI.DATA_REGISTRAZIONE ASC';
//
//echo $sql;exit();
$query = $con->prepare($sql);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
return $res;
}
public static function listLottoFromExport($lotto = null, $stato = null) {
global $con;
$result = array();
$res = array();
if (!empty($lotto) && !empty($stato)) {
$sql = "
SELECT
ID AS \"ID RICHIESTA\",
ID_DOMANDA AS \"ID ISTANZA\",
COGNOME,
NOME,
TO_CHAR(DATA_NASCITA, 'dd/mm/YYYY') AS \"DATA DI NASCITA\",
CODICE_FISCALE AS \"CODICE FISCALE\",
COMUNE_RESIDENZA AS \"COMUNE DI RESIDENZA\",
PROV_RESIDENZA AS \"PROVINCIA DI RESIDENZA\",
CAP_RESIDENZA AS \"CAP DI RESIDENZA\",
CASE
WHEN NVL(PRIORITA, 0) = 1 OR NVL(ISEE, 0) = 1 THEN 'SI'
ELSE 'NO'
END AS \"CATEGORIA PRIORITARIA\",
COMPAGNIA_AEREA AS \"COMPAGNIA AEREA\",
NUMERO_VOLO AS \"NUMERO DEL VOLO\",
TO_CHAR(DATA_VOLO, 'dd/mm/YYYY') AS \"DATA DEL VOLO\",
COSTO_TRATTA AS \"COSTO DELLA TRATTA\",
AEROPORTO_PARTENZA AS \"PARTEZA DA\",
AEROPORTO_DESTINAZIONE AS \"ARRIVO A\",
IBAN,
ISTITUTO_CREDITO AS \"ISTITUTO DI CREDITO\",
FILIALE_CREDITO AS \"FILIALE DI CREDITO\",
SCONTO_TOTALE AS \"SCONTO TOTALE\",
TO_CHAR(DATA_ACQUISTO, 'dd/mm/YYYY') AS \"DATA DI ACQUISTO DEL BIGLIETTO\",
LOTTO,
CASE
WHEN STATO = 1 THEN 'PRESA IN CARICO'
WHEN STATO = 2 THEN 'APPROVATO'
WHEN STATO = 3 THEN 'EROGATO'
WHEN STATO = 99 THEN 'NON APPROVATO'
ELSE 'IN ELABORAZIONE'
END AS \"STATO DELLE PRATICA\"
FROM VIEW_EXPORT_IBAN_AGGIORNATI
WHERE LOTTO = :lotto
AND STATO = :stato
ORDER BY DATA_REGISTRAZIONE ASC
";
//echo $sql;exit();
$query = $con->prepare($sql);
$query->bindParam(":lotto", $lotto);
$query->bindParam(":stato", $stato);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
}
return $res;
}
public static function listLottoFromMandatiXls($lotto = null, $stato = null) {
global $con;
$result = array();
$res = array();
if (!empty($lotto) && !empty($stato)) {
$sql = 'SELECT T.COGNOME, T.NOME, T.Codice_Fiscale as "CODICE FISCALE", T.SESSO,
T.Nato_A AS "LUOGO DI NASCITA", T.Provincia AS "PROV",T.Data_Nascita AS "DATA DI NASCITA",
T.Indirizzo AS INDIRIZZO,T.CAP,T.Localita AS LOCALITA
FROM (
SELECT
AA.CODICE_FISCALE AS Codice_Fiscale, 0 AS "Blocco", AA.COGNOME, AA.NOME, AA.SESSO, AA.COMUNE_NASCITA AS Nato_A, AA.DATA_NASCITA AS Data_Nascita,
AA.INDIRIZZO_RESIDENZA AS Indirizzo, AA.CAP_RESIDENZA AS CAP, AA.COMUNE_RESIDENZA AS Localita,
null AS "Data_Immissione", null AS "Data_Variazione", null AS "Data_Blocco", null AS "Avviso_CAP", null AS "AvvisoLocalita", AA.PROV_NASCITA AS Provincia,
ROUND(SUM(V.SCONTO_TOTALE), 2) AS SCONTO_TOTALE
FROM VIEW_EXPORT_SCONTI V
INNER JOIN DOMANDA D ON D.ID = V.ID_DOMANDA
INNER JOIN ACCOUNT A ON A.ID = D.ID_ACCOUNT
INNER JOIN ACCOUNT_ANAGRAFICA AA ON AA.CODICE_FISCALE = A.CODICE_FISCALE
WHERE V.LOTTO = :lotto AND V.STATO = :stato
GROUP BY AA.CODICE_FISCALE, AA.COGNOME, AA.NOME, AA.SESSO, AA.COMUNE_NASCITA, AA.DATA_NASCITA,
AA.INDIRIZZO_RESIDENZA, AA.CAP_RESIDENZA, AA.COMUNE_RESIDENZA,
AA.PROV_NASCITA
)T
WHERE T.SCONTO_TOTALE > 0 ORDER BY T.Codice_Fiscale ASC';
$query = $con->prepare($sql);
$query->bindParam(":lotto", $lotto);
$query->bindParam(":stato", $stato);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
}
return $res;
}
public static function listLottoFromMandatiXml($lotto = null, $stato = null) {
global $con;
$result = array();
$res = array();
if (!empty($lotto) && !empty($stato)) {
$sql = 'SELECT * FROM (
SELECT
AA.CODICE_FISCALE AS "Codice_Fiscale",
D.IBAN, ROUND(SUM(V.SCONTO_TOTALE), 2) AS "Importo_Lordo", ROUND(SUM(V.SCONTO_TOTALE), 2) AS "Importo_Netto"
FROM VIEW_EXPORT_SCONTI V
INNER JOIN DOMANDA D ON D.ID = V.ID_DOMANDA
INNER JOIN ACCOUNT A ON A.ID = D.ID_ACCOUNT
INNER JOIN ACCOUNT_ANAGRAFICA AA ON AA.CODICE_FISCALE = A.CODICE_FISCALE
WHERE V.LOTTO = :lotto AND V.STATO = :stato
group by AA.CODICE_FISCALE, D.IBAN
)T
WHERE T."Importo_Lordo" > 0 ORDER BY T."Codice_Fiscale" ASC';
$query = $con->prepare($sql);
$query->bindParam(":lotto", $lotto);
$query->bindParam(":stato", $stato);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
}
return $res;
}
/**
* LISTA DEI BENEFICIARI per il PAGAMENTO (XLS)
*/
public static function listLottoFromPagamentiXls($lotto = null, $stato = null) {
global $con;
$result = array();
$res = array();
if (!empty($lotto) && !empty($stato)) {
$sql = "SELECT * FROM (
SELECT
AA.CODICE_FISCALE AS \"CF\",
V.IBAN,
TO_CHAR(SUM(V.SCONTO_TOTALE), 'FM9999990.00', 'NLS_NUMERIC_CHARACTERS = '',.''') AS \"IMPORTO LORDO\",
TO_CHAR(SUM(V.SCONTO_TOTALE), 'FM9999990.00', 'NLS_NUMERIC_CHARACTERS = '',.''') AS \"IMPORTO_NETTO LORDO\"
FROM VIEW_EXPORT_IBAN_AGGIORNATI V
INNER JOIN DOMANDA D ON D.ID = V.ID_DOMANDA
INNER JOIN ACCOUNT A ON A.ID = D.ID_ACCOUNT
INNER JOIN ACCOUNT_ANAGRAFICA AA ON AA.CODICE_FISCALE = A.CODICE_FISCALE
WHERE V.LOTTO = :lotto AND V.STATO = :stato
GROUP BY AA.CODICE_FISCALE, V.IBAN
) T
WHERE T.\"IMPORTO LORDO\" > 0
ORDER BY T.\"CF\" ASC";
$query = $con->prepare($sql);
$query->bindParam(":lotto", $lotto);
$query->bindParam(":stato", $stato);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
}
return $res;
}
public static function listLottoFromDecretoPdf($lotto = null, $stato = null) {
global $con;
$result = array();
$res = array();
if (!empty($lotto) && !empty($stato)) {
$sql = 'SELECT "ID Richiesta", "Data richiesta", "Importo sconto", "Localita", "Provincia" FROM (
SELECT
V.ID AS "ID Richiesta", TO_CHAR(V.DATA_REGISTRAZIONE, \'dd/mm/YYYY hh24:mi:ss\') AS "Data richiesta", TO_CHAR(V.SCONTO_TOTALE, \'L99G999D99MI\', \'NLS_NUMERIC_CHARACTERS = \'\',.\'\' NLS_CURRENCY = \'\'€.\'\' \' ) AS "Importo sconto",
AA.COMUNE_RESIDENZA AS "Localita", AA.PROV_RESIDENZA AS "Provincia",
V.SCONTO_TOTALE
FROM VIEW_EXPORT_SCONTI V
INNER JOIN DOMANDA D ON D.ID = V.ID_DOMANDA
INNER JOIN ACCOUNT A ON A.ID = D.ID_ACCOUNT
INNER JOIN ACCOUNT_ANAGRAFICA AA ON AA.CODICE_FISCALE = A.CODICE_FISCALE
WHERE
V.LOTTO = :lotto AND V.STATO = :stato
)T
WHERE T.SCONTO_TOTALE > 0 ORDER BY T."ID Richiesta" ASC';
//echo $sql;
$query = $con->prepare($sql);
$query->bindParam(":lotto", $lotto);
$query->bindParam(":stato", $stato);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
}
return $res;
}
/**
*
* @return array
*/
public static function SetPresInCarico($data, $tipo = -1) {
global $con;
$res = Utils::initDefaultResponse();
if (!empty($data) && $tipo >= 0) {
if (Date::is_date($data)) {
$sql = "CALL SPPRESAINCARICO(TO_DATE('" . DATA_PREPARAZIONE_INIZIO . "', 'dd/mm/YYYY hh24:mi:ss'), TO_DATE('" . $data . " 23:59:59', 'dd/mm/YYYY hh24:mi:ss'), '" . $tipo . "')";
//echo $sql;exit();
$query = $con->prepare($sql);
try {
if ($query->execute()) {
$res['esito'] = 1;
}
} catch (Exception $exc) {
$res['erroreDescrizione'] = $exc->getMessage();
}
} else {
$res['erroreDescrizione'] = 'Non è una data valida';
}
}
return $res;
}
/**
* Imposto lo stato ad approvato di tutte le richieste appartenenti al lotto desiderato
* @param $lotto
* @return array
*/
public static function SetApprova($lotto = 0) {
global $con;
$result = array();
$res = array();
if (intval($lotto) > 0) {
$sql = "CALL SP_APPROVA(" . $lotto . ")";
//echo $sql;exit();
$query = $con->prepare($sql);
try {
if ($query->execute()) {
$res['esito'] = 1;
}
} catch (Exception $exc) {
$res['descrizioneErrore'] = $exc->getMessage();
}
}
return $res;
}
// SetApprovaVerificati
public static function SetApprovaVerificati($lotto = 0) {
global $con;
$result = array();
$res = array();
if (intval($lotto) > 0) {
$sql = "CALL SP_CONFERMA_VALIDATI(" . $lotto . ")";
//echo $sql;exit();
$query = $con->prepare($sql);
try {
if ($query->execute()) {
$res['esito'] = 1;
}
} catch (Exception $exc) {
$res['descrizioneErrore'] = $exc->getMessage();
}
}
return $res;
}
/**
* @param $lotto
* @return array
*/
public static function SetDisApprova($lotto = 0) {
global $con;
$result = array();
$res = array();
if (intval($lotto) > 0) {
$sql = "CALL SP_DISAPPROVA(" . $lotto . ")";
//echo $sql;exit();
$query = $con->prepare($sql);
try {
if ($query->execute()) {
$res['esito'] = 1;
}
} catch (Exception $exc) {
$res['descrizioneErrore'] = $exc->getMessage();
}
}
return $res;
}
/**
* Imposto lo stato ad erogato di tutte le richieste appartenenti al lotto desiderato
* @param $lotto
* @return array
*/
public static function SetErogato($lotto = 0) {
global $con;
$res = array();
if (intval($lotto) > 0) {
$sql = "CALL SP_EROGA(" . $lotto . ")";
//echo $sql;exit();
$query = $con->prepare($sql);
try {
if ($query->execute()) {
$res['esito'] = 1;
}
} catch (Exception $exc) {
$res['descrizioneErrore'] = $exc->getMessage();
}
}
return $res;
}
public static function listScontiForFix($con) {
global $con;
$res = array();
$sql = "SELECT * FROM " . self::VIEW . " WHERE FLAG is null ORDER BY ID ASC";
//echo $sql;exit();
$query = $con->prepare($sql);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
return $res;
}
public static function listAccountForFix() {
global $con;
$res = array();
$sql = "SELECT * FROM " . AccountNucleoFamiliare::TABLE_NAME . " WHERE FLAG is null ORDER BY ID ASC";
//echo $sql;exit();
$query = $con->prepare($sql);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
return $res;
}
public function SetForzaResidenza($forza = 1) {
global $con;
$res = array();
if (intval($forza) >= 0) {
$sql = "CALL SP_FORZA_RESIDENZA(" . $this->ID . ", '" . $forza . "')";
//echo $sql;exit();
$query = $con->prepare($sql);
try {
if ($query->execute()) {
$res['esito'] = 1;
}
} catch (Exception $exc) {
$res['descrizioneErrore'] = $exc->getMessage();
}
}
return $res;
}
public static function exportDecreti($lotto = 0, $stato = 0, $omissis = 0) {
global $con;
$res = array();
$fields = ($omissis == 0) ?
"V.COGNOME AS COGNOME, V.NOME AS NOME, V.CODICE_FISCALE AS CODICE_FISCALE, V.IBAN AS IBAN" :
"'OMISSIS' AS COGNOME, 'OMISSIS' AS NOME, 'OMISSIS' AS CODICE_FISCALE, 'OMISSIS' AS IBAN";
$sql = "
SELECT \"ID Richiesta\", COGNOME, NOME, CODICE_FISCALE, DATA_NASCITA, \"Localita\", \"Provincia\", \"Importo sconto\", IBAN
FROM (
SELECT
V.ID AS \"ID Richiesta\",
TO_CHAR(V.SCONTO_TOTALE, 'FM9999990.00', 'NLS_NUMERIC_CHARACTERS = '',.''') AS \"Importo sconto\",
V.COMUNE_RESIDENZA AS \"Localita\",
V.PROV_RESIDENZA AS \"Provincia\",
$fields,
V.DATA_NASCITA,
V.SCONTO_TOTALE
FROM VIEW_EXPORT_IBAN_AGGIORNATI V
WHERE V.LOTTO = :LOTTO AND V.STATO = :STATO
) T
WHERE T.SCONTO_TOTALE > 0
ORDER BY T.\"ID Richiesta\" ASC
";
$query = $con->prepare($sql);
$query->bindParam(":LOTTO", $lotto);
$query->bindParam(":STATO", $stato);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
return $res;
}
public static function exportAnagrafiche($lotto = 0, $stato = 0) {
global $con;
$res = array();
$sql = "
SELECT
T.COGNOME,
T.NOME,
T.Codice_Fiscale AS \"CODICE FISCALE\",
T.SESSO,
T.Nato_A AS \"LUOGO DI NASCITA\",
T.Provincia AS \"PROV\",
T.Data_Nascita AS \"DATA DI NASCITA\",
T.Indirizzo AS INDIRIZZO,
T.CAP,
T.Localita AS LOCALITA,
T.IBAN,
T.SCONTO_TOTALE
FROM (
SELECT
AA.CODICE_FISCALE AS Codice_Fiscale,
0 AS \"Blocco\",
AA.COGNOME,
AA.NOME,
AA.SESSO,
AA.COMUNE_NASCITA AS Nato_A,
AA.DATA_NASCITA AS Data_Nascita,
AA.INDIRIZZO_RESIDENZA AS Indirizzo,
AA.CAP_RESIDENZA AS CAP,
AA.COMUNE_RESIDENZA AS Localita,
NULL AS \"Data_Immissione\",
NULL AS \"Data_Variazione\",
NULL AS \"Data_Blocco\",
NULL AS \"Avviso_CAP\",
NULL AS \"AvvisoLocalita\",
AA.PROV_NASCITA AS Provincia,
V.IBAN,
TO_CHAR(SUM(V.SCONTO_TOTALE), 'FM9999990.00', 'NLS_NUMERIC_CHARACTERS = '',.''') AS SCONTO_TOTALE
FROM VIEW_EXPORT_IBAN_AGGIORNATI V
INNER JOIN DOMANDA D ON D.ID = V.ID_DOMANDA
INNER JOIN ACCOUNT A ON A.ID = D.ID_ACCOUNT
INNER JOIN ACCOUNT_ANAGRAFICA AA ON AA.CODICE_FISCALE = A.CODICE_FISCALE
WHERE V.LOTTO = :LOTTO
AND V.STATO = 2
GROUP BY
AA.CODICE_FISCALE, AA.COGNOME, AA.NOME, AA.SESSO,
AA.COMUNE_NASCITA, AA.DATA_NASCITA,
AA.INDIRIZZO_RESIDENZA, AA.CAP_RESIDENZA, AA.COMUNE_RESIDENZA,
AA.PROV_NASCITA, V.IBAN
) T
WHERE T.SCONTO_TOTALE > 0
ORDER BY T.Codice_Fiscale ASC
";
$query = $con->prepare($sql);
$query->bindParam(":LOTTO", $lotto);
try {
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
echo $exc->getMessage();
}
return $res;
}
public static function getIdDomandaFromSconto($idSconto = 0) {
global $con;
$return = array();
$return['id_domanda'] = -999;
if ($idSconto > 0) {
$sql = "SELECT ID_DOMANDA FROM " . self::TABLE_NAME . " WHERE ID=:ID";
$query = $con->prepare($sql);
$query->bindParam(":ID", $idSconto);
try {
$query->execute();
$res = $query->fetch(PDO::FETCH_ASSOC);
$return['id_domanda'] = $res['ID_DOMANDA'] > 0 ? $res['ID_DOMANDA'] : -999;
} catch (Exception $exc) {
echo $exc->getMessage();
}
}
return $return;
}
public static function getDrsFromLotto($lotto = 0) {
global $con;
$return = array();
$return['NUMERO_DRS'] = "";
$return['DATA_DRS'] = "";
$sel = $con->prepare("SELECT NUMERO_DRS, DATA_DRS FROM ESPORTAZIONI WHERE LOTTO=:LOTTO");
$sel->bindParam(":LOTTO", $lotto);
try {
$sel->execute();
$it = $sel->fetch(PDO::FETCH_ASSOC);
$return['NUMERO_DRS'] = $it['NUMERO_DRS'];
$return['DATA_DRS'] = $it['DATA_DRS'];
} catch (PDOException $exc) {
// echo $exc->getMessage();
}
return $return;
}
public static function getLottoFromRecord($id = 0) {
global $con;
$return = array();
$return['LOTTO'] = 0;
$sel = $con->prepare("SELECT LOTTO FROM " . self::TABLE_NAME . " WHERE ID=:ID");
$sel->bindParam(":ID", $id);
try {
$sel->execute();
$it = $sel->fetch(PDO::FETCH_ASSOC);
$return['LOTTO'] = $it['LOTTO'];
} catch (PDOException $exc) {
// echo $exc->getMessage();
}
return $return;
}
public static function SetCambiaLotto($from = 0, $to) {
global $con;
$res = array();
if (intval($from) > 0 && intval($to) > 0) {
$sql = "CALL AGGIORNA_LOTTO_DOMANDA_SCONTI(" . $from . ", ".$to.")";
//echo $sql;exit();
$query = $con->prepare($sql);
try {
if ($query->execute()) {
$res['esito'] = 1;
}
} catch (Exception $exc) {
$res['descrizioneErrore'] = $exc->getMessage();
}
}
return $res;
}
}