0) { $sconto = new DomandaSconti($id_sconto); $destinationPath = 'biglietti'; if (isset($_POST['type'])) { if ($_POST['type'] == 'biglietto') { $fileName = trim($sconto->FILEPATH_BIGLIETTO); } elseif ($_POST['type'] == 'imbarco') { $fileName = trim($sconto->FILEPATH_CARTAIMBARCO); } elseif ($_POST['type'] == 'integrazione') { $destinationPath = 'integrazione'; $integrazione = RichiestaIntegrazione::loadFromDomanda($sconto->ID); $fileName = trim($integrazione->FILEPATH_RISPOSTA); } } //$istanza = Domanda::loadDomandaFromAccount(); $istanza = new Domanda($sconto->ID_DOMANDA); //$LoggedAccount->checkAuthShowDomandaPage($istanza->ID); $folder = $istanza->generateDirForUpload(ROOT_UPLOAD_PRESENTAZIONE, $destinationPath); $filePath = $folder . '/' . $fileName; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($filePath)); ob_clean(); flush(); readfile($filePath); exit; } exit; } function downloadFile() { global $LoggedAccount; $id_allegato = intval($_POST['id']); if ($id_allegato > 0) { $allegato = new Allegati($id_allegato); if (isset($_POST['file'])) { $fileName = trim($_POST['file']); } else { $fileName = $allegato->FILEPATH; } $domanda = new Domanda($allegato->ID_DOMANDA); //$LoggedAccount->checkAuthShowDomandaPage($domanda->ID); $documenti_bando = new DocumentiBando($allegato->ID_DOCUMENTO); $pathInfo = $documenti_bando->getPathInfoDocumento(); $folder = $domanda->generateDirForUpload(ROOT_UPLOAD_PRESENTAZIONE, $pathInfo["PATH_DOCUMENTO"]); $filePath = $folder . '/' . $fileName; if (filesize($filePath)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($filePath)); ob_clean(); flush(); readfile($filePath); } else { echo "Il file non esiste!"; } exit; } exit; } function downloadIstanza() { global $LoggedAccount; $response = Utils::initDefaultResponse(); $id_domanda = intval($_POST['id']); if ($id_domanda > 0) { $domanda = new Domanda($id_domanda); } if ($domanda->STATO == PREPARATA) { $filePath = File::getFolderFromDomanda($domanda, ROOT_UPLOAD_PRESENTAZIONE); $filePath .= "/domanda_generata/" . $domanda->ALLEGATO_GENERATO; if (file_exists($filePath) && filesize($filePath) > 0) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($domanda->ALLEGATO_GENERATO)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($filePath)); ob_clean(); flush(); readfile($filePath); exit; } else { echo "Si prega di procedere alla generazione del file."; } } else { $response['erroreDescrizione'] = 'Operazione non consentita in questa fase.'; exit; } exit; } function downloadProtocollo() { global $LoggedAccount; $response = Utils::initDefaultResponse(); $id_domanda = intval($_POST['id']); if ($id_domanda > 0) { $domanda = new Domanda($id_domanda); } if ($domanda->STATO == PREPARATA) { $filePath = File::getFolderFromDomanda($domanda, ROOT_UPLOAD_PRESENTAZIONE); $filePath .= "/domanda_protocollo/" . $domanda->FILEPATH_PROTOCOLLO; if (file_exists($filePath) && filesize($filePath) > 0) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($domanda->FILEPATH_PROTOCOLLO)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($filePath)); ob_clean(); flush(); readfile($filePath); exit; } else { echo "Si prega di procedere alla generazione del file."; } } else { $response['erroreDescrizione'] = 'Operazione non consentita in questa fase.'; exit; } exit; } function printAllegato($allegato, $domanda) { global $LoggedAccount; if (!empty($allegato) && !empty($domanda)) { if ($allegato->FILEPATH != "") { $file = $allegato->FILEPATH; if ($LoggedAccount->checkIstitutoFromLoggedAccount($domanda->CODICE_ISTITUTO)) { // controllo proprietario domanda switch ($allegato->TIPO_DOCUMENTO) { case TIPO_UPLOAD_OBBLIGATORIO: $basePath = File::getFolderFromDomanda($domanda, ROOT_UPLOAD_PRESENTAZIONE); $basePath .= '/obbligatori/'; break; case TIPO_UPLOAD_OPZIONALE: $basePath = File::getFolderFromDomanda($domanda, ROOT_UPLOAD_PRESENTAZIONE); $basePath .= '/opzionali/'; break; case TIPO_UPLOAD_ISTANZA: $basePath = File::getFolderFromDomanda($domanda, ROOT_UPLOAD_PRESENTAZIONE); $basePath .= '/istanza/'; break; case TIPO_UPLOAD_CONTRIBUTO: $basePath = File::getFolderFromDomanda($domanda, ROOT_UPLOAD_EROGAZIONE); $basePath .= '/contributo/'; break; } $filePath = $basePath . $file; if (file_exists($filePath) && filesize($filePath) > 0) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($filePath)); ob_clean(); flush(); readfile($filePath); exit; } else { $msg = "Non è possibile visualizzare il file richiesto, contattare il supporto tecnico (1316)."; } } else { $msg = "Accesso non autorizzato"; } } else { $msg = "Non è possibile visualizzare il file richiesto, contattare il supporto tecnico (1321)."; } } else { $msg = "Non è possibile visualizzare il file richiesto, contattare il supporto tecnico (1325)."; } echo $msg; } function downloadEstrazioni() { global $TIPO_RICHIESTA; $success = true; $result = Utils::initDefaultResponse(); $lotto = intval($_POST['lotto']); $stato = intval($_POST['stato']); $rec = DomandaSconti::listLottoFromExport($lotto, $stato); $estrazione = new Esportazioni($lotto); $dataArray = array(); $row = 0; $intestazione = true; foreach ($rec as $key => $value) { if ($key == 0 && $intestazione) { foreach ($value as $k => $v) { $dataArray[$row][] = $k; } } $row++; $dataArray[$row] = $value; } //Utils::print_array($dataArray);exit(); $prefile = 'estrazione'; $basepath = ROOT_EROGAZIONE . "ESTRAZIONI/"; if (!is_dir($basepath)) @mkdir($basepath, 0777, true); $file = $lotto . "_" . $stato . "_" . $prefile . "_" . $TIPO_RICHIESTA[$estrazione->TIPO] . "_" . time() . ".xlsx"; if (file_exists($basepath . $file)) @unlink($basepath . $file); $export = new SimpleXLSXGen(); $report = $basepath . $file; $export->fromArray($dataArray)->saveAs($report); ob_clean(); if (file_exists($report)) { $url = $report; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($url)); ob_clean(); flush(); readfile($url); exit; } else { echo "Il file non esiste!"; } exit; } function downloadMandatiXls() { global $TIPO_RICHIESTA; $success = true; $result = Utils::initDefaultResponse(); $lotto = intval($_POST['lotto']); $stato = intval($_POST['stato']); $rec = DomandaSconti::listLottoFromMandatiXls($lotto, $stato); $estrazione = new Esportazioni($lotto); $dataArray = array(); $row = 0; $intestazione = true; foreach ($rec as $key => $value) { if ($key == 0 && $intestazione) { foreach ($value as $k => $v) { $dataArray[$row][] = $k; } } $row++; $dataArray[$row] = $value; } //Utils::print_array($dataArray);exit(); $prefile = 'mandato'; $basepath = ROOT_EROGAZIONE . "MANDATI/"; if (!is_dir($basepath)) @mkdir($basepath, 0777, true); $file = $lotto . "_" . $stato . "_" . $prefile . "_" . $TIPO_RICHIESTA[$estrazione->TIPO] . "_" . time() . ".xlsx"; if (file_exists($basepath . $file)) @unlink($basepath . $file); $export = new SimpleXLSXGen(); $report = $basepath . $file; $export->fromArray($dataArray)->saveAs($report); ob_clean(); if (file_exists($report)) { $url = $report; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($url)); ob_clean(); flush(); readfile($url); exit; } else { echo "Il file non esiste!"; } exit; } function downloadMandatiXml() { $success = true; $result = Utils::initDefaultResponse(); $lotto = intval($_POST['lotto']); $stato = intval($_POST['stato']); $basepath = ROOT_EROGAZIONE . "MANDATI/"; if (!is_dir($basepath)) @mkdir($basepath, 0777, true); $nomeFile = time() . "_mandati.zip"; $destination = $basepath . $nomeFile; $zip = new ZipArchive(); $resZip = $zip->open($destination, ZIPARCHIVE::CREATE); //var_dump($resZip); if ($resZip !== TRUE) { $res['success'] = false; $res['descrizioneErrore'] = 'Errore: impossibile creare il file zip'; exit(json_encode($res)); } $record = DomandaSconti::listLottoFromMandatiXml($lotto, $stato); $blocchi = array_chunk($record, 100); $num = 0; foreach ($blocchi as $rec) { $xml_mandati = ""; $tot_Importo_Lordo = 0; foreach ($rec as $key => $value) { $xml_mandati .= ""; foreach ($value as $k => $v) { $xml_mandati .= "<" . $k . ">" . $v . ""; if ($k == 'Importo_Lordo') { $tot_Importo_Lordo += $v; } } $xml_mandati .= ""; } $tagXml_Id_mandato = TAGXML_ID_MANDATO; $tagXml_Capitolo = TAGXML_CAPITOLO; $tagXml_Anno_Provenienza = TAGXML_ANNO_PROVENIENZA; $tagXml_Impegno = TAGXML_IMPEGNO; $tagXml_Progressivo_DLQ = TAGXML_PROGRESSIVO_DLQ; $tagXml_Tipo_Mandato = TAGXML_TIPO_MANDATO; $tagXml_Collettivo = TAGXML_COLLETTIVO; $tagXml_Territorio = TAGXML_TERRITORIO; $tagXml_Importo_Lordo = number_format($tot_Importo_Lordo, 2, '.', ''); $tagXml_Importo_Netto = number_format($tot_Importo_Lordo, 2, '.', ''); $tagXml_Descrizione = TAGXML_DESCRIZIONE; $tagXml_Nr_Beneficiari = count($rec); $tagXml_Provincia = TAGXML_PROVINCIA; $tagXml_Comune = TAGXML_COMUNE; $tagXml_Modalita = TAGXML_MODALITA; $tagXml_Codice_SIOPE = TAGXML_CODICE_SIOPE; $tagXml_Impegno_Contestuale = TAGXML_IMPEGNO_CONTESTUALE; $tagXml_Data_Scadenza = TAGXML_DATA_SCADENZA; $string = "" . $tagXml_Id_mandato . "" . $tagXml_Capitolo . "" . $tagXml_Anno_Provenienza . "" . $tagXml_Impegno . "" . $tagXml_Progressivo_DLQ . "" . $tagXml_Tipo_Mandato . "" . $tagXml_Collettivo . "" . $tagXml_Territorio . "" . $tagXml_Importo_Lordo . "" . $tagXml_Importo_Netto . "" . $tagXml_Descrizione . "" . $tagXml_Nr_Beneficiari . "" . $tagXml_Provincia . "" . $tagXml_Comune . "" . $tagXml_Modalita . "" . $tagXml_Codice_SIOPE . "" . $tagXml_Impegno_Contestuale . "" . $tagXml_Data_Scadenza . "" . $xml_mandati . ""; $num++; $prefile = 'mandato-' . $num; $file = $lotto . "_" . $stato . "_" . $prefile . "_" . time() . ".xml"; if (file_exists($basepath . $file)) @unlink($basepath . $file); $report = $basepath . $file; $xml = simplexml_load_string($string); $xml->asXML($report); $zip->addFile($basepath . $file, $file); } $zip->close(); $report = $destination; //Utils::print_array($dataArray);exit(); ob_clean(); if (file_exists($report)) { $url = $report; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($nomeFile)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($url)); ob_clean(); flush(); readfile($url); exit; } else { echo "Il file non esiste!"; } exit; } function downloadListaMandatiXls() { $success = true; $result = Utils::initDefaultResponse(); $lotto = intval($_POST['lotto']); $stato = intval($_POST['stato']); $basepath = ROOT_EROGAZIONE . "MANDATI/"; if (!is_dir($basepath)) @mkdir($basepath, 0777, true); $nomeFile = $lotto . "_" . $stato . "_mandati_" . time() . ".zip"; $destination = $basepath . $nomeFile; $zip = new ZipArchive(); $resZip = $zip->open($destination, ZIPARCHIVE::CREATE); //var_dump($resZip); if ($resZip !== TRUE) { $res['success'] = false; $res['descrizioneErrore'] = 'Errore: impossibile creare il file zip'; exit(json_encode($res)); } $record = DomandaSconti::listLottoFromPagamentiXls($lotto, $stato); $blocchi = array_chunk($record, 500); $num = 0; foreach ($blocchi as $rec) { $dataArray = array(); $row = 0; foreach ($rec as $key => $value) { if ($key == 0) { foreach ($value as $k => $v) { $dataArray[$row][] = $k; } } $row++; $dataArray[$row] = $value; } $num++; $prefile = 'mandato-' . $num; $file = $lotto . "_" . $stato . "_" . $prefile . "_" . time() . ".xlsx"; if (file_exists($basepath . $file)) @unlink($basepath . $file); $export = new SimpleXLSXGen(); $reportXls = $basepath . $file; $export->fromArray($dataArray)->saveAs($reportXls); $zip->addFile($basepath . $file, $file); } $zip->close(); $report = $destination; //Utils::print_array($dataArray);exit(); ob_clean(); if (file_exists($report)) { $url = $report; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($nomeFile)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($url)); ob_clean(); flush(); readfile($url); exit; } else { echo "Il file non esiste!"; } exit; } function downloadMandatoPdf() { $nomeFile = $_POST['nomeFile']; $basepath = ROOT_UPLOAD_DRS; if (!is_dir($basepath)) @mkdir($basepath, 0777, true); $report = $basepath . $nomeFile; ob_clean(); if (file_exists($report)) { $url = $report; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($nomeFile)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($url)); ob_clean(); flush(); readfile($url); exit; } else { echo "Il file non esiste!"; } exit; } function downloadDrsPdf() { $nomeFile = $_POST['nomeFile']; $basepath = ROOT_EROGAZIONE . "MANDATI/"; if (!is_dir($basepath)) @mkdir($basepath, 0777, true); $report = $basepath . $nomeFile; ob_clean(); if (file_exists($report)) { $url = $report; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($nomeFile)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($url)); ob_clean(); flush(); readfile($url); exit; } else { echo "Il file non esiste!"; } exit; } function downloadEstrazioneVistaXls() { $success = true; $result = Utils::initDefaultResponse(); $rec = DomandaSconti::listEsportVista(); $dataArray = array(); $row = 0; $intestazione = true; foreach ($rec as $key => $value) { if ($key == 0 && $intestazione) { foreach ($value as $k => $v) { $dataArray[$row][] = $k; } $dataArray[$row][] = "STUDENTE"; $dataArray[$row][] = "DISABILE"; } $row++; foreach ($value as $k => $v) { if ($k == "FLAG") { $value['STUDENTE'] = Utils::isStudente($v) == 1 ? "SI" : "NO"; $value['DISABILE'] = Utils::isDisable($v) == 1 ? "SI" : "NO"; } } $dataArray[$row] = $value; } //Utils::print_array($dataArray);exit(); $prefile = 'estrazione'; $basepath = ROOT_EROGAZIONE . "ESTRAZIONI/"; if (!is_dir($basepath)) @mkdir($basepath, 0777, true); $file = "VISTA_ALL_" . $prefile . "_" . time() . ".xlsx"; if (file_exists($basepath . $file)) @unlink($basepath . $file); $export = new SimpleXLSXGen(); $report = $basepath . $file; $export->fromArray($dataArray)->saveAs($report); ob_clean(); if (file_exists($report)) { $url = $report; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($url)); ob_clean(); flush(); readfile($url); exit; } else { echo "Il file non esiste!"; } exit; } function creaFileDecretiXlsx($lotto, $stato, $omissis, $priorita) { $intestazione = array("ID Richiesta", "COGNOME", "NOME", "CODICE FISCALE", "DATA DI NASCITA", "Località", "Provincia", "Importo sconto", "IBAN"); $dataArray = DomandaSconti::exportDecreti($lotto, $stato, $omissis); array_unshift($dataArray, $intestazione); $stringaPre = ""; if ($priorita == 0) { $stringaPre = "_Residenti"; } else { $stringaPre = "_Prioritari_"; } $stringaOm = ""; if ($omissis == 1) { $stringaOm = "_OMISSIS_"; } $prefile = 'Decreti'; $basepath = ROOT_EROGAZIONE . "ESTRAZIONI/"; if (!is_dir($basepath)) @mkdir($basepath, 0777, true); $file = $prefile . $stringaPre . "_" . $lotto . "_" . $stringaOm . time() . ".xlsx"; if (file_exists($basepath . $file)) @unlink($basepath . $file); $export = new SimpleXLSXGen(); $report = $basepath . $file; $export->fromArray($dataArray)->saveAs($report); return array( 'file' => $file, 'path' => $report ); } function exportDecreti() { $success = true; $result = Utils::initDefaultResponse(); $lotto = intval($_POST['lotto']); $stato = intval($_POST['stato']); $omissis = intval($_POST['omissis']); $priorita = intval($_POST['priorita']); $xlsx = creaFileDecretiXlsx($lotto, $stato, $omissis, $priorita); $file = $xlsx['file']; $report = $xlsx['path']; ob_clean(); if (file_exists($report)) { $url = $report; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($url)); ob_clean(); flush(); readfile($url); exit; } else { echo "Il file non esiste!"; } exit; } function exportAnagrafiche() { $success = true; $result = Utils::initDefaultResponse(); $lotto = intval($_POST['lotto']); $stato = intval($_POST['stato']); $priorita = intval($_POST['priorita']); $intestazione = array("COGNOME", "NOME", "CODICE FISCALE", "SESSO", "LUOGO DI NASCITA", "PROV", "DATA DI NASCITA", "INDIRIZZO", "CAP", "LOCALITA", "IBAN", "SCONTO_TOTALE"); $dataArray = DomandaSconti::exportAnagrafiche($lotto, $stato); $dataFormattata = array(); foreach ($dataArray as $row) { // Formatta la data nel formato corretto $row['DATA DI NASCITA'] = date('Y-m-d', strtotime($row['DATA DI NASCITA'])); $dataFormattata[] = $row; // Aggiungi la riga formattata a un nuovo array } array_unshift($dataFormattata, $intestazione); $stringaPre = ""; if ($priorita == 0) { $stringaPre = "_Residenti"; } else { $stringaPre = "_Prioritari_"; } // Utils::print_array($dataFormattata); // exit(); $prefile = 'Anagrafiche'; $basepath = ROOT_EROGAZIONE . "ESTRAZIONI/"; if (!is_dir($basepath)) @mkdir($basepath, 0777, true); $file = $prefile . $stringaPre . "_" . $lotto . "_" . time() . ".xlsx"; if (file_exists($basepath . $file)) @unlink($basepath . $file); $export = new SimpleXLSXGen(); $report = $basepath . $file; $export->fromArray($dataFormattata)->saveAs($report); ob_clean(); if (file_exists($report)) { $url = $report; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($url)); ob_clean(); flush(); readfile($url); exit; } else { echo "Il file non esiste!"; } exit; } function downloadAnagraficheXls() { $success = true; $result = Utils::initDefaultResponse(); $lotto = intval($_POST['lotto']); $stato = intval($_POST['stato']); $basepath = ROOT_EROGAZIONE . "ANAGRAFICHE/"; if (!is_dir($basepath)) { @mkdir($basepath, 0777, true); } $nomeFile = $lotto . "_" . $stato . "_anagrafiche_" . time() . ".zip"; $destination = $basepath . $nomeFile; $zip = new ZipArchive(); $resZip = $zip->open($destination, ZIPARCHIVE::CREATE); if ($resZip !== true) { $res['success'] = false; $res['descrizioneErrore'] = 'Errore: impossibile creare il file zip'; exit(json_encode($res)); } // Recupero dati e formattazione $dataArray = DomandaSconti::exportAnagrafiche($lotto, $stato); $dataFormattata = array_map(function ($row) { $row['DATA DI NASCITA'] = date('Y-m-d', strtotime($row['DATA DI NASCITA'])); return array_slice($row, 0, -2); // Rimuove le ultime 2 colonne }, $dataArray); // Divisione in blocchi da 500 $blocchi = array_chunk($dataFormattata, 500); $start = 1; $cartelleCreate = []; foreach ($blocchi as $index => $rec) { $end = $start + count($rec) - 1; $folderName = "Anagrafiche_{$start}-{$end}"; $folderPath = $basepath . $folderName . "/"; if (!is_dir($folderPath)) { @mkdir($folderPath, 0777, true); $cartelleCreate[] = $folderPath; } // Creazione file Excel $fileName = "TemplateImportAnagrafica.xlsx"; $filePath = $folderPath . $fileName; $dataArray = []; $row = 0; foreach ($rec as $key => $value) { if ($key == 0) { $dataArray[$row] = array_keys($value); $row++; } $dataArray[$row] = array_values($value); $row++; } $export = new SimpleXLSXGen(); $export->addSheet($dataArray, 'template')->saveAs($filePath); // Aggiunta file allo ZIP $zip->addFile($filePath, "$folderName/$fileName"); $start = $end + 1; } $zip->close(); $report = $destination; foreach ($cartelleCreate as $folder) { deleteFolder($folder); } //Utils::print_array($dataArray);exit(); ob_clean(); if (file_exists($report)) { $url = $report; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . File::GetValidFilename($nomeFile)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($url)); ob_clean(); flush(); readfile($url); exit; } else { echo "Il file non esiste!"; } exit; } function uploadDecretoLiquidazione() { $result = Utils::initDefaultResponse(); $lotto = isset($_POST['LOTTO']) ? intval($_POST['LOTTO']) : 0; if ($lotto <= 0) { $result['erroreDescrizione'] = 'Lotto non valido.'; exit(json_encode($result)); } $esportazione = new Esportazioni($lotto); if (trim($esportazione->FILEPATH_DRS) == '') { $result['erroreDescrizione'] = 'Generare prima il DRS per abilitare il caricamento del decreto.'; exit(json_encode($result)); } if (trim($esportazione->FILEPATH) != '') { $result['erroreDescrizione'] = 'Il decreto e gia stato caricato.'; exit(json_encode($result)); } if (!isset($_FILES['FILEPATH_UPLOAD']) || $_FILES['FILEPATH_UPLOAD']['error'] != UPLOAD_ERR_OK) { $result['erroreDescrizione'] = 'Selezionare un file valido da caricare.'; exit(json_encode($result)); } if (File::maxDimension($_FILES['FILEPATH_UPLOAD']['size'], MAX_SIZE_FILE_UPLOAD)) { $result['erroreDescrizione'] = 'Il file caricato supera la dimensione massima consentita.'; exit(json_encode($result)); } $estensione = strtolower(pathinfo($_FILES['FILEPATH_UPLOAD']['name'], PATHINFO_EXTENSION)); if (!in_array($estensione, array('pdf', 'p7m'))) { $result['erroreDescrizione'] = 'Formato file non consentito. Caricare un file PDF o P7M.'; exit(json_encode($result)); } $folder = File::createPath(ROOT_UPLOAD_DRS); if ($folder == '') { $result['erroreDescrizione'] = 'Al momento non e possibile creare la cartella di destinazione.'; exit(json_encode($result)); } $nomeFile = 'DECRETO_LIQUIDAZIONE_LOTTO_' . $lotto . '_' . date('YmdHis') . '_' . File::GetValidFilename($_FILES['FILEPATH_UPLOAD']['name'], '', array('.pdf')); $filePath = $folder . "/" . $nomeFile; if (!move_uploaded_file($_FILES['FILEPATH_UPLOAD']['tmp_name'], $filePath)) { $result['erroreDescrizione'] = 'Errore durante il salvataggio del file caricato.'; exit(json_encode($result)); } $hashfile = File::md5File($filePath); if (!file_exists($filePath) || empty($hashfile)) { if (file_exists($filePath)) { unlink($filePath); } $result['erroreDescrizione'] = 'Errore durante la verifica del file caricato.'; exit(json_encode($result)); } $esportazione->FILEPATH = $nomeFile; $result = $esportazione->Save(); if ($result['esito'] == 1) { $result['nomeFile'] = $nomeFile; } else { unlink($filePath); } exit(json_encode($result)); } function exportDecretoGenerale() { /*error_reporting(E_ALL); ini_set('display_errors', 1);*/ set_time_limit(0); ini_set('max_execution_time', 0); require_once ROOT . "lib/modules/tcpdf/lang/ita.php"; require_once ROOT . "lib/modules/tcpdf/tcpdf.php"; // 1. RECUPERO DATI DALLA CHIAMATA POST $lotto = isset($_POST['LOTTO']) ? intval($_POST['LOTTO']) : (isset($_POST['lotto']) ? intval($_POST['lotto']) : 0); $stato = isset($_POST['STATO']) ? intval($_POST['STATO']) : (isset($_POST['stato']) ? intval($_POST['stato']) : RS_APPROVATA); $tipo = isset($_POST['TIPO']) ? intval($_POST['TIPO']) : 0; $numero_ddg = trim($_POST['NUMERO_DRS']); $mese_riferimento = trim($_POST['MESE_RIFERIMENTO']); $capitolo_spesa = trim($_POST['CAPITOLO_BILANCIO']); $anno_finanziario = trim($_POST['ANNO_FINANZIARIO']); $codice_finanziario = trim($_POST['CODICE_FINANZIARIO']); $data_drs = trim($_POST['DATA_DRS']); $data_emissione = Date::dateOracleDateNascita($data_drs, "d-m-Y"); $result = Utils::initDefaultResponse(); // ============================================================================== // 2. DATI DINAMICI (DA RECUPERARE DAL DATABASE TRAMITE IL LOTTO) // ============================================================================== $totaliEsportazione = DomandaSconti::GetTotaleFromLotto($lotto); $importo_totale = number_format($totaliEsportazione['SCONTO'], "2", ',', '.'); $htmlCategotia = ''; if ($tipo == TIPO_PRIORITARI){ $htmlCategotia = 'appartenenti alle categorie prioritarie'; } $esportazione = new Esportazioni($lotto); if (isset($_POST['actionFile']) && $_POST['actionFile'] == 'saveFile' && trim($esportazione->FILEPATH) != '') { $result['erroreDescrizione'] = 'Il decreto e gia stato caricato: il mandato non e piu generabile.'; exit(json_encode($result)); } $esportazione->TIPO = $tipo; $esportazione->NUMERO_DRS = $numero_ddg; $esportazione->DATA_DRS = Date::dateOracleDateNascita($data_drs, "d-M-Y"); $esportazione->IMPORTO_MANDATO = $totaliEsportazione['SCONTO']; $esportazione->MESE_RIFERIMENTO = $mese_riferimento; $esportazione->CAPITOLO_BILANCIO = $capitolo_spesa; $esportazione->ANNO_FINANZIARIO = $anno_finanziario; $esportazione->CODICE_FINANZIARIO = $codice_finanziario; // ============================================================================== // 3. GESTIONE LOGO BASE64 // ============================================================================== // INCOLLA QUI IL TUO BASE64 COMPLETO $imgBase64 = "data:image/jpeg;base64,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Ij4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjMtMDctMDZUMTE6NTg6MjMrMDI6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIzLTA4LTAzVDEyOjI0OjE5KzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzLTA4LTAzVDEyOjI0OjE5KzAyOjAwIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YmZjMTZjYTctODJiOC1mYzQ0LTk3ZjMtMjNmN2MyMTBhMTkwIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZWI1NzNjYWUtMDVmMi02ODQ1LWE2OTItMDRjN2U5ZjFmNzhiIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YTVkM2Y5ODQtYTVkMS1lZTRjLThlZDItMjg2MzI4NzJmMTMxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphNWQzZjk4NC1hNWQxLWVlNGMtOGVkMi0yODYzMjg3MmYxMzEiIHN0RXZ0OndoZW49IjIwMjMtMDctMDZUMTE6NTg6MjMrMDI6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ODU1NzA5ZGItNzRkZS1mZjQ3LWJhMzEtYWE5YzlkNGM0NmM3IiBzdEV2dDp3aGVuPSIyMDIzLTA4LTAzVDEyOjE4OjE0KzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjkwOTY3NWVmLTViZGEtZjE0ZS04NWI4LTY2MDlkNmZhOWUxOCIgc3RFdnQ6d2hlbj0iMjAyMy0wOC0wM1QxMjoyNDoxOSswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gaW1hZ2UvcG5nIHRvIGltYWdlL2pwZWciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGltYWdlL3BuZyB0byBpbWFnZS9qcGVnIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiZmMxNmNhNy04MmI4LWZjNDQtOTdmMy0yM2Y3YzIxMGExOTAiIHN0RXZ0OndoZW49IjIwMjMtMDgtMDNUMTI6MjQ6MTkrMDI6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTA5Njc1ZWYtNWJkYS1mMTRlLTg1YjgtNjYwOWQ2ZmE5ZTE4IiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6Mjk4NTU0MDgtYjRlMC04NzQ5LTk3ZjMtZmFlZjcwZDRjNGVjIiBzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YTVkM2Y5ODQtYTVkMS1lZTRjLThlZDItMjg2MzI4NzJmMTMxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/7gAOQWRvYmUAZEAAAAAB/9sAhAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMDAwMDAwMDAQEBAQEBAQEBAQECAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwP/wAARCACWAIEDAREAAhEBAxEB/90ABAAR/8QBogAAAAYCAwEAAAAAAAAAAAAABwgGBQQJAwoCAQALAQAABgMBAQEAAAAAAAAAAAAGBQQDBwIIAQkACgsQAAIBAwQBAwMCAwMDAgYJdQECAwQRBRIGIQcTIgAIMRRBMiMV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"; // 1. Pulisce l'intestazione iniziale per ricavare SOLO il codice Base64 puro $imgSrc = preg_replace('#^data:image/[^;]+;base64,#', '', $imgBase64); // 2. Crea il tag img usando @ seguito dal codice Base64 puro (sintassi nativa TCPDF) $imgHtml = ''; // ============================================================================== // 4. COSTRUZIONE DEL TEMPLATE HTML PER IL PDF (TESTO E LAYOUT INTEGRALI) // ============================================================================== // INTESTAZIONE $htmlIntestazione = << D.D.G. n. $numero_ddg Repubblica Italiana

$imgHtml

Regione Siciliana
Assessorato delle Infrastrutture e della Mobilità
Dipartimento regionale delle Infrastrutture della Mobilità e dei Trasporti
Servizio 1 - Autotrasporto Persone – Trasporto Regionale Aereo e Marittimo


Il Dirigente Generale


EOD; // PREMESSE IMPAGINATE A TABELLA $htmlPremesse = << Visto lo Statuto della Regione siciliana; Visto il D.P.R. 17 dicembre 1953, n. 1113, come modificato ed integrato dal D.P.R. 6 agosto 1981, n. 485, in materia di comunicazioni e trasporti; Visto il decreto legislativo 11 settembre 2000, n. 296, "Norme di attuazione dello Statuto speciale della Regione Siciliana", recante ulteriori modifiche ed integrazioni al D.P.R. 17 dicembre 1953 n. 1113, in materia di comunicazioni e trasporti; Visto il D.P.R. 28 febbraio 1979, n. 70, con il quale è stato approvato il Testo Unico delle leggi sull'Ordinamento del Governo e dell'Amministrazione regionale; Visto il Regolamento n. 1008/08 del Consiglio della Comunità Europea del 24 novembre 2008, recante norme comuni per la prestazione di servizi aerei per la Comunità; Visto il Regolamento n. 2408/92/CEE del Consiglio della Comunità Europea del 23 luglio 1992 sull'accesso dei vettori aerei della Comunità alle rotte intracomunitarie; Visto l'art. 135 della legge 23 dicembre 2000, n. 388 inerente la "Continuità territoriale per la Sicilia"; Visti gli artt. 36 della legge regionale 3 maggio 2001, e 16 della legge regionale 14 aprile 2006, n. 16 in materia di interventi per la continuità territoriale aerea; Visto l'art. 18 del Decreto Legge 22 giugno 2012, n. 83, convertito, con modificazioni, in legge 7 agosto 2012, n. 134; Visto l'art. 1, comma 16 lettera c), della legge 6 novembre 2012, n. 190, concernente "Disposizioni per la prevenzione e la repressione della corruzione e dell'illegalità nella Pubblica Amministrazione"; Visto l'art. 68, comma 5, della legge regionale 12 agosto 2014, n. 21, e ss. mm. e ii., recante disposizioni in materia di pubblicazione sul sito internet della Regione Siciliana dei decreti dirigenziali; Visto il D.lgs. 23 giugno 2011, n. 118 "Disposizioni in materia di armonizzazione dei sistemi contabili e degli schemi di bilancio delle Regioni, degli enti locali e dei loro organismi, a norma degli articoli 1 e 2 della legge 5 maggio 2009, n. 42 e ss. mm. e ii.", recepito dall'art. 11 della legge regionale 13 gennaio 2015, n. 3 "Autorizzazione all'esercizio provvisorio del bilancio della Regione per l'anno 2015. Disposizioni in materia di armonizzazione dei bilanci", pubblicata nella G.U.R.S. 16 gennaio 2015, n. 3, Supplemento Ordinario n. 2, come modificato dall'art. 6, comma 10, lettere a) e a-bis), della legge regionale 7 maggio 2015, n. 9; Visto il Decreto Legislativo 27 dicembre 2019, n. 158 "Norme di attuazione dello statuto speciale della Regione Siciliana in materia di armonizzazione dei sistemi contabili, dei conti giudiziali e dei controlli"; Visto il Decreto Presidenziale 5 aprile 2022, n. 9, "Regolamento di attuazione del Titolo II della legge regionale 16 dicembre 2008, n. 19. Rimodulazione degli assetti organizzativi dei Dipartimenti regionali ai sensi all'articolo 13, comma 3, della legge regionale 17 marzo 2016, n. 3. Modifica del D.P.R. 18 gennaio 2013, n. 6 e ss. mm. e ii.", pubblicato in GURS del 1 giugno 2022, n. 25; Vista la Delibera di Giunta n. 415 del 15 settembre 2020 "Snellimento dell'attività di controllo di alcune fattispecie di atti sottoposti al controllo delle Ragionerie Centrali - Atto di indirizzo"; Visto l'art. 9 della legge regionale 15 aprile 2021, n. 9 recante "Disposizioni programmatiche e correttive per l'anno 2021. Legge di stabilità regionale"; Vista la Circolare n. 11 del 1 luglio 2021 della Ragioneria Generale della Regione concernente il citato art. 9 della legge regionale n. 9/2021; Visto Decreto del Presidente della Regione Siciliana n. 451 del 13 febbraio 2023 con il quale, in esecuzione della deliberazione della Giunta regionale n. 87 del 10 febbraio 2023, all'Arch. Salvatore Lizzio, è stato conferito, l'incarico di Dirigente Generale del Dipartimento Regionale delle Infrastrutture della mobilità e dei Trasporti dell'Assessorato Regionale delle Infrastrutture e della Mobilità ed il decreto del Presidente della Regione Siciliana n. 4351/FP del 27 settembre 2024 con il quale, in esecuzione della deliberazione della Giunta regionale n. 307 del 12 settembre 2024, all'arch. Salvatore Lizzio è stato prolungato il servizio e l'incarico di Dirigente Generale dello stesso citato Dipartimento fino al 31 dicembre 2026; Visto il DDG n. 23 del 15 gennaio 2026 con il quale è stato conferito l'incarico di Dirigente del Servizio 1 Autotrasporto Persone-Trasporto Regionale Aereo e Marittimo all'arch. Alberto Vecchio a decorrere dal 12 gennaio 2026; Visti gli artt. 36 della legge regionale 3 maggio 2001, n. 6 e 16 della legge regionale 14 aprile 2006, n. 16 in materia di interventi per la continuità territoriale aerea; Visto l'art. 1 commi n. 494, n. 495 e n. 496 della Legge 29 dicembre 2022, n. 197 "in attuazione all'art. 119 della Costituzione al fine di riconoscere le peculiarità delle isole e promuovere le misure necessarie a rimuovere svantaggi derivanti dall'insularità è istituito nello stato di previsione del Ministero delle infrastrutture e dei trasporti un fondo per garantire un completo ed efficace sistema di collegamenti aerei da e per la Sicilia e da e per la Sardegna"; Visto il D.M. n. 241 del 26.09.2023 del Ministro delle Infrastrutture e dei Trasporti di concerto con il Ministro dell'Economia e delle Finanze, con il quale, in attuazione dell'art. 1, comma 496 del superiore norma, le risorse destinate alle Regioni Sicilia e Sardegna sono ripartite come segue: anno 2023 2,5 M€ per ciascuna Regione e, a decorrere dal 2024, €uro 10.034.594,00 per la Regione Sicilia e €uro 4.965.406,00 per la Regione Sardegna, salvo successivo ricalcolo; Visto il D.D.G n. 3158 del 10 novembre 2023, pubblicato in GURS, di approvazione dell'avviso esplorativo "Sconto sul prezzo dei biglietti aerei ai cittadini residenti in Sicilia per la riduzione degli svantaggi derivanti dall'insularità" rivolto alle compagnie aeree; Considerato che il contributo economico riconosciuto ai passeggeri residenti nel territorio della Regione Siciliana consiste nella riduzione del 25% sul costo del biglietto aereo, e che, ai sensi della Legge del 29 dicembre 2022, n. 197, è riconosciuto in favore dei residenti con disabilità dal 67% di invalidità, studenti o residenti con basso reddito (ISEE < € 9.360,00) un ulteriore contributo economico aggiuntivo del 25% calcolato sempre sul costo totale del biglietto; Visto il D.D.G n. 3416 del 24 novembre 2023 con il quale a parziale modifica del sopracitato D.D.G. n. 3158/2023 è stato approvato l'addendum al suddetto avviso; Preso atto altresì, che con il citato addendum all'avviso approvato con il DDG 3158/2023, sono state apportate le seguenti modifiche:
1) il beneficio economico è esteso anche ai biglietti che per singola tratta abbiano un costo minore o uguale a 50 euro,
2) nelle more dell'adeguamento del sistema di vendita online da parte delle compagnie aeree aderenti, tutti gli aventi diritto, compresi quelli che decidessero di viaggiare con le altre compagnie aeree non aderenti, potranno richiedere il contributo direttamente al Dipartimento Infrastrutture, Mobilità e Trasporti, utilizzando il portale on line al seguente link: https://siciliapei.regione.sicilia.it/bandocarovoli;
3) che possono presentare istanza di rimborso anche i viaggiatori, già in possesso di biglietto acquistato a far data dalla pubblicazione del D.D.G. n. 3158/2023, ovvero dal 10 novembre 2023; Visto il D.D.G. n. 21 del 15 gennaio 2025 con il quale si approva l'estensione del periodo di validità per il riconoscimento dei contributi erogati ai soggetti beneficiari del "CONTRIBUTO SUL PREZZO DEI BIGLIETTI AEREI AI CITTADINI RESIDENTI IN SICILIA PER LA RIDUZIONE DEGLI SVANTAGGI DERIVANTI DALL'INSULARITÀ" di cui al D.D.G. n. 3158 del 10 novembre 2023 e ss. mm. ii., sino alla data del 31 dicembre 2025; Visto il D.D.G. n. 4210 del 21 novembre 2025 con il quale si approva l’estensione del periodo di validità per il riconoscimento dei contributi erogati ai soggetti beneficiari del “CONTRIBUTO SUL PREZZO DEI BIGLIETTI AEREI AI CITTADINI RESIDENTI IN SICILIA PER LA RIDUZIONE DEGLI SVANTAGGI DERIVANTI DALL'INSULARITÀ” di cui al D.D.G. n. 3158 del 10 novembre 2023 e ss. mm. ii., sino alla data del 28 febbraio 2026; Visto il D.D.G. n. 308 del 19 febbraio 2026 con il quale si approva l’estensione del periodo di validità per il riconoscimento dei contributi erogati ai soggetti beneficiari del “CONTRIBUTO SUL PREZZO DEI BIGLIETTI AEREI AI CITTADINI RESIDENTI IN SICILIA PER LA RIDUZIONE DEGLI SVANTAGGI DERIVANTI DALL'INSULARITÀ” di cui al D.D.G. n. 3158 del 10 novembre 2023 e ss. mm. ii., sino alla data del 31 luglio 2026; Vista la legge regionale 5 gennaio 2026, n. 1, "Legge di stabilità regionale 2026-2028"; Vista la legge regionale 5 gennaio 2026, n. 2 "Bilancio di previsione della Regione Siciliana per il triennio 2026/2028"; Verificata la disponibilità finanziaria sul capitolo $codice_finanziario del Bilancio della Regione Siciliana; Considerato che le istanze sono gestite tramite il software web based all'uopo predisposto ai fini dell'assegnazione dello sconto sul prezzo dei biglietti aerei ai cittadini residenti in Sicilia, in possesso dei requisiti previsti dall'avviso; Preso atto delle istanze elaborate dal gestore della piattaforma Sicilia PEI relative ai residenti in Sicilia $htmlCategotia, richiedenti il contributo pari al 25% del costo del biglietto aereo presentate nel mese di $mese_riferimento di cui all'allegato elenco; Preso atto che la somma dei contributi da liquidare delle predette istanze di $mese_riferimento ammontano a € $importo_totale, di cui all'allegato elenco; Ritenuto alla luce delle considerazioni sopra esposte, al fine di garantire un completo ed efficace sistema di collegamenti aerei da e per la Sicilia per le finalità dell'art. 1 commi 494, 495 e 496 della legge 29 dicembre 2022, n. 197 e dell'art. 13 della legge regionale 11 luglio 2023, n. 8 di dover procedere all'impegno e alla liquidazione dell'importo di €uro $importo_totale a favore dei cittadini residenti in Sicilia $htmlCategotia, di cui all'elenco allegato al presente decreto, per le istanze presentate nel mese di $mese_riferimento tramite la piattaforma regionale, relative il contributo pari al 25% del costo del biglietto aereo, da gravare sull'impegno di cui al presente Decreto, Capitolo di spesa del bilancio della Regione Siciliana $capitolo_spesa-Codice finanziario: $codice_finanziario; EOD; // TESTO DEL DECRETO E ARTICOLI (Fuori dalla tabella, rientro riga inserito) $htmlDecreto = <<

DECRETA


Art. 1 Per i motivi citati in premessa, che qui si intendono integralmente riportati e trascritti, per le finalità dell'art. 1 commi 494, 495 e 496 della legge 29 dicembre 2022, n. 197, é impegnata e liquidata sul capitolo di spesa $capitolo_spesa del bilancio della Regione Siciliana Codice finanziario $codice_finanziario, Esercizio finanziario $anno_finanziario, la somma di €uro $importo_totale a favore dei cittadini residenti in Sicilia, di cui all'elenco allegato al presente decreto, per le istanze presentate nel mese di $mese_riferimento tramite la piattaforma regionale, relative al contributo pari al 25% del costo del biglietto aereo, da gravare sull'impegno di cui al presente Decreto.
Art. 2 Al pagamento dell'importo di cui all'art. 1 si provvederà con mandato collettivo a favore dei cittadini residenti $htmlCategotia, secondo l'importo a ciascuno spettante e con accredito sull'IBAN bancario o postale, indicato nell'istanza inserita nella piattaforma regionale relativa al bando caro voli, a valere sull'impegno di cui al presente Decreto sul capitolo di spesa $capitolo_spesa.
Art. 3 Ai sensi dell'art. 68, comma 5, della legge regionale 12 agosto 2014, n. 21, così come sostituito dall'art. 98, comma 6, della legge regionale 7 maggio 2015, n. 9, il presente decreto sarà pubblicato per esteso nel sito internet della Regione siciliana, a pena di nullità dell'atto, entro il termine perentorio di sette giorni dalla data di emissione e sarà trasmesso per la registrazione alla Ragioneria Centrale delle Infrastrutture e della Mobilità ai sensi dell'art. 9 della legge regionale n. 9/2021.



Palermo lì $data_emissione

Allegati Elenchi beneficiari Residenti $htmlCategotia $mese_riferimento
Il Dirigente Generale
f.to arch. Salvatore Lizzio
EOD; $htmlCompleto = $htmlIntestazione . $htmlPremesse . $htmlDecreto; // ============================================================================== // 5. GENERAZIONE DEL PDF TRAMITE TCPDF // ============================================================================== ob_clean(); // Pulisce il buffer // Creazione istanza TCPDF $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('Regione Siciliana'); $pdf->SetTitle("D.D.G. n. " . $numero_ddg); $pdf->setPrintHeader(false); $pdf->setPrintFooter(true); $pdf->SetMargins(PDF_MARGIN_LEFT, 15, PDF_MARGIN_RIGHT); $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->SetFont('helvetica', '', 10); $pdf->AddPage(); $pdf->writeHTML($htmlCompleto, true, false, true, false, ''); $allegatoXlsx = creaFileDecretiXlsx($lotto, $stato, 1, $tipo); if (file_exists($allegatoXlsx['path']) && filesize($allegatoXlsx['path']) > 0) { $pdf->lastPage(); $xAllegato = PDF_MARGIN_LEFT; $yAllegato = max(15, $pdf->GetY() - 8); $pdf->Annotation($xAllegato, $yAllegato, 6, 6, 'Allegato elenco beneficiari omissis - ' . $allegatoXlsx['file'], array( 'Subtype' => 'FileAttachment', 'Name' => 'Paperclip', 'FS' => $allegatoXlsx['path'] )); } else { $result['success'] = false; $result['erroreDescrizione'] = 'Errore durante la creazione dell\'allegato XLSX.'; exit(json_encode($result)); } // ============================================================================== // 6. OUTPUT DEL FILE // ============================================================================== $post = ""; if($tipo == TIPO_RESIDENTI){ $post = "RESIDENTI"; }elseif ($tipo == TIPO_PRIORITARI){ $post = "PRIORITARI"; } $nomeFilePdf = "DDG_" . $numero_ddg . "_Lotto_" . $lotto ."_".$post. ".pdf"; if (isset($_POST['actionFile']) && $_POST['actionFile'] == 'saveFile') { $folder = ROOT_EROGAZIONE . "MANDATI/"; $folder = File::createPath($folder); $filePath = $folder . "/" . $nomeFilePdf; $pdf->Output($filePath, 'F'); $hashfile = File::md5File($filePath); $esportazione->FILEPATH_DRS = $nomeFilePdf; if (file_exists($filePath) && !empty($hashfile)) { $result = $esportazione->Save(); if($result['esito'] == 1){ $result['nomeFile'] = $nomeFilePdf; }else{ unlink($filePath); } } else { $result['success'] = false; $result['erroreDescrizione'] = 'Errore durante la creazione del file PDF.'; } exit(json_encode($result)); } else { $pdf->Output($nomeFilePdf, 'I'); exit; } }