Subversion Repositories Sigmater

Rev

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);
}
?>