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.
917 righe
41 KiB
917 righe
41 KiB
<?php |
|
|
|
$mode = $_REQUEST['action']; |
|
switch ($mode) { |
|
case 'saveDomanda': |
|
saveDomanda(); |
|
break; |
|
case 'saveDocumento': |
|
saveDocumento(); |
|
break; |
|
case 'generaPdf': |
|
generaPdf(); |
|
break; |
|
} |
|
|
|
function saveDocumento() { |
|
global $con, $LoggedAccount, $bando_setup;; |
|
|
|
|
|
if (!$bando_setup->ControllaPeriodoPreparazione()) { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "Accesso non consentito"; |
|
exit(json_encode($return)); |
|
} |
|
|
|
$id_domanda = base64_decode($_POST['id_dom']); |
|
$domanda = new Domanda($id_domanda); |
|
$domanda_adesione = new Domanda_Adesione($id_domanda); |
|
if ($domanda->CODICE_FISCALE_LEGALE != $LoggedAccount->CODICE_FISCALE) { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "Accesso non consentito"; |
|
exit(json_encode($return)); |
|
} |
|
|
|
|
|
if ($domanda_adesione->HASH_FILE == "") { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "Attenzione, è necessario caricare l'ultima versione del file, a seguito della modifica dei dati."; |
|
exit(json_encode($return)); |
|
} |
|
|
|
|
|
$return = array(); |
|
$returnDomanda = array(); |
|
$variabileNome = ''; |
|
$con->db_transactionStart(); |
|
$transaction = false; |
|
$errore = ""; |
|
if ($domanda_adesione->IBAN == "" && $domanda_adesione->FILIALE_DI == "" && $domanda_adesione->ISTITUTO_DI_CREDITO == "" && $domanda_adesione->INFO_PEC == "" && $domanda_adesione->REGOLARITA_CONTRIBUTIVA == "") { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "Domanda Incompleta"; |
|
exit(json_encode($return)); |
|
} else { |
|
if (!empty($_FILES['documento']['tmp_name'])) { |
|
$ricavoExt = $_FILES['documento']['name']; |
|
$ext = pathinfo($ricavoExt); |
|
$tipofile = strtolower($ext['extension']); |
|
if ($tipofile != "p7m") { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "Formato del file non valido!"; |
|
exit(json_encode($return)); |
|
} else if ($_FILES['documento']['size'] <= 0) { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "File non valido!"; |
|
exit(json_encode($return)); |
|
} else if ($_FILES['documento']['size'] > MAX_FILES_SIZE) { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "File non valido!"; |
|
exit(json_encode($return)); |
|
} else { |
|
$dir = $domanda->CODICE_FISCALE_LEGALE; |
|
// $cartella = ROOT_UPLOAD_PRESENTAZIONE . $dir; |
|
$cartella = ROOT_UPLOAD . $dir; |
|
if (is_dir($cartella) === false) { |
|
mkdir($cartella, 0755); |
|
} |
|
$cartella .= "/" . $domanda->CODICE_FISCALE_IMPRESA; |
|
if (is_dir($cartella) === false) { |
|
mkdir($cartella, 0755); |
|
} |
|
|
|
$cartellaDEF = $cartella . "/" . ROOT_UPLOAD_ADESIONE; |
|
if (is_dir($cartellaDEF) === false) { |
|
mkdir($cartellaDEF, 0755); |
|
} |
|
$cartellaLOGS = $cartella . "/" . ROOT_UPLOAD_ADESIONE_LOGS; |
|
if (is_dir($cartellaLOGS) === false) { |
|
mkdir($cartellaLOGS, 0755); |
|
} |
|
$cartellaLOGSP7M = $cartella . "/" . ROOT_UPLOAD_ADESIONE_LOGS_P7M; |
|
if (is_dir($cartellaLOGSP7M) === false) { |
|
mkdir($cartellaLOGSP7M, 0755); |
|
} |
|
|
|
$cartella .= "/" . ROOT_UPLOAD_ADESIONE_TMP; |
|
if (is_dir($cartella) === false) { |
|
mkdir($cartella, 0755); |
|
} |
|
|
|
###################################################################################### |
|
$variabileNome = time() . $id_domanda . $_FILES['documento']['name']; |
|
$variabileNome = Utils::GetValidFilename($variabileNome); |
|
if (file_exists($cartellaDEF . $variabileNome)) { |
|
$variabileNome = time() . $variabileNome; |
|
} |
|
$nomeFile = md5(($domanda->CODICE_FISCALE_IMPRESA)); |
|
|
|
if (is_uploaded_file($_FILES['documento']['tmp_name'])) { |
|
$fileUno = $cartellaDEF . $variabileNome; |
|
$fileUnoEstratto = $cartellaDEF . $nomeFile . ".pdf"; |
|
$fileUnoEstrattoPem = $cartellaDEF . $nomeFile . ".pem"; |
|
if (copy($_FILES['documento']['tmp_name'], $fileUno)) { |
|
if (filesize($_FILES['documento']['tmp_name']) == filesize($fileUno) && md5_file($_FILES['documento']['tmp_name']) == md5_file($fileUno)) { |
|
$nomefileoriginale = $_FILES['documento']['name']; |
|
$hashestrattoP7m = md5_file($fileUno); |
|
$estrazione_file_originale = shell_exec('openssl cms -verify -noverify -in ' . $fileUno . ' -inform DER -out ' . $fileUnoEstratto); |
|
$hashestratto = md5_file($fileUnoEstratto); |
|
if (filesize($fileUnoEstratto) > 0) { |
|
if ($hashestratto == $domanda_adesione->HASH_FILE) { |
|
$estrazione_pem = shell_exec('openssl pkcs7 -inform DER -in ' . $fileUno . ' -print_certs -out ' . $fileUnoEstrattoPem); |
|
if (filesize($fileUnoEstrattoPem) > 0) { |
|
$datiCertificato = shell_exec('openssl x509 -in ' . $fileUnoEstrattoPem . ' -text -noout'); |
|
$leggoCertificato = file_get_contents($fileUnoEstrattoPem); |
|
//$value = strstr($leggoCertificato, "-----BEGIN CERTIFICATE-----"); |
|
//$datiCertificato = openssl_x509_parse($value); |
|
//$verificoValidita = Utils::verifyCertificato($datiCertificato); |
|
$verificoValidita = Utils::verifyCertificato($leggoCertificato); |
|
// $verificoValidita['esito'] = 1; |
|
if ($verificoValidita['esito'] == 1) { |
|
$domanda->STATO = 2; |
|
$domanda_adesione->FILEPATH = $variabileNome; |
|
$domanda_adesione->FILESIZE = $_FILES['documento']['size']; |
|
###########################Edit############################### |
|
$domanda_adesione->HASH_FILE_P7M = $hashestrattoP7m; |
|
$domanda_adesione->NOMEFILEORIGINALE = $nomefileoriginale; |
|
$resultdomanda = $domanda->Save(); |
|
if ($resultdomanda['esito'] == 1) { |
|
$resultdomanda_adesione = $domanda_adesione->Save(); |
|
if ($resultdomanda_adesione['esito'] == 1) { |
|
$transaction = TRUE; |
|
} |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$errore = $verificoValidita['descrizioneErrore']; |
|
} |
|
} else { |
|
$errore = "AL momento non è possibile completare il processo di verifica del file firmato."; |
|
/* SI */ |
|
$fileUnoLogsp7m = $cartellaLOGSP7M . $variabileNome; |
|
copy($fileUno, $fileUnoLogsp7m); |
|
$logUploadP7m = new LogsP7mFile(); |
|
$logUploadP7m->ID_DOMANDA = $domanda->ID; |
|
$logUploadP7m->ERRORE = $errore; |
|
$logUploadP7m->FILEPATH = $fileUnoLogsp7m; |
|
$logUploadP7m->FASE = FASE_PROTOCOLLO_ADESIONE; |
|
$res = $logUploadP7m->Save(); |
|
if ($res['esito'] == 1) { |
|
$domanda->STATO = 2; |
|
$domanda_adesione->FILEPATH = $variabileNome; |
|
$domanda_adesione->FILESIZE = $_FILES['documento']['size']; |
|
###########################Edit############################### |
|
$domanda_adesione->HASH_FILE_P7M = $hashestrattoP7m; |
|
$domanda_adesione->NOMEFILEORIGINALE = $nomefileoriginale; |
|
$resultdomanda = $domanda->Save(); |
|
if ($resultdomanda['esito'] == 1) { |
|
$resultdomanda_adesione = $domanda_adesione->Save(); |
|
if ($resultdomanda_adesione['esito'] == 1) { |
|
$transaction = TRUE; |
|
} |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
} |
|
} |
|
} else { |
|
/* qua no */ |
|
$return['esito'] = -999; |
|
$errore = "L'hash del file caricato non corrisponde all'hash del file estratto dalla piattaforma. Esportare nuovamente il file nel caso la domanda sia stata oggetto di modifica o nel caso in cui sia stato nuovamente esportato il file pdf"; |
|
} |
|
} else { |
|
/* SI */ |
|
$errore = "Al momento non è possibile estrarre il contenuto del file firmato!"; |
|
$fileUnoLogsp7m = $cartellaLOGSP7M . $variabileNome; |
|
copy($fileUno, $fileUnoLogsp7m); |
|
$logUploadP7m = new LogsP7mFile(); |
|
$logUploadP7m->ID_DOMANDA = $domanda->ID; |
|
$logUploadP7m->ERRORE = $errore; |
|
$logUploadP7m->FILEPATH = $fileUnoLogsp7m; |
|
$logUploadP7m->FASE = FASE_PROTOCOLLO_ADESIONE; |
|
$res = $logUploadP7m->Save(); |
|
if ($res['esito'] == 1) { |
|
$domanda->STATO = 2; |
|
$domanda_adesione->FILEPATH = $variabileNome; |
|
$domanda_adesione->FILESIZE = $_FILES['documento']['size']; |
|
###########################Edit############################### |
|
$domanda_adesione->HASH_FILE_P7M = $hashestrattoP7m; |
|
$domanda_adesione->NOMEFILEORIGINALE = $nomefileoriginale; |
|
$resultdomanda = $domanda->Save(); |
|
if ($resultdomanda['esito'] == 1) { |
|
$resultdomanda_adesione = $domanda_adesione->Save(); |
|
if ($resultdomanda_adesione['esito'] == 1) { |
|
$transaction = TRUE; |
|
} |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
} |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$errore = "0Al momento non è possibile caricare il file, contattare un amministratore!"; |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$errore = "1Al momento non è possibile caricare il file, contattare un amministratore!"; |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$errore = "2Al momento non è possibile caricare il file, contattare un amministratore!"; |
|
} |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$errore = "Nessun file allegato!"; |
|
} |
|
} |
|
|
|
if ($transaction) { |
|
if (file_exists($cartellaDEF . $variabileNome)) { |
|
$con->db_transactionCommit(); |
|
$return['cod_fis'] = $domanda->CODICE_FISCALE_IMPRESA; |
|
$return['esito'] = 1; |
|
unlink($fileUnoEstrattoPem); |
|
unlink($fileUnoEstratto); |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = $errore; |
|
$con->db_transactionRollback(); |
|
unlink($fileUnoEstrattoPem); |
|
unlink($fileUnoEstratto); |
|
$fileUnoLogs = $cartellaLOGS . $variabileNome; |
|
rename($fileUno, $fileUnoLogs); |
|
|
|
/* INSERIRE CODICE LOGS FILE UPLOAD */ |
|
$logUpload = new LogsUploadFile(); |
|
$logUpload->ID_DOMANDA = $domanda->ID; |
|
$logUpload->ERRORE = $errore; |
|
$logUpload->FILEPATH = $fileUnoLogs; |
|
$logUpload->HASHORIGINALE = $domanda_adesione->HASH_FILE; |
|
$logUpload->HASHESTRATTO = $hashestratto; |
|
$logUpload->FASE = FASE_PROTOCOLLO_ADESIONE; |
|
$logUpload->Save(); |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = $errore; |
|
$con->db_transactionRollback(); |
|
unlink($fileUnoEstrattoPem); |
|
unlink($fileUnoEstratto); |
|
$fileUnoLogs = $cartellaLOGS . $variabileNome; |
|
rename($fileUno, $fileUnoLogs); |
|
|
|
/* INSERIRE CODICE LOGS FILE UPLOAD */ |
|
$logUpload = new LogsUploadFile(); |
|
$logUpload->ID_DOMANDA = $domanda->ID; |
|
$logUpload->ERRORE = $errore; |
|
$logUpload->FILEPATH = $fileUnoLogs; |
|
$logUpload->HASHORIGINALE = $domanda_adesione->HASH_FILE; |
|
$logUpload->HASHESTRATTO = $hashestratto; |
|
$logUpload->FASE = FASE_PROTOCOLLO_ADESIONE; |
|
$logUpload->Save(); |
|
//unlink($fileUno); |
|
} |
|
exit(json_encode($return)); |
|
} |
|
|
|
function saveDomanda() { |
|
global $con, $LoggedAccount, $bando_setup; |
|
$return = array(); |
|
$returnDomanda = array(); |
|
|
|
if (!$bando_setup->ControllaPeriodoPreparazione()) { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "Accesso non consentito"; |
|
exit(json_encode($return)); |
|
} |
|
|
|
$caricoDomandaOld = new Domanda(intval($_POST['ID_DOMANDA'])); |
|
|
|
if ($caricoDomandaOld->CODICE_FISCALE_LEGALE != $LoggedAccount->CODICE_FISCALE) { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "Accesso non consentito"; |
|
exit(json_encode($return)); |
|
} |
|
|
|
|
|
// Utils::print_array($caricoDomandaOld); |
|
|
|
/* ######################### */ |
|
|
|
$con->db_transactionStart(); |
|
$transaction = false; |
|
$controllValidita = true; |
|
|
|
if ($_POST['ID_DOMANDA'] == "") { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br>Al momento non è possibile completare l'operazione</b> "; |
|
} |
|
if ($_POST['ISTITUTO_DI_CREDITO'] == "") { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Campo Istituto di Credito Obbligatorio</b> "; |
|
} |
|
if ($_POST['FILIALE_DI'] == "") { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Campo Filiale di Riferimento Obbligatorio</b>"; |
|
} |
|
if ($_POST['IBAN'] == "") { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Campo Iban Obbligatorio</b>"; |
|
} |
|
if ($_POST['RIPETI_IBAN'] == "" || ($_POST['RIPETI_IBAN'] != $_POST['IBAN'])) { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Campo Iban Errato o non corrispondente</b>"; |
|
} |
|
if ($_POST['INFO_PEC'] == "") { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Campo PEC Obbligatorio</b>"; |
|
} |
|
if (intval($_POST['REGOLARITA_CONTRIBUTIVA']) < 0 || intval($_POST['REGOLARITA_CONTRIBUTIVA']) > 1) { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Campo Regolarità Contributiva Obbligatorio</b>"; |
|
} |
|
if (intval($_POST['REGOLARITA_CONTRIBUTIVA']) == 1 && trim($_POST['MOTIVAZIONE']) == "") { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Campo Motivazione Regolarità Contributiva Obbligatorio</b>"; |
|
} |
|
if ($controllValidita) { |
|
$arrayValori = Utils::requestDati($_POST); |
|
$domanda_adesione = new Domanda_Adesione(); |
|
$domanda_adesione->ID = $caricoDomandaOld->ID; |
|
$domanda_adesione->INFO_PEC = trim($arrayValori['INFO_PEC']); |
|
$domanda_adesione->ISTITUTO_DI_CREDITO = trim($arrayValori['ISTITUTO_DI_CREDITO']); |
|
$domanda_adesione->FILIALE_DI = trim($arrayValori['FILIALE_DI']); |
|
$domanda_adesione->IBAN = trim($arrayValori['IBAN']); |
|
$domanda_adesione->HASH_FILE = ""; |
|
// $domanda_adesione->FILEPATH = ""; |
|
$domanda_adesione->REGOLARITA_CONTRIBUTIVA = $arrayValori['REGOLARITA_CONTRIBUTIVA']; |
|
$domanda_adesione->MOTIVAZIONE = trim($arrayValori['MOTIVAZIONE']); |
|
$returnAdesione = $domanda_adesione->Save(); |
|
if ($returnAdesione['esito'] == 1) { |
|
$transaction = true; |
|
} else { |
|
$errore = $returnAdesione['erroreDescrizione']; |
|
} |
|
|
|
if ($transaction) { |
|
$return['esito'] = 1; |
|
$return['cod_fis_impresa'] = $caricoDomandaOld->CODICE_FISCALE_IMPRESA; |
|
$con->db_transactionCommit(); |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = ($errore != "" ? $errore : "Attenzione , riprovare o contattare il Personale Tecnico"); |
|
$con->db_transactionRollback(); |
|
} |
|
} else { |
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = ("Attenzione , compilare i seguenti campi: " . $dati_mancanti); |
|
} |
|
exit(json_encode($return)); |
|
} |
|
|
|
function listDomande() { |
|
global $bando_setup, $LoggedAccount, $STATI_DOMANDA; |
|
$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 = ""; |
|
$data_sottoMissione = ""; |
|
## Search |
|
$searchQuery = " AND CODICE_FISCALE_LEGALE = '$LoggedAccount->CODICE_FISCALE' "; |
|
if ($searchValue != '') { |
|
/* |
|
* modificare queste righe per visualizzare le ricerche |
|
*/ |
|
$searchQuery .= " AND ( CODICE_FISCALE_IMPRESA LIKE :CODICE_FISCALE_IMPRESA ) "; |
|
$searchArray = array( |
|
'CODICE_FISCALE_IMPRESA' => "%$searchValue%" |
|
// 'username' => "%$searchValue%" |
|
); |
|
} |
|
// Utils::print_array($_POST); |
|
//$res = Domanda::LoadDataTable($searchQuery, $searchArray, $columnName, $columnSortOrder, $row, $rowperpage); |
|
$res = Domanda::LoadDataTableLeft($searchQuery, $searchArray, $columnName, $columnSortOrder, $row, $rowperpage); |
|
//Utils::print_array($res); |
|
foreach ($res['empRecords'] as $row) { |
|
//'<a href="'.BASE_HTTP.'admin/logs.php?mode=viewLog&id='.base64_encode($row['id']).'" class="mb-6 btn-floating waves-effect waves-light purple lightrn-1"><i class="material-icons">pageview</i></a>'; |
|
//$fnDisable = '<a href="#" '.$onclickDisable.' rel="'.RELUPDATE.'" class="btn-floating mb-1 '.$colorBtnDisable.' waves-effect waves-light "><i class="material-icons dp48">'.$iconBtnDisable.'</i></a>'; |
|
//$protocolli = DomandeProtocollo::loadFromId($row['ID']); |
|
//$inviata = DomandeInviate::loadFromId($row['ID']); |
|
|
|
$ammesse = DomandeAmmesse::loadFromId($row['ID']); |
|
|
|
// $row['DATA_PRESENTAZIONE'] = ''; |
|
// $row['PROTOCOLLO_SOTTOMISSIONE'] = ''; |
|
// $row['DATA_SOTTOMISSIONE'] = ''; |
|
// $row['CUP'] = ''; |
|
// $row['PROTOCOLLO_EROGAZIONE'] = ''; |
|
// $row['DATA_EROGAZIONE'] = ''; |
|
|
|
/* if (count($inviata) > 0) { |
|
foreach ($inviata as $value) { |
|
$row['DATA_PRESENTAZIONE'] = Utils::dateOracleTimeStamp($value['DATA_PRESENTAZIONE']); |
|
} |
|
} */ |
|
|
|
|
|
// if (count($protocolli) > 0) { |
|
// foreach ($protocolli as $value) { |
|
// if ($value['FASE'] == FASE_PROTOCOLLO_SOTTOMISSIONE) { |
|
// $row['PROTOCOLLO_SOTTOMISSIONE'] = $value['NUMERO_PROTOCOLLO']; |
|
// $row['DATA_SOTTOMISSIONE'] = Utils::dateOracleTimeStamp($value['DATA_PROTOCOLLO']); |
|
// } elseif ($value['FASE'] == FASE_PROTOCOLLO_EROGAZIONE) { |
|
// $row['PROTOCOLLO_EROGAZIONE'] = $value['NUMERO_PROTOCOLLO']; |
|
// $row['DATA_EROGAZIONE'] = Utils::dateOracleTimeStamp($value['DATA_PROTOCOLLO']); |
|
// } |
|
// } |
|
// } |
|
|
|
|
|
|
|
|
|
$domanda = new Domanda(); |
|
|
|
$stato = $domanda->GetStatoDomanda($row); |
|
$fnVisualizza = ""; |
|
if ($row['STATO'] == 0) { |
|
$data_modifica = ""; |
|
$data_sottoMissione = ""; |
|
$fnDelete = ""; |
|
if ($bando_setup->ControllaPeriodoPreparazione()) { |
|
$cfadhoc = $row['CODICE_FISCALE_IMPRESA']; |
|
$fnDelete = '<button type="button" class="btn btn-danger tooltipped" data-toggle="tooltip" data-position="top" title="Annulla domanda" onclick=\'opsDomanda("' . base64_encode($domanda->ID) . '")\'><i class="far fa-trash-alt"></i></button>'; |
|
$fnVisualizza = $fnDelete . '<button type="button" class="btn btn-info tooltipped" data-toggle="tooltip" data-position="top" title="Visualizza la domanda" onclick=\'redirectDomanda("' . $cfadhoc . '")\'><i class="fas fa-eye"></i></button>'; |
|
} else { |
|
$fnVisualizza = ''; |
|
} |
|
} else if ($row['STATO'] == 1) { |
|
$path = $row['FILEPATH']; |
|
$percorsoDownload = BASE_HTTP . "modules/streamer.php?f="; |
|
|
|
$fnModifica = ""; |
|
if ($bando_setup->ControllaPeriodoPreparazione()) { |
|
$cfadhoc = $row['CODICE_FISCALE_IMPRESA']; |
|
$fnModifica = '<button type="button" class="btn btn-success tooltipped" data-toggle="tooltip" data-position="top" title="Modifica domanda" onclick=\'redirectDomanda("' . $cfadhoc . '")\'><i class="far fa-edit"></i></button>'; |
|
} |
|
// $fnVisualizza = $fnModifica . '<a class="btn btn-info tooltipped" data-toggle="tooltip" data-position="top" title="Download p7m" href="' . $percorsoDownload . $path . '" ><i class="fa fa-download"></i></a>'; |
|
$fnVisualizza = $fnModifica; |
|
} else if ($row['STATO'] == 2) { |
|
|
|
|
|
if ($row['PROTOCOLLO_SOTTOMISSIONE'] != "") { |
|
$txtPulsante = 'Attestato di sottomissione'; |
|
} else { |
|
$txtPulsante = 'Attestato di presentazione'; |
|
} |
|
$onclick = "downloadPdf('" . $row['CODICE_FISCALE_IMPRESA'] . "')"; |
|
$fnVisualizza = '<button class="btn btn-primary tooltipped" data-toggle="tooltip" data-position="top" title="' . $txtPulsante . '" onclick="' . $onclick . '" ><i class="fa fa-download"></i></button>'; |
|
} else if ($row['STATO'] == 3) { |
|
$cfadhoc = $row['CODICE_FISCALE_IMPRESA']; |
|
if ($row['PROTOCOLLO_EROGAZIONE'] == "") { |
|
$fnVisualizza = '<button type="button" class="btn btn-info tooltipped" data-toggle="tooltip" data-position="top" title="Richiesta contributo" onclick=\'redirectDomandaAm("' . $cfadhoc . '")\'><i class="fas fa-euro-sign"></i></button>'; |
|
} else { |
|
|
|
} |
|
} |
|
|
|
if ($row['DATA_INSERIMENTO'] != "") { |
|
$data_inserimento = Utils::dateOracleTimeStamp($row['DATA_INSERIMENTO']); |
|
} |
|
if ($row['DATA_MODIFICA'] != "") { |
|
$data_modifica = Utils::dateOracleTimeStamp($row['DATA_MODIFICA']); |
|
} |
|
if ($row['DATA_COMPLETAMENTO'] != "") { |
|
$data_completamento = Utils::dateOracleTimeStamp($row['DATA_COMPLETAMENTO']); |
|
} |
|
|
|
|
|
$data[] = array( |
|
"ID" => $row['ID'], |
|
"CODICE_FISCALE_IMPRESA" => $row['CODICE_FISCALE_IMPRESA'], |
|
"DATA_INSERIMENTO" => $data_inserimento, |
|
"DATA_MODIFICA" => $data_modifica, |
|
"DATA_COMPLETAMENTO" => $data_completamento, |
|
"DATA_PRESENTAZIONE" => $row['DATA_PRESENTAZIONE'], |
|
"PROTOCOLLO_SOTTOMISSIONE" => $row['PROTOCOLLO_SOTTOMISSIONE'], |
|
"DATA_SOTTOMISSIONE" => $row['DATA_SOTTOMISSIONE'], |
|
"CUP" => $ammesse['CUP'], |
|
"PROTOCOLLO_EROGAZIONE" => $row['PROTOCOLLO_EROGAZIONE'], |
|
"DATA_EROGAZIONE" => $row['DATA_EROGAZIONE'], |
|
"STATO" => $stato, |
|
"gestione" => '<div class="btn-group" role="group" aria-label="Gestione">' . $fnVisualizza . '</div>' |
|
); |
|
} |
|
## Response |
|
$response = array( |
|
"draw" => intval($draw), |
|
"iTotalRecords" => $res['iTotalRecords'], |
|
"iTotalDisplayRecords" => $res['iTotalDisplayRecords'], |
|
"aaData" => $data |
|
); |
|
|
|
exit(json_encode($response)); |
|
} |
|
|
|
//function listsportello() { |
|
// global $LoggedAccount; |
|
// $domande = Domanda::statoDomandaCompletata(); |
|
// print_r($domande); |
|
// echo is_array($domande); |
|
// $ciccio=array("ciao", "secondo"); |
|
// |
|
// |
|
// echo (json_encode($domande)); |
|
//} |
|
|
|
|
|
function generaPdf() { |
|
exit(); |
|
global $con, $LoggedAccount; |
|
set_time_limit(0); |
|
require_once ROOT . "lib/modules/tcpdf/lang/ita.php"; |
|
require_once ROOT . "lib/modules/tcpdf/tcpdf.php"; |
|
|
|
error_reporting(E_ALL); |
|
ini_set('display_errors', 1); |
|
|
|
$id = Utils::get_filter_int('id'); |
|
$cod_fis_impresa = trim(Utils::get_filter_string('cod_fis_impresa')); |
|
|
|
|
|
//$domanda = new Domanda($id); |
|
$domandaForAdesione = Domanda::getDomandaForAdesione($id); |
|
// |
|
//Utils::print_array($domandaForAdesione); |
|
// |
|
//exit(); |
|
|
|
if ($domandaForAdesione['CODICE_FISCALE_LEGALE'] != $LoggedAccount->CODICE_FISCALE) { |
|
Utils::RedirectTo(BASE_HTTP . 'dashboard.php'); |
|
exit(); |
|
} |
|
if ($domandaForAdesione['CODICE_FISCALE_IMPRESA'] != $cod_fis_impresa) { |
|
Utils::RedirectTo(BASE_HTTP . 'dashboard.php'); |
|
exit(); |
|
} |
|
if ($domandaForAdesione['ID'] != $id) { |
|
Utils::RedirectTo(BASE_HTTP . 'dashboard.php'); |
|
exit(); |
|
} |
|
if (intval($domandaForAdesione['VERSIONE']) > 0) { |
|
Utils::RedirectTo(BASE_HTTP . 'dashboard.php'); |
|
exit(); |
|
} |
|
|
|
$IDDomanda = $domandaForAdesione['ID']; |
|
|
|
$domanda_adesione = new Domanda_Adesione($IDDomanda); |
|
|
|
if ($domanda_adesione->ID != $IDDomanda) { |
|
Utils::RedirectTo(BASE_HTTP . 'dashboard.php'); |
|
exit(); |
|
} |
|
|
|
$statoRegolarita = $domanda_adesione->REGOLARITA_CONTRIBUTIVA; |
|
$motivazioneRegolarita = $domanda_adesione->MOTIVAZIONE; |
|
|
|
$codice_fiscale_impresa = $domandaForAdesione['CODICE_FISCALE_IMPRESA']; |
|
$domanda_json = $domandaForAdesione['DOMANDA_JSON']; |
|
$domanda_array = json_decode($domanda_json, true); |
|
|
|
|
|
$sp = $domanda_array['SchedaPersona']; |
|
$cognome = $sp['cognome']; //$LoggedAccount->SchedaPersona->cognome; |
|
$nome = $sp['nome']; //$LoggedAccount->SchedaPersona->nome; |
|
$sesso = $sp['sesso']; //$LoggedAccount->SchedaPersona->sesso; |
|
$c_fiscale = $sp['c_fiscale']; //$LoggedAccount->SchedaPersona->c_fiscale; |
|
$comune_n = $sp['comune']; //$LoggedAccount->SchedaPersona->comune; |
|
$provincia_n = $sp['provincia']; //$LoggedAccount->SchedaPersona->provincia; |
|
$data_n = $sp['dt']; //$LoggedAccount->SchedaPersona->dt; |
|
$comune_residenza = $domanda_array['comune_residenza_save']; |
|
$provincia_residenza = $domanda_array['provincia_residenza_save']; |
|
$indirizzo_residenza = $domanda_array['indirizzo_residenza_save']; |
|
$cap_residenza = $domanda_array['cap_residenza_save']; |
|
|
|
|
|
$txt_sottoscritto = ($sesso == 'M' ? 'Il sottoscritto ' : 'La sottoscritta '); |
|
$txt_natoa = ($sesso == 'M' ? 'nato a ' : 'nata a '); |
|
|
|
|
|
// $loadVisuraImpresa = VisuraImpresa::Load($domandaForAdesione['CODICE_FISCALE_IMPRESA']); |
|
$titoloDomanda = "<i>BONU<span style=\"font-size:20px\">S</span>ICILIA</i> - AVVISO PUBBLICO A FAVORE DELLE MICROIMPRESE ARTIGIANE, COMMERCIALI, INDUSTRIALI E DI SERVIZI PER LA CONCESSIONE DI UN CONTRIBUTO A FONDO PERDUTO<br>ai sensi dell'art.10 comma 16 della L.R. del 12 maggio 2020"; |
|
$azioneDomanda = "Azione 3.1.1_04a"; |
|
|
|
$ddg_numero = DDG_NUMERO; |
|
$ddg_data = DDG_DATA; |
|
|
|
|
|
$htmlHeader = <<<EOD |
|
<style> |
|
.header-tb td{ |
|
border-top:1px solid #000000; |
|
border-bottom:1px solid #000000; |
|
} |
|
.all-tb td{ |
|
padding: 5px; |
|
border:1px solid #000000; |
|
} |
|
ul li{ |
|
margin-bottom: 1px; |
|
} |
|
|
|
</style> |
|
<div style="text-align: center"> |
|
<img src="/assets/img/test2b.jpg" alt=""/> |
|
</div> |
|
<h3 style="color:#2E64FE">Allegato 2.A - Modello di Dichiarazione di adesione</h3> |
|
<div style="text-align: center"> |
|
<h3>$titoloDomanda</h3> |
|
<h3>$azioneDomanda</h3> |
|
</div> |
|
<table width="100%"> |
|
<tr> |
|
<td width="60%"> </td> |
|
<td width="40%"><p><b>Alla REGIONE SICILIANA</b><br/> |
|
<b>Dipartimento Attività produttive</b><br/> |
|
<b>Via degli Emiri n. 45</b><br/> |
|
<b>90135 Palermo</b></p></td> |
|
</tr> |
|
</table> |
|
<h3>Oggetto: Dichiarazione di adesione a parziale rettifica dell'Istanza di accesso al contributo (Allegato 2) come previsto dall'Avviso pubblico approvato con D.D.G n. $ddg_numero del $ddg_data</h3> |
|
<h3>Identificativo istanza (id): $IDDomanda</h3> |
|
EOD; |
|
$denominazione = $domanda_array['DENOMINAZIONE_IMPRESA']; |
|
$forma_giuridica = $domanda_array['vi_forma_giuridica']; |
|
$c_fiscale_imp = $codice_fiscale_impresa; |
|
$partita_iva = $domanda_array['vi_partita_iva']; |
|
|
|
//$htmlHeader2 = <<<EOD |
|
// <p style="text-align: justify">$txt_sottoscritto <b>$cognome</b> <b>$nome</b> $txt_natoa <b>$comune_n</b> Prov. <b>$provincia_n</b> il <b>$data_n</b> |
|
// Residente in <b>$comune_residenza</b>, Prov. <b>$provincia_residenza</b>, Via/Loc. <b>$indirizzo_residenza</b>, CAP <b>$cap_residenza</b>, Codice Ficale <b>$c_fiscale</b>, |
|
// Telefono cellulare <b>$spid_moble_phone</b>, documento di riconoscimento (Tipo e nr) <b>$spid_tipo_documento $spid_numero_documento</b>, rilasciato da <b>$spid_ente_rilascio</b>, il <b>$spid_data_rilascio</b>, scadenza <b>$spid_data_scadenza</b> in qualità di legale rappresentante/titolare dell'impresa: |
|
// </p> |
|
//EOD; |
|
$htmlHeader2 = <<<EOD |
|
<p style="text-align: justify">$txt_sottoscritto <b>$cognome</b> <b>$nome</b> $txt_natoa <b>$comune_n</b> Prov. <b>$provincia_n</b> il <b>$data_n</b> |
|
Residente in <b>$comune_residenza</b>, Prov. <b>$provincia_residenza</b>, Via/Loc. <b>$indirizzo_residenza</b>, CAP <b>$cap_residenza</b>, Codice Ficale <b>$c_fiscale</b>, |
|
in qualità di legale rappresentante/titolare dell'impresa <b>$denominazione ($forma_giuridica)</b> (Ragione Sociale), P.IVA/C.F. <b>$partita_iva</b>/<b>$c_fiscale_imp</b> |
|
come meglio già identificata nell'Allegato 2 |
|
</p> |
|
<p> |
|
In ragione delle modifiche a termini, modalità, criteri ed importo del contributo massimo erogabile di cui al DDG n. $ddg_numero del $ddg_data , a parziale rettifica della richiesta di accesso al contributo a fondo perduto BONUSICILIA di cui all'Allegato 2 |
|
</p> |
|
EOD; |
|
|
|
|
|
$htmlDichiaraChe = <<<EOD |
|
<div style="text-align: center"> |
|
<h3>DICHIARA</h3> |
|
</div> |
|
<ul style="text-align: justify"> |
|
<li>di essere a conoscenza e di accettare espressamente ed incondizionatamente le modifiche apportate all'AVVISO PUBBLICO A FAVORE DELLE MICROIMPRESE ARTIGIANE, COMMERCIALI, INDUSTRIALI E DI SERVIZI PER LA CONCESSIONE DI UN CONTRIBUTO A FONDO PERDUTO, BONUSICILIA (con particolare riferimento agli artt. 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 e 14 dell'Avviso) dal DDG n.$ddg_numero del $ddg_data relativamente a termini, modalità, criteri ed importo del contributo massimo erogabile;</li> |
|
<li>di voler accedere al contributo a fondo perduto <i><b>BONU<span style="font-size:20px">S</span>ICILIA</b></i> per un ammontare pari ad un massimo di € <b>3.500,00 (tremilacinquecento/00)</b>. Il contributo concesso effettivo sarà calcolato sulla base del seguente rapporto: dotazione finanziaria di cui all'art. 3 comma 1 dell'Avviso pubblico diviso il numero di istanze utilmente presentate entro i termini di cui all'art. 8 comma 2 dell'Avviso;</li> |
|
<li>di essere a conoscenza che a seguito delle modifiche relative a termini, modalità, criteri ed importo del contributo massimo erogabile, sono stati revocati l'Allegato 3 – Modello per la richiesta di erogazione del contributo e l'Allegato 3a – Schema di rapporto di certificazione, in quanto l'istanza di accesso al contributo include già la richiesta di erogazione sul conto corrente dedicato/iban indicato dall'impresa.</li> |
|
</ul> |
|
EOD; |
|
|
|
$htmlFirma = <<<EOD |
|
<table width="100%"> |
|
<tr> |
|
<td width="30%"> |
|
<div style="text-align: center"> |
|
<h4>Data</h4> |
|
</div> |
|
</td> |
|
<td width="70%"> |
|
<div style="text-align: center"> |
|
<h4>Firmato digitalmente</h4> |
|
</div> |
|
</td> |
|
</tr> |
|
</table> |
|
EOD; |
|
|
|
$asterischi = <<<EOD |
|
<div style="text-align: center"> |
|
***************************************************************************************************************************** |
|
</div> |
|
EOD; |
|
$intestazione_DSAN = <<<EOD |
|
<div style="text-align: center"> |
|
<h3>DICHIARAZIONE SOSTITUTIVA DELL'ATTO DI NOTORIETA'<br> |
|
(artt. 46 e 47 D.P.R. 28.12.2000, n. 445)<br> |
|
(Art. 264 comma 1, lettera a), D.L. 19.05.2020, n. 34</h3> |
|
</div> |
|
EOD; |
|
|
|
$titolare_DSAN = <<<EOD |
|
<p style="text-align: justify">$txt_sottoscritto <b>$cognome</b> <b>$nome</b> Codice Ficale <b>$c_fiscale</b> $txt_natoa <b>$comune_n</b> Prov. <b>$provincia_n</b> il <b>$data_n</b>, |
|
residente a <b>$comune_residenza</b>, prov. <b>$provincia_residenza</b>, all'indirizzo <b>$indirizzo_residenza</b>, |
|
in qualità di legale rappresentante/titolare dell'impresa <b>$denominazione</b>, P.IVA <b>$partita_iva</b> C.F. <b>$c_fiscale_imp</b>, |
|
</p> |
|
EOD; |
|
|
|
$consapevole_DSAN = <<<EOD |
|
<div style="text-align: center"> |
|
CONSAPEVOLE |
|
</div> |
|
<ul style="text-align: justify"> |
|
<li>delle sanzioni penali richiamate dall'art. 76 del D.P.R 28/12/00 n.445 in caso di dichiarazioni mendaci e della decadenza dei benefici eventualmente conseguenti al provvedimento emanato sulla base di dichiarazioni non veritiere, di cui all'art. 75 del D.P.R. del 28/12/00 n. 445, ai sensi e per gli effetti dell'art. 47 del citato D.P.R. 445/2000;</li> |
|
<li>che ai sensi dell'Art. 264 comma 1, lettera a del D.L. 19.05.2020 n. 34, la dichiarazione mendace comporta, altresì, la revoca degli eventuali benefici già erogati nonchè il divieto di accesso a contributi, finanziamenti e agevolazioni per un periodo di 2 anni decorrenti da quando l'amministrazione ha adottato l'atto di decadenza sotto la propria responsabilità.</li> |
|
</ul> |
|
EOD; |
|
|
|
$parametroDichiara = REGOLARITA[$statoRegolarita]; |
|
if ($statoRegolarita == 1) { |
|
$motivazioneRegolarita; |
|
} |
|
|
|
|
|
$dichiara_DSAN = <<<EOD |
|
<div style="text-align: center"> |
|
<h4>DICHIARA</h4> |
|
</div> |
|
<div style="text-align: justify"> |
|
$parametroDichiara<br><br><u><b>$motivazioneRegolarita</b></u> |
|
</div> |
|
EOD; |
|
|
|
$firma_DSAN = <<<EOD |
|
<table width="100%"> |
|
<tr> |
|
<td width="30%"> |
|
<div style="text-align: center"> |
|
<h4>Data</h4> |
|
</div> |
|
</td> |
|
<td width="70%"> |
|
<div style="text-align: center"> |
|
<h4>Firmato digitalmente</h4> |
|
</div> |
|
</td> |
|
</tr> |
|
</table> |
|
EOD; |
|
|
|
$attenzione_DSAN = <<<EOD |
|
<div> |
|
<br><b><span style="background-color: yellow;"><u>ATTENZIONE: firmare la presente dichiarazione con firma digitale del Titolare/Legale rappresentante.</u></span></b><br><br> |
|
</div> |
|
<div> |
|
<span style="font-size:11px">(1) Ai sensi dell'art. 264 comma 2, lettera a) 1), D.L. 19.05.2020, n. 34, l'Amministrazione effettuerà idonei controlli anche a campione per verificare la veridicità delle dichiarazioni rese.</span> |
|
</div> |
|
EOD; |
|
|
|
|
|
|
|
|
|
|
|
|
|
$htmlDomanda = $htmlHeader . $htmlHeader2 . |
|
$htmlDichiaraChe . $htmlFirma . |
|
$asterischi . |
|
$intestazione_DSAN . $titolare_DSAN . $consapevole_DSAN . $dichiara_DSAN . |
|
$firma_DSAN . $attenzione_DSAN; |
|
|
|
|
|
|
|
|
|
|
|
//echo $htmlDomanda; |
|
//exit(); |
|
|
|
$nomeFilePdf = md5($codice_fiscale_impresa) . ".pdf"; |
|
|
|
|
|
|
|
//exit(); |
|
|
|
|
|
|
|
|
|
ob_clean(); |
|
|
|
$pdf = new PDF_DOMANDA(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); |
|
$pageBreack = ""; |
|
|
|
$pdf->SetCreator(PDF_CREATOR); |
|
// set default header data |
|
//$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); |
|
// set header and footer fonts |
|
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); |
|
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); |
|
|
|
// set default monospaced font |
|
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); |
|
|
|
//set margins |
|
$pdf->SetMargins(PDF_MARGIN_LEFT + 3, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT + 3); |
|
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER); |
|
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER); |
|
|
|
//set auto page breaks |
|
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); |
|
|
|
//set image scale factor |
|
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); |
|
|
|
//set some language-dependent strings |
|
$pdf->setLanguageArray($l); |
|
|
|
// set font |
|
//$pdf->SetFont('times', 'BI', 16); |
|
$pdf->SetFont('helvetica', '', 10); |
|
|
|
$pdf->AddPage(); |
|
$pdf->writeHTML($htmlDomanda, false, 0, true, 0); |
|
|
|
|
|
|
|
|
|
####################################################################################### |
|
$dir = $domandaForAdesione['CODICE_FISCALE_LEGALE']; |
|
// $cartella = ROOT_UPLOAD_PRESENTAZIONE . $dir; |
|
$cartella = ROOT_UPLOAD . $dir; |
|
if (is_dir($cartella) === false) { |
|
mkdir($cartella, 0755); |
|
} |
|
$cartella .= "/" . $domandaForAdesione['CODICE_FISCALE_IMPRESA']; |
|
if (is_dir($cartella) === false) { |
|
mkdir($cartella, 0755); |
|
} |
|
|
|
$cartellaDEF = $cartella . "/" . ROOT_UPLOAD_ADESIONE; |
|
if (is_dir($cartellaDEF) === false) { |
|
mkdir($cartellaDEF, 0755); |
|
} |
|
$cartellaLOGS = $cartella . "/" . ROOT_UPLOAD_ADESIONE_LOGS; |
|
if (is_dir($cartellaLOGS) === false) { |
|
mkdir($cartellaLOGS, 0755); |
|
} |
|
$cartellaLOGSP7M = $cartella . "/" . ROOT_UPLOAD_ADESIONE_LOGS_P7M; |
|
if (is_dir($cartellaLOGSP7M) === false) { |
|
mkdir($cartellaLOGSP7M, 0755); |
|
} |
|
$cartella .= "/" . ROOT_UPLOAD_ADESIONE_TMP; |
|
if (is_dir($cartella) === false) { |
|
mkdir($cartella, 0755); |
|
} |
|
|
|
###################################################################################### |
|
|
|
if (file_exists($cartella . $nomeFilePdf)) { |
|
$nomeFilePdf = time() . $nomeFilePdf; |
|
} |
|
|
|
|
|
//$pdf->Output($nomeFilePdf, 'I'); |
|
//exit(); |
|
$nomefilePrefix = $pdf->Output($cartella . $nomeFilePdf, 'F'); |
|
|
|
|
|
|
|
$ricavohash = md5_file($cartella . $nomeFilePdf); |
|
$domanda_adesione->HASH_FILE = $ricavohash; |
|
//$response = file_get_contents($cartella . $nomeFilePdf); |
|
$con->db_transactionStart(); |
|
$transaction = false; |
|
$result = $domanda_adesione->Save(); |
|
if ($result['esito'] == 1) { |
|
$transaction = true; |
|
} else { |
|
$return['erroreDescrizione'] = $result['descrizioneErrore']; |
|
} |
|
if ($transaction) { |
|
$file = $cartella . $nomeFilePdf; |
|
$con->db_transactionCommit(); |
|
$url = $file; |
|
$return['success'] = true; |
|
$return['url'] = $url; |
|
// header('Content-Description: File Transfer'); |
|
// header('Content-Type: application/pdf'); |
|
// header('Content-Type: application/octet-stream'); |
|
// header('Cache-Control: private, must-revalidate, post-check=0, pre-check=0, max-age=1'); |
|
// header('Pragma: public'); |
|
// header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past |
|
// header('Content-Disposition: inline; filename="' . basename($file) . '"'); |
|
// header('Content-Length: ' . filesize($file)); |
|
// ob_clean(); |
|
// flush(); |
|
// readfile($file); |
|
// exit(); |
|
} else { |
|
|
|
$return['esito'] = -999; |
|
$return['erroreDescrizione'] = "Attenzione , riprovare o contattare il Personale Tecnico"; |
|
$con->db_transactionRollback(); |
|
unlink($cartella . $nomeFilePdf); |
|
} |
|
exit(json_encode($return)); |
|
}
|
|
|