Subversion Repositories Sigmater

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 Andrea 1
<?
2
//07/06/2004 15.34
3
//Ritirna l'ultima istanza inserita nella tabella protocolli relativa a comune, sezione e operazione effettuata
4
//Input:	$arrti07 			Array estratto dalla tabella protocolli contentete tutte le occorenze per il comune, sezione
5
//			$typeOparation      Operazione contenuta nel file prm
6
//Output	$pArrOper			Array contente l'occorrenza trovata
7
//								False se non trova nulla
8
function	returnLastOperation($arrti07,$typeOparation,$typeCat)
9
{
10
	foreach($arrti07	as	$pArrOper)
11
	{
12
		if(($pArrOper['TI07_TIPO_FORNITURA']		==	$typeOparation)	&&	($pArrOper['TI07_TIPO_PROCESSO']	==	$typeCat))
13
		{
14
			return($pArrOper);
15
		}
16
	}
17
	return(false);
18
}
19
 
20
//13/07/2004 15.49
21
//Ritirna l'ultima istanza inserita nella tabella protocolli relativa alla fornitura
22
//Input:	$arrCtrlSeqFornitura 	Record nella tabella protocolli
23
//			$arrPrm      			Dati della fornitura selezionata
24
//Output	$arrCtrlSeqFornitura[$num]	Record nella tabella protocolli
25
//
26
function checkLastProt($arrCtrlSeqFornitura,$arrPrm)
27
{
28
 
29
	foreach($arrCtrlSeqFornitura	as	$num	=>	$arrProt)
30
	{
31
	    $ti07_tipo_fornitura	=	$arrProt['TI07_TIPO_FORNITURA'];
32
	    $ti07_periodo_da		=	$arrProt['TI07_PERIODO_DA'];
33
	    $ti07_periodo_a		    =	$arrProt['TI07_PERIODO_A'];
34
 
35
		if($ti07_tipo_fornitura	==	'C')
36
		{
37
			if($ti07_periodo_a	==	$arrPrm['periodo_a'])
38
			{
39
				return($arrCtrlSeqFornitura[$num]);
40
			}
41
		}
42
		else
43
		{
44
			if($ti07_periodo_da	==	$arrPrm['periodo_da']	&&	$ti07_periodo_a	==	$arrPrm['periodo_a'])
45
			{
46
				return($arrCtrlSeqFornitura[$num]);
47
			}
48
		}
49
	}
50
	return(false);
51
}
52
 
53
function	returnDbtiLastOperation($arrti07,$arrPrm)
54
{
55
	foreach($arrti07	as	$pArrOper)
56
	{
57
 
58
	    $ti07_tipo_fornitura	=	$pArrOper['TI07_TIPO_FORNITURA'];
59
	    $ti07_periodo_da		=	$pArrOper['TI07_PERIODO_DA'];
60
	    $ti07_periodo_a		    =	$pArrOper['TI07_PERIODO_A'];
61
		if($ti07_tipo_fornitura	==	$arrPrm['tipo_fornitura'])
62
		{
63
			if($ti07_tipo_fornitura	==	'C')
64
			{
65
				if($ti07_periodo_a	==	$arrPrm['periodo_a'])
66
				{
67
					return($pArrOper);
68
				}
69
			}
70
			else
71
			{
72
				if($ti07_periodo_da	==	$arrPrm['periodo_da']	&&	$ti07_periodo_a	==	$arrPrm['periodo_a'])
73
				{
74
					return($pArrOper);
75
				}
76
			}
77
		}
78
	}
79
	return(false);
80
}
81
 
82
//07/06/2004 15.34
83
//Gestione errore in base al codice stato della tabella protocollo
84
//Input:	$ti07_codstato		valori ammessi nella tabella protocolli
85
//			$numProtStag		protocollo di staging
86
function	ctrlTi07_codstato($ti07_codstato,$numProtStag,$codSelected)
87
{
88
	$stato	=	true;
89
 
90
	switch($ti07_codstato)
91
	{
92
		case	'1':
93
		//avviso errore periodo di caricamento
94
            jConfirm(
95
            			'E007',
96
            			"top.location='LSTM_cancella_staging.php?errore=1&protocollo_staging=$numProtStag&fileselected=$codSelected';",
97
            			"top.location='LSTV_file_frame.php?ricaricata=0';"
98
            );
99
            exit();
100
		break;
101
		case	'':
102
			//Nessuna operazione effettutata
103
		break;
104
		case'2':
105
			//caricamento effettuato con successo
106
			jConfirm(
107
                            			'E005',
108
                            			"top.location='LSTM_cancella_staging.php?errore=1&protocollo_staging=$numProtStag&fileselected=$codSelected';",
109
                            			"top.location='LSTV_file_frame.php?ricaricata=0';"
110
                            );
111
			exit();
112
		break;
113
		case'3':
114
			jError('E006','',1);
115
		break;
116
 
117
	}
118
	return($stato);
119
}
120
//Funzione controllo validita intervallo fra data fornitura da caricare con fornitura
121
//caricata nelle tabelle di staging
122
//input		:	$dateStart		data inizio
123
//				$dateStop		data fine
124
//output	:	true			successione date corretta
125
//				false			successione date errata
126
function	ctrlDateFornitura($dateStart,$dateStop)
127
{
128
	$dGap	=	0;
129
	$obj	=	new	DateSpanClass($dateStart,$dateStop);
130
 
131
	$stato =	 $obj->CheckDateProgress();
132
	if($stato)
133
	{
134
		//controllo ok
135
		$dGap	=	$obj->span("d");
136
		if($dGap	>	FORNITURADAYS)
137
		{
138
			return(false);
139
		}
140
		else
141
		{
142
			return(true);
143
		}
144
 
145
	}
146
	else
147
	{
148
		return($stato);
149
	}
150
}
151
 
152
//Funzione di genera codice javascript per reindirizzare pagina in caso di interruzione
153
//del caricamento.L'utente può ripristinare la sessione interrota, o cancellare le tabelle
154
//di staging
155
//input:	$numProtStag		protocollo di staging su cui effettuare le operazioni
156
function	JsErrorLoad($numProtStag,$codSelected)
157
{
158
?>
159
	<script>
160
		if (confirm ('Si è verificato un errore nella sessione precedente. \r Ripristinare sessione?')){
161
			top.location = 'LSTV_avvio_awk.php?cancella_staging=0&ripristina_staging=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
162
		}
163
		else
164
		{
165
			if (confirm('Si desidera cancellare le tabelle di Staging?'))
166
			{
167
				if (confirm('Sicuro di voler cancellare le tabelle di Staging?'))
168
				{
169
					top.location = 'LSTM_cancella_staging.php?errore=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
170
					window.status="Attendere cancellazione tabelle...";
171
				}
172
				else
173
				{
174
					top.location='LSTV_file_frame.php?ricaricata=0';
175
				}
176
			}
177
			else
178
			{
179
				top.location='LSTV_file_frame.php?ricaricata=0';
180
			}
181
		}
182
	</script>
183
<?
184
	exit();
185
}
186
 
187
//Funzione di genera codice javascript per reindirizzare pagina in caso di interruzione
188
//del caricamento.L'utente può ripristinare la sessione interrota, o cancellare le tabelle
189
//di staging
190
//input:	$numProtStag		protocollo di staging su cui effettuare le operazioni
191
function	JsErrorLoadPln($numProtStag,$codSelected)
192
{
193
?>
194
	<script>
195
		if (confirm ('Si è verificato un errore nella sessione precedente. \r Ripristinare sessione?')){
196
			top.location = 'LSTV_planimetrie.php?cancella_staging=0&ripristina_staging=1&awk=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
197
		}
198
		else
199
		{
200
			if (confirm('Si desidera cancellare le tabelle di Staging?'))
201
			{
202
				if (confirm('Sicuro di voler cancellare le tabelle di Staging?'))
203
				{
204
					top.location = 'LSTM_cancella_staging_pln.php?errore=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
205
					window.status="Attendere cancellazione tabelle...";
206
				}
207
				else
208
				{
209
					top.location='LSTV_file_frame.php?ricaricata=0';
210
				}
211
			}
212
			else
213
			{
214
				top.location='LSTV_file_frame.php?ricaricata=0';
215
			}
216
		}
217
	</script>
218
<?
219
	exit();
220
}
221
 
222
function	JsDelete($numProtStag,$codSelected)
223
{
224
?>
225
	<script>
226
		if (confirm('Si desidera cancellare le tabelle di Staging?'))
227
		{
228
			if (confirm('Sicuro di voler cancellare le tabelle di Staging?'))
229
			{
230
				top.location = 'LSTM_cancella_staging.php?errore=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
231
				window.status="Attendere cancellazione tabelle...";
232
			}
233
			else
234
			{
235
				top.location='LSTV_file_frame.php?ricaricata=0';
236
			}
237
		}
238
		else
239
		{
240
			top.location='LSTV_file_frame.php?ricaricata=0';
241
		}
242
	</script>
243
<?
244
	exit();
245
}
246
 
247
 
248
//Funzione di genera codice javascript per reindirizzare pagina nel caso in cui le tabelle
249
//di staging contengano dati.L'utente puo passare alla fase di caricamento dbti,cancellare
250
//le tabelle di staging, o caricare una nuova fornitura.
251
//input:	$numProtStag		protocollo di staging su cui effettuare le operazioni
252
function JsTableLoaded($numProtStag,$codSelected)
253
{
254
 
255
	Global	$newLoad;
256
?> <script>
257
 
258
	if (confirm ('Le tabelle di staging contengono dati!. \r Continuare con la fase DBTI?')){
259
		top.location='LSTV_impianto_dbti.php?imp=0&fileselected='<? echo "+'".$codSelected."'"; ?>;
260
		window.status = "Caricamento DBTI. Attendere...";
261
	}
262
	else
263
	{
264
		if (confirm('Si desidera cancellare le tabelle di Staging?'))
265
		{
266
			if (confirm('Sicuro di voler cancellare le tabelle di Staging?'))
267
			{
268
				top.location = 'LSTM_cancella_staging.php?errore=1&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
269
				window.status="Attendere cancellazione tabelle...";
270
			}
271
			else
272
			{
273
				top.location='LSTV_file_frame.php?ricaricata=0';
274
			}
275
		}
276
		else
277
		{
278
			/*
279
			if (confirm('Si desidera caricare una nuova fornitura?'))
280
			{
281
				<? $newLoad	=	1;	?>
282
			}
283
			else
284
			{
285
				top.location='LSTV_file_frame.php?ricaricata=0';
286
			}
287
			*/
288
			top.location='LSTV_file_frame.php?ricaricata=0';
289
		}
290
	}
291
	</script>
292
<?
293
	exit();
294
}
295
//Funzione di genera codice javascript per reindirizzare pagina nel caso la fase dbti sia
296
//attiva.
297
//input:	$numProtStag		protocollo di staging su cui effettuare le operazioni
298
function	JsDbtiCheck($numProtStag,$codSelected)
299
{
300
	?>
301
	<script>
302
	if (!confirm('Attenzione. Risulta già avviata la fase DBTI. Continuare?'))
303
	{
304
		top.location='LSTV_file_frame.php?ricaricata=0';
305
	}
306
	else
307
	{
308
		top.location='LSTV_avvio_awk.php?cancella_staging=2&ripristina_staging=0&protocollo_staging='<? echo "+'".$numProtStag."'"; ?> + '&fileselected='<? echo "+'".$codSelected."'"; ?>;
309
	}
310
	</script>
311
	<?
312
	exit();
313
}
314
 
315
//22/06/2004 15.16
316
//function ctrlSeqCaricamento($conn,$arrCtrlSeqFornitura)
317
//Controllo validita fornitura:
318
//	Sequenza tipo fornitura
319
//	Date fornitura
320
//	Controllo codice stato dbti sulla tabella ti07
321
//parametri di input
322
//$conn connessione
323
//$arrCtrlSeqFornitura
324
//		Array(
325
//                'ti07_codstato'			=>	$ti07_codstato,
326
//                'ti07_tipo_fornitura'	=>	$ti07_tipo_fornitura,
327
//                'ti07_periodo_da'		=>	$ti07_periodo_da,
328
//                'ti07_periodo_a'		=>	$ti07_periodo_a,
329
//                'arrPrm'				=>	array(
330
//											'numProt'			=>	$numProt,
331
//											'protocollo_stag'	=>	$numProtStag,
332
//											'keycom'			=>	$p_prm->getCodCom(),
333
//											'keysez'			=>	$p_prm->getSez(),
334
//											'periodo_da'		=>	$p_prm->getDataRegDa(),
335
//											'periodo_a'			=>	$p_prm->getDataRegA(),
336
//											'tipo_fornitura'	=>	$p_prm->getTipoFornitura(),
337
//											'tipo_processo'		=>	$p_prm->getTipoCatasto('1')
338
//										);
339
//		)
340
 
341
function ctrlSeqCaricamento($conn,$arrCtrlSeqFornitura,$codSelected)
342
{
343
 
344
 
345
	$arrPrm					=	$arrCtrlSeqFornitura['arrPrm'];
346
    $ti07_codstato			=	$arrCtrlSeqFornitura['ti07_codstato'];
347
    $ti07_tipo_fornitura	=	$arrCtrlSeqFornitura['ti07_tipo_fornitura'];
348
    $ti07_periodo_da		=	$arrCtrlSeqFornitura['ti07_periodo_da'];
349
    $ti07_periodo_a		    =	$arrCtrlSeqFornitura['ti07_periodo_a'];
350
    $arrTi07Prot			=	$arrCtrlSeqFornitura['arrTi07Prot'];
351
 
352
	//controllo codice stato dbti sulla tabella ti07
353
	if($ti07_tipo_fornitura	==	$arrPrm['tipo_fornitura'])
354
	{
355
		if($ti07_tipo_fornitura	==	'C')
356
		{
357
			if($ti07_periodo_a	==	$arrPrm['periodo_a'])
358
			{
359
				//Fornitura completa gia caricata
360
				//1 cancellazione tabelle staging
361
				//2 update su tabella protocolli campo data
362
				//3 update stato tabella errorlog
363
				//4 riutilizzo protocollo
364
				$stato	=	0;
365
				$stato	=	ctrlTi07_codstato($ti07_codstato,$arrPrm['protocollo_stag'],$codSelected);
366
			}
367
			else
368
			{
369
				 jError('E015',$err,1);
370
 
371
			}
372
		}
373
		else
374
		{
375
			//tipo fornitura in caricamento differente da quella gia caricata
376
			//deve essere necessariamente una aggiornamento
377
			if($ti07_periodo_da	==	$arrPrm['periodo_da']	&&	$ti07_periodo_a	==	$arrPrm['periodo_a'])
378
			{
379
				//Fornitura aggionamento gia caricato
380
				//1 cancellazione tabelle staging
381
				//2 update su tabella protocolli campo data
382
				//3 update stato tabella errorlog
383
				//4 riutilizzo protocollo
384
				//error_log ("fornitura aggiornamento  già caricata[$ti07_codstato] protocollo_stag[".$arrPrm['protocollo_stag']."]\n", 3, "/opt/web/php/sigmater/impiantodb/logs/ale.log");
385
				$stato	=	0;
386
				$stato	=	ctrlTi07_codstato($ti07_codstato,$arrPrm['protocollo_stag'],$codSelected);
387
			}
388
			else
389
			{
390
				//fornitura aggiornamento pediodo differente
391
				//se lo scarto fra la datea della fornitura caricata e la datada
392
				//nel file prm è superiore a 7gg:
393
				//1.segnalo e sovrascrivo?
394
				//2 update su tabella protocolli campo data
395
				//3 update stato tabella errorlog
396
				$obj	=	new	DateSpanClass($ti07_periodo_da,$arrPrm['periodo_da']);
397
				$statodate	=	0;
398
				$statodate	=	$obj->CheckDateProgress();
399
 
400
				if(!$statodate)
401
				{
402
					jError('E012','',1);
403
					exit();
404
				}
405
				$days	=	0;
406
				$days	=	$obj->Span('days',$ti07_periodo_a,$arrPrm['periodo_da']);
407
				if($days	>	5)
408
				{
409
					jError('E013','',1);
410
					exit();
411
				}
412
 
413
 
414
				//nuovo impianto per stessa fornitura
415
				$arrNewStag			=	newStag($conn,$arrPrm);
416
				if($arrNewStag['err']	==	''){
417
					$err					=	$arrNewStag['err'];
418
					$numProt				=	$arrNewStag['protocollo'];
419
					$numProtStag			=	$arrNewStag['protocollo_stag'];
420
					$ti07_tipo_fornitura	=	$arrNewStag['tipo_fornitura'];
421
					$ti07_periodo_da		=	$arrNewStag['periodo_da'];
422
					$ti07_periodo_a			=	$arrNewStag['periodo_a'];
423
					$arrout['numProt']		=	$numProt;
424
					$arrout['numProtStag']	=	$numProtStag;
425
				}
426
				else
427
				{
428
					 jError('E011',$err,1);
429
				}
430
				$primo_error="insert into tcw17_errlog values (1,'IMPDBERR', 1, $form_data,$numProtStag)";
431
    			list ($stmt, $ocierr) = exec_sql($conn, $primo_error,1);
432
			}
433
		}
434
	}
435
	else
436
	{
437
 
438
		//tipo fornitura in caricamento differente da quella gia caricata
439
		//deve essere necessariamente una aggiornamento
440
		//controllo date validita
441
		//nuovo caricamento
442
		//nuova funzione inserimento protocollo staging
443
		$arrLastProt			=	returnLastOperation($arrTi07Prot,'C');
444
		$ti07_codstato			=	$arrLastProt['TI07_CODSTATO'];
445
		$ti07_tipo_fornitura	=	$arrLastProt['TI07_TIPO_FORNITURA'];
446
		$ti07_periodo_da		=	str_replace('-','/',$arrLastProt['TI07_PERIODO_DA']);
447
		$ti07_periodo_a			=	str_replace('-','/',$arrLastProt['TI07_PERIODO_A']);
448
 
449
		$obj	=	new	DateSpanClass($ti07_periodo_da,$arrPrm['periodo_da']);
450
		$statodate	=	0;
451
		$statodate	=	$obj->CheckDateProgress();
452
		$days	=	0;
453
		$days	=	$obj->Span('days',$ti07_periodo_a,$arrPrm['periodo_da']);
454
		if($days	>	FORNITURADAYS)
455
		{
456
			//data impianto a e data fornitura aggiornamento da hanno una differenza di piu di
457
			//5 giorni
458
			jError('E013','',1);
459
			js_redirect ('LSTV_file_frame.php');
460
			exit();
461
		}
462
		else{
463
 
464
			$arrNewStag			=	newStag($conn,$arrPrm);
465
			if($arrNewStag['err']	==	''){
466
				$err					=	$arrNewStag['err'];
467
				$numProt				=	$arrNewStag['protocollo'];
468
				$numProtStag			=	$arrNewStag['protocollo_stag'];
469
				$ti07_tipo_fornitura	=	$arrNewStag['tipo_fornitura'];
470
				$ti07_periodo_da		=	$arrNewStag['periodo_da'];
471
				$ti07_periodo_a			=	$arrNewStag['periodo_a'];
472
				$arrout['numProt']		=	$numProt;
473
				$arrout['numProtStag']	=	$numProtStag;
474
			}
475
			else
476
			{
477
				 jError('E011',$err,1);
478
			}
479
		}
480
	}
481
 
482
	return($arrout);
483
}
484
 
485
//Funzione update date fornitura sulla tabella s3_ti07_protocolli
486
//input:	$conn				connessione db
487
//			$numProtStag		protocollo staging su cui effettuare update
488
//			$dataDa				data da fornitura
489
//			$dataA				data a fornitura
490
function updateProtStag($conn,$numProtStag,$dataDa,$dataA)
491
{
492
	$err	='';
493
	$set	=	'';
494
	if(trim($dataDa)	!=	'')
495
	{
496
		$set =	"TI07_PERIODO_DA = to_date('".$dataDa."','DD/MM/YYYY'),";
497
	}
498
	if(trim($dataA)	!=	'')
499
	{
500
		$set =	$set."TI07_PERIODO_A = to_date('".$dataA."','DD/MM/YYYY') ";
501
	}
502
	$err	=	updateProtocolS3_ti07(
503
								$conn,
504
								$set,
505
								" ti07_protocollo_staging = $numProtStag"
506
	);
507
	if($err	!=	'')
508
	{
509
		jError('E009',$err,1);
510
	}
511
	$err	=	updateTcw17_errlog(
512
						$conn,
513
						" tcw17_descr_err='IMPDBERR' ",
514
						" tcw17_protocollo = $numProtStag "
515
	);
516
	if($err	!=	'')
517
	{
518
		jError('E010',$err,1);
519
	}
520
 
521
	return;
522
}
523
function returnLastErrLog($arrTcw17)
524
{
525
	$indLast	=	count($arrTcw17)	-1;
526
	if($indLast	>	0){
527
		if($arrTcw17[$indLast]['TCW17_DESCR_ERR']	==	'IMPDBRIPR')
528
		{
529
			for($cont	=	$indLast;$cont	>=	0;$cont--)
530
			{
531
				if($arrTcw17[$cont]['TCW17_DESCR_ERR']	!=	'IMPDBRIPR')
532
				{
533
					return(array($arrTcw17[$cont]));
534
				}
535
				//sono tutti ripristini
536
				return(array($arrTcw17[$indLast]));
537
			}
538
 
539
		}
540
	}
541
	else
542
	{
543
		return($arrTcw17);
544
	}
545
}
546
 
547
function getLastErrCode($conn,$arrTcw17,$numProtStag)
548
{
549
	$arrTcw17	=	getTcw17_errlog($conn,$numProtStag);
550
	if(!isset($arrTcw17['err'])){
551
		$arrtmp			=	returnLastErrLog($arrTcw17);
552
		$cod_tabella	=	$arrTcw17[0]['TCW17_STEP'];
553
		$cod_err		=	$arrTcw17[0]['TCW17_DESCR_ERR'];
554
		$rec_err		=	$arrTcw17[0]['TCW17_LAST_RECORD'];
555
		$date_err		=	$arrTcw17[0]['TCW17_DATE'];
556
	}
557
	else
558
	{
559
		$cod_err		=	'NODATA';
560
		$cod_tabella	=	'';
561
		$rec_err		=	'';
562
		$date_err		=	'';
563
	}
564
 
565
	return($cod_err);
566
}
567
 
568
function	getCodComSezFile($path_file_input)
569
{
570
	$fp				=	fopen($path_file_input, "r") or die("impossibile aprire il file");
571
 
572
   if (!feof($fp))
573
   {
574
       $line			=	fgets($fp, 1024);
575
       $arrLine		=	explode("|", $line);
576
       $arrOut['codcom']	=	trim($arrLine[0]);
577
       $arrOut['sez']		=	trim($arrLine[1]);
578
   }
579
   else
580
   {
581
   	$arrOut['codcom']	=	'1';
582
	}
583
 
584
	fclose($fp);
585
	return($arrOut);
586
}
587
 
588
function checkFileSupply($path,$arrFilesName)
589
{
590
	foreach($arrFilesName	as	$fileName)
591
	{
592
		$lost			=	0;
593
		$complete	=	$path.$arrFilesName;
594
		if(!file_exists($complete))
595
		{
596
			$fp	=	fopen($complete,"w+");
597
			fclose($fp);
598
			$lost	=	1;
599
		}
600
	}
601
	return($lost);
602
}
603
 
604
function getPlanimProt($arrProt)
605
{
606
	foreach($arrProt	as	$singProt)
607
	{
608
		if(trim($singProt['TI07_TIPO_FORNITURA'])	==	'')
609
		{
610
			return($singProt['TI07_PROTOCOLLO_STAGING']);
611
		}
612
	}
613
	return(false);
614
}
615
 
616
 
617
function getTarsuProt($arrProt)
618
{
619
	foreach($arrProt	as	$singProt)
620
	{
621
		if(trim($singProt['TI07_TIPO_FORNITURA'])	==	'T')
622
		{
623
			return($singProt['TI07_PROTOCOLLO_STAGING']);
624
		}
625
	}
626
	return(false);
627
}
628
 
629
function getTaresProt($arrProt)
630
{
631
	foreach($arrProt	as	$singProt)
632
	{
633
		if(trim($singProt['TI07_TIPO_FORNITURA'])	==	'E')
634
		{
635
			return($singProt['TI07_PROTOCOLLO_STAGING']);
636
		}
637
	}
638
	return(false);
639
}
640
 
641
//controllo tipo fornitura nel file stradario
642
function getTipoFornitura($path_file_input)
643
{
644
 
645
	if (file_exists($path_file_input)){
646
		$fp		=	fopen($path_file_input,'r');
647
		$flagSearch	=	1;
648
		while ($fp	&&	(!feof($fp)) &&	$flagSearch)
649
		{
650
			$line	=	fgets($fp, 1024);
651
			$vinput	=	explode("|", $line);
652
			if($vinput[5]	==	'3')
653
			{
654
				$flagSearch	=	0;
655
			}
656
		}
657
		fclose($fp);
658
 
659
		//elimino ultimo separatore
660
		$vinput	=	explode("|", rtrim($line,'|'));
661
 
662
		//print_r($vinput);		
663
		$maxNField	=	sizeof($vinput);
664
		//echo "maxNField: $maxNField \n";
665
		//sei elementi di intestazione record più elemento finale.
666
		$Nfield		=	$maxNField-7;
667
		//echo "Nfield: $Nfield \n";
668
		$resto		=	$Nfield%5;
669
		//echo "resto: $resto";
670
		$modulo		=	$Nfield/5;
671
		//echo "modulo: $modulo";
672
 
673
		if($resto	!=	0)
674
		{
675
			//fornitura 6
676
			return(6);
677
		}
678
		elseif(($resto		==0)	and	($modulo>4))
679
		{
680
			//fornitura 6
681
			return(6);
682
		}
683
		else
684
		{
685
			return(5);
686
		}
687
	}
688
	//errore apertura file
689
	return(0);
690
}
691
 
692
 
693
 
694
//controllo tipo fornitura nel file dei terreni
695
 
696
function getTipoFornituraPorz($path_file_input)
697
{
698
 
699
        if (file_exists($path_file_input)){
700
                $fp             =       fopen($path_file_input,'r');
701
                $flagSearch     =       1;
702
                while ($fp      &&      (!feof($fp)) && $flagSearch)
703
                {
704
                        $line   =       fgets($fp, 1024);
705
                        $vinput =       explode("|", $line);
706
                        if($vinput[5]   ==      '4')
707
                        {
708
                                $flagSearch     =       0;
709
                        }
710
                }
711
                fclose($fp);
712
 
713
                //elimino ultimo separatore
714
                $vinput =       explode("|", rtrim($line,'|'));
715
 
716
                //print_r($vinput);
717
                $maxNField  = sizeof($vinput);
718
                //echo "maxNField: $maxNField \n";
719
                //sei elementi di intestazione record più elemento finale.
720
                $Nfield         =       $maxNField-7;
721
                //echo "Nfield: $Nfield \n";
722
                $resto          =       $Nfield%6;
723
                //echo "resto: $resto";
724
                $modulo         =       $Nfield/6;
725
                //echo "modulo: $modulo";
726
 
727
                if($resto != 0)
728
                {
729
                        //fornitura 6
730
                        return(6);
731
                }
732
                elseif(($resto ==0) and ($modulo>3))
733
                {
734
                        //fornitura 6
735
                        return(6);
736
                }
737
                else
738
                {
739
                        return(5);
740
                }
741
        }
742
        //errore apertura file
743
        return(0);
744
}
745
?>