Blame | Last modification | View Log | Download | RSS feed
<?
//07/06/2004 15.34
//Ritirna l'ultima istanza inserita nella tabella protocolli relativa a comune, sezione e operazione effettuata
//Input: $arrti07 Array estratto dalla tabella protocolli contentete tutte le occorenze per il comune, sezione
// $typeOparation Operazione contenuta nel file prm
//Output $pArrOper Array contente l'occorrenza trovata
// False se non trova nulla
function returnLastOperation($arrti07,$typeOparation,$typeCat)
{
foreach($arrti07 as $pArrOper)
{
if(($pArrOper['TI07_TIPO_FORNITURA'] == $typeOparation) && ($pArrOper['TI07_TIPO_PROCESSO'] == $typeCat))
{
return($pArrOper);
}
}
return(false);
}
//13/07/2004 15.49
//Ritirna l'ultima istanza inserita nella tabella protocolli relativa alla fornitura
//Input: $arrCtrlSeqFornitura Record nella tabella protocolli
// $arrPrm Dati della fornitura selezionata
//Output $arrCtrlSeqFornitura[$num] Record nella tabella protocolli
//
function checkLastProt($arrCtrlSeqFornitura,$arrPrm)
{
foreach($arrCtrlSeqFornitura as $num => $arrProt)
{
$ti07_tipo_fornitura = $arrProt['TI07_TIPO_FORNITURA'];
$ti07_periodo_da = $arrProt['TI07_PERIODO_DA'];
$ti07_periodo_a = $arrProt['TI07_PERIODO_A'];
if($ti07_tipo_fornitura == 'C')
{
if($ti07_periodo_a == $arrPrm['periodo_a'])
{
return($arrCtrlSeqFornitura[$num]);
}
}
else
{
if($ti07_periodo_da == $arrPrm['periodo_da'] && $ti07_periodo_a == $arrPrm['periodo_a'])
{
return($arrCtrlSeqFornitura[$num]);
}
}
}
return(false);
}
function returnDbtiLastOperation($arrti07,$arrPrm)
{
foreach($arrti07 as $pArrOper)
{
$ti07_tipo_fornitura = $pArrOper['TI07_TIPO_FORNITURA'];
$ti07_periodo_da = $pArrOper['TI07_PERIODO_DA'];
$ti07_periodo_a = $pArrOper['TI07_PERIODO_A'];
if($ti07_tipo_fornitura == $arrPrm['tipo_fornitura'])
{
if($ti07_tipo_fornitura == 'C')
{
if($ti07_periodo_a == $arrPrm['periodo_a'])
{
return($pArrOper);
}
}
else
{
if($ti07_periodo_da == $arrPrm['periodo_da'] && $ti07_periodo_a == $arrPrm['periodo_a'])
{
return($pArrOper);
}
}
}
}
return(false);
}
//07/06/2004 15.34
//Gestione errore in base al codice stato della tabella protocollo
//Input: $ti07_codstato valori ammessi nella tabella protocolli
// $numProtStag protocollo di staging
function ctrlTi07_codstato($ti07_codstato,$numProtStag,$codSelected)
{
$stato = true;
switch($ti07_codstato)
{
case '1':
//avviso errore periodo di caricamento
jConfirm(
'E007',
"top.location='LSTM_cancella_staging.php?errore=1&protocollo_staging=$numProtStag&fileselected=$codSelected';",
"top.location='LSTV_file_frame.php?ricaricata=0';"
);
exit();
break;
case '':
//Nessuna operazione effettutata
break;
case'2':
//caricamento effettuato con successo
jConfirm(
'E005',
"top.location='LSTM_cancella_staging.php?errore=1&protocollo_staging=$numProtStag&fileselected=$codSelected';",
"top.location='LSTV_file_frame.php?ricaricata=0';"
);
exit();
break;
case'3':
jError('E006','',1);
break;
}
return($stato);
}
//Funzione controllo validita intervallo fra data fornitura da caricare con fornitura
//caricata nelle tabelle di staging
//input : $dateStart data inizio
// $dateStop data fine
//output : true successione date corretta
// false successione date errata
function ctrlDateFornitura($dateStart,$dateStop)
{
$dGap = 0;
$obj = new DateSpanClass($dateStart,$dateStop);
$stato = $obj->CheckDateProgress();
if($stato)
{
//controllo ok
$dGap = $obj->span("d");
if($dGap > FORNITURADAYS)
{
return(false);
}
else
{
return(true);
}
}
else
{
return($stato);
}
}
//Funzione di genera codice javascript per reindirizzare pagina in caso di interruzione
//del caricamento.L'utente può ripristinare la sessione interrota, o cancellare le tabelle
//di staging
//input: $numProtStag protocollo di staging su cui effettuare le operazioni
function JsErrorLoad($numProtStag,$codSelected)
{
?>
<script>
if (confirm ('Si è verificato un errore nella sessione precedente. \r Ripristinare sessione?')){
top.location = 'LSTV_avvio_awk.php?cancella_staging=0&ripristina_staging=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
}
else
{
if (confirm('Si desidera cancellare le tabelle di Staging?'))
{
if (confirm('Sicuro di voler cancellare le tabelle di Staging?'))
{
top.location = 'LSTM_cancella_staging.php?errore=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
window.status="Attendere cancellazione tabelle...";
}
else
{
top.location='LSTV_file_frame.php?ricaricata=0';
}
}
else
{
top.location='LSTV_file_frame.php?ricaricata=0';
}
}
</script>
<?
exit();
}
//Funzione di genera codice javascript per reindirizzare pagina in caso di interruzione
//del caricamento.L'utente può ripristinare la sessione interrota, o cancellare le tabelle
//di staging
//input: $numProtStag protocollo di staging su cui effettuare le operazioni
function JsErrorLoadPln($numProtStag,$codSelected)
{
?>
<script>
if (confirm ('Si è verificato un errore nella sessione precedente. \r Ripristinare sessione?')){
top.location = 'LSTV_planimetrie.php?cancella_staging=0&ripristina_staging=1&awk=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
}
else
{
if (confirm('Si desidera cancellare le tabelle di Staging?'))
{
if (confirm('Sicuro di voler cancellare le tabelle di Staging?'))
{
top.location = 'LSTM_cancella_staging_pln.php?errore=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
window.status="Attendere cancellazione tabelle...";
}
else
{
top.location='LSTV_file_frame.php?ricaricata=0';
}
}
else
{
top.location='LSTV_file_frame.php?ricaricata=0';
}
}
</script>
<?
exit();
}
function JsDelete($numProtStag,$codSelected)
{
?>
<script>
if (confirm('Si desidera cancellare le tabelle di Staging?'))
{
if (confirm('Sicuro di voler cancellare le tabelle di Staging?'))
{
top.location = 'LSTM_cancella_staging.php?errore=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
window.status="Attendere cancellazione tabelle...";
}
else
{
top.location='LSTV_file_frame.php?ricaricata=0';
}
}
else
{
top.location='LSTV_file_frame.php?ricaricata=0';
}
</script>
<?
exit();
}
//Funzione di genera codice javascript per reindirizzare pagina nel caso in cui le tabelle
//di staging contengano dati.L'utente puo passare alla fase di caricamento dbti,cancellare
//le tabelle di staging, o caricare una nuova fornitura.
//input: $numProtStag protocollo di staging su cui effettuare le operazioni
function JsTableLoaded($numProtStag,$codSelected)
{
Global $newLoad;
?> <script>
if (confirm ('Le tabelle di staging contengono dati!. \r Continuare con la fase DBTI?')){
top.location='LSTV_impianto_dbti.php?imp=0&fileselected='<? echo "+'".$codSelected."'"; ?>;
window.status = "Caricamento DBTI. Attendere...";
}
else
{
if (confirm('Si desidera cancellare le tabelle di Staging?'))
{
if (confirm('Sicuro di voler cancellare le tabelle di Staging?'))
{
top.location = 'LSTM_cancella_staging.php?errore=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
window.status="Attendere cancellazione tabelle...";
}
else
{
top.location='LSTV_file_frame.php?ricaricata=0';
}
}
else
{
/*
if (confirm('Si desidera caricare una nuova fornitura?'))
{
<? $newLoad = 1; ?>
}
else
{
top.location='LSTV_file_frame.php?ricaricata=0';
}
*/
top.location='LSTV_file_frame.php?ricaricata=0';
}
}
</script>
<?
exit();
}
//Funzione di genera codice javascript per reindirizzare pagina nel caso la fase dbti sia
//attiva.
//input: $numProtStag protocollo di staging su cui effettuare le operazioni
function JsDbtiCheck($numProtStag,$codSelected)
{
?>
<script>
if (!confirm('Attenzione. Risulta già avviata la fase DBTI. Continuare?'))
{
top.location='LSTV_file_frame.php?ricaricata=0';
}
else
{
top.location='LSTV_avvio_awk.php?cancella_staging=2&ripristina_staging=0&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
}
</script>
<?
exit();
}
//22/06/2004 15.16
//function ctrlSeqCaricamento($conn,$arrCtrlSeqFornitura)
//Controllo validita fornitura:
// Sequenza tipo fornitura
// Date fornitura
// Controllo codice stato dbti sulla tabella ti07
//parametri di input
//$conn connessione
//$arrCtrlSeqFornitura
// Array(
// 'ti07_codstato' => $ti07_codstato,
// 'ti07_tipo_fornitura' => $ti07_tipo_fornitura,
// 'ti07_periodo_da' => $ti07_periodo_da,
// 'ti07_periodo_a' => $ti07_periodo_a,
// 'arrPrm' => array(
// 'numProt' => $numProt,
// 'protocollo_stag' => $numProtStag,
// 'keycom' => $p_prm->getCodCom(),
// 'keysez' => $p_prm->getSez(),
// 'periodo_da' => $p_prm->getDataRegDa(),
// 'periodo_a' => $p_prm->getDataRegA(),
// 'tipo_fornitura' => $p_prm->getTipoFornitura(),
// 'tipo_processo' => $p_prm->getTipoCatasto('1')
// );
// )
function ctrlSeqCaricamento($conn,$arrCtrlSeqFornitura,$codSelected)
{
$arrPrm = $arrCtrlSeqFornitura['arrPrm'];
$ti07_codstato = $arrCtrlSeqFornitura['ti07_codstato'];
$ti07_tipo_fornitura = $arrCtrlSeqFornitura['ti07_tipo_fornitura'];
$ti07_periodo_da = $arrCtrlSeqFornitura['ti07_periodo_da'];
$ti07_periodo_a = $arrCtrlSeqFornitura['ti07_periodo_a'];
$arrTi07Prot = $arrCtrlSeqFornitura['arrTi07Prot'];
//controllo codice stato dbti sulla tabella ti07
if($ti07_tipo_fornitura == $arrPrm['tipo_fornitura'])
{
if($ti07_tipo_fornitura == 'C')
{
if($ti07_periodo_a == $arrPrm['periodo_a'])
{
//Fornitura completa gia caricata
//1 cancellazione tabelle staging
//2 update su tabella protocolli campo data
//3 update stato tabella errorlog
//4 riutilizzo protocollo
$stato = 0;
$stato = ctrlTi07_codstato($ti07_codstato,$arrPrm['protocollo_stag'],$codSelected);
}
else
{
jError('E015',$err,1);
}
}
else
{
//tipo fornitura in caricamento differente da quella gia caricata
//deve essere necessariamente una aggiornamento
if($ti07_periodo_da == $arrPrm['periodo_da'] && $ti07_periodo_a == $arrPrm['periodo_a'])
{
//Fornitura aggionamento gia caricato
//1 cancellazione tabelle staging
//2 update su tabella protocolli campo data
//3 update stato tabella errorlog
//4 riutilizzo protocollo
//error_log ("fornitura aggiornamento già caricata[$ti07_codstato] protocollo_stag[".$arrPrm['protocollo_stag']."]\n", 3, "/opt/web/php/sigmater/impiantodb/logs/ale.log");
$stato = 0;
$stato = ctrlTi07_codstato($ti07_codstato,$arrPrm['protocollo_stag'],$codSelected);
}
else
{
//fornitura aggiornamento pediodo differente
//se lo scarto fra la datea della fornitura caricata e la datada
//nel file prm è superiore a 7gg:
//1.segnalo e sovrascrivo?
//2 update su tabella protocolli campo data
//3 update stato tabella errorlog
$obj = new DateSpanClass($ti07_periodo_da,$arrPrm['periodo_da']);
$statodate = 0;
$statodate = $obj->CheckDateProgress();
if(!$statodate)
{
jError('E012','',1);
exit();
}
$days = 0;
$days = $obj->Span('days',$ti07_periodo_a,$arrPrm['periodo_da']);
if($days > 5)
{
jError('E013','',1);
exit();
}
//nuovo impianto per stessa fornitura
$arrNewStag = newStag($conn,$arrPrm);
if($arrNewStag['err'] == ''){
$err = $arrNewStag['err'];
$numProt = $arrNewStag['protocollo'];
$numProtStag = $arrNewStag['protocollo_stag'];
$ti07_tipo_fornitura = $arrNewStag['tipo_fornitura'];
$ti07_periodo_da = $arrNewStag['periodo_da'];
$ti07_periodo_a = $arrNewStag['periodo_a'];
$arrout['numProt'] = $numProt;
$arrout['numProtStag'] = $numProtStag;
}
else
{
jError('E011',$err,1);
}
$primo_error="insert into tcw17_errlog values (1,'IMPDBERR', 1, $form_data,$numProtStag)";
list ($stmt, $ocierr) = exec_sql($conn, $primo_error,1);
}
}
}
else
{
//tipo fornitura in caricamento differente da quella gia caricata
//deve essere necessariamente una aggiornamento
//controllo date validita
//nuovo caricamento
//nuova funzione inserimento protocollo staging
$arrLastProt = returnLastOperation($arrTi07Prot,'C');
$ti07_codstato = $arrLastProt['TI07_CODSTATO'];
$ti07_tipo_fornitura = $arrLastProt['TI07_TIPO_FORNITURA'];
$ti07_periodo_da = str_replace('-','/',$arrLastProt['TI07_PERIODO_DA']);
$ti07_periodo_a = str_replace('-','/',$arrLastProt['TI07_PERIODO_A']);
$obj = new DateSpanClass($ti07_periodo_da,$arrPrm['periodo_da']);
$statodate = 0;
$statodate = $obj->CheckDateProgress();
$days = 0;
$days = $obj->Span('days',$ti07_periodo_a,$arrPrm['periodo_da']);
if($days > FORNITURADAYS)
{
//data impianto a e data fornitura aggiornamento da hanno una differenza di piu di
//5 giorni
jError('E013','',1);
js_redirect ('LSTV_file_frame.php');
exit();
}
else{
$arrNewStag = newStag($conn,$arrPrm);
if($arrNewStag['err'] == ''){
$err = $arrNewStag['err'];
$numProt = $arrNewStag['protocollo'];
$numProtStag = $arrNewStag['protocollo_stag'];
$ti07_tipo_fornitura = $arrNewStag['tipo_fornitura'];
$ti07_periodo_da = $arrNewStag['periodo_da'];
$ti07_periodo_a = $arrNewStag['periodo_a'];
$arrout['numProt'] = $numProt;
$arrout['numProtStag'] = $numProtStag;
}
else
{
jError('E011',$err,1);
}
}
}
return($arrout);
}
//Funzione update date fornitura sulla tabella s3_ti07_protocolli
//input: $conn connessione db
// $numProtStag protocollo staging su cui effettuare update
// $dataDa data da fornitura
// $dataA data a fornitura
function updateProtStag($conn,$numProtStag,$dataDa,$dataA)
{
$err ='';
$set = '';
if(trim($dataDa) != '')
{
$set = "TI07_PERIODO_DA = to_date('".$dataDa."','DD/MM/YYYY'),";
}
if(trim($dataA) != '')
{
$set = $set."TI07_PERIODO_A = to_date('".$dataA."','DD/MM/YYYY') ";
}
$err = updateProtocolS3_ti07(
$conn,
$set,
" ti07_protocollo_staging = $numProtStag"
);
if($err != '')
{
jError('E009',$err,1);
}
$err = updateTcw17_errlog(
$conn,
" tcw17_descr_err='IMPDBERR' ",
" tcw17_protocollo = $numProtStag "
);
if($err != '')
{
jError('E010',$err,1);
}
return;
}
function returnLastErrLog($arrTcw17)
{
$indLast = count($arrTcw17) -1;
if($indLast > 0){
if($arrTcw17[$indLast]['TCW17_DESCR_ERR'] == 'IMPDBRIPR')
{
for($cont = $indLast;$cont >= 0;$cont--)
{
if($arrTcw17[$cont]['TCW17_DESCR_ERR'] != 'IMPDBRIPR')
{
return(array($arrTcw17[$cont]));
}
//sono tutti ripristini
return(array($arrTcw17[$indLast]));
}
}
}
else
{
return($arrTcw17);
}
}
function getLastErrCode($conn,$arrTcw17,$numProtStag)
{
$arrTcw17 = getTcw17_errlog($conn,$numProtStag);
if(!isset($arrTcw17['err'])){
$arrtmp = returnLastErrLog($arrTcw17);
$cod_tabella = $arrTcw17[0]['TCW17_STEP'];
$cod_err = $arrTcw17[0]['TCW17_DESCR_ERR'];
$rec_err = $arrTcw17[0]['TCW17_LAST_RECORD'];
$date_err = $arrTcw17[0]['TCW17_DATE'];
}
else
{
$cod_err = 'NODATA';
$cod_tabella = '';
$rec_err = '';
$date_err = '';
}
return($cod_err);
}
function getCodComSezFile($path_file_input)
{
$fp = fopen($path_file_input, "r") or die("impossibile aprire il file");
if (!feof($fp))
{
$line = fgets($fp, 1024);
$arrLine = explode("|", $line);
$arrOut['codcom'] = trim($arrLine[0]);
$arrOut['sez'] = trim($arrLine[1]);
}
else
{
$arrOut['codcom'] = '1';
}
fclose($fp);
return($arrOut);
}
function checkFileSupply($path,$arrFilesName)
{
foreach($arrFilesName as $fileName)
{
$lost = 0;
$complete = $path.$arrFilesName;
if(!file_exists($complete))
{
$fp = fopen($complete,"w+");
fclose($fp);
$lost = 1;
}
}
return($lost);
}
function getPlanimProt($arrProt)
{
foreach($arrProt as $singProt)
{
if(trim($singProt['TI07_TIPO_FORNITURA']) == '')
{
return($singProt['TI07_PROTOCOLLO_STAGING']);
}
}
return(false);
}
function getTarsuProt($arrProt)
{
foreach($arrProt as $singProt)
{
if(trim($singProt['TI07_TIPO_FORNITURA']) == 'T')
{
return($singProt['TI07_PROTOCOLLO_STAGING']);
}
}
return(false);
}
function getTaresProt($arrProt)
{
foreach($arrProt as $singProt)
{
if(trim($singProt['TI07_TIPO_FORNITURA']) == 'E')
{
return($singProt['TI07_PROTOCOLLO_STAGING']);
}
}
return(false);
}
//controllo tipo fornitura nel file stradario
function getTipoFornitura($path_file_input)
{
if (file_exists($path_file_input)){
$fp = fopen($path_file_input,'r');
$flagSearch = 1;
while ($fp && (!feof($fp)) && $flagSearch)
{
$line = fgets($fp, 1024);
$vinput = explode("|", $line);
if($vinput[5] == '3')
{
$flagSearch = 0;
}
}
fclose($fp);
//elimino ultimo separatore
$vinput = explode("|", rtrim($line,'|'));
//print_r($vinput);
$maxNField = sizeof($vinput);
//echo "maxNField: $maxNField \n";
//sei elementi di intestazione record più elemento finale.
$Nfield = $maxNField-7;
//echo "Nfield: $Nfield \n";
$resto = $Nfield%5;
//echo "resto: $resto";
$modulo = $Nfield/5;
//echo "modulo: $modulo";
if($resto != 0)
{
//fornitura 6
return(6);
}
elseif(($resto ==0) and ($modulo>4))
{
//fornitura 6
return(6);
}
else
{
return(5);
}
}
//errore apertura file
return(0);
}
//controllo tipo fornitura nel file dei terreni
function getTipoFornituraPorz($path_file_input)
{
if (file_exists($path_file_input)){
$fp = fopen($path_file_input,'r');
$flagSearch = 1;
while ($fp && (!feof($fp)) && $flagSearch)
{
$line = fgets($fp, 1024);
$vinput = explode("|", $line);
if($vinput[5] == '4')
{
$flagSearch = 0;
}
}
fclose($fp);
//elimino ultimo separatore
$vinput = explode("|", rtrim($line,'|'));
//print_r($vinput);
$maxNField = sizeof($vinput);
//echo "maxNField: $maxNField \n";
//sei elementi di intestazione record più elemento finale.
$Nfield = $maxNField-7;
//echo "Nfield: $Nfield \n";
$resto = $Nfield%6;
//echo "resto: $resto";
$modulo = $Nfield/6;
//echo "modulo: $modulo";
if($resto != 0)
{
//fornitura 6
return(6);
}
elseif(($resto ==0) and ($modulo>3))
{
//fornitura 6
return(6);
}
else
{
return(5);
}
}
//errore apertura file
return(0);
}
?>