Пример #1
0
function crea_nuovo_anno($anno, $PHPR_TAB_PRE, $DATETIME, $tipo_periodi, $giorno_ini_fine, $mese_ini, $mese_fine, $importa_anno_prec, $silenzio, $pag)
{
    allunga_tempo_limite();
    global $lingua_mex, $LIKE, $ILIKE, $PHPR_DB_TYPE;
    $lingua_mex_orig = $lingua_mex;
    include_once "./includes/funzioni_menu.php";
    include C_DATA_PATH . "/lingua.php";
    $lingua_mex = $lingua[1];
    $tableanni = $PHPR_TAB_PRE . "anni";
    $tableprivilegi = $PHPR_TAB_PRE . "privilegi";
    $tabletransazioni = $PHPR_TAB_PRE . "transazioni";
    $tabletransazioniweb = $PHPR_TAB_PRE . "transazioniweb";
    $tablepersonalizza = $PHPR_TAB_PRE . "personalizza";
    $tablemessaggi = $PHPR_TAB_PRE . "messaggi";
    $tableinterconnessioni = $PHPR_TAB_PRE . "interconnessioni";
    $tablecontratti = $PHPR_TAB_PRE . "contratti";
    $tableutenti = $PHPR_TAB_PRE . "utenti";
    $tablerelclienti = $PHPR_TAB_PRE . "relclienti";
    if ($PHPR_DB_TYPE == "mysql" or $PHPR_DB_TYPE == "mysqli") {
        @esegui_query("SET default_storage_engine=MYISAM", 1);
    }
    $filelock = fopen(C_DATA_PATH . "/anni.lock", "w+");
    if ($filelock) {
        flock($filelock, 2);
        $anno_esistente = esegui_query("select * from {$tableanni} where idanni = {$anno}");
        if (numlin_query($anno_esistente) == 0) {
            if (C_CAMBIA_TIPO_PERIODI == "NO") {
                $tipo_periodi_esistenti = esegui_query("select * from {$tableanni} order by idanni desc");
                if (numlin_query($tipo_periodi_esistenti) != 0) {
                    $tipo_periodi = risul_query($tipo_periodi_esistenti, 0, 'tipo_periodi');
                }
            }
            # fine if (C_CAMBIA_TIPO_PERIODI == "NO")
            if ($tipo_periodi != "g") {
                $tipo_periodi = "s";
            }
            // creo la tabella con periodi settimanali e prezzi e la tabella con i nomi delle tariffe
            $tableperiodi = $PHPR_TAB_PRE . "periodi" . $anno;
            $tablenometariffe = $PHPR_TAB_PRE . "ntariffe" . $anno;
            if ($importa_anno_prec == "SI") {
                $anno_prec = $anno - 1;
                $tablenometariffe_prec = $PHPR_TAB_PRE . "ntariffe" . $anno_prec;
                $num_tariffe_tab = esegui_query("select nomecostoagg from {$tablenometariffe_prec} where idntariffe = 1");
                $num_tariffe_tab = risul_query($num_tariffe_tab, 0, 'nomecostoagg');
            } else {
                $num_tariffe_tab = 8;
            }
            $query = "create table {$tableperiodi} (idperiodi integer primary key, datainizio date not null, datafine date";
            $query2 = "create table {$tablenometariffe} (idntariffe integer, nomecostoagg varchar(40), tipo_ca varchar(2), valore_ca float8, valore_perc_ca float8, arrotonda_ca float4, tasseperc_ca float4, associasett_ca varchar(1), numsett_ca varchar(20), moltiplica_ca text, periodipermessi_ca text, beniinv_ca text, appincompatibili_ca text, variazione_ca varchar(20), mostra_ca varchar(10), categoria_ca text, letto_ca varchar(1), numlimite_ca integer, regoleassegna_ca varchar(30), utente_inserimento integer";
            $num_col_tariffe_db = $num_tariffe_tab;
            if ($num_col_tariffe_db < 12) {
                $num_col_tariffe_db = 12;
            }
            for ($num1 = 1; $num1 <= $num_col_tariffe_db; $num1++) {
                $nome_nuova_tariffa = "tariffa" . $num1;
                $query .= ", {$nome_nuova_tariffa} float8, {$nome_nuova_tariffa}" . "p float8";
                $query2 .= ", {$nome_nuova_tariffa} varchar(40)";
            }
            # fine for $num1
            $crea_tab = esegui_query($query . ")");
            if ($crea_tab) {
                esegui_query($query2 . ")");
                function estrai_col_tabella($col_table)
                {
                    $col_table = explode(",", $col_table);
                    for ($num1 = 0; $num1 < count($col_table); $num1++) {
                        $col = explode(" ", trim($col_table[$num1]));
                        $tutte_col .= $col[0] . ",";
                    }
                    # fine for $num1
                    return substr($tutte_col, 0, -1);
                }
                # fine function estrai_col_tabella
                # Creo la tabella delle prernotazioni
                $tableprenotazioni = $PHPR_TAB_PRE . "prenota" . $anno;
                $col_tableprenota = "idprenota integer primary key, idclienti integer, idappartamenti varchar(100), iddatainizio integer, iddatafine integer, assegnazioneapp varchar(4), app_assegnabili text, num_persone integer, idprenota_compagna text, tariffa text, tariffesettimanali text, incompatibilita text, sconto float8, tariffa_tot float8, caparra float8, commissioni float8, tasseperc float4, pagato float8, metodo_pagamento text, codice varchar(10), origine varchar(70), commento text, conferma varchar(4), checkin {$DATETIME}, checkout {$DATETIME}, id_anni_prec text, datainserimento {$DATETIME}, hostinserimento varchar(50), data_modifica {$DATETIME}, utente_inserimento integer ";
                esegui_query("create table {$tableprenotazioni} ({$col_tableprenota})");
                $col_tableprenota = estrai_col_tabella($col_tableprenota);
                # Creo la tabella con i costi aggiuntivi delle prenotazioni
                $tablecostiprenota = $PHPR_TAB_PRE . "costiprenota" . $anno;
                $col_tablecostiprenota = "idcostiprenota integer primary key, idprenota integer, tipo varchar(2), nome varchar(40), valore float8, valore_perc float8, arrotonda float4, tasseperc float4, associasett varchar(1), settimane text, moltiplica text, categoria text, letto varchar(1), numlimite integer, idntariffe integer, variazione varchar(10), varmoltiplica text, varnumsett varchar(20), varperiodipermessi text, varbeniinv text, varappincompatibili text, vartariffeassociate varchar(10), vartariffeincomp text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer";
                esegui_query("create table {$tablecostiprenota} ({$col_tablecostiprenota})");
                $col_tablecostiprenota = estrai_col_tabella($col_tablecostiprenota);
                crea_indice($tablecostiprenota, "idprenota", $PHPR_TAB_PRE . "iidpcostiprenota" . $anno);
                esegui_query("insert into {$tablecostiprenota} (idcostiprenota,numlimite) values ('1','1')");
                # Creo la tabella le relazioni tra prenotazioni e clienti non titolari
                $tablerclientiprenota = $PHPR_TAB_PRE . "rclientiprenota" . $anno;
                $col_tablerclientiprenota = "idprenota integer, idclienti integer, num_ordine integer, parentela varchar(70), datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer";
                esegui_query("create table {$tablerclientiprenota} ({$col_tablerclientiprenota})");
                $col_tablerclientiprenota = estrai_col_tabella($col_tablerclientiprenota);
                crea_indice($tablerclientiprenota, "idprenota", $PHPR_TAB_PRE . "iidprclientiprenota" . $anno);
                # Creo la tabella per le regole di assegnazione
                $tableregole = $PHPR_TAB_PRE . "regole" . $anno;
                $col_tableregole = "idregole integer, app_agenzia varchar(100), tariffa_chiusa text, tariffa_per_app text, tariffa_per_utente text, tariffa_per_persone text, tariffa_commissioni integer, iddatainizio integer, iddatafine integer, motivazione text, motivazione2 text";
                esegui_query("create table {$tableregole} ({$col_tableregole})");
                $col_tableregole = estrai_col_tabella($col_tableregole);
                # Creo la tabella con i costi di gestione
                $tablecosti = $PHPR_TAB_PRE . "costi" . $anno;
                $col_tablecosti = "idcosti integer unique,nome_costo text, val_costo float8, tipo_costo text, nome_cassa varchar(70), persona_costo text, provenienza_costo text, metodo_pagamento text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer";
                esegui_query("create table {$tablecosti} ({$col_tablecosti})");
                $col_tablecosti = estrai_col_tabella($col_tablecosti);
                # Creo la tabella per la storia entrate-uscite
                $tablesoldi = $PHPR_TAB_PRE . "soldi" . $anno;
                $col_tablesoldi = "idsoldi integer unique, motivazione text, id_pagamento text, metodo_pagamento text, saldo_prenota float8, saldo_cassa float8, soldi_prima float8, data_inserimento {$DATETIME}, utente_inserimento integer";
                esegui_query("create table {$tablesoldi} ({$col_tablesoldi})");
                $col_tablesoldi = estrai_col_tabella($col_tablesoldi);
                $tabelle_lock = array($tableanni, $tableprenotazioni, $tablecostiprenota, $tablerclientiprenota, $tablenometariffe, $tableperiodi, $tablerelclienti, $tablecosti, $tableregole, $tablesoldi, $tablepersonalizza, $tableprivilegi, $tabletransazioni);
                if ($importa_anno_prec == "SI") {
                    $anno_prec = $anno - 1;
                    $tablenometariffe_prec = $PHPR_TAB_PRE . "ntariffe" . $anno_prec;
                    $tableprenota_prec = $PHPR_TAB_PRE . "prenota" . $anno_prec;
                    $tablecostiprenota_prec = $PHPR_TAB_PRE . "costiprenota" . $anno_prec;
                    $tablerclientiprenota_prec = $PHPR_TAB_PRE . "rclientiprenota" . $anno_prec;
                    $tableperiodi_prec = $PHPR_TAB_PRE . "periodi" . $anno_prec;
                    $tableregole_prec = $PHPR_TAB_PRE . "regole" . $anno_prec;
                    $tablesoldi_prec = $PHPR_TAB_PRE . "soldi" . $anno_prec;
                    $tablecosti_prec = $PHPR_TAB_PRE . "costi" . $anno_prec;
                    $tabelle_lock = array($tableanni, $tableprenota_prec, $tableprenotazioni, $tablecostiprenota_prec, $tablecostiprenota, $tablerclientiprenota_prec, $tablerclientiprenota, $tablenometariffe, $tableperiodi, $tablerelclienti, $tablecosti_prec, $tablecosti, $tableregole, $tablesoldi_prec, $tablesoldi, $tableinterconnessioni, $tablemessaggi, $tablepersonalizza, $tableprivilegi, $tabletransazioni);
                    $altre_tab_lock = array($tablenometariffe_prec, $tableperiodi_prec, $tableregole_prec, $tablecontratti, $tableutenti);
                    $max_data_ini_prec = esegui_query("select max(datainizio) from {$tableperiodi_prec}");
                    if (numlin_query($max_data_ini_prec) != 0) {
                        $max_data_ini_prec = risul_query($max_data_ini_prec, 0, 0);
                        $max_mese_prec = 0;
                        if (substr($max_data_ini_prec, 0, 4) >= $anno) {
                            $max_mese_prec = substr($max_data_ini_prec, 5, 2);
                        }
                        if (substr($max_data_ini_prec, 0, 4) == $anno + 1) {
                            $max_mese_prec = $max_mese_prec + 12;
                        }
                        if (substr($max_data_ini_prec, 0, 4) == $anno + 2) {
                            $max_mese_prec = $max_mese_prec + 24;
                        }
                        if (substr($max_data_ini_prec, 0, 4) == $anno + 3) {
                            $max_mese_prec = $max_mese_prec + 36;
                        }
                        if (substr($max_data_ini_prec, 0, 4) == $anno + 4) {
                            $max_mese_prec = $max_mese_prec + 48;
                        }
                        if ($max_mese_prec > $mese_fine) {
                            $mese_fine = $max_mese_prec;
                        }
                        $data_ini_agg = date("Y-m-d", mktime(0, 0, 0, substr($max_data_ini_prec, 5, 2) + 1, 1, substr($max_data_ini_prec, 0, 4)));
                    } else {
                        $max_data_ini_prec = "";
                        $max_mese_prec = "";
                        $data_ini_agg = "";
                    }
                    # fine else if (numlin_query($max_data_ini_prec) != 0)
                } else {
                    unset($altre_tab_lock);
                }
                $tabelle_lock = lock_tabelle($tabelle_lock, $altre_tab_lock);
                # Elimino tutte le transazioni, potrebbero contenere date dell'anno creato
                esegui_query("delete from {$tabletransazioni}");
                # Inserisco l'anno nella tabella anni
                esegui_query("insert into {$tableanni} (idanni,tipo_periodi) values ('{$anno}','{$tipo_periodi}')");
                esegui_query("insert into {$tablecosti} (idcosti) values ('0')");
                esegui_query("insert into {$tablesoldi} (idsoldi,motivazione,soldi_prima) values ('1','soldi_prenotazioni_cancellate','0')");
                // trovo il primo giorno di inizio/fine dell'anno (nel caso di periodi settimanali)
                $numgiorno = 1;
                $giorno_ini_fine = (string) $giorno_ini_fine;
                if ($giorno_ini_fine != "0" and $giorno_ini_fine != "1" and $giorno_ini_fine != "2" and $giorno_ini_fine != "3" and $giorno_ini_fine != "4" and $giorno_ini_fine != "5" and $giorno_ini_fine != "6") {
                    $giorno_ini_fine = 6;
                }
                do {
                    $nomegiorno = date("w", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $numgiorno = $numgiorno + 1;
                } while ($nomegiorno != $giorno_ini_fine);
                $numgiorno = $numgiorno - 1;
                if ($tipo_periodi == "g") {
                    $numgiorno = 1;
                    $aggiungi_giorni = 1;
                } else {
                    $aggiungi_giorni = 7;
                }
                if ($mese_ini > $mese_fine) {
                    if ($silenzio != "SI") {
                        echo mex("I mesi erano indicati erroneamente, sono stati inseriti i mesi da Gennaio a Dicembre", $pag) . ".<br>";
                    }
                    $mese_ini = 1;
                    if ($mese_fine < 12) {
                        $mese_fine = 12;
                    }
                }
                # fine if ($mese_ini > $mese_fine)
                $anno_fine = $anno + 3;
                $idperiodi = 1;
                $fileaperto = fopen(C_DATA_PATH . "/selectperiodi{$anno}.1.php", "a+");
                flock($fileaperto, 2);
                $date_option = "";
                $n_date_menu = 0;
                do {
                    $datainizio = date("Y-m-d", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $annocreato = date("Y", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $mesecreato = date("n", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $nome_giorno = date("D", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $nome_mese = date("M", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $numero_giorno = date("d", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $numero_anno = $annocreato;
                    $numgiorno = $numgiorno + $aggiungi_giorni;
                    $datafine = date("Y-m-d", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $annocreato2 = date("Y", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $mesecreato2 = date("n", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    if ($annocreato > $anno) {
                        $diff = $annocreato - $anno;
                        $mesecreato = $diff * 12 + $mesecreato;
                    }
                    # fine if ($annocreato > $anno)
                    if ($annocreato2 > $anno) {
                        $diff = $annocreato2 - $anno;
                        $mesecreato2 = $diff * 12 + $mesecreato2;
                    }
                    # fine if ($annocreato2 > $anno)
                    if ($mesecreato >= $mese_ini and $mesecreato <= $mese_fine) {
                        esegui_query("insert into {$tableperiodi} ( idperiodi, datainizio, datafine) values ( {$idperiodi}, '{$datainizio}', '{$datafine}')");
                        if ($tipo_periodi == "g") {
                            if ($nome_giorno == "Sun") {
                                $nome_giorno = mex(" Do", $pag);
                            }
                            if ($nome_giorno == "Mon") {
                                $nome_giorno = mex(" Lu", $pag);
                            }
                            if ($nome_giorno == "Tue") {
                                $nome_giorno = mex(" Ma", $pag);
                            }
                            if ($nome_giorno == "Wed") {
                                $nome_giorno = mex(" Me", $pag);
                            }
                            if ($nome_giorno == "Thu") {
                                $nome_giorno = mex(" Gi", $pag);
                            }
                            if ($nome_giorno == "Fri") {
                                $nome_giorno = mex(" Ve", $pag);
                            }
                            if ($nome_giorno == "Sat") {
                                $nome_giorno = mex(" Sa", $pag);
                            }
                        } else {
                            $nome_giorno = "";
                        }
                        if ($nome_mese == "Jan") {
                            $nome_mese = mex("Gen", $pag);
                        }
                        if ($nome_mese == "Feb") {
                            $nome_mese = mex("Feb", $pag);
                        }
                        if ($nome_mese == "Mar") {
                            $nome_mese = mex("Mar", $pag);
                        }
                        if ($nome_mese == "Apr") {
                            $nome_mese = mex("Apr", $pag);
                        }
                        if ($nome_mese == "May") {
                            $nome_mese = mex("Mag", $pag);
                        }
                        if ($nome_mese == "Jun") {
                            $nome_mese = mex("Giu", $pag);
                        }
                        if ($nome_mese == "Jul") {
                            $nome_mese = mex("Lug", $pag);
                        }
                        if ($nome_mese == "Aug") {
                            $nome_mese = mex("Ago", $pag);
                        }
                        if ($nome_mese == "Sep") {
                            $nome_mese = mex("Set", $pag);
                        }
                        if ($nome_mese == "Oct") {
                            $nome_mese = mex("Ott", $pag);
                        }
                        if ($nome_mese == "Nov") {
                            $nome_mese = mex("Nov", $pag);
                        }
                        if ($nome_mese == "Dec") {
                            $nome_mese = mex("Dic", $pag);
                        }
                        if (!$date_option) {
                            $a_ini_menu = substr($datainizio, 0, 4);
                            $m_ini_menu = substr($datainizio, 5, 2) - 1;
                            $g_ini_menu = substr($datainizio, 8, 2);
                        }
                        # fine if (!$date_option)
                        $n_date_menu++;
                        $date_option .= "<option value=\\\"{$datainizio}\\\">{$nome_mese} {$numero_giorno}{$nome_giorno}, {$numero_anno}</option>\n";
                        $idperiodi = $idperiodi + 1;
                        $datafine2 = $datafine;
                    }
                    # fine if ($mesecreato >= $mese_ini and $mesecreato <= $mese_fine)
                } while ($annocreato2 <= $anno_fine or $mesecreato2 == 48);
                $numero_mese = substr($datafine2, 5, 2);
                if ($numero_mese == "01") {
                    $nome_mese = mex("Gen", $pag);
                }
                if ($numero_mese == "02") {
                    $nome_mese = mex("Feb", $pag);
                }
                if ($numero_mese == "03") {
                    $nome_mese = mex("Mar", $pag);
                }
                if ($numero_mese == "04") {
                    $nome_mese = mex("Apr", $pag);
                }
                if ($numero_mese == "05") {
                    $nome_mese = mex("Mag", $pag);
                }
                if ($numero_mese == "06") {
                    $nome_mese = mex("Giu", $pag);
                }
                if ($numero_mese == "07") {
                    $nome_mese = mex("Lug", $pag);
                }
                if ($numero_mese == "08") {
                    $nome_mese = mex("Ago", $pag);
                }
                if ($numero_mese == "09") {
                    $nome_mese = mex("Set", $pag);
                }
                if ($numero_mese == "10") {
                    $nome_mese = mex("Ott", $pag);
                }
                if ($numero_mese == "11") {
                    $nome_mese = mex("Nov", $pag);
                }
                if ($numero_mese == "12") {
                    $nome_mese = mex("Dic", $pag);
                }
                $numero_giorno = substr($datafine2, 8, 2);
                $numero_anno = substr($datafine2, 0, 4);
                $n_date_menu++;
                $date_option .= "<option value=\\\"{$datafine2}\\\">{$nome_mese} {$numero_giorno}, {$numero_anno}</option>\n";
                fwrite($fileaperto, "<?php \n\n\$y_ini_menu[0] = \"{$a_ini_menu}\";\n\$m_ini_menu[0] = \"{$m_ini_menu}\";\n\$d_ini_menu[0] = \"{$g_ini_menu}\";\n\$n_dates_menu[0] = \"{$n_date_menu}\";\n\$d_increment[0] = \"{$aggiungi_giorni}\";\n\$d_names = \"\\\"" . mex(" Do", $pag) . "\\\",\\\"" . mex(" Lu", $pag) . "\\\",\\\"" . mex(" Ma", $pag) . "\\\",\\\"" . mex(" Me", $pag) . "\\\",\\\"" . mex(" Gi", $pag) . "\\\",\\\"" . mex(" Ve", $pag) . "\\\",\\\"" . mex(" Sa", $pag) . "\\\"\";\n\$m_names = \"\\\"" . mex("Gen", $pag) . "\\\",\\\"" . mex("Feb", $pag) . "\\\",\\\"" . mex("Mar", $pag) . "\\\",\\\"" . mex("Apr", $pag) . "\\\",\\\"" . mex("Mag", $pag) . "\\\",\\\"" . mex("Giu", $pag) . "\\\",\\\"" . mex("Lug", $pag) . "\\\",\\\"" . mex("Ago", $pag) . "\\\",\\\"" . mex("Set", $pag) . "\\\",\\\"" . mex("Ott", $pag) . "\\\",\\\"" . mex("Nov", $pag) . "\\\",\\\"" . mex("Dic", $pag) . "\\\"\";\n\n\$dates_options_list = \"\n\n{$date_option}\n\";\n\n?>");
                flock($fileaperto, 3);
                fclose($fileaperto);
                if ($importa_anno_prec == "SI" and @is_file(C_DATA_PATH . "/selperiodimenu" . ($anno - 1) . ".1.php")) {
                    estendi_menu_date(C_DATA_PATH . "/selperiodimenu" . ($anno - 1) . ".1.php", C_DATA_PATH . "/selperiodimenu{$anno}.1.php", $tipo_periodi, date("Y-m-d", mktime(0, 0, 0, $mese_ini, 1, $anno)), $data_ini_agg, date("Y-m-d", mktime(0, 0, 0, $mese_fine + 1, 1, $anno)), $anno, $pag);
                } else {
                    copy(C_DATA_PATH . "/selectperiodi{$anno}.1.php", C_DATA_PATH . "/selperiodimenu{$anno}.1.php");
                }
                $lista_clienti_importati = "";
                # Importo eventuali prenotazioni, tariffe e regole dell'anno precedente
                if ($importa_anno_prec == "SI") {
                    $tableprenota = $tableprenotazioni;
                    $data_inizio_periodi = esegui_query("select * from {$tableperiodi} where idperiodi = 1");
                    $data_inizio_periodi = risul_query($data_inizio_periodi, 0, 'datainizio');
                    $ini_periodo_interferenza = esegui_query("select * from {$tableperiodi_prec} where datainizio = '{$data_inizio_periodi}'");
                    $num_periodo_interferenza = numlin_query($ini_periodo_interferenza);
                    $tipo_periodi_prec = esegui_query("select * from {$tableanni} where idanni = {$anno_prec}");
                    $tipo_periodi_prec = risul_query($tipo_periodi_prec, 0, 'tipo_periodi');
                    if ($tipo_periodi_prec != $tipo_periodi) {
                        $num_periodo_interferenza = 0;
                    }
                    if ($num_periodo_interferenza == 0) {
                        if ($silenzio != "SI") {
                            echo mex("Non ci sono periodi che riguardano il ", $pag) . $anno . mex(" nel ", $pag) . $anno_prec . mex(", o il giorno di inizio/fine locazione era differente, sono stati importati solo i data riguardanti costi aggiuntivi, caparra, nome delle tariffe, privilegi degli utenti e regole di assegnazione 2 e 3", $pag) . ".<br>";
                        }
                    } else {
                        $id_data_fine_periodi = esegui_query("select max(idperiodi) from {$tableperiodi}");
                        $id_data_fine_periodi = risul_query($id_data_fine_periodi, 0, 0);
                        $id_data_ini_periodi_prec = risul_query($ini_periodo_interferenza, 0, 'idperiodi');
                        $id_data_fine_periodi_prec = esegui_query("select max(idperiodi) from {$tableperiodi_prec}");
                        $id_data_fine_periodi_prec = risul_query($id_data_fine_periodi_prec, 0, 0);
                        $num_periodi_prec = $id_data_fine_periodi_prec - $id_data_ini_periodi_prec + 1;
                        if ($num_periodi_prec > $id_data_fine_periodi) {
                            $id_data_fine_periodi_prec = $id_data_ini_periodi_prec + $id_data_fine_periodi - 1;
                            $prenota_non_importabili = esegui_query("select * from {$tableprenota_prec} where iddatafine > {$id_data_fine_periodi_prec} ");
                            $num_prenota_non_importabili = numlin_query($prenota_non_importabili);
                            if ($num_prenota_non_importabili != 0) {
                                echo "<br>ERROR<br>";
                            }
                        }
                        # fine if ($num_periodi_prec > $id_data_fine_periodi)
                        $idprenota_corr = 0;
                        $max_idprenota_prec = esegui_query("select max(idprenota) from {$tableprenota_prec}");
                        $max_idprenota_prec = risul_query($max_idprenota_prec, 0, 0) + 1;
                        $max_idcostiprenota_prec = esegui_query("select max(idcostiprenota) from {$tablecostiprenota_prec}");
                        $max_idcostiprenota_prec = risul_query($max_idcostiprenota_prec, 0, 0) + 1;
                        $prenota_gia_iniziate = esegui_query("select * from {$tableprenota_prec} where iddatainizio < {$id_data_ini_periodi_prec} and iddatafine >= {$id_data_ini_periodi_prec} and iddatafine <= {$id_data_fine_periodi_prec} ");
                        $num_prenota_gia_iniziate = numlin_query($prenota_gia_iniziate);
                        for ($num1 = 0; $num1 < $num_prenota_gia_iniziate; $num1 = $num1 + 1) {
                            $idprenota = risul_query($prenota_gia_iniziate, $num1, 'idprenota');
                            $idclienti = risul_query($prenota_gia_iniziate, $num1, 'idclienti');
                            $lista_clienti_importati .= "and idclienti != '{$idclienti}' ";
                            $idappartamenti = risul_query($prenota_gia_iniziate, $num1, 'idappartamenti');
                            $iddatafine = risul_query($prenota_gia_iniziate, $num1, 'iddatafine');
                            $iddatafine = $iddatafine - $id_data_ini_periodi_prec + 1;
                            $datainserimento = risul_query($prenota_gia_iniziate, $num1, 'datainserimento');
                            $hostinserimento = risul_query($prenota_gia_iniziate, $num1, 'hostinserimento');
                            $data_modifica = risul_query($prenota_gia_iniziate, $num1, 'data_modifica');
                            $utente_inserimento = risul_query($prenota_gia_iniziate, $num1, 'utente_inserimento');
                            $checkin = risul_query($prenota_gia_iniziate, $num1, 'checkin');
                            $checkout = risul_query($prenota_gia_iniziate, $num1, 'checkout');
                            $codice = risul_query($prenota_gia_iniziate, $num1, 'codice');
                            $idprenota_corr++;
                            esegui_query("insert into {$tableprenota} (idprenota,idclienti,idappartamenti,iddatainizio,iddatafine,assegnazioneapp,commento,codice,datainserimento,hostinserimento,utente_inserimento) values ('{$idprenota_corr}','{$idclienti}','{$idappartamenti}','0',{$iddatafine},'k','{$idprenota}','{$codice}','{$datainserimento}','{$hostinserimento}','{$utente_inserimento}') ");
                            if ($checkin) {
                                esegui_query("update {$tableprenota} set checkin = '" . aggslashdb($checkin) . "' where idprenota = '{$idprenota_corr}'");
                            }
                            if ($checkout) {
                                esegui_query("update {$tableprenota} set checkout = '" . aggslashdb($checkout) . "' where idprenota = '{$idprenota_corr}'");
                            }
                            esegui_query("update {$tablecostiprenota_prec} set idprenota = '{$max_idprenota_prec}' where idprenota = '{$idprenota}'");
                            esegui_query("insert into {$tablecostiprenota} select {$col_tablecostiprenota} from {$tablecostiprenota_prec} where idprenota = '{$max_idprenota_prec}' ");
                            esegui_query("update {$tablecostiprenota} set idprenota = '{$idprenota_corr}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tablecostiprenota_prec} set idprenota = '{$idprenota}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tablerclientiprenota_prec} set idprenota = '{$max_idprenota_prec}' where idprenota = '{$idprenota}'");
                            esegui_query("insert into {$tablerclientiprenota} select {$col_tablerclientiprenota} from {$tablerclientiprenota_prec} where idprenota = '{$max_idprenota_prec}' ");
                            esegui_query("update {$tablerclientiprenota} set idprenota = '{$idprenota_corr}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tablerclientiprenota_prec} set idprenota = '{$idprenota}' where idprenota = '{$max_idprenota_prec}'");
                        }
                        # fine for $num1
                        $nuovo_idprenota = "";
                        $nuovo_iddatainizio = "";
                        $nuovo_iddatafine = "";
                        $prenota_importate = esegui_query("select * from {$tableprenota_prec} where iddatainizio >= '{$id_data_ini_periodi_prec}' and iddatafine <= '{$id_data_fine_periodi_prec}' order by idprenota ");
                        $num_prenota_importate = numlin_query($prenota_importate);
                        for ($num1 = 0; $num1 < $num_prenota_importate; $num1 = $num1 + 1) {
                            $idprenota = risul_query($prenota_importate, $num1, 'idprenota');
                            $iddatainizio = risul_query($prenota_importate, $num1, 'iddatainizio');
                            $iddatainizio = $iddatainizio - $id_data_ini_periodi_prec + 1;
                            $iddatafine = risul_query($prenota_importate, $num1, 'iddatafine');
                            $iddatafine = $iddatafine - $id_data_ini_periodi_prec + 1;
                            $idclienti = risul_query($prenota_importate, $num1, 'idclienti');
                            $lista_clienti_importati .= "and idclienti != '{$idclienti}' ";
                            $id_anni_prec = risul_query($prenota_importate, $num1, 'id_anni_prec');
                            if (!$id_anni_prec) {
                                $id_anni_prec = ";";
                            }
                            $id_anni_prec .= "{$anno_prec},{$idprenota};";
                            $idprenota_corr++;
                            esegui_query("update {$tableprenota_prec} set idprenota = '{$max_idprenota_prec}' where idprenota = '{$idprenota}'");
                            esegui_query("insert into {$tableprenota} select {$col_tableprenota} from {$tableprenota_prec} where idprenota = '{$max_idprenota_prec}' ");
                            esegui_query("update {$tableprenota} set iddatainizio = '{$iddatainizio}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tableprenota} set iddatafine = '{$iddatafine}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tableprenota} set id_anni_prec = '{$id_anni_prec}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tableprenota} set idprenota = '{$idprenota_corr}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("delete from {$tableprenota_prec} where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tablecostiprenota_prec} set idprenota = '{$max_idprenota_prec}' where idprenota = '{$idprenota}'");
                            esegui_query("insert into {$tablecostiprenota} select {$col_tablecostiprenota} from {$tablecostiprenota_prec} where idprenota = '{$max_idprenota_prec}' ");
                            esegui_query("update {$tablecostiprenota} set idprenota = '{$idprenota_corr}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("delete from {$tablecostiprenota_prec} where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tablerclientiprenota_prec} set idprenota = '{$max_idprenota_prec}' where idprenota = '{$idprenota}'");
                            esegui_query("insert into {$tablerclientiprenota} select {$col_tablerclientiprenota} from {$tablerclientiprenota_prec} where idprenota = '{$max_idprenota_prec}' ");
                            esegui_query("update {$tablerclientiprenota} set idprenota = '{$idprenota_corr}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("delete from {$tablerclientiprenota_prec} where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tableinterconnessioni} set idlocale = '{$idprenota_corr}', anno = '{$anno}' where idlocale = '{$idprenota}' and ( tipoid = 'prenota' or tipoid = 'mess' ) and anno = '{$anno_prec}' ");
                            $nuovo_idprenota[$idprenota] = $idprenota_corr;
                            $nuovo_iddatainizio[$idprenota] = $iddatainizio;
                            $nuovo_iddatafine[$idprenota] = $iddatafine;
                        }
                        # fine for $num1
                        esegui_query("update {$tablecostiprenota} set numlimite = '" . ($idprenota_corr + 1) . "' where idcostiprenota = '1'");
                        $prenota_compagne = esegui_query("select idprenota,idprenota_compagna from {$tableprenota} where idprenota_compagna != '' ");
                        $num_prenota_compagne = numlin_query($prenota_compagne);
                        for ($num1 = 0; $num1 < $num_prenota_compagne; $num1++) {
                            $idprenota = risul_query($prenota_compagne, $num1, 'idprenota');
                            $idprenota_compagna = risul_query($prenota_compagne, $num1, 'idprenota_compagna');
                            $idprenota_compagna = explode(",", $idprenota_compagna);
                            $n_idprenota_compagna = $nuovo_idprenota[$idprenota_compagna[0]];
                            for ($num2 = 1; $num2 < count($idprenota_compagna); $num2++) {
                                $n_idprenota_compagna .= "," . $nuovo_idprenota[$idprenota_compagna[$num2]];
                            }
                            esegui_query("update {$tableprenota} set idprenota_compagna = '{$n_idprenota_compagna}' where idprenota = '{$idprenota}'");
                        }
                        # fine for $num1
                        $id_costi_agg_importati = esegui_query("select idcostiprenota from {$tablecostiprenota} where idcostiprenota != '1' order by idcostiprenota");
                        $num_id_costi_agg_importati = numlin_query($id_costi_agg_importati);
                        for ($num1 = 0; $num1 < $num_costi_agg_importati; $num1++) {
                            $idcostiprenota = risul_query($id_costi_agg_importati, $num1, 'idcostiprenota');
                            $max_idcostiprenota_prec++;
                            esegui_query("update {$tablecostiprenota} set idcostiprenota = '{$max_idcostiprenota_prec}' where idcostiprenota = '{$idcostiprenota}'");
                        }
                        # fine for $num1
                        $costi_agg_importati = esegui_query("select * from {$tablecostiprenota} where idcostiprenota != '1' order by idcostiprenota");
                        $num_costi_agg_importati = numlin_query($costi_agg_importati);
                        for ($num1 = 0; $num1 < $num_costi_agg_importati; $num1++) {
                            $idcostiprenota = risul_query($costi_agg_importati, $num1, 'idcostiprenota');
                            $settimane = risul_query($costi_agg_importati, $num1, 'settimane');
                            if (str_replace(",", "", $settimane) != $settimane) {
                                $settimane = explode(",", $settimane);
                                $settimane_nuove = ",";
                                for ($num2 = 1; $num2 < count($settimane) - 1; $num2++) {
                                    $settimane_nuove .= $settimane[$num2] - $id_data_ini_periodi_prec + 1 . ",";
                                }
                                esegui_query("update {$tablecostiprenota} set settimane = '{$settimane_nuove}' where idcostiprenota = '{$idcostiprenota}'");
                            }
                            # fine if (str_replace(",","",$settimane) != $settimane)
                            $varperiodipermessi = risul_query($costi_agg_importati, $num1, 'varperiodipermessi');
                            if ($varperiodipermessi) {
                                $vpp_nuovi = substr($varperiodipermessi, 0, 1);
                                $varperiodipermessi = explode(",", substr($varperiodipermessi, 1));
                                for ($num2 = 0; $num2 < count($varperiodipermessi); $num2++) {
                                    $id_data_fine_vpp = explode("-", $varperiodipermessi[$num2]);
                                    $id_data_inizio_vpp = $id_data_fine_vpp[0];
                                    $id_data_fine_vpp = $id_data_fine_vpp[1];
                                    if ($id_data_fine_vpp >= $id_data_ini_periodi_prec and $id_data_inizio_vpp <= $id_data_fine_periodi_prec) {
                                        if ($id_data_inizio_vpp < $id_data_ini_periodi_prec) {
                                            $id_data_inizio_vpp = $id_data_ini_periodi_prec;
                                        }
                                        if ($id_data_fine_vpp > $id_data_fine_periodi_prec) {
                                            $id_data_fine_vpp = $id_data_fine_periodi_prec;
                                        }
                                        $id_data_inizio_vpp = $id_data_inizio_vpp - $id_data_ini_periodi_prec + 1;
                                        $id_data_fine_vpp = $id_data_fine_vpp - $id_data_ini_periodi_prec + 1;
                                        $vpp_nuovi .= $id_data_inizio_vpp . "-" . $id_data_fine_vpp . ",";
                                    }
                                    # fine if ($id_data_fine_vpp >= $id_data_ini_periodi_prec and...
                                }
                                # fine for $num2
                                if (strlen($vpp_nuovi) > 1) {
                                    $vpp_nuovi = substr($vpp_nuovi, 0, -1);
                                }
                                esegui_query("update {$tablecostiprenota} set varperiodipermessi = '{$vpp_nuovi}' where idcostiprenota = '{$idcostiprenota}'");
                            }
                            # fine if ($varperiodipermessi)
                            esegui_query("update {$tablecostiprenota} set idcostiprenota = '" . ($num1 + 2) . "' where idcostiprenota = '{$idcostiprenota}'");
                        }
                        # fine for $num1
                        $tariffe_importate = esegui_query("select * from {$tableperiodi_prec} where idperiodi >= '{$id_data_ini_periodi_prec}' and idperiodi <= '{$id_data_fine_periodi_prec}' ");
                        $num_tariffe_iportate = numlin_query($tariffe_importate);
                        for ($num1 = 0; $num1 < $num_tariffe_iportate; $num1 = $num1 + 1) {
                            $idperiodi = risul_query($tariffe_importate, $num1, 'idperiodi');
                            $idperiodi = $idperiodi - $id_data_ini_periodi_prec + 1;
                            for ($num2 = 1; $num2 <= $num_tariffe_tab; $num2++) {
                                $tariffa = (string) risul_query($tariffe_importate, $num1, "tariffa" . $num2);
                                if (strcmp($tariffa, "")) {
                                    esegui_query("update {$tableperiodi} set tariffa{$num2} = '{$tariffa}' where idperiodi = {$idperiodi} ");
                                }
                                $tariffap = (string) risul_query($tariffe_importate, $num1, "tariffa" . $num2 . "p");
                                if (strcmp($tariffap, "")) {
                                    esegui_query("update {$tableperiodi} set tariffa{$num2}" . "p = '{$tariffap}' where idperiodi = {$idperiodi} ");
                                }
                            }
                            # fine for $num2
                        }
                        # fine for $num1
                        $regole_prec = esegui_query("select * from {$tableregole_prec} where iddatafine >= '{$id_data_ini_periodi_prec}' ");
                        $num_regole_prec = numlin_query($regole_prec);
                        for ($num1 = 0; $num1 < $num_regole_prec; $num1 = $num1 + 1) {
                            $idregole = risul_query($regole_prec, $num1, 'idregole');
                            $app_agenzia = risul_query($regole_prec, $num1, 'app_agenzia');
                            $tariffa_chiusa = risul_query($regole_prec, $num1, 'tariffa_chiusa');
                            $tariffa_commissioni = risul_query($regole_prec, $num1, 'tariffa_commissioni');
                            $iddatainizio = risul_query($regole_prec, $num1, 'iddatainizio');
                            $motivazione = risul_query($regole_prec, $num1, 'motivazione');
                            $motivazione2 = risul_query($regole_prec, $num1, 'motivazione2');
                            if ($iddatainizio < $id_data_ini_periodi_prec) {
                                $iddatainizio = $id_data_ini_periodi_prec;
                            }
                            $iddatainizio = $iddatainizio - $id_data_ini_periodi_prec + 1;
                            $iddatafine = risul_query($regole_prec, $num1, 'iddatafine');
                            if ($iddatafine > $id_data_fine_periodi_prec) {
                                $iddatafine = $id_data_fine_periodi_prec;
                            }
                            $iddatafine = $iddatafine - $id_data_ini_periodi_prec + 1;
                            if ($tariffa_commissioni) {
                                esegui_query("insert into {$tableregole} (idregole,tariffa_commissioni,iddatainizio,iddatafine) values ('{$idregole}','{$tariffa_commissioni}','{$iddatainizio}','{$iddatafine}') ");
                            } else {
                                if ($tariffa_chiusa) {
                                    esegui_query("insert into {$tableregole} (idregole,tariffa_chiusa,iddatainizio,iddatafine) values ('{$idregole}','{$tariffa_chiusa}','{$iddatainizio}','{$iddatafine}') ");
                                } else {
                                    esegui_query("insert into {$tableregole} (idregole,app_agenzia,iddatainizio,iddatafine) values ('{$idregole}','{$app_agenzia}','{$iddatainizio}','{$iddatafine}') ");
                                }
                            }
                            # fine else $tariffa_commissioni)
                            if (strcmp($motivazione, "")) {
                                esegui_query("update {$tableregole} set motivazione = '" . aggslashdb($motivazione) . "' where idregole = '{$idregole}' ");
                            }
                            if (strcmp($motivazione2, "")) {
                                esegui_query("update {$tableregole} set motivazione2 = '" . aggslashdb($motivazione2) . "' where idregole = '{$idregole}' ");
                            }
                        }
                        # fine for $num1
                        $soldi_importati = esegui_query("select * from {$tablesoldi_prec} where data_inserimento >= '{$data_inizio_periodi}' and  saldo_prenota is not NULL order by idsoldi");
                        $num_soldi_importati = numlin_query($soldi_importati);
                        $idsoldi_corr = 1;
                        for ($num1 = 0; $num1 < $num_soldi_importati; $num1++) {
                            $motiv = explode(";", risul_query($soldi_importati, $num1, 'motivazione'));
                            if ($nuovo_idprenota[$motiv[3]]) {
                                $idsoldi_corr++;
                                $idsoldi_prec = risul_query($soldi_importati, $num1, 'idsoldi');
                                $n_motiv = $motiv[0] . ";" . $nuovo_iddatainizio[$motiv[3]] . ";" . $nuovo_iddatafine[$motiv[3]] . ";" . $nuovo_idprenota[$motiv[3]];
                                esegui_query("insert into {$tablesoldi} select {$col_tablesoldi} from {$tablesoldi_prec} where idsoldi = '{$idsoldi_prec}' ");
                                esegui_query("delete from {$tablesoldi_prec} where idsoldi = '{$idsoldi_prec}' ");
                                esegui_query("update {$tablesoldi} set motivazione = '{$n_motiv}' where idsoldi = '{$idsoldi_prec}' ");
                                esegui_query("update {$tablesoldi} set idsoldi = '{$idsoldi_corr}' where idsoldi = '{$idsoldi_prec}' ");
                            }
                            # fine if ($nuovo_idprenota[$motiv[3]])
                        }
                        # fine for $num1
                        $costi_importati = esegui_query("select * from {$tablecosti_prec} where datainserimento >= '{$data_inizio_periodi}' and  tipo_costo is not NULL order by idcosti");
                        $num_costi_importati = numlin_query($costi_importati);
                        $idcosti_corr = 0;
                        for ($num1 = 0; $num1 < $num_costi_importati; $num1++) {
                            $idcosti_corr++;
                            $idcosti_prec = risul_query($costi_importati, $num1, 'idcosti');
                            esegui_query("insert into {$tablecosti} select {$col_tablecosti} from {$tablecosti_prec} where idcosti = '{$idcosti_prec}' ");
                            esegui_query("delete from {$tablecosti_prec} where idcosti = '{$idcosti_prec}' ");
                            esegui_query("update {$tablecosti} set idcosti = '{$idcosti_corr}' where idcosti = '{$idcosti_prec}' ");
                        }
                        # fine for $num1
                        $costo_cassa = 0;
                        $data_lim = $anno + 1 . "-01-01 00:00:00";
                        $costi_cassa = esegui_query("select * from {$tablecosti} where tipo_costo = 'e' and provenienza_costo = 'p' and datainserimento < '{$data_lim}' ");
                        $num_costi_cassa = numlin_query($costi_cassa);
                        for ($num2 = 0; $num2 < $num_costi_cassa; $num2++) {
                            $costo_cassa = $costo_cassa + risul_query($costi_cassa, $num2, 'val_costo');
                        }
                        if ($costo_cassa) {
                            esegui_query("update {$tablecosti} set val_costo = '{$costo_cassa}' where idcosti = '0' ");
                        }
                        unset($cassa_prec);
                        $costi_non_importati = esegui_query("select * from {$tablecosti_prec} where tipo_costo is not NULL order by idcosti");
                        $num_costi_non_importati = numlin_query($costi_non_importati);
                        for ($num1 = 0; $num1 < $num_costi_non_importati; $num1++) {
                            $tipo_costo = risul_query($costi_non_importati, $num1, 'tipo_costo');
                            $val_costo = risul_query($costi_non_importati, $num1, 'val_costo');
                            $utente_costo = risul_query($costi_non_importati, $num1, 'utente_inserimento');
                            if ($tipo_costo == "e") {
                                $cassa_prec[$utente_costo] = $cassa_prec[$utente_costo] + (double) $val_costo;
                            } else {
                                $cassa_prec[$utente_costo] = $cassa_prec[$utente_costo] - (double) $val_costo;
                            }
                        }
                        # fine for $num1
                        if (@is_array($cassa_prec)) {
                            $datainserimento = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
                            reset($cassa_prec);
                            while (list($utente_costo, $val_costo) = each($cassa_prec)) {
                                $idcosti_corr++;
                                esegui_query("insert into {$tablecosti} (idcosti,nome_costo,val_costo,persona_costo,tipo_costo,datainserimento,hostinserimento,utente_inserimento) values ('{$idcosti_corr}','{$anno_prec}','{$val_costo}','','e','{$datainserimento}','{$HOSTNAME}','{$utente_costo}') ");
                            }
                            # fine (list($utente_costo,$val_costo) = each($cassa_prec))
                        }
                        # fine if (@is_array($cassa_prec))
                        # aggiorno i messaggi con prenotazioni del nuovo anno già inserite, quelli da inserire sono aggiornati con i modelli internet
                        $messaggi_importati = esegui_query("select * from {$tablemessaggi} where stato = 'ins' and dati_messaggio18 = '{$anno_prec}' ");
                        $num_messaggi_importati = numlin_query($messaggi_importati);
                        for ($num1 = 0; $num1 < $num_messaggi_importati; $num1++) {
                            $agg_mess = 1;
                            $n_lista_pren = "";
                            $lista_pren = explode(",", risul_query($messaggi_importati, $num1, 'dati_messaggio1'));
                            for ($num2 = 0; $num2 < count($lista_pren); $num2++) {
                                if ($nuovo_idprenota[$lista_pren[$num2]]) {
                                    $n_lista_pren .= $nuovo_idprenota[$lista_pren[$num2]] . ",";
                                } else {
                                    $agg_mess = 0;
                                }
                            }
                            # fine for $num2
                            if ($agg_mess) {
                                $idmess = risul_query($messaggi_importati, $num1, 'idmessaggi');
                                $n_lista_pren = substr($n_lista_pren, 0, -1);
                                esegui_query("update {$tablemessaggi} set dati_messaggio1 = '{$n_lista_pren}', dati_messaggio18 = '{$anno}' where idmessaggi = '{$idmess}' ");
                            }
                            # fine if ($agg_mess)
                        }
                        # fine for $num1
                        # aggiorno i numeri delle prenotazioni importate nei nomi dei documenti già creati nel nuovo anno
                        $dirs_salva = esegui_query("select * from {$tablecontratti} where tipo = 'dir'");
                        $num_dirs_salva = numlin_query($dirs_salva);
                        if ($num_dirs_salva) {
                            unset($contr_salva_in);
                            $max_contr = esegui_query("select max(numero) from {$tablecontratti} where tipo {$LIKE} 'contr%'");
                            $max_contr = risul_query($max_contr, 0, 0);
                            if (defined("C_CARTELLA_CREA_MODELLI") and C_CARTELLA_CREA_MODELLI != "") {
                                if (C_CARTELLA_DOC != "" and @is_dir(C_CARTELLA_CREA_MODELLI . "/" . C_CARTELLA_DOC)) {
                                    $dir_salva_home = C_CARTELLA_DOC;
                                } else {
                                    $dir_salva_home = "";
                                }
                            } else {
                                $dir_salva_home = C_DATA_PATH;
                            }
                            $utenti = esegui_query("select * from " . $PHPR_TAB_PRE . "utenti order by idutenti");
                            $num_utenti = numlin_query($utenti);
                            unset($nomi_contr_ut);
                            $parola_documento = mex("documento", 'visualizza_contratto.php');
                            for ($num1 = 0; $num1 < $num_utenti; $num1++) {
                                $idutente_contr = risul_query($utenti, $num1, 'idutenti');
                                for ($num2 = 1; $num2 <= $max_contr; $num2++) {
                                    $nomi_contr_ut[$idutente_contr][$num2] = $parola_documento . $num2;
                                }
                                $nomi_contratti = esegui_query("select valpersonalizza from {$tablepersonalizza} where idpersonalizza = 'nomi_contratti' and idutente = '{$idutente_contr}'");
                                $nomi_contratti = risul_query($nomi_contratti, 0, 'valpersonalizza');
                                $nomi_contratti = explode("#@&", $nomi_contratti);
                                $num_nomi_contratti = count($nomi_contratti);
                                for ($num2 = 0; $num2 < $num_nomi_contratti; $num2++) {
                                    $dati_nome_contratto = explode("#?&", $nomi_contratti[$num2]);
                                    $nomi_contr_ut[$idutente_contr][$dati_nome_contratto[0]] = $dati_nome_contratto[1];
                                }
                                # fine for $num2
                            }
                            # fine for $num1
                            unset($prefissi_contr);
                            for ($num1 = 0; $num1 < $num_dirs_salva; $num1++) {
                                $dir_salva = risul_query($dirs_salva, 0, 'testo');
                                if ($dir_salva == "~") {
                                    $dir_salva = $dir_salva_home;
                                }
                                if (defined('C_CARTELLA_CREA_MODELLI') and C_CARTELLA_CREA_MODELLI != "") {
                                    $dir_salva = C_CARTELLA_CREA_MODELLI . "/" . str_replace("..", "", $dir_salva);
                                }
                                if (!@is_dir($dir_salva)) {
                                    $dir_salva = "";
                                }
                                $num_contr = risul_query($dirs_salva, 0, 'numero');
                                $tipo_contratto = esegui_query("select tipo from " . $PHPR_TAB_PRE . "contratti where numero = '{$num_contr}' and tipo {$LIKE} 'contr%' ");
                                $tipo_contratto = risul_query($tipo_contratto, 0, 'tipo');
                                $suff_file = "html";
                                if ($tipo_contratto == "contrrtf") {
                                    $suff_file = "rtf";
                                }
                                if ($tipo_contratto == "contrtxt") {
                                    $suff_file = "txt";
                                }
                                $filelock_contr = fopen($dir_salva . "/crea_contr.lock", "w+");
                                flock($filelock_contr, 2);
                                for ($num2 = 0; $num2 < $num_utenti; $num2++) {
                                    $idutente_contr = risul_query($utenti, $num1, 'idutenti');
                                    if (!$prefissi_contr[$dir_salva . "/" . $nomi_contr_ut[$idutente_contr][$num_contr]]) {
                                        $nome_contratto = $nomi_contr_ut[$idutente_contr][$num_contr];
                                        $prefissi_contr[$dir_salva . "/" . $nome_contratto] = 1;
                                        $contr_dir = opendir($dir_salva . "/");
                                        while ($contr_corr = readdir($contr_dir)) {
                                            if ($contr_corr != "." and $contr_corr != ".." and is_file($dir_salva . "/" . $contr_corr)) {
                                                if (substr($contr_corr, 0, strlen($nome_contratto)) == $nome_contratto) {
                                                    $resto_nome_contr = substr($contr_corr, strlen($nome_contratto));
                                                    if (substr($resto_nome_contr, 0, 6) == "_{$anno}" . "_") {
                                                        if (preg_replace("/_[0-9]{4,4}_[0-9]{5,5}(_[0-9]+(-[0-9]+)?)*\\.{$suff_file}/", "", $resto_nome_contr) == "") {
                                                            $num_pren_esist = substr($resto_nome_contr, 12);
                                                            $num_pren_esist = substr($num_pren_esist, 0, -1 * (strlen($suff_file) + 1));
                                                            if ($num_pren_esist) {
                                                                $agg_contr = 1;
                                                                $n_lista_pren = "";
                                                                $num_pren_esist = explode("_", $num_pren_esist);
                                                                for ($num3 = 0; $num3 < count($num_pren_esist); $num3++) {
                                                                    $num_pren_esist2 = explode("-", $num_pren_esist[$num3]);
                                                                    $fine_for = $num_pren_esist2[count($num_pren_esist2) - 1];
                                                                    for ($num4 = $num_pren_esist2[0]; $num4 <= $fine_for; $num4++) {
                                                                        if (!$nuovo_idprenota[$num4]) {
                                                                            $agg_contr = 0;
                                                                            break;
                                                                        }
                                                                        # fine if (!$nuovo_idprenota[$num4])
                                                                        if ($num4 == $num_pren_esist2[0]) {
                                                                            $n_lista_pren .= "_" . $nuovo_idprenota[$num4];
                                                                        } elseif ($num4 == $fine_for) {
                                                                            $n_lista_pren .= "-" . $nuovo_idprenota[$num4];
                                                                        }
                                                                    }
                                                                    # fine for $num4
                                                                }
                                                                # fine for $num3
                                                                if ($agg_contr) {
                                                                    $n_nome_contr = $nome_contratto . substr($resto_nome_contr, 0, 11) . $n_lista_pren . ".{$suff_file}";
                                                                    rename($dir_salva . "/" . $contr_corr, $dir_salva . "/" . $n_nome_contr);
                                                                }
                                                                # fine if ($agg_contr)
                                                            }
                                                            # fine if ($num_pren_esist)
                                                        }
                                                        # fine if (preg_replace("/_[0-9]{4,4}_[0-9]{5,5}\.$suff_file/","",$resto_nome_contr) == "")
                                                    }
                                                    # fine if (substr($resto_nome_contr,0,6) == "_$anno"."_")
                                                }
                                                # fine if (substr($contr_corr,0,strlen($nome_contratto)) == $nome_contratto)
                                            }
                                            # fine if ($contr_corr != "." and $contr_corr != ".." and...
                                        }
                                        # fine while ($fattura_corr = readdir($fatture_dir))
                                        closedir($contr_dir);
                                    }
                                    # fine if (!$prefissi_contr[$dir_salva."/".$nomi_contr_ut[$idutente_contr][$num_contr]])
                                }
                                # fine for $num2
                                flock($filelock_contr, 3);
                                fclose($filelock_contr);
                                unlink($dir_salva . "/crea_contr.lock");
                            }
                            # fine for $num1
                        }
                        # fine if ($num_dirs_salva)
                    }
                    # fine else if ($num_periodo_interferenza == 0)
                    $colonne = "idntariffe,nomecostoagg,tipo_ca,valore_ca,valore_perc_ca,arrotonda_ca,tasseperc_ca,associasett_ca,numsett_ca,moltiplica_ca,periodipermessi_ca,beniinv_ca,appincompatibili_ca,variazione_ca,mostra_ca,categoria_ca,letto_ca,numlimite_ca,regoleassegna_ca,utente_inserimento";
                    for ($num1 = 1; $num1 <= $num_tariffe_tab; $num1++) {
                        $nome_nuova_tariffa = "tariffa" . $num1;
                        $colonne .= ",{$nome_nuova_tariffa}";
                    }
                    # fine for $num1
                    esegui_query("insert into {$tablenometariffe} ({$colonne}) select {$colonne} from {$tablenometariffe_prec}");
                    $costi_agg_importati = esegui_query("select * from {$tablenometariffe} where idntariffe > 10 ");
                    $num_costi_agg_importati = numlin_query($costi_agg_importati);
                    for ($num1 = 0; $num1 < $num_costi_agg_importati; $num1++) {
                        $idntariffe = risul_query($costi_agg_importati, $num1, 'idntariffe');
                        $periodipermessi = risul_query($costi_agg_importati, $num1, 'periodipermessi_ca');
                        if ($periodipermessi) {
                            $pp_nuovi = substr($periodipermessi, 0, 1);
                            $periodipermessi = explode(",", substr($periodipermessi, 1));
                            for ($num2 = 0; $num2 < count($periodipermessi); $num2++) {
                                $id_data_fine_pp = explode("-", $periodipermessi[$num2]);
                                $id_data_inizio_pp = $id_data_fine_pp[0];
                                $id_data_fine_pp = $id_data_fine_pp[1];
                                if ($id_data_fine_pp >= $id_data_ini_periodi_prec and $id_data_inizio_pp <= $id_data_fine_periodi_prec) {
                                    if ($id_data_inizio_pp < $id_data_ini_periodi_prec) {
                                        $id_data_inizio_pp = $id_data_ini_periodi_prec;
                                    }
                                    if ($id_data_fine_pp > $id_data_fine_periodi_prec) {
                                        $id_data_fine_pp = $id_data_fine_periodi_prec;
                                    }
                                    $id_data_inizio_pp = $id_data_inizio_pp - $id_data_ini_periodi_prec + 1;
                                    $id_data_fine_pp = $id_data_fine_pp - $id_data_ini_periodi_prec + 1;
                                    $pp_nuovi .= $id_data_inizio_pp . "-" . $id_data_fine_pp . ",";
                                }
                                # fine if ($id_data_fine_pp >= $id_data_ini_periodi_prec and...
                            }
                            # fine for $num2
                            if (strlen($pp_nuovi) > 1) {
                                $pp_nuovi = substr($pp_nuovi, 0, -1);
                            }
                            esegui_query("update {$tablenometariffe} set periodipermessi_ca = '{$pp_nuovi}' where idntariffe = '{$idntariffe}'");
                        }
                        # fine if ($periodipermessi)
                    }
                    # fine for $num1
                    esegui_query("insert into {$tableregole} select {$col_tableregole} from {$tableregole_prec} where tariffa_per_app != ''");
                    esegui_query("insert into {$tableregole} select {$col_tableregole} from {$tableregole_prec} where tariffa_per_utente != ''");
                    esegui_query("insert into {$tableregole} select {$col_tableregole} from {$tableregole_prec} where tariffa_per_persone != ''");
                    esegui_query("insert into {$tableregole} select {$col_tableregole} from {$tableregole_prec} where tariffa_commissioni is not NULL and iddatainizio is NULL ");
                    $privilegi_prec = esegui_query("select * from {$tableprivilegi} where anno = '{$anno_prec}'");
                    for ($num1 = 0; $num1 < numlin_query($privilegi_prec); $num1++) {
                        $idutente_p = risul_query($privilegi_prec, $num1, 'idutente');
                        $regole1_consentite_p = risul_query($privilegi_prec, $num1, 'regole1_consentite');
                        $tariffe_consentite_p = risul_query($privilegi_prec, $num1, 'tariffe_consentite');
                        $costi_agg_consentiti_p = risul_query($privilegi_prec, $num1, 'costi_agg_consentiti');
                        $contratti_consentiti_p = risul_query($privilegi_prec, $num1, 'contratti_consentiti');
                        $cassa_pagamenti_p = aggslashdb(risul_query($privilegi_prec, $num1, 'cassa_pagamenti'));
                        $priv_ins_prenota_p = risul_query($privilegi_prec, $num1, 'priv_ins_prenota');
                        $priv_mod_prenota_p = risul_query($privilegi_prec, $num1, 'priv_mod_prenota');
                        $priv_mod_pers_p = risul_query($privilegi_prec, $num1, 'priv_mod_pers');
                        $priv_ins_clienti_p = risul_query($privilegi_prec, $num1, 'priv_ins_clienti');
                        $prefisso_clienti_p = risul_query($privilegi_prec, $num1, 'prefisso_clienti');
                        $priv_ins_costi_p = risul_query($privilegi_prec, $num1, 'priv_ins_costi');
                        $priv_vedi_tab_p = risul_query($privilegi_prec, $num1, 'priv_vedi_tab');
                        $priv_ins_tariffe_p = risul_query($privilegi_prec, $num1, 'priv_ins_tariffe');
                        $priv_ins_regole_p = risul_query($privilegi_prec, $num1, 'priv_ins_regole');
                        esegui_query("insert into {$tableprivilegi} (idutente,anno,regole1_consentite,tariffe_consentite,costi_agg_consentiti,contratti_consentiti,cassa_pagamenti,priv_ins_prenota,priv_mod_prenota,priv_mod_pers,priv_ins_clienti,prefisso_clienti,priv_ins_costi,priv_vedi_tab,priv_ins_tariffe,priv_ins_regole) values ('{$idutente_p}','{$anno}','{$regole1_consentite_p}','{$tariffe_consentite_p}','{$costi_agg_consentiti_p}','{$contratti_consentiti_p}','{$cassa_pagamenti_p}','{$priv_ins_prenota_p}','{$priv_mod_prenota_p}','{$priv_mod_pers_p}','{$priv_ins_clienti_p}','{$prefisso_clienti_p}','{$priv_ins_costi_p}','{$priv_vedi_tab_p}','{$priv_ins_tariffe_p}','{$priv_ins_regole_p}')");
                        $lingua_mex = $lingua[$idutente_p];
                        crea_menu_date(C_DATA_PATH . "/selectperiodi{$anno}.1.php", C_DATA_PATH . "/selectperiodi{$anno}.{$idutente_p}.php", $tipo_periodi);
                        if (@is_file(C_DATA_PATH . "/selperiodimenu" . ($anno - 1) . ".{$idutente_p}.php")) {
                            estendi_menu_date(C_DATA_PATH . "/selperiodimenu" . ($anno - 1) . ".{$idutente_p}.php", C_DATA_PATH . "/selperiodimenu{$anno}.{$idutente_p}.php", $tipo_periodi, date("Y-m-d", mktime(0, 0, 0, $mese_ini, 1, $anno)), $data_ini_agg, date("Y-m-d", mktime(0, 0, 0, $mese_fine + 1, 1, $anno)), $anno, $pag);
                        } else {
                            copy(C_DATA_PATH . "/selectperiodi{$anno}.{$idutente_p}.php", C_DATA_PATH . "/selperiodimenu{$anno}.{$idutente_p}.php");
                        }
                        $lingua_mex = $lingua[1];
                        $giorno_vedi_ini_sett = esegui_query("select valpersonalizza_num from {$tablepersonalizza} where idpersonalizza = 'giorno_vedi_ini_sett{$anno_prec}' and idutente = '{$idutente_p}'");
                        if (numlin_query($giorno_vedi_ini_sett) == 1 and $tipo_periodi == "g") {
                            esegui_query("insert into {$tablepersonalizza} (idpersonalizza,valpersonalizza_num,idutente) values ('giorno_vedi_ini_sett{$anno}','" . risul_query($giorno_vedi_ini_sett, 0, "valpersonalizza_num") . "','{$idutente_p}')");
                        }
                    }
                    # fine for $num1
                    $giorno_vedi_ini_sett = esegui_query("select valpersonalizza_num from {$tablepersonalizza} where idpersonalizza = 'giorno_vedi_ini_sett{$anno_prec}' and idutente = '1'");
                    if (numlin_query($giorno_vedi_ini_sett) == 1 and $tipo_periodi == "g") {
                        esegui_query("insert into {$tablepersonalizza} (idpersonalizza,valpersonalizza_num,idutente) values ('giorno_vedi_ini_sett{$anno}','" . risul_query($giorno_vedi_ini_sett, 0, "valpersonalizza_num") . "','1')");
                    }
                    $inserisci_in_ntariffe = "NO";
                }
                # fine if ($importa_anno_prec == "SI")
                if ($inserisci_in_ntariffe != "NO") {
                    # rigo 1: nomi tariffe; 2-3: caparra (% e arrotondo).
                    for ($numtariffe = 1; $numtariffe <= 6; $numtariffe = $numtariffe + 1) {
                        esegui_query("insert into {$tablenometariffe} (idntariffe) values ('{$numtariffe}')");
                    }
                    # fine for $numtariffe
                    esegui_query("update {$tablenometariffe} set nomecostoagg = '8' where idntariffe = '1'");
                    esegui_query("update {$tablenometariffe} set numlimite_ca = '11' where idntariffe = '1'");
                }
                # fine if ($inserisci_in_ntariffe != "NO")
                esegui_query("delete from {$tablerelclienti} where tipo = 'cc' {$lista_clienti_importati}");
                unlock_tabelle($tabelle_lock);
                if ($silenzio != "SI") {
                    echo "<br> " . mex("Anno ", $pag) . $anno . mex(" creato", $pag) . "! <br><br>";
                }
                if ($importa_anno_prec == "SI" and C_RESTRIZIONI_DEMO_ADMIN != "SI") {
                    if ($silenzio != "SI") {
                        $silenzio_mod = "SI";
                    } else {
                        $silenzio_mod = "totale";
                    }
                    global $anno_modello_presente, $num_periodi_date, $modello_esistente, $cambia_frasi, $lingua_modello, $percorso_cartella_modello, $nome_file;
                    $pag_orig = $pag;
                    $pag = "crea_modelli.php";
                    include "./includes/templates/funzioni_modelli.php";
                    $modello_esistente = "SI";
                    $cambia_frasi = "NO";
                    $anno_modello = $anno;
                    include "./includes/templates/frasi_mod_disp.php";
                    include "./includes/templates/funzioni_mod_disp.php";
                    for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                        $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                        if (@is_file("{$percorso_cartella_modello}/mdl_disponibilita.php")) {
                            $lingua_modello = "ita";
                            $nome_file = mex2("mdl_disponibilita", $pag, $lingua_modello) . ".php";
                            $num_periodi_date = "";
                            recupera_var_modello_disponibilita($nome_file, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                            if ($anno_modello_presente == $anno_prec) {
                                aggiorna_var_anno_modello_disponibilita($id_data_ini_periodi_prec, $tableperiodi_prec, $tableperiodi, $tabletransazioniweb, $tablemessaggi, $tipo_periodi);
                                crea_modello_disponibilita($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                            }
                            # fine if ($anno_modello_presente == $anno_prec)
                        }
                        # fine if (@is_file("$percorso_cartella_modello/modello_disponibilita.php"))
                    }
                    # fine for $num_cart
                    $lang_dir = opendir("./includes/lang/");
                    include C_DATA_PATH . "/lingua.php";
                    while ($ini_lingua = readdir($lang_dir)) {
                        if ($ini_lingua != "." && $ini_lingua != "..") {
                            $nome_file = mex2("mdl_disponibilita", $pag, $ini_lingua) . ".php";
                            for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                                $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                                if (@is_file("{$percorso_cartella_modello}/{$nome_file}")) {
                                    $lingua_modello = $ini_lingua;
                                    $num_periodi_date = "";
                                    recupera_var_modello_disponibilita($nome_file, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                                    if ($anno_modello_presente == $anno_prec) {
                                        aggiorna_var_anno_modello_disponibilita($id_data_ini_periodi_prec, $tableperiodi_prec, $tableperiodi, $tabletransazioniweb, $tablemessaggi, $tipo_periodi);
                                        crea_modello_disponibilita($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                                    }
                                    # fine if ($anno_modello_presente == $anno_prec)
                                }
                                # fine if (@is_file("$percorso_cartella_modello/$nome_file"))
                            }
                            # fine for $num_cart
                        }
                        # fine if ($file != "." && $file != "..")
                    }
                    # fine while ($file = readdir($lang_dig))
                    closedir($lang_dir);
                    $templates_dir = opendir("./includes/templates/");
                    while ($modello_ext = readdir($templates_dir)) {
                        if ($modello_ext != "." and $modello_ext != ".." and @is_dir("./includes/templates/{$modello_ext}")) {
                            include "./includes/templates/{$modello_ext}/name.php";
                            include "./includes/templates/{$modello_ext}/phrases.php";
                            include "./includes/templates/{$modello_ext}/functions.php";
                            $funz_recupera_var_modello = "recupera_var_modello_" . $modello_ext;
                            $funz_crea_modello = "crea_modello_" . $modello_ext;
                            $funz_aggiorna_var_anno_modello = "aggiorna_var_anno_modello_" . $modello_ext;
                            if ($template_file_name["ita"]) {
                                $nome_file = $template_file_name["ita"];
                            } else {
                                $nome_file = "ita_" . $template_file_name["en"];
                            }
                            for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                                $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                                if (@is_file("{$percorso_cartella_modello}/{$nome_file}")) {
                                    $lingua_modello = "ita";
                                    $num_periodi_date = "";
                                    $funz_recupera_var_modello($nome_file, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                                    if ($anno_modello_presente == $anno_prec) {
                                        $funz_aggiorna_var_anno_modello($id_data_ini_periodi_prec, $tableperiodi_prec, $tableperiodi, $tabletransazioniweb, $tablemessaggi, $tipo_periodi);
                                        $funz_crea_modello($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                                    }
                                    # fine if ($anno_modello_presente == $anno_prec)
                                }
                                # fine if (@is_file("$percorso_cartella_modello/$nome_file"))
                            }
                            # fine for $num_cart
                            $lang_dir = opendir("./includes/lang/");
                            while ($ini_lingua = readdir($lang_dir)) {
                                if ($ini_lingua != "." && $ini_lingua != "..") {
                                    if ($template_file_name[$ini_lingua]) {
                                        $nome_file = $template_file_name[$ini_lingua];
                                    } else {
                                        $nome_file = $ini_lingua . "_" . $template_file_name["en"];
                                    }
                                    for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                                        $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                                        if (@is_file("{$percorso_cartella_modello}/{$nome_file}")) {
                                            $lingua_modello = $ini_lingua;
                                            $num_periodi_date = "";
                                            $funz_recupera_var_modello($nome_file, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                                            if ($anno_modello_presente == $anno_prec) {
                                                $funz_aggiorna_var_anno_modello($id_data_ini_periodi_prec, $tableperiodi_prec, $tableperiodi, $tabletransazioniweb, $tablemessaggi, $tipo_periodi);
                                                $funz_crea_modello($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                                            }
                                            # fine if ($anno_modello_presente == $anno_prec)
                                        }
                                        # fine if (@is_file("$percorso_cartella_modello/$nome_file"))
                                    }
                                    # fine for $num_cart
                                }
                                # fine if ($file != "." && $file != "..")
                            }
                            # fine while ($file = readdir($lang_dir))
                            closedir($lang_dir);
                        }
                        # fine if ($modello_ext != "." and $modello_ext != ".." and...
                    }
                    # fine while ($file = readdir($lang_dig))
                    closedir($templates_dir);
                    $pag = $pag_orig;
                    if ($silenzio != "SI") {
                        echo "<br>";
                    }
                }
                # fine if ($importa_anno_prec == "SI" and C_RESTRIZIONI_DEMO_ADMIN != "SI")
            } else {
                if ($silenzio != "SI") {
                    echo mex("Non ho i permessi per creare nuove tabelle nel database", $pag) . ".<br>";
                }
            }
        } else {
            if ($silenzio != "SI") {
                echo mex("Anno già creato", $pag) . ".<br>";
            }
        }
        flock($filelock, 3);
        fclose($filelock);
        unlink(C_DATA_PATH . "/anni.lock");
    } else {
        if ($silenzio != "SI") {
            echo mex("Non ho i permessi di scrittura sulla cartella data", $pag) . ".<br>";
        }
    }
    $lingua_mex = $lingua_mex_orig;
}
Пример #2
0
$mostra_form_modifica = "NO";
if (get_magic_quotes_gpc()) $n_urlfoto = stripslashes($n_urlfoto);
$lowurl = strtolower($n_urlfoto);
if (substr($lowurl,-4) != ".jpg" and substr($lowurl,-5) != ".jpeg" and substr($lowurl,-4) != ".gif" and substr($lowurl,-4) != ".png") $errore = "SI";
if (str_replace("<","",$n_urlfoto) != $n_urlfoto or str_replace(">","",$n_urlfoto) != $n_urlfoto or str_replace("\"","",$n_urlfoto) != $n_urlfoto) $errore = "SI";
$app_esist = esegui_query("select idappartamenti from $tableappartamenti where idappartamenti = '$idappartamenti' ");
if (!numlin_query($app_esist)) $errore = "SI";
if ($errore != "SI") {
$tabelle_lock = array($tabledescrizioni);
$tabelle_lock = lock_tabelle($tabelle_lock);
$foto_esistenti = esegui_query("select * from $tabledescrizioni where nome = '$idappartamenti' and tipo = 'appfoto' order by numero desc ");
if (numlin_query($foto_esistenti)) $numfoto = (risul_query($foto_esistenti,0,'numero') + 1);
else $numfoto = 1;
esegui_query("insert into $tabledescrizioni (nome,tipo,numero,testo) values ('$idappartamenti','appfoto','$numfoto','".aggslashdb($n_urlfoto)."') ");
echo "<br>".ucfirst(mex("la nuova foto è stata aggiunta",$pag)).".<br>";
unlock_tabelle($tabelle_lock);
} # fine if ($errore != "SI")
else echo "".ucfirst(mex("l'url della foto è sbagliata",$pag)).".<br>";
$mostra_torna_indietro = "SI";
} # fine if ($aggurlfoto)



if ($mostra_torna_indietro == "SI") {
echo "<div style=\"text-align: center;\">
<form accept-charset=\"utf-8\" method=\"post\" action=\"$pag\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"idappartamenti\" value=\"$idappartamenti\">";
echo "<input class=\"sbutton\" type=\"submit\" value=\"".mex("Torna indietro",$pag)."\">
<br></div></form><br></div>";
function aggiorna_var_anno_modello_disponibilita ($id_data_ini_periodi_prec,$tableperiodi_prec,$tableperiodi,$tabletransazioniweb,$tablemessaggi,$tipo_periodi) {

global $num_periodi_date,$LIKE,$anno,$estendi_ultima_data;
$n_num_periodi_date = 0;
if ($id_data_ini_periodi_prec) {
for ($num1 = 0 ; $num1 < $num_periodi_date ; $num1++) {
global ${"inizioperiodo".$num1},${"fineperiodo".$num1},${"intervalloperiodo".$num1};
$inizioperiodo = aggslashdb(${"inizioperiodo".$num1});
$fineperiodo = aggslashdb(${"fineperiodo".$num1});
$idinizioperiodo = esegui_query("select idperiodi from $tableperiodi_prec where datainizio = '$inizioperiodo' ");
$num_idinizioperiodo = numlin_query($idinizioperiodo);
if ($num_idinizioperiodo == 0) { $idinizioperiodo = 10000; }
else { $idinizioperiodo = risul_query($idinizioperiodo,0,'idperiodi'); }
$inizioperiodo = $idinizioperiodo;
$idfineperiodo = esegui_query("select idperiodi from $tableperiodi_prec where datafine = '$fineperiodo' ");
$num_idfineperiodo = numlin_query($idfineperiodo);
if ($num_idfineperiodo == 0) { $idfineperiodo = -1; }
else { $idfineperiodo = risul_query($idfineperiodo,0,'idperiodi'); }
$fineperiodo = $idfineperiodo;
$intervalloperiodo = aggslashdb(${"intervalloperiodo".$num1});
if ($estendi_ultima_data == "SI" and $num1 == ($num_periodi_date - 1)) $fineperiodo = $id_data_ini_periodi_prec + $intervalloperiodo;
if (($fineperiodo - $intervalloperiodo) >= $id_data_ini_periodi_prec) {
if ($inizioperiodo < $id_data_ini_periodi_prec) {
for ($num2 = $inizioperiodo ; $num2 <= $fineperiodo ; $num2 = $num2 + $intervalloperiodo) {
if ($num2 >= $id_data_ini_periodi_prec) {
$inizioperiodo = $num2;
break;
} # fine if ($num2 >= $id_data_ini_periodi_prec)
} # fine for $num2
} # fine if ($inizioperiodo < $id_data_ini_periodi_prec)
$n_inizioperiodo[$n_num_periodi_date] = $inizioperiodo - $id_data_ini_periodi_prec + 1;
$n_fineperiodo[$n_num_periodi_date] = $fineperiodo - $id_data_ini_periodi_prec + 1;
$n_intervalloperiodo[$n_num_periodi_date] = $intervalloperiodo;
$n_num_periodi_date++;
} # fine if (($fineperiodo - $intervalloperiodo) >= $id_data_ini_periodi_prec or...
} # fine for $num1
} # fine if ($id_data_ini_periodi_prec)

if ($estendi_ultima_data == "SI" and !$id_data_ini_periodi_prec) {
$n_num_periodi_date = 1;
global $inizioperiodo0,$fineperiodo0,$intervalloperiodo0;
if (($num_periodi_date - 1) != 0) global ${"fineperiodo".($num_periodi_date - 1)},${"intervalloperiodo".($num_periodi_date - 1)};
$n_intervalloperiodo[0] = ${"intervalloperiodo".($num_periodi_date - 1)};
$inizioperiodo = ${"fineperiodo".($num_periodi_date - 1)};
if ($tipo_periodi == "g") $aggiungi_giorni = 1;
else $aggiungi_giorni = 7;
$anno_inizio = substr($inizioperiodo,0,4);
$mese_inizio = substr($inizioperiodo,5,2);
$giorno_inizio = substr($inizioperiodo,8,2);
for ($num1 = 0 ; $num1 < 2000 ; $num1++) {
$datainizio = date("Y-m-d",mktime(0,0,0,$mese_inizio,$giorno_inizio,$anno_inizio));
$datainizio = esegui_query("select * from $tableperiodi where datainizio = '$datainizio'");
if (numlin_query($datainizio) == 1) {
$n_inizioperiodo[0] = risul_query($datainizio,0,'idperiodi');
break;
} # fine if (numlin_query($datainizio) == 1)
$giorno_inizio = $giorno_inizio + ($n_intervalloperiodo[0] * $aggiungi_giorni);
} # fine for $num1
$n_fineperiodo[0] = $n_inizioperiodo[0];
} # fine if ($estendi_ultima_data == "SI" and !$id_data_ini_periodi_prec)

for ($num1 = 0 ; $num1 < $n_num_periodi_date ; $num1++) {
$inizioperiodo = $n_inizioperiodo[$num1];
$fineperiodo = $n_fineperiodo[$num1];
$inizioperiodo = esegui_query("select datainizio from $tableperiodi where idperiodi = '$inizioperiodo' ");
$inizioperiodo = @risul_query($inizioperiodo,0,'datainizio');
$fineperiodo = esegui_query("select datafine from $tableperiodi where idperiodi = '$fineperiodo' ");
$fineperiodo = @risul_query($fineperiodo,0,'datafine');
if (!$inizioperiodo or !$fineperiodo) $n_num_periodi_date = 0;
${"inizioperiodo".$num1} = $inizioperiodo;
${"fineperiodo".$num1} = $fineperiodo;
${"intervalloperiodo".$num1} = $n_intervalloperiodo[$num1];
} # fine for $num1
$num_periodi_date = $n_num_periodi_date;
if (!$num_periodi_date) $inizioperiodo0 = "";

if ($num_periodi_date != 0) {
if ($id_data_ini_periodi_prec) {
$tabelle_lock = array("$tabletransazioniweb","$tablemessaggi");
$altre_tab_lock = array("$tableperiodi_prec","$tableperiodi");
$tabelle_lock = lock_tabelle($tabelle_lock,$altre_tab_lock);
$data_ini_periodi_prec = esegui_query("select datainizio from $tableperiodi_prec where idperiodi = '$id_data_ini_periodi_prec' ");
$data_ini_periodi_prec = risul_query($data_ini_periodi_prec,0,'datainizio');
$da_aggiornare = esegui_query("select idmessaggi,dati_messaggio3,dati_messaggio4,dati_messaggio9,dati_messaggio14 from $tablemessaggi where tipo_messaggio = 'rprenota' and dati_messaggio1 = 'da_inserire' and dati_messaggio18 = '".($anno - 1)."' ");
$num_da_aggiornare = numlin_query($da_aggiornare);
for ($num1 = 0 ; $num1 < $num_da_aggiornare ; $num1++) {
$num_tipologie = risul_query($da_aggiornare,$num1,'dati_messaggio3');
$id_messaggio = risul_query($da_aggiornare,$num1,'idmessaggi');
$date_inizio = explode(",",risul_query($da_aggiornare,$num1,'dati_messaggio4'));
$aggiornare = "SI";
for ($n_t = 1 ; $n_t <= $num_tipologie ; $n_t++) {
if ($date_inizio[($n_t - 1)] < $data_ini_periodi_prec) $aggiornare = "NO";
} # fine for $n_t
if ($aggiornare == "SI") {
$numcostiagg_dt = explode(",",risul_query($da_aggiornare,$num1,'dati_messaggio9'));
$id_periodi_costo_dt = explode(";",risul_query($da_aggiornare,$num1,'dati_messaggio14'));
$n_id_periodi_costo = "";
for ($n_t = 1 ; $n_t <= $num_tipologie ; $n_t++) {
if ($n_t != 1) $n_id_periodi_costo .= ";";
$numcostiagg = $numcostiagg_dt[($n_t - 1)];
$id_periodi_costo_dt2 = explode(":",$id_periodi_costo_dt[($n_t - 1)]);
for ($numca = 1 ; $numca <= $numcostiagg ; $numca++) {
if ($numca != 1) $n_id_periodi_costo .= ":";
$id_periodi_costo = explode(",",$id_periodi_costo_dt2[($numca - 1)]);
$num_id_periodi_costo = count($id_periodi_costo);
for ($numpc = 0 ; $numpc < $num_id_periodi_costo ; $numpc++) {
if ($numpc != 0) $n_id_periodi_costo .= ",";
if ($id_periodi_costo[$numpc]) $n_id_periodi_costo .= $id_periodi_costo[$numpc] - $id_data_ini_periodi_prec + 1;
} # fine for $numpc
} # fine for $numca
} # fine for $n_t
esegui_query("update $tablemessaggi set dati_messaggio14 = '$n_id_periodi_costo', dati_messaggio18 = '$anno' where idmessaggi = '".aggslashdb($id_messaggio)."' ");
} # fine if ($aggiornare == "SI")
} # fine for $num1
unlock_tabelle($tabelle_lock);
} # fine if ($id_data_ini_periodi_prec)
} # fine if ($num_periodi_date != 0)

} # fine funtcion aggiorna_var_anno_modello_disponibilita
Пример #4
0
function ripristina_backup_contr($linee_backup, $silenzio, $pag, $PHPR_TAB_PRE, $modalita, $contr_agg = "")
{
    global $LIKE, $MEDIUMTEXT;
    include "./includes/variabili_contratto.php";
    unset($var_predef);
    $versione_corrente = esegui_query("select * from " . $PHPR_TAB_PRE . "versioni where idversioni = 1");
    $versione_corrente = risul_query($versione_corrente, 0, 'num_versione');
    for ($num1 = 0; $num1 < count($linee_backup); $num1++) {
        $linea = togli_acapo($linee_backup[$num1]);
        if (substr($linea, 0, 10) == "<versione>") {
            $versione_file = substr($linea, 10);
            $versione_file = substr($versione_file, 0, -11);
            break;
        }
        # fine if (substr($linea,0,10) == "<versione>")
    }
    # fine for $num1
    if ($versione_file and ($versione_file <= $versione_corrente and $versione_file >= "2.00")) {
        if ($modalita != "aggiungi") {
            $contr_agg = "";
        }
        $contr_agg_var = $contr_agg;
        $contr_agg_all = "";
        $contr_agg_trovato = 0;
        # Prima lettura di controllo del file contratti
        $file_coerente = "SI";
        $num_err = "";
        $leggendo_righe = "NO";
        unset($tab_presente);
        $info_contr['max_contr'] = 0;
        $num_linee_backup = count($linee_backup);
        for ($num1 = 0; $num1 < $num_linee_backup; $num1++) {
            $linea = togli_acapo($linee_backup[$num1]);
            if ($linea == "</backup>" and $leggendo_righe != "SI") {
                $leggendo_backup = "NO";
            }
            if ($leggendo_backup == "SI") {
                if ($linea == "</database>" and $leggendo_righe != "SI") {
                    $leggendo_database = "NO";
                }
                if ($leggendo_database == "SI") {
                    if ($linea == "</tabella>" and $leggendo_righe != "SI") {
                        $leggendo_tabella = "NO";
                    }
                    if ($leggendo_tabella == "SI") {
                        if (substr($linea, 0, 13) == "<nometabella>") {
                            $nome_tabella = substr($linea, 13);
                            $nome_tabella = substr($nome_tabella, 0, -14);
                        }
                        # fine if (substr($linea,0,13) == "<nometabella>")
                        if ($linea == "</colonnetabella>") {
                            $leggendo_colonne == "NO";
                            if ($nome_tabella == "contratti") {
                                $tab_presente["contratti"] = "SI";
                            }
                            if ($nome_tabella != "contratti") {
                                $file_coerente = "NO";
                                $num_err .= "#1";
                            }
                        }
                        # fine if ($linea == "</colonnetabella>")
                        if ($leggendo_colonne == "SI") {
                            if (substr($linea, 0, 13) == "<nomecolonna>") {
                                $num_colonne++;
                                $nome_colonna[$num_colonne] = substr($linea, 13);
                                $nome_colonna[$num_colonne] = substr($nome_colonna[$num_colonne], 0, -14);
                                $num_colonna[$nome_colonna[$num_colonne]] = $num_colonne - 1;
                            }
                            # fine if (substr($linea,0,13) == "<nomecolonna>")
                            if (substr($linea, 0, 13) == "<tipocolonna>") {
                                $tipo_colonna[$num_colonne] = substr($linea, 13);
                                $tipo_colonna[$num_colonne] = substr($tipo_colonna[$num_colonne], 0, -14);
                            }
                            # fine if (substr($linea,0,13) == "<tipocolonna>")
                        }
                        # fine if ($leggendo_colonne == "SI")
                        if ($linea == "<colonnetabella>" and $leggendo_righe != "SI") {
                            $leggendo_colonne = "SI";
                            $num_colonne = 0;
                        }
                        # fine if ($linea == "<colonnetabella>" and $leggendo_righe != "SI")
                        if ($linea == "</righetabella>") {
                            $leggendo_righe = "NO";
                        }
                        if ($leggendo_righe == "SI") {
                            if (substr($linea, 0, 6) == "<riga>") {
                                $riga = substr($linea, 11);
                            } else {
                                $riga .= "\n" . $linea;
                            }
                            # fine else if (substr($linea,0,6) == "<riga>")
                            if (substr($linea, -7) == "</riga>") {
                                $riga = substr($riga, 0, -13);
                                $riga = explode("</cmp><cmp>", $riga);
                                if ($nome_tabella == "contratti") {
                                    $tipo_contr = $riga[$num_colonna['tipo']];
                                    if (substr($tipo_contr, 0, 3) == "var") {
                                        $nome = $riga[$num_colonna['testo']];
                                        if ($var_riserv[$nome]) {
                                            $file_coerente = "NO";
                                            $num_err .= "#2";
                                        }
                                    }
                                    # fine if (substr($tipo_contr,0,3) == "var")
                                    if (substr($tipo_contr, 0, 4) == "vett") {
                                        $nome = explode(";", $riga[$num_colonna['testo']]);
                                        if ($var_riserv[$nome[0]]) {
                                            $file_coerente = "NO";
                                            $num_err .= "#3";
                                        }
                                        if ($var_riserv[$nome[1]]) {
                                            $file_coerente = "NO";
                                            $num_err .= "#4";
                                        }
                                    }
                                    # fine if (substr($tipo_contr,0,4) == "vett")
                                    if ($modalita == "info") {
                                        if ($riga[$num_colonna['tipo']] == "nomi_con" and $riga[$num_colonna['numero']] == "1") {
                                            $info_contr['nomi_con'] = $riga[$num_colonna['testo']];
                                        }
                                        if (substr($riga[$num_colonna['tipo']], 0, 5) == "contr" and $riga[$num_colonna['numero']] > $info_contr['max_contr']) {
                                            $info_contr['max_contr'] = $riga[$num_colonna['numero']];
                                        }
                                    }
                                    # fine if ($modalita == "info")
                                    if ($contr_agg and $riga[$num_colonna['numero']] == $contr_agg) {
                                        if (substr($riga[$num_colonna['tipo']], 0, 5) == "contr") {
                                            $contr_agg_trovato = 1;
                                        }
                                        if ($riga[$num_colonna['tipo']] == "impor_vc") {
                                            $contr_agg_var = $riga[$num_colonna['testo']];
                                        }
                                        if ($riga[$num_colonna['tipo']] == "allegato") {
                                            $contr_agg_all .= "," . $riga[$num_colonna['testo']] . ",";
                                        }
                                    }
                                    # fine if ($contr_agg and $riga[$num_colonna['numero']] == $contr_agg)
                                }
                                # fine if ($nome_tabella == "contratti")
                                $lista_valori = "";
                                $lista_colonne = "";
                                unset($valore_colonna);
                                for ($num2 = 0; $num2 < count($riga); $num2++) {
                                    $valore = aggslashdb($riga[$num2]);
                                    if ($valore != "") {
                                        $valore = str_replace("</righetabella@%&@>", "</righetabella>", $valore);
                                        $valore = str_replace("</riga@%&@>", "</riga>", $valore);
                                        $valore = str_replace("<riga@%&@>", "<riga>", $valore);
                                        $valore = str_replace("</cmp@%&@>", "</cmp>", $valore);
                                        $valore = str_replace("@%&@@%&@", "@%&@", $valore);
                                        $valore_colonna[$nome_colonna[$num2 + 1]] = $valore;
                                    }
                                    # fine if ($valore != "")
                                }
                                # fine for $num2
                                if (defined("C_MASSIMO_NUM_CONTRATTI") and C_MASSIMO_NUM_CONTRATTI != 0 and $nome_tabella == "contratti" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_CONTRATTI * 200 + 100) {
                                    $file_coerente = "NO";
                                    $num_err .= "#5";
                                }
                                $linee_inserite_in_tabella[$nome_tabella]++;
                            }
                            # fine if (substr($linea,-7) == "</riga>")
                        }
                        # fine if ($leggendo_righe == "SI")
                        if ($linea == "<righetabella>") {
                            $leggendo_righe = "SI";
                            $linee_inserite_in_tabella[$nome_tabella] = 0;
                        }
                        # fine if ($linea == "<righetabella>")
                    }
                    # fine if ($leggendo_tabella == "SI")
                    if ($linea == "<tabella>") {
                        $leggendo_tabella = "SI";
                    }
                }
                # fine if ($leggendo_database == "SI")
                if ($linea == "<database>") {
                    $leggendo_database = "SI";
                }
            }
            # fine if ($leggendo_backup == "SI")
            if ($linea == "<backup>") {
                $leggendo_backup = "SI";
            }
        }
        # fine for $num1
        if ($tab_presente["contratti"] != "SI") {
            $file_coerente = "NO";
            $num_err .= "#6";
        }
        if ($contr_agg and !$contr_agg_trovato) {
            $file_coerente = "NO";
            $num_err .= "#7";
        }
        if ($file_coerente == "NO") {
            if ($silenzio != "SI") {
                echo mex("Il formato del file è errato", $pag) . ".<br>";
            }
            # debug backup DOCUMENTI
            #if ($num_err) echo $num_err.".<br>";
        } else {
            unset($var_riserv);
            if ($modalita == "info") {
                return $info_contr;
            }
            if ($modalita == "rimpiazza") {
                esegui_query("delete from " . $PHPR_TAB_PRE . "contratti");
            }
            $max_contr = esegui_query("select max(numero) from " . $PHPR_TAB_PRE . "contratti where tipo {$LIKE} 'contr%'");
            if (numlin_query($max_contr) != 0) {
                $max_contr = risul_query($max_contr, 0, 0);
            } else {
                $max_contr = 0;
            }
            if (!$max_contr) {
                $max_contr = 0;
            }
            $max_var = esegui_query("select max(numero) from " . $PHPR_TAB_PRE . "contratti where tipo {$LIKE} 'var%'");
            if (numlin_query($max_var) != 0) {
                $max_var = risul_query($max_var, 0, 0);
            } else {
                $max_var = 0;
            }
            if (!$max_var) {
                $max_var = 0;
            }
            $max_arr = esegui_query("select max(numero) from " . $PHPR_TAB_PRE . "contratti where tipo {$LIKE} 'vett%'");
            if (numlin_query($max_arr) != 0) {
                $max_arr = risul_query($max_arr, 0, 0);
            } else {
                $max_arr = 0;
            }
            if (!$max_arr) {
                $max_arr = 0;
            }
            $max_cond = esegui_query("select max(numero) from " . $PHPR_TAB_PRE . "contratti where tipo = 'cond'");
            if (numlin_query($max_cond) != 0) {
                $max_cond = risul_query($max_cond, 0, 0);
            } else {
                $max_cond = 0;
            }
            if (!$max_cond) {
                $max_cond = 0;
            }
            $max_all = esegui_query("select max(numero) from " . $PHPR_TAB_PRE . "contratti where tipo = 'file_all'");
            if (numlin_query($max_all) != 0) {
                $max_all = risul_query($max_all, 0, 0);
            } else {
                $max_all = 0;
            }
            if (!$max_all) {
                $max_all = 0;
            }
            unset($nuovo_num_contr);
            unset($nuovo_num_var);
            $nuovo_num_var['-1'] = '-1';
            $nuovo_num_var['-2'] = '-2';
            unset($nuovo_nome_var);
            unset($nuovo_num_all);
            $leggendo_backup = "NO";
            $leggendo_database = "NO";
            $leggendo_tabella = "NO";
            $leggendo_colonne = "NO";
            $leggendo_righe = "NO";
            $leggendo_file = "NO";
            $leggendo_contenuto = "NO";
            $nome_file = "";
            unset($linee_inserite_in_tabella);
            if (defined("C_CARTELLA_CREA_MODELLI") and C_CARTELLA_CREA_MODELLI != "") {
                if (C_CARTELLA_DOC != "" and @is_dir(C_CARTELLA_CREA_MODELLI . "/" . C_CARTELLA_DOC)) {
                    $dir_salva_home = C_CARTELLA_CREA_MODELLI . "/" . C_CARTELLA_DOC;
                } else {
                    $dir_salva_home = C_CARTELLA_CREA_MODELLI;
                }
            } else {
                $dir_salva_home = C_DATA_PATH;
            }
            for ($num1 = 0; $num1 < $num_linee_backup; $num1++) {
                $linea = togli_acapo($linee_backup[$num1]);
                if ($linea == "</backup>" and $leggendo_righe != "SI") {
                    $leggendo_backup = "NO";
                }
                if ($leggendo_backup == "SI") {
                    if ($linea == "</database>" and $leggendo_righe != "SI") {
                        $leggendo_database = "NO";
                    }
                    # restore del database
                    if ($leggendo_database == "SI") {
                        if ($linea == "</tabella>" and $leggendo_righe != "SI") {
                            $leggendo_tabella = "NO";
                        }
                        if ($leggendo_tabella == "SI") {
                            if (substr($linea, 0, 13) == "<nometabella>") {
                                $nome_tabella = substr($linea, 13);
                                $nome_tabella = substr($nome_tabella, 0, -14);
                            }
                            # fine if (substr($linea,0,13) == "<nometabella>")
                            if ($linea == "</colonnetabella>" and $leggendo_righe != "SI") {
                                $leggendo_colonne == "NO";
                                #if ($nome_tabella == "contratti") esegui_query2("create table ".$N_PHPR_TAB_PRE."contratti (numero integer, tipo varchar(8), testo $MEDIUMTEXT )",$N_PHPR_DB_TYPE);
                            }
                            # fine if ($linea == "</colonnetabella>")
                            if ($leggendo_colonne == "SI") {
                                if (substr($linea, 0, 13) == "<nomecolonna>") {
                                    $num_colonne++;
                                    $nome_colonna[$num_colonne] = substr($linea, 13);
                                    $nome_colonna[$num_colonne] = substr($nome_colonna[$num_colonne], 0, -14);
                                    $num_colonna[$nome_colonna[$num_colonne]] = $num_colonne - 1;
                                }
                                # fine if (substr($linea,0,13) == "<nomecolonna>")
                                if (substr($linea, 0, 13) == "<tipocolonna>") {
                                    $tipo_colonna[$num_colonne] = substr($linea, 13);
                                    $tipo_colonna[$num_colonne] = substr($tipo_colonna[$num_colonne], 0, -14);
                                }
                                # fine if (substr($linea,0,13) == "<tipocolonna>")
                            }
                            # fine if ($leggendo_colonne == "SI")
                            if ($linea == "<colonnetabella>" and $leggendo_righe != "SI") {
                                $leggendo_colonne = "SI";
                                $num_colonne = 0;
                                $lista_tariffe = "";
                            }
                            # fine if ($linea == "<colonnetabella>" and $leggendo_righe != "SI")
                            if ($linea == "</righetabella>") {
                                $leggendo_righe = "NO";
                            }
                            if ($leggendo_righe == "SI") {
                                if (substr($linea, 0, 6) == "<riga>") {
                                    $riga = substr($linea, 11);
                                } else {
                                    $riga .= "\n" . $linea;
                                }
                                # fine else if (substr($linea,0,6) == "<riga>")
                                if (substr($linea, -7) == "</riga>") {
                                    $riga = substr($riga, 0, -13);
                                    $riga = explode("</cmp><cmp>", $riga);
                                    $lista_valori = "";
                                    $lista_colonne = "";
                                    unset($valore_colonna);
                                    $inserire_riga = "SI";
                                    $tipo_contr = $riga[$num_colonna['tipo']];
                                    $vecchio_num = $riga[$num_colonna['numero']];
                                    if (substr($tipo_contr, 0, 5) == "contr" or $tipo_contr == "opzeml" or $tipo_contr == "oggetto" or $tipo_contr == "allegato" or $tipo_contr == "headhtm" or $tipo_contr == "foothtm" or $tipo_contr == "est_txt" or $tipo_contr == "dir" or substr($tipo_contr, 0, 4) == "mln_" or $tipo_contr == "impor_vc" or $tipo_contr == "num_prog" or $tipo_contr == "nomefile" or $tipo_contr == "autosalv" or $tipo_contr == "compress" or $tipo_contr == "incr_np") {
                                        if (!$contr_agg or $vecchio_num == $contr_agg) {
                                            if (!$nuovo_num_contr[$vecchio_num]) {
                                                if ($contr_agg) {
                                                    $nuovo_num_contr[$vecchio_num] = $max_contr + 1;
                                                } else {
                                                    $nuovo_num_contr[$vecchio_num] = $max_contr + $vecchio_num;
                                                }
                                            }
                                            # fine if (!$nuovo_num_contr[$vecchio_num])
                                            $riga[$num_colonna['numero']] = $nuovo_num_contr[$vecchio_num];
                                            if (substr($tipo_contr, 0, 5) == "contr" or substr($tipo_contr, 0, 4) == "mln_") {
                                                if (@is_array($nuovo_nome_var)) {
                                                    reset($nuovo_nome_var);
                                                    while (list($v_nome, $n_nome) = each($nuovo_nome_var)) {
                                                        $riga[$num_colonna['testo']] = str_replace("[{$v_nome}]", "[{$n_nome}]", $riga[$num_colonna['testo']]);
                                                        $riga[$num_colonna['testo']] = str_replace("[c {$v_nome}=", "[c {$n_nome}=", $riga[$num_colonna['testo']]);
                                                        $riga[$num_colonna['testo']] = str_replace("[c {$v_nome}!=", "[c {$n_nome}!=", $riga[$num_colonna['testo']]);
                                                        if (substr($v_nome, -1) == ")") {
                                                            $v_nome_arr = explode("(", $v_nome);
                                                            $v_nome_arr = $v_nome_arr[0];
                                                            $n_nome_arr = explode("(", $n_nome);
                                                            $n_nome_arr = $n_nome_arr[0];
                                                            $riga[$num_colonna['testo']] = str_replace("[r4 array=\"{$v_nome_arr}\"]", "[r4 array=\"{$n_nome_arr}\"]", $riga[$num_colonna['testo']]);
                                                            $riga[$num_colonna['testo']] = str_replace("[{$v_nome_arr}('", "[{$n_nome_arr}('", $riga[$num_colonna['testo']]);
                                                            $riga[$num_colonna['testo']] = str_replace("[c {$v_nome_arr}('", "[c {$n_nome_arr}('", $riga[$num_colonna['testo']]);
                                                        }
                                                        # fine if (substr($v_nome,-1) == ")")
                                                    }
                                                    # fine while (list($v_nome,$n_nome) = each($nuovo_nome_var))
                                                }
                                                # fine if (@is_array($nuovo_nome_var))
                                            }
                                            # fine if (substr($tipo_contr,0,5) == "contr" or substr($tipo_contr,0,4) == "mln_")
                                            if ($tipo_contr == "dir") {
                                                if (!function_exists('formatta_dir_salva_doc')) {
                                                    include './includes/funzioni_contratti.php';
                                                }
                                                $dir_salva = formatta_dir_salva_doc($riga[$num_colonna['testo']]);
                                                if ($dir_salva == "~") {
                                                    $dir_salva = $dir_salva_home;
                                                }
                                                if (!@is_dir($dir_salva)) {
                                                    $inserire_riga = "NO";
                                                } else {
                                                    $fileaperto = @fopen("{$dir_salva}/prova.tmp", "a+");
                                                    if (!$fileaperto) {
                                                        $inserire_riga = "NO";
                                                    } else {
                                                        fclose($fileaperto);
                                                        unlink("{$dir_salva}/prova.tmp");
                                                    }
                                                    # fine else if (!$fileaperto)
                                                }
                                                # fine else if (!@is_dir($dir_salva))
                                            }
                                            # fine if ($tipo_contr == "dir")
                                            if ($tipo_contr == "allegato") {
                                                $vecchio_all = $riga[$num_colonna['testo']];
                                                if (!$nuovo_num_all[$vecchio_all]) {
                                                    $nuovo_num_all[$vecchio_all] = $max_all + $vecchio_all;
                                                }
                                                $riga[$num_colonna['testo']] = $nuovo_num_all[$vecchio_all];
                                            }
                                            # fine if ($tipo_contr == "allegato")
                                            if ($tipo_contr == "impor_vc") {
                                                if (!$contr_agg) {
                                                    $vecchio_num_impor_vc = $riga[$num_colonna['testo']];
                                                    if (!$nuovo_num_contr[$vecchio_num_impor_vc]) {
                                                        $nuovo_num_contr[$vecchio_num_impor_vc] = $max_contr + $vecchio_num_impor_vc;
                                                    }
                                                    $riga[$num_colonna['testo']] = $nuovo_num_contr[$vecchio_num_impor_vc];
                                                } else {
                                                    $inserire_riga = "NO";
                                                }
                                            }
                                            # fine if ($tipo_contr == "impor_vc")
                                            if ($tipo_contr == "num_prog") {
                                                if (!$contr_agg) {
                                                    $vecchio_num_np = $riga[$num_colonna['testo']];
                                                    if (!$nuovo_num_contr[$vecchio_num_np]) {
                                                        $nuovo_num_contr[$vecchio_num_np] = $max_contr + $vecchio_num_np;
                                                    }
                                                    $riga[$num_colonna['testo']] = $nuovo_num_contr[$vecchio_num_np];
                                                } else {
                                                    $inserire_riga = "NO";
                                                }
                                            }
                                            # fine if ($tipo_contr == "num_prog")
                                        } else {
                                            $inserire_riga = "NO";
                                        }
                                    }
                                    # fine if (substr($tipo_contr,0,5) == "contr" or $tipo_contr == "opzeml" or...
                                    if (substr($tipo_contr, 0, 3) == "var") {
                                        $contr_cond = substr($tipo_contr, 3);
                                        if (!$contr_agg or $contr_agg_var == $contr_cond) {
                                            if (strcmp($contr_cond, "")) {
                                                if (!$nuovo_num_contr[$contr_cond]) {
                                                    if ($contr_agg) {
                                                        $nuovo_num_contr[$contr_cond] = $max_contr + 1;
                                                    } else {
                                                        $nuovo_num_contr[$contr_cond] = $max_contr + $contr_cond;
                                                    }
                                                }
                                                # fine if (!$nuovo_num_contr[$contr_cond])
                                                $contr_cond = $nuovo_num_contr[$contr_cond];
                                                $tipo_contr = "var{$contr_cond}";
                                                $riga[$num_colonna['tipo']] = $tipo_contr;
                                            }
                                            # fine if (strcmp($contr_cond,""))
                                            if (!$nuovo_num_var[$vecchio_num]) {
                                                $num_var_esistente = "";
                                                $testo = $riga[$num_colonna['testo']];
                                                $var_esistente = esegui_query("select * from " . $PHPR_TAB_PRE . "contratti where (tipo {$LIKE} 'var%' and testo = '" . aggslashdb($testo) . "') or (tipo {$LIKE} 'vett%' and testo {$LIKE} '" . aggslashdb($testo) . ";%') ");
                                                for ($num2 = 0; $num2 < numlin_query($var_esistente); $num2++) {
                                                    if ($testo == risul_query($var_esistente, $num2, 'testo') and $tipo_contr == risul_query($var_esistente, $num2, 'tipo')) {
                                                        $num_var_esistente = $num2 + 1;
                                                    }
                                                }
                                                if ($num_var_esistente) {
                                                    $nuovo_num_var[$vecchio_num] = risul_query($var_esistente, $num_var_esistente - 1, 'numero');
                                                    $inserire_riga = "NO";
                                                } else {
                                                    $nuovo_num_var[$vecchio_num] = $max_var + $vecchio_num;
                                                    if (numlin_query($var_esistente)) {
                                                        $nuovo_nome_trovato = "NO";
                                                        $nuovo_nome = $testo;
                                                        while ($nuovo_nome_trovato == "NO") {
                                                            $nuovo_nome .= "_";
                                                            $var_esistente = esegui_query("select * from " . $PHPR_TAB_PRE . "contratti where (tipo {$LIKE} 'var%' and testo = '" . aggslashdb($nuovo_nome) . "') or (tipo {$LIKE} 'vett%' and testo {$LIKE} '" . aggslashdb($nuovo_nome) . ";%') ");
                                                            if (!numlin_query($var_esistente)) {
                                                                $nuovo_nome_trovato = "SI";
                                                            }
                                                        }
                                                        # fine while ($nuovo_nome_trovato == "NO")
                                                        $nuovo_nome_var[$testo] = $nuovo_nome;
                                                        # cambio il nome della variabile anche negli array già inseriti
                                                        reset($nuovo_nome_var);
                                                        while (list($key, $val) = each($nuovo_nome_var)) {
                                                            $nuovo_nome_var[$key] = str_replace("({$testo})", "({$nuovo_nome})", $val);
                                                            if ($val != $nuovo_nome_var[$key]) {
                                                                $nome_arr = substr($nuovo_nome_var[$key], 0, -1 * (strlen($nuovo_nome) + 2));
                                                                $arr_esistente = esegui_query("select * from " . $PHPR_TAB_PRE . "contratti where tipo = 'vett{$contr_cond}' and testo = '" . aggslashdb($nome_arr) . ";" . aggslashdb($testo) . "' ");
                                                                if (numlin_query($arr_esistente)) {
                                                                    $testo_arr = explode(";", risul_query($arr_esistente, 0, 'testo'));
                                                                    $testo_arr[1] = $nuovo_nome;
                                                                    $testo_arr = implode(";", $testo_arr);
                                                                    esegui_query("update " . $PHPR_TAB_PRE . "contratti set testo = '" . aggslashdb($testo_arr) . "' where tipo = 'vett{$contr_cond}' and testo = '" . aggslashdb($nome_arr) . ";" . aggslashdb($testo) . "' ");
                                                                }
                                                                # fine if (numlin_query($arr_esistente))
                                                            }
                                                            # fine if ($val != $nuovo_nome_var[$key])
                                                        }
                                                        # fine while (list($key,$val) = each($nuovo_nome_var))
                                                        $riga[$num_colonna['testo']] = $nuovo_nome;
                                                    }
                                                    # fine if (numlin_query($var_esistente))
                                                }
                                                # fine else if ($num_var_esistente)
                                            }
                                            # fine if (!$nuovo_num_contr[$vecchio_num])
                                            $riga[$num_colonna['numero']] = $nuovo_num_var[$vecchio_num];
                                        } else {
                                            $inserire_riga = "NO";
                                        }
                                    }
                                    # fine if (substr($tipo_contr,0,3) == "var")
                                    if (substr($tipo_contr, 0, 4) == "vett") {
                                        $contr_cond = substr($tipo_contr, 4);
                                        if (!$contr_agg or $contr_agg_var == $contr_cond) {
                                            if (strcmp($contr_cond, "")) {
                                                if (!$nuovo_num_contr[$contr_cond]) {
                                                    if ($contr_agg) {
                                                        $nuovo_num_contr[$contr_cond] = $max_contr + 1;
                                                    } else {
                                                        $nuovo_num_contr[$contr_cond] = $max_contr + $contr_cond;
                                                    }
                                                }
                                                # fine if (!$nuovo_num_contr[$contr_cond])
                                                $contr_cond = $nuovo_num_contr[$contr_cond];
                                                $tipo_contr = "vett{$contr_cond}";
                                                $riga[$num_colonna['tipo']] = $tipo_contr;
                                            }
                                            # fine if (strcmp($contr_cond,""))
                                            if (!$nuovo_num_var["a{$vecchio_num}"]) {
                                                $num_arr_esistente = "";
                                                $testo = $riga[$num_colonna['testo']];
                                                $nome_arr = explode(";", $testo);
                                                $var_arr = $nome_arr[1];
                                                $nome_arr = $nome_arr[0];
                                                $arr_esistente = esegui_query("select * from " . $PHPR_TAB_PRE . "contratti where (tipo {$LIKE} 'var%' and testo = '" . aggslashdb($nome_arr) . "') or (tipo {$LIKE} 'vett%' and testo {$LIKE} '" . aggslashdb($nome_arr) . ";%') ");
                                                for ($num2 = 0; $num2 < numlin_query($arr_esistente); $num2++) {
                                                    if ($testo == risul_query($arr_esistente, $num2, 'testo') and $tipo_contr == risul_query($arr_esistente, $num2, 'tipo')) {
                                                        $num_arr_esistente = $num2 + 1;
                                                    }
                                                }
                                                if ($num_arr_esistente) {
                                                    $nuovo_num_var["a{$vecchio_num}"] = "a" . risul_query($arr_esistente, $num_arr_esistente - 1, 'numero');
                                                    $inserire_riga = "NO";
                                                } else {
                                                    $nuovo_num_var["a{$vecchio_num}"] = "a" . ($max_arr + $vecchio_num);
                                                    if (numlin_query($arr_esistente)) {
                                                        $nuovo_nome_trovato = "NO";
                                                        $nuovo_nome = $nome_arr;
                                                        while ($nuovo_nome_trovato == "NO") {
                                                            $nuovo_nome .= "_";
                                                            $arr_esistente = esegui_query("select * from " . $PHPR_TAB_PRE . "contratti where (tipo {$LIKE} 'var%' and testo = '" . aggslashdb($nuovo_nome) . "') or (tipo {$LIKE} 'vett%' and testo {$LIKE} '" . aggslashdb($nuovo_nome) . ";%') ");
                                                            if (!numlin_query($arr_esistente)) {
                                                                $nuovo_nome_trovato = "SI";
                                                            }
                                                        }
                                                        # fine while ($nuovo_nome_trovato == "NO")
                                                        $nuovo_nome_var["{$nome_arr}({$var_arr})"] = "{$nuovo_nome}({$var_arr})";
                                                        $riga[$num_colonna["testo"]] = $nuovo_nome . substr($testo, strlen($nome_arr));
                                                    } else {
                                                        $nuovo_nome_var["{$nome_arr}({$var_arr})"] = "{$nome_arr}({$var_arr})";
                                                    }
                                                }
                                                # fine else if ($num_arr_esistente)
                                            }
                                            # fine if (!$nuovo_num_contr["a$vecchio_num"])
                                            $riga[$num_colonna['numero']] = substr($nuovo_num_var["a{$vecchio_num}"], 1);
                                        } else {
                                            $inserire_riga = "NO";
                                        }
                                    }
                                    # fine if (substr($tipo_contr,0,4) == "vett")
                                    if (substr($tipo_contr, 0, 4) == "cond") {
                                        $contr_cond = substr($tipo_contr, 4);
                                        if (!$contr_agg or $contr_agg_var == $contr_cond) {
                                            if (!strcmp($contr_cond, "")) {
                                                $riga[$num_colonna['numero']] = $max_cond + $vecchio_num;
                                            } else {
                                                $vecchio_num = $contr_cond;
                                                if (!$nuovo_num_contr[$vecchio_num]) {
                                                    if ($contr_agg) {
                                                        $nuovo_num_contr[$vecchio_num] = $max_contr + 1;
                                                    } else {
                                                        $nuovo_num_contr[$vecchio_num] = $max_contr + $vecchio_num;
                                                    }
                                                }
                                                # fine if (!$nuovo_num_contr[$vecchio_num])
                                                $riga[$num_colonna['tipo']] = "cond" . $nuovo_num_contr[$vecchio_num];
                                                $contr_cond = $nuovo_num_contr[$vecchio_num];
                                            }
                                            # fine else if (!strcmp($contr_cond,""))
                                            $cond_vecchia = $riga[$num_colonna['testo']];
                                            $cond_vecchia = explode("#@?", $cond_vecchia);
                                            $azione_vecchia = explode("#%?", $cond_vecchia[2]);
                                            $cond_nuova = $cond_vecchia[0] . "#@?";
                                            if ($cond_vecchia[1]) {
                                                $cond_vecchia = explode("#\$?", $cond_vecchia[1]);
                                                $cond_nuova .= $cond_vecchia[0];
                                                $num_cond = count($cond_vecchia);
                                                for ($num2 = 1; $num2 < $num_cond; $num2++) {
                                                    $cond_nuova .= "#\$?";
                                                    $cond_vett = explode("#%?", $cond_vecchia[$num2]);
                                                    if ($cond_vett[2] == "var") {
                                                        ripristina_nome_var_cond(array(0, 3), $cond_vett, $nuovo_nome_var);
                                                    } else {
                                                        ripristina_nome_var_cond(array('0'), $cond_vett, $nuovo_nome_var);
                                                    }
                                                    for ($num3 = 0; $num3 < count($cond_vett); $num3++) {
                                                        $cond_nuova .= $cond_vett[$num3] . "#%?";
                                                    }
                                                    $cond_nuova = substr($cond_nuova, 0, -3);
                                                }
                                                # fine for $num2
                                            }
                                            # fine ($cond_vecchia[1])
                                            $cond_nuova .= "#@?" . $azione_vecchia[0];
                                            if ($azione_vecchia[0] == "set") {
                                                $azione_vecchia[1] = $nuovo_num_var[$azione_vecchia[1]];
                                                if ($azione_vecchia[3] == "var") {
                                                    ripristina_nome_var_cond(array(4), $azione_vecchia, $nuovo_nome_var);
                                                }
                                                if ($azione_vecchia[5] == "var") {
                                                    ripristina_nome_var_cond(array(6), $azione_vecchia, $nuovo_nome_var);
                                                }
                                                if ($azione_vecchia[7] == "var") {
                                                    ripristina_nome_var_cond(array(8), $azione_vecchia, $nuovo_nome_var);
                                                }
                                            }
                                            # fine if ($azione_vecchia[0] == "set")
                                            if ($azione_vecchia[0] == "trunc") {
                                                $azione_vecchia[1] = $nuovo_num_var[$azione_vecchia[1]];
                                            }
                                            if ($azione_vecchia[0] == "oper") {
                                                $azione_vecchia[1] = $nuovo_num_var[$azione_vecchia[1]];
                                                if ($azione_vecchia[4] == "var") {
                                                    ripristina_nome_var_cond(array(2, 5), $azione_vecchia, $nuovo_nome_var);
                                                } else {
                                                    ripristina_nome_var_cond(array(2), $azione_vecchia, $nuovo_nome_var);
                                                }
                                            }
                                            # fine if ($azione_vecchia[0] == "oper")
                                            if ($azione_vecchia[0] == "date") {
                                                $azione_vecchia[1] = $nuovo_num_var[$azione_vecchia[1]];
                                                ripristina_nome_var_cond(array(2), $azione_vecchia, $nuovo_nome_var);
                                            }
                                            # fine if ($azione_vecchia[0] == "date")
                                            if ($azione_vecchia[0] == "unset") {
                                                $azione_vecchia[1] = $nuovo_num_var[$azione_vecchia[1]];
                                            }
                                            if ($azione_vecchia[0] == "array") {
                                                $azione_vecchia[1] = $nuovo_num_var[$azione_vecchia[1]];
                                                if ($azione_vecchia[2] == "cop") {
                                                    $azione_vecchia[3] = $nuovo_num_var[$azione_vecchia[3]];
                                                }
                                            }
                                            # fine if ($azione_vecchia[0] == "array")
                                            for ($num2 = 1; $num2 < count($azione_vecchia); $num2++) {
                                                $cond_nuova .= "#%?" . $azione_vecchia[$num2];
                                            }
                                            $riga[$num_colonna['testo']] = $cond_nuova;
                                            $testo = aggslashdb($riga[$num_colonna['testo']]);
                                            #$cond_esistente = esegui_query("select * from ".$PHPR_TAB_PRE."contratti where tipo = 'cond$contr_cond' and testo = '$testo' ");
                                            #for ($num2 = 0 ; $num2 < numlin_query($cond_esistente) ; $num2++) if ($cond_nuova == risul_query($cond_esistente,$num2,'testo')) $inserire_riga = "NO";
                                        } else {
                                            $inserire_riga = "NO";
                                        }
                                    }
                                    # fine if (substr($tipo_contr,0,4) == "cond")
                                    if ($tipo_contr == "file_all") {
                                        $vecchio_all = $riga[$num_colonna['numero']];
                                        if (!$contr_agg or str_replace(",{$vecchio_all},", "", $contr_agg_all) != $contr_agg_all) {
                                            if (!$nuovo_num_all[$vecchio_all]) {
                                                $nuovo_num_all[$vecchio_all] = $max_all + $vecchio_all;
                                            }
                                            $riga[$num_colonna['numero']] = $nuovo_num_all[$vecchio_all];
                                        } else {
                                            $inserire_riga = "NO";
                                        }
                                    }
                                    # fine if ($tipo_contr == "file_all")
                                    for ($num2 = 0; $num2 < count($riga); $num2++) {
                                        $valore = aggslashdb($riga[$num2]);
                                        if ($valore != "") {
                                            $valore = str_replace("</righetabella@%&@>", "</righetabella>", $valore);
                                            $valore = str_replace("</riga@%&@>", "</riga>", $valore);
                                            $valore = str_replace("<riga@%&@>", "<riga>", $valore);
                                            $valore = str_replace("</cmp@%&@>", "</cmp>", $valore);
                                            $valore = str_replace("@%&@@%&@", "@%&@", $valore);
                                            $lista_valori .= ",'" . $valore . "'";
                                            $lista_colonne .= "," . $nome_colonna[$num2 + 1];
                                        }
                                        # fine if ($valore != "")
                                    }
                                    # fine for $num2
                                    $lista_valori = substr($lista_valori, 1);
                                    $lista_colonne = substr($lista_colonne, 1);
                                    #echo "insert into $nome_tabella ($lista_colonne) values ($lista_valori)<br>";
                                    if ($inserire_riga != "NO") {
                                        esegui_query("insert into " . $PHPR_TAB_PRE . "{$nome_tabella} ({$lista_colonne}) values ({$lista_valori}) ");
                                    }
                                }
                                # fine if (substr($linea,-7) == "</riga>")
                            }
                            # fine if ($leggendo_righe == "SI")
                            if ($linea == "<righetabella>") {
                                $leggendo_righe = "SI";
                                $linee_inserite_in_tabella[$nome_tabella] = 0;
                            }
                            # fine if ($linea == "<righetabella>")
                        }
                        # fine if ($leggendo_tabella == "SI")
                        if ($linea == "<tabella>") {
                            $leggendo_tabella = "SI";
                        }
                    }
                    # fine if ($leggendo_database == "SI")
                    if ($linea == "<database>") {
                        $leggendo_database = "SI";
                    }
                }
                # fine if ($leggendo_backup == "SI")
                if ($linea == "<backup>") {
                    $leggendo_backup = "SI";
                }
            }
            # fine for $num1
            $tabelle_lock = array($PHPR_TAB_PRE . "contratti", $PHPR_TAB_PRE . "personalizza");
            $altre_tab_lock = array($PHPR_TAB_PRE . "versioni");
            $tabelle_lock = lock_tabelle($tabelle_lock, $altre_tab_lock);
            $nomi_contratti = esegui_query("select testo from {$PHPR_TAB_PRE}" . "contratti where numero = '1' and tipo = 'nomi_con' ");
            $nomi_contratti = risul_query($nomi_contratti, 0, 'testo');
            if ($modalita == "rimpiazza") {
                esegui_query("update {$PHPR_TAB_PRE}" . "personalizza set valpersonalizza = '" . aggslashdb($nomi_contratti) . "' where idpersonalizza = 'nomi_contratti'");
            } else {
                $nomi_contratti = explode("#@&", $nomi_contratti);
                $n_nomi_contratti = "";
                for ($num1 = 0; $num1 < count($nomi_contratti); $num1++) {
                    $nome_contr = explode("#?&", $nomi_contratti[$num1]);
                    if (!$contr_agg or $nome_contr[0] == $contr_agg) {
                        $n_nomi_contratti .= "#@&" . $nuovo_num_contr[$nome_contr[0]] . "#?&" . $nome_contr[1];
                    }
                }
                # fine for $num1
                $d_nomi_contr = esegui_query("select * from {$PHPR_TAB_PRE}" . "personalizza where idpersonalizza = 'nomi_contratti' ");
                for ($num1 = 0; $num1 < numlin_query($d_nomi_contr); $num1++) {
                    $idutente_contr = risul_query($d_nomi_contr, $num1, 'idutente');
                    $nomi_contr_utente = risul_query($d_nomi_contr, $num1, 'valpersonalizza') . $n_nomi_contratti;
                    esegui_query("update {$PHPR_TAB_PRE}" . "personalizza set valpersonalizza = '" . aggslashdb($nomi_contr_utente) . "' where idpersonalizza = 'nomi_contratti' and idutente = '{$idutente_contr}' ");
                }
                # fine for $num1
            }
            # fine else if ($modalita == "rimpiazza")
            esegui_query("delete from {$PHPR_TAB_PRE}" . "contratti where numero = '1' and tipo = 'nomi_con' ");
            unlock_tabelle($tabelle_lock);
            if ($silenzio != "SI") {
                echo mex("Documenti ripristinati", $pag) . ".<br>";
            }
        }
        # fine else if ($file_coerente == "NO")
    } else {
        if ($silenzio != "SI") {
            echo mex("La versione attuale di hoteldruid e quella del file non coincidono", $pag) . ".<br>";
        }
    }
}
function crea_messaggio_contr_salva($nome_file_contr, $num_file_salva, $num_contr_esist, $nome_file_contr_esist, $numero_contratto, $nomi_contratti, $dir_salva, $tipo_contratto, $num_ripeti, $origine, $origine_vecchia, $lista_var_form, $mostra_headers, $anno, $id_sessione, $id_utente, $tema, $tableversioni, $tabletransazioni, $pag)
{
    global $PHPR_TAB_PRE, $priv_cancella_contratti;
    $nome_file_contr_orig = $nome_file_contr;
    $num_file_salva_orig = $num_file_salva;
    if ($num_contr_esist) {
        $nome_file_contr = $nome_file_contr_esist;
        $num_file_salva = count($nome_file_contr);
    }
    # fine if ($num_contr_esist)
    $tabelle_lock = array($tableversioni, $tabletransazioni);
    $adesso = date("YmdHis", time() + C_DIFF_ORE * 3600);
    list($usec, $sec) = explode(' ', microtime());
    mt_srand((double) $sec + (double) $usec * 100000);
    $val_casuale = mt_rand(100000, 999999);
    $versione_transazione = prendi_numero_versione($tableversioni);
    $ultimo_accesso = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
    $id_transazione = $adesso . $val_casuale . $versione_transazione;
    esegui_query("insert into {$tabletransazioni} (idtransazioni,idsessione,tipo_transazione,anno,dati_transazione1,dati_transazione2,dati_transazione3,dati_transazione4,dati_transazione5,ultimo_accesso) values ('{$id_transazione}','{$id_sessione}','con_s','{$anno}','" . aggslashdb($dir_salva) . "','" . aggslashdb(serialize($nome_file_contr)) . "','{$tipo_contratto}','" . aggslashdb($origine) . "','" . aggslashdb($origine_vecchia) . "','{$ultimo_accesso}')");
    unlock_tabelle($tabelle_lock);
    if ($tipo_contratto == "contrrtf") {
        $sec_aspetta = 2;
    } else {
        $sec_aspetta = 6;
    }
    $url_reload = "./{$pag}?id_sessione={$id_sessione}&amp;anno={$anno}&amp;id_transazione={$id_transazione}&amp;numero_contratto={$numero_contratto}";
    if ($num_file_salva == 1) {
        $target = "";
    } else {
        $target = " target=\"_blank\"";
    }
    if ($mostra_headers == "NO") {
        if ($num_file_salva == 1) {
            $extra_head = "<meta http-equiv=\"refresh\" content=\"{$sec_aspetta}; url={$url_reload}&n_file=1\">\n";
        }
        if ($tema[$id_utente] and $tema[$id_utente] != "base" and @is_dir("./themes/" . $tema[$id_utente] . "/php")) {
            include "./themes/" . $tema[$id_utente] . "/php/head.php";
        } else {
            include "./includes/head.php";
        }
    }
    # fine if ($mostra_headers == "NO")
    if ($num_contr_esist and $num_file_salva_orig == 1) {
        echo "<div style=\"line-height: 180%\"><br>";
    } else {
        echo "<div style=\"line-height: 130%\"><br>";
    }
    if ($num_contr_esist) {
        if ($num_ripeti > 1) {
            echo mex("Documenti già esistenti riguardanti queste prenotazioni", $pag) . ":<br>";
        } else {
            echo mex("Documenti già esistenti riguardanti questa prenotazione", $pag) . ":<br>";
        }
    }
    # fine if ($num_contr_esist)
    for ($num1 = 1; $num1 <= $num_file_salva; $num1++) {
        if ($num_contr_esist and $num_file_salva_orig == 1) {
            echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"{$pag}\"><div>\n{$lista_var_form}\n<input type=\"hidden\" name=\"sovrascrivi\" value=\"" . htmlspecialchars($nome_file_contr[$num1]) . "\">";
        }
        # fine if ($num_contr_esist and $num_file_salva_orig == 1)
        if (!$num_contr_esist) {
            echo ucfirst(mex("documento", $pag)) . " ";
            if ($nomi_contratti['salv'][$numero_contratto] != $nomi_contratti[$numero_contratto]) {
                echo "\"" . $nomi_contratti[$numero_contratto] . "\" ";
            }
            echo mex("<span class=\"colblu\">salvato</span> come", $pag);
        }
        # fine if (!$num_contr_esist)
        echo " <b><a style=\"color: #000000;\" href=\"{$url_reload}&n_file={$num1}\"{$target}>" . $nome_file_contr[$num1] . "</a></b>";
        if ($num_contr_esist and $num_file_salva_orig == 1 and $priv_cancella_contratti != "n") {
            echo " " . bottone_submit_contr(mex("Sovrascrivi", $pag)) . "\n.</div></form>";
        } else {
            echo ".<br>";
        }
    }
    # fine for $num1
    echo "<br></div>";
    if (!$num_contr_esist) {
        if ($priv_cancella_contratti != "n") {
            echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"{$pag}\"><div>\n<input type=\"hidden\" name=\"anno\" value=\"{$anno}\">\n<input type=\"hidden\" name=\"id_sessione\" value=\"{$id_sessione}\">\n<input type=\"hidden\" name=\"numero_contratto\" value=\"{$numero_contratto}\">\n<input type=\"hidden\" name=\"id_transazione\" value=\"{$id_transazione}\">\n<input type=\"hidden\" name=\"cancella\" value=\"SI\">";
            if ($num_file_salva == 1) {
                echo "&nbsp;" . bottone_submit_contr(mex("Cancella il documento", $pag));
            } else {
                echo bottone_submit_contr(mex("Cancella i documenti", $pag));
            }
            echo "</div></form><br>";
        }
        # fine if ($priv_cancella_contratti != "n")
    } else {
        echo "<br>\n<form accept-charset=\"utf-8\" method=\"post\" action=\"{$pag}\"><div>\n{$lista_var_form}\n<input type=\"hidden\" name=\"cont_salva\" value=\"SI\">";
        if ($num_file_salva_orig == 1) {
            echo "&nbsp;" . bottone_submit_contr(mex("Salva un nuovo documento", $pag));
        } else {
            echo bottone_submit_contr(mex("Salva dei nuovi documenti", $pag));
        }
        echo "</div></form><br>";
    }
    # fine else if (!$num_contr_esist)
}
function aggiorna_relutenti($aggiungi_rel, $rel_predefinite, $elimina_tutte_rel, $importa_rel, $id_utente, $id_utente_mod, $nuova_rel, $sup_n_rel, $cod_n_rel, $cod2_n_rel, $cod3_n_rel, $utente_importa_rel, $pag, $rel_sing, $rel_plur, $tablerel, $tablerelutenti, $rel_sup_sing = "", $rel_sup_plur = "", $tablerel_sup = "", $rel_inf_sing = "", $rel_inf_plur = "", $tablerel_inf = "")
{
    if ($id_utente != 1 or $id_utente_mod == $utente_importa_rel) {
        $importa_rel = "";
    }
    if ($aggiungi_rel or $rel_predefinite or $elimina_tutte_rel or $importa_rel) {
        if (get_magic_quotes_gpc()) {
            $nuova_rel = stripslashes($nuova_rel);
            $cod_n_rel = stripslashes($cod_n_rel);
            $cod2_n_rel = stripslashes($cod2_n_rel);
            $cod3_n_rel = stripslashes($cod3_n_rel);
            $sup_n_rel = stripslashes($sup_n_rel);
        }
        # fine if (get_magic_quotes_gpc())
        $nuova_rel = htmlspecialchars($nuova_rel);
        $cod_n_rel = htmlspecialchars($cod_n_rel);
        $cod2_n_rel = htmlspecialchars($cod2_n_rel);
        $cod3_n_rel = htmlspecialchars($cod3_n_rel);
        $sup_n_rel = htmlspecialchars($sup_n_rel);
        if (!$aggiungi_rel or str_replace(" ", "", $nuova_rel)) {
            echo "<div id=\"avanz_{$rel_plur}\"><br>";
            if ($tablerel_inf) {
                $tabelle_lock = array($tablerel, $tablerel_inf, $tablerelutenti);
            } else {
                $tabelle_lock = array($tablerel, $tablerelutenti);
            }
            if ($tablerel_sup) {
                $altre_tab_lock = array($tablerel_sup);
            } else {
                $altre_tab_lock = "";
            }
            $tabelle_lock = lock_tabelle($tabelle_lock, $altre_tab_lock);
            unset($lista_rel);
            unset($cod_rel);
            unset($cod2_rel);
            unset($cod3_rel);
            unset($cod_rel_sup);
            if ($aggiungi_rel) {
                $lista_rel[0] = $nuova_rel;
                $cod_rel[0] = $cod_n_rel;
                $cod2_rel[0] = $cod2_n_rel;
                $cod3_rel[0] = $cod3_n_rel;
                if ($rel_sup_sing and $sup_n_rel) {
                    $sup_n_rel_esist = esegui_query("select distinct {$tablerel_sup}.id{$rel_sup_plur} from {$tablerelutenti} inner join {$tablerel_sup} on {$tablerelutenti}.id{$rel_sup_sing} = {$tablerel_sup}.id{$rel_sup_plur} where {$tablerelutenti}.idutente = '{$id_utente_mod}' and {$tablerel_sup}.nome_{$rel_sup_sing} = '" . aggslashdb($sup_n_rel) . "' ");
                    if (numlin_query($sup_n_rel_esist) > 0) {
                        $id_rel_sup_vett[0] = risul_query($sup_n_rel_esist, 0, "id{$rel_sup_plur}", $tablerel_sup);
                    }
                }
                # fine if ($rel_sup_sing and $sup_n_rel)
            } else {
                $rel_canc = esegui_query("select id{$rel_sing} from {$tablerelutenti} where idutente = '{$id_utente_mod}' and id{$rel_sing} is not NULL ");
                $num_rel_canc = numlin_query($rel_canc);
                esegui_query("delete from {$tablerelutenti} where idutente = '{$id_utente_mod}' and id{$rel_sing} is not NULL ");
                $rel_usate = esegui_query("select distinct id{$rel_sing} from {$tablerelutenti} where id{$rel_sing} is not NULL");
                $num_rel_usate = numlin_query($rel_usate);
                for ($num1 = 0; $num1 < $num_rel_usate; $num1++) {
                    $relutente_usate[(int) risul_query($rel_usate, $num1, "id{$rel_sing}")] = 1;
                }
                # fine for $num1
                for ($num1 = 0; $num1 < $num_rel_canc; $num1++) {
                    if (substr($num1, -3) == "000") {
                        http_keep_alive(". ");
                    }
                    if ($num1 > 20) {
                        $nolog = 1;
                    } else {
                        $nolog = 0;
                    }
                    cancella_relutente(risul_query($rel_canc, $num1, "id{$rel_sing}"), $id_utente_mod, $rel_sing, $rel_plur, $tablerel, $tablerelutenti, $rel_inf_sing, $rel_inf_plur, $tablerel_inf, "SI", $relutente_usate, $nolog);
                }
                # fine for $num1
                unset($rel_canc);
                unset($rel_usate);
                unset($relutente_usate);
                if ($rel_predefinite) {
                    include C_DATA_PATH . "/lingua.php";
                    global ${"lista_" . $rel_plur}, ${"cod_" . $rel_plur}, ${"cod2_" . $rel_plur}, ${"cod3_" . $rel_plur}, ${"cod_" . $rel_sup_sing . "_" . $rel_plur};
                    if ($lingua[$id_utente_mod] == "ita") {
                        include_once "./includes/lista_{$rel_plur}.php";
                    } else {
                        if (@is_file("./includes/lang/" . $lingua[$id_utente_mod] . "/lista_{$rel_plur}.php")) {
                            include_once "./includes/lang/" . $lingua[$id_utente_mod] . "/lista_{$rel_plur}.php";
                        }
                    }
                    $lista_rel = ${"lista_" . $rel_plur};
                    $cod_rel = ${"cod_" . $rel_plur};
                    $cod2_rel = ${"cod2_" . $rel_plur};
                    $cod3_rel = ${"cod3_" . $rel_plur};
                    if ($rel_sup_sing) {
                        $cod_rel_sup = ${"cod_" . $rel_sup_sing . "_" . $rel_plur};
                    }
                    if (@is_array($lista_rel)) {
                        $num_rel = count($lista_rel);
                    } else {
                        $num_rel = 0;
                    }
                    for ($num1 = 0; $num1 < $num_rel; $num1++) {
                        $lista_rel[$num1] = htmlspecialchars($lista_rel[$num1]);
                        $cod_rel[$num1] = htmlspecialchars($cod_rel[$num1]);
                        $cod2_rel[$num1] = htmlspecialchars($cod2_rel[$num1]);
                        $cod3_rel[$num1] = htmlspecialchars($cod3_rel[$num1]);
                        $cod_rel_sup[$num1] = htmlspecialchars($cod_rel_sup[$num1]);
                    }
                    # fine for $num1
                } else {
                    if ($importa_rel) {
                        $utente_importa_rel = aggslashdb($utente_importa_rel);
                        $rel_ut_imp = esegui_query("select distinct {$tablerel}.nome_{$rel_sing},{$tablerelutenti}.idsup from {$tablerelutenti} inner join {$tablerel} on {$tablerelutenti}.id{$rel_sing} = {$tablerel}.id{$rel_plur} where {$tablerelutenti}.idutente = '{$utente_importa_rel}' order by {$tablerel}.nome_{$rel_sing}");
                        $num_rel_ut_imp = numlin_query($rel_ut_imp);
                        for ($num1 = 0; $num1 < $num_rel_ut_imp; $num1++) {
                            $rel = risul_query($rel_ut_imp, $num1, "nome_{$rel_sing}", $tablerel);
                            $lista_rel[$num1] = $rel;
                            if ($rel_sup_sing) {
                                $id_rel_sup_vett[$num1] = risul_query($rel_ut_imp, $num1, 'idsup', $tablerelutenti);
                            }
                        }
                        # fine for $num1
                        unset($rel_ut_imp);
                    }
                }
                # fine if ($importa_rel)
            }
            # fine else if ($aggiungi_rel)
            $num_passa_a_var = 2;
            if (@is_array($lista_rel)) {
                $num_rel_agg = count($lista_rel);
            } else {
                $num_rel_agg = 0;
            }
            if ($num_rel_agg >= $num_passa_a_var) {
                $rel_esistenti = esegui_query("select id{$rel_plur},nome_{$rel_sing},codice_{$rel_sing} from {$tablerel} where nome_{$rel_sing} is not NULL ");
                $num_rel_esistenti = numlin_query($rel_esistenti);
                for ($num1 = 0; $num1 < $num_rel_esistenti; $num1++) {
                    $nome_rel = risul_query($rel_esistenti, $num1, "nome_{$rel_sing}");
                    $rel_esistente[$nome_rel] = 1;
                    $id_esistente[$nome_rel] = risul_query($rel_esistenti, $num1, "id{$rel_plur}");
                    $cod_esistente[$nome_rel] = risul_query($rel_esistenti, $num1, "codice_{$rel_sing}");
                }
                # fine for $num1
                unset($rel_esistenti);
                $rel_esistenti2 = esegui_query("select id{$rel_sing},idsup from {$tablerelutenti} where idutente = '{$id_utente_mod}' and id{$rel_sing} is not NULL ");
                $num_rel_esistenti2 = numlin_query($rel_esistenti2);
                for ($num1 = 0; $num1 < $num_rel_esistenti2; $num1++) {
                    $id_rel = risul_query($rel_esistenti2, $num1, "id{$rel_sing}");
                    $rel_esistente2[$id_rel] = 1;
                    $idsup_esistente2[$id_rel] = risul_query($rel_esistenti2, $num1, 'idsup');
                }
                # fine for $num1
                unset($rel_esistenti2);
            }
            # fine if ($num_rel_agg > $num_passa_a_var)
            unset($num_max);
            for ($num1 = 0; $num1 < $num_rel_agg; $num1++) {
                if (substr($num1, -3) == "000") {
                    http_keep_alive(". ");
                }
                if ($num1 > 20) {
                    $nolog = 1;
                } else {
                    $nolog = 0;
                }
                $id_rel_sup = "";
                if ($rel_sup_sing and $cod_rel_sup[$num1]) {
                    if ($cod_sup_esist[$cod_rel_sup[$num1]]) {
                        $id_rel_sup = $cod_sup_esist[$cod_rel_sup[$num1]];
                    } else {
                        $rel_sup = esegui_query("select id{$rel_sup_plur} from {$tablerel_sup} where codice_{$rel_sup_sing} = '" . aggslashdb($cod_rel_sup[$num1]) . "' ");
                        if (numlin_query($rel_sup) > 0) {
                            $id_rel_sup = risul_query($rel_sup, 0, "id{$rel_sup_plur}");
                            $cod_sup_esist[$cod_rel_sup[$num1]] = $id_rel_sup;
                        }
                        # fine if (numlin_query($rel_sup) > 0)
                    }
                    # fine else if ($cod_sup_esistente[$cod_rel_sup[$num1]])
                }
                # fine if ($rel_sup_sing and $cod_rel_sup[$num1])
                if ($rel_sup_sing and $id_rel_sup_vett[$num1]) {
                    if ($id_sup_esist[$id_rel_sup_vett[$num1]]) {
                        $id_rel_sup = $id_sup_esist[$id_rel_sup_vett[$num1]];
                    } else {
                        $rel_sup = esegui_query("select id{$rel_sup_plur} from {$tablerel_sup} where id{$rel_sup_plur} = '" . aggslashdb($id_rel_sup_vett[$num1]) . "' ");
                        if (numlin_query($rel_sup) > 0) {
                            $id_rel_sup = $id_rel_sup_vett[$num1];
                            $id_sup_esist[$id_rel_sup_vett[$num1]] = $id_rel_sup;
                        }
                        # fine if (numlin_query($rel_sup) > 0)
                    }
                    # fine else if ($cod_sup_esistente[$cod_rel_sup[$num1]])
                }
                # fine if ($rel_sup_sing and $id_rel_sup_vett[$num1])
                if ($num_rel_agg < $num_passa_a_var) {
                    $rel_esistenti = esegui_query("select id{$rel_plur},nome_{$rel_sing},codice_{$rel_sing} from {$tablerel} where nome_{$rel_sing} = '" . aggslashdb($lista_rel[$num1]) . "' ");
                    if (numlin_query($rel_esistenti)) {
                        $nome_rel = risul_query($rel_esistenti, 0, "nome_{$rel_sing}");
                        $rel_esistente[$nome_rel] = 1;
                        $id_esistente[$nome_rel] = risul_query($rel_esistenti, 0, "id{$rel_plur}");
                        $cod_esistente[$nome_rel] = risul_query($rel_esistenti, 0, "codice_{$rel_sing}");
                    }
                    # fine if (numlin_query($rel_esistenti))
                }
                # fine if ($num_rel_agg <= $num_passa_a_var)
                if (!$rel_esistente[$lista_rel[$num1]]) {
                    if (!$num_max) {
                        $num_max = esegui_query("select max(id{$rel_plur}) from {$tablerel} ");
                        $num_max = risul_query($num_max, 0, 0) + 1;
                    } else {
                        $num_max++;
                    }
                    $num_n_rel = $num_max;
                    esegui_query("insert into {$tablerel} (id{$rel_plur},nome_{$rel_sing},codice_{$rel_sing},codice2_{$rel_sing},codice3_{$rel_sing}) values ('{$num_n_rel}','" . aggslashdb($lista_rel[$num1]) . "','" . aggslashdb($cod_rel[$num1]) . "','" . aggslashdb($cod2_rel[$num1]) . "','" . aggslashdb($cod3_rel[$num1]) . "') ", "", $nolog);
                    $rel_esistente[$lista_rel[$num1]] = 1;
                    $id_esistente[$lista_rel[$num1]] = $num_n_rel;
                    $cod_esistente[$lista_rel[$num1]] = $cod_rel[$num1];
                } else {
                    $num_n_rel = $id_esistente[$lista_rel[$num1]];
                    $r_cod = $cod_esistente[$lista_rel[$num1]];
                    if (!$r_cod and $cod_rel[$num1]) {
                        esegui_query("update {$tablerel} set codice_{$rel_sing} = '" . aggslashdb($cod_rel[$num1]) . "' where id{$rel_plur} = '{$num_n_rel}' ");
                    }
                    if ($cod2_rel[$num1]) {
                        esegui_query("update {$tablerel} set codice2_{$rel_sing} = '" . aggslashdb($cod2_rel[$num1]) . "' where id{$rel_plur} = '{$num_n_rel}' ");
                    }
                    if ($cod3_rel[$num1]) {
                        esegui_query("update {$tablerel} set codice3_{$rel_sing} = '" . aggslashdb($cod3_rel[$num1]) . "' where id{$rel_plur} = '{$num_n_rel}' ");
                    }
                    if ($num_rel_agg < $num_passa_a_var) {
                        $rel_esistenti2 = esegui_query("select idsup from {$tablerelutenti} where idutente = '{$id_utente_mod}' and id{$rel_sing} = '{$num_n_rel}' ");
                        if (numlin_query($rel_esistenti2)) {
                            $rel_esistente2[$num_n_rel] = 1;
                            $idsup_esistente2[$num_n_rel] = risul_query($rel_esistenti2, 0, 'idsup');
                        }
                        # fine if (numlin_query($rel_esistenti2))
                    }
                    # fine if ($num_rel_agg < $num_passa_a_var)
                }
                # fine else if (!$rel_esistente[$lista_rel[$num1]])
                if (!$rel_esistente2[$num_n_rel]) {
                    if ($id_rel_sup) {
                        esegui_query("insert into {$tablerelutenti} (idutente,id{$rel_sing},idsup) values ('{$id_utente_mod}','{$num_n_rel}','{$id_rel_sup}') ", "", $nolog);
                    } else {
                        esegui_query("insert into {$tablerelutenti} (idutente,id{$rel_sing}) values ('{$id_utente_mod}','{$num_n_rel}') ", "", $nolog);
                    }
                    $rel_esistente2[$num_n_rel] = 1;
                    $idsup_esistente2[$num_n_rel] = $id_rel_sup;
                } elseif ($id_rel_sup) {
                    $idsup = $idsup_esistente2[$num_n_rel];
                    if (!$idsup) {
                        esegui_query("update {$tablerelutenti} set idsup = '{$id_rel_sup}' where idutente = '{$id_utente_mod}' and id{$rel_sing} = '{$num_n_rel}' ");
                    }
                }
                # fine elseif ($id_rel_sup)
            }
            # fine for $num1
            unlock_tabelle($tabelle_lock);
            echo "<br></div>\n<script type=\"text/javascript\">\n<!--\nvar avanz = document.getElementById('avanz_{$rel_plur}');\navanz.style.display = 'none';\n-->\n</script>\n";
            switch ($rel_sing) {
                case "regione":
                    if ($aggiungi_rel and $pag) {
                        echo mex("Nuova regione/provincia aggiunta", $pag) . ".<br>";
                    }
                    if ($rel_predefinite and $pag) {
                        echo mex("Regioni/provincie predefinite ripristinate", $pag) . ".<br>";
                    }
                    if ($elimina_tutte_rel and $pag) {
                        echo mex("Regioni/provincie cancellate", $pag) . ".<br>";
                    }
                    if ($importa_rel and $pag) {
                        echo mex("Regioni/provincie importate", $pag) . ".<br>";
                    }
                    break;
                case "documentoid":
                    if ($aggiungi_rel and $pag) {
                        echo mex("Nuovo tipo di documento di identità aggiunto", $pag) . ".<br>";
                    }
                    if ($rel_predefinite and $pag) {
                        echo mex("Tipi di documento di identità predefiniti ripristinati", $pag) . ".<br>";
                    }
                    if ($elimina_tutte_rel and $pag) {
                        echo mex("Tipi di documento di identità cancellati", $pag) . ".<br>";
                    }
                    if ($importa_rel and $pag) {
                        echo mex("Tipi di documento di identità importati", $pag) . ".<br>";
                    }
                    break;
                case "citta":
                    $rel_sing = "città";
                    $rel_plur = "città";
                default:
                    if ($aggiungi_rel and $pag) {
                        echo mex("Nuova {$rel_sing} aggiunta", $pag) . ".<br>";
                    }
                    if ($rel_predefinite and $pag) {
                        echo mex(ucfirst($rel_plur) . " predefinite ripristinate", $pag) . ".<br>";
                    }
                    if ($elimina_tutte_rel and $pag) {
                        echo mex(ucfirst($rel_plur) . " cancellate", $pag) . ".<br>";
                    }
                    if ($importa_rel and $pag) {
                        echo mex(ucfirst($rel_plur) . " importate", $pag) . ".<br>";
                    }
            }
            # fine switch ($rel_sing)
            unset($lista_rel);
            unset($cod_rel);
            unset($cod2_rel);
            unset($cod3_rel);
            unset($cod_rel_sup);
            unset($rel_esistente);
            unset($id_esistente);
            unset($cod_esistente);
            unset($rel_esistente2);
            unset($idsup_esistente2);
        }
        # fine if (!$aggiungi_rel or str_replace(" ","",$nuova_rel))
    }
    # fine if ($aggiungi_rel or $rel_predefinite or...
}
function esegui_modifiche_prenotazione(&$inserire, &$cancellata, $id_prenota_int, $id_prenota_idpr, $num_id_prenota, $id_transazione, $id_sessione, $anno, $id_nuovo_utente_inserimento, $n_stima_checkin, $n_met_paga_caparra, $n_origine_prenota, $n_pagato, $n_confermato, $tipo_commento, $n_commento, $n_cancella_commento, $tableprenota_da_aggiornare, $tipo_sposta, $dati_da_anno_prec, $prenota_in_anno_succ, $tra_anni, $PHPR_TAB_PRE)
{
    global $id_utente, $priv_mod_checkin, $attiva_regole1_consentite, $regole1_consentite, $attiva_tariffe_consentite, $tariffe_consentite_vett, $priv_mod_date, $priv_ins_periodi_passati, $priv_mod_commento, $priv_mod_sconto, $priv_mod_caparra, $priv_mod_pagato, $priv_mod_orig_prenota, $d_commento, $cassa_pagamenti;
    global $dati_ca, $d_id_utente_inserimento_idpr, $d_appartamento_idpr, $d_id_data_inizio_idpr, $d_nome_tariffa_idpr, $d_app_eliminati_costi_idpr, $d_checkin_idpr, $d_checkout_idpr, $d_prenota_comp_idpr, $fineperiodo_orig;
    global $id_prenota_orig, $tableperiodi_orig, $tableprenota_orig, $tablecostiprenota_orig, $tableperiodi_prec, $tableprenota_prec, $tablecostiprenota_prec, $stile_data;
    $pag = "modifica_prenota.php";
    $tablenometariffe = $PHPR_TAB_PRE . "ntariffe" . $anno;
    $tableprenota = $PHPR_TAB_PRE . "prenota" . $anno;
    $tableperiodi = $PHPR_TAB_PRE . "periodi" . $anno;
    $tableregole = $PHPR_TAB_PRE . "regole" . $anno;
    $tablesoldi = $PHPR_TAB_PRE . "soldi" . $anno;
    $tableappartamenti = $PHPR_TAB_PRE . "appartamenti";
    $tableclienti = $PHPR_TAB_PRE . "clienti";
    $tablepersonalizza = $PHPR_TAB_PRE . "personalizza";
    $tabletransazioni = $PHPR_TAB_PRE . "transazioni";
    $tableutenti = $PHPR_TAB_PRE . "utenti";
    $tablecostiprenota = $PHPR_TAB_PRE . "costiprenota" . $anno;
    $tablerelinventario = $PHPR_TAB_PRE . "relinventario";
    $tablecache = $PHPR_TAB_PRE . "cache";
    $tablecosti = $PHPR_TAB_PRE . "costi" . $anno;
    $file_interconnessioni = C_DATA_PATH . "/dati_interconnessioni.php";
    if ($tableprenota_da_aggiornare == "SI") {
        if (@is_file($file_interconnessioni)) {
            include $file_interconnessioni;
            if (@is_array($ic_present)) {
                $dati_transaz = recupera_dati_transazione($id_transazione, $id_sessione, $anno, "SI", $tipo_transaz);
                if ($tipo_transaz == "mod_p" and risul_query($dati_transaz, 0, 'dati_transazione11') == "SI") {
                    unset($interconnection_name);
                    $interconn_dir = opendir("./includes/interconnect/");
                    while ($mod_ext = readdir($interconn_dir)) {
                        if ($mod_ext != "." and $mod_ext != ".." and @is_dir("./includes/interconnect/{$mod_ext}")) {
                            include "./includes/interconnect/{$mod_ext}/name.php";
                            if ($ic_present[$interconnection_name] == "SI") {
                                include "./includes/interconnect/{$mod_ext}/functions_import.php";
                                $funz_import_reservations = "import_reservations_" . $interconnection_name;
                                $id_utente_origi = $id_utente;
                                $id_utente = 1;
                                $funz_import_reservations("", "", $file_interconnessioni, $anno, $PHPR_TAB_PRE, 2, $id_utente, $HOSTNAME);
                                $id_utente = $id_utente_origi;
                            }
                            # fine if ($ic_present[$interconnection_name] == "SI")
                        }
                        # fine if ($modello_ext != "." and $modello_ext != ".." and...
                    }
                    # fine while ($mod_ext = readdir($interconn_dir))
                    closedir($interconn_dir);
                }
                # fine if ($tipo_transaz == "mod_p" and risul_query($dati_transazione,0,'dati_transazione11') == "SI")
            }
            # fine if (@is_array($ic_present))
        }
        # fine if (@is_file($file_interconnessioni))
        $tableprenota_da_aggiornare = "";
    }
    # fine if ($tableprenota_da_aggiornare == "SI")
    if ($dati_da_anno_prec == "SI" or $prenota_in_anno_succ) {
        if (@is_file($file_interconnessioni)) {
            $tabelle_lock = array($tableprenota_prec, $tableprenota_orig, $tablecostiprenota_prec, $tablecostiprenota_orig, $tablerelinventario, $tabletransazioni, $tablecache);
        } else {
            $tabelle_lock = array($tableprenota_prec, $tableprenota_orig, $tablecostiprenota_prec, $tablecostiprenota_orig, $tablerelinventario, $tabletransazioni);
        }
        $altre_tab_lock = array($tablenometariffe, $tableperiodi_prec, $tableperiodi_orig, $tableappartamenti, $tableregole, $tablepersonalizza, $tableutenti);
    } else {
        if (@is_file($file_interconnessioni)) {
            $tabelle_lock = array($tableprenota, $tablecostiprenota, $tablerelinventario, $tabletransazioni, $tablecache);
        } else {
            $tabelle_lock = array($tableprenota, $tablecostiprenota, $tablerelinventario, $tabletransazioni);
        }
        $altre_tab_lock = array($tablenometariffe, $tableperiodi, $tableappartamenti, $tableregole, $tablepersonalizza, $tableutenti);
    }
    # fine else if ($dati_da_anno_prec == "SI")
    $tabelle_lock = lock_tabelle($tabelle_lock, $altre_tab_lock);
    $dati_transazione = recupera_dati_transazione($id_transazione, $id_sessione, $anno, "NO", $tipo_transazione);
    if ($tipo_transazione != "mod_p") {
        $inserire = "NO";
    } else {
        if ("," . $id_prenota_int . "," != risul_query($dati_transazione, 0, 'dati_transazione1')) {
            $inserire = "NO";
        }
    }
    if ($inserire != "NO") {
        $d_data_inserimento = risul_query($dati_transazione, 0, 'dati_transazione2');
        $d_host_inserimento = risul_query($dati_transazione, 0, 'dati_transazione3');
        $n_costo_tot_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione4'));
        $n_inizioperiodo = risul_query($dati_transazione, 0, 'dati_transazione5');
        $n_fineperiodo = risul_query($dati_transazione, 0, 'dati_transazione6');
        $n_appartamento_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione7'));
        $n_assegnazioneapp_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione8'));
        $n_lista_app_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione9'));
        $n_numpersone_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione10'));
        $tableprenota_da_aggiornare = risul_query($dati_transazione, 0, 'dati_transazione11');
        $n_nometipotariffa_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione12'));
        $n_costo_tariffa_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione13'));
        $costi_aggiuntivi_modificati_int_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione14'));
        $costi_aggiuntivi_da_inserire_int_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione15'));
        $n_sconto_caparra_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione16'));
        unset($n_sconto_idpr);
        unset($n_caparra_idpr);
        unset($n_commissioni_idpr);
        for ($num_idpr = 0; $num_idpr < $num_id_prenota; $num_idpr++) {
            $id_prenota = $id_prenota_idpr[$num_idpr];
            if ($tipo_sposta == "fisso" and strcmp($n_appartamento_idpr[$id_prenota], "")) {
                $n_assegnazioneapp_idpr[$id_prenota] = "k";
            }
            $n_sconto = explode("#@&", $n_sconto_caparra_idpr[$id_prenota]);
            if (strcmp($n_sconto[1], "")) {
                $n_caparra = (double) $n_sconto[1];
            } else {
                $n_caparra = "";
            }
            if (strcmp($n_sconto[2], "")) {
                $n_commissioni = (double) $n_sconto[2];
            } else {
                $n_commissioni = "";
            }
            if (strcmp($n_sconto[0], "")) {
                $n_sconto = (double) $n_sconto[0];
            } else {
                $n_sconto = "";
            }
            $n_sconto_idpr[$id_prenota] = $n_sconto;
            $n_caparra_idpr[$id_prenota] = $n_caparra;
            $n_commissioni_idpr[$id_prenota] = $n_commissioni;
        }
        # fine for $num_idpr
        $n_tariffesettimanali_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione17'));
        $id_per_corr_finto = (string) risul_query($dati_transazione, 0, 'dati_transazione18');
        $prenota_comp_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione19'));
        $n_app_eliminati_costi_idpr = unserialize(risul_query($dati_transazione, 0, 'dati_transazione20'));
        if (get_magic_quotes_gpc()) {
            $n_pagato = stripslashes($n_pagato);
            $n_confermato = stripslashes($n_confermato);
        }
        # fine if (get_magic_quotes_gpc())
        $n_pagato_idpr = unserialize($n_pagato);
        $n_confermato_idpr = unserialize($n_confermato);
        esegui_query("delete from {$tabletransazioni} where  idtransazioni = '{$id_transazione}' and idsessione = '{$id_sessione}'");
        if ($tableprenota_da_aggiornare) {
            $spostamenti = risul_query($dati_transazione, 0, 'spostamenti');
            $spostamenti = explode(",", $spostamenti);
        }
        # fine if ($tableprenota_da_aggiornare)
        unset($dati_prenota_idpr);
        unset($beniinv_presenti);
        unset($num_ripetizioni_costo_mod_idpr);
        unset($num_ripetizioni_costo_ins_idpr);
        unset($n_tipotariffa_idpr);
        $d_data_inserimento_idpr = explode(",", $d_data_inserimento);
        $d_host_inserimento_idpr = explode(",", $d_host_inserimento);
        if (get_magic_quotes_gpc()) {
            $n_met_paga_caparra = stripslashes($n_met_paga_caparra);
        }
        $n_met_paga_caparra = htmlspecialchars($n_met_paga_caparra);
        for ($num_idpr = 0; $num_idpr < $num_id_prenota; $num_idpr++) {
            $id_prenota = $id_prenota_idpr[$num_idpr];
            $d_checkin = $d_checkin_idpr[$id_prenota];
            $d_id_data_inizio = $d_id_data_inizio_idpr[$id_prenota];
            $n_costo_tot = $n_costo_tot_idpr[$id_prenota];
            $n_appartamento = $n_appartamento_idpr[$id_prenota];
            $n_assegnazioneapp = $n_assegnazioneapp_idpr[$id_prenota];
            $n_lista_app = $n_lista_app_idpr[$id_prenota];
            $n_numpersone = $n_numpersone_idpr[$id_prenota];
            $n_nometipotariffa = $n_nometipotariffa_idpr[$id_prenota];
            $n_costo_tariffa = $n_costo_tariffa_idpr[$id_prenota];
            $costi_aggiuntivi_modificati_int = $costi_aggiuntivi_modificati_int_idpr[$id_prenota];
            $costi_aggiuntivi_da_inserire_int = $costi_aggiuntivi_da_inserire_int_idpr[$id_prenota];
            $n_sconto = $n_sconto_idpr[$id_prenota];
            $n_caparra = $n_caparra_idpr[$id_prenota];
            $n_commissioni = $n_commissioni_idpr[$id_prenota];
            $n_tariffesettimanali = $n_tariffesettimanali_idpr[$id_prenota];
            $prenota_comp = $prenota_comp_idpr[$id_prenota];
            $n_pagato = $n_pagato_idpr[$id_prenota];
            $n_confermato = $n_confermato_idpr[$id_prenota];
            global ${"dati_cap" . $id_prenota}, ${"metodo_pagamento" . $id_prenota};
            $dati_cap = ${"dati_cap" . $id_prenota};
            unset($num_costi_presenti);
            $dati_prenota_idpr[$id_prenota] = esegui_query("select * from {$tableprenota} where idprenota = '{$id_prenota}' and idclienti != '0'");
            $num_dati_prenota = numlin_query($dati_prenota_idpr[$id_prenota]);
            if ($num_dati_prenota == 0) {
                $inserire = "NO";
                $cancellata = "SI";
            } else {
                $n_data_inserimento = risul_query($dati_prenota_idpr[$id_prenota], 0, 'datainserimento');
                $n_host_inserimento = risul_query($dati_prenota_idpr[$id_prenota], 0, 'hostinserimento');
                if ($n_data_inserimento != $d_data_inserimento_idpr[$num_idpr] or $n_host_inserimento != $d_host_inserimento_idpr[$num_idpr]) {
                    $inserire = "NO";
                    $cancellata = "SI";
                    $inizioperiodo = "";
                    $fineperiodo = "";
                }
                # fine if ($n_data_inserimento != $d_data_inserimento_idpr[$num_idpr] or ...
                if ($n_appartamento != "") {
                    $appartamento = $n_appartamento;
                } else {
                    $appartamento = risul_query($dati_prenota_idpr[$id_prenota], 0, 'idappartamenti');
                }
                if ($n_numpersone != "") {
                    $numpersone = $n_numpersone;
                } else {
                    $numpersone = risul_query($dati_prenota_idpr[$id_prenota], 0, 'num_persone');
                }
                if (!$numpersone) {
                    $numpersone = 0;
                }
                if ($n_assegnazioneapp != "") {
                    $assegnazioneapp = $n_assegnazioneapp;
                } else {
                    $assegnazioneapp = risul_query($dati_prenota_idpr[$id_prenota], 0, 'assegnazioneapp');
                }
                if ($n_lista_app != "") {
                    $lista_app = $n_lista_app;
                } else {
                    $lista_app = risul_query($dati_prenota_idpr[$id_prenota], 0, 'app_assegnabili');
                }
                if ($n_inizioperiodo != "") {
                    $inizioperiodo = $n_inizioperiodo;
                } else {
                    $inizioperiodo = risul_query($dati_prenota_idpr[$id_prenota], 0, 'iddatainizio');
                }
                if ($n_fineperiodo != "") {
                    $fineperiodo = $n_fineperiodo;
                } else {
                    $fineperiodo = risul_query($dati_prenota_idpr[$id_prenota], 0, 'iddatafine');
                }
            }
            # fine else if ($num_dati_prenota == 0)
            if ($n_stima_checkin) {
                $n_stima_checkin = aggslashdb($n_stima_checkin);
                if ($priv_mod_checkin != "s") {
                    $inserire = "NO";
                }
                if (!preg_match("/[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:00/", $n_stima_checkin)) {
                    $inserire = "NO";
                } else {
                    $id_stima_checkin = esegui_query("select idperiodi from {$tableperiodi} where datainizio <= '" . substr($n_stima_checkin, 0, 10) . "' and datafine > '" . substr($n_stima_checkin, 0, 10) . "' ");
                    if (numlin_query($id_stima_checkin) == 1) {
                        $id_stima_checkin = risul_query($id_stima_checkin, 0, 'idperiodi');
                        if ($id_stima_checkin > $fineperiodo + 1) {
                            $inserire = "NO";
                        }
                        if ($id_stima_checkin < $inizioperiodo) {
                            $inserire = "NO";
                        }
                    } else {
                        $inserire = "NO";
                    }
                    if ($d_checkin) {
                        $inserire = "NO";
                    }
                }
                # fine else if (!preg_match("/[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:00/",$n_stima_checkin))
            }
            # fine if ($n_stima_checkin)
            $appartamento_esistente = esegui_query("select idappartamenti,maxoccupanti from {$tableappartamenti} where idappartamenti = '{$appartamento}'");
            if (numlin_query($appartamento_esistente) != 1 and $n_appartamento) {
                $inserire = "NO";
            } else {
                $maxoccupanti = risul_query($appartamento_esistente, 0, 'maxoccupanti');
                if ($maxoccupanti and $numpersone > $maxoccupanti and $n_numpersone) {
                    $inserire = "NO";
                }
            }
            # fine else if (numlin_query($appartamento_esistente) != 1)
            $appartamento_chiuso = esegui_query("select idregole from {$tableregole} where iddatainizio <= '{$fineperiodo}' and iddatafine >= '{$inizioperiodo}' and app_agenzia = '{$appartamento}' and motivazione2 = 'x' ");
            if (numlin_query($appartamento_chiuso)) {
                $inserire = "NO";
            }
            if ($assegnazioneapp == "c" and str_replace("," . $appartamento . ",", "", "," . $lista_app . ",") == "," . $lista_app . "," and ($n_appartamento or $n_assegnazioneapp or $n_lista_app)) {
                $inserire = "NO";
            }
            if ($attiva_regole1_consentite == "s" and ($n_appartamento != "" or $n_assegnazioneapp != "" or $n_lista_app != "")) {
                unset($appartameti_in_lista);
                if ($assegnazioneapp != "k" and $assegnazioneapp != "c") {
                    $inserire = "NO";
                }
                if ($assegnazioneapp == "k") {
                    $appartameti_in_lista[0] = $appartamento;
                }
                if ($assegnazioneapp == "c") {
                    $appartameti_in_lista = explode(",", $lista_app);
                }
                for ($n_lista = 0; $n_lista < count($appartameti_in_lista); $n_lista++) {
                    $appartamento_lista = $appartameti_in_lista[$n_lista];
                    $motivazioni_regola1 = esegui_query("select motivazione,iddatainizio,iddatafine from {$tableregole} where iddatainizio <= '{$fineperiodo}' and iddatafine >= '{$inizioperiodo}' and app_agenzia = '{$appartamento_lista}' and (motivazione2 != 'x' or motivazione2 is NULL) order by iddatainizio");
                    if (numlin_query($motivazioni_regola1) == 0) {
                        $inserire = "NO";
                    } else {
                        unset($motivazioni_consentite);
                        for ($num2 = 0; $num2 < count($regole1_consentite); $num2++) {
                            $motivazioni_consentite[$regole1_consentite[$num2]] = "SI";
                        }
                        $iddatainizio_regole_tot = risul_query($motivazioni_regola1, 0, 'iddatainizio');
                        $iddatafine_regole_tot = risul_query($motivazioni_regola1, 0, 'iddatafine');
                        $motivazione = risul_query($motivazioni_regola1, 0, 'motivazione');
                        if (!$motivazione) {
                            $motivazione = " ";
                        }
                        if (!$motivazioni_consentite[$motivazione]) {
                            $inserire = "NO";
                        }
                        for ($num2 = 1; $num2 < numlin_query($motivazioni_regola1); $num2++) {
                            $motivazione = risul_query($motivazioni_regola1, $num2, 'motivazione');
                            if (!$motivazione) {
                                $motivazione = " ";
                            }
                            if (!$motivazioni_consentite[$motivazione]) {
                                $inserire = "NO";
                            }
                            $iddatainizio_regola = risul_query($motivazioni_regola1, $num2, 'iddatainizio');
                            if ($iddatainizio_regola == $iddatafine_regole_tot + 1) {
                                $iddatafine_regole_tot = risul_query($motivazioni_regola1, $num2, 'iddatafine');
                            } else {
                                $inserire = "NO";
                            }
                        }
                        # fine for $num2
                        if ($iddatainizio_regole_tot > $inizioperiodo or $iddatafine_regole_tot < $fineperiodo) {
                            $inserire = "NO";
                        }
                    }
                    # fine else if (numlin_query($motivazioni_regola1) == 0)
                }
                # fine for $n_lista
            }
            # fine if ($attiva_regole1_consentite == "s" and...
            if ($dati_da_anno_prec == "SI") {
                passa_var_a_anno_prec($id_prenota, $tableperiodi, $tableprenota, $tablecostiprenota, $d_id_data_inizio, $d_id_data_fine, $n_fineperiodo, $inizioperiodo, $fineperiodo, $lunghezza_periodo, $dati_prenota_modifica);
            }
            if ($n_nometipotariffa != "") {
                $trovata_tariffa = "NO";
                $dati_tariffe = dati_tariffe($tablenometariffe, "", "", $tableregole);
                for ($numtariffa = 1; $numtariffa <= $dati_tariffe['num']; $numtariffa++) {
                    $tariffa = "tariffa" . $numtariffa;
                    $nometariffa = $dati_tariffe[$tariffa]['nome'];
                    if ($n_nometipotariffa == $tariffa or $n_nometipotariffa == $nometariffa) {
                        $trovata_tariffa = "SI";
                        $n_tipotariffa = $tariffa;
                        $n_tipotariffa_idpr[$id_prenota] = $n_tipotariffa;
                    }
                    # fine if ($n_nometipotariffa == $tariffa or $n_nometipotariffa == $nometariffa)
                }
                # fine for $numtariffa
                if ($attiva_tariffe_consentite == "s" and $tariffe_consentite_vett[substr($n_tipotariffa, 7)] != "SI" and $n_nometipotariffa != $d_nome_tariffa_idpr[$id_prenota] or $trovata_tariffa == "NO") {
                    $inserire = "NO";
                }
                for ($num2 = $inizioperiodo; $num2 <= $fineperiodo; $num2++) {
                    $rigasettimana = esegui_query("select * from {$tableperiodi} where idperiodi = '{$num2}' ");
                    $esistetariffa = risul_query($rigasettimana, 0, $n_tipotariffa);
                    $esistetariffap = risul_query($rigasettimana, 0, $n_tipotariffa . "p");
                    if ((!strcmp($esistetariffa, "") or $esistetariffa < 0) and (!strcmp($esistetariffap, "") or $esistetariffap < 0)) {
                        $inserire = "NO";
                    }
                    if ($n_nometipotariffa != $d_nome_tariffa_idpr[$id_prenota] and $dati_tariffe[$n_tipotariffa]['chiusa'][$num2]) {
                        $inserire = "NO";
                    }
                }
                # fine for $num2
            }
            # fine if ($n_nometipotariffa != "")
            if ($priv_mod_date != "s" and ($n_inizioperiodo != "" or $n_fineperiodo != "")) {
                $inserire = "NO";
            }
            if ($priv_ins_periodi_passati != "s" and $inizioperiodo < $d_id_data_inizio) {
                $id_periodo_corrente = calcola_id_periodo_corrente($anno);
                if ($id_periodo_corrente >= $inizioperiodo) {
                    $inserire = "NO";
                }
            }
            # fine if ($priv_ins_periodi_passati != "s" and $inizioperiodo < $d_id_data_inizio)
            #if ($n_numpersone != "" and $priv_mod_num_persone != "s") $inserire = "NO";
            if ($n_numpersone and controlla_num_pos($n_numpersone) != "SI") {
                $inserire = "NO";
            }
            if ($priv_mod_commento != "s" and ($n_commento != "" or $n_cancella_commento)) {
                $inserire = "NO";
            }
            if (strcmp($n_sconto, "") and ($priv_mod_sconto != "s" or controlla_soldi($n_sconto) == "NO")) {
                $inserire = "NO";
            }
            if (strcmp($n_caparra, "")) {
                if ($priv_mod_caparra != "s" or controlla_soldi($n_caparra, "SI") == "NO") {
                    $inserire = "NO";
                }
                if ($n_caparra > $n_costo_tot) {
                    $inserire = "NO";
                }
            }
            # fine if (strcmp($n_caparra,""))
            if (strcmp($n_commissioni, "") and ($priv_mod_caparra != "s" or controlla_soldi($n_commissioni, "SI") == "NO")) {
                $inserire = "NO";
            }
            if ($costi_aggiuntivi_modificati_int) {
                $costi_aggiuntivi_modificati = explode("#@&", $costi_aggiuntivi_modificati_int);
                for ($numca = 0; $numca < $dati_cap['num']; $numca++) {
                    $num_costo_mod = "NO";
                    for ($num2 = 0; $num2 < count($costi_aggiuntivi_modificati); $num2++) {
                        $costo_agg_modificato = explode("#?&", $costi_aggiuntivi_modificati[$num2]);
                        if ($costo_agg_modificato[0] == $dati_cap[$numca]['id']) {
                            $num_costo_mod = $num2;
                        }
                    }
                    # fine for $num2
                    $costo_agg_modificato = explode("#?&", $costi_aggiuntivi_modificati[$num_costo_mod]);
                    if ($costo_agg_modificato[1] != "cancella") {
                        $num_costo = $dati_ca['id'][$dati_cap[$numca]['idntariffe']];
                        if ($dati_ca[$num_costo]['id'] == $dati_cap[$numca]['idntariffe'] and $dati_cap[$numca]['nome'] == $dati_ca[$num_costo]['nome'] and $dati_ca[$num_costo]['numlimite']) {
                            $num_limite = (string) $dati_ca[$num_costo]['numlimite'];
                        } else {
                            $num_limite = (string) 0;
                        }
                        if ((string) $num_costo_mod != (string) "NO") {
                            $settimane_costo = $costo_agg_modificato[1];
                            $moltiplica = $costo_agg_modificato[2];
                        } else {
                            $settimane_costo = $dati_cap[$numca]['settimane'];
                            $moltiplica = $dati_cap[$numca]['moltiplica_costo'];
                        }
                        # fine else if ((string) $num_costo_mod != (string) "NO")
                        if (controlla_num_limite_costo($tablecostiprenota, $tableprenota, $dati_cap, $numca, $num_costi_presenti, $inizioperiodo, $fineperiodo, $settimane_costo, $moltiplica, $num_limite, $tra_anni) == "NO") {
                            $inserire = "NO";
                        }
                        if (str_replace(",{$appartamento},", "", "," . $dati_cap[$numca]['appincompatibili'] . ",") != "," . $dati_cap[$numca]['appincompatibili'] . ",") {
                            $inserire = "NO";
                        }
                    }
                    # fine if ($costo_agg_modificato[1] != "cancella")
                    if ($dati_cap[$numca]['tipo_beniinv']) {
                        if ($costo_agg_modificato[1] != "cancella") {
                            $num_ripetizioni_costo = "";
                        } else {
                            $num_ripetizioni_costo = "0";
                        }
                        $risul = controlla_beni_inventario_costo($tablerelinventario, $dati_cap, $numca, $beniinv_presenti, $num_ripetizioni_costo, "SI", $inizioperiodo, $fineperiodo, $settimane_costo, $moltiplica, $appartamento);
                        if ($risul != "SI") {
                            $inserire = "NO";
                        }
                        if ($num_ripetizioni_costo != $dati_cap[$numca]['beniinv_ripeti']) {
                            $beniinv_vett = explode(";", $dati_cap[$numca]['beniinv_orig']);
                            $num_ripetizioni_costo_mod_idpr[$id_prenota][$num_costo_mod] = $num_ripetizioni_costo . substr($dati_cap[$numca]['beniinv_orig'], strlen($beniinv_vett[0]));
                        }
                        # fine if ($num_ripetizioni_costo != $dati_cap[$numca]['beniinv_ripeti'])
                    }
                    # fine if ($dati_cap[$numca]['tipo_beniinv'])
                }
                # fine for $numca
            }
            # fine if ($costi_aggiuntivi_modificati_int)
            if ($costi_aggiuntivi_da_inserire_int) {
                $costi_aggiuntivi_da_inserire = explode("#@&", $costi_aggiuntivi_da_inserire_int);
                for ($num2 = 0; $num2 < count($costi_aggiuntivi_da_inserire); $num2++) {
                    $costo_agg_da_inserire = explode("#?&", $costi_aggiuntivi_da_inserire[$num2]);
                    $num_costo = $dati_ca['id'][$costo_agg_da_inserire[9]];
                    if ($costo_agg_da_inserire[9] != $dati_ca[$num_costo]['id'] and $costo_agg_da_inserire[9] != "-1") {
                        $inserire = "NO";
                    } elseif (controlla_num_limite_costo($tablecostiprenota, $tableprenota, $dati_ca, $num_costo, $num_costi_presenti, $inizioperiodo, $fineperiodo, $costo_agg_da_inserire[6], $costo_agg_da_inserire[7], "", $tra_anni) == "NO") {
                        $inserire = "NO";
                    }
                    if (str_replace(",{$appartamento},", "", "," . $dati_ca[$num_costo]['appincompatibili'] . ",") != "," . $dati_ca[$num_costo]['appincompatibili'] . ",") {
                        $inserire = "NO";
                    }
                    if ($dati_ca[$num_costo]['tipo_beniinv']) {
                        $num_ripetizioni_costo_ins_idpr[$id_prenota][$num2] = "";
                        $risul = controlla_beni_inventario_costo($tablerelinventario, $dati_ca, $num_costo, $beniinv_presenti, $num_ripetizioni_costo_ins_idpr[$id_prenota][$num2], "SI", $inizioperiodo, $fineperiodo, $costo_agg_da_inserire[6], $costo_agg_da_inserire[7], $appartamento);
                        if ($risul != "SI") {
                            $inserire = "NO";
                        }
                    }
                    # fine if ($dati_ca[$num_costo]['tipo_beniinv'])
                }
                # fine for $num2
            }
            # fine if ($costi_aggiuntivi_da_inserire_int)
            if ($dati_da_anno_prec == "SI") {
                passa_var_a_anno_corr($id_prenota, $tableperiodi, $tableprenota, $tablecostiprenota, $d_id_data_inizio, $d_id_data_fine, $n_fineperiodo, $inizioperiodo, $fineperiodo, $lunghezza_periodo);
            }
            if ($priv_mod_caparra != "s" and $n_met_paga_caparra) {
                $inserire = "NO";
            }
            if ($n_met_paga_caparra or ${"metodo_pagamento" . $id_prenota}) {
                if (get_magic_quotes_gpc()) {
                    ${"metodo_pagamento" . $id_prenota} = stripslashes(${"metodo_pagamento" . $id_prenota});
                }
                ${"metodo_pagamento" . $id_prenota} = htmlspecialchars(${"metodo_pagamento" . $id_prenota});
                $metodi_pagamento = esegui_query("select valpersonalizza from {$tablepersonalizza} where idpersonalizza = 'metodi_pagamento' and idutente = '{$id_utente}'");
                $metodi_pagamento = risul_query($metodi_pagamento, 0, 'valpersonalizza');
                $metodi_pagamento = explode(",", $metodi_pagamento);
                if ($n_met_paga_caparra) {
                    $metodo_trovato = "NO";
                    for ($num1 = 0; $num1 < count($metodi_pagamento); $num1++) {
                        if ($metodi_pagamento[$num1] == $n_met_paga_caparra) {
                            $metodo_trovato = "SI";
                        }
                    }
                    if ($metodo_trovato == "NO") {
                        $inserire = "NO";
                    }
                }
                # fine if ($n_met_paga_caparra)
                if (${"metodo_pagamento" . $id_prenota}) {
                    $metodo_trovato = "NO";
                    for ($num1 = 0; $num1 < count($metodi_pagamento); $num1++) {
                        if ($metodi_pagamento[$num1] == ${"metodo_pagamento" . $id_prenota}) {
                            $metodo_trovato = "SI";
                        }
                    }
                    if ($metodo_trovato == "NO") {
                        $inserire = "NO";
                    }
                }
                # fine if (${"metodo_pagamento".$id_prenota})
            }
            # fine if ($n_met_paga_caparra or ${"metodo_pagamento".$id_prenota})
            if ($priv_mod_pagato == "n" and $n_confermato != "") {
                $inserire = "NO";
            }
            if ($n_confermato and $n_confermato != "S" and $n_confermato != "N") {
                $inserire = "NO";
            }
            if ($priv_mod_pagato != "s" and $n_pagato != "") {
                $inserire = "NO";
            }
            if ($n_pagato and controlla_soldi($n_pagato, "SI") == "NO" or $n_pagato > $n_costo_tot) {
                $inserire = "NO";
            }
            if ($inserire == "NO") {
                break;
            }
        }
        # fine for $num_idpr
        if ($priv_mod_orig_prenota != "s" and $n_origine_prenota) {
            $inserire = "NO";
        }
        if ($n_origine_prenota) {
            if (get_magic_quotes_gpc()) {
                $n_origine_prenota = stripslashes($n_origine_prenota);
            }
            $n_origine_prenota = htmlspecialchars($n_origine_prenota);
            $origini_prenota = esegui_query("select valpersonalizza from {$tablepersonalizza} where idpersonalizza = 'origini_prenota' and idutente = '{$id_utente}'");
            $origini_prenota = risul_query($origini_prenota, 0, 'valpersonalizza');
            $origini_prenota = explode(",", $origini_prenota);
            $origine_trovata = "NO";
            for ($num1 = 0; $num1 < count($origini_prenota); $num1++) {
                if ($origini_prenota[$num1] == $n_origine_prenota) {
                    $origine_trovata = "SI";
                }
            }
            if ($origine_trovata == "NO") {
                $inserire = "NO";
            }
        }
        # fine if ($n_origine_prenota)
        if ($id_nuovo_utente_inserimento != "" and $id_utente == 1) {
            $id_nuovo_utente_inserimento = aggslashdb($id_nuovo_utente_inserimento);
            $verifica_utente = esegui_query("select * from {$tableutenti} where idutenti = '{$id_nuovo_utente_inserimento}'");
            if (numlin_query($verifica_utente) != 1) {
                $inserire = "NO";
            }
        }
        # fine if ($id_nuovo_utente_inserimento != "" and $id_utente == 1)
        if ($n_commento != "") {
            if (get_magic_quotes_gpc()) {
                $n_commento = stripslashes($n_commento);
            }
            $n_commento = htmlspecialchars($n_commento);
        }
        # fine if ($n_commento != "")
    }
    # fine if ($inserire != "NO")
    if ($inserire != "NO") {
        # funzione: se ritorna $prenota_comp vuota sono tutte vicine
        function controlla_prenota_vicine(&$prenota_comp, $dati_app, $app_prenota_id)
        {
            if ($prenota_comp) {
                $prenota_comp_vett = explode(",", $prenota_comp);
                $num_prenota_comp = count($prenota_comp_vett);
                $prenota_comp = substr(str_replace("," . $prenota_comp_vett[0] . ",", ",", ",{$prenota_comp},"), 1, -1);
                $app_corr = $app_prenota_id[$prenota_comp_vett[0]];
                $num_vic = 0;
                for ($num1 = 1; $num1 < $num_prenota_comp; $num1++) {
                    $app_vicini = $dati_app["vicini"][$app_prenota_id[$prenota_comp_vett[$num1]]];
                    if (str_replace(",{$app_corr},", "", ",{$app_vicini},") != ",{$app_vicini},") {
                        $prenota_comp = substr(str_replace("," . $prenota_comp_vett[$num1] . ",", ",", ",{$prenota_comp},"), 1, -1);
                        $pren_vicina[$num_vic] = $prenota_comp_vett[$num1];
                        $num_vic++;
                    }
                    # fine (str_replace(",$app_corr,","",",$app_vicini,") != ",$app_vicini,")
                }
                # fine for $num1
                for ($num1 = 0; $num1 < $num_vic; $num1++) {
                    if (!$prenota_comp) {
                        break;
                    }
                    $prenota_comp = $pren_vicina[$num1] . "," . $prenota_comp;
                    controlla_prenota_vicine($prenota_comp, $dati_app, $app_prenota_id);
                }
                # fine for $num1
            }
            # fine if ($prenota_comp)
        }
        # fine function controlla_prenota_vicine
        # aggiorno le posizioni e faccio i controlli.
        if ($tableprenota_da_aggiornare) {
            if (!function_exists("tab_a_var")) {
                include "./includes/liberasettimane.php";
            }
            unset($limiti_var);
            unset($app_prenota_id);
            unset($app_orig_prenota_id);
            unset($inizio_prenota_id);
            unset($fine_prenota_id);
            unset($app_assegnabili_id);
            unset($prenota_in_app_sett);
            unset($dati_app);
            unset($profondita);
            if ($id_per_corr_finto != "") {
                $limiti_var['idperiodocorrente'] = $id_per_corr_finto;
            }
            $limiti_var['n_ini'] = 0;
            $max_periodo = esegui_query("select max(idperiodi) from {$tableperiodi}");
            $max_periodo = risul_query($max_periodo, 0, 0);
            $limiti_var['n_fine'] = $max_periodo;
            $minuti_durata_insprenota = esegui_query("select valpersonalizza_num from {$tablepersonalizza} where idpersonalizza = 'minuti_durata_insprenota' and idutente = '1'");
            $minuti_durata_insprenota = risul_query($minuti_durata_insprenota, 0, 'valpersonalizza_num');
            $limiti_var['lim_prenota_temp'] = aggslashdb(date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600 - $minuti_durata_insprenota * 60));
            esegui_query("delete from {$tableprenota} where idclienti = '0' and datainserimento < '" . $limiti_var['lim_prenota_temp'] . "'", "", 1);
            $profondita['iniziale'] = "";
            $profondita['attuale'] = 1;
            $max_prenota = esegui_query("select max(idprenota) from {$tableprenota}");
            if (numlin_query($max_prenota) != 0) {
                $tot_prenota = risul_query($max_prenota, 0, 0);
            } else {
                $tot_prenota = 0;
            }
            $profondita['tot_prenota_ini'] = $tot_prenota;
            $profondita['tot_prenota_attuale'] = $tot_prenota;
            tab_a_var($limiti_var, $app_prenota_id, $app_orig_prenota_id, $inizio_prenota_id, $fine_prenota_id, $app_assegnabili_id, $prenota_in_app_sett, $anno, $dati_app, $profondita, $PHPR_TAB_PRE . "prenota");
            # Sposto gli appartamenti presenti in $spostamenti se possibile
            for ($num_idpr = 0; $num_idpr < $num_id_prenota; $num_idpr++) {
                $id_prenota = $id_prenota_idpr[$num_idpr];
                for ($num1 = $inizio_prenota_id[$id_prenota]; $num1 <= $fine_prenota_id[$id_prenota]; $num1++) {
                    $prenota_in_app_sett[$app_prenota_id[$id_prenota]][$num1] = "";
                }
                # fine for $num1
            }
            # fine for $num_idpr
            $num_spostamenti = count($spostamenti);
            for ($num1 = 0; $num1 < $num_spostamenti; $num1++) {
                $idprenota_cambiata = $spostamenti[$num1];
                $app_cambiato = $spostamenti[$num1 + 1];
                $applicare_cambio[$num1] = "NO";
                if ($inizio_prenota_id[$idprenota_cambiata]) {
                    $applicare_cambio[$num1] = "SI";
                    if (!$app_assegnabili_id[$idprenota_cambiata]) {
                        $applicare_cambio[$num1] = "NO";
                    }
                    if ($app_assegnabili_id[$idprenota_cambiata] and $app_assegnabili_id[$idprenota_cambiata] != "v") {
                        $lista_app_assegnabili = "," . $app_assegnabili_id[$idprenota_cambiata] . ",";
                        if (str_replace("," . $app_cambiato . ",", "", $lista_app_assegnabili) == $lista_app_assegnabili) {
                            $applicare_cambio[$num1] = "NO";
                        }
                    }
                    # fine if ($app_assegnabili_id[$idprenota_cambiata] and...
                    if (str_replace("," . $app_cambiato . ",", "", $dati_app['lista']) == $dati_app['lista']) {
                        $applicare_cambio[$num1] = "NO";
                    }
                    if ($applicare_cambio[$num1] == "SI") {
                        for ($num2 = $inizio_prenota_id[$idprenota_cambiata]; $num2 <= $fine_prenota_id[$idprenota_cambiata]; $num2++) {
                            $prenota_in_app_sett[$app_prenota_id[$idprenota_cambiata]][$num2] = "";
                        }
                        # fine for $num2
                        $app_prenota_id[$idprenota_cambiata] = $app_cambiato;
                    }
                    # fine if ($applicare_cambio[$num1] == "SI")
                }
                # fine if ($inizio_prenota_id[$idprenota_cambiata])
                $num1++;
            }
            # fine for $num1
            for ($num1 = 0; $num1 < $num_spostamenti; $num1++) {
                $idprenota_cambiata = $spostamenti[$num1];
                if ($applicare_cambio[$num1] == "SI") {
                    for ($num2 = $inizio_prenota_id[$idprenota_cambiata]; $num2 <= $fine_prenota_id[$idprenota_cambiata]; $num2++) {
                        if ($prenota_in_app_sett[$app_prenota_id[$idprenota_cambiata]][$num2]) {
                            $inserire = "NO";
                        } else {
                            $prenota_in_app_sett[$app_prenota_id[$idprenota_cambiata]][$num2] = $idprenota_cambiata;
                        }
                    }
                    # fine for $num2
                    if ($inserire == "NO") {
                        break;
                    }
                }
                # fine if ($applicare_cambio[$num1] == "SI")
                $num1++;
            }
            # fine for $num1
            # Aggiorno la prenotazione e faccio i primi controlli sulla prenotazione modificata
            for ($num_idpr = 0; $num_idpr < $num_id_prenota; $num_idpr++) {
                $id_prenota = $id_prenota_idpr[$num_idpr];
                $n_appartamento = $n_appartamento_idpr[$id_prenota];
                $n_assegnazioneapp = $n_assegnazioneapp_idpr[$id_prenota];
                $n_lista_app = $n_lista_app_idpr[$id_prenota];
                $n_numpersone = $n_numpersone_idpr[$id_prenota];
                if ($n_appartamento != "") {
                    $app_prenota_id[$id_prenota] = $n_appartamento;
                }
                if ($n_inizioperiodo != "") {
                    $inizio_prenota_id[$id_prenota] = $n_inizioperiodo;
                }
                if ($n_fineperiodo != "") {
                    $fine_prenota_id[$id_prenota] = $n_fineperiodo;
                }
                for ($num1 = $inizio_prenota_id[$id_prenota]; $num1 <= $fine_prenota_id[$id_prenota]; $num1++) {
                    if ($prenota_in_app_sett[$app_prenota_id[$id_prenota]][$num1]) {
                        $inserire = "NO";
                    } else {
                        $prenota_in_app_sett[$app_prenota_id[$id_prenota]][$num1] = $id_prenota;
                    }
                }
                # fine for $num1
                if ($n_assegnazioneapp == "v") {
                    $app_assegnabili_id[$id_prenota] = $dati_app['lista'];
                }
                if ($n_assegnazioneapp == "k") {
                    $app_assegnabili_id[$id_prenota] = "";
                }
                if ($n_assegnazioneapp == "c" and $n_lista_app) {
                    $app_assegnabili_id[$id_prenota] = "," . $n_lista_app . ",";
                }
                $assegnazione_app = risul_query($dati_prenota_idpr[$id_prenota], 0, 'assegnazioneapp');
                if (!$n_assegnazioneapp and $assegnazione_app == "c" and $n_lista_app) {
                    $app_assegnabili_id[$id_prenota] = "," . $n_lista_app . ",";
                }
                if ($n_numpersone) {
                    $num_persone_prenota = $n_numpersone;
                } else {
                    $num_persone_prenota = risul_query($dati_prenota_idpr[$id_prenota], 0, 'num_persone');
                }
                if ($num_persone_prenota and $dati_app['maxocc'][$app_prenota_id[$id_prenota]] and $dati_app['maxocc'][$app_prenota_id[$id_prenota]] < $num_persone_prenota) {
                    $inserire = "NO";
                }
                if (str_replace("," . $app_prenota_id[$id_prenota] . ",", "", $dati_app['lista']) == $dati_app['lista']) {
                    $inserire = "NO";
                }
                if ($app_assegnabili_id[$id_prenota] and $app_assegnabili_id[$id_prenota] != "v") {
                    $lista_app_assegnabili = "," . $app_assegnabili_id[$id_prenota] . ",";
                    if (str_replace("," . $app_prenota_id[$id_prenota] . ",", "", $lista_app_assegnabili) == $lista_app_assegnabili) {
                        $inserire = "NO";
                    }
                }
                # fine if ($app_assegnabili_id[$id_prenota] and...
                if (str_replace("," . $app_prenota_id[$id_prenota] . ",", "", $dati_app['lista']) == $dati_app['lista']) {
                    $inserire = "NO";
                }
            }
            # fine for $num_idpr
            for ($num_idpr = 0; $num_idpr < $num_id_prenota; $num_idpr++) {
                $id_prenota = $id_prenota_idpr[$num_idpr];
                $d_appartamento = $d_appartamento_idpr[$id_prenota];
                $d_checkin = $d_checkin_idpr[$id_prenota];
                $d_checkout = $d_checkout_idpr[$id_prenota];
                $d_prenota_comp = $d_prenota_comp_idpr[$id_prenota];
                $prenota_comp = $prenota_comp_idpr[$id_prenota];
                $prenota_comp_copia = $prenota_comp;
                if ($prenota_comp_copia != "") {
                    $prenota_comp_copia = $id_prenota . "," . $prenota_comp_copia;
                }
                controlla_prenota_vicine($prenota_comp_copia, $dati_app, $app_prenota_id);
                if ($prenota_comp_copia) {
                    $inserire = "NO";
                }
                $prenota_comp_control = $prenota_comp;
                if ($d_prenota_comp and $prenota_comp_control) {
                    $prenota_comp_control .= ",";
                }
                $prenota_comp_control .= $d_prenota_comp;
                for ($num1 = 0; $num1 < $num_spostamenti; $num1++) {
                    $idprenota_cambiata = $spostamenti[$num1];
                    if ($app_assegnabili_id[0][$idprenota_cambiata]) {
                        if (str_replace(",{$idprenota_cambiata},", "", ",{$prenota_comp_control},") == ",{$prenota_comp_control},") {
                            $prenota_comp_copia = $app_assegnabili_id[0][$idprenota_cambiata];
                            if ($prenota_comp_copia != "") {
                                $prenota_comp_copia = $idprenota_cambiata . "," . $prenota_comp_copia;
                            }
                            controlla_prenota_vicine($prenota_comp_copia, $dati_app, $app_prenota_id);
                            if ($prenota_comp_copia) {
                                $inserire = "NO";
                            } else {
                                $prenota_comp_control .= "," . $app_assegnabili_id[0][$idprenota_cambiata];
                            }
                            if (substr($prenota_comp_control, 0, 1) == ",") {
                                $prenota_comp_control = substr($prenota_comp_control, 1);
                            }
                        }
                        # fine if (str_replace(",$idprenota_cambiata,","",",$prenota_comp_control,") == ",$prenota_comp_control,")
                    }
                    # fine if ($app_assegnabili_id[0][$idprenota_cambiata])
                }
                # fine for $num1
                if ($d_checkin and !$d_checkout and $app_prenota_id[$id_prenota] != $d_appartamento) {
                    $checkin_presente = esegui_query("select idprenota from {$tableprenota} where idappartamenti = '" . aggslashdb($app_prenota_id[$id_prenota]) . "' and checkin is not NULL and checkout is NULL");
                    if (numlin_query($checkin_presente) >= 1) {
                        $inserire = "NO";
                        echo mex("Non si è potuto spostare la prenotazione per la registrazione dell'entrata", $pag) . ".<br>";
                    }
                    # fine if (numlin_query($checkin_presente) >= 1)
                }
                # fine if ($d_checkin and !$d_checkout and...
            }
            # fine for $num_idpr
        }
        # fine if ($tableprenota_da_aggiornare)
    }
    # fine if ($inserire != "NO")
    if ($inserire != "NO" and $tableprenota_da_aggiornare) {
        for ($num_idpr = 0; $num_idpr < $num_id_prenota; $num_idpr++) {
            $id_prenota = $id_prenota_idpr[$num_idpr];
            if (strcmp($app_prenota_id[$id_prenota], "") and !strcmp($app_orig_prenota_id[$id_prenota], "")) {
                $app_orig_prenota_id[$id_prenota] = $app_prenota_id[$id_prenota] . "x";
            }
        }
        # fine for $num_idpr
        $risul_agg = aggiorna_tableprenota($app_prenota_id, $app_orig_prenota_id, $tableprenota);
        if (!$risul_agg) {
            $inserire = "NO";
        }
    }
    # fine if ($inserire != "NO" and $tableprenota_da_aggiornare)
    if ($inserire == "NO") {
        echo mex("La prenotazione", $pag) . " {$id_prenota} " . mex("<b>non è stata modificata</b> perchè la tabella prenotazioni è cambiata nel frattempo", $pag) . ".<br>";
        unlock_tabelle($tabelle_lock);
    } else {
        for ($num_idpr = 0; $num_idpr < $num_id_prenota; $num_idpr++) {
            $id_prenota = $id_prenota_idpr[$num_idpr];
            $d_id_utente_inserimento = $d_id_utente_inserimento_idpr[$id_prenota];
            $d_app_eliminati_costi = $d_app_eliminati_costi_idpr[$id_prenota];
            $d_prenota_comp = $d_prenota_comp_idpr[$id_prenota];
            $n_costo_tot = $n_costo_tot_idpr[$id_prenota];
            $n_appartamento = $n_appartamento_idpr[$id_prenota];
            $n_assegnazioneapp = $n_assegnazioneapp_idpr[$id_prenota];
            $n_lista_app = $n_lista_app_idpr[$id_prenota];
            $n_app_eliminati_costi = $n_app_eliminati_costi_idpr[$id_prenota];
            $n_numpersone = $n_numpersone_idpr[$id_prenota];
            $n_nometipotariffa = $n_nometipotariffa_idpr[$id_prenota];
            $n_costo_tariffa = $n_costo_tariffa_idpr[$id_prenota];
            $costi_aggiuntivi_modificati_int = $costi_aggiuntivi_modificati_int_idpr[$id_prenota];
            $costi_aggiuntivi_da_inserire_int = $costi_aggiuntivi_da_inserire_int_idpr[$id_prenota];
            $n_sconto = $n_sconto_idpr[$id_prenota];
            $n_caparra = $n_caparra_idpr[$id_prenota];
            $n_commissioni = $n_commissioni_idpr[$id_prenota];
            $n_tariffesettimanali = $n_tariffesettimanali_idpr[$id_prenota];
            $prenota_comp = $prenota_comp_idpr[$id_prenota];
            $n_pagato = $n_pagato_idpr[$id_prenota];
            $n_confermato = $n_confermato_idpr[$id_prenota];
            $id_utente_inserimento = $d_id_utente_inserimento;
            if ($id_nuovo_utente_inserimento != "" and $id_utente == 1) {
                esegui_query("update {$tableprenota} set utente_inserimento = '{$id_nuovo_utente_inserimento}' where idprenota = '{$id_prenota}' ");
                esegui_query("update {$tablecostiprenota} set utente_inserimento = '{$id_nuovo_utente_inserimento}' where idprenota = '{$id_prenota}' ");
                $id_utente_inserimento = $id_nuovo_utente_inserimento;
                if ($prenota_in_anno_succ) {
                    esegui_query("update {$tableprenota_orig} set utente_inserimento = '{$id_nuovo_utente_inserimento}' where idprenota = '{$id_prenota_orig}' ");
                    esegui_query("update {$tablecostiprenota_orig} set utente_inserimento = '{$id_nuovo_utente_inserimento}' where idprenota = '{$id_prenota_orig}' ");
                }
                # fine if ($prenota_in_anno_succ)
            }
            # fine if ($id_nuovo_utente_inserimento != "" and $id_utente == 1)
            if ($n_inizioperiodo != "") {
                esegui_query("update {$tableprenota} set iddatainizio = '{$n_inizioperiodo}' where idprenota = '{$id_prenota}' ");
            }
            # fine if ($n_inizioperiodo != "")
            if ($n_fineperiodo != "") {
                esegui_query("update {$tableprenota} set iddatafine = '{$n_fineperiodo}' where idprenota = '{$id_prenota}' ");
                if ($dati_da_anno_prec == "SI") {
                    passa_var_a_anno_prec($id_prenota, $tableperiodi, $tableprenota, $tablecostiprenota, $d_id_data_inizio, $d_id_data_fine, $n_fineperiodo, $inizioperiodo, $fineperiodo, $lunghezza_periodo, $dati_prenota_modifica);
                    esegui_query("update {$tableprenota} set iddatafine = '{$n_fineperiodo}' where idprenota = '{$id_prenota}' ");
                    passa_var_a_anno_corr($id_prenota, $tableperiodi, $tableprenota, $tablecostiprenota, $d_id_data_inizio, $d_id_data_fine, $n_fineperiodo, $inizioperiodo, $fineperiodo, $lunghezza_periodo);
                }
                # fine if ($dati_da_anno_prec == "SI")
                if ($prenota_in_anno_succ) {
                    $n_data_fine = esegui_query("select datafine from {$tableperiodi} where idperiodi = '{$n_fineperiodo}'");
                    $n_data_fine = risul_query($n_data_fine, 0, 'datafine');
                    $data_succ_esistente = esegui_query("select idperiodi from {$tableperiodi_orig} where datafine <= '{$n_data_fine}'");
                    if (numlin_query($data_succ_esistente) < 1) {
                        esegui_query("delete from {$tableprenota_orig} where idprenota = '{$id_prenota_orig}'");
                        esegui_query("delete from {$tablecostiprenota_orig} where idprenota = '{$id_prenota_orig}'");
                    }
                    # fine if (numlin_query($data_succ_esistente) < 1)
                }
                # fine if ($prenota_in_anno_succ)
            }
            # fine if ($n_fineperiodo != "")
            if ($n_stima_checkin) {
                esegui_query("update {$tableprenota} set checkout = '{$n_stima_checkin}' where idprenota = '{$id_prenota}' ");
            }
            # fine if ($n_stima_checkin)
            #if ($n_appartamento != "") {
            #esegui_query("update $tableprenota set idappartamenti = '$n_appartamento' where idprenota = '$id_prenota' ");
            #} # fine if ($n_appartamento != "")
            if ($n_assegnazioneapp != "") {
                esegui_query("update {$tableprenota} set assegnazioneapp = '{$n_assegnazioneapp}' where idprenota = '{$id_prenota}' ");
                if ($n_assegnazioneapp == "v" or $n_assegnazioneapp == "k") {
                    esegui_query("update {$tableprenota} set app_assegnabili = '' where idprenota = '{$id_prenota}' ");
                }
                # fine if ($n_assegnazioneapp == "v" ...)
            }
            # fine if ($n_assegnazioneapp != "")
            if ($n_lista_app != "") {
                esegui_query("update {$tableprenota} set app_assegnabili = '{$n_lista_app}' where idprenota = '{$id_prenota}' ");
            }
            # fine if ($n_lista_app != "")
            if ($d_prenota_comp != $prenota_comp) {
                esegui_query("update {$tableprenota} set idprenota_compagna = '{$prenota_comp}' where idprenota = '{$id_prenota}' ");
                if ($d_prenota_comp) {
                    $d_prenota_comp_vett = explode(",", $d_prenota_comp);
                    $num_d_prenota_comp = count($d_prenota_comp_vett);
                    for ($num1 = 0; $num1 < $num_d_prenota_comp; $num1++) {
                        $d_pren_comp = aggslashdb($d_prenota_comp_vett[$num1]);
                        if (str_replace(",{$d_pren_comp},", "", ",{$prenota_comp},") == ",{$prenota_comp},") {
                            esegui_query("update {$tableprenota} set idprenota_compagna = '' where idprenota = '{$d_pren_comp}' ");
                        }
                    }
                    # fine for $num1
                }
                # fine if ($d_prenota_comp)
                if ($prenota_comp) {
                    $prenota_comp_vett = explode(",", $prenota_comp);
                    $num_prenota_comp = count($prenota_comp_vett);
                    for ($num1 = 0; $num1 < $num_prenota_comp; $num1++) {
                        $pren_comp = aggslashdb($prenota_comp_vett[$num1]);
                        $prenota_comp2 = substr(str_replace(",{$pren_comp},", ",", ",{$prenota_comp},"), 1) . $id_prenota;
                        esegui_query("update {$tableprenota} set idprenota_compagna = '{$prenota_comp2}' where idprenota = '{$pren_comp}' ");
                    }
                    # fine for $num1
                }
                # fine if ($prenota_comp)
            }
            # fine if ($d_prenota_comp != $prenota_comp)
            if ($dati_da_anno_prec == "SI") {
                passa_var_a_anno_prec($id_prenota, $tableperiodi, $tableprenota, $tablecostiprenota, $d_id_data_inizio, $d_id_data_fine, $n_fineperiodo, $inizioperiodo, $fineperiodo, $lunghezza_periodo, $dati_prenota_modifica);
            }
            if ($n_numpersone != "") {
                esegui_query("update {$tableprenota} set num_persone = '{$n_numpersone}' where idprenota = '{$id_prenota}' ");
            }
            # fine if ($n_numpersone != "")
            if ($n_nometipotariffa != "") {
                if (substr($n_costo_tariffa, -1) == "p") {
                    $n_costo_tariffa = substr($n_costo_tariffa, 0, -1) . "#@&p";
                }
                $n_tariffa = aggslashdb($n_nometipotariffa) . "#@&" . $n_costo_tariffa;
                esegui_query("update {$tableprenota} set tariffa = '{$n_tariffa}' where idprenota = '{$id_prenota}' ");
                if (!strcmp($dati_tariffe[$n_tipotariffa_idpr[$id_prenota]]['tasse_percent'], "")) {
                    esegui_query("update {$tableprenota} set tasseperc = NULL where idprenota = '{$id_prenota}' ");
                } else {
                    esegui_query("update {$tableprenota} set tasseperc = '" . $dati_tariffe[$n_tipotariffa_idpr[$id_prenota]]['tasse_percent'] . "' where idprenota = '{$id_prenota}' ");
                }
            }
            # fine if ($n_nometipotariffa != "")
            if ($n_tariffesettimanali != "") {
                $n_tariffesettimanali = aggslashdb($n_tariffesettimanali);
                esegui_query("update {$tableprenota} set tariffesettimanali = '{$n_tariffesettimanali}' where idprenota = '{$id_prenota}' ");
            }
            # fine if ($n_tariffesettimanali != "")
            if ($costi_aggiuntivi_modificati_int) {
                $costi_aggiuntivi_modificati = explode("#@&", $costi_aggiuntivi_modificati_int);
                for ($num2 = 0; $num2 < count($costi_aggiuntivi_modificati); $num2++) {
                    $costo_agg_modificato = explode("#?&", $costi_aggiuntivi_modificati[$num2]);
                    if ($costo_agg_modificato[1] == "cancella") {
                        esegui_query("delete from {$tablecostiprenota} where idcostiprenota = '" . $costo_agg_modificato[0] . "' and idprenota = '{$id_prenota}' ");
                    } else {
                        esegui_query("update {$tablecostiprenota} set settimane = '" . $costo_agg_modificato[1] . "', moltiplica = '" . $costo_agg_modificato[2] . "' where idcostiprenota = '" . $costo_agg_modificato[0] . "' and idprenota = '{$id_prenota}' ");
                        if ($num_ripetizioni_costo_mod_idpr[$id_prenota][$num2]) {
                            esegui_query("update {$tablecostiprenota} set varbeniinv = '" . $num_ripetizioni_costo_mod_idpr[$id_prenota][$num2] . "' where idcostiprenota = '" . $costo_agg_modificato[0] . "' and idprenota = '{$id_prenota}' ");
                        }
                    }
                    # fine else if ($costo_agg_modificato[1] == "cancella")
                }
                # fine for $num2
            }
            # fine if ($costi_aggiuntivi_modificati_int)
            if ($costi_aggiuntivi_da_inserire_int) {
                $costi_aggiuntivi_da_inserire = explode("#@&", $costi_aggiuntivi_da_inserire_int);
                for ($num2 = 0; $num2 < count($costi_aggiuntivi_da_inserire); $num2++) {
                    $costo_agg_da_inserire = explode("#?&", $costi_aggiuntivi_da_inserire[$num2]);
                    $num_costo = $dati_ca['id'][$costo_agg_da_inserire[9]];
                    $datainserimento = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
                    $idcostiprenota = esegui_query("select max(idcostiprenota) from {$tablecostiprenota}");
                    $idcostiprenota = risul_query($idcostiprenota, 0, 0) + 1;
                    if ($costo_agg_da_inserire[15]) {
                        $costo_agg_da_inserire[15] = $num_ripetizioni_costo_ins_idpr[$id_prenota][$num2] . ";" . $costo_agg_da_inserire[15];
                    }
                    esegui_query("insert into {$tablecostiprenota} (idcostiprenota,idprenota,tipo,nome,valore,associasett,settimane,moltiplica,letto,idntariffe,varmoltiplica,varnumsett,varperiodipermessi,vartariffeassociate,vartariffeincomp,varbeniinv,varappincompatibili,variazione,categoria,datainserimento,hostinserimento,utente_inserimento) values ('{$idcostiprenota}','{$id_prenota}','" . $costo_agg_da_inserire[0] . "','" . aggslashdb($costo_agg_da_inserire[1]) . "','" . $costo_agg_da_inserire[2] . "','" . $costo_agg_da_inserire[5] . "','" . $costo_agg_da_inserire[6] . "','" . $costo_agg_da_inserire[7] . "','" . $costo_agg_da_inserire[8] . "','" . $costo_agg_da_inserire[9] . "','" . $costo_agg_da_inserire[10] . "','" . $costo_agg_da_inserire[11] . "','" . $costo_agg_da_inserire[12] . "','" . $costo_agg_da_inserire[13] . "','" . $costo_agg_da_inserire[14] . "','" . $costo_agg_da_inserire[15] . "','" . $costo_agg_da_inserire[16] . "','" . $costo_agg_da_inserire[17] . "','" . $costo_agg_da_inserire[18] . "','{$datainserimento}','{$HOSTNAME}','{$id_utente}')");
                    if (substr($costo_agg_da_inserire[0], 1, 1) != "f") {
                        esegui_query("update {$tablecostiprenota} set valore_perc = '" . $costo_agg_da_inserire[3] . "', arrotonda = '" . $costo_agg_da_inserire[4] . "' where idcostiprenota = '{$idcostiprenota}'");
                    }
                    if ($dati_ca[$num_costo]['tasseperc']) {
                        esegui_query("update {$tablecostiprenota} set tasseperc = '" . $dati_ca[$num_costo]['tasseperc'] . "' where idcostiprenota = '{$idcostiprenota}'");
                    }
                }
                # fine for $num2
            }
            # fine if ($costi_aggiuntivi_da_inserire_int)
            # Se prenotazione da anno precedente copio i costi aggiuntivi anche nell'anno
            # corrente per mantenere il limite dei costi in stesso periodo
            if (($dati_da_anno_prec == "SI" or $prenota_in_anno_succ) and ($costi_aggiuntivi_modificati_int or $costi_aggiuntivi_da_inserire_int)) {
                $idcostiprenota_orig = esegui_query("select max(idcostiprenota) from {$tablecostiprenota_orig}");
                $idcostiprenota_orig = risul_query($idcostiprenota_orig, 0, 0) + 1;
                $idcostiprenota_prec = esegui_query("select max(idcostiprenota) from {$tablecostiprenota_prec}");
                $idcostiprenota_prec = risul_query($idcostiprenota_prec, 0, 0) + 1;
                if ($idcostiprenota_orig > $idcostiprenota_prec) {
                    $max_idcostiprenota = $idcostiprenota_orig;
                } else {
                    $max_idcostiprenota = $idcostiprenota_prec;
                }
                esegui_query("delete from {$tablecostiprenota_orig} where idprenota = '{$id_prenota_orig}'");
                $costiprenota_prec = esegui_query("select * from {$tablecostiprenota_prec} where idprenota = '{$id_prenota_prec}'");
                $num_costiprenota_prec = numlin_query($costiprenota_prec);
                $max_idcostiprenota = $max_idcostiprenota + $num_costiprenota_prec + 1;
                $diff_settimane = $fineperiodo - $fineperiodo_orig;
                for ($num1 = 0; $num1 < $num_costiprenota_prec; $num1++) {
                    $idcostiprenota = risul_query($costiprenota_prec, $num1, 'idcostiprenota');
                    esegui_query("update {$tablecostiprenota_prec} set idcostiprenota = '{$max_idcostiprenota}' where idcostiprenota = '{$idcostiprenota}'");
                    esegui_query("insert into {$tablecostiprenota_orig} select * from {$tablecostiprenota_prec} where idcostiprenota = '{$max_idcostiprenota}' ");
                    esegui_query("update {$tablecostiprenota_prec} set idcostiprenota = '{$idcostiprenota}' where idcostiprenota = '{$max_idcostiprenota}'");
                    esegui_query("update {$tablecostiprenota_orig} set idcostiprenota = '{$idcostiprenota_orig}' where idcostiprenota = '{$max_idcostiprenota}'");
                    $settimane = risul_query($costiprenota_prec, $num1, 'settimane');
                    if (str_replace(",", "", $settimane) != $settimane) {
                        $settimane = explode(",", $settimane);
                        $settimane_nuove = ",";
                        for ($num2 = 1; $num2 < count($settimane) - 1; $num2++) {
                            $settimane_nuove .= $settimane[$num2] - $diff_settimane . ",";
                        }
                        esegui_query("update {$tablecostiprenota_orig} set settimane = '{$settimane_nuove}' where idcostiprenota = '{$idcostiprenota_orig}'");
                    }
                    # fine if (str_replace(",","",$settimane) != $settimane)
                    $idcostiprenota_orig++;
                }
                # fine for $num1
            }
            # fine if (($dati_da_anno_prec == "SI" or $prenota_in_anno_succ) and...
            if ((string) $n_app_eliminati_costi != (string) $d_app_eliminati_costi) {
                esegui_query("update {$tableprenota} set incompatibilita = '" . aggslashdb($n_app_eliminati_costi) . "' where idprenota = '{$id_prenota}' ");
            }
            # fine if ((string) $n_app_eliminati_costi != (string) $d_app_eliminati_costi)
            if (strcmp($n_sconto, "")) {
                esegui_query("update {$tableprenota} set sconto = '{$n_sconto}' where idprenota = '{$id_prenota}' ");
            }
            # fine if (strcmp($n_sconto,""))
            if (strcmp($n_caparra, "")) {
                esegui_query("update {$tableprenota} set caparra = '{$n_caparra}' where idprenota = '{$id_prenota}' ");
            }
            # fine if (strcmp($n_caparra,""))
            if ($n_met_paga_caparra != "") {
                esegui_query("update {$tableprenota} set metodo_pagamento = '" . aggslashdb($n_met_paga_caparra) . "' where idprenota = '{$id_prenota}' ");
            }
            # fine if ($n_met_paga_caparra != "")
            if (strcmp($n_commissioni, "")) {
                esegui_query("update {$tableprenota} set commissioni = '{$n_commissioni}' where idprenota = '{$id_prenota}' ");
            }
            # fine if (strcmp($n_commissioni,""))
            if ($n_origine_prenota != "") {
                esegui_query("update {$tableprenota} set origine = '" . aggslashdb($n_origine_prenota) . "' where idprenota = '{$id_prenota}' ");
            }
            # fine if ($n_origine_prenota != "")
            if ($n_pagato != "") {
                esegui_query("update {$tableprenota} set pagato = '{$n_pagato}' where idprenota = '{$id_prenota}' ");
            }
            # fine if ($n_pagato != "")
            if ($n_confermato != "") {
                esegui_query("update {$tableprenota} set conferma = '{$n_confermato}' where idprenota = '{$id_prenota}' ");
            }
            # fine if ($n_confermato != "")
            if ($n_commento != "" and ($tipo_commento == "checkin" or $tipo_commento == "checkout")) {
                $n_comm_checkin = "";
                $n_comm_checkout = "";
                if ($tipo_commento == "checkin" and !$d_checkin_idpr[$id_prenota]) {
                    $n_comm_checkin = $n_commento;
                }
                if ($tipo_commento == "checkout" and !$d_checkout_idpr[$id_prenota]) {
                    $n_comm_checkout = $n_commento;
                }
                $n_comm = $d_commento;
                if (strstr($n_comm, ">")) {
                    $n_comm = explode(">", $n_comm);
                    if (strcmp($n_comm[1], "")) {
                        if ($n_comm_checkin) {
                            $n_comm_checkin = $n_comm[1] . " - {$n_comm_checkin}";
                        } else {
                            $n_comm_checkin = $n_comm[1];
                        }
                    }
                    # fine if (strcmp($n_comm[1],""))
                    if (strcmp($n_comm[2], "")) {
                        if ($n_comm_checkout) {
                            $n_comm_checkout = $n_comm[2] . " - {$n_comm_checkout}";
                        } else {
                            $n_comm_checkout = $n_comm[2];
                        }
                    }
                    # fine if (strcmp($n_comm[2],""))
                    $n_comm = $n_comm[0];
                }
                # fine if (strstr($n_comm,">"))
                if (strcmp($n_comm_checkin, "") or strcmp($n_comm_checkout, "")) {
                    $n_comm .= ">{$n_comm_checkin}>{$n_comm_checkout}";
                }
                esegui_query("update {$tableprenota} set commento = '" . aggslashdb($n_comm) . "' where idprenota = '{$id_prenota}' ");
            }
            # fine if ($n_commento != "" and ($tipo_commento == "checkin" or...
            if ($n_commento != "" and $tipo_commento != "checkin" and $tipo_commento != "checkout" or $n_cancella_commento == "SI") {
                $n_comm = $n_commento;
                if ($n_cancella_commento == "SI") {
                    $n_comm = "";
                }
                if (strstr($d_commento, ">")) {
                    $n_comm = $n_comm . strstr($d_commento, ">");
                }
                esegui_query("update {$tableprenota} set commento = '" . aggslashdb($n_comm) . "' where idprenota = '{$id_prenota}' ");
            }
            # fine if (($n_commento != "" and $tipo_commento != "checkin" and $tipo_commento != "checkout") or...
            $adesso = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
            esegui_query("update {$tableprenota} set tariffa_tot = '{$n_costo_tot}', data_modifica = '{$adesso}' where idprenota = '{$id_prenota}' ");
            if ($dati_da_anno_prec == "SI") {
                passa_var_a_anno_corr($id_prenota, $tableperiodi, $tableprenota, $tablecostiprenota, $d_id_data_inizio, $d_id_data_fine, $n_fineperiodo, $inizioperiodo, $fineperiodo, $lunghezza_periodo);
            }
        }
        # fine for $num_idpr
        aggiorna_beniinv_presenti($tablerelinventario, $beniinv_presenti);
        if ($tabelle_lock) {
            unlock_tabelle($tabelle_lock);
        }
        if ($tableprenota_da_aggiornare or $n_inizioperiodo != "" or $n_fineperiodo != "") {
            $lock = 1;
            $aggiorna_disp = 1;
            $aggiorna_tar = 0;
            if (@function_exists('pcntl_fork')) {
                include "./includes/interconnect/aggiorna_ic_fork.php";
            } else {
                include "./includes/interconnect/aggiorna_ic.php";
            }
        }
        # fine if ($tableprenota_da_aggiornare or...
        for ($num_idpr = 0; $num_idpr < $num_id_prenota; $num_idpr++) {
            $id_prenota = $id_prenota_idpr[$num_idpr];
            $n_pagato = $n_pagato_idpr[$id_prenota];
            if ($n_pagato != "") {
                $datainserimento_saldo = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
                $idcliente_saldo = risul_query($dati_prenota_idpr[$id_prenota], 0, 'idclienti');
                $d_idinizioprenota = risul_query($dati_prenota_idpr[$id_prenota], 0, 'iddatainizio');
                $d_idfineprenota = risul_query($dati_prenota_idpr[$id_prenota], 0, 'iddatafine');
                if ($n_inizioperiodo != "") {
                    $idinizioperiodo_saldo = $n_inizioperiodo;
                } else {
                    $idinizioperiodo_saldo = $d_idinizioprenota;
                }
                if ($n_fineperiodo != "") {
                    $idfineperiodo_saldo = $n_fineperiodo;
                } else {
                    $idfineperiodo_saldo = $d_idfineprenota;
                }
                $motivazione_saldo = "{$idcliente_saldo};{$idinizioperiodo_saldo};{$idfineperiodo_saldo};{$id_prenota}";
                $pagato_attuale = risul_query($dati_prenota_idpr[$id_prenota], 0, 'pagato');
                if (!$pagato_attuale) {
                    $pagato_attuale = 0;
                }
                $saldo = $n_pagato - $pagato_attuale;
                $metodo_pagamento = ${"metodo_pagamento" . $id_prenota};
                $metodo_pagamento = aggslashdb($metodo_pagamento);
                $tabelle_lock = array($tablesoldi);
                $tabelle_lock = lock_tabelle($tabelle_lock);
                $idsoldi = esegui_query("select max(idsoldi) from {$tablesoldi}");
                $idsoldi = risul_query($idsoldi, 0, 0) + 1;
                esegui_query("insert into {$tablesoldi} (idsoldi,motivazione,metodo_pagamento,saldo_prenota,soldi_prima,data_inserimento,utente_inserimento) values ('{$idsoldi}','{$motivazione_saldo}','{$metodo_pagamento}','{$saldo}','{$pagato_attuale}','{$datainserimento_saldo}','{$id_utente}')");
                unlock_tabelle($tabelle_lock);
                if (strcmp($cassa_pagamenti, "")) {
                    $tabelle_lock = array($tablecosti);
                    $altre_tab_lock = array($tableperiodi, $tableclienti);
                    $tabelle_lock = lock_tabelle($tabelle_lock, $altre_tab_lock);
                    if ($anno >= substr($datainserimento_saldo, 0, 4)) {
                        $costo0 = esegui_query("select * from {$tablecosti} where idcosti = '0' ");
                        $costo0 = risul_query($costo0, 0, 'val_costo');
                        $costo0 = (double) $costo0 + (double) $saldo;
                        esegui_query("update {$tablecosti} set val_costo = '{$costo0}' where idcosti = '0' ");
                    }
                    # fine if ($anno_saldo >= substr($datainserimento_saldo,0,4))
                    if (!$idinizioperiodo_saldo) {
                        $data_inizio_costo = "?";
                    } else {
                        $data_inizio_costo = esegui_query("select datainizio from {$tableperiodi} where idperiodi = '{$idinizioperiodo_saldo}' ");
                        $data_inizio_costo = formatta_data(risul_query($data_inizio_costo, 0, 'datainizio'), $stile_data);
                    }
                    # fine else if (!$idinizioperiodo_saldo)
                    $data_fine_costo = esegui_query("select datafine from {$tableperiodi} where idperiodi = '{$idfineperiodo_saldo}' ");
                    $data_fine_costo = formatta_data(risul_query($data_fine_costo, 0, 'datafine'), $stile_data);
                    $cognome_saldo = esegui_query("select cognome from {$tableclienti} where idclienti = '{$idcliente_saldo}' ");
                    $cognome_saldo = risul_query($cognome_saldo, 0, 'cognome');
                    $nome_costo = "" . mex("Prenotazione", $pag) . " {$id_prenota} " . mex("dal", $pag) . " {$data_inizio_costo} " . mex("al", $pag) . " {$data_fine_costo} " . mex("per", $pag) . " {$cognome_saldo}";
                    $idcosti = esegui_query("select max(idcosti) from {$tablecosti}");
                    $idcosti = risul_query($idcosti, 0, 0) + 1;
                    esegui_query("insert into {$tablecosti} (idcosti,nome_costo,val_costo,tipo_costo,nome_cassa,persona_costo,provenienza_costo,metodo_pagamento,datainserimento,hostinserimento,utente_inserimento) values ('{$idcosti}','" . aggslashdb($nome_costo) . "','{$saldo}','e','" . aggslashdb($cassa_pagamenti) . "','" . aggslashdb($nome_utente) . "','p','{$metodo_pagamento}','{$datainserimento_saldo}','{$HOSTNAME}','{$id_utente}') ");
                    unlock_tabelle($tabelle_lock);
                }
                # fine if (strcmp($cassa_pagamenti,""))
            }
            # fine if ($n_pagato != "")
        }
        # fine for $num_idpr
    }
    # fine else if ($inserire == "NO")
}
Пример #8
0
function aggiorna_pers_relutenti ($rel_sing,$rel_plur,$tablerel,$frase_canc,$rel_sup_sing="",$rel_sup_plur="",$tablerel_sup="",$rel_inf_sing="",$rel_inf_plur="",$tablerel_inf="") {
$aggiungi_rel = "aggiungi_".$rel_sing;
$rel_predefinite = $rel_plur."_predefinite";
$elimina_tutte_rel = "elimina_tutte_".$rel_plur;
$importa_rel = "importa_".$rel_plur;
$elimina_rel = "elimina_".$rel_sing;
$nuova_rel = "nuova_".$rel_sing;
$sup_n_rel = "sup_n_".$rel_sing;
$cod_n_rel = "cod_n_".$rel_sing;
$cod2_n_rel = "cod2_n_".$rel_sing;
$cod3_n_rel = "cod3_n_".$rel_sing;
$utente_importa_rel = "utente_importa_".$rel_plur;
$rel_da_eliminare = $rel_sing."_da_eliminare";
global $$aggiungi_rel,$$rel_predefinite,$$elimina_tutte_rel,$$importa_rel,$$elimina_rel,$$nuova_rel,$$sup_n_rel,$$cod_n_rel,$$cod2_n_rel,$$cod3_n_rel,$$utente_importa_rel,$$rel_da_eliminare,$id_utente,$id_utente_mod,$pag,$anchor,$tablerelutenti;
if ($$aggiungi_rel or $$rel_predefinite or $$elimina_tutte_rel or $$importa_rel or $$elimina_rel) {
$anchor = "pers_rel";
aggiorna_relutenti($$aggiungi_rel,$$rel_predefinite,$$elimina_tutte_rel,$$importa_rel,$id_utente,$id_utente_mod,$$nuova_rel,$$sup_n_rel,$$cod_n_rel,$$cod2_n_rel,$$cod3_n_rel,$$utente_importa_rel,$pag,$rel_sing,$rel_plur,$tablerel,$tablerelutenti,$rel_sup_sing,$rel_sup_plur,$tablerel_sup,$rel_inf_sing,$rel_inf_plur,$tablerel_inf);
if ($$elimina_rel) {
if (get_magic_quotes_gpc()) $$rel_da_eliminare = stripslashes($$rel_da_eliminare);
$$rel_da_eliminare = aggslashdb(htmlspecialchars($$rel_da_eliminare));
if (str_replace(" ","",$$rel_da_eliminare)) {
if ($tablerel_inf) $tabelle_lock = array($tablerel,$tablerel_inf,$tablerelutenti);
else $tabelle_lock = array($tablerel,$tablerelutenti);
$tabelle_lock = lock_tabelle($tabelle_lock);
$num_rel = esegui_query("select * from $tablerel where nome_$rel_sing = '".$$rel_da_eliminare."' ");
if (numlin_query($num_rel)) {
$num_rel = risul_query($num_rel,0,"id$rel_plur");
cancella_relutente($num_rel,$id_utente_mod,$rel_sing,$rel_plur,$tablerel,$tablerelutenti,$rel_inf_sing,$rel_inf_plur,$tablerel_inf);
echo mex($frase_canc,$pag).".<br>";
} # fine if (numlin_query($num_rel))
unlock_tabelle($tabelle_lock);
} # fine if (str_replace(" ","",$$rel_da_eliminare))
} # fine if ($$elimina_rel)
} # fine if ($$aggiungi_rel or $$rel_predefinite or...
} # fine function aggiorna_pers_relutenti
Пример #9
0
function recupera_dati_transazione($id_transazione, $id_sessione, $anno, $lock_tabletransazioni, &$tipo_transazione, $minuti_durata_sessione = "", $cond_sessione = "SI", $cond_tipo = "NO", $transazioni = "transazioni")
{
    global $PHPR_TAB_PRE;
    $tabletransazioni = $PHPR_TAB_PRE . $transazioni;
    $tablepersonalizza = $PHPR_TAB_PRE . "personalizza";
    $tipo_transazione = "";
    if ($id_transazione) {
        $tabelle_lock = array($tabletransazioni);
        if (!$minuti_durata_sessione) {
            $altre_tab_lock = array($tablepersonalizza);
        } else {
            $altre_tab_lock = array();
        }
        if ($lock_tabletransazioni == "SI") {
            $tabelle_lock = lock_tabelle($tabelle_lock, $altre_tab_lock);
        }
        if (!$minuti_durata_sessione) {
            $minuti_durata_sessione = esegui_query("select valpersonalizza_num from {$tablepersonalizza} where idpersonalizza = 'minuti_durata_sessione' and idutente = '1'");
            $minuti_durata_sessione = risul_query($minuti_durata_sessione, 0, 'valpersonalizza_num');
        }
        # fine if (!$minuti_durata_sessione)
        $limite_transazioni_vecchie = date("Y-m-d H:i:s", time() - $minuti_durata_sessione * 60 + C_DIFF_ORE * 3600);
        if ($cond_tipo != "NO") {
            $cond_tipo = " and tipo_transazione = '{$cond_tipo}'";
        } else {
            $cond_tipo = "";
        }
        esegui_query("delete from {$tabletransazioni} where ultimo_accesso <= '{$limite_transazioni_vecchie}' {$cond_tipo}");
        $id_transazione = aggslashdb($id_transazione);
        if ($cond_sessione == "SI") {
            $cond_sessione = " and idsessione = '{$id_sessione}'";
        } else {
            $cond_sessione = "";
        }
        $dati_transazione = esegui_query("select * from {$tabletransazioni} where idtransazioni = '{$id_transazione}' {$cond_sessione}");
        if (numlin_query($dati_transazione) == 1) {
            if ($anno == risul_query($dati_transazione, 0, 'anno')) {
                $tipo_transazione = risul_query($dati_transazione, 0, 'tipo_transazione');
                $ultimo_accesso = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
                esegui_query("update {$tabletransazioni} set ultimo_accesso = '{$ultimo_accesso}' where idtransazioni = '{$id_transazione}' {$cond_sessione}");
            }
            # fine if ($anno == risul_query($dati_transazione,0,'anno'))
        }
        # fine if (numlin_query($dati_transazione) == 1)
        if ($lock_tabletransazioni == "SI") {
            unlock_tabelle($tabelle_lock);
        }
    }
    # fine if ($id_transazione)
    return $dati_transazione;
}