$app_richiesti[$idappartamenti] = "SI";
for ($num1 = 0 ;$num1 < $num_anni_da_controllare ; $num1++) {
$anno_controlla = risul_query($anni_da_controllare,$num1,'idanni');
$tableprenota_controlla = $PHPR_TAB_PRE."prenota".$anno_controlla;
$tableperiodi_controlla = $PHPR_TAB_PRE."periodi".$anno_controlla;
unset($limiti_var);
unset($profondita);
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($app_liberato);
if ($anno_controlla == $anno_attuale) $min_periodo = (calcola_id_periodo_corrente($anno_attuale) + 1);
else $min_periodo = 1;
$max_periodo = esegui_query("select max(idperiodi) from $tableperiodi_controlla");
$max_periodo = risul_query($max_periodo,0,0);
liberasettimane ($min_periodo,$max_periodo,$limiti_var,$anno_controlla,$fatto_libera,$app_liberato,$profondita,$app_richiesti,$app_prenota_id,$app_orig_prenota_id,$inizio_prenota_id,$fine_prenota_id,$app_assegnabili_id,$prenota_in_app_sett,$dati_app,$PHPR_TAB_PRE."prenota");
$prenota_presenti = esegui_query("select * from $tableprenota_controlla where idappartamenti = '$idappartamenti' and iddatainizio >= '$min_periodo'");
$num_prenota_presenti = numlin_query($prenota_presenti);
if ($num_prenota_presenti != 0) {
$cancellare = "NO";
echo mex("L'appartamento",'unit.php')." $idappartamenti ".mex("contiene prenotazione future, non si può cancellare",$pag).".<br>";
break;
} # fine if ($num_prenota_presenti != 0)
} # fine for $num1

$app_esiste = esegui_query("select * from $tableappartamenti where idappartamenti = '$idappartamenti'");
$num_app_esiste = numlin_query($app_esiste);
             echo mex("{$parola_La} {$parola_settimana} dal", $pag) . " {$inizioperiodopieno_f} " . mex("al", $pag) . " {$fineperiodopieno_f} " . mex("è pien{$lettera_a}", $pag) . ".<br>";
         }
         # fine if ($numprenotazioni >= $numappartamenti)
     }
     # fine for $num1
     if ($verificare == "NO") {
         echo "<br><form accept-charset=\"utf-8\" method=\"post\" action=\"disponibilita.php\"><div>\n<input type=\"hidden\" name=\"anno\" value=\"{$anno}\">\n<input type=\"hidden\" name=\"id_sessione\" value=\"{$id_sessione}\">\n<input type=\"hidden\" name=\"inizioperiodo\" value=\"{$data_inizioperiodo}\">\n<input type=\"hidden\" name=\"fineperiodo\" value=\"{$data_fineperiodo}\">\n<input type=\"hidden\" name=\"numpersone\" value=\"{$numpersone}\">\n<input type=\"hidden\" name=\"mostra_non_disp\" value=\"1\">\n{$dati_email}\n<input class=\"sbutton\" type=\"submit\" name=\"agg_costo\" value=\"" . mex("Mostra le tariffe non disponibili", $pag) . "\">\n</div></form><br>";
     }
     # fine if ($verificare == "NO")
 }
 # fine if ($verificare != "NO")
 if ($verificare != "NO") {
     unset($limiti_var);
     unset($profondita);
     unset($dati_app);
     $limiti_var['idperiodocorrente'] = calcola_id_periodo_corrente($anno);
     if ($idinizioperiodo < $limiti_var['idperiodocorrente']) {
         $n_ini = $idinizioperiodo;
     } else {
         $n_ini = $limiti_var['idperiodocorrente'];
     }
     $limiti_var['n_ini'] = $n_ini;
     $max_periodo = esegui_query("select max(idperiodi) from {$tableperiodi}");
     $max_periodo = risul_query($max_periodo, 0, 0);
     if ($idfineperiodo <= $limiti_var['idperiodocorrente']) {
         $n_fine = $idfineperiodo;
     } else {
         $n_fine = $max_periodo;
     }
     $limiti_var['n_fine'] = $n_fine;
     if ($priv_vedi_tab_mesi != "n") {
} # fine if (substr(${"idcostoagg".$numca."_".$n_t},0,1) == "c")

$dati_form_iniziale .= "<input type=\"hidden\" name=\"idcostoagg$numca"."_$n_t\" value=\"".${"idcostoagg".$numca."_".$n_t}."\">
<input type=\"hidden\" name=\"costoagg$numca"."_$n_t\" value=\"".${"costoagg".$numca."_".$n_t}."\">
<input type=\"hidden\" name=\"numsettimane$numca"."_$n_t\" value=\"".${"numsettimane".$numca."_".$n_t}."\">
<input type=\"hidden\" name=\"nummoltiplica_ca$numca"."_$n_t\" value=\"".${"nummoltiplica_ca".$numca."_".$n_t}."\">
<input type=\"hidden\" name=\"id_periodi_costo$numca"."_$n_t\" value=\"".${"id_periodi_costo".$numca."_".$n_t}."\">";
} # fine for $numca
$dati_form_iniziale .= "<input type=\"hidden\" name=\"numcostiagg$n_t\" value=\"".$$numcostiagg."\">";
} # fine for $n_t



unset($limiti_var);
$limiti_var['idperiodocorrente'] = calcola_id_periodo_corrente($anno);
$idperiodocorrente_reale = calcola_id_periodo_corrente($anno,"NO");
unset($idinizioperiodo_min);
unset($idfineperiodo_max);
unset($app_incomp_costi);
unset($app_eliminati_costi);
unset($beniinv_presenti);
unset($num_ripetizioni_costo);
unset($costo_tariffa_reg);
unset($tariffesettimanali_reg);
unset($caparra_reg);
unset($cmmissioni_reg);
unset($lista_app_reg);
unset($num_costi_reg);
unset($costo_tariffa_tot_reg);
unset($num_letti_agg_reg);
unset($nome_costo_reg);
} # fine if ($attiva_contratti_consentiti == "n" or $contratti_consentiti_vett[$num_contr] == "SI")
} # fine if ($anno_doc_upload == $anno or...
} # fine if (controlla_num_pos($num_contr) == "SI" and...
} # fine if ($upload_doc)


if ($mostra_tab_doc_salvati != "NO") {

echo "<h3>".ucfirst(mex("documenti salvati",$pag)).".</h3>";

$num_vedi_in_tab = esegui_query("select valpersonalizza_num from $tablepersonalizza where idpersonalizza = 'num_righe_tab_doc_salvati' and idutente = '$id_utente'");
$num_vedi_in_tab = risul_query($num_vedi_in_tab,0,'valpersonalizza_num');

$contr_salva = esegui_query("select * from $tablecontratti where tipo = 'dir'");
$num_contr_salva = numlin_query($contr_salva);
if ($priv_mod_prenota_iniziate != "s") $id_periodo_corrente = calcola_id_periodo_corrente($anno);
unset($contratti_visti);

for ($num_c = 0 ; $num_c < $num_contr_salva ; $num_c++) {
$num_contr = risul_query($contr_salva,$num_c,'numero');
$nome_contr = $nomi_contratti['salv'][$num_contr];
$dir_salva = formatta_dir_salva_doc(risul_query($contr_salva,$num_c,'testo'));
$pagina_prenota = ${"pagina_prenota".$num_contr};

if ($dir_salva and ($priv_vedi_tab_doc == "s" or $attiva_contratti_consentiti == "n" or $contratti_consentiti_vett[$num_contr] == "SI")) {
if (!$contratti_visti[$dir_salva."/".$nome_contr]) {
$contratti_visti[$dir_salva."/".$nome_contr] = 1;
$dati_contr = esegui_query("select * from $tablecontratti where numero = '$num_contr' and tipo $LIKE 'contr%' ");
$tipo_contratto = risul_query($dati_contr,0,'tipo');
if ($tipo_contratto == "contrrtf") $suff_file = "rtf";
if ($tipo_contratto == "contrhtm") $suff_file = "html";
function trova_app_regola2($tipotariffa, &$regole2, &$num_regole2, &$app_regola2_predef, &$id_periodo_corrente, $idinizioperiodo, $idfineperiodo, $tipo_periodi, $anno, $tableregole)
{
    $app_regola2_predef = "";
    if (!$regole2) {
        $regole2 = esegui_query("select * from {$tableregole} where tariffa_per_app != ''");
        $num_regole2 = numlin_query($regole2);
    }
    # fine if (!$regole2)
    for ($num1 = 0; $num1 < $num_regole2; $num1 = $num1 + 1) {
        $tariffa_regola2 = risul_query($regole2, $num1, 'tariffa_per_app');
        if ($tipotariffa == $tariffa_regola2) {
            $lista_app = risul_query($regole2, $num1, 'motivazione');
            $lista_appb = risul_query($regole2, $num1, 'motivazione2');
            if (strcmp($lista_appb, "")) {
                if (!$id_periodo_corrente) {
                    $id_periodo_corrente = calcola_id_periodo_corrente($anno);
                }
                $ngiorni_reg2b = risul_query($regole2, $num1, 'iddatainizio');
                if ($ngiorni_reg2b) {
                    $diff_giorni = $idinizioperiodo - $id_periodo_corrente + 1;
                } else {
                    $ngiorni_reg2b = risul_query($regole2, $num1, 'iddatafine');
                    $diff_giorni = $idfineperiodo - $id_periodo_corrente + 1;
                }
                # fine else if ($ngiorni_reg2b)
                if ($tipo_periodi == "s") {
                    $diff_giorni = $diff_giorni * 7;
                }
                if ($diff_giorni < $ngiorni_reg2b) {
                    $app_regola2_predef = $lista_app;
                    $lista_app = $lista_appb;
                }
                # fine if ($diff_giorni < $ngiorni_reg2b)
            }
            # fine if (strcmp($lista_appb,""))
            break;
        }
        # fine if ($tipotariffa == $tariffa_regola2)
    }
    # fine for $num1
    return $lista_app;
}
function inserisci_prenotazione($inizioperiodo, $fineperiodo, $lista_app, $tipotariffa, $numpersone, $prenota_vicine, $idclienti, $conferma, $pagato, $caparra, $met_paga_caparra, $commissioni, $origine_prenota, $sconto, $giorno_stima_checkin, $ora_stima_checkin, $min_stima_checkin, $commento, &$stato, $anno, $PHPR_TAB_PRE, $ins_passato = "", $id_utente_imp = "", $id_prenota_imp = "", $tariffe_sett_imp = "", $ins_costi_agg = "")
{
    global $id_utente, $HOSTNAME;
    $PHPR_TAB_PRE = aggslashdb($PHPR_TAB_PRE);
    $anno = aggslashdb($anno);
    $tableprenota = $PHPR_TAB_PRE . "prenota" . $anno;
    $tablecostiprenota = $PHPR_TAB_PRE . "costiprenota" . $anno;
    $tableperiodi = $PHPR_TAB_PRE . "periodi" . $anno;
    $tableregole = $PHPR_TAB_PRE . "regole" . $anno;
    $tableappartamenti = $PHPR_TAB_PRE . "appartamenti";
    $tablepersonalizza = $PHPR_TAB_PRE . "personalizza";
    $tableclienti = $PHPR_TAB_PRE . "clienti";
    $tablenometariffe = $PHPR_TAB_PRE . "ntariffe" . $anno;
    if (!function_exists('tab_a_var')) {
        include "./includes/liberasettimane.php";
    }
    if (!function_exists('dati_tariffe')) {
        include "./includes/funzioni_tariffe.php";
    }
    include "./includes/sett_gio.php";
    $Euro = nome_valuta();
    $stile_soldi = stile_soldi();
    $stile_data = stile_data();
    $num_tipologie = count($inizioperiodo);
    $appartamenti = esegui_query("select * from {$tableappartamenti} ");
    $numappartamenti = numlin_query($appartamenti);
    $id_app_richiesti = 0;
    $dati_tariffe = dati_tariffe($tablenometariffe, "", "", $tableregole);
    if ($ins_costi_agg) {
        if (!function_exists('dati_costi_agg_ntariffe')) {
            include "./includes/funzioni_costi_agg.php";
        }
        $dati_ca = dati_costi_agg_ntariffe($tablenometariffe, $dati_tariffe['num'], "NO", "", $tableappartamenti);
    }
    # fine if ($ins_costi_agg)
    for ($n_t = 1; $n_t <= $num_tipologie; $n_t++) {
        $inizioperiodo_orig[$n_t] = $inizioperiodo[$n_t];
        $fineperiodo_orig[$n_t] = $fineperiodo[$n_t];
        $idinizioperiodo = esegui_query("select idperiodi from {$tableperiodi} where datainizio = '" . aggslashdb($inizioperiodo[$n_t]) . "' ");
        $num_idinizioperiodo = numlin_query($idinizioperiodo);
        if ($num_idinizioperiodo == 0) {
            $idinizioperiodo = 10000;
        } else {
            $idinizioperiodo = risul_query($idinizioperiodo, 0, 'idperiodi');
        }
        $inizioperiodo[$n_t] = $idinizioperiodo;
        if (!$idinizioperiodo_tot or $idinizioperiodo < $idinizioperiodo_tot) {
            $idinizioperiodo_tot = $idinizioperiodo;
        }
        $idfineperiodo = esegui_query("select idperiodi from {$tableperiodi} where datafine = '" . aggslashdb($fineperiodo[$n_t]) . "' ");
        $num_idfineperiodo = numlin_query($idfineperiodo);
        if ($num_idfineperiodo == 0) {
            $idfineperiodo = -1;
        } else {
            $idfineperiodo = risul_query($idfineperiodo, 0, 'idperiodi');
        }
        $fineperiodo[$n_t] = $idfineperiodo;
        if (!$idfineperiodo_tot or $idfineperiodo > $idfineperiodo_tot) {
            $idfineperiodo_tot = $idfineperiodo;
        }
        $id_periodo_corrente = calcola_id_periodo_corrente($anno);
        if ($id_periodo_corrente > $idinizioperiodo and !$ins_passato) {
            $data_sbagliata = "SI";
        }
        if ($idfineperiodo < $idinizioperiodo or $data_sbagliata == "SI") {
            $inserire = "NO";
            $mess_errore .= mex("Le date sono sbagliate", "clienti.php");
            if ($num_tipologie > 1) {
                $mess_errore .= " (" . mex("tipologia", "clienti.php") . " {$n_t})";
            }
            $mess_errore .= ".<br>";
        }
        # fine if ($idfineperiodo < $idinizioperiodo or...
        if (substr($tipotariffa[$n_t], 0, 7) != "tariffa" or controlla_num_pos(substr($tipotariffa[$n_t], 7)) == "NO") {
            $tariffa_sbagliata = "SI";
        } else {
            $tar_sett_imp = $tariffe_sett_imp[$n_t];
            for ($num1 = $inizioperiodo[$n_t]; $num1 <= $fineperiodo[$n_t]; $num1++) {
                $rigasettimana = esegui_query("select * from {$tableperiodi} where idperiodi = '{$num1}' ");
                $esistetariffa = risul_query($rigasettimana, 0, $tipotariffa[$n_t]);
                $esistetariffap = risul_query($rigasettimana, 0, $tipotariffa[$n_t] . "p");
                if ((!strcmp($esistetariffa, "") or $esistetariffa < 0) and (!strcmp($esistetariffap, "") or $esistetariffap < 0) and !strcmp($tar_sett_imp[$num1], "")) {
                    $tariffa_sbagliata = "SI";
                }
                if ($dati_tariffe[$tipotariffa[$n_t]]['chiusa'][$num1] and !strcmp($tar_sett_imp[$num1], "")) {
                    $tariffa_sbagliata = "SI";
                }
            }
            # fine for $num1
        }
        # fine else if (substr($tipotariffa[$n_t],0,7) != "tariffa" or...
        if ($tariffa_sbagliata == "SI") {
            $inserire = "NO";
            $mess_errore .= mex("Si deve inserire il tipo di tariffa", "clienti.php");
            if ($num_tipologie > 1) {
                $mess_errore .= "(" . mex("tipologia", "clienti.php") . " {$n_t})";
            }
            $mess_errore .= ".<br>";
        } else {
            # se vi è una regola 2 per la tariffa
            unset($app_regola2_predef);
            if (!$lista_app[$n_t]) {
                $lista_app[$n_t] = trova_app_regola2($tipotariffa[$n_t], $regole2, $num_regole2, $app_regola2_predef, $id_periodo_corrente, $idinizioperiodo, $idfineperiodo, $tipo_periodi, $anno, $tableregole);
            }
            # fine if (!$lista_app[$n_t])
            $id_utente_ins = "";
            # se vi è una regola 3 per la tariffa
            if ($id_utente == 1) {
                $regole3 = esegui_query("select * from {$tableregole} where tariffa_per_utente = '" . aggslashdb($tipotariffa[$n_t]) . "'");
                if (numlin_query($regole3) == 1) {
                    $id_utente_ins = risul_query($regole3, 0, 'iddatainizio');
                }
            }
            # fine if ($id_utente == 1)
            if (!$id_utente_ins and $id_utente_imp) {
                $id_utente_ins = $id_utente_imp;
            }
            if (!$id_utente_ins and $id_utente) {
                $id_utente_ins = $id_utente;
            }
            if (!$id_utente_ins) {
                $id_utente_ins = 1;
            }
            # se vi è una regola 4 per la tariffa
            if (!$numpersone[$n_t]) {
                $regole4 = esegui_query("select * from {$tableregole} where tariffa_per_persone = '" . aggslashdb($tipotariffa[$n_t]) . "'");
                if (numlin_query($regole4) == 1) {
                    $numpersone[$n_t] = risul_query($regole4, 0, 'iddatainizio');
                }
            }
            # fine if (!$numpersone[$n_t])
            if (!$numpersone) {
                if ($dati_tariffe[$tipotariffa[$n_t]]['moltiplica'] == "p") {
                    $inserire = "NO";
                    $mess_errore .= mex("Si deve inserire il numero delle persone per questa tariffa", "clienti.php");
                    if ($num_tipologie > 1) {
                        $mess_errore .= "(" . mex("tipologia", "clienti.php") . " {$n_t})";
                    }
                    $mess_errore .= ".<br>";
                }
                # fine if ($dati_tariffe[$tipotariffa[$n_t]]['moltiplica'] == "p")
            }
            # fine if (!$numpersone)
        }
        # fine else if ($tariffa_sbagliata == "SI")
        if (controlla_num_pos($idclienti[$n_t]) == "NO") {
            $inserire = "NO";
        } else {
            $cliente_esistente = esegui_query("select cognome from {$tableclienti} where idclienti = '" . $idclienti[$n_t] . "' ");
            if (numlin_query($cliente_esistente) != 1) {
                $inserire = "NO";
            } else {
                $cognome = risul_query($cliente_esistente, 0, "cognome");
            }
        }
        # fine else if (controlla_num_pos($idclienti[$n_t]) == "NO")
        $app_richiesti_id[$n_t] = "";
        $assegnazioneapp[$n_t] = "v";
        if ($lista_app[$n_t]) {
            $assegnazioneapp[$n_t] = "c";
            $vett_app = explode(",", $lista_app[$n_t]);
            $num_app = count($vett_app);
            if ($num_app == 1) {
                $assegnazioneapp[$n_t] = "k";
            }
            for ($num1 = 0; $num1 < $num_app; $num1++) {
                $appo = aggslashdb($vett_app[$num1]);
                $app_richiesti_id[$n_t][$appo] = "SI";
                $appartamento_esistente = esegui_query("select idappartamenti from {$tableappartamenti} where idappartamenti = '{$appo}' ");
                if (numlin_query($appartamento_esistente) != 1) {
                    $inserire = "NO";
                    $mess_errore .= mex("L'appartamento", 'unit.php') . " <div style=\"display: inline; color: red;\">{$appo}</div> " . mex("contenuto nella lista non esiste", "clienti.php");
                    if ($num_tipologie > 1) {
                        $mess_errore .= " (" . mex("tipologia", "clienti.php") . " {$n_t})";
                    }
                    $mess_errore .= ".<br>";
                }
                # fine if (numlin_query($appartamento_esistente) != 1)
            }
            # fine for $num1
        }
        # fine if ($lista_app[$n_t])
        if ($numpersone[$n_t]) {
            if (controlla_num_pos($numpersone[$n_t]) == "NO") {
                $inserire = "NO";
                $mess_errore .= mex("Il numero di persone è sbagliato", "clienti.php");
                if ($num_tipologie > 1) {
                    $mess_errore .= " (" . mex("tipologia", "clienti.php") . " {$n_t})";
                }
                $mess_errore .= ".<br>";
            }
            # fine if (controlla_num_pos($numpersone[$n_t]) == "NO")
            $app_richiesti_copia = $app_richiesti_id[$n_t];
            $posti = 0;
            if ($app_regola2_predef) {
                $app_regola2_predef = ",{$app_regola2_predef},";
                $posto_reg2_orig = 0;
            }
            # fine if ($app_regola2_predef)
            for ($num1 = 0; $num1 < $numappartamenti; $num1++) {
                $idapp = risul_query($appartamenti, $num1, 'idappartamenti');
                $maxoccupanti = risul_query($appartamenti, $num1, 'maxoccupanti');
                if (!$app_richiesti_copia or $app_richiesti_copia[$idapp] == "SI") {
                    if ($maxoccupanti and $maxoccupanti < $numpersone[$n_t]) {
                        $app_richiesti_id[$n_t][$idapp] = "NO";
                    } else {
                        $app_richiesti_id[$n_t][$idapp] = "SI";
                        $posti++;
                    }
                    # fine else if ($maxoccupanti and $maxoccupanti < $numpersone[$n_t])
                }
                # fine if (!$app_richiesti_copia or $app_richiesti_copia[$idapp] == "SI")
                if ($app_regola2_predef) {
                    if (str_replace(",{$idapp},", "", $app_regola2_predef) != $app_regola2_predef) {
                        if (!$maxoccupanti or $maxoccupanti >= $numpersone[$n_t]) {
                            $posto_reg2_orig = 1;
                        }
                    }
                    # fine if (str_replace(",$idapp,","",$app_regola2_predef) != $app_regola2_predef)
                }
                # fine if ($app_regola2_predef)
            }
            # fine for $num1
            if ($posti == 0 or $app_regola2_predef and !$posto_reg2_orig) {
                $mess_errore .= mex("Non c'è nessun appartamento tra quelli richiesti che possa ospitare", 'unit.php') . " " . $numpersone[$n_t] . " " . mex("persone", "clienti.php");
                if ($num_tipologie > 1) {
                    $mess_errore .= " (" . mex("tipologia", "clienti.php") . " {$n_t})";
                }
                $mess_errore .= ".<br>";
                $inserire = "NO";
            }
            # fine if ($posti == 0 or...
        }
        # fine if ($numpersone[$n_t])
        unset($lista_app_richiesti);
        if (!$app_richiesti_id[$n_t]) {
            $lista_app_richiesti = ",tutti,,";
        } else {
            while (list($key, $val) = each($app_richiesti_id[$n_t])) {
                if ($val == "SI") {
                    $lista_app_richiesti .= $key . ",";
                }
            }
        }
        $lista_app_richiesti = substr($lista_app_richiesti, 0, -1);
        $id_app_richiesti++;
        $app_richiesti[$id_app_richiesti] = $lista_app_richiesti;
        $idinizioperiodo_vett[$id_app_richiesti] = $idinizioperiodo;
        $idfineperiodo_vett[$id_app_richiesti] = $idfineperiodo;
        $app_richiesti[",numero,"] = $id_app_richiesti;
        if ($num_tipologie > 1 and $prenota_vicine == "SI") {
            $app_richiesti[",vicini,"] = "SI";
        }
        if ($id_prenota_imp) {
            if (controlla_num_pos($id_prenota_imp[$n_t]) == "SI") {
                $id_esistente = esegui_query("select idprenota from {$tableprenota} where idprenota = '" . $id_prenota_imp[$n_t] . "' ");
                if (numlin_query($id_esistente)) {
                    unset($id_prenota_imp);
                }
            } else {
                unset($id_prenota_imp);
            }
        }
        # fine if ($id_prenota_imp)
    }
    # fine for $n_t
    if ($inserire != "NO") {
        $app_agenzia = esegui_query("select * from {$tableregole} where app_agenzia != ''{$condizioni_regole1_non_sel}");
        $num_app_agenzia = numlin_query($app_agenzia);
        $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');
        $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 < '" . $lim_prenota_temp . "' ");
        #Se ci sono regole per $app_agenzia inserisco false prenotazioni fisse in $app_prenota_id2
        if ($num_app_agenzia != 0) {
            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);
            $limiti_var['n_ini'] = $idinizioperiodo_tot;
            $limiti_var['n_fine'] = $idfineperiodo_tot;
            $limiti_var['lim_prenota_temp'] = $lim_prenota_temp;
            $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");
            unset($info_periodi_ag);
            $info_periodi_ag['numero'] = 0;
            for ($num1 = 0; $num1 < $num_app_agenzia; $num1++) {
                $mot2 = risul_query($app_agenzia, $num1, 'motivazione2');
                if ($mot2 == "x") {
                    $info_periodi_ag['app'][$info_periodi_ag['numero']] = risul_query($app_agenzia, $num1, 'app_agenzia');
                    $info_periodi_ag['ini'][$info_periodi_ag['numero']] = risul_query($app_agenzia, $num1, 'iddatainizio');
                    $info_periodi_ag['fine'][$info_periodi_ag['numero']] = risul_query($app_agenzia, $num1, 'iddatafine');
                    $info_periodi_ag['numero']++;
                }
                # fine if ($mot2 == "x")
            }
            # fine for $num1
            if ($info_periodi_ag['numero']) {
                inserisci_prenota_fittizie($info_periodi_ag, $profondita, $app_prenota_id, $inizio_prenota_id, $fine_prenota_id, $prenota_in_app_sett, $app_assegnabili_id);
            }
            $limiti_var2 = $limiti_var;
            $profondita2 = $profondita;
            $prenota_in_app_sett2 = $prenota_in_app_sett;
            $inizio_prenota_id2 = $inizio_prenota_id;
            $fine_prenota_id2 = $fine_prenota_id;
            $app_prenota_id2 = $app_prenota_id;
            $app_assegnabili_id2 = $app_assegnabili_id;
            unset($info_periodi_ag);
            $info_periodi_ag['numero'] = 0;
            for ($num1 = 0; $num1 < $num_app_agenzia; $num1++) {
                $mot2 = risul_query($app_agenzia, $num1, 'motivazione2');
                if ($mot2 != "x") {
                    $info_periodi_ag['app'][$info_periodi_ag['numero']] = risul_query($app_agenzia, $num1, 'app_agenzia');
                    $info_periodi_ag['ini'][$info_periodi_ag['numero']] = risul_query($app_agenzia, $num1, 'iddatainizio');
                    $info_periodi_ag['fine'][$info_periodi_ag['numero']] = risul_query($app_agenzia, $num1, 'iddatafine');
                    $info_periodi_ag['numero']++;
                }
                # fine if ($mot2 != "x")
            }
            # fine for $num1
            if ($info_periodi_ag['numero']) {
                inserisci_prenota_fittizie($info_periodi_ag, $profondita2, $app_prenota_id2, $inizio_prenota_id2, $fine_prenota_id2, $prenota_in_app_sett2, $app_assegnabili_id2);
            }
            $occupare_app_agenzia_sempre = "NO";
            for ($num1 = $idinizioperiodo_tot; $num1 <= $idfineperiodo_tot; $num1++) {
                $numprenotazioni = 0;
                for ($num2 = 0; $num2 < $dati_app['totapp']; $num2++) {
                    if ($prenota_in_app_sett2[$dati_app['posizione'][$num2]][$num1]) {
                        $numprenotazioni++;
                    }
                }
                if ($numprenotazioni >= $numappartamenti) {
                    $occupare_app_agenzia_sempre = "SI";
                }
            }
            # fine for $num1
            if ($occupare_app_agenzia_sempre != "SI") {
                $app_orig_prenota_id = $app_prenota_id2;
                liberasettimane($idinizioperiodo_vett, $idfineperiodo_vett, $limiti_var2, $anno, $fatto_libera, $app_liberato, $profondita2, $app_richiesti, $app_prenota_id2, $app_orig_prenota_id, $inizio_prenota_id2, $fine_prenota_id2, $app_assegnabili_id2, $prenota_in_app_sett2, $dati_app, $PHPR_TAB_PRE . "prenota");
            } else {
                $fatto_libera = "NO";
            }
            if ($fatto_libera == "SI") {
                $risul_agg = aggiorna_tableprenota($app_prenota_id2, $app_orig_prenota_id, $tableprenota);
                if (!$risul_agg) {
                    $fatto_libera = "NO";
                } else {
                    $occupare_app_agenzia = "NO";
                    $appartamento = $app_liberato;
                }
                # fine else if (!$risul_agg)
            } else {
                $occupare_app_agenzia = "SI";
                $limiti_var['t_limite'] = time() + $sec_limite_libsett;
                $app_liberato = "";
                $app_orig_prenota_id = $app_prenota_id;
                liberasettimane($idinizioperiodo_vett, $idfineperiodo_vett, $limiti_var, $anno, $fatto_libera2, $app_liberato, $profondita, $app_richiesti, $app_prenota_id, $app_orig_prenota_id, $inizio_prenota_id, $fine_prenota_id, $app_assegnabili_id, $prenota_in_app_sett, $dati_app, $PHPR_TAB_PRE . "prenota");
                if ($fatto_libera2 != "NO") {
                    $risul_agg = aggiorna_tableprenota($app_prenota_id, $app_orig_prenota_id, $tableprenota);
                    if (!$risul_agg) {
                        $fatto_libera2 = "NO";
                    }
                }
                # fine if ($fatto_libera2 != "NO")
                if ($fatto_libera2 == "NO") {
                    $inserire = "NO";
                    $mess_errore .= mex("Nel periodo selezionato non è possibile ospitare il cliente negli appartamenti richiesti", 'unit.php') . ".<br>";
                    for ($n_t = 1; $n_t <= $num_tipologie; $n_t++) {
                        $mess_prenota .= mex("Prenotazione", "prenota.php") . mex("dal", "prenota.php") . " <b>" . formatta_data($inizioperiodo_orig[$n_t], $stile_data) . "</b> " . mex("al", "prenota.php") . " <b>" . formatta_data($fineperiodo_orig[$n_t], $stile_data) . "</b>";
                        $mess_prenota .= " " . mex("a nome di", "prenota.php") . " <b>{$cognome}</b> ";
                        if ($numpersone[$n_t]) {
                            $mess_prenota .= " " . mex("per", "prenota.php") . " <b>" . $numpersone[$n_t] . "</b> " . mex("persone", "prenota.php") . "";
                        }
                        if ($dati_tariffe[$tipotariffa[$n_t]]['nome']) {
                            $nometariffa_vedi = $dati_tariffe[$tipotariffa[$n_t]]['nome'];
                        } else {
                            $nometariffa_vedi = mex("tariffa", "prenota.php") . substr($tipotariffa[$n_t], 7);
                        }
                        $mess_prenota .= ", " . mex("tariffa", "prenota.php") . " \"{$nometariffa_vedi}\".<br><br>";
                    }
                    # fine for $n_t
                } else {
                    $appartamento = $app_liberato;
                    $mess_regola1 .= mex("Sono stati fatti i seguenti spostamenti nei periodi della <div style=\"display: inline; color: blue;\">regola di assegnazione 1</div>", "clienti.php") . ":<br>";
                    for ($num1 = 0; $num1 < $num_app_agenzia; $num1++) {
                        $mot2 = risul_query($app_agenzia, $num1, 'motivazione2');
                        if ($mot2 != "x") {
                            $id_app_agenzia = risul_query($app_agenzia, $num1, 'app_agenzia');
                            $idinizio_app_agenzia = risul_query($app_agenzia, $num1, 'iddatainizio');
                            $idfine_app_agenzia = risul_query($app_agenzia, $num1, 'iddatafine');
                            $motivazione_app_agenzia = risul_query($app_agenzia, $num1, 'motivazione');
                            $idprenota_cambiate_da_ag = esegui_query("select idprenota from {$tableprenota} where idappartamenti = '{$id_app_agenzia}' and iddatainizio <= '{$idfine_app_agenzia}' and iddatafine >= '{$idinizio_app_agenzia}'");
                            $num_idprenota_cambiate_da_ag = numlin_query($idprenota_cambiate_da_ag);
                            for ($num2 = 0; $num2 < $num_idprenota_cambiate_da_ag; $num2 = $num2 + 1) {
                                $idprenota_cambiata = risul_query($idprenota_cambiate_da_ag, $num2, 'idprenota');
                                if ($app_prenota_id[$idprenota_cambiata] and $app_prenota_id[$idprenota_cambiata] != $id_app_agenzia) {
                                    $idapp_camb = $app_prenota_id[$idprenota_cambiata];
                                    $dati_cambiati = esegui_query("select * from {$tableprenota} where idprenota = '{$idprenota_cambiata}'");
                                    $idclienti_camb = risul_query($dati_cambiati, 0, 'idclienti');
                                    $cliente_camb = esegui_query("select cognome from {$tableclienti} where idclienti = '{$idclienti_camb}'");
                                    if ($idclienti_camb) {
                                        $cliente_camb = risul_query($cliente_camb, 0, 'cognome');
                                    } else {
                                        $cliente_camb = "?";
                                    }
                                    $iddatainizio_camb = $inizio_prenota_id[$idprenota_cambiata];
                                    $datainizio_camb = esegui_query("select datainizio from {$tableperiodi} where idperiodi = '{$iddatainizio_camb}'");
                                    $datainizio_camb = risul_query($datainizio_camb, 0, 'datainizio');
                                    $datainizio_camb_f = formatta_data($datainizio_camb, $stile_data);
                                    $iddatafine_camb = $fine_prenota_id[$idprenota_cambiata];
                                    $datafine_camb = esegui_query("select datafine from {$tableperiodi} where idperiodi = '{$iddatafine_camb}'");
                                    $datafine_camb = risul_query($datafine_camb, 0, 'datafine');
                                    $datafine_camb_f = formatta_data($datafine_camb, $stile_data);
                                    $mess_regola1 .= mex("La prenotazione dal", "clienti.php") . " {$datainizio_camb_f} " . mex("al", "clienti.php") . " {$datafine_camb_f} " . mex("a nome di", "clienti.php") . " {$cliente_camb} " . mex("verrà spostata dall'appartamento", 'unit.php') . " <div style=\"display: inline; color: blue;\"><b>{$id_app_agenzia}</b></div> (<b>{$motivazione_app_agenzia}</b>) " . mex("al", "clienti.php") . " {$idapp_camb}.<br>";
                                }
                                # fine if ($app_prenota_id[$idprenota_cambiata] and $app_prenota_id[$idprenota_cambiata] != $id_app_agenzia)
                            }
                            # fine for $num2
                            $idprenota_cambiate_a_ag = prenota_in_app_e_periodo($id_app_agenzia, $idinizio_app_agenzia, $idfine_app_agenzia, $prenota_in_app_sett, $fine_prenota_id, $num_pca);
                            for ($num2 = 1; $num2 <= $num_pca; $num2++) {
                                $idprenota_cambiata = $idprenota_cambiate_a_ag[$num2];
                                if ($app_orig_prenota_id[$idprenota_cambiata] and $app_prenota_id[$idprenota_cambiata] != $app_orig_prenota_id[$idprenota_cambiata]) {
                                    $dati_cambiati = esegui_query("select * from {$tableprenota} where idprenota = {$idprenota_cambiata}");
                                    $idapp_camb = $app_orig_prenota_id[$idprenota_cambiata];
                                    $idclienti_camb = risul_query($dati_cambiati, 0, 'idclienti');
                                    $cliente_camb = esegui_query("select cognome from {$tableclienti} where idclienti = {$idclienti_camb}");
                                    if ($idclienti_camb) {
                                        $cliente_camb = risul_query($cliente_camb, 0, 'cognome');
                                    } else {
                                        $cliente_camb = "?";
                                    }
                                    $iddatainizio_camb = $inizio_prenota_id[$idprenota_cambiata];
                                    $datainizio_camb = esegui_query("select datainizio from {$tableperiodi} where idperiodi = {$iddatainizio_camb}");
                                    $datainizio_camb = risul_query($datainizio_camb, 0, 'datainizio');
                                    $datainizio_camb_f = formatta_data($datainizio_camb, $stile_data);
                                    $iddatafine_camb = $fine_prenota_id[$idprenota_cambiata];
                                    $datafine_camb = esegui_query("select datafine from {$tableperiodi} where idperiodi = {$iddatafine_camb}");
                                    $datafine_camb = risul_query($datafine_camb, 0, 'datafine');
                                    $datafine_camb_f = formatta_data($datafine_camb, $stile_data);
                                    $mess_regola1 .= mex("La prenotazione dal", "clienti.php") . " {$datainizio_camb_f} " . mex("al", "clienti.php") . " {$datafine_camb_f} " . mex("a nome di", "clienti.php") . " {$cliente_camb} " . mex("verrà spostata dall'appartamento", 'unit.php') . " {$idapp_camb} " . mex("al", "clienti.php") . " <div style=\"display: inline; color: blue;\"><b>{$id_app_agenzia}</b></div> (<b>{$motivazione_app_agenzia}</b>).<br>";
                                }
                                # fine if ($app_orig_prenota_id[$idprenota_cambiata] and...
                            }
                            # fine for $num2
                            for ($num2 = 1; $num2 <= $id_app_richiesti; $num2++) {
                                if ($id_app_richiesti > 1) {
                                    $appartamento_controlla = $appartamento[$num2];
                                } else {
                                    $appartamento_controlla = $appartamento;
                                }
                                if ($id_app_agenzia == $appartamento_controlla and $idinizio_app_agenzia <= $idfineperiodo and $idfine_app_agenzia >= $idinizioperiodo) {
                                    $mess_regola1 .= mex("La nuova prenotazione verrà inserita nell'appartamento", 'unit.php') . " <div style=\"display: inline; color: blue;\"><b>{$id_app_agenzia}</b></div> (<b>{$motivazione_app_agenzia}</b>).<br>";
                                }
                                # fine if ($id_app_agenzia == $appartamento_controlla and ...
                            }
                            # fine for $num2
                        }
                        # fine if ($mot2 != "x")
                    }
                    # fine for $num1
                }
                # fine else if ($fatto_libera2 == "NO")
            }
            # fine else if ($fatto_libera == "SI")
        } else {
            # se non ci sono app_agenzia della regola di assegnazione 1
            unset($limiti_var);
            unset($profondita_);
            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($app_liberato);
            $limiti_var["lim_prenota_temp"] = $lim_prenota_temp;
            liberasettimane($idinizioperiodo_vett, $idfineperiodo_vett, $limiti_var, $anno, $fatto_libera, $app_liberato, $profondita_, $app_richiesti, $app_prenota_id_, $app_orig_prenota_id_, $inizio_prenota_id_, $fine_prenota_id_, $app_assegnabili_id_, $prenota_in_app_sett_, $dati_app_, $PHPR_TAB_PRE . "prenota");
            if ($fatto_libera == "NO") {
                $inserire = "NO";
                $mess_errore .= mex("Nel periodo selezionato non è possibile ospitare il cliente in un appartamento tra quelli richiesti", 'unit.php') . ".<br>";
                for ($n_t = 1; $n_t <= $num_tipologie; $n_t++) {
                    $mess_prenota .= mex("Prenotazione", "prenota.php") . mex("dal", "prenota.php") . " <b>" . formatta_data($inizioperiodo_orig[$n_t], $stile_data) . "</b> " . mex("al", "prenota.php") . " <b>" . formatta_data($fineperiodo_orig[$n_t], $stile_data) . "</b>";
                    $mess_prenota .= " " . mex("a nome di", "prenota.php") . " <b>{$cognome}</b> ";
                    if ($numpersone[$n_t]) {
                        $mess_prenota .= " " . mex("per", "prenota.php") . " <b>" . $numpersone[$n_t] . "</b> " . mex("persone", "prenota.php") . "";
                    }
                    if ($dati_tariffe[$tipotariffa[$n_t]]['nome']) {
                        $nometariffa_vedi = $dati_tariffe[$tipotariffa[$n_t]]['nome'];
                    } else {
                        $nometariffa_vedi = mex("tariffa", "prenota.php") . substr($tipotariffa[$n_t], 7);
                    }
                    $mess_prenota .= ", " . mex("tariffa", "prenota.php") . " \"{$nometariffa_vedi}\".<br><br>";
                }
                # fine for $n_t
            } else {
                $appartamento = $app_liberato;
            }
        }
        # fine else if ($num_app_agenzia != 0)
    }
    # fine if ($inserire != "NO")
    if ($inserire != "NO") {
        $metodi_pagamento = esegui_query("select valpersonalizza from {$tablepersonalizza} where idpersonalizza = 'metodi_pagamento' and idutente = '{$id_utente}'");
        $metodi_pagamento = risul_query($metodi_pagamento, 0, 'valpersonalizza');
        if ($metodi_pagamento) {
            $metodi_pagamento = explode(",", $metodi_pagamento);
        }
        $origini_prenota = esegui_query("select valpersonalizza from {$tablepersonalizza} where idpersonalizza = 'origini_prenota' and idutente = '{$id_utente}'");
        $origini_prenota = risul_query($origini_prenota, 0, 'valpersonalizza');
        if ($origini_prenota) {
            $origini_prenota = explode(",", $origini_prenota);
        }
        for ($n_t = 1; $n_t <= $num_tipologie; $n_t++) {
            $lunghezza_periodo = $fineperiodo[$n_t] - $inizioperiodo[$n_t] + 1;
            $max_idprenota = esegui_query("select numlimite from {$tablecostiprenota} where idcostiprenota = '1'");
            $max_idprenota = risul_query($max_idprenota, 0, 'numlimite');
            if ($id_prenota_imp[$n_t]) {
                $idprenota = $id_prenota_imp[$n_t];
            } else {
                $idprenota = $max_idprenota;
            }
            if ($idprenota >= $max_idprenota) {
                esegui_query("update {$tablecostiprenota} set numlimite = '" . ($idprenota + 1) . "' where idcostiprenota = '1'");
            }
            $mess_prenota .= mex("Prenotazione", "prenota.php") . " {$idprenota} " . mex("dal", "prenota.php") . " <b>" . formatta_data($inizioperiodo_orig[$n_t], $stile_data) . "</b> " . mex("al", "prenota.php") . " <b>" . formatta_data($fineperiodo_orig[$n_t], $stile_data) . "</b> ({$lunghezza_periodo} " . mex("{$parola_settiman}", "prenota.php");
            if ($lunghezza_periodo == 1) {
                $mess_prenota .= mex("{$lettera_a}", "prenota.php");
            } else {
                $mess_prenota .= mex("{$lettera_e}", "prenota.php");
            }
            $mess_prenota .= ") " . mex("a nome di", "prenota.php") . " <b>{$cognome}</b> ";
            if ($numpersone[$n_t]) {
                $mess_prenota .= mex("per", 'prenota.php') . " <b>" . $numpersone[$n_t] . "</b> " . mex("persone", 'prenota.php') . " ";
            }
            $mess_prenota .= mex("nell'appartamento", 'unit.php') . " <b>" . $appartamento[$n_t] . "</b>";
            if ($assegnazioneapp[$n_t] == "k") {
                $mess_prenota .= " (" . mex("fisso", "unit.php") . ")";
            } else {
                $mess_prenota .= " (" . mex("mobile", "prenota.php");
                if ($lista_app[$n_t]) {
                    $mess_prenota .= " " . mex("in", "prenota.php") . " " . str_replace(",", ", ", $lista_app[$n_t]);
                }
                $mess_prenota .= ")";
            }
            # fine else if ($assegnazioneapp[$n_t] == "k")
            $mess_prenota .= ":<br><br>";
            $costo_tariffa_tot = (double) 0;
            unset($lista_tariffe_sett);
            unset($lista_tariffep_sett);
            $tar_sett_imp = $tariffe_sett_imp[$n_t];
            for ($num2 = $inizioperiodo[$n_t]; $num2 <= $fineperiodo[$n_t]; $num2++) {
                $riga_tariffa = esegui_query("select * from  {$tableperiodi} where idperiodi = {$num2}");
                if (strcmp($tar_sett_imp[$num2], "")) {
                    $costo_tariffa = $tar_sett_imp[$num2];
                } else {
                    $costo_tariffa = risul_query($riga_tariffa, 0, $tipotariffa[$n_t]);
                }
                if ($dati_tariffe[$tipotariffa[$n_t]]['moltiplica'] == "p") {
                    if (!strcmp($costo_tariffa, "")) {
                        $costo_tariffa = 0;
                    }
                    if (strcmp($tar_sett_imp[$num2], "")) {
                        $costo_tariffap = 0;
                    } else {
                        $costo_tariffap = risul_query($riga_tariffa, 0, $tipotariffa[$n_t] . "p");
                    }
                    if (!strcmp($costo_tariffap, "")) {
                        $costo_tariffap = 0;
                    }
                    $costo_tariffap = (double) $costo_tariffap * (double) $numpersone[$n_t];
                    $lista_tariffep_sett .= "," . $costo_tariffap;
                    $costo_tariffa = (double) $costo_tariffa + $costo_tariffap;
                }
                # fine if ($dati_tariffe[$tipotariffa[$n_t]]['moltiplica'] == "p")
                $costo_tariffa_tot = (double) $costo_tariffa_tot + (double) $costo_tariffa;
                $lista_tariffe_sett .= "," . $costo_tariffa;
            }
            # fine for $num2
            $lista_tariffe_sett = substr($lista_tariffe_sett, 1);
            if ($lista_tariffep_sett) {
                $lista_tariffep_sett = substr($lista_tariffep_sett, 1);
                $lista_tariffe_sett .= ";{$lista_tariffep_sett}";
            }
            # fine if ($lista_tariffep_sett)
            $costo_tariffa = $costo_tariffa_tot;
            $nometariffa = $dati_tariffe[$tipotariffa[$n_t]]['nome'];
            if ($nometariffa == "") {
                $nometariffa = $tipotariffa[$n_t];
                $nometariffa_vedi = mex("tariffa", "prenota.php") . substr($tipotariffa[$n_t], 7);
            } else {
                $nometariffa_vedi = $nometariffa;
            }
            $nometariffa = aggslashdb($nometariffa);
            $tariffa = $nometariffa . "#@&" . $costo_tariffa_tot;
            if ($dati_tariffe[$tipotariffa[$n_t]]['moltiplica'] == "p") {
                $tariffa .= "#@&p";
            }
            $costo_tariffa_tot_p = punti_in_num($costo_tariffa_tot, $stile_soldi);
            $mess_prenota .= "{$costo_tariffa_tot_p} {$Euro} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " . mex("tariffa", "prenota.php") . " \"{$nometariffa_vedi}\"<br>";
            $valori = "abcdefghijkmnpqrstuvwxz";
            srand((double) microtime() * 1000000);
            unset($cod_prenota);
            for ($num2 = 0; $num2 < 4; $num2++) {
                $cod_prenota .= substr($valori, rand(0, 22), 1);
            }
            if ($conferma[$n_t] == "SI") {
                $conf = "S";
            } else {
                $conf = "N";
            }
            if ($pagato[$n_t] > 0) {
                $conf = "S";
            }
            $datainserimento = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
            esegui_query("insert into {$tableprenota} (idprenota,idclienti,idappartamenti,iddatainizio,iddatafine,tariffa,tariffesettimanali,codice,conferma,datainserimento,hostinserimento,utente_inserimento) values ('{$idprenota}','" . $idclienti[$n_t] . "','" . aggslashdb($appartamento[$n_t]) . "','" . $inizioperiodo[$n_t] . "','" . $fineperiodo[$n_t] . "','{$tariffa}','{$lista_tariffe_sett}','{$cod_prenota}','{$conf}','{$datainserimento}','{$HOSTNAME}','{$id_utente_ins}')");
            if ($numpersone[$n_t]) {
                esegui_query("update {$tableprenota} set num_persone = '" . $numpersone[$n_t] . "' where idprenota = '{$idprenota}' ");
            }
            # fine if ($numpersone[$n_t])
            if ($dati_tariffe[$tipotariffa[$n_t]]['tasse_percent']) {
                esegui_query("update {$tableprenota} set tasseperc = '" . $dati_tariffe[$tipotariffa[$n_t]]['tasse_percent'] . "' where idprenota = '{$idprenota}' ");
            }
            # fine if ($dati_tariffe[$tipotariffa[$n_t]]['tasse_percent'])
            $caparra[$n_t] = formatta_soldi($caparra[$n_t]);
            if (controlla_soldi($caparra[$n_t], "pos") == "NO") {
                $caparra[$n_t] = "";
            }
            if (!$caparra[$n_t]) {
                $caparra[$n_t] = calcola_caparra($dati_tariffe, $tipotariffa[$n_t], $inizioperiodo[$n_t], $fineperiodo[$n_t], $costo_tariffa_tot, $lista_tariffe_sett);
            }
            $sconto[$n_t] = (double) formatta_soldi($sconto[$n_t]);
            if ($sconto[$n_t] and controlla_soldi($sconto[$n_t]) == "SI") {
                if ($sconto[$n_t] > $costo_tariffa_tot) {
                    $sconto[$n_t] = $costo_tariffa_tot;
                }
                esegui_query("update {$tableprenota} set sconto = '" . $sconto[$n_t] . "' where idprenota = '{$idprenota}' ");
                $sconto_p = punti_in_num($sconto[$n_t], $stile_soldi);
                if (substr($sconto_p, 0, 1) == "-") {
                    $sconto_p = substr($sconto_p, 1);
                } else {
                    $mess_prenota .= "-";
                }
                $mess_prenota .= "{$sconto_p} {$Euro} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " . mex("Sconto", "prenota.php") . "<br>";
                $costo_tariffa_tot = (double) $costo_tariffa_tot - (double) $sconto[$n_t];
            }
            # fine if ($sconto[$n_t] and...
            $commissioni[$n_t] = formatta_soldi($commissioni[$n_t]);
            if (controlla_soldi($commissioni[$n_t], "pos") == "NO") {
                $commissioni[$n_t] = "";
            }
            if (!$commissioni[$n_t]) {
                $commissioni[$n_t] = calcola_commissioni($dati_tariffe, $tipotariffa[$n_t], $inizioperiodo[$n_t], $fineperiodo[$n_t], $lista_tariffe_sett, $sconto[$n_t], 0);
            }
            esegui_query("update {$tableprenota} set tariffa_tot = '{$costo_tariffa_tot}' where idprenota = '{$idprenota}' ");
            $costo_tariffa_tot_p = punti_in_num($costo_tariffa_tot, $stile_soldi);
            $mess_prenota .= "<b>{$costo_tariffa_tot_p} {$Euro} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " . mex("TOTALE", "prenota.php") . "</b><br>";
            if ($lista_app[$n_t]) {
                esegui_query("update {$tableprenota} set app_assegnabili = '" . $lista_app[$n_t] . "' where idprenota = '{$idprenota}' ");
            }
            # fine if ($lista_app[$n_t])
            if ($assegnazioneapp[$n_t]) {
                esegui_query("update {$tableprenota} set assegnazioneapp = '" . $assegnazioneapp[$n_t] . "' where idprenota = '{$idprenota}' ");
            }
            # fine if ($assegnazioneapp[$n_t])
            if ($caparra[$n_t]) {
                if ($caparra[$n_t] > $costo_tariffa_tot) {
                    $caparra[$n_t] = $costo_tariffa_tot;
                }
                esegui_query("update {$tableprenota} set caparra = '" . $caparra[$n_t] . "' where idprenota = '{$idprenota}' ");
                $da_pagare = $costo_tariffa_tot - $caparra[$n_t];
                $caparra_p = punti_in_num($caparra[$n_t], $stile_soldi);
                $da_pagare_p = punti_in_num($da_pagare, $stile_soldi);
                $mess_prenota .= "<br>" . mex("Caparra", "prenota.php") . ": <b>{$caparra_p}</b> {$Euro} (" . mex("resto da pagare", "prenota.php") . ": {$da_pagare_p} {$Euro}).<br>";
            }
            # fine if ($caparra[$n_t])
            $met_trovato = "NO";
            if ($met_paga_caparra[$n_t] and $metodi_pagamento) {
                for ($num2 = 0; $num2 < count($metodi_pagamento); $num2++) {
                    if ($met_paga_caparra[$n_t] == $metodi_pagamento[$num2]) {
                        $met_trovato = "SI";
                    }
                }
                # fine for $num2
                if ($met_trovato == "SI") {
                    esegui_query("update {$tableprenota} set metodo_pagamento = '" . aggslashdb($met_paga_caparra[$n_t]) . "' where idprenota = '{$idprenota}' ");
                    if (!$caparra) {
                        $mess_prenota .= "<br>";
                    }
                    $mess_prenota .= mex("Metodo pagamento caparra", "prenota.php") . ": <b>" . $met_paga_caparra[$n_t] . "</b>.<br>";
                }
                # fine if ($met_trovato == "SI")
            }
            # fine if ($met_paga_caparra[$n_t] and $metodi_pagamento)
            if ($commissioni[$n_t]) {
                esegui_query("update {$tableprenota} set commissioni = '" . $commissioni[$n_t] . "' where idprenota = '{$idprenota}' ");
                $resto_comm = $costo_tariffa_tot - $commissioni[$n_t];
                $commissioni_p = punti_in_num($commissioni[$n_t], $stile_soldi);
                $resto_comm_p = punti_in_num($resto_comm, $stile_soldi);
                if (!$caparra[$n_t] and $met_trovato == "NO") {
                    $mess_prenota .= "<br>";
                }
                $mess_prenota .= mex("Commissioni", "prenota.php") . ": <b>{$commissioni_p}</b> {$Euro} (" . mex("resto commissioni", "prenota.php") . ": {$resto_comm_p} {$Euro}).<br>";
            }
            # fine if ($commissioni[$n_t])
            # calcolo costi nulli, non letto e senza inventario da associare alla tariffa, tutti come se fossero "se possibile"
            if ($ins_costi_agg == "costi_nulli") {
                unset($num_letti_agg);
                unset($num_costi_presenti);
                $oggi_costo = date("Ymd", time() + C_DIFF_ORE * 3600);
                for ($num_costo = 0; $num_costo < $dati_ca['num']; $num_costo++) {
                    if (!$dati_ca[$num_costo]['valore'] and !$dati_ca[$num_costo]['valore_perc'] and $dati_ca[$num_costo]['letto'] != "s" and !$dati_ca[$num_costo]['tipo_beniinv']) {
                        $associa_costo = "NO";
                        $associa_costo_tariffa = associa_costo_a_tariffa($dati_ca, $num_costo, $tipotariffa[$n_t], $fineperiodo[$n_t] - $inizioperiodo[$n_t] + 1);
                        if ($associa_costo_tariffa == "SI") {
                            $associa_costo = "SI";
                        }
                        if ($associa_costo_tariffa != "SI" and !$dati_ca[$num_costo]["incomp_" . $tipotariffa[$n_t]]) {
                            if ($dati_ca[$num_costo]['assegna_con_num_prenota'] and count($inizioperiodo) >= $dati_ca[$num_costo]['assegna_con_num_prenota']) {
                                $associa_costo = "SI";
                            }
                            if ($dati_ca[$num_costo]['assegna_da_ini_prenota']) {
                                $giorni_lim = substr($dati_ca[$num_costo]['assegna_da_ini_prenota'], 1);
                                $limite = date("Ymd", mktime(0, 0, 0, substr($inizioperiodo_orig[$n_t], 5, 2), substr($inizioperiodo_orig[$n_t], 8, 2) - $giorni_lim, substr($inizioperiodo_orig[$n_t], 0, 4)));
                                if (substr($dati_ca[$num_costo]['assegna_da_ini_prenota'], 0, 1) == ">" and $oggi_costo < $limite) {
                                    $associa_costo = "SI";
                                }
                                if (substr($dati_ca[$num_costo]['assegna_da_ini_prenota'], 0, 1) == "<" and $oggi_costo > $limite) {
                                    $associa_costo = "SI";
                                }
                            }
                            # fine if ($dati_ca[$num_costo][assegna_da_ini_prenota])
                        }
                        # fine if ($associa_costo_tariffa != "SI" and...
                        if ($associa_costo == "SI") {
                            #if ($dati_ca[$num_costo][tipo_val] == "q" and $costo_totale_presente = "SI") $associa_costo = "NO";
                            $settimane_costo = calcola_settimane_costo($tableperiodi, $dati_ca, $num_costo, $inizioperiodo[$n_t], $fineperiodo[$n_t], "", "");
                            calcola_moltiplica_costo($dati_ca, $num_costo, $moltiplica, $inizioperiodo[$n_t], $fineperiodo[$n_t], $settimane_costo, "", $numpersone[$n_t], $num_letti_agg);
                            $num_costi_presenti_copia = $num_costi_presenti;
                            $periodo_costo_trovato = trova_periodo_permesso_costo($dati_ca, $num_costo, $inizioperiodo[$n_t], $fineperiodo[$n_t], $settimane_costo);
                            if ($periodo_costo_trovato == "NO") {
                                $associa_costo = "NO";
                            } else {
                                if (controlla_num_limite_costo($tablecostiprenota, $tableprenota, $dati_ca, $num_costo, $num_costi_presenti_copia, $inizioperiodo[$n_t], $fineperiodo[$n_t], $settimane_costo, $moltiplica) == "NO") {
                                    $associa_costo = "NO";
                                }
                            }
                            if ($associa_costo == "SI") {
                                $num_costi_presenti = $num_costi_presenti_copia;
                                $idcostiprenota = esegui_query("select max(idcostiprenota) from {$tablecostiprenota}");
                                $idcostiprenota = risul_query($idcostiprenota, 0, 0) + 1;
                                $tipo_ca = $dati_ca[$num_costo]['tipo'] . $dati_ca[$num_costo]['tipo_val'];
                                $valore_ca = $dati_ca[$num_costo]['valore'];
                                $valore_perc_ca = $dati_ca[$num_costo]['valore_perc'];
                                $associasett_ca = $dati_ca[$num_costo]['associasett'];
                                if ($dati_ca[$num_costo]['var_percentuale'] != "s" and $dati_ca[$num_costo]['tipo_val'] != "f") {
                                    $tipo_ca = $dati_ca[$num_costo]['tipo'] . "f";
                                    $moltiplica = 1;
                                    if ($dati_ca[$num_costo]['tipo'] == "s") {
                                        $settimane_costo = 1;
                                        $associasett_ca = "n";
                                    }
                                    # fine if ($dati_ca[$num_costo][tipo] == "s")
                                }
                                # fine if ($dati_ca[$num_costo][var_percentuale] != "s" and...
                                if ($dati_ca[$num_costo]['var_moltiplica'] == "s") {
                                    $varmoltiplica_ca = $dati_ca[$num_costo]['moltiplica'] . $dati_ca[$num_costo]['molt_max'] . $dati_ca[$num_costo]['molt_agg'] . "," . $dati_ca[$num_costo]['molt_max_num'];
                                } else {
                                    $varmoltiplica_ca = "cx0,";
                                }
                                if ($dati_ca[$num_costo]['var_numsett'] == "s") {
                                    $varnumsett_ca = $dati_ca[$num_costo]['numsett_orig'];
                                } else {
                                    $varnumsett_ca = "c";
                                }
                                if ($dati_ca[$num_costo]['var_periodip'] == "s") {
                                    $varperiodipermessi_ca = $dati_ca[$num_costo]['periodipermessi_orig'];
                                } else {
                                    $varperiodipermessi_ca = "";
                                }
                                $varbeniinv_ca = "";
                                $varappincompatibili_ca = "";
                                if ($dati_ca[$num_costo]['var_tariffea'] == "s") {
                                    $vartariffeassociate_ca = "p" . $dati_ca[$num_costo][$tipotariffa[$n_t]];
                                } else {
                                    $vartariffeassociate_ca = "";
                                }
                                $vartariffeincomp_ca = "";
                                if ($dati_ca[$num_costo]['var_tariffei'] == "s") {
                                    for ($numtariffa = 1; $numtariffa <= $dati_tariffe['num']; $numtariffa++) {
                                        if ($dati_ca[$num_costo]["incomp_tariffa" . $numtariffa] == "i") {
                                            $vartariffeincomp_ca .= "," . $numtariffa;
                                        }
                                    }
                                    # fine for $numtariffa
                                    if ($vartariffeincomp_ca) {
                                        $vartariffeincomp_ca = substr($vartariffeincomp_ca, 1);
                                    }
                                }
                                # fine if ($dati_ca[$num_costo][var_tariffei] == "s")
                                if ($dati_ca[$num_costo]['var_comb'] == "s") {
                                    $variazione_ca = $dati_ca[$num_costo]['combina'];
                                } else {
                                    $variazione_ca = "n";
                                }
                                $variazione_ca .= $dati_ca[$num_costo]['escludi_tot_perc'];
                                esegui_query("insert into {$tablecostiprenota} (idcostiprenota,idprenota,tipo,nome,valore,associasett,settimane,moltiplica,letto,idntariffe,variazione,varmoltiplica,varnumsett,varperiodipermessi,varbeniinv,varappincompatibili,vartariffeassociate,vartariffeincomp,datainserimento,hostinserimento,utente_inserimento) values ('{$idcostiprenota}','{$idprenota}','{$tipo_ca}','" . aggslashdb($dati_ca[$num_costo]['nome']) . "','{$valore_ca}','{$associasett_ca}','{$settimane_costo}','{$moltiplica}','" . $dati_ca[$num_costo]['letto'] . "','" . $dati_ca[$num_costo]['id'] . "','{$variazione_ca}','{$varmoltiplica_ca}','{$varnumsett_ca}','{$varperiodipermessi_ca}','{$varbeniinv_ca}','{$varappincompatibili_ca}','{$vartariffeassociate_ca}','{$vartariffeincomp_ca}','{$datainserimento}','{$HOSTNAME}','{$id_utente_ins}')");
                                if (substr($tipo_ca, 1, 1) != "f") {
                                    esegui_query("update {$tablecostiprenota} set valore_perc = '{$valore_perc_ca}', arrotonda = '" . $dati_ca[$num_costo]['arrotonda'] . "' where idcostiprenota = '{$idcostiprenota}'");
                                }
                                if ($dati_ca[$num_costo]['tasseperc']) {
                                    esegui_query("update {$tablecostiprenota} set tasseperc = '" . $dati_ca[$num_costo]['tasseperc'] . "' where idcostiprenota = '{$idcostiprenota}'");
                                }
                                if (strcmp($dati_ca[$num_costo]['categoria'], "")) {
                                    esegui_query("update {$tablecostiprenota} set categoria = '" . $dati_ca[$num_costo]['categoria'] . "' where idcostiprenota = '{$idcostiprenota}'");
                                }
                            }
                            # fine if ($associa_costo == "SI")
                        }
                        # fine if ($associa_costo == "SI")
                    }
                    # fine if (!$dati_ca[$num_costo]['valore'] and !$dati_ca[$num_costo]['valore_perc'] and...
                }
                # fine for $num_costo
            }
            # fine if ($ins_costi_agg == "costi_nulli")
            if ($origine_prenota[$n_t] and $origini_prenota) {
                $orig_trovata = "NO";
                for ($num2 = 0; $num2 < count($origini_prenota); $num2++) {
                    if ($origine_prenota[$n_t] == $origini_prenota[$num2]) {
                        $orig_trovata = "SI";
                    }
                }
                # fine for $num2
                if ($orig_trovata == "SI") {
                    $origine_prenota[$n_t] = aggslashdb($origine_prenota[$n_t]);
                    esegui_query("update {$tableprenota} set origine = '" . $origine_prenota[$n_t] . "' where idprenota = '{$idprenota}' ");
                    if (!$caparra[$n_t] and $met_trovato == "NO" and !$commissioni[$n_t]) {
                        $mess_prenota .= "<br>";
                    }
                    $mess_prenota .= mex("Origine", "prenota.php") . ": <b>" . stripslashes($origine_prenota[$n_t]) . "</b>.<br>";
                }
                # fine if ($orig_trovata == "SI")
            }
            # fine if ($origine_prenota[$n_t] and $origini_prenota)
            if ($giorno_stima_checkin[$n_t] and $ora_stima_checkin[$n_t] and $min_stima_checkin[$n_t]) {
                if ($tipo_periodi == "g") {
                    $giorni_periodo = $lunghezza_periodo;
                } else {
                    $giorni_periodo = $lunghezza_periodo * 7;
                }
                if (controlla_num_pos($giorno_stima_checkin[$n_t]) == "SI" and $giorno_stima_checkin[$n_t] >= 1 and $giorno_stima_checkin[$n_t] <= 7 and $giorno_stima_checkin[$n_t] <= $giorni_periodo + 1) {
                    $data_stima_checkin = esegui_query("select datainizio from {$tableperiodi} where idperiodi = '" . $inizioperiodo[$n_t] . "'");
                    $data_stima_checkin = risul_query($data_stima_checkin, 0, 'datainizio');
                    $data_ini_prenota_f = formatta_data($data_stima_checkin, $stile_data);
                    $anno_dts = substr($data_stima_checkin, 0, 4);
                    $mese_dts = substr($data_stima_checkin, 5, 2);
                    $giorno_dts = substr($data_stima_checkin, 8, 2);
                    $data_stima_checkin = date("Y-m-d", mktime(0, 0, 0, $mese_dts, $giorno_dts + $giorno_stima_checkin[$n_t] - 1, $anno_dts));
                    $stima_checkin = $data_stima_checkin . " " . $ora_stima_checkin[$n_t] . ":" . $min_stima_checkin[$n_t] . ":00";
                    if (preg_match("/[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:00/", $stima_checkin)) {
                        esegui_query("update {$tableprenota} set checkout = '{$stima_checkin}' where idprenota = '{$idprenota}' ");
                        $mess_prenota .= "<br>" . mex("Orario stimato di entrata", "prenota.php") . ": <b>" . substr(str_replace($data_ini_prenota_f, "", formatta_data($stima_checkin, $stile_data)), 0, -3) . "</b>.<br>";
                    }
                    # fine if (preg_match("/[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:00/",$stima_checkin))
                }
                # fine if (controlla_num_pos($giorno_stima_checkin) == "SI" and...
            }
            # fine if ($giorno_stima_checkin[$n_t] and $ora_stima_checkin[$n_t] and $min_stima_checkin[$n_t])
            if ($commento[$n_t]) {
                $commento[$n_t] = htmlspecialchars($commento[$n_t]);
                $mess_prenota .= "<br>" . mex("Commento", "prenota.php") . ": " . $commento[$n_t] . "<br>";
                $commento[$n_t] = aggslashdb($commento[$n_t]);
                esegui_query("update {$tableprenota} set commento = '" . $commento[$n_t] . "' where idprenota = '{$idprenota}' ");
            }
            # fine if ($commento[$n_t])
            $mess_prenota .= "<br>" . mex("Prenotazione", "prenota.php") . " {$idprenota} " . mex("inserita", "prenota.php") . "!<br>";
            if ($n_t != $num_tipologie) {
                $mess_prenota .= "<hr style=\"width: 95%\">";
            }
            $lista_idprenota .= ",{$idprenota}";
            $lista_idini .= "," . $inizioperiodo[$n_t];
            $lista_idfine .= "," . $fineperiodo[$n_t];
            #$costo_tot_mess = (double) $costo_tot_mess + (double) $costo_tariffa_tot;
            #$caparra_mess = (double) $caparra_mess + (double) $caparra;
        }
        # fine for $n_t
        $lista_idprenota = substr($lista_idprenota, 1);
        $lista_idini = substr($lista_idini, 1);
        $lista_idfine = substr($lista_idfine, 1);
        if ($prenota_vicine == "SI") {
            $lista_idprenota_vett = explode(",", $lista_idprenota);
            for ($num1 = 0; $num1 < count($lista_idprenota_vett); $num1++) {
                $idprenota = $lista_idprenota_vett[$num1];
                $idprenota_vicine = substr(str_replace("," . $idprenota . ",", ",", "," . $lista_idprenota . ","), 1, -1);
                esegui_query("update {$tableprenota} set idprenota_compagna = '{$idprenota_vicine}' where idprenota = '{$idprenota}' ");
            }
            # fine for $num1
        }
        # fine if ($prenota_vicine == "SI")
        $stato['inserita'] = "SI";
    }
    # fine if ($inserire != "NO")
    if (!@is_array($stato) or $stato['inserita'] != "SI") {
        $stato['inserita'] = "NO";
    }
    $stato['mess_errore'] = $mess_errore;
    $stato['mess_regola1'] = $mess_regola1;
    $stato['mess_prenota'] = $mess_prenota;
    $stato['lista_idprenota'] = $lista_idprenota;
    $stato['idinizioperiodo'] = $lista_idini;
    $stato['idfineperiodo'] = $lista_idfine;
    return $lista_idprenota;
}
Example #7
0
$priv_ins_nuove_prenota = "n";
$priv_ins_spese = "n";
$priv_ins_entrate = "n";
$priv_ins_costi_agg = "n";
} # fine if (@is_file(C_DATI_PATH."/dati_subordinazione.php"))


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");


#$tabelle_lock = array("$tableprenota");
$altre_tab_lock = array($tableprenota,$tablenometariffe,$tableperiodi,$tableappartamenti,$tableclienti,$tableregole,$tablepersonalizza);
$tabelle_lock = lock_tabelle($tabelle_lock,$altre_tab_lock);

if ($priv_mod_prenota_iniziate != "s" or $priv_oscura_tab_mesi == "f") $id_periodo_corrente = calcola_id_periodo_corrente($anno);

$oggi = date("j/n/Y",(time() + (C_DIFF_ORE * 3600)));
$ora = date("H:i",(time() + (C_DIFF_ORE * 3600)));
echo "<small><small>".mex("situazione alle",$pag)." $ora ".mex("del",$pag)." $oggi</small></small><br>";

if ($anno_succ == "SI") { $mese = $mese + 12; }

$data_inizio_periodi = esegui_query("select * from $tableperiodi where idperiodi = 1");
$data_inizio_periodi = risul_query($data_inizio_periodi,0,'datainizio');
$data_inizio_periodi = explode("-",$data_inizio_periodi);
$mese_inizio_periodi = $data_inizio_periodi[1];
if ($mese < $mese_inizio_periodi) { $mese = $mese_inizio_periodi; }
$data_fine_periodi = esegui_query("select max(idperiodi) from $tableperiodi");
$id_data_fine_periodi = risul_query($data_fine_periodi,0,0);
$data_fine_periodi = esegui_query("select * from $tableperiodi where idperiodi = '$id_data_fine_periodi'");
else ${"idcostoagg".$numca} = $dati_ca[$num1]['id'];
} # fine if ($dati_ca[$num1]['combina'] == "s" and...
} # fine for $num1
if (!$num_in_cat) $inserire = "NO";
} # fine if (substr(${"idcostoagg".$numca},0,1) == "c")

$dati_form_modifica .= "<input type=\"hidden\" name=\"$costoagg\" value=\"".$$costoagg."\">
<input type=\"hidden\" name=\"$numsettimane\" value=\"".$$numsettimane."\">
<input type=\"hidden\" name=\"$nummoltiplica_ca\" value=\"".$$nummoltiplica_ca."\">
<input type=\"hidden\" name=\"$idcostoagg\" value=\"".$$idcostoagg."\">";
} # fine for $numca
$dati_form_modifica .=  "<input type=\"hidden\" name=\"numcostiagg\" value=\"$numcostiagg\">";


if ($modifica_pers == "NO" and ($n_inizioperiodo or $n_fineperiodo)) @include(C_DATA_PATH."/selperiodimenu$anno.$id_utente.php");
$id_periodo_corrente = calcola_id_periodo_corrente($anno);

if ($n_inizioperiodo) {
$n_inizioperiodo = aggslashdb($n_inizioperiodo);
$n_inizioperiodo_f = formatta_data($n_inizioperiodo,$stile_data);
echo mex("La data iniziale verrà cambiata dal",$pag)." <b>$d_data_inizio_f</b> ".mex("al",$pag)." <b>$n_inizioperiodo_f</b>.<br>";
$idinizioperiodo = esegui_query("select idperiodi from $tableperiodi where datainizio = '$n_inizioperiodo' ");
$num_idinizioperiodo = numlin_query($idinizioperiodo);
if ($num_idinizioperiodo == 0) $inizioperiodo = 100000;
else $inizioperiodo = risul_query($idinizioperiodo,0,'idperiodi');
if ($modifica_pers == "NO" and !strpos($dates_options_list,$n_inizioperiodo)) $inizioperiodo = 100000;
if (substr($n_inizioperiodo,0,4) != $anno and $inizioperiodo != 100000) {
$anno_succ_esistente = esegui_query("select idanni from $tableanni where idanni = '".($anno + 1)."'");
if (numlin_query($anno_succ_esistente) == 1) {
$data_succ_esistente = esegui_query("select idperiodi from $PHPR_TAB_PRE"."periodi".($anno + 1)." where datainizio <= '$n_inizioperiodo'");
if (numlin_query($data_succ_esistente) >= 1) $inizioperiodo = 100000;
function 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, $nome_tab_prenota = "prenota")
{
    global $PHPR_TAB_PRE, $sec_limite_libsett, $debug;
    $tableprenota = $nome_tab_prenota . $anno . $profondita['iniziale'];
    $tableperiodi = $PHPR_TAB_PRE . "periodi" . $anno;
    $tableappartamenti = $PHPR_TAB_PRE . "appartamenti";
    if (!$limiti_var['idperiodocorrente']) {
        $limiti_var['idperiodocorrente'] = calcola_id_periodo_corrente($anno);
    }
    if (!$limiti_var['tutti_fissi']) {
        $tablepersonalizza = $PHPR_TAB_PRE . "personalizza";
        $prenota_tutte_fisse = esegui_query("select valpersonalizza from {$tablepersonalizza} where idpersonalizza = 'tutti_fissi' and idutente = '1'");
        $limiti_var['tutti_fissi'] = risul_query($prenota_tutte_fisse, 0, 'valpersonalizza');
        if ($limiti_var['tutti_fissi'] != "SI") {
            if (defined("C_SEC_LIMITE_LIBERA_APP") and C_SEC_LIMITE_LIBERA_APP != "") {
                $sec_limite_libsett = C_SEC_LIMITE_LIBERA_APP;
            } else {
                $sec_limite_libsett = $limiti_var['tutti_fissi'];
            }
            $limiti_var['t_limite'] = time() + $sec_limite_libsett;
        }
        # fine if ($limiti_var['tutti_fissi'] != "SI")
    }
    # fine if (!$limiti_var['tutti_fissi'])
    if (!$limiti_var['lim_prenota_temp']) {
        $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'] = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600 - $minuti_durata_insprenota * 60);
    }
    # fine if (!$limiti_var['lim_prenota_temp'])
    # metto i data della tabella appartamenti in $dati_app
    if (!$dati_app) {
        $idapp = esegui_query("select idappartamenti,maxoccupanti,app_vicini from {$tableappartamenti} order by priorita");
        $numappartamenti = numlin_query($idapp);
        for ($num1 = 0; $num1 < $numappartamenti; $num1++) {
            $numapp = risul_query($idapp, $num1, 'idappartamenti');
            $maxocc = risul_query($idapp, $num1, 'maxoccupanti');
            $dati_app['posizione'][$num1] = $numapp;
            $dati_app['maxocc'][$numapp] = $maxocc;
            $dati_app['vicini'][$numapp] = risul_query($idapp, $num1, 'app_vicini');
            if ($dati_app['vicini'][$numapp]) {
                $dati_app['vicini'][$numapp] .= ",{$numapp}";
            } else {
                $dati_app['vicini'][$numapp] = "{$numapp}";
            }
        }
        # fine for $num1
        asort($dati_app['maxocc']);
        reset($dati_app['maxocc']);
        $dati_app['minocc'] = current($dati_app['maxocc']);
        $lista_tutti_app = ",";
        while (list($key, $val) = each($dati_app['posizione'])) {
            $lista_tutti_app .= "{$val},";
        }
        $dati_app['lista'] = $lista_tutti_app;
        $dati_app['totapp'] = $numappartamenti;
    }
    # fine if (!$dati_app)
    if ((string) $limiti_var['ini'] == "") {
        $limiti_var['ini'] = $limiti_var['n_fine'] + 1;
    }
    if ((string) $limiti_var['fine'] == "") {
        $limiti_var['fine'] = $limiti_var['n_ini'] - 1;
    }
    for ($num_rip = 0; $num_rip < 2; $num_rip++) {
        if ($num_rip) {
            if ($lista_comp) {
                $lista_comp = explode(",", substr($lista_comp, 1));
                $num_lista_comp = count($lista_comp);
                for ($num1 = 0; $num1 < $num_lista_comp; $num1++) {
                    if (!$app_prenota_id[$lista_comp[$num1]]) {
                        $query_comp .= "idprenota = '" . $lista_comp[$num1] . "' or ";
                    }
                    # fine if (!$app_prenota_id[$lista_comp[$num1]])
                }
                # fine for $num1
                $query_comp = substr($query_comp, 0, -3);
            }
            # fine if ($lista_comp)
            if ($query_comp) {
                $prenota_in_var = esegui_query("select idprenota,idclienti,idappartamenti,iddatainizio,iddatafine,assegnazioneapp,app_assegnabili,num_persone,idprenota_compagna,checkin,datainserimento from {$tableprenota} where {$query_comp} ");
            } else {
                break;
            }
        } else {
            $prenota_in_var = esegui_query("select idprenota,idclienti,idappartamenti,iddatainizio,iddatafine,assegnazioneapp,app_assegnabili,num_persone,idprenota_compagna,checkin,datainserimento from {$tableprenota} where (iddatainizio < '" . $limiti_var[ini] . "' and iddatafine >= '" . $limiti_var[n_ini] . "') or (iddatainizio <= '" . $limiti_var[n_fine] . "' and iddatafine > '" . $limiti_var[fine] . "')");
        }
        $num_prenota_in_var = numlin_query($prenota_in_var);
        for ($num1 = 0; $num1 < $num_prenota_in_var; $num1++) {
            $ins_prenota = 1;
            if (risul_query($prenota_in_var, $num1, 'idclienti') == "0") {
                if ($limiti_var['lim_prenota_temp'] > risul_query($prenota_in_var, $num1, 'datainserimento')) {
                    $ins_prenota = 0;
                }
            }
            # fine if (risul_query($prenota_in_var,$num1,'idclienti') == "0")
            $idprenota = risul_query($prenota_in_var, $num1, 'idprenota');
            if (!$app_prenota_id[$idprenota] and $ins_prenota) {
                $app_prenota = risul_query($prenota_in_var, $num1, 'idappartamenti');
                if (strstr($dati_app['lista'], "," . $app_prenota . ",")) {
                    $app_prenota_id[$idprenota] = $app_prenota;
                    $app_orig_prenota_id[$idprenota] = $app_prenota_id[$idprenota];
                    $inizio_prenota_id[$idprenota] = risul_query($prenota_in_var, $num1, 'iddatainizio');
                    $fine_prenota_id[$idprenota] = risul_query($prenota_in_var, $num1, 'iddatafine');
                    $app_assegnabili_id[0][$idprenota] = risul_query($prenota_in_var, $num1, 'idprenota_compagna');
                    if ($app_assegnabili_id[0][$idprenota]) {
                        $lista_comp .= "," . $app_assegnabili_id[0][$idprenota];
                    }
                    for ($num2 = $inizio_prenota_id[$idprenota]; $num2 <= $fine_prenota_id[$idprenota]; $num2++) {
                        $prenota_in_app_sett[$app_prenota_id[$idprenota]][$num2] = $idprenota;
                    }
                    # fine for $num2
                    $assegnazione_app = risul_query($prenota_in_var, $num1, 'assegnazioneapp');
                    $checkin = risul_query($prenota_in_var, $num1, 'checkin');
                    if ($inizio_prenota_id[$idprenota] > $limiti_var['idperiodocorrente'] and $assegnazione_app != "k" and $limiti_var['tutti_fissi'] != "SI" and !$checkin) {
                        $num_persone = risul_query($prenota_in_var, $num1, 'num_persone');
                        $app_assegnabili = risul_query($prenota_in_var, $num1, 'app_assegnabili');
                        if (!$num_persone or $num_persone <= $dati_app['minocc']) {
                            if ($assegnazione_app == "v") {
                                $app_assegnabili_id[$idprenota] = "v";
                            }
                            if ($assegnazione_app == "c") {
                                $app_assegnabili_id[$idprenota] = $app_assegnabili;
                            }
                        } else {
                            if ($assegnazione_app == "v") {
                                $lista_app = $dati_app['lista'];
                            }
                            if ($assegnazione_app == "c") {
                                $lista_app = "," . $app_assegnabili . ",";
                            }
                            $app_in_lista = explode(",", $lista_app);
                            $num_app_in_lista = count($app_in_lista) - 1;
                            for ($num2 = 1; $num2 < $num_app_in_lista; $num2++) {
                                if ($dati_app['maxocc'][$app_in_lista[$num2]] and $dati_app['maxocc'][$app_in_lista[$num2]] < $num_persone) {
                                    $lista_app = str_replace("," . $app_in_lista[$num2] . ",", ",", $lista_app);
                                }
                                # fine if ($dati_app['maxocc'][$app_in_lista[$num2]] and $dati_app['maxocc'][$app_in_lista[$num2]] < $num_persone)
                            }
                            # fine for $num2
                            $lista_app = substr($lista_app, 1, -1);
                            $app_assegnabili_id[$idprenota] = $lista_app;
                        }
                        # fine else if (!$num_persone or $num_persone <= $dati_app[minocc])
                    }
                    # fine if ($inizio_prenota_id[$idprenota] > $limiti_var['idperiodocorrente'] and $assegnazione_app != "k" and...
                    if ($debug == "on") {
                        echo "Aggiunta prenota {$idprenota} dal " . $inizio_prenota_id[$idprenota] . " al " . $fine_prenota_id[$idprenota] . " in " . $app_prenota_id[$idprenota] . " assegnabile in " . $app_assegnabili_id[$idprenota] . "<br>";
                    }
                }
                # fine if (strstr($dati_app['lista'],",".$app_prenota.","))
            }
            # fine if (!$app_prenota_id[$idprenota] and $ins_prenota)
        }
        # fine for $num1
    }
    # fine for $num_rip
    if ($limiti_var['n_ini'] < $limiti_var['ini']) {
        $limiti_var['ini'] = $limiti_var['n_ini'];
    }
    if ($limiti_var['n_fine'] > $limiti_var['fine']) {
        $limiti_var['fine'] = $limiti_var['n_fine'];
    }
}
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")
}