<?php

##################################################################################
#    HOTELDRUID
#    Copyright (C) 2001-2023 by Marco Maria Francesco De Santis (marco@digitaldruid.net)
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU Affero General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    any later version accepted by Marco Maria Francesco De Santis, which
#    shall act as a proxy as defined in Section 14 of version 3 of the
#    license.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU Affero General Public License for more details.
#
#    You should have received a copy of the GNU Affero General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
##################################################################################

$pag = "disponibilita.php";
$titolo = "HotelDruid: Disponibilità";

$var_pag = array();
$var_pag[0] = 'inizioperiodo';
$var_pag[1] = 'fineperiodo';
$var_pag[2] = 'numpersone';
$var_pag[3] = 'num_cat_pers_passa';
$var_pag[4] = 'controlla_tariffe';
$var_pag[5] = 'numcostiagg';
$var_pag[6] = 'num_tariffe_passa';
$var_pag[7] = 'mostra_non_disp';
$var_pag[8] = 'num_persone_casa';
$var_pag[9] = 'molt_app_persone_casa';
$var_pag[10] = 'prenota_vicine';
$var_pag[11] = 'cognome_1';
$var_pag[12] = 'email_1';
$var_pag[13] = 'testo_email_richiesta';
$var_pag[14] = 'origine';
$n_var_pag = 15;
if (isset($_REQUEST['num_cat_pers_passa'])) $num2 = (int) $_REQUEST['num_cat_pers_passa'];
else $num2 = 0;
for ($num1 = 0 ; $num1 < $num2 ; $num1++) $var_pag[$n_var_pag++] = "cat$num1".'_numpers';
if (isset($_REQUEST['num_tariffe_passa'])) $num3 = (int) $_REQUEST['num_tariffe_passa'];
else $num3 = 0;
for ($num1 = 1 ; $num1 <= $num3 ; $num1++) {
$var_pag[$n_var_pag++] = "reg2_tariffa$num1";
$var_pag[$n_var_pag++] = "molt_reg2_tariffa$num1";
$var_pag[$n_var_pag++] = "pers_reg2_tariffa$num1";
for ($num4 = 0 ; $num4 < $num2 ; $num4++) $var_pag[$n_var_pag++] = "cat$num4"."_pers_reg2_tariffa$num1";
} # fine for $num1
if (isset($_REQUEST['numcostiagg'])) $num2 = (int) $_REQUEST['numcostiagg'];
else $num2 = 0;
for ($num1 = 1 ; $num1 <= $num2 ; $num1++) {
$var_pag[$n_var_pag++] = "idcostoagg$num1";
$var_pag[$n_var_pag++] = "id_periodi_costo$num1";
$var_pag[$n_var_pag++] = "costoagg$num1";
$var_pag[$n_var_pag++] = "catpers_ca$num1";
$var_pag[$n_var_pag++] = "nummoltiplica_ca$num1";
$var_pag[$n_var_pag++] = "numsettimane$num1";
$var_pag[$n_var_pag++] = "lista_sett_passa$num1";
if (isset($_REQUEST["lista_sett_passa$num1"])) $num4 = $_REQUEST["lista_sett_passa$num1"];
else $num4 = "";
if ($num4) {
$num4 = explode(",",$num4);
$num5 = count($num4);
for ($num3 = 1 ; $num3 < $num5 ; $num3++) $var_pag[$n_var_pag++] = "sett".(int) $num4[$num3]."costo$num1";
} # fine if ($num4)
} # fine for $num1

include("./costanti.php");
include(C_DATI_PATH."/dati_connessione.php");
include("./includes/funzioni_$PHPR_DB_TYPE.php");
$numconnessione = connetti_db($PHPR_DB_NAME,$PHPR_DB_HOST,$PHPR_DB_PORT,$PHPR_DB_USER,$PHPR_DB_PASS,$PHPR_LOAD_EXT);
include("./includes/liberasettimane.php");
include("./includes/spezzaprenota.php");
include("./includes/funzioni.php");
include("./includes/funzioni_tariffe.php");
include("./includes/funzioni_costi_agg.php");
include("./includes/sett_gio.php");
$tableperiodi = $PHPR_TAB_PRE."periodi".$anno;
$tableprenota = $PHPR_TAB_PRE."prenota".$anno;
$tablecostiprenota = $PHPR_TAB_PRE."costiprenota".$anno;
$tablenometariffe = $PHPR_TAB_PRE."ntariffe".$anno;
$tableregole = $PHPR_TAB_PRE."regole".$anno;
$tableappartamenti = $PHPR_TAB_PRE."appartamenti";
$tablepersonalizza = $PHPR_TAB_PRE."personalizza";
$tablecontratti = $PHPR_TAB_PRE."contratti";
$tablerelinventario = $PHPR_TAB_PRE."relinventario";


$id_utente = controlla_login($numconnessione,$PHPR_TAB_PRE,$id_sessione,$nome_utente_phpr,$password_phpr,$anno);
if ($id_utente) {

if ($id_utente != 1) {
$tableprivilegi = $PHPR_TAB_PRE."privilegi";
$privilegi_annuali_utente = esegui_query("select * from $tableprivilegi where idutente = '$id_utente' and anno = '$anno'");
if (numlin_query($privilegi_annuali_utente) == 0) $anno_utente_attivato = "NO";
else {
$anno_utente_attivato = "SI";
$privilegi_globali_utente = esegui_query("select * from $tableprivilegi where idutente = '$id_utente' and anno = '1'");
$priv_mod_pers = risul_query($privilegi_globali_utente,0,'priv_mod_pers');
if (substr($priv_mod_pers,0,1) != "s") $modifica_pers = "NO";
$regole1_consentite = risul_query($privilegi_annuali_utente,0,'regole1_consentite');
$attiva_regole1_consentite = substr($regole1_consentite,0,1);
$applica_regole1 = substr($regole1_consentite,1,1);
if ($attiva_regole1_consentite != "n" or $applica_regole1 == "n" or $applica_regole1 == "f") $regole1_consentite = explode("#@^",substr($regole1_consentite,3));
$tariffe_consentite = risul_query($privilegi_annuali_utente,0,'tariffe_consentite');
$attiva_tariffe_consentite = substr($tariffe_consentite,0,1);
if ($attiva_tariffe_consentite == "s") {
$tariffe_consentite = explode(",",substr($tariffe_consentite,2));
$tariffe_consentite_vett = array();
for ($num1 = 0 ; $num1 < count($tariffe_consentite) ; $num1++) if ($tariffe_consentite[$num1]) $tariffe_consentite_vett[$tariffe_consentite[$num1]] = "SI";
} # fine if ($attiva_tariffe_consentite == "s")
$costi_agg_consentiti = risul_query($privilegi_annuali_utente,0,'costi_agg_consentiti');
$attiva_costi_agg_consentiti = substr($costi_agg_consentiti,0,1);
if ($attiva_costi_agg_consentiti == "s") {
$costi_agg_consentiti = explode(",",substr($costi_agg_consentiti,2));
unset($costi_agg_consentiti_vett);
for ($num1 = 0 ; $num1 < count($costi_agg_consentiti) ; $num1++) if ($costi_agg_consentiti[$num1]) $costi_agg_consentiti_vett[$costi_agg_consentiti[$num1]] = "SI";
} # fine if ($attiva_costi_agg_consentiti == "s")
$contratti_consentiti = risul_query($privilegi_annuali_utente,0,'contratti_consentiti');
$attiva_contratti_consentiti = substr($contratti_consentiti,0,1);
if ($attiva_contratti_consentiti == "s") {
$contratti_consentiti = explode(",",$contratti_consentiti);
unset($contratti_consentiti_vett);
for ($num1 = 1 ; $num1 < count($contratti_consentiti) ; $num1++) if ($contratti_consentiti[$num1]) $contratti_consentiti_vett[$contratti_consentiti[$num1]] = "SI";
} # fine if ($attiva_contratti_consentiti == "s")
$priv_ins_prenota = risul_query($privilegi_annuali_utente,0,'priv_ins_prenota');
$priv_ins_nuove_prenota = substr($priv_ins_prenota,0,1);
$priv_ins_assegnazione_app = substr($priv_ins_prenota,1,1);
$priv_ins_costi_agg = substr($priv_ins_prenota,5,1);
$priv_ins_multiple = substr($priv_ins_prenota,9,1);
$priv_mod_prenota = risul_query($privilegi_annuali_utente,0,'priv_mod_prenota');
$priv_mod_prenotazioni = substr($priv_mod_prenota,0,1);
$priv_mod_assegnazione_app = substr($priv_mod_prenota,2,1);
$priv_vedi_tab = risul_query($privilegi_annuali_utente,0,'priv_vedi_tab');
$priv_vedi_tab_mesi = substr($priv_vedi_tab,0,1);
$priv_vedi_tab_prenotazioni = substr($priv_vedi_tab,1,1);
} # fine else if (numlin_query($privilegi_annuali_utente) == 0)
$tableutenti = $PHPR_TAB_PRE."utenti";
$nome_utente = esegui_query("select * from $tableutenti where idutenti = '$id_utente'");
$nome_utente = risul_query($nome_utente,0,'nome_utente');
} # fine if ($id_utente != 1)
else {
$anno_utente_attivato = "SI";
$modifica_pers = "SI";
$attiva_regole1_consentite = "n";
$applica_regole1 = "s";
$attiva_tariffe_consentite = "n";
$attiva_costi_agg_consentiti = "n";
$attiva_contratti_consentiti = "n";
$priv_ins_nuove_prenota = "s";
$priv_ins_assegnazione_app = "s";
$priv_ins_costi_agg = "s";
$priv_ins_multiple = "s";
$priv_mod_prenotazioni = "s";
$priv_mod_assegnazione_app = "s";
$priv_vedi_tab_mesi = "s";
$priv_vedi_tab_prenotazioni = "s";
} # fine else if ($id_utente != 1)
if ($anno_utente_attivato == "SI" and ($priv_ins_nuove_prenota == "s" or $priv_vedi_tab_mesi != "n" or $priv_vedi_tab_prenotazioni != "n")) {

if (@is_file(C_DATI_PATH."/dati_subordinazione.php")) {
$installazione_subordinata = "SI";
$inserimento_nuovi_clienti = "NO";
$priv_ins_nuove_prenota = "n";
$priv_mod_prenotazioni = "n";
$modifica_clienti = "NO";
$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"))


$titolo = "HotelDruid: ".mex("Disponibilità",$pag);
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");


$Euro = nome_valuta();
$stile_soldi = stile_soldi();
$stile_data = stile_data();

$file_interconnessioni = C_DATI_PATH."/dati_interconnessioni.php";
if (@is_file($file_interconnessioni)) {
include($file_interconnessioni);
if (@is_array($ic_present)) {
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 (isset($ic_present[$interconnection_name]) and $ic_present[$interconnection_name] == "SI") {
include("./includes/interconnect/$mod_ext/functions_import.php");
$funz_import_reservations = "import_reservations_".$interconnection_func_name;
$id_utente_origi = $id_utente;
$id_utente = 1;
$funz_import_reservations("","",$file_interconnessioni,$anno,$PHPR_TAB_PRE,1,$id_utente,$HOSTNAME);
$id_utente = $id_utente_origi;
} # fine if (isset($ic_present[$interconnection_name]) and $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 (@is_array($ic_present))
} # fine if (@is_file($file_interconnessioni))

unset($regole2);
unset($id_periodo_corrente);
$beniinv_presenti = array();
if (!fixset($numpersone)) $numpersone = 0;
$verificare = "";
$tariffa_invia = array();

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

$dati_app = prendi_dati_app($tableappartamenti);
$numappartamenti = $dati_app['totapp'];
#$appartamenti = esegui_query(" select * from $tableappartamenti ");
#$numappartamenti = numlin_query($appartamenti);
unset($app_richiesti_senza_cal);
unset($app_richiesti);
$num_app_richiesti = 1;
$data_inizioperiodo = fix_set($inizioperiodo);
$data_inizioperiodo_f = formatta_data($data_inizioperiodo,$stile_data);
$data_fineperiodo = fix_set($fineperiodo);
$data_fineperiodo_f = formatta_data($data_fineperiodo,$stile_data);
$idinizioperiodo = esegui_query("select idperiodi from $tableperiodi where datainizio = '".aggslashdb($inizioperiodo)."' ");
$num_idinizioperiodo = numlin_query($idinizioperiodo);
if ($num_idinizioperiodo == 0) { $idinizioperiodo = 10000; }
else { $idinizioperiodo = risul_query($idinizioperiodo,0,'idperiodi'); }
$idfineperiodo = esegui_query("select idperiodi from $tableperiodi where datafine = '".aggslashdb($fineperiodo)."' ");
$num_idfineperiodo = numlin_query($idfineperiodo);
if ($num_idfineperiodo == 0) { $idfineperiodo = -1; }
else { $idfineperiodo = risul_query($idfineperiodo,0,'idperiodi'); }
if ($modifica_pers == "NO") {
@include(C_DATI_PATH."/selperiodimenu$anno.$id_utente.php");
if (empty($inizioperiodo) or !strpos($dates_options_list,(string) $inizioperiodo)) $idinizioperiodo = 10000;
if (empty($fineperiodo) or !strpos($dates_options_list,(string) $fineperiodo)) $idfineperiodo = -1;
} # fine if ($modifica_pers == "NO")
$inizioperiodo = $idinizioperiodo;
$fineperiodo = $idfineperiodo ;
$idinizioperiodo_vett = $idinizioperiodo;
$idfineperiodo_vett = $idfineperiodo;

if ($idfineperiodo < $idinizioperiodo) {
$verificare = "NO";
echo mex("Le date sono sbagliate",$pag).". <br>";
} # fine if ($idfineperiodo < $idinizioperiodo)

$dati_tariffe = dati_tariffe($tablenometariffe);
$dati_cat_pers = dati_cat_pers($id_utente,$tablepersonalizza,$lingua_mex,"v",1,1);
$dati_ca = dati_costi_agg_ntariffe($tablenometariffe,$dati_tariffe['num'],"NO","",$tableappartamenti,$dati_cat_pers);
$dati_r2 = "";
dati_regole2($dati_r2,$app_regola2_predef,"","","",$id_periodo_corrente,$tipo_periodi,$anno,$tableregole);

$cat_persone = array();
$cat_persone_tariffa = array();
$cat_persone_invia = array('1' => array());
$cat_persone_vett = array();
$cat_persone_default = array();
$numpersone_vett = array();
if ($dati_cat_pers['num']) {
if ($numpersone and empty($cat0_numpers)) $cat0_numpers = $numpersone;
$numpersone = 0;
$osp_princ_trovato = 0;
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
if (!empty(${"cat$num1"."_numpers"})) {
if (controlla_num_pos(${"cat$num1"."_numpers"}) == "NO") ${"cat$num1"."_numpers"} = "";
else {
$numpersone += ${"cat$num1"."_numpers"};
if ($dati_cat_pers[$num1]['osp_princ'] == "s") $osp_princ_trovato = 1;
$cat_persone_invia[1][$num1] = ${"cat$num1"."_numpers"};
} # fine else if (controlla_num_pos(${"cat$num1"."_numpers"}) == "NO")
} # fine if (!empty(${"cat$num1"."_numpers"}))
} # fine for $num1
if ($numpersone and !$osp_princ_trovato) {
$verificare = "NO";
echo mex("Si deve inserire almeno una persona che possa essere ospite principale",'clienti.php').".<br>";
} # fine if ($numpersone and !$osp_princ_trovato)
$cat_persone_default = $cat_persone_invia[1];
for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa++) $cat_persone_tariffa[$numtariffa] = $cat_persone_invia[1];
} # fine elseif ($dati_cat_pers['num'])
if (controlla_num_pos($numpersone) == "NO") $numpersone = "";

$dati_email = "";
if (!empty($cognome_1)) {
if (@get_magic_quotes_gpc()) $cognome_1 = stripslashes($cognome_1);
$dati_email .= "<input type=\"hidden\" name=\"cognome_1\" value=\"$cognome_1\">";
} # fine if (!empty($cognome_1))
if (!empty($email_1)) $dati_email .= "<input type=\"hidden\" name=\"email_1\" value=\"$email_1\">";
if (!empty($testo_email_richiesta)) {
if (@get_magic_quotes_gpc()) $testo_email_richiesta = stripslashes($testo_email_richiesta);
$dati_email .= "<input type=\"hidden\" name=\"testo_email_richiesta\" value=\"".str_replace("\"","&quot;",$testo_email_richiesta)."\">";
if ($origine) $dati_email .= "<input type=\"hidden\" name=\"origine\" value=\"".htmlspecialchars($origine)."\">";
} # fine if (!empty($testo_email_richiesta))

if (empty($numcostiagg)) $numcostiagg = 0;
# Espando le variabili dei costi combinabili (aumentando $numcostiagg per ogni $n_t, alla fine saranno tutti uguali)
for ($numca = 1 ; $numca <= $numcostiagg ; $numca++) {
if (substr(${"idcostoagg".$numca},0,1) == "c") {
$categoria = substr(${"idcostoagg".$numca},1);
$num_in_cat = 0;
for ($num1 = 0 ; $num1 < $dati_ca['num'] ; $num1++) {
if ($dati_ca[$num1]['mostra'] == "s" and $dati_ca[$num1]['combina'] == "s" and $dati_ca[$num1]['categoria'] == $categoria) {
$num_in_cat++;
if ($num_in_cat != 1) {
$numcostiagg++;
${"costoagg".$numcostiagg} = fixset(${"costoagg".$numca});
${"idcostoagg".$numcostiagg} = $dati_ca[$num1]['id'];
${"numsettimane".$numcostiagg} = fixset(${"numsettimane".$numca});
${"nummoltiplica_ca".$numcostiagg} = fixset(${"nummoltiplica_ca".$numca});
${"catpers_ca".$numcostiagg} = fixset(${"catpers_ca".$numca});
} # fine else if ($num_in_cat == 1)
else ${"idcostoagg".$numca} = $dati_ca[$num1]['id'];
} # fine if ($dati_ca[$num1]['mostra'] == "s" and $dati_ca[$num1]['combina'] == "s" and...
} # fine for $num1
if (!$num_in_cat) $verificare = "NO";
} # fine if (substr(${"idcostoagg".$numca},0,1) == "c")
} # fine for $numca

if (!isset($controlla_tariffe) or !empty($numpersone) or !empty($num_persone_casa)) $controlla_tariffe = "";

$max_maxoccupanti = 0;
$lista_tutti_app = ",";
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) {
$lista_tutti_app .= $dati_app['posizione'][$num1].",";
$maxoccupanti = $dati_app['maxocc'][$dati_app['posizione'][$num1]];
if (!$maxoccupanti) {
$max_maxoccupanti = 0;
break;
} # fine if (!$maxoccupanti)
elseif ($maxoccupanti > $max_maxoccupanti) $max_maxoccupanti = $maxoccupanti;
} # fine for $num1
$numpersone_max = $numpersone;
if ($controlla_tariffe) {
for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa++) {
if (isset(${"reg2_tariffa".$numtariffa}) and ${"reg2_tariffa".$numtariffa} == "SI") {
if (!$dati_cat_pers['num']) $numpersone_corr = fixset(${"pers_reg2_tariffa".$numtariffa});
else {
$numpersone_corr = 0;
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) $numpersone_corr += (int) fixset(${"cat$num1"."_pers_reg2_tariffa$numtariffa"});
} # fine else if (!$dati_cat_pers['num'])
if (!$numpersone_max or $numpersone_corr > $numpersone_max) $numpersone_max = $numpersone_corr;
} # fine if (isset(${"reg2_tariffa".$numtariffa}) and ${"reg2_tariffa".$numtariffa} == "SI")
} # fine for $numtariffa
} # fine if ($controlla_tariffe)

$costo_aggiungi_letti = "";
$costo_agg_letti_vett = array();
for ($numca = 0 ; $numca < $dati_ca['num'] ; $numca++) {
if ($dati_ca[$numca]['mostra'] == "s") {
$numcostoagg = "";
for ($num1 = 1 ; $num1 <= $numcostiagg ; $num1++) if (${"idcostoagg".$num1} == $dati_ca[$numca]['id']) $numcostoagg = $num1;
if ($priv_ins_costi_agg == "s" and ($attiva_costi_agg_consentiti == "n" or (isset($costi_agg_consentiti_vett[$dati_ca[$numca]['id']]) and $costi_agg_consentiti_vett[$dati_ca[$numca]['id']] == "SI"))) {
if ($dati_ca[$numca]['letto'] == "s") {
if ($numcostoagg and isset(${"costoagg".$numcostoagg}) and ${"costoagg".$numcostoagg} == "SI") {
$costo_aggiungi_letti = "";
break;
} # fine if ($numcostoagg and isset(${"costoagg".$numcostoagg}) and ${"costoagg".$numcostoagg} == "SI")
elseif (empty($costo_aggiungi_letti) and ($dati_ca[$numca]['numsett'] != "c" or $dati_ca[$numca]['associasett'] != "s")) {
$periodo_costo_trovato = trova_periodo_permesso_costo($dati_ca,$numca,$idinizioperiodo,$idfineperiodo,($idfineperiodo - $idinizioperiodo + 1));
if ($periodo_costo_trovato != "NO") {
$num_aggiungi_letti = 1;
if ($dati_ca[$numca]['moltiplica'] == "c" and $max_maxoccupanti and $numpersone_max > $max_maxoccupanti) {
$num_aggiungi_letti = $numpersone_max - $max_maxoccupanti;
if ($dati_ca[$numca]['molt_max'] == "n" and $num_aggiungi_letti > $dati_ca[$numca]['molt_max_num']) $num_aggiungi_letti = $dati_ca[$numca]['molt_max_num'];
} # fine if ($dati_ca[$numca]['moltiplica'] == "c" and $max_maxoccupanti and $numpersone_max > $max_maxoccupanti)
if ($dati_ca[$numca]['numlimite'] and $num_aggiungi_letti > $dati_ca[$numca]['numlimite']) $num_aggiungi_letti = $dati_ca[$numca]['numlimite'];
# Se ci sono categorie di persone controllo che ci sia almeno una categoria da cui si possa
# sottrarre il numero di letti aggiuntivi, altrimenti ne diminuisco il numero
if ($dati_cat_pers['num'] and !$controlla_tariffe) {
$cat_pers_letto = "";
$perc_cat_pers_letto = "";
$diminuiti_lettiagg_per_catpers = 0;
while (!strcmp((string) $cat_pers_letto,"") and $num_aggiungi_letti > 0) {
for ($num2 = ($dati_cat_pers['num'] - 1) ; $num2 >= 0 ; $num2--) {
# Se c'è anche una regola2 multipla allora applico il costo 
#if (${"numpersone_orig"}) $num_aggiungi_letti_corr = ($num_aggiungi_letti * $dati_r2['napp'][$tipotariffa]);
#else $num_aggiungi_letti_corr = $num_aggiungi_letti;
if ((fixset(${"cat$num2"."_numpers"}) >= $num_aggiungi_letti) and (!$perc_cat_pers_letto or $perc_cat_pers_letto > $dati_cat_pers[$num2]['perc'])) {
$osp_princ_trovato = 0;
for ($num3 = 0 ; $num3 < $dati_cat_pers['num'] ; $num3++) {
if ($dati_cat_pers[$num3]['osp_princ'] == "s") {
if (($num2 != $num3 and ${"cat$num3"."_numpers"} > 0) or ($num2 == $num3 and (${"cat$num2"."_numpers"} - $num_aggiungi_letti) > 0)) $osp_princ_trovato = 1;
if ($osp_princ_trovato) break;
} # fine if ($dati_cat_pers[$num3]['osp_princ'] == "s")
} # fine for $num3
if ($osp_princ_trovato) {
$cat_pers_letto = $num2;
$perc_cat_pers_letto = $dati_cat_pers[$num2]['perc'];
} # fine if ($osp_princ_trovato)
} # fine if ((${"cat$num2"."_numpers"} >= $num_aggiungi_letti) and (!$perc_cat_pers_letto or $perc_cat_pers_letto > $dati_cat_pers[$num2]['perc']))
} # fine for $num2
if (!strcmp((string) $cat_pers_letto,"")) {
if (!$diminuiti_lettiagg_per_catpers) $diminuiti_lettiagg_per_catpers = $num_aggiungi_letti;
$num_aggiungi_letti--;
} # fine if (!strcmp((string) $cat_pers_letto,""))
} # fine while (!strcmp((string) $cat_pers_letto,"") and $num_aggiungi_letti > 0)
} # fine if ($dati_cat_pers['num'] and !$controlla_tariffe)
$settimane_costo_cal = calcola_settimane_costo($tableperiodi,$dati_ca,$numca,$idinizioperiodo,$idfineperiodo,"",($idfineperiodo - $idinizioperiodo + 1));
calcola_moltiplica_costo($dati_ca,$numca,$moltiplica_costo_cal,$idinizioperiodo,$idfineperiodo,$settimane_costo_cal,$num_aggiungi_letti,"","","");
unset($num_costi_presenti);
$limite_costo = controlla_num_limite_costo($tablecostiprenota,$tableprenota,$dati_ca,$numca,$num_costi_presenti,$idinizioperiodo,$idfineperiodo,$settimane_costo_cal,$moltiplica_costo_cal);
if (isset($dati_ca[$numca]['tipo_beniinv']) and $dati_ca[$numca]['tipo_beniinv'] == "mag") {
$nrc = "";
unset($beniinv_presenti_copia);
$risul_beniinv = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$numca,$beniinv_presenti_copia,$nrc,"SI",$idinizioperiodo,$idfineperiodo,$settimane_costo_cal,$moltiplica_costo_cal,"");
} # fine if (isset($dati_ca[$numca]['tipo_beniinv']) and $dati_ca[$numca]['tipo_beniinv'] == "mag")
else $risul_beniinv = "SI";
if ($limite_costo != "NO" and $risul_beniinv == "SI") {
$numca_cal = $numca;
$costo_aggiungi_letti = $dati_ca[$numca]['id'];
$app_incomp_cal = $dati_ca[$numca]['appincompatibili'];
if (isset($dati_ca[$numca]['tipo_beniinv']) and $dati_ca[$numca]['tipo_beniinv'] == "app") $app_beniinv_cal = 1;
else $app_beniinv_cal = 0;
$nome_cal = $dati_ca[$numca]['nome'];
} # fine if ($limite_costo != "NO" and $risul_beniinv == "SI")
} # fine if ($periodo_costo_trovato != "NO")
} # fine elseif (empty($costo_aggiungi_letti) and...
} # fine if ($dati_ca[$numca]['letto'] == "s")
} # fine if ($priv_ins_costi_agg == "s" and ($attiva_costi_agg_consentiti == "n" or...
} # fine if ($dati_ca[$num_costo]['mostra'] == "s")
} # fine for $numca



unset($num_app_richiesti_invia);
$num_app_richiesti_invia[1] = 1;
$num_app_richiesti_invia[0][1] = 1;
unset($num_persone_invia);
unset($persone_tariffa);
$numpersone_orig = $numpersone;
$numpersone_orig_nt = array();
$numpersone_r2 = array();
$persone_tariffa_r2 = array();
$num_tipologie_r2 = 0;
$controlla_con_costo_letto = 0;
$controlla_con_costo_letto_r2 = array();
$minoccupanti_con_cal_vett = array();
$numpersone_nr = array();
$posti_mancanti = array();
for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa++) $posti_mancanti[$numtariffa] = 0;
unset($dati_app_pos);


if ($numpersone) {
unset($num_persone_casa);
$posto = 0;
$posto_r2 = 0;
$posto_senza_cal_r2 = array();
$app_richiesti_r2 = array();
$app_richiesti_senza_cal_r2 = array();

for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa++) {
if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1) {
$numpersone_corr = ceil((float) $numpersone / (float) $dati_r2['napp']["tariffa".$numtariffa]);
if ($numpersone_corr != $numpersone) {
$persone_tariffa_r2[$numtariffa] = $numpersone_corr;
$persone_tariffa[$numtariffa] = $numpersone_corr;
$numpersone_r2[$numpersone_corr] = 1;
} # fine if ($numpersone_corr != $numpersone)
} # fine if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1)
} # fine for $numtariffa
ksort($numpersone_r2);
$numpersone_r2 = array_keys($numpersone_r2);
reset($numpersone_r2);
$num_tipologie_r2 = count($numpersone_r2);

for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) {
$idapp = $dati_app['posizione'][$num1];
$maxoccupanti_orig = $dati_app['maxocc'][$idapp];
$maxoccupanti = $maxoccupanti_orig;
if ($maxoccupanti and $costo_aggiungi_letti and !strstr(",$app_incomp_cal,",",$idapp,")) $maxoccupanti += $num_aggiungi_letti;
if ($maxoccupanti and $maxoccupanti < $numpersone) $app_richiesti[$idapp] = "NO";
else {
$app_richiesti[$idapp] = "SI";
$posto = 1;
} # fine else if ($maxoccupanti and $maxoccupanti < $numpersone)
if (!$maxoccupanti_orig or $maxoccupanti_orig >= $numpersone) $app_richiesti_senza_cal[$idapp] = "SI";
elseif ($app_richiesti[$idapp] == "SI") $controlla_con_costo_letto = 1;

for ($num2 = 0 ; $num2 < $num_tipologie_r2 ; $num2++) {
if (!$maxoccupanti or $maxoccupanti >= $numpersone_r2[$num2]) {
if (isset($app_richiesti_r2[$num2]) and strcmp((string) $app_richiesti_r2[$num2],"")) $app_richiesti_r2[$num2] .= ",";
else $app_richiesti_r2[$num2] = "";
$app_richiesti_r2[$num2] .= $idapp;
$posto_r2 = 1;
} # fine if (!$maxoccupanti or $maxoccupanti >= $numpersone_r2[$num2])
if (!$maxoccupanti_orig or $maxoccupanti_orig >= $numpersone_r2[$num2]) $app_richiesti_senza_cal_r2[$num2][$idapp] = "SI";
elseif ($maxoccupanti >= $numpersone_r2[$num2]) $controlla_con_costo_letto_r2[$num2] = 1;
} # fine for $num2

} # fine for $num1
$num_persone_invia[1] = $numpersone;
if (!$posto and !$posto_r2) {
echo mex("Non c'è nessun appartamento che possa ospitare",'unit.php')." $numpersone ".mex("persone",$pag).".<br>";
$verificare = "NO";
} # fine if (!$posto and !$posto_r2)

elseif ($num_tipologie_r2) {
# Se ci sono tariffe che richiedono appartamenti multipli allora inserisco gli appartamenti per le persone alternative nelle
# altre tipologie (per i controlli), prendendo poi separatamente ognuna di queste tipologie quando si deve usare liberasettimane
unset($idinizioperiodo_vett);
unset($idfineperiodo_vett);
$app_richiesti_copia = $app_richiesti;
$app_richiesti = array();
$app_richiesti[',numero,'] = 0;
$numpersone_r2_copia = $numpersone_r2;
$cat_persone_copia = $cat_persone_invia[1];
$numpersone_r2 = array();
$controlla_con_costo_letto_r2_copia = $controlla_con_costo_letto_r2;
$controlla_con_costo_letto_r2 = array();
$app_richiesti_senza_cal_r2_copia = $app_richiesti_senza_cal_r2;
$app_richiesti_senza_cal_r2 = array();
for ($num1 = 0 ; $num1 < $num_tipologie_r2 ; $num1++) {
if (strcmp((string) $app_richiesti_r2[$num1],"")) {
$app_richiesti[',numero,']++;
$numpersone_r2[$numpersone_r2_copia[$num1]] = $app_richiesti[',numero,'];
$app_richiesti[$app_richiesti[',numero,']] = $app_richiesti_r2[$num1];
$idinizioperiodo_vett[$app_richiesti[',numero,']] = $idinizioperiodo;
$idfineperiodo_vett[$app_richiesti[',numero,']] = $idfineperiodo;
$numpersone_vett[$app_richiesti[',numero,']] = $numpersone_r2_copia[$num1];
$numpersone_cp = $numpersone_vett[$app_richiesti[',numero,']];
$cat_persone_vett[$app_richiesti[',numero,']] = array();
for ($num2 = 0 ; $num2 < $dati_cat_pers['num'] ; $num2++) {
if (!empty($cat_persone_copia[$num2]) and $numpersone_cp) {
if ($numpersone_cp > $cat_persone_copia[$num2]) $numpersone_corr_cp = $cat_persone_copia[$num2];
else $numpersone_corr_cp = $numpersone_cp;
$cat_persone_vett[$app_richiesti[',numero,']][$num2] = $numpersone_corr_cp;
$numpersone_cp = $numpersone_cp - $numpersone_corr_cp;
$cat_persone_copia[$num2] = $cat_persone_copia[$num2] - $numpersone_corr_cp;
} # fine if (!empty($cat_persone_copia[$num2]) and $numpersone_cp)
} # fine for $num2
$controlla_con_costo_letto_r2[$app_richiesti[',numero,']] = fixset($controlla_con_costo_letto_r2_copia[$num1]);
$app_richiesti_senza_cal_r2[$app_richiesti[',numero,']] = $app_richiesti_senza_cal_r2_copia[$num1];
} # fine if (strcmp((string) $app_richiesti_r2[$num1],""))
} # fine for $num1
if ($posto) {
$app_richiesti[',numero,']++;
$lista_app_richiesti = "";
foreach ($app_richiesti_copia as $key => $val) if ($val == "SI") $lista_app_richiesti .= $key.",";
$app_richiesti[$app_richiesti[',numero,']] = substr($lista_app_richiesti,0,-1);
$idinizioperiodo_vett[$app_richiesti[',numero,']] = $idinizioperiodo;
$idfineperiodo_vett[$app_richiesti[',numero,']] = $idfineperiodo;
} # fine if ($posto)
} # fine elseif ($num_tipologie_r2)

} # fine if ($numpersone)


if (!empty($num_persone_casa)) {
$num_persone_casa = (int) $num_persone_casa;
$posto = "NO";
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1 = $num1 + 1) {
$idapp = $dati_app['posizione'][$num1];
$maxoccupanti = $dati_app['maxocc'][$idapp];
if ($maxoccupanti and $maxoccupanti != $num_persone_casa) $app_richiesti[$idapp] = "NO";
else {
$app_richiesti[$idapp] = "SI";
$posto = "SI";
} # fine else if ($maxoccupanti and $maxoccupanti != $num_persone_casa)
} # fine for $num1
if ($posto == "NO") {
echo mex("Non c'è nessun appartamento da",'unit.php')." $num_persone_casa ".mex("persone",$pag).".<br>";
$verificare = "NO";
} # fine if ($posto == "NO")
else {
if (controlla_num_pos($molt_app_persone_casa) == "NO" or $molt_app_persone_casa == 0 or strlen($molt_app_persone_casa) > 3 or $priv_ins_multiple == "n") $molt_app_persone_casa = 1;
$num_app_richiesti_invia[1] = $molt_app_persone_casa;
$num_app_richiesti_invia[0][1] = $molt_app_persone_casa;
if ($molt_app_persone_casa > 1) {
$num_app_richiesti = $molt_app_persone_casa;
$app_richiesti_copia = $app_richiesti;
unset($app_richiesti);
$lista_app_richiesti = "";
unset($idinizioperiodo_vett);
unset($idfineperiodo_vett);
$app_richiesti[',numero,'] = $molt_app_persone_casa;
if (!$app_richiesti_copia) {
#$lista_app_richiesti = ",tutti,,";
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) $lista_app_richiesti .= $dati_app['posizione'][$num1].",";
} # fine if (!$app_richiesti_copia)
else foreach ($app_richiesti_copia as $key => $val) if ($val == "SI") $lista_app_richiesti .= $key.",";
$lista_app_richiesti = substr($lista_app_richiesti,0,-1);
for ($num1 = 1 ; $num1 <= $molt_app_persone_casa ; $num1++) {
$app_richiesti[$num1] = $lista_app_richiesti;
$idinizioperiodo_vett[$num1] = $idinizioperiodo;
$idfineperiodo_vett[$num1] = $idfineperiodo;
} # fine for $num1
} # fine if ($molt_app_persone_casa > 1)
} # fine else if ($posto == "NO")
} # fine if (!empty($num_persone_casa))


if ($priv_ins_multiple == "n") $controlla_tariffe = "";
if ($priv_ins_multiple != "s") $prenota_vicine = "";
$cat_pers_letto_tariffa = array();
if ($controlla_tariffe) {
$mostra_tariffa = array();
$mostra_non_disp = 0;
$id_richiesti = 0;
$num_tipologie = 0;
unset($app_richiesti);
unset($idinizioperiodo_vett);
unset($idfineperiodo_vett);
if (!isset($prenota_vicine) or $prenota_vicine != "SI") {
for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa++) if (isset(${"reg2_tariffa".$numtariffa}) and ${"reg2_tariffa".$numtariffa} == "SI" and !empty($dati_r2['napp']['v']["tariffa".$numtariffa])) $app_richiesti[',vicini,'] = "SI";
} # fine if (!isset($prenota_vicine) or $prenota_vicine != "SI")
for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa = $numtariffa + 1) {
if (isset(${"reg2_tariffa".$numtariffa}) and ${"reg2_tariffa".$numtariffa} == "SI") {
if ($attiva_tariffe_consentite == "n" or isset($tariffe_consentite_vett[$numtariffa])) {
$tariffa = "tariffa".$numtariffa;
$appartamenti_regola2 = dati_regole2($dati_r2,$app_regola2_predef,$tariffa,$idinizioperiodo,$idfineperiodo,$id_periodo_corrente,$tipo_periodi,$anno,$tableregole);
if (!strcmp((string) $appartamenti_regola2,"")) $appartamenti_regola2 = substr($lista_tutti_app,1,-1);
if ($appartamenti_regola2) {

$cat_persone_tariffa_orig = array();
if ($dati_cat_pers['num']) {
${"pers_reg2_tariffa".$numtariffa} = 0;
$osp_princ_trovato = 0;
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
if (${"cat$num1"."_pers_reg2_tariffa$numtariffa"}) {
if (controlla_num_pos(${"cat$num1"."_pers_reg2_tariffa$numtariffa"}) == "NO") ${"cat$num1"."_pers_reg2_tariffa$numtariffa"} = "";
else {
${"pers_reg2_tariffa".$numtariffa} += ${"cat$num1"."_pers_reg2_tariffa$numtariffa"};
if ($dati_cat_pers[$num1]['osp_princ'] == "s") $osp_princ_trovato = 1;
$cat_persone_tariffa[$numtariffa][$num1] = ${"cat$num1"."_pers_reg2_tariffa$numtariffa"};
} # fine else if (controlla_num_pos(${"cat$num1"."_pers_reg2_tariffa$numtariffa"}) == "NO")
} # fine if (${"cat$num1"."_pers_reg2_tariffa$numtariffa"})
} # fine for $num1
if (${"pers_reg2_tariffa".$numtariffa} and !$osp_princ_trovato) {
$verificare = "NO";
echo mex("Si deve inserire almeno una persona che possa essere ospite principale",'clienti.php').".<br>";
} # fine if (${"pers_reg2_tariffa".$numtariffa} and !$osp_princ_trovato)
$cat_persone_tariffa_orig = $cat_persone_tariffa[$numtariffa];
} # fine ($dati_cat_pers['num'])

$numpersone_corr = ${"pers_reg2_tariffa".$numtariffa};
$regola3 = esegui_query("select * from $tableregole where tariffa_per_persone = '$tariffa'");
if (!$numpersone_corr and numlin_query($regola3) == 1 and risul_query($regola3,0,'iddatainizio')) {
$numpersone_corr = risul_query($regola3,0,'iddatainizio');
if ($dati_cat_pers['num']) {
${"cat0_pers_reg2_tariffa".$numtariffa} = $numpersone_corr;
$cat_persone_tariffa[$numtariffa][0] = $numpersone_corr;
} # fine if ($dati_cat_pers['num'])
} # fine if (!$numpersone_corr and numlin_query($regola3) == 1 and...
if (numlin_query($regola3) == 1 and risul_query($regola3,0,'iddatafine')) {
$num_pers_min = risul_query($regola3,0,'iddatafine');
if (!$numpersone_corr or $numpersone_corr < $num_pers_min) {
$verificare = "NO";
echo mex("Per questa tariffa si deve inserire un numero minimo di",'clienti.php')." $num_pers_min ";
if ($num_pers_min > 1) echo mex("persone",'clienti.php');
else echo mex("persona",'clienti.php');
echo ".<br>";
} # fine if (!$numpersone_corr or $numpersone_corr < $num_pers_min)
} # fine if (numlin_query($regola3) == 1 and risul_query($regola3,0,'iddatafine'))

$molt_tipologia = ${"molt_reg2_tariffa".$numtariffa};
$numpersone_tot = $numpersone_corr;
if (controlla_num_pos($molt_tipologia) == "NO" or $molt_tipologia == 0 or strlen($molt_tipologia) > 3) ${"molt_reg2_tariffa".$numtariffa} = 1;
$numpersone_orig_nt[$numtariffa] = $numpersone_corr;
if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1) {
$molt_tipologia = ${"molt_reg2_tariffa".$numtariffa} * $dati_r2['napp']["tariffa".$numtariffa];
$numpersone_corr = ceil((float) $numpersone_corr / (float) $dati_r2['napp']["tariffa".$numtariffa]);
} # fine if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1)
else $molt_tipologia = ${"molt_reg2_tariffa".$numtariffa};
if ($numpersone_corr) {
$appartamenti_regola2_orig = $appartamenti_regola2;
$app_regola2_predef_orig = $app_regola2_predef;
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) {
$idapp = $dati_app['posizione'][$num1];
$maxoccupanti = $dati_app['maxocc'][$idapp];
if ($maxoccupanti and $maxoccupanti < $numpersone_corr) {
$appartamenti_regola2 = substr(str_replace(",$idapp,",",",",".$appartamenti_regola2.","),1,-1);
if ($app_regola2_predef_orig) $app_regola2_predef = substr(str_replace(",$idapp,",",",",".$app_regola2_predef.","),1,-1);
} # fine if ($maxoccupanti and $maxoccupanti < $numpersone_corr)
} # fine for $num1

if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1) {
$napp_posti = explode(",",$appartamenti_regola2);
$napp_posti = count($napp_posti);
if ($napp_posti < $dati_r2['napp']["tariffa".$numtariffa]) {
$appartamenti_regola2 = $appartamenti_regola2_orig;
$cat_persone[$numtariffa] = array('num' => 0);
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
if (!empty($cat_persone_tariffa[$numtariffa][$num1])) {
$cat_persone[$numtariffa][$cat_persone[$numtariffa]['num']]['molt'] = $cat_persone_tariffa[$numtariffa][$num1];
$cat_persone[$numtariffa]['ord'][$num1] = $cat_persone[$numtariffa]['num'];
$cat_persone[$numtariffa][$cat_persone[$numtariffa]['num']]['ord'] = $num1;
$cat_persone[$numtariffa]['num']++;
} # fine if (!empty($cat_persone_tariffa[$numtariffa][$num1]))
} # fine for $num1
$numpersone_nr[$numtariffa] = trova_numpersone_per_app($appartamenti_regola2,$posti_mancanti[$numtariffa],$posti_mancanti['cat_pers_letto'][$numtariffa],$cat_persone[$numtariffa],$dati_app_pos,$dati_app,$dati_r2['napp']["tariffa".$numtariffa],$numpersone_orig_nt[$numtariffa],$dati_cat_pers);
if ($posti_mancanti['cat_pers_letto'][$numtariffa] >= 0) {
$cat_pers_letto_tariffa[$numtariffa] = $posti_mancanti['cat_pers_letto'][$numtariffa];
$cat_persone_tariffa[$numtariffa][$cat_pers_letto_tariffa[$numtariffa]] = $cat_persone[$numtariffa][$cat_persone[$numtariffa]['ord'][$cat_pers_letto_tariffa[$numtariffa]]]['molt'];
} # fine if ($posti_mancanti['cat_pers_letto'][$numtariffa] >= 0)
for ($num1 = 0 ; $num1 < $dati_app['totapp'] ; $num1++) {
$idapp = $dati_app['posizione'][$num1];
if (str_replace(",$idapp,",",",",".$appartamenti_regola2.",") != ",".$appartamenti_regola2.",") {
$maxoccupanti = $dati_app['maxocc'][$idapp];
for ($num2 = 0 ; $num2 < $dati_r2['napp']["tariffa".$numtariffa] ; $num2++) {
if ($num1 == 0) $app_richiesti_nr[$numtariffa][$num2] = array();
if (!$maxoccupanti or $maxoccupanti >= $numpersone_nr[$numtariffa][$num2]) $app_richiesti_nr[$numtariffa][$num2][$idapp] = "SI";
} # fine for $num2
} # fine if (str_replace(",$idapp,",",",",".$appartamenti_regola2.","))
} # fine for $num1
if ($posti_mancanti[$numtariffa] and $posti_mancanti[$numtariffa] <= ($dati_r2['napp']["tariffa".$numtariffa] * $num_aggiungi_letti)) {
# Elimino gli appartamenti incompatibili per avere più possibilità di liberare gli appartamenti giusti con liberasettimane
$num_elim = 0;
$app_usati = array();
for ($num2 = 0 ; $num2 < $dati_r2['napp']["tariffa".$numtariffa] ; $num2++) {
if (($num_elim * $num_aggiungi_letti) < $posti_mancanti[$numtariffa]) {
$app_richiesti_orig = $app_richiesti_nr[$numtariffa][$num2];
$app_trovato = 0;
foreach ($app_richiesti_orig as $idapp => $val) {
if (str_replace(",$idapp,","",",$app_incomp_cal,") != ",$app_incomp_cal,") $app_richiesti_nr[$numtariffa][$num2][$idapp] = "";
elseif (!$app_trovato and !isset($app_usati[$idapp])) {
$app_usati[$idapp] = 1;
$app_trovato = 1;
} # fine elseif (!$app_trovato and !isset($app_usati[$idapp])
} # fine foreach ($app_richiesti_orig as $idapp => $val)
if ($app_trovato) $num_elim++;
else $app_richiesti_nr[$numtariffa][$num2] = $app_richiesti_orig;
} # fine if (($num2 * $num_aggiungi_letti) < $posti_mancanti[$numtariffa])
} # fine for $num2
} # fine if ($posti_mancanti[$numtariffa] and $posti_mancanti[$numtariffa] <= ($dati_r2['napp']["tariffa".$numtariffa] * $num_aggiungi_letti))
if (${"molt_reg2_tariffa".$numtariffa} > 1) {
$posti_mancanti[$numtariffa] = $posti_mancanti[$numtariffa] * ${"molt_reg2_tariffa".$numtariffa};
for ($num1 = 1 ; $num1 < ${"molt_reg2_tariffa".$numtariffa} ; $num1++) {
for ($num2 = 0 ; $num2 < $dati_r2['napp']["tariffa".$numtariffa] ; $num2++) {
$numpersone_nr[$numtariffa][(($num1 * $dati_r2['napp']["tariffa".$numtariffa]) + $num2)] = $numpersone_nr[$numtariffa][$num2];
$app_richiesti_nr[$numtariffa][(($num1 * $dati_r2['napp']["tariffa".$numtariffa]) + $num2)] = $app_richiesti_nr[$numtariffa][$num2];
} # fine for $num2
} # fine for $num1
} # fine if (${"molt_reg2_tariffa".$numtariffa} > 1)
} # fine if ($napp_posti < $dati_r2['napp']["tariffa".$numtariffa])
} # fine if (isset($dati_r2['napp']["tariffa".$numtariffa]) and...

if ((!$appartamenti_regola2 or ($app_regola2_predef_orig and !$app_regola2_predef)) and $costo_aggiungi_letti and empty($dati_ca[$numca_cal]["incomp_tariffa".$numtariffa]) and !$posti_mancanti[$numtariffa]) {
$appartamenti_regola2 = $appartamenti_regola2_orig;
$app_regola2_predef = $app_regola2_predef_orig;
$num_aggiungi_letti_r2 = $num_aggiungi_letti;
if ($dati_cat_pers['num']) {
$cat_pers_letto_tariffa[$numtariffa] = "";
$perc_cat_pers_letto = "";
$diminuiti_lettiagg_per_catpers = 0;
while (!strcmp((string) $cat_pers_letto_tariffa[$numtariffa],"") and $num_aggiungi_letti_r2 > 0) {
for ($num2 = ($dati_cat_pers['num'] - 1) ; $num2 >= 0 ; $num2--) {
# Se c'è anche una regola2 multipla allora applico il costo 
#if (${"numpersone_orig"}) $num_aggiungi_letti_corr = ($num_aggiungi_letti_r2 * $dati_r2['napp'][$tipotariffa]);
#else $num_aggiungi_letti_corr = $num_aggiungi_letti_r2;
if ((${"cat$num2"."_pers_reg2_tariffa$numtariffa"} >= $num_aggiungi_letti_r2) and (!$perc_cat_pers_letto or $perc_cat_pers_letto > $dati_cat_pers[$num2]['perc'])) {
$osp_princ_trovato = 0;
for ($num3 = 0 ; $num3 < $dati_cat_pers['num'] ; $num3++) {
if ($dati_cat_pers[$num3]['osp_princ'] == "s") {
if (($num2 != $num3 and ${"cat$num3"."_pers_reg2_tariffa$numtariffa"} > 0) or ($num2 == $num3 and (${"cat$num2"."_pers_reg2_tariffa$numtariffa"} - $num_aggiungi_letti_r2) > 0)) $osp_princ_trovato = 1;
if ($osp_princ_trovato) break;
} # fine if ($dati_cat_pers[$num3]['osp_princ'] == "s")
} # fine for $num3
if ($osp_princ_trovato) {
$cat_pers_letto_tariffa[$numtariffa] = $num2;
$perc_cat_pers_letto = $dati_cat_pers[$num2]['perc'];
} # fine if ($osp_princ_trovato)
} # fine if ((${"cat$num2"."_pers_reg2_tariffa$numtariffa"} >= $num_aggiungi_letti_r2) and (!$perc_cat_pers_letto or $perc_cat_pers_letto > $dati_cat_pers[$num2]['perc']))
} # fine for $num2
if (!strcmp((string) $cat_pers_letto_tariffa[$numtariffa],"")) {
if (!$diminuiti_lettiagg_per_catpers) $diminuiti_lettiagg_per_catpers = $num_aggiungi_letti_r2;
$num_aggiungi_letti_r2--;
} # fine if (!strcmp((string) $cat_pers_letto_tariffa[$numtariffa],""))
} # fine while (!strcmp((string) $cat_pers_letto_tariffa[$numtariffa],"") and $num_aggiungi_letti_r2 > 0)
if ($cat_pers_letto_tariffa[$numtariffa]) $cat_persone_tariffa[$numtariffa][$cat_pers_letto_tariffa[$numtariffa]] = $cat_persone_tariffa[$numtariffa][$cat_pers_letto_tariffa[$numtariffa]] - $num_aggiungi_letti_r2;
} # fine if ($dati_cat_pers['num'])
$numpersone_corr = $numpersone_corr - $num_aggiungi_letti_r2;
$costo_agg_letti_vett[$numtariffa] = $costo_aggiungi_letti;
if ($app_beniinv_cal) $nrc = "";
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) {
$idapp = $dati_app['posizione'][$num1];
$maxoccupanti = $dati_app['maxocc'][$idapp];
if ($app_beniinv_cal) $risul_beniinv = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$numca_cal,$beniinv_presenti,$nrc,"",$idinizioperiodo,$idfineperiodo,$settimane_costo_cal,$moltiplica_costo_cal,$idapp);
else $risul_beniinv = "SI";
if (($maxoccupanti and $maxoccupanti < $numpersone_corr) or str_replace(",$idapp,","",",$app_incomp_cal,") != ",$app_incomp_cal," or $risul_beniinv != "SI") {
$appartamenti_regola2 = substr(str_replace(",$idapp,",",",",".$appartamenti_regola2.","),1,-1);
if ($app_regola2_predef_orig) $app_regola2_predef = substr(str_replace(",$idapp,",",",",".$app_regola2_predef.","),1,-1);
} # fine if (($maxoccupanti and $maxoccupanti < $numpersone_corr) or...
elseif ((strstr(",$appartamenti_regola2,",",$idapp,") or ($app_regola2_predef_orig and strstr(",$app_regola2_predef,",",$idapp,"))) and (empty($minoccupanti_con_cal_vett[$numtariffa]) or $minoccupanti_con_cal_vett[$numtariffa] > $maxoccupanti)) $minoccupanti_con_cal_vett[$numtariffa] = $maxoccupanti;
} # fine for $num1
} # fine if ((!$appartamenti_regola2 or ($app_regola2_predef_orig and !$app_regola2_predef)) and...

if ($app_regola2_predef_orig and !$app_regola2_predef) $appartamenti_regola2 = $app_regola2_predef;
} # fine if ($numpersone_corr)
$num_ripeti = 0;
$cat_persone_copia = fixset($cat_persone_tariffa[$numtariffa]);
for ($num1 = 1 ; $num1 <= $molt_tipologia ; $num1++) {
$id_richiesti++;
if (empty($app_richiesti_nr[$numtariffa][($id_richiesti - 1)])) $app_richiesti[$id_richiesti] = $appartamenti_regola2;
else {
$app_richiesti[$id_richiesti] = "";
foreach ($app_richiesti_nr[$numtariffa][($id_richiesti - 1)] as $key => $val) if ($val == "SI") $app_richiesti[$id_richiesti] .= $key.",";
$app_richiesti[$id_richiesti] = substr($app_richiesti[$id_richiesti],0,-1);
} # fine if (empty($app_richiesti_nr[$numtariffa][($id_richiesti - 1)]))
$idinizioperiodo_vett[$id_richiesti] = $idinizioperiodo;
$idfineperiodo_vett[$id_richiesti] = $idfineperiodo;
if ($numpersone_corr == $numpersone_tot or ($numpersone_corr * $num1) <= $numpersone_tot) $numpersone_vett[$id_richiesti] = $numpersone_corr;
else $numpersone_vett[$id_richiesti] = ($numpersone_corr - 1);
$numpersone_cp = $numpersone_vett[$id_richiesti];
$cat_persone_vett[$id_richiesti] = array();
for ($num2 = 0 ; $num2 < $dati_cat_pers['num'] ; $num2++) {
if (!empty($cat_persone_copia[$num2]) and $numpersone_cp) {
if ($numpersone_cp > $cat_persone_copia[$num2]) $numpersone_corr_cp = $cat_persone_copia[$num2];
else $numpersone_corr_cp = $numpersone_cp;
$cat_persone_vett[$id_richiesti][$num2] = $numpersone_corr_cp;
$numpersone_cp = $numpersone_cp - $numpersone_corr_cp;
$cat_persone_copia[$num2] = $cat_persone_copia[$num2] - $numpersone_corr_cp;
} # fine if (!empty($cat_persone_copia[$num2]) and $numpersone_cp)
} # fine for $num2
if (isset($app_richiesti[',vicini,']) and $app_richiesti[',vicini,'] == "SI") {
if (empty($dati_r2['napp']['v']["tariffa".$numtariffa])) $app_richiesti[",succ_non_vicino,"][$id_richiesti] = 1;
else {
$num_ripeti++;
if ($dati_r2['napp']["tariffa".$numtariffa] > 1 and $num_ripeti == $dati_r2['napp']["tariffa".$numtariffa]) {
$app_richiesti[",succ_non_vicino,"][$id_richiesti] = 1;
$num_ripeti = 0;
} # fine if ($dati_r2['napp']["tariffa".$numtariffa] > 1 and $num_ripeti == $dati_r2['napp']["tariffa".$numtariffa])
} # fine else if (!$dati_r2['napp']['v']["tariffa".$numtariffa])
} # fine if (isset($app_richiesti[',vicini,']) and $app_richiesti[',vicini,'] == "SI")
} # fine for $num1
$mostra_tariffa[$numtariffa] = ${"molt_reg2_tariffa".$numtariffa};
$persone_tariffa[$numtariffa] = $numpersone_corr;
$num_tipologie++;
$tariffa_invia[$num_tipologie] = $tariffa;
$num_app_richiesti_invia[$num_tipologie] = ${"molt_reg2_tariffa".$numtariffa};
$num_app_richiesti_invia[0][$num_tipologie] = $molt_tipologia;
$num_persone_invia[$num_tipologie] = $numpersone_orig_nt[$numtariffa];
$cat_persone_invia[$num_tipologie] = $cat_persone_tariffa_orig;
} # fine if ($appartamenti_regola2)
} # fine if ($attiva_tariffe_consentite == "n" or isset($tariffe_consentite_vett[$numtariffa]))
} # fine if (isset(${"reg2_tariffa".$numtariffa}) and ${"reg2_tariffa".$numtariffa} == "SI")
} # fine for $numtariffa
$costo_totale_tariffe = 0;
if ($id_richiesti > 0) {
$app_richiesti[',numero,'] = $id_richiesti;
if (isset($prenota_vicine) and $prenota_vicine == "SI") $app_richiesti[',vicini,'] = "SI";
} # fine if ($id_richiesti > 0)
else $controlla_tariffe = "";
} # fine if ($controlla_tariffe)
else $num_tipologie = 1;


# trasformo $cat_persone, $cat_persone_vett e $cat_persone_default in formato utilizzabile da calcola_moltiplica_costo
for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa++) {
$cat_persone[$numtariffa] = array('num' => 0);
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
if (!empty($cat_persone_tariffa[$numtariffa][$num1])) {
$cat_persone[$numtariffa][$cat_persone[$numtariffa]['num']]['molt'] = $cat_persone_tariffa[$numtariffa][$num1];
$cat_persone[$numtariffa]['ord'][$num1] = $cat_persone[$numtariffa]['num'];
$cat_persone[$numtariffa][$cat_persone[$numtariffa]['num']]['ord'] = $num1;
$cat_persone[$numtariffa]['num']++;
} # fine if (!empty($cat_persone_tariffa[$numtariffa][$num1]))
} # fine for $num1
} # fine for $numtariffa
$cat_persone_copia = $cat_persone_vett;
$cat_persone_vett = array();
if (!empty($app_richiesti[',numero,'])) {
for ($n_r = 1 ; $n_r <= $app_richiesti[',numero,'] ; $n_r++) {
$cat_persone_vett[$n_r] = array('num' => 0);
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
if (!empty($cat_persone_copia[$n_r][$num1])) {
$cat_persone_vett[$n_r][$cat_persone_vett[$n_r]['num']]['molt'] = $cat_persone_copia[$n_r][$num1];
$cat_persone_vett[$n_r]['ord'][$num1] = $cat_persone_vett[$n_r]['num'];
$cat_persone_vett[$n_r][$cat_persone_vett[$n_r]['num']]['ord'] = $num1;
$cat_persone_vett[$n_r]['num']++;
} # fine if (!empty($cat_persone_copia[$n_r][$num1]))
} # fine for $num1
} # fine for $n_r
} # fine if (!empty($app_richiesti[',numero,']))
$cat_persone_copia = $cat_persone_default;
$cat_persone_default = array('num' => 0);
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
if (!empty($cat_persone_copia[$num1])) {
$cat_persone_default[$cat_persone_default['num']]['molt'] = $cat_persone_copia[$num1];
$cat_persone_default['ord'][$num1] = $cat_persone_default['num'];
$cat_persone_default[$cat_persone_default['num']]['ord'] = $num1;
$cat_persone_default['num']++;
} # fine if (!empty($cat_persone_copia[$num1]))
} # fine for $num1
unset($cat_persone_copia);

$num_prenota_tot = 0;
for ($num1 = 1 ; $num1 <= $num_tipologie ; $num1++) $num_prenota_tot = $num_prenota_tot + $num_app_richiesti_invia[0][$num1];

if (empty($app_richiesti[',numero,'])) {
$app_richiesti_copia = fixset($app_richiesti);
unset($app_richiesti);
$lista_app_richiesti = "";
$app_richiesti[',numero,'] = 1;
if (!$app_richiesti_copia) {
#$lista_app_richiesti = ",tutti,,";
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) $lista_app_richiesti .= $dati_app['posizione'][$num1].",";
} # fine if (!$app_richiesti_copia)
else foreach ($app_richiesti_copia as $key => $val) if ($val == "SI") $lista_app_richiesti .= $key.",";
$app_richiesti[1] = substr($lista_app_richiesti,0,-1);
unset($idinizioperiodo_vett);
unset($idfineperiodo_vett);
$idinizioperiodo_vett[1] = $idinizioperiodo;
$idfineperiodo_vett[1] = $idfineperiodo;
} # fine if (empty($app_richiesti[',numero,']))


# se vi sono costi con appartamenti incompatibili
$app_incomp_costi = "";
for ($numca = 1 ; $numca <= $numcostiagg ; $numca++) {
$costoagg = "costoagg".$numca;
$idcostoagg = "idcostoagg".$numca;
if ($priv_ins_costi_agg != "s" or ($attiva_costi_agg_consentiti != "n" and $costi_agg_consentiti_vett[$$idcostoagg] != "SI")) $$costoagg = "";
if (isset($$costoagg) and $$costoagg == "SI" and $dati_ca[$dati_ca['id'][$$idcostoagg]]['appincompatibili']) $app_incomp_costi .= ",".$dati_ca[$dati_ca['id'][$$idcostoagg]]['appincompatibili'];
} # fine for $numca
if ($app_incomp_costi) {
$app_incomp_costi .= ",";
for ($n_r = 1 ; $n_r <= $app_richiesti[',numero,'] ; $n_r++) {
$lista_app_richiesti = ",".$app_richiesti[$n_r].",";
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) {
$idapp = $dati_app['posizione'][$num1];
if (str_replace(",$idapp,","",$app_incomp_costi) != $app_incomp_costi) {
$app_richiesti[$n_r] = substr(str_replace(",$idapp,",",",",".$app_richiesti[$n_r].","),1,-1);
} # fine if (str_replace(",$idapp,","",$app_incomp_costi) != $app_incomp_costi)
} # fine for $num1
} # fine for $n_r
} # fine if ($app_incomp_costi)

# se vi sono costi con beni inventario dall'appartamento
for ($numca = 1 ; $numca <= $numcostiagg ; $numca++) {
$costoagg = "costoagg".$numca;
$idcostoagg = "idcostoagg".$numca;
$num_costo = $dati_ca['id'][$$idcostoagg];
if (fixset($dati_ca[$num_costo]['tipo_beniinv']) == "app" and $$costoagg == "SI" and $dati_ca[$num_costo]['mostra'] == "s") {
$nrc = "";
$numsettimane_aux = ${"numsettimane".$numca};
$settimane_costo = calcola_settimane_costo($tableperiodi,$dati_ca,$num_costo,$idinizioperiodo,$idfineperiodo,"",aggslashdb($numsettimane_aux));
for ($n_r = 1 ; $n_r <= $app_richiesti[',numero,'] ; $n_r++) {
$numpersone_corr = $numpersone;
if ($numpersone_vett[$n_r]) $numpersone_corr = $numpersone_vett[$n_r];
if (!empty($cat_persone_vett[$n_r])) $cat_persone_corr = $cat_persone_vett[$n_r];
else $cat_persone_corr = $cat_persone_default;
$nummoltiplica_ca_aux = ${"nummoltiplica_ca".$numca};
calcola_moltiplica_costo($dati_ca,$num_costo,$moltiplica_costo,$idinizioperiodo,$idfineperiodo,$settimane_costo,aggslashdb($nummoltiplica_ca_aux),$numpersone_corr,$cat_persone_corr,"");
$lista_app_richiesti = ",".$app_richiesti[$n_r].",";
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) {
$idapp = $dati_app['posizione'][$num1];
if (str_replace(",$idapp,","",",".$app_richiesti[$n_r].",") != ",".$app_richiesti[$n_r].",") {
$risul = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$num_costo,$beniinv_presenti,$nrc,"",$idinizioperiodo,$idfineperiodo,$settimane_costo,$moltiplica_costo,$idapp);
if ($risul != "SI") {
$app_richiesti[$n_r] = substr(str_replace(",$idapp,",",",",".$app_richiesti[$n_r].","),1,-1);
$app_incomp_costi = "SI";
} # fine ($risul != "SI")
} # fine if (str_replace(",$idapp,","",",".$app_richiesti[$n_r].",") != ",".$app_richiesti[$n_r].",")
} # fine for $num1
} # fine for $n_r
} # fine if ($dati_ca[$num_costo]['tipo_beniinv'] == "app" and $$costoagg == "SI" and...
} # fine for $numca


$condizioni_regole1_consentite = "";
if ($attiva_regole1_consentite == "s" and $verificare != "NO") {
unset($lista_app_richiesti);
for ($num1 = 0 ; $num1 < count($regole1_consentite) ; $num1++) if ($regole1_consentite[$num1]) $condizioni_regole1_consentite .= "motivazione = '".aggslashdb($regole1_consentite[$num1])."' or ";
if (!$condizioni_regole1_consentite) {
echo mex("Non c'è nussun periodo delle regole 1 in cui sia consentito inserire prenotazioni per l'utente",$pag)." $nome_utente.<br>";
$verificare = "NO";
} # fine if (!$condizioni_regole1_consentite)
else {
$condizioni_regole1_consentite = "(".str_replace("motivazione = ' '","motivazione = '' or motivazione is null",substr($condizioni_regole1_consentite,0,-4)).")";
for ($n_r = 1 ; $n_r <= $app_richiesti[',numero,'] ; $n_r++) {
$lista_app_richiesti = ",".$app_richiesti[$n_r].",";
unset($lista_app_richiesti2);
$posti = 0;
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) {
$idapp = $dati_app['posizione'][$num1];
if ($lista_app_richiesti == ",,tutti,," or str_replace(",$idapp,","",$lista_app_richiesti) != $lista_app_richiesti) {
$appartamento_consentito = esegui_query("select idregole,iddatainizio,iddatafine from $tableregole where app_agenzia = '$idapp' and (motivazione2 != 'x' or motivazione2 is NULL) and iddatainizio <= '$idfineperiodo' and iddatafine >= '$idinizioperiodo' and $condizioni_regole1_consentite order by iddatainizio");
unset($iddatainizio_regole_tot);
unset($iddatafine_regole_tot);
for ($num2 = 0 ; $num2 < numlin_query($appartamento_consentito) ; $num2++) {
$iddatainizio_regola = risul_query($appartamento_consentito,$num2,'iddatainizio');
$iddatafine_regola = risul_query($appartamento_consentito,$num2,'iddatafine');
if ($num2 == 0) {
$iddatainizio_regole_tot = $iddatainizio_regola;
$iddatafine_regole_tot = $iddatafine_regola;
} # fine if ($num2 == 0)
else {
if ($iddatainizio_regola == ($iddatafine_regole_tot + 1)) $iddatafine_regole_tot = $iddatafine_regola;
else break;
} # fine else if ($num2 == 0)
} # fine for $num2
if (numlin_query($appartamento_consentito) > 0 and $iddatainizio_regole_tot <= $idinizioperiodo and $iddatafine_regole_tot >= $idfineperiodo) {
$posti++;
$lista_app_richiesti2 .= $idapp.",";
} # fine if (numlin_query($appartamento_consentito) > 0 and...
} # fine if ($lista_app_richiesti == ",,tutti,," or...
} # fine for $num1
$lista_app_richiesti2 = substr($lista_app_richiesti2,0,-1);
if ($posti == 0) {
echo mex("Non c'è nessun appartamento tra quelli richiesti in cui sia consentito inserire prenotazioni per l'utente",'unit.php')." $nome_utente";
if ($num_tipologie > 1) echo " (".mex("tipologia",$pag)." $n_r)";
echo ".<br>";
$verificare = "NO";
} # fine if ($posti == 0)
else $app_richiesti[$n_r] = $lista_app_richiesti2;
} # fine for $n_r
} # fine else if (!$condizioni_regole1_consentite)
} # fine if ($attiva_regole1_consentite == "s" and $verificare != "NO")

# se si possono usare solo alcuni appartamenti a causa delle tariffe consentite e le rispettive regole 2
if (($priv_mod_assegnazione_app != "s" or $priv_mod_prenotazioni != "s") and ($priv_ins_assegnazione_app != "s" or $priv_ins_nuove_prenota != "s") and $verificare != "NO") {
unset($appartamenti_consentiti_regola2);
unset($lista_app_richiesti);
$tutti_app_consentiti = "NO";
for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa++) {
if ($attiva_tariffe_consentite == "n" or isset($tariffe_consentite_vett[$numtariffa])) {
$tariffa = "tariffa".$numtariffa;
$appartamenti_regola2 = dati_regole2($dati_r2,$app_regola2_predef,$tariffa,$idinizioperiodo,$idfineperiodo,$id_periodo_corrente,$tipo_periodi,$anno,$tableregole);
if (!$appartamenti_regola2) {
$tutti_app_consentiti = "SI";
break;
} # fine if (!$appartamenti_regola2)
else {
$appartamenti_regola2 = explode(",",$appartamenti_regola2);
for ($num1 = 0 ; $num1 < count($appartamenti_regola2) ; $num1++) $appartamenti_consentiti_regola2[$appartamenti_regola2[$num1]] = "SI";
} # fine else if (!$appartamenti_regola2)
} # fine if ($attiva_tariffe_consentite == "n" or isset($tariffe_consentite_vett[$numtariffa]))
} # fine for $numtariffa
if ($tutti_app_consentiti != "SI") {
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) {
$id_appartamento = $dati_app['posizione'][$num1];
if (!isset($appartamenti_consentiti_regola2[$id_appartamento]) or $appartamenti_consentiti_regola2[$id_appartamento] != "SI") $appartamenti_consentiti_regola2[$id_appartamento] = "NO";
} # fine for $num1
} # fine if ($tutti_app_consentiti != "SI")
for ($n_r = 1 ; $n_r <= $app_richiesti[',numero,'] ; $n_r++) {
$lista_app_richiesti = ",".$app_richiesti[$n_r].",";
$lista_app_richiesti2 = "";
$posti = 0;
for ($num1 = 0 ; $num1 < $numappartamenti ; $num1++) {
$idapp = $dati_app['posizione'][$num1];
if ($lista_app_richiesti == ",,tutti,," or str_replace(",$idapp,","",$lista_app_richiesti) != $lista_app_richiesti) {
if (!isset($appartamenti_consentiti_regola2[$idapp] ) or $appartamenti_consentiti_regola2[$idapp] != "NO") {
$posti++;
$lista_app_richiesti2 .= $idapp.",";
} # fine if (!isset($appartamenti_consentiti_regola2[$idapp] ) or $appartamenti_consentiti_regola2[$idapp] != "NO")
} # fine if ($lista_app_richiesti == ",,tutti,," or...
} # fine for $num1
$lista_app_richiesti2 = substr($lista_app_richiesti2,0,-1);
if ($posti == 0) {
echo mex("Non c'è nessun appartamento tra quelli richiesti in cui sia consentito inserire prenotazioni per l'utente",'unit.php')." $nome_utente";
if ($num_tipologie > 1) echo " (".mex("tipologia",$pag)." $n_r)";
echo ".<br>";
$verificare = "NO";
} # fine if ($posti == 0)
else $app_richiesti[$n_r] = $lista_app_richiesti2;
} # fine for $n_r
} # fine if (($priv_mod_assegnazione_app != "s" or...

if ($verificare != "NO") {
for ($num1 = $idinizioperiodo; $num1 <= $idfineperiodo; $num1 = $num1 + 1) {
$prenotazioni = esegui_query("select * from $tableprenota where iddatainizio <= $num1 and iddatafine >= $num1");
$numprenotazioni = numlin_query($prenotazioni);
$rigasettimana = esegui_query("select * from $tableperiodi where idperiodi = '$num1' ");
if ($numprenotazioni >= $numappartamenti) {
if (empty($mostra_non_disp)) $verificare = "NO";
$inizioperiodopieno = risul_query($rigasettimana,0,'datainizio');
$inizioperiodopieno_f = formatta_data($inizioperiodopieno,$stile_data);
$fineperiodopieno = risul_query($rigasettimana,0,'datafine');
$fineperiodopieno_f = formatta_data($fineperiodopieno,$stile_data);
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>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"inizioperiodo\" value=\"$data_inizioperiodo\">
<input type=\"hidden\" name=\"fineperiodo\" value=\"$data_fineperiodo\">
<input type=\"hidden\" name=\"numpersone\" value=\"$numpersone\">
<input type=\"hidden\" name=\"num_cat_pers_passa\" value=\"".$dati_cat_pers['num']."\">";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) if (strcmp(fixstr(${"cat$num1"."_numpers"}),"")) echo "<input type=\"hidden\" name=\"cat$num1"."_numpers\" value=\"".htmlspecialchars(${"cat$num1"."_numpers"})."\">";
echo "<input type=\"hidden\" name=\"mostra_non_disp\" value=\"1\">
$dati_email
<button class=\"xavl\" type=\"submit\"><div>".mex("Mostra le tariffe non disponibili",$pag)."</div></button>
</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") {
$mostra_quadro_disp = esegui_query("select valpersonalizza from $tablepersonalizza where idpersonalizza = 'mostra_quadro_disp' and idutente = '$id_utente'");
$mostra_quadro_disp = risul_query($mostra_quadro_disp,0,'valpersonalizza');
} # fine if ($priv_vedi_tab_mesi != "n")
else $mostra_quadro_disp = "";
if ($mostra_quadro_disp) {
if ($tipo_periodi == "s") $num_colonne_tab_disp = 5;
else $num_colonne_tab_disp = 32;
$id_data_inizio_tab_disp = (floor(( (float) $idinizioperiodo + (float) $idfineperiodo) / 2) - floor((float) $num_colonne_tab_disp / 2));
if (($id_data_inizio_tab_disp + $num_colonne_tab_disp - 1) > $max_periodo) $id_data_inizio_tab_disp = ($max_periodo - $num_colonne_tab_disp + 1);
if ($id_data_inizio_tab_disp < 1) $id_data_inizio_tab_disp = 1;
if ($num_colonne_tab_disp > $max_periodo) $num_colonne_tab_disp = $max_periodo;
if ($limiti_var['n_ini'] > $id_data_inizio_tab_disp) $limiti_var['n_ini'] = $id_data_inizio_tab_disp;
if ($limiti_var['n_fine'] < ($id_data_inizio_tab_disp + $num_colonne_tab_disp - 1)) $limiti_var['n_fine'] = ($id_data_inizio_tab_disp + $num_colonne_tab_disp - 1);
} # fine if ($mostra_quadro_disp)

$profondita['iniziale'] = "";
$profondita['attuale'] = 1;
$max_prenota = esegui_query("select max(idprenota) from $tableprenota");
$tot_prenota = risul_query($max_prenota,0,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");
$fatto_libera = "";

$condizioni_regole1_non_sel = "";
if ($applica_regole1 == "n" or ($applica_regole1 == "f" and $attiva_regole1_consentite != "n")) {
for ($num1 = 0 ; $num1 < count($regole1_consentite) ; $num1++) if ($regole1_consentite[$num1]) $condizioni_regole1_non_sel .= "motivazione != '".$regole1_consentite[$num1]."' and ";
if ($condizioni_regole1_non_sel) $condizioni_regole1_non_sel = " and (motivazione2 = 'x' or (".str_replace("motivazione != ' '","motivazione != '' and motivazione is not null",substr($condizioni_regole1_non_sel,0,-5))."))";
} # fine if ($applica_regole1 == "n" or ($applica_regole1 == "f" and...
if (!$condizioni_regole1_non_sel and ($applica_regole1 == "m" or $applica_regole1 == "f")) $condizioni_regole1_non_sel = " and motivazione2 = 'x'";
$app_agenzia = esegui_query("select * from $tableregole where app_agenzia != ''$condizioni_regole1_non_sel");
$num_app_agenzia = numlin_query($app_agenzia);

unlock_tabelle($tabelle_lock);


if ($num_tipologie_r2) {
for ($n_r = 1 ; $n_r < $app_richiesti[',numero,'] ; $n_r++) {
if ($controlla_con_costo_letto_r2[$n_r]) {
$app_richiesti_senza_cal_r2_copia = $app_richiesti_senza_cal_r2[$n_r];
if (@is_array($app_richiesti_senza_cal_r2_copia)) {
$app_richiesti_senza_cal_r2[$n_r] = array();
reset($app_richiesti_senza_cal_r2_copia);
foreach ($app_richiesti_senza_cal_r2_copia as $numapp => $val) {
if (strstr(",".$app_richiesti[$n_r].",",",$numapp,") or $app_richiesti[$n_r] == ",tutti,") $app_richiesti_senza_cal_r2[$n_r][$numapp] = "SI";
} # fine foreach ($app_richiesti_senza_cal_r2_copia as $numapp => $val)
} # fine if (@is_array($app_richiesti_senza_cal_r2_copia))
# Levo da app_richiesti gli appartamenti incompatibili con il costo letto aggiuntivo solo ora
# perchè app_richiesti_senza_cal doveva essere un sottoinsieme di app_richiesti
if ($app_beniinv_cal) $nrc = "";
for ($num1 = 0 ; $num1 < $dati_app['totapp'] ; $num1++) {
$numapp = $dati_app['posizione'][$num1];
if ($app_beniinv_cal) $risul_beniinv = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$numca_cal,$beniinv_presenti,$nrc,"",$idinizioperiodo,$idfineperiodo,$settimane_costo_cal,$moltiplica_costo_cal,$numapp);
else $risul_beniinv = "SI";
if (strstr(",$app_incomp_cal,",",$numapp,") or $risul_beniinv != "SI") {
$app_richiesti[$n_r] = substr(str_replace(",$numapp,",",",",".$app_richiesti[$n_r].","),1,-1);
} # fine if (strstr(",$app_incomp_cal,",",$numapp,") or $risul_beniinv != "SI")
} # fine for $num1
} # fine if ($controlla_con_costo_letto_r2[$n_r])
} # fine for $n_r
$app_richiesti_r2 = $app_richiesti;
} # fine if ($num_tipologie_r2)


$controllato_con_costo_letto = 0;
$info_periodi_ag = array('numero' => 0);
if (!$num_tipologie_r2 or $posto) {

if ($num_tipologie_r2) {
unset($app_richiesti);
$app_richiesti[',numero,'] = 1;
$app_richiesti[1] = $app_richiesti_r2[$app_richiesti_r2[',numero,']];
unset($idinizioperiodo_vett);
unset($idfineperiodo_vett);
$idinizioperiodo_vett[1] = $idinizioperiodo;
$idfineperiodo_vett[1] = $idfineperiodo;
} # fine if ($num_tipologie_r2)

$app_richiesti_con_cal = array();
if ($controlla_con_costo_letto) {
$lista_app_richiesti = "";
if (@is_array($app_richiesti_senza_cal)) {
reset($app_richiesti_senza_cal);
foreach ($app_richiesti_senza_cal as $numapp => $val) {
if (str_replace(",$numapp,","",",".$app_richiesti[1].",") != ",".$app_richiesti[1]."," or $app_richiesti[1] == ",tutti,") $lista_app_richiesti .= "$numapp,";
} # fine foreach ($app_richiesti_senza_cal as $numapp => $val)
} # fine if (@is_array($app_richiesti_senza_cal))
# Levo da app_richiesti gli appartamenti incompatibili con il costo letto aggiuntivo solo ora
# perchè app_richiesti_senza_cal doveva essere un sottoinsieme di app_richiesti
if ($app_beniinv_cal) $nrc = "";
for ($num1 = 0 ; $num1 < $dati_app['totapp'] ; $num1++) {
$numapp = $dati_app['posizione'][$num1];
if ($app_beniinv_cal) $risul_beniinv = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$numca_cal,$beniinv_presenti,$nrc,"",$idinizioperiodo,$idfineperiodo,$settimane_costo_cal,$moltiplica_costo_cal,$numapp);
else $risul_beniinv = "SI";
if (str_replace(",$numapp,","",",$app_incomp_cal,") != ",$app_incomp_cal," or $risul_beniinv != "SI") {
$app_richiesti[1] = substr(str_replace(",$numapp,",",",",".$app_richiesti[1].","),1,-1);
} # fine if (str_replace(",$numapp,","",",$app_incomp_cal,") != ",$app_incomp_cal," or...
} # fine for $num1
if ($lista_app_richiesti) {
$app_richiesti_con_cal = $app_richiesti;
unset($app_richiesti);
$app_richiesti[',numero,'] = 1;
$app_richiesti[1] = substr($lista_app_richiesti,0,-1);
$app_richiesti_senza_cal = $app_richiesti;
} # fine if ($lista_app_richiesti)
else {
$controllato_con_costo_letto = 1;
$controlla_con_costo_letto = 0;
} # fine else if ($lista_app_richiesti)
} # fine if ($controlla_con_costo_letto)


$occupare_app_agenzia_sempre = "";
if ($num_app_agenzia != 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);
$app_orig_prenota_id = $app_prenota_id;
} # fine if ($info_periodi_ag['numero'])
$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;
$limiti_var2 = $limiti_var;
$info_periodi_ag = array('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');
$id_app_agenzia[$info_periodi_ag['numero']] = $info_periodi_ag['app'][$info_periodi_ag['numero']];
$idinizio_app_agenzia[$info_periodi_ag['numero']] = $info_periodi_ag['ini'][$info_periodi_ag['numero']];
$idfine_app_agenzia[$info_periodi_ag['numero']] = $info_periodi_ag['fine'][$info_periodi_ag['numero']];
$motivazione_app_agenzia[$info_periodi_ag['numero']] = risul_query($app_agenzia,$num1,'motivazione');
$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);
for ($num1 = $idinizioperiodo; $num1 <= $idfineperiodo; $num1++) {
$numprenotazioni = 0;
for ($num2 = 0 ; $num2 < $dati_app['totapp'] ; $num2++) if (!empty($prenota_in_app_sett2[$dati_app['posizione'][$num2]][$num1])) $numprenotazioni++;
if ($numprenotazioni >= $numappartamenti) $occupare_app_agenzia_sempre = "SI";
} # fine for $num1
$app_orig_prenota_id2 = $app_prenota_id2;
if ($occupare_app_agenzia_sempre != "SI") {
$occupare_app_agenzia = 0;
liberasettimane($idinizioperiodo_vett,$idfineperiodo_vett,$limiti_var2,$anno,$fatto_libera,$app_liberato_vett,$profondita2,$app_richiesti,$app_prenota_id2,$app_orig_prenota_id2,$inizio_prenota_id2,$fine_prenota_id2,$app_assegnabili_id2,$prenota_in_app_sett2,$dati_app,$PHPR_TAB_PRE."prenota");
} # fine if ($occupare_app_agenzia_sempre != "SI")
if ($fatto_libera != "SI") $limiti_var['t_limite'] = (time() + $sec_limite_libsett);
} # fine if ($num_app_agenzia != 0)

if ($fatto_libera != "SI") {
$occupare_app_agenzia = 1;
$app_orig_prenota_id = $app_prenota_id;
liberasettimane($idinizioperiodo_vett,$idfineperiodo_vett,$limiti_var,$anno,$fatto_libera,$app_liberato_vett,$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 ($num_app_agenzia != 0 and ($applica_regole1 == "f" and $attiva_regole1_consentite != "n")) $fatto_libera = "NO";
} # fine if ($fatto_libera != "SI")

if ($controlla_con_costo_letto and $fatto_libera != "SI") {
$controllato_con_costo_letto = 1;
$app_richiesti = $app_richiesti_con_cal;

if ($num_app_agenzia != 0 and $occupare_app_agenzia_sempre != "SI") {
$occupare_app_agenzia = 0;
$limiti_var2['t_limite'] = (time() + $sec_limite_libsett);
$app_prenota_id2 = $app_orig_prenota_id2;
liberasettimane($idinizioperiodo_vett,$idfineperiodo_vett,$limiti_var2,$anno,$fatto_libera,$app_liberato_vett,$profondita2,$app_richiesti,$app_prenota_id2,$app_orig_prenota_id2,$inizio_prenota_id2,$fine_prenota_id2,$app_assegnabili_id2,$prenota_in_app_sett2,$dati_app,$PHPR_TAB_PRE."prenota");
} # fine if ($num_app_agenzia != 0 and $occupare_app_agenzia_sempre != "SI")

if ($fatto_libera != "SI") {
$occupare_app_agenzia = 1;
$limiti_var['t_limite'] = (time() + $sec_limite_libsett);
$app_prenota_id = $app_orig_prenota_id;
liberasettimane($idinizioperiodo_vett,$idfineperiodo_vett,$limiti_var,$anno,$fatto_libera,$app_liberato_vett,$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 ($num_app_agenzia != 0 and ($applica_regole1 == "f" and $attiva_regole1_consentite != "n")) $fatto_libera = "NO";
} # fine if ($fatto_libera != "SI")

} # fine if ($controlla_con_costo_letto and $fatto_libera != "SI")
/*if ($num_app_agenzia != 0) {
unset($app_orig_prenota_id2);
unset($app_prenota_id2);
unset($inizio_prenota_id2);
unset($fine_prenota_id2);
unset($app_assegnabili_id2);
unset($prenota_in_app_sett2);
} # fine if ($num_app_agenzia != 0)*/

} # fine if (!$num_tipologie_r2 or $posto)


$liberato = "SI";
if ($fatto_libera == "SI") {
echo mex("<b>C'è</b> ancora disponibilità nel periodo richiesto",$pag);
if ($numpersone) {
echo mex(" in un appartamento da <b>almeno",'unit.php')." $numpersone ".mex("persone",$pag)."</b>";
if ($dati_cat_pers['num']) {
$frase_cat_persone = "";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
if (!empty(${"cat$num1"."_numpers"})) {
if (${"cat$num1"."_numpers"} == 1) $frase_cat_persone .= "<em>1</em> ".$dati_cat_pers[$num1]['n_sing'].", ";
else $frase_cat_persone .= "<em>".${"cat$num1"."_numpers"}."</em> ".$dati_cat_pers[$num1]['n_plur'].", ";
} # fine if (!empty(${"cat$num1"."_numpers"}))
} # fine for $num1
echo " (".substr($frase_cat_persone,0,-2).")";
} # fine if ($dati_cat_pers['num'])
} # fine if ($numpersone)
if (!empty($num_persone_casa)) {
if ($app_richiesti[',numero,'] == 1) echo mex(" in un appartamento da",'unit.php')." <b>$num_persone_casa ".mex("persone",$pag)."</b>";
else echo mex(" in",'unit.php')." <b>".$app_richiesti[',numero,']."</b> ".mex("appartamenti da",'unit.php')." <b>$num_persone_casa ".mex("persone",$pag)."</b>";
} # fine if (!empty($num_persone_casa))
if ($controlla_tariffe) {
if ($app_richiesti[',numero,'] == 1) echo mex(" in un appartamento della <b>tariffa selezionata</b>",'unit.php');
else {
echo mex(" in",'unit.php')." <b>".$app_richiesti[',numero,']."</b> ";
if (!isset($prenota_vicine) or $prenota_vicine != "SI") echo mex("appartamenti delle <b>tariffe selezionate</b>",'unit.php');
else echo mex("appartamenti vicini delle <b>tariffe selezionate</b>",'unit.php');
} # fine else if ($app_richiesti[',numero,'] == 1)
} # fine if ($controlla_tariffe)
if ($num_app_agenzia != 0 and $occupare_app_agenzia) {
echo mex(", ma si dovranno fare degli spostamenti nei periodi della <div style=\"display: inline; color: blue;\">regola di assegnazione 1</div>",$pag);
$lista_motivazione = "";
for ($num1 = 0 ; $num1 < $info_periodi_ag['numero'] ; $num1++) {
for ($num2 = 1 ; $num2 <= $num_app_richiesti ; $num2++) {
if (@is_array($app_liberato_vett)) $app_liberato = $app_liberato_vett[$num2];
else $app_liberato = $app_liberato_vett;
if ($app_liberato == $id_app_agenzia[$num1] and $idinizioperiodo <= $idfine_app_agenzia[$num1] and $idfineperiodo >= $idinizio_app_agenzia[$num1]) {
if (fixset($motivazione_presente[$motivazione_app_agenzia[$num1]]) != "SI") {
$motivazione_presente[$motivazione_app_agenzia[$num1]] = "SI";
if ($motivazione_app_agenzia[$num1]) {
if (!$lista_motivazione) $lista_motivazione = "<b>".$motivazione_app_agenzia[$num1]."</b>";
else $lista_motivazione .= ", <b>".$motivazione_app_agenzia[$num1]."</b>";
} # fine if ($motivazione_app_agenzia[$num1])
} # fine if (fixset($motivazione_presente[$motivazione_app_agenzia[$num1]]) != "SI")
} # fine if ($app_liberato == $id_app_agenzia[$num1] and...
} # fine for $num2
} # fine for $num1
if (@is_array($app_orig_prenota_id)) {
reset($app_orig_prenota_id);
foreach ($app_orig_prenota_id as $idprenota => $app_prenota) {
if ($app_prenota_id[$idprenota] != $app_prenota) {
for ($num1 = 0 ; $num1 < $info_periodi_ag['numero'] ; $num1 = $num1 + 1) {
if (($app_prenota_id[$idprenota] == $id_app_agenzia[$num1] or $app_prenota == $id_app_agenzia[$num1]) and $inizio_prenota_id[$idprenota] <= $idfine_app_agenzia[$num1] and $fine_prenota_id[$idprenota] >= $idinizio_app_agenzia[$num1]) {
if (!isset($motivazione_presente[$motivazione_app_agenzia[$num1]]) or $motivazione_presente[$motivazione_app_agenzia[$num1]] != "SI") {
$motivazione_presente[$motivazione_app_agenzia[$num1]] = "SI";
if ($motivazione_app_agenzia[$num1]) {
if (!$lista_motivazione) $lista_motivazione = "<b>".$motivazione_app_agenzia[$num1]."</b>";
else $lista_motivazione .= ", <b>".$motivazione_app_agenzia[$num1]."</b>";
} # fine if ($motivazione_app_agenzia[$num1])
} # fine if (!isset($motivazione_presente[$motivazione_app_agenzia[$num1]]) or...
} # fine if (($app_prenota_id[$idprenota] == $id_app_agenzia[$num1] or...
} # fine for $num1
} # fine if ($app_prenota_id[$idprenota] != $app_prenota)
} # fine foreach ($app_orig_prenota_id as $idprenota => $app_prenota)
} # fine if (@is_array($app_orig_prenota_id))
if ($lista_motivazione) echo " (".$lista_motivazione.")";
} # fine if ($num_app_agenzia != 0 and $occupare_app_agenzia)
echo ".<br>";
} # fine if ($fatto_libera == "SI")
else {
echo mex("<b>Non c'è</b> più disponibilità nel periodo richiesto",$pag);
if ($app_incomp_costi) $frase_app_incomp_costi = " ".mex("con i costi aggiuntivi selezionati",$pag);
else $frase_app_incomp_costi = "";
if ($numpersone) echo mex(" in un appartamento da <b>almeno",'unit.php')." $numpersone ".mex("persone",$pag)."</b>";
if (!empty($num_persone_casa)) {
if ($app_richiesti[',numero,'] == 1) echo mex(" in un appartamento da",'unit.php')." <b>$num_persone_casa ".mex("persone",$pag)."</b>";
else echo mex(" in",'unit.php')." <b>".$app_richiesti[',numero,']."</b> ".mex("appartamenti da",'unit.php')." <b>$num_persone_casa ".mex("persone",$pag)."</b>";
} # fine if (!empty($num_persone_casa))
if ($controlla_tariffe) {
if ($app_richiesti[',numero,'] == 1) echo mex(" in un appartamento della <b>tariffa selezionata</b>",'unit.php')."$frase_app_incomp_costi.<br>";
else {
echo mex(" in",'unit.php')." <b>".$app_richiesti[',numero,']."</b> ";
if (!isset($prenota_vicine) or $prenota_vicine != "SI") echo mex("appartamenti delle <b>tariffe selezionate</b>",'unit.php')."$frase_app_incomp_costi.<br>";
else {
echo mex("appartamenti vicini delle <b>tariffe selezionate</b>",'unit.php').".<br>
<form accept-charset=\"utf-8\" method=\"post\" action=\"disponibilita.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"inizioperiodo\" value=\"$data_inizioperiodo\">
<input type=\"hidden\" name=\"fineperiodo\" value=\"$data_fineperiodo\">
<input type=\"hidden\" name=\"num_persone_casa\" value=\"".htmlspecialchars(fixstr($num_persone_casa))."\">
<input type=\"hidden\" name=\"molt_app_persone_casa\" value=\"".htmlspecialchars(fixstr($molt_app_persone_casa))."\">
<input type=\"hidden\" name=\"numpersone\" value=\"$numpersone\">
<input type=\"hidden\" name=\"num_tariffe_passa\" value=\"".$dati_tariffe['num']."\">
<input type=\"hidden\" name=\"num_cat_pers_passa\" value=\"".$dati_cat_pers['num']."\">";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) if (strcmp(fixstr(${"cat$num1"."_numpers"}),"")) echo "<input type=\"hidden\" name=\"cat$num1"."_numpers\" value=\"".htmlspecialchars(fixstr(${"cat$num1"."_numpers"}))."\">";
echo "<input type=\"hidden\" name=\"controlla_tariffe\" value=\"SI\">
$dati_email";
for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa++) {
echo "<input type=\"hidden\" name=\"reg2_tariffa$numtariffa\" value=\"".htmlspecialchars(fixstr(${"reg2_tariffa".$numtariffa}))."\">
<input type=\"hidden\" name=\"molt_reg2_tariffa$numtariffa\" value=\"".htmlspecialchars(fixstr(${"molt_reg2_tariffa".$numtariffa}))."\">
<input type=\"hidden\" name=\"pers_reg2_tariffa$numtariffa\" value=\"".htmlspecialchars(fixstr(${"pers_reg2_tariffa".$numtariffa}))."\">";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) if (!empty($cat_persone_invia[$numtariffa][$num1])) echo "<input type=\"hidden\" name=\"cat$num1"."_pers_reg2_tariffa$numtariffa\" value=\"".htmlspecialchars($cat_persone_invia[$numtariffa][$num1])."\">";
} # fine for $numtariffa
echo "<button class=\"xavl\" type=\"submit\"><div>".mex("Riprova senza cercare appartamenti vicini",'unit.php')."</div></button>
</div></form>";
} # fine else if (!isset($prenota_vicine) or $prenota_vicine != "SI")
} # fine else if ($app_richiesti[',numero,'] == 1)
} # fine if ($controlla_tariffe)
else echo "$frase_app_incomp_costi.<br>";
if (empty($mostra_non_disp) and !$num_tipologie_r2) {
$liberato = "NO";
echo "<br><form accept-charset=\"utf-8\" method=\"post\" action=\"disponibilita.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"inizioperiodo\" value=\"$data_inizioperiodo\">
<input type=\"hidden\" name=\"fineperiodo\" value=\"$data_fineperiodo\">
<input type=\"hidden\" name=\"numpersone\" value=\"$numpersone\">
<input type=\"hidden\" name=\"num_cat_pers_passa\" value=\"".$dati_cat_pers['num']."\">";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) if (strcmp(fixstr(${"cat$num1"."_numpers"}),"")) echo "<input type=\"hidden\" name=\"cat$num1"."_numpers\" value=\"".htmlspecialchars(fixstr(${"cat$num1"."_numpers"}))."\">";
echo "<input type=\"hidden\" name=\"mostra_non_disp\" value=\"1\">
$dati_email
<button class=\"xavl\" type=\"submit\"><div>".mex("Mostra le tariffe non disponibili",$pag)."</div></button>
</div></form><br>";
} # fine if (empty($mostra_non_disp) and !$num_tipologie_r2)
} # fine else if ($fatto_libera == "SI")

if ($liberato != "SI" and empty($num_persone_casa) and !$controlla_tariffe and $app_richiesti[',numero,'] == 1 and !$app_incomp_costi and (!$num_tipologie_r2 or $posto)) {
$app_prenota_id = $app_orig_prenota_id;
$inizio_prenota_id3 = $inizio_prenota_id;
$fine_prenota_id3 = $fine_prenota_id;
$prenota_in_app_sett3 = $prenota_in_app_sett;
spezzaprenota($inizioperiodo,$fineperiodo,$anno,$limiti_var,$profondita,"",$n_tronchi,$vet_appartamenti,$vett_idinizio,$vett_idfine,$numpersone,$app_prenota_id,$app_orig_prenota_id,$inizio_prenota_id3,$fine_prenota_id3,$app_assegnabili_id,$prenota_in_app_sett3,$dati_app);
if ($n_tronchi != -1) {
echo mex("Si potrebbe inserire la prenotazione dividendola in",$pag)." <b>$n_tronchi ".mex("parti",$pag)."</b>.<br>";
#$liberato = "SI";
} # fine if ($n_tronchi != -1)
} # fine if ($liberato != "SI" and empty($num_persone_casa) and !$controlla_tariffe and...



$tabelle_lock = "";
$altre_tab_lock = array($tableprenota,$tablecostiprenota,$tablenometariffe,$tableperiodi,$tableappartamenti,$tableregole,$tablepersonalizza,$tablerelinventario);
$tabelle_lock = lock_tabelle($tabelle_lock,$altre_tab_lock);
$continuare_totale = "SI";
$num_ripeti_contr = 0;
$option_contratti = "";
$dati_tutte_tariffe = "";
$testo_costi_agg = "";
$lunghezza_perioido = $fineperiodo - $inizioperiodo + 1;
$app_regola2_orig = array();
$nome_tariffa = array();


if ($liberato == "SI") {
$form_regola2 = "NO";
echo "<br>".mex("Periodo di",$pag)." <b>$lunghezza_perioido</b> ";
if ($lunghezza_perioido == 1) echo mex("$parola_settimana",$pag);
else echo mex("$parola_settimane",$pag);
echo " ".mex("dal",$pag)." $data_inizioperiodo_f ".mex("al",$pag)." $data_fineperiodo_f.<br><br>
<table cellspacing=0 cellpadding=0 border=0><tr><td>
<form accept-charset=\"utf-8\" method=\"post\" action=\"disponibilita.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"inizioperiodo\" value=\"$data_inizioperiodo\">
<input type=\"hidden\" name=\"fineperiodo\" value=\"$data_fineperiodo\">
<input type=\"hidden\" name=\"controlla_tariffe\" value=\"SI\">
<input type=\"hidden\" name=\"num_tariffe_passa\" value=\"".$dati_tariffe['num']."\">
<input type=\"hidden\" name=\"num_cat_pers_passa\" value=\"".$dati_cat_pers['num']."\">
$dati_email
<table cellspacing=0 cellpadding=0 border=0><tr><td><div class=\"rbox\">
<table cellspacing=0 cellpadding=0 border=0>";
$dati_tariffe = dati_tariffe($tablenometariffe,"","",$tableregole);
unset($continuare_vett);
unset($app_regola2_vett);
unset($num_app_reg2_vett);
$num_pers_regola3 = array();

unset($app_richiesti_orig);
for ($num1 = 0 ; $num1 < $dati_app['totapp'] ; $num1++) {
$numapp = $dati_app['posizione'][$num1];
for ($n_r = 1 ; $n_r <= $app_richiesti[',numero,'] ; $n_r++) {
if (str_replace(",$numapp,","",",".$app_richiesti[$n_r].",") != ",".$app_richiesti[$n_r]."," or $app_richiesti[$n_r] == ",tutti,") $app_richiesti_orig[$numapp] = "SI";
} # fine for $n_r
} # fine for $num1


# Controllo per ogni tariffa se esistono i prezzi, i permessi, se vi sono appartamenti compatibili
$rigasettimana = array();
$costo_tariffa_nr = array();
$tariffesettimanali_nr = array();
$tariffesettimanalip_nr = array();
$caparra_nr = array();
$commissioni_nr = array();
$cat_persone_nr = array();
for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa++) {
$tariffa = "tariffa".$numtariffa;
if ($attiva_tariffe_consentite != "n" and !isset($tariffe_consentite_vett[$numtariffa])) $continuare_vett[$numtariffa] = "NO";
if ($num_tipologie_r2 and !$posto and empty($persone_tariffa_r2[$numtariffa])) $continuare_vett[$numtariffa] = "NO";
if ($controllato_con_costo_letto and !empty($dati_ca[$dati_ca['id'][$costo_aggiungi_letti]]["incomp_tariffa".$numtariffa]) and empty($persone_tariffa_r2[$numtariffa])) $continuare_vett[$numtariffa] = "NO";
if (!isset($continuare_vett[$numtariffa]) or $continuare_vett[$numtariffa] != "NO") {

$app_richiesti_corr = $app_richiesti_orig;
if (!empty($numpersone_orig_nt[$numtariffa])) $numpersone_orig_tar = $numpersone_orig_nt[$numtariffa];
else $numpersone_orig_tar = $numpersone_orig;
$numpersone = $numpersone_orig_tar;
if (!empty($persone_tariffa_r2[$numtariffa])) {
$numpersone = $persone_tariffa_r2[$numtariffa];
$tipologia_r2 = $numpersone_r2[$numpersone];
unset($app_richiesti_corr);
if ($controlla_con_costo_letto_r2[$tipologia_r2]) $app_richiesti_corr = $app_richiesti_senza_cal_r2[$tipologia_r2];
else {
for ($num1 = 0 ; $num1 < $dati_app['totapp'] ; $num1++) {
$numapp = $dati_app['posizione'][$num1];
if (strstr($app_richiesti_r2[$tipologia_r2].",",",$numapp,")) $app_richiesti_corr[$numapp] = "SI";
} # fine for $num1
} # fine else if ($controlla_con_costo_letto_r2[$tipologia_r2])
} # fine if (!empty($persone_tariffa_r2[$numtariffa]))
else $tipologia_r2 = -1;

if (!empty($persone_tariffa[$numtariffa])) $numpersone = $persone_tariffa[$numtariffa];
$regola3 = esegui_query("select * from $tableregole where tariffa_per_persone = '$tariffa'");
if (numlin_query($regola3) == 1) {
$pers_agg = 0;
if (!$numpersone and risul_query($regola3,0,'iddatainizio')) {
$numpersone = risul_query($regola3,0,'iddatainizio');
$pers_agg = 1;
} # fine if (!$numpersone and...
if (risul_query($regola3,0,'iddatafine')) {
$num_pers_min = risul_query($regola3,0,'iddatafine');
if (!$numpersone or $numpersone < $num_pers_min) {
if ($numpersone) $num_pers_regola3['min'][$numtariffa] = $num_pers_min;
$numpersone = $num_pers_min;
$pers_agg = 1;
} # fine if (!$numpersone or $numpersone < $num_pers_min) 
} # fine if (risul_query($regola3,0,'iddatafine'))
if ($pers_agg) {
$num_pers_regola3[$numtariffa] = $numpersone;
$cat0_numpers = $numpersone;
for ($num1 = 0 ; $num1 < $dati_app['totapp'] ; $num1++) {
$numapp = $dati_app['posizione'][$num1];
if ($dati_app['maxocc'][$numapp] and $dati_app['maxocc'][$numapp] < $num_pers_regola3[$numtariffa]) $app_richiesti_corr[$numapp] = "NO";
} # fine for $num1
} # fine if ($pers_agg)
} # fine if (numlin_query($regola3) == 1)

if ($controllato_con_costo_letto and empty($persone_tariffa_r2[$numtariffa])) {
$costo_agg_letti_vett[$numtariffa] = $costo_aggiungi_letti;
$numpersone = $numpersone - $num_aggiungi_letti;
$persone_tariffa[$numtariffa] = $numpersone;
if (isset($cat_pers_letto)) $cat_persone_tariffa[$numtariffa][$cat_pers_letto] = $cat_persone_tariffa[$numtariffa][$cat_pers_letto] - $num_aggiungi_letti;
} # fine if ($controllato_con_costo_letto and empty($persone_tariffa_r2[$numtariffa]))

#if (!$controlla_tariffe or $mostra_quadro_disp == "reg2") {
if (!empty($persone_tariffa_r2[$numtariffa])) $app_richiesti_con_cal_corr = $app_richiesti_r2[$tipologia_r2];
else $app_richiesti_con_cal_corr = fixset($app_richiesti_con_cal[1]);
$appartamenti_regola2 = dati_regole2($dati_r2,$app_regola2_predef,$tariffa,$idinizioperiodo,$idfineperiodo,$id_periodo_corrente,$tipo_periodi,$anno,$tableregole);

# Se ci sono regole2 predefinite (siamo in eccezione alla regola2) controllo che ci siano app compatibili con la regola originaria
if ($app_regola2_predef) {
$app_regola2_predef = explode(",",$app_regola2_predef);
$app_compatibile_trovato = "NO";
for ($num1 = 0 ; $num1 < count($app_regola2_predef) ; $num1++) {
if (isset($app_richiesti_corr[$app_regola2_predef[$num1]]) and $app_richiesti_corr[$app_regola2_predef[$num1]] == "SI") $app_compatibile_trovato = "SI";
} # fine for $num1
if ($app_compatibile_trovato == "NO") {
# Se non ci sono app compatibili provo ad aggiungere il costo per il letto aggiuntivo
if ((($controlla_con_costo_letto and !empty($persone_tariffa_r2[$numtariffa])) or !empty($controlla_con_costo_letto_r2[$tipologia_r2])) and !$controllato_con_costo_letto and empty($dati_ca[$dati_ca['id'][$costo_aggiungi_letti]]["incomp_tariffa".$numtariffa])) {
$costo_agg_letti_vett[$numtariffa] = $costo_aggiungi_letti;
$numpersone = $numpersone - $num_aggiungi_letti;
$persone_tariffa[$numtariffa] = $numpersone;
if (isset($cat_pers_letto)) $cat_persone_tariffa[$numtariffa][$cat_pers_letto] = $cat_persone_tariffa[$numtariffa][$cat_pers_letto] - $num_aggiungi_letti;
if ($app_beniinv_cal) $nrc = "";
for ($num1 = 0 ; $num1 < count($app_regola2_predef) ; $num1++) {
$numapp = $app_regola2_predef[$num1];
if ($app_beniinv_cal) $risul_beniinv = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$numca_cal,$beniinv_presenti,$nrc,"",$idinizioperiodo,$idfineperiodo,$settimane_costo_cal,$moltiplica_costo_cal,$numapp);
else $risul_beniinv = "SI";
if (!strstr(",$app_incomp_cal,",",$numapp,") and $risul_beniinv == "SI") {
if (strstr(",$app_richiesti_con_cal_corr,",",$numapp,") or $app_richiesti_con_cal_corr == ",tutti,") {
$app_compatibile_trovato = "SI";
if (!$minoccupanti_con_cal_vett[$numtariffa] or $minoccupanti_con_cal_vett[$numtariffa] > $dati_app['maxocc'][$numapp]) $minoccupanti_con_cal_vett[$numtariffa] = $dati_app['maxocc'][$numapp];
} # fine if (strstr(",$app_richiesti_con_cal_corr,",",$numapp,") or $app_richiesti_con_cal_corr == ",tutti,")
} # fine if (!strstr(",$app_incomp_cal,",",$numapp,") and $risul_beniinv == "SI")
} # fine for $num1
} # fine if ((($controlla_con_costo_letto and !empty($persone_tariffa_r2[$numtariffa])) or $controlla_con_costo_letto_r2[$tipologia_r2]) and !$controllato_con_costo_letto and...
if ($app_compatibile_trovato == "NO") $continuare_vett[$numtariffa] = "NO";
} # fine if ($app_compatibile_trovato == "NO")
} # fine if ($app_regola2_predef)

# Controllo sulla regola2 effettiva
if (!strcmp((string) $appartamenti_regola2,"")) $appartamenti_regola2 = substr($dati_app['lista'],1,-1);
if ($appartamenti_regola2) {
$app_compatibile_trovato = "NO";
$app_regola2_vett[$numtariffa] = $appartamenti_regola2;
$app_regola2_orig[$numtariffa] = $app_regola2_vett[$numtariffa];
$appartamenti_regola2 = explode(",",$app_regola2_vett[$numtariffa]);
$num_app_reg2_vett[$numtariffa] = count($appartamenti_regola2);
for ($num1 = 0 ; $num1 < count($appartamenti_regola2) ; $num1++) {
if (isset($app_richiesti_corr[$appartamenti_regola2[$num1]]) and $app_richiesti_corr[$appartamenti_regola2[$num1]] == "SI") $app_compatibile_trovato = "SI";
else {
$app_regola2_vett[$numtariffa] = substr(str_replace(",".$appartamenti_regola2[$num1].",",",",",".$app_regola2_vett[$numtariffa].","),1,-1);
$num_app_reg2_vett[$numtariffa]--;
} # fine else if (isset($app_richiesti_corr[$appartamenti_regola2[$num1]]) and...
} # fine for $num1

if (!$controlla_tariffe and isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1) {
$napp_posti = explode(",",$app_regola2_vett[$numtariffa]);
$napp_posti = count($napp_posti);
if ($napp_posti < $dati_r2['napp']["tariffa".$numtariffa]) {
$app_regola2_vett[$numtariffa] = $app_regola2_orig[$numtariffa];
$numpersone_nr[$numtariffa] = trova_numpersone_per_app($app_regola2_vett[$numtariffa],$posti_mancanti[$numtariffa],$posti_mancanti['cat_pers_letto'][$numtariffa],$cat_persone[$numtariffa],$dati_app_pos,$dati_app,$dati_r2['napp']["tariffa".$numtariffa],$numpersone_orig_tar,$dati_cat_pers);
if ($posti_mancanti['cat_pers_letto'][$numtariffa] >= 0) {
$cat_pers_letto_tariffa[$numtariffa] = $posti_mancanti['cat_pers_letto'][$numtariffa];
$cat_persone_tariffa[$numtariffa][$cat_pers_letto_tariffa[$numtariffa]] = $cat_persone[$numtariffa][$cat_persone[$numtariffa]['ord'][$cat_pers_letto_tariffa[$numtariffa]]]['molt'];
} # fine if ($posti_mancanti['cat_pers_letto'][$numtariffa] >= 0)
for ($num1 = 0 ; $num1 < $dati_app['totapp'] ; $num1++) {
$idapp = $dati_app['posizione'][$num1];
if (str_replace(",$idapp,",",",",".$app_regola2_vett[$numtariffa].",") != ",".$app_regola2_vett[$numtariffa].",") {
$maxoccupanti = $dati_app['maxocc'][$idapp];
for ($num2 = 0 ; $num2 < $dati_r2['napp']["tariffa".$numtariffa] ; $num2++) {
if (strcmp(fixstr($numpersone_nr[$numtariffa][$num2]),"")) {
if ($num1 == 0) $app_richiesti_nr[$numtariffa][$num2] = array();
if (!$maxoccupanti or $maxoccupanti >= $numpersone_nr[$numtariffa][$num2]) $app_richiesti_nr[$numtariffa][$num2][$idapp] = "SI";
} # fine if (strcmp(fixstr($numpersone_nr[$numtariffa][$num2]),""))
} # fine for $num2
} # fine if (str_replace(",$idapp,",",",",".$app_regola2_vett[$numtariffa].",") != ",".$app_regola2_vett[$numtariffa].",")
} # fine for $num1
} # fine if ($napp_posti < $dati_r2['napp']["tariffa".$numtariffa])
} # fine if (!$controlla_tariffe and isset($dati_r2['napp']["tariffa".$numtariffa]) and...
if ($posti_mancanti[$numtariffa]) $app_compatibile_trovato = "NO";

# Se non ci sono app compatibili provo ad aggiungere il costo per il letto aggiuntivo
if ($app_compatibile_trovato == "NO") {
if (((!empty($controlla_con_costo_letto) and empty($persone_tariffa_r2[$numtariffa])) or !empty($controlla_con_costo_letto_r2[$tipologia_r2]) or ($posti_mancanti[$numtariffa] and $posti_mancanti['cat_pers_letto'][$numtariffa] > -2)) and empty($controllato_con_costo_letto) and empty($dati_ca[$dati_ca['id'][$costo_aggiungi_letti]]["incomp_tariffa".$numtariffa])) {
if (empty($costo_agg_letti_vett[$numtariffa])) {
$costo_agg_letti_vett[$numtariffa] = $costo_aggiungi_letti;
$numpersone = $numpersone - $num_aggiungi_letti;
$persone_tariffa[$numtariffa] = $numpersone;
if (isset($cat_pers_letto) and !$posti_mancanti[$numtariffa]) {
$cat_persone_tariffa[$numtariffa][$cat_pers_letto] = $cat_persone_tariffa[$numtariffa][$cat_pers_letto] - $num_aggiungi_letti;
$cat_persone[$numtariffa][$cat_persone[$numtariffa]['ord'][$cat_pers_letto]]['molt'] = $cat_persone_tariffa[$numtariffa][$cat_pers_letto];
} # fine if (isset($cat_pers_letto) and !$posti_mancanti[$numtariffa])
} # fine if (empty($costo_agg_letti_vett[$numtariffa]))
if (!$posti_mancanti[$numtariffa]) $app_regola2_vett[$numtariffa] = $app_regola2_orig[$numtariffa];
$num_app_reg2_vett[$numtariffa] = count($appartamenti_regola2);
if ($app_beniinv_cal) $nrc = "";
$posti_comp = 0;
for ($num1 = 0 ; $num1 < count($appartamenti_regola2) ; $num1++) {
$numapp = $appartamenti_regola2[$num1];
if ($app_beniinv_cal) $risul_beniinv = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$numca_cal,$beniinv_presenti,$nrc,"",$idinizioperiodo,$idfineperiodo,$settimane_costo_cal,$moltiplica_costo_cal,$numapp);
else $risul_beniinv = "SI";
if ((strstr(",$app_richiesti_con_cal_corr,",",$numapp,") or $app_richiesti_con_cal_corr == ",tutti," or $posti_mancanti[$numtariffa]) and str_replace(",$numapp,","",",$app_incomp_cal,") == ",$app_incomp_cal," and $risul_beniinv == "SI") {
$posti_comp++;
$app_compatibile_trovato = "SI";
if (empty($minoccupanti_con_cal_vett[$numtariffa]) or $minoccupanti_con_cal_vett[$numtariffa] > $dati_app['maxocc'][$numapp]) $minoccupanti_con_cal_vett[$numtariffa] = $dati_app['maxocc'][$numapp];
} # fine if ((strstr(",$app_richiesti_con_cal_corr,",",$numapp,") or $app_richiesti_con_cal_corr == ",tutti," or...
else {
$app_regola2_vett[$numtariffa] = substr(str_replace(",".$numapp.",",",",",".$app_regola2_vett[$numtariffa].","),1,-1);
$num_app_reg2_vett[$numtariffa]--;
} # fine else if (str_replace(",$numapp,","",",".$app_richiesti_con_cal[1].",") != ",".$app_richiesti_con_cal[1]."," or...
} # fine for $num1

# Se ci sono posti mancanti procedo direttamente solo se ci sono posti compatibili nel caso più sfortunato in cui vengano liberati tutti gli app incompatibili
if ($posti_mancanti[$numtariffa] and ($dati_r2['napp']["tariffa".$numtariffa] - (count($appartamenti_regola2) - $posti_comp) * $num_aggiungi_letti) < $posti_mancanti[$numtariffa]) {
$app_compatibile_trovato = "NO";
if ($controlla_tariffe) {
if ($app_beniinv_cal) $nrc = "";
$posti_max = 0;
foreach ($app_liberato_vett as $pos => $idapp) {
if ($app_beniinv_cal) $risul_beniinv = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$numca_cal,$beniinv_presenti,$nrc,"",$idinizioperiodo,$idfineperiodo,$settimane_costo_cal,$moltiplica_costo_cal,$idapp);
else $risul_beniinv = "SI";
if (str_replace(",$idapp,","",",$app_incomp_cal,") == ",$app_incomp_cal," and $risul_beniinv == "SI") $posti_max++;
} # fine foreach ($app_liberato_vett as $pos => $idapp)
if (($posti_max * $num_aggiungi_letti) >= $posti_mancanti[$numtariffa]) $app_compatibile_trovato = "SI";
} # fine if ($controlla_tariffe)
else {
# Se nel caso più fortunato c'è posto allora provo ad eliminare gli appartamenti incompatibili da quelli richiesti per le tipologie necessarie
if ($posti_comp > $dati_r2['napp']["tariffa".$numtariffa]) $posti_max = $dati_r2['napp']["tariffa".$numtariffa];
else $posti_max = $posti_comp;
if ($posti_mancanti[$numtariffa] <= ($posti_max * $num_aggiungi_letti)) {
$num_elim = 0;
$app_usati = array();
for ($num1 = 0 ; $num1 < $dati_r2['napp']["tariffa".$numtariffa] ; $num1++) {
if (($num_elim * $num_aggiungi_letti) < $posti_mancanti[$numtariffa]) {
$app_richiesti_nr_orig = $app_richiesti_nr[$numtariffa][$num1];
$app_trovato_nr = 0;
foreach ($app_richiesti_nr[$numtariffa][$num1] as $idapp => $val) {
if (str_replace(",$idapp,","",",$app_incomp_cal,") != ",$app_incomp_cal,") $app_richiesti_nr[$numtariffa][$num1][$idapp] = "";
elseif (!$app_trovato_nr and !isset($app_usati[$idapp])) {
$app_usati[$idapp] = 1;
$app_trovato_nr = 1;
} # fine elseif (!$app_trovato_nr and !isset($app_usati[$idapp])
} # fine foreach ($app_richiesti_nr[$numtariffa][$num1] as $idapp => $val)
if ($app_trovato_nr) $num_elim++;
else $app_richiesti_nr[$numtariffa][$num1] = $app_richiesti_nr_orig;
} # fine if (($num_elim * $num_aggiungi_letti) < $posti_mancanti[$numtariffa])
} # fine for $num1
if (($num_elim * $num_aggiungi_letti) >= $posti_mancanti[$numtariffa]) $app_compatibile_trovato = "SI";
} # fine if (!$controlla_tariffe and $posti_mancanti[$numtariffa] <= ($posti_max * $num_aggiungi_letti))
} # fine else if($controlla_tariffe)
} # fine if ($posti_mancanti[$numtariffa] and ($dati_r2['napp']["tariffa".$numtariffa] - (count($appartamenti_regola2) - $posti_comp) * $num_aggiungi_letti) < $posti_mancanti[$numtariffa])
} # fine if (((!empty($controlla_con_costo_letto) and empty($persone_tariffa_r2[$numtariffa])) or !empty($controlla_con_costo_letto_r2[$tipologia_r2]) or...
if ($app_compatibile_trovato == "NO") $continuare_vett[$numtariffa] = "NO";
} # fine if ($app_compatibile_trovato == "NO")
$app_regola2_orig['napp'][$numtariffa] = fixset($dati_r2['napp']["tariffa".$numtariffa]);
} # fine if ($appartamenti_regola2)

#} # fine if (!$controlla_tariffe or $mostra_quadro_disp == "reg2")

$coeff_cat_persone = array();
$coeff_cat_persone['i'] = 0;
$coeff_cat_persone['p'] = 0;
if ($numpersone and $dati_cat_pers['num']) {
if (!isset($dati_r2['napp']["tariffa".$numtariffa]) or $dati_r2['napp']["tariffa".$numtariffa] <= 1) {
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
if (!empty($cat_persone_tariffa[$numtariffa][$num1])) {
if ($dati_cat_pers[$num1]['perc'] == "100") $coeff_cat_persone['i'] += (float) $cat_persone_tariffa[$numtariffa][$num1];
else $coeff_cat_persone['p'] += ((float) $cat_persone_tariffa[$numtariffa][$num1] * ((float) $dati_cat_pers[$num1]['perc'] / 100));
} # fine if (!empty($cat_persone_tariffa[$numtariffa][$num1]))
} # fine for $num1
} # fine if (!isset($dati_r2['napp']["tariffa".$numtariffa]) or $dati_r2['napp']["tariffa".$numtariffa] <= 1)
else {
$cat_persone_tariffa_cp = $cat_persone_tariffa;
$numpersone_cp = $numpersone;
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
if (!empty($cat_persone_tariffa_cp[$numtariffa][$num1]) and $numpersone_cp) {
if ($numpersone_cp > $cat_persone_tariffa_cp[$numtariffa][$num1]) $numpersone_corr_cp = $cat_persone_tariffa_cp[$numtariffa][$num1];
else $numpersone_corr_cp = $numpersone_cp;
$numpersone_cp = $numpersone_cp - $numpersone_corr_cp;
$cat_persone_tariffa_cp[$numtariffa][$num1] = $cat_persone_tariffa_cp[$numtariffa][$num1] - $numpersone_corr_cp;
if ($dati_cat_pers[$num1]['perc'] == "100") $coeff_cat_persone['i'] += (float) $numpersone_corr_cp;
else $coeff_cat_persone['p'] += ((float) $numpersone_corr_cp * ((float) $dati_cat_pers[$num1]['perc'] / 100));
} # fine if (!empty($cat_persone_tariffa_cp[$numtariffa][$num1]) and $numpersone_cp)
} # fine for $num1
} # fine else if (!isset($dati_r2['napp']["tariffa".$numtariffa]) or $dati_r2['napp']["tariffa".$numtariffa] <= 1)
} # fine if ($numpersone and $dati_cat_pers['num'])

$costo_tariffa_vett[$numtariffa] = 0;
$tariffesettimanali_vett[$numtariffa] = "";
$tariffesettimanalip_vett[$numtariffa] = "";
for ($num1 = $idinizioperiodo ; $num1 <= $idfineperiodo ; $num1++) {
if (empty($rigasettimana[$num1])) $rigasettimana[$num1] = esegui_query("select * from $tableperiodi where idperiodi = '$num1' ");
$esistetariffa = risul_query($rigasettimana[$num1],0,$tariffa);
$esistetariffap = risul_query($rigasettimana[$num1],0,$tariffa."p");
if ((!strcmp((string) $esistetariffa,"") or $esistetariffa < 0) and (!strcmp((string) $esistetariffap,"") or $esistetariffap < 0)) {
$continuare_vett[$numtariffa] = "NO";
break;
} # fine if ((!strcmp((string) $esistetariffa,"") or $esistetariffa < 0) and...
else {
$costo_tariffa_settimana = risul_query($rigasettimana[$num1],0,$tariffa);
$costo_tariffap_sett = risul_query($rigasettimana[$num1],0,$tariffa."p");
if (!strcmp((string) $costo_tariffa_settimana,"")) $costo_tariffa_settimana = 0;
if (!strcmp((string) $costo_tariffap_sett,"")) $costo_tariffap_sett = 0;
if (!$dati_cat_pers['num']) $costo_tariffap_settimana = (float) $costo_tariffap_sett * (float) $numpersone;
else $costo_tariffap_settimana = (round(((float) $costo_tariffap_sett * $coeff_cat_persone['p']) / $dati_cat_pers['arrotond']) * $dati_cat_pers['arrotond']) + ((float) $costo_tariffap_sett * $coeff_cat_persone['i']);
$costo_tariffa_settimana_tot = $costo_tariffa_settimana + $costo_tariffap_settimana;
$costo_tariffa_vett[$numtariffa] = $costo_tariffa_vett[$numtariffa] + $costo_tariffa_settimana_tot;
$tariffesettimanali_vett[$numtariffa] .= ",".$costo_tariffa_settimana_tot;
if ($dati_tariffe[$tariffa]['moltiplica'] == "p") $tariffesettimanalip_vett[$numtariffa] .= ",".$costo_tariffap_settimana;
if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1) {
if (!$dati_cat_pers['num']) {
$costo_tariffap_settimana_alt = (float) $costo_tariffap_sett * (float) ($numpersone - 1);
$costo_tariffa_settimana_tot_alt = $costo_tariffa_settimana + $costo_tariffap_settimana_alt;
for ($num2 = (($numpersone * $dati_r2['napp']["tariffa".$numtariffa]) - $numpersone_orig_tar) ; $num2 > 0 ; $num2--) {
$nr = $dati_r2['napp']["tariffa".$numtariffa] - $num2;
if (!isset($costo_tariffa_nr[$numtariffa][$nr])) $costo_tariffa_nr[$numtariffa][$nr] = 0;
$costo_tariffa_nr[$numtariffa][$nr] += $costo_tariffa_settimana_tot_alt;
if (!isset($tariffesettimanali_nr[$numtariffa][$nr])) $tariffesettimanali_nr[$numtariffa][$nr] = "";
if (strcmp(fixstr($tariffesettimanali_nr[$numtariffa][$nr]),"")) $tariffesettimanali_nr[$numtariffa][$nr] .= ",";
else $tariffesettimanali_nr[$numtariffa][$nr] = "";
$tariffesettimanali_nr[$numtariffa][$nr] .= $costo_tariffa_settimana_tot_alt;
if ($dati_tariffe[$tariffa]['moltiplica'] == "p") {
if (strcmp(fixstr($tariffesettimanalip_nr[$numtariffa][$nr]),"")) $tariffesettimanalip_nr[$numtariffa][$nr] .= ",";
else $tariffesettimanalip_nr[$numtariffa][$nr] = "";
$tariffesettimanalip_nr[$numtariffa][$nr] .= $costo_tariffap_settimana_alt;
} # fine if ($dati_tariffe[$tariffa]['moltiplica'] == "p")
if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1 and $num1 == $idfineperiodo) {
for ($num3 = 1 ; $num3 < $mostra_tariffa[$numtariffa] ; $num3++) {
$costo_tariffa_nr[$numtariffa][($nr + ($dati_r2['napp']["tariffa".$numtariffa] * $num3))] = $costo_tariffa_nr[$numtariffa][$nr];
$tariffesettimanali_nr[$numtariffa][($nr + ($dati_r2['napp']["tariffa".$numtariffa] * $num3))] = $tariffesettimanali_nr[$numtariffa][$nr];
if ($tariffesettimanalip_nr[$numtariffa][$nr]) $tariffesettimanalip_nr[$numtariffa][($nr + ($dati_r2['napp']["tariffa".$numtariffa] * $num3))] = $tariffesettimanalip_nr[$numtariffa][$nr];
} # fine for $num3
} # fine if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1 and $num1 == $idfineperiodo)
} # fine for $num2
} # fine if (!$dati_cat_pers['num'])
else {
$cat_persone_tariffa_cp = $cat_persone_tariffa;
for ($num2 = 0 ; $num2 < $dati_r2['napp']["tariffa".$numtariffa] ; $num2++) {
$coeff_cat_persone_nt = array();
$coeff_cat_persone_nt['i'] = 0;
$coeff_cat_persone_nt['p'] = 0;
if (isset($numpersone_nr[$numtariffa][$num2])) $numpersone_cp = $numpersone_nr[$numtariffa][$num2];
else {
if ($num2 >= ($dati_r2['napp']["tariffa".$numtariffa] - (($numpersone * $dati_r2['napp']["tariffa".$numtariffa]) - $numpersone_orig_tar))) $numpersone_cp = $numpersone - 1;
else $numpersone_cp = $numpersone;
} # fine else if (isset($numpersone_nr[$numtariffa][$num2]))
for ($num3 = 0 ; $num3 < $dati_cat_pers['num'] ; $num3++) {
if (!empty($cat_persone_tariffa_cp[$numtariffa][$num3]) and $numpersone_cp) {
if ($numpersone_cp > $cat_persone_tariffa_cp[$numtariffa][$num3]) $numpersone_corr_cp = $cat_persone_tariffa_cp[$numtariffa][$num3];
else $numpersone_corr_cp = $numpersone_cp;
$cat_persone_nr[$numtariffa][$num2][$num3] = $numpersone_corr_cp;
$numpersone_cp = $numpersone_cp - $numpersone_corr_cp;
$cat_persone_tariffa_cp[$numtariffa][$num3] = $cat_persone_tariffa_cp[$numtariffa][$num3] - $numpersone_corr_cp;
if ($dati_cat_pers[$num3]['perc'] == "100") $coeff_cat_persone_nt['i'] += (float) $numpersone_corr_cp;
else $coeff_cat_persone_nt['p'] += ((float) $numpersone_corr_cp * ((float) $dati_cat_pers[$num3]['perc'] / 100));
} # fine if (!empty($cat_persone_tariffa_cp[$numtariffa][$num3]) and $numpersone_cp)
else $cat_persone_nr[$numtariffa][$num2][$num3] = "0";
} # fine for $num3
$costo_tariffap_settimana_alt = (round(((float) $costo_tariffap_sett * $coeff_cat_persone_nt['p']) / $dati_cat_pers['arrotond']) * $dati_cat_pers['arrotond']) + ((float) $costo_tariffap_sett * $coeff_cat_persone_nt['i']);
$costo_tariffa_settimana_tot_alt = $costo_tariffa_settimana + $costo_tariffap_settimana_alt;
if (!isset($costo_tariffa_nr[$numtariffa][$num2])) $costo_tariffa_nr[$numtariffa][$num2] = 0;
$costo_tariffa_nr[$numtariffa][$num2] += $costo_tariffa_settimana_tot_alt;
if (!isset($tariffesettimanali_nr[$numtariffa][$num2])) $tariffesettimanali_nr[$numtariffa][$num2] = "";
if (strcmp((string) $tariffesettimanali_nr[$numtariffa][$num2],"")) $tariffesettimanali_nr[$numtariffa][$num2] .= ",";
$tariffesettimanali_nr[$numtariffa][$num2] .= $costo_tariffa_settimana_tot_alt;
if ($dati_tariffe[$tariffa]['moltiplica'] == "p") {
if (!isset($tariffesettimanalip_nr[$numtariffa][$num2])) $tariffesettimanalip_nr[$numtariffa][$num2] = "";
if (strcmp((string) $tariffesettimanalip_nr[$numtariffa][$num2],"")) $tariffesettimanalip_nr[$numtariffa][$num2] .= ",";
$tariffesettimanalip_nr[$numtariffa][$num2] .= $costo_tariffap_settimana_alt;
} # fine if ($dati_tariffe[$tariffa]['moltiplica'] == "p")
if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1 and $num1 == $idfineperiodo) {
for ($num3 = 1 ; $num3 < $mostra_tariffa[$numtariffa] ; $num3++) {
$costo_tariffa_nr[$numtariffa][($num2 + ($dati_r2['napp']["tariffa".$numtariffa] * $num3))] = $costo_tariffa_nr[$numtariffa][$num2];
$tariffesettimanali_nr[$numtariffa][($num2 + ($dati_r2['napp']["tariffa".$numtariffa] * $num3))] = $tariffesettimanali_nr[$numtariffa][$num2];
$cat_persone_nr[$numtariffa][($num2 + ($dati_r2['napp']["tariffa".$numtariffa] * $num3))] = $cat_persone_nr[$numtariffa][$num2];
if ($tariffesettimanalip_nr[$numtariffa][$num2]) $tariffesettimanalip_nr[$numtariffa][($num2 + ($dati_r2['napp']["tariffa".$numtariffa] * $num3))] = $tariffesettimanalip_nr[$numtariffa][$num2];
} # fine for $num3
} # fine if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1 and $num1 == $idfineperiodo)
} # fine for $num2
} # fine else if (!$dati_cat_pers['num'])
} # fine if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1)
} # fine else if ((!strcmp((string) $esistetariffa,"") or $esistetariffa < 0) and...
if (!empty($dati_tariffe[$tariffa]['chiusa'][$num1])) {
$continuare_vett[$numtariffa] = "NO";
break;
} # fine if (!empty($dati_tariffe[$tariffa]['chiusa'][$num1]))
} # fine for $num1
$tariffesettimanali_vett[$numtariffa] = substr($tariffesettimanali_vett[$numtariffa],1);
$tariffesettimanalip_vett[$numtariffa] = substr($tariffesettimanalip_vett[$numtariffa],1);

} # fine if (!isset($continuare_vett[$numtariffa]) or $continuare_vett[$numtariffa] != "NO")
} # fine for $numtariffa



# Se non sono richieste tariffe specifiche controllo per ognuna se ci sono appartamenti liberi
$tariffa_non_mostrata = 0;
unset($tariffa_non_disp);
unset($tariffa_occupa_reg1);
if (!$controlla_tariffe) {
$app_liberato_vett = "";
$num_tariffe_contr = 0;
unset($tariffe_contr);
$app_gia_liberati[0] = $app_liberato_vett;
if (@is_array($num_app_reg2_vett)) {
asort ($num_app_reg2_vett);
reset ($num_app_reg2_vett);
foreach ($num_app_reg2_vett as $numtariffa => $val) {
if (!isset($continuare_vett[$numtariffa]) or $continuare_vett[$numtariffa] != "NO") {
$controllare = "SI";
if ($dati_r2['napp']["tariffa".$numtariffa] > 1) $num_apti_corr = $dati_r2['napp']["tariffa".$numtariffa];
else $num_apti_corr = 1;
if ($num_apti_corr == 1) {
for ($num1 = 0 ; $num1 <= $num_tariffe_contr ; $num1++) {
if (fixset($continuare_vett[fixstr($tariffe_contr[$num1])]) != "NO") {
if (str_replace(",".fixset($app_gia_liberati[$num1]).",","",",".$app_regola2_vett[$numtariffa].",") != ",".$app_regola2_vett[$numtariffa].",") $controllare = "NO";
} # fine if (fixset($continuare_vett[fixset($tariffe_contr[$num1])]) != "NO")
} # fine for $num1
} # fine if ($num_apti_corr == 1)
for ($num1 = 1 ; $num1 <= $num_tariffe_contr ; $num1++) {
if ($dati_r2['napp']["tariffa".$tariffe_contr[$num1]] > 1) $num_apti_nt = $dati_r2['napp']["tariffa".$tariffe_contr[$num1]];
else $num_apti_nt = 1;
if ($num_apti_corr <= $num_apti_nt and fixset($dati_r2['napp']['v']["tariffa".$numtariffa]) == fixset($dati_r2['napp']['v']["tariffa".$tariffe_contr[$num1]])) {
if ($app_regola2_vett[$tariffe_contr[$num1]] == $app_regola2_vett[$numtariffa]) {
$continuare_vett[$numtariffa] = fixset($continuare_vett[$tariffe_contr[$num1]]);
$tariffa_non_disp[$numtariffa] = fixset($tariffa_non_disp[$tariffe_contr[$num1]]);
$tariffa_occupa_reg1[$numtariffa] = $tariffa_occupa_reg1[$tariffe_contr[$num1]];
$controllare = "NO";
} # fine if ($app_regola2_vett[$tariffe_contr[$num1]] == $app_regola2_vett[$numtariffa])
else {
# se vi è una lista precedente contenuta nella attuale che è libera, allora anche questa è libera
if (empty($tariffa_non_disp[$tariffe_contr[$num1]]) and empty($tariffa_occupa_reg1[$tariffe_contr[$num1]])) {
$contenuto = "SI";
for ($num2 = 0 ; $num2 < $num_ar_prec[$tariffe_contr[$num1]] ; $num2++) {
if (str_replace(",".$ar_vett_prec[$tariffe_contr[$num1]][$num2].",","",",".$app_regola2_vett[$numtariffa].",") == ",".$app_regola2_vett[$numtariffa].",") {
$contenuto = "NO";
break;
} # fine if (str_replace(",".$ar_vett_prec[$tariffe_contr[$num1]][$num2].",","",",".$app_regola2_vett[$numtariffa].",") == ",".$app_regola2_vett[$numtariffa].",")
} # fine for $num2
if ($contenuto == "SI") $controllare = "NO";
} # fine if (empty($tariffa_non_disp[$tariffe_contr[$num1]]) and empty($tariffa_occupa_reg1[$tariffe_contr[$num1]]))
} # fine else if ($app_regola2_vett[$tariffe_contr[$num1]] == $app_regola2_vett[$numtariffa])
} # fine if ($num_apti_corr <= $num_apti_nt and...
} # fine for $num1
if ($controllare == "SI") {
$num_tariffe_contr++;
$tariffe_contr[$num_tariffe_contr] = $numtariffa;
$ar_vett_prec[$numtariffa] = explode(",",$app_regola2_vett[$numtariffa]);
$num_ar_prec[$numtariffa] = count($ar_vett_prec[$numtariffa]);
unset($idinizioperiodo_vett);
unset($idfineperiodo_vett);
$idinizioperiodo_vett[1] = $idinizioperiodo;
$idfineperiodo_vett[1] = $idfineperiodo;
unset($app_richiesti);
$app_richiesti[',numero,'] = 1;
if (empty($app_richiesti_nr[$numtariffa][0])) $app_richiesti[1] = $app_regola2_vett[$numtariffa];
else {
$app_richiesti[1] = "";
foreach ($app_richiesti_nr[$numtariffa][0] as $key => $val) if ($val == "SI") $app_richiesti[1] .= $key.",";
$app_richiesti[1] = substr($app_richiesti[1],0,-1);
} # fine else if (empty($app_richiesti_nr[$numtariffa][0]))
if ($dati_r2['napp']["tariffa".$numtariffa] > 1) {
$app_richiesti[',numero,'] = $dati_r2['napp']["tariffa".$numtariffa];
for ($num1 = 2 ; $num1 <= $app_richiesti[',numero,'] ; $num1++) {
if (empty($app_richiesti_nr[$numtariffa][($num1 - 1)])) $app_richiesti[$num1] = $app_regola2_vett[$numtariffa];
else {
$app_richiesti[$num1] = "";
foreach ($app_richiesti_nr[$numtariffa][($num1 - 1)] as $key => $val) if ($val == "SI") $app_richiesti[$num1] .= $key.",";
$app_richiesti[$num1] = substr($app_richiesti[$num1],0,-1);
} # fine else if (empty($app_richiesti_nr[$numtariffa][($num2 - 1)]))
$idinizioperiodo_vett[$num1] = $idinizioperiodo;
$idfineperiodo_vett[$num1] = $idfineperiodo;
} # fine for $num1
if (!empty($dati_r2['napp']['v']["tariffa".$numtariffa])) $app_richiesti[',vicini,'] = "SI";
} # fine if ($dati_r2['napp']["tariffa".$numtariffa] > 1)
$fatto_libera = "";
$tariffa_occupa_reg1[$numtariffa] = 0;
if ($num_app_agenzia != 0 and $info_periodi_ag['numero']) {
$limiti_var2['t_limite'] = (time() + $sec_limite_libsett);
$app_prenota_id2 = $app_orig_prenota_id2;
liberasettimane($idinizioperiodo_vett,$idfineperiodo_vett,$limiti_var2,$anno,$fatto_libera,$app_liberato_vett,$profondita2,$app_richiesti,$app_prenota_id2,$app_orig_prenota_id2,$inizio_prenota_id2,$fine_prenota_id2,$app_assegnabili_id2,$prenota_in_app_sett2,$dati_app,$PHPR_TAB_PRE."prenota");
if ($fatto_libera != "SI") $tariffa_occupa_reg1[$numtariffa] = 1;
} # fine if ($num_app_agenzia != 0 and $info_periodi_ag['numero'])
if ($fatto_libera != "SI") {
$limiti_var['t_limite'] = (time() + $sec_limite_libsett);
$app_prenota_id = $app_orig_prenota_id;
liberasettimane($idinizioperiodo_vett,$idfineperiodo_vett,$limiti_var,$anno,$fatto_libera,$app_liberato_vett,$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");
} # fine if ($fatto_libera != "SI")
if ($fatto_libera != "SI") {
if (empty($mostra_non_disp)) {
$continuare_vett[$numtariffa] = "NO";
$tariffa_non_mostrata = 1;
} # fine if (empty($mostra_non_disp))
$tariffa_non_disp[$numtariffa] = 1;
} # fine if ($fatto_libera != "SI")
elseif (!$tariffa_occupa_reg1[$numtariffa]) $app_gia_liberati[$num_tariffe_contr] = $app_liberato_vett[1];
} # fine if ($controllare == "SI")
} # fine if (!isset($continuare_vett[$numtariffa]) or $continuare_vett[$numtariffa] != "NO")
} # fine foreach ($num_app_reg2_vett as $numtariffa => $val)
} # fine if (@is_array($num_app_reg2_vett))
} # fine if (!$controlla_tariffe)


# Genero la lista delle tariffe
$caparra_totale = (float) 0;
$tariffa_mostrata = 0;
$tariffa_piu_bassa = "";
$prezzo_piu_basso = (float) 0;
$tariffe_non_disp = "";

for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa = $numtariffa + 1) {
if ($continuare_totale != "NO") {

$tariffa = "tariffa".$numtariffa;
$nometariffa = $dati_tariffe[$tariffa]['nome'];
$nome_tariffa[$numtariffa] = $nometariffa;
if ($nometariffa == "") {
$nometariffa = $numtariffa;
$nome_tariffa[$numtariffa] = mex("tariffa",$pag).$numtariffa;
} # fine if ($nometariffa == "")
if (!empty($numpersone_orig_nt[$numtariffa])) $numpersone_orig_tar = $numpersone_orig_nt[$numtariffa];
else $numpersone_orig_tar = $numpersone_orig;
if (!$numpersone_orig_tar) $numpersone_orig_tar = 0;
$numpersone = $numpersone_orig_tar;
if (!empty($num_pers_regola3['min'][$numtariffa])) $numpersone = $num_pers_regola3['min'][$numtariffa];
if (!empty($persone_tariffa[$numtariffa])) $numpersone = $persone_tariffa[$numtariffa];
if (!$numpersone and !empty($num_pers_regola3[$numtariffa])) $numpersone = $num_pers_regola3[$numtariffa];
if (!empty($costo_agg_letti_vett[$numtariffa]) and isset($minoccupanti_con_cal_vett[$numtariffa]) and $minoccupanti_con_cal_vett[$numtariffa] > $numpersone) $numpersone = $minoccupanti_con_cal_vett[$numtariffa];
$num_agg_letti = $numpersone_orig_tar - $numpersone;
$diff_letti = 0;
if (isset($continuare_vett[$numtariffa]) and $continuare_vett[$numtariffa] == "NO") $continuare = "NO";
else {
$continuare = "SI";
$tariffesettimanali = $tariffesettimanali_vett[$numtariffa];
if (strcmp((string) $tariffesettimanalip_vett[$numtariffa],"")) $tariffesettimanali .= ";".$tariffesettimanalip_vett[$numtariffa];
if (isset($costo_tariffa_nr[$numtariffa][0])) $costo_tariffa = $costo_tariffa_nr[$numtariffa][0];
else $costo_tariffa = $costo_tariffa_vett[$numtariffa];
} # fine else if ((isset($continuare_vett[$numtariffa]) and $continuare_vett[$numtariffa] == "NO")
if ($controlla_tariffe and empty($mostra_tariffa[$numtariffa])) $continuare = "NO";

if ($continuare == "SI") {
$caparra = calcola_caparra($dati_tariffe,'tariffa'.$numtariffa,$idinizioperiodo,$idfineperiodo,$costo_tariffa,$tariffesettimanali);

$num_controlla_limite = 1;
if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1) $num_controlla_limite = $mostra_tariffa[$numtariffa];
$cat_persone_nr = array();
if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1) {
$num_controlla_limite = $num_controlla_limite * $dati_r2['napp']["tariffa".$numtariffa];
if (!empty($costo_agg_letti_vett[$numtariffa])) {
$num_agg_letti = ceil((float) ($numpersone_orig_tar - ($numpersone * $dati_r2['napp']["tariffa".$numtariffa])) / (float) $dati_r2['napp']["tariffa".$numtariffa]);
$diff_letti = ((($numpersone + $num_agg_letti) * $dati_r2['napp']["tariffa".$numtariffa]) - $numpersone_orig_tar);
if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1) $diff_letti = $mostra_tariffa[$numtariffa] * $diff_letti;
} # fine if (!empty($costo_agg_letti_vett[$numtariffa]))
else {
for ($num1 = ($dati_r2['napp']["tariffa".$numtariffa] - ($numpersone * $dati_r2['napp']["tariffa".$numtariffa]) + $numpersone_orig_tar) ; $num1 < $dati_r2['napp']["tariffa".$numtariffa] ; $num1++) {
if (!isset($numpersone_nr[$numtariffa][$num1])) $numpersone_nr[$numtariffa][$num1] = $numpersone - 1;
if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1) {
for ($num2 = 1 ; $num2 < $mostra_tariffa[$numtariffa] ; $num2++) {
$num_corr = ($num1 + ($dati_r2['napp']["tariffa".$numtariffa] * $num2));
if (!isset($numpersone_nr[$numtariffa][$num_corr])) $numpersone_nr[$numtariffa][$num_corr] = $numpersone - 1;
} # fine for $num2
} # fine if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1)
} # fine for $num1
} # fine else if (!empty($costo_agg_letti_vett[$numtariffa]))

$cat_persone_copia = $cat_persone[$numtariffa];
for ($num1 = 0 ; $num1 < $dati_r2['napp']["tariffa".$numtariffa] ; $num1++) {
if (isset($numpersone_nr[$numtariffa][$num1]) and strcmp((string) $numpersone_nr[$numtariffa][$num1],"")) $numpersone_cp = $numpersone_nr[$numtariffa][$num1];
else $numpersone_cp = $numpersone;
$cat_persone_nr[$num1] = array('num' => 0);
for ($num2 = 0 ; $num2 < $dati_cat_pers['num'] ; $num2++) {
if (!empty($cat_persone_copia[fixset($cat_persone_copia['ord'][$num2])]['molt']) and $numpersone_cp) {
if ($numpersone_cp > $cat_persone_copia[$cat_persone_copia['ord'][$num2]]['molt']) $numpersone_corr_cp = $cat_persone_copia[$cat_persone_copia['ord'][$num2]]['molt'];
else $numpersone_corr_cp = $numpersone_cp;
$cat_persone_nr[$num1][$cat_persone_nr[$num1]['num']]['molt'] = $numpersone_corr_cp;
$cat_persone_nr[$num1]['ord'][$num2] = $cat_persone_nr[$num1]['num'];
$cat_persone_nr[$num1][$cat_persone_nr[$num1]['num']]['ord'] = $num2;
$cat_persone_nr[$num1]['num']++;
$numpersone_cp = $numpersone_cp - $numpersone_corr_cp;
$cat_persone_copia[$cat_persone_copia['ord'][$num2]]['molt'] = $cat_persone_copia[$cat_persone_copia['ord'][$num2]]['molt'] - $numpersone_corr_cp;
} # fine if (!empty($cat_persone_copia[fixset($cat_persone_copia['ord'][$num2])]['molt']) and $numpersone_cp)
} # fine for $num2
if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1) {
for ($num2 = 1 ; $num2 < $mostra_tariffa[$numtariffa] ; $num2++) $cat_persone_nr[($num1 + ($dati_r2['napp']["tariffa".$numtariffa] * $num2))] = $cat_persone_nr[$num1];
} # fine if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1)
} # fine for $num1
} # fine if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1)
$lunghezza_periodo = $idfineperiodo - $idinizioperiodo + 1;


# costi aggiuntivi
$costi_agg_tot = (float) 0;
$costo_escludi_perc = (float) 0;
$num_letti_agg = array('max' => 0);
$num_letti_agg_nr = array(0 => $num_letti_agg);
unset($settimane_costo);
unset($ca_associato);
unset($moltiplica_costo);
unset($moltiplica_costo_nr);
$num_costi_presenti = array();
unset($num_ripetizioni_costo);
unset($num_app_reali_costo);
if (empty($numcostiagg)) $numcostiagg = 0;
$costi_non_fissi = "";
$asterisco = "NO";
$dett_costi = "";
for ($numca = 0 ; $numca < $dati_ca['num'] ; $numca++) {
if ($attiva_costi_agg_consentiti == "n" or (isset($costi_agg_consentiti_vett[$dati_ca[$numca]['id']]) and $costi_agg_consentiti_vett[$dati_ca[$numca]['id']] == "SI")) {
if (isset($dati_ca[$numca]["tipo_associa_".$tariffa])) {
if ($dati_ca[$numca]["tipo_associa_".$tariffa] == "r") $periodo_costo_trovato = trova_periodo_permesso_costo($dati_ca,$numca,$idinizioperiodo,$idfineperiodo,1);
if ($dati_ca[$numca]["tipo_associa_".$tariffa] == "s" or ($dati_ca[$numca]["tipo_associa_".$tariffa] == "r" and $periodo_costo_trovato != "NO")) {
if (associa_costo_a_tariffa($dati_ca,$numca,$tariffa,$lunghezza_periodo) == "SI") $ca_associato[$numca] = "SI";
else {
if ($dati_ca[$numca]["tipo_associa_".$tariffa] == "r" and $dati_ca[$numca]['tipo'] == "s") {
$sett_costo = calcola_settimane_costo($tableperiodi,$dati_ca,$numca,$idinizioperiodo,$idfineperiodo,"","");
if ($sett_costo) $continuare = "NO";
} # fine if ($dati_ca[$numca]["tipo_associa_".$tariffa] == "r" and...
else $continuare = "NO";
} # fine else if (associa_costo_a_tariffa($dati_ca,$numca,$tariffa,$lunghezza_periodo) == "SI")
} # fine if ($dati_ca[$numca]["tipo_associa_".$tariffa] == "s" or...
} # fine if (isset($dati_ca[$numca]["tipo_associa_".$tariffa]))
if ($dati_ca[$numca]['mostra'] == "s") {
$numcostoagg = "";
for ($num1 = 1 ; $num1 <= $numcostiagg ; $num1++) if (${"idcostoagg".$num1} == $dati_ca[$numca]['id']) $numcostoagg = $num1;
if ($numcostoagg) {
if (isset(${"costoagg".$numcostoagg}) and ${"costoagg".$numcostoagg} == "SI") {
$ca_associato[$numca] = "SI";
$ca_associato['nca'][$numca] = $numcostoagg;
$costi_non_fissi = "SI";
} # fine if (isset(${"costoagg".$numcostoagg}) and ${"costoagg".$numcostoagg} == "SI")
} # fine if ($numcostoagg)
if (isset($costo_agg_letti_vett[$numtariffa]) and $dati_ca[$numca]['id'] == $costo_agg_letti_vett[$numtariffa]) {
$numcostoagg = $numcostiagg + 1;
${"idcostoagg".$numcostoagg} = $dati_ca[$numca]['id'];
${"nummoltiplica_ca".$numcostoagg} = $num_agg_letti;
if ($dati_cat_pers['num']) {
if (isset($cat_pers_letto_tariffa[$numtariffa])) ${"catpers_ca".$numcostoagg} = $cat_pers_letto_tariffa[$numtariffa];
else ${"catpers_ca".$numcostoagg} = $cat_pers_letto;
} # fine if ($dati_cat_pers['num'])
if ($dati_ca[$numca]['numsett'] != "c" and $dati_ca[$numca]['associasett'] != "s") ${"numsettimane".$numcostoagg} = "";
else ${"numsettimane".$numcostoagg} = $lunghezza_periodo;
$ca_associato[$numca] = "SI";
$ca_associato['nca'][$numca] = $numcostoagg;
if ($diff_letti) $num_app_reali_costo[$numca] = $num_controlla_limite - $diff_letti;
} # fine if (isset($costo_agg_letti_vett[$numtariffa]) and $dati_ca[$numca]['id'] == $costo_agg_letti_vett[$numtariffa])
} # fine if ($dati_ca[$num_costo][mostra] == "s")
else $numcostoagg = "NO";

if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI") {
$continuare_comb = "SI";
$numsettimane = "numsettimane".$numcostoagg;
$nummoltiplica_ca = "nummoltiplica_ca".$numcostoagg;
$id_periodi_costo = "id_periodi_costo".$numcostoagg;
if (!empty($dati_ca[$numca]["incomp_".$tariffa])) {
if ($dati_ca[$numca]['combina'] == "s") $continuare_comb = "NO";
else $continuare = "NO";
} # fine if (!empty($dati_ca[$numca]["incomp_".$tariffa]))
if (!isset($$numsettimane)) $$numsettimane = "";
if (!isset($$nummoltiplica_ca)) $$nummoltiplica_ca = "";
# Cambiato da == "c" a != "c" percè altrimenti dà errore con costi per cui si chiedono le settimane senza associarle specificamente
if ($$numsettimane and $dati_ca[$numca]['numsett'] != "c" and $dati_ca[$numca]['associasett'] != "s") $continuare = "NO";
if ($$numsettimane and ($$numsettimane > $lunghezza_periodo or controlla_num_pos($$numsettimane) == "NO")) $continuare = "NO";
if ($$nummoltiplica_ca and controlla_num_pos($$nummoltiplica_ca) == "NO") $continuare = "NO";
if ($dati_ca[$numca]['letto'] == "s" and $dati_cat_pers['num']) {
$catpers_ca_aux = ${"catpers_ca".$numcostoagg};
if (controlla_num_pos($catpers_ca_aux) == "NO" or ${"catpers_ca".$numcostoagg} >= $dati_cat_pers['num']) $continuare = "NO";
} # fine if ($dati_ca[$numca]['letto'] == "s" and $dati_cat_pers['num'])
if (trova_periodo_permesso_costo($dati_ca,$numca,$idinizioperiodo,$idfineperiodo,"") == "NO") {
if ($dati_ca[$numca]['combina'] == "s") $continuare_comb = "NO";
else $continuare = "NO";
} # fine if (trova_periodo_permesso_costo($dati_ca,$numca,$idinizioperiodo,$idfineperiodo,"") == "NO")

if (isset($$id_periodi_costo) and $$id_periodi_costo == "inserire") {
$$id_periodi_costo = "";
for ($num1 = $idinizioperiodo ; $num1 <= $idfineperiodo ; $num1++) {
if (${"sett".$num1."costo".$numcostoagg} == "SI") $$id_periodi_costo .= ",".$num1;
} # fine for $num1
if ($$id_periodi_costo) $$id_periodi_costo .= ",";
else $$id_periodi_costo = "nessuno";
} # fine if (isset($$id_periodi_costo) and $$id_periodi_costo == "inserire")
if ($dati_ca[$numca]['numsett'] == "c" and $dati_ca[$numca]['associasett'] == "s" and $continuare != "NO" and $continuare_comb != "NO" and !$$id_periodi_costo) {
$continuare_totale = "NO";
echo "<tr><td></td></tr></table></div></table></div></form><hr style=\"width: 30%; margin-left: 0; text-align: left;\">
".mex("Scegliere $parola_le $parola_settimane in cui applicare il costo aggiuntivo",$pag)." ".$dati_ca[$numca]['nome'].":<br>
<form accept-charset=\"utf-8\" method=\"post\" action=\"$pag\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"inizioperiodo\" value=\"$data_inizioperiodo\">
<input type=\"hidden\" name=\"fineperiodo\" value=\"$data_fineperiodo\">
<input type=\"hidden\" name=\"num_persone_casa\" value=\"".htmlspecialchars(fixstr($num_persone_casa))."\">
<input type=\"hidden\" name=\"molt_app_persone_casa\" value=\"".htmlspecialchars(fixstr($molt_app_persone_casa))."\">
<input type=\"hidden\" name=\"numpersone\" value=\"$numpersone_orig\">
<input type=\"hidden\" name=\"num_tariffe_passa\" value=\"".$dati_tariffe['num']."\">
<input type=\"hidden\" name=\"num_cat_pers_passa\" value=\"".$dati_cat_pers['num']."\">";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) if (!empty($cat_persone_invia[1][$num1])) echo "<input type=\"hidden\" name=\"cat$num1"."_numpers\" value=\"".htmlspecialchars(fixstr($cat_persone_invia[1][$num1]))."\">";
echo "$dati_email
<input type=\"hidden\" name=\"numcostiagg\" value=\"$numcostiagg\">";
if ($controlla_tariffe) {
echo "<input type=\"hidden\" name=\"controlla_tariffe\" value=\"SI\">";
for ($numtariffa2 = 1 ; $numtariffa2 <= $dati_tariffe['num'] ; $numtariffa2++) {
echo "<input type=\"hidden\" name=\"reg2_tariffa$numtariffa2\" value=\"".htmlspecialchars(fixstr(${"reg2_tariffa".$numtariffa2}))."\">
<input type=\"hidden\" name=\"molt_reg2_tariffa$numtariffa2\" value=\"".htmlspecialchars(fixstr(${"molt_reg2_tariffa".$numtariffa2}))."\">
<input type=\"hidden\" name=\"pers_reg2_tariffa$numtariffa2\" value=\"".htmlspecialchars(fixstr(${"pers_reg2_tariffa".$numtariffa2}))."\">";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) if (!empty($cat_persone_invia[$numtariffa][$num1])) echo "<input type=\"hidden\" name=\"cat$num1"."_pers_reg2_tariffa$numtariffa\" value=\"".htmlspecialchars($cat_persone_invia[$numtariffa][$num1])."\">";
} # fine for $numtariffa2
} # fine if ($controlla_tariffe)
$lista_sett_passa = "";
for ($num1 = $idinizioperiodo ; $num1 <= $idfineperiodo ; $num1++) {
$periodo_costo_trovato = "NO";
if ($dati_ca[$numca]['periodipermessi'] == "p") {
for ($num2 = 0 ; $num2 < count($dati_ca[$numca]['sett_periodipermessi_ini']) ; $num2++) {
if ($dati_ca[$numca]['sett_periodipermessi_ini'][$num2] <= $num1 and $dati_ca[$numca]['sett_periodipermessi_fine'][$num2] >= $num1) $periodo_costo_trovato = "SI";
} # fine for $num2
} # fine if ($dati_ca[$num_costo]['periodipermessi'] == "p")
else $periodo_costo_trovato = "SI";
if ($periodo_costo_trovato == "SI") {
$lista_sett_passa .= ",$num1";
$date_sett_costo = esegui_query("select datainizio,datafine from $tableperiodi where idperiodi = '$num1'");
echo "<label><input type=\"checkbox\" name=\"sett$num1"."costo$numcostoagg\" value=\"SI\">".mex("dal",$pag)."
 ".formatta_data(risul_query($date_sett_costo,0,'datainizio'),$stile_data)." ".mex("al",$pag)." 
 ".formatta_data(risul_query($date_sett_costo,0,'datafine'),$stile_data)."</label><br>";
} # fine if ($periodo_costo_trovato == "SI")
} # fine for $num1
if ($lista_sett_passa) echo "<input type=\"hidden\" name=\"lista_sett_passa$numcostoagg\" value=\"$lista_sett_passa\">";
$$id_periodi_costo = "inserire";
for ($numca2 = 1 ; $numca2 <= $numcostiagg ; $numca2++) {
$idcostoagg_2 = "idcostoagg".$numca2;
$num_costo2 = $dati_ca['id'][$$idcostoagg_2];
if ($dati_ca[$num_costo2]['mostra'] == "s") {
echo "<input type=\"hidden\" name=\"id_periodi_costo$numca2\" value=\"".htmlspecialchars(fixstr(${"id_periodi_costo".$numca2}))."\">
<input type=\"hidden\" name=\"costoagg$numca2\" value=\"".htmlspecialchars(fixstr(${"costoagg".$numca2}))."\">
<input type=\"hidden\" name=\"idcostoagg$numca2\" value=\"".htmlspecialchars(fixstr($$idcostoagg_2))."\">
<input type=\"hidden\" name=\"numsettimane$numca2\" value=\"".htmlspecialchars(fixstr(${"numsettimane".$numca2}))."\">
<input type=\"hidden\" name=\"nummoltiplica_ca$numca2\" value=\"".htmlspecialchars(fixstr(${"nummoltiplica_ca".$numca2}))."\">
<input type=\"hidden\" name=\"catpers_ca$numca2\" value=\"".htmlspecialchars(fixstr(${"catpers_ca".$numca2}))."\">";
} # fine if ($dati_ca[$num_costo2]['mostra'] == "s")
} # fine for $numca2
echo "<button class=\"cont\" type=\"submit\"><div>".mex("Continua",$pag)."</div></button>
</div></form><hr style=\"width: 30%; margin-left: 0; text-align: left;\">";
} # fine if ($dati_ca[$numca]['numsett'] == "c" and $dati_ca[$numca]['associasett'] == "s" and...
else {
$id_periodi_costo_aux = fixset($$id_periodi_costo);
$numsettimane_aux = fixset($$numsettimane);

$nummoltiplica_ca_aux = fixset($$nummoltiplica_ca);
$settimane_costo[$numca] = calcola_settimane_costo($tableperiodi,$dati_ca,$numca,$idinizioperiodo,$idfineperiodo,$id_periodi_costo_aux,$numsettimane_aux);
if ($continuare != "NO" and $continuare_comb != "NO") {
if (strcmp(fixstr($numpersone_nr[$numtariffa][0]),"")) $numpersone_corr = $numpersone_nr[$numtariffa][0];
else $numpersone_corr = $numpersone;
aggiorna_letti_agg_in_periodi($dati_ca,$numca,$num_letti_agg,$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],"",$nummoltiplica_ca_aux,$numpersone_corr,$dati_cat_pers,fixset(${"catpers_ca".$numca}));
$num_letti_agg_nr[0] = $num_letti_agg;
if (!empty($num_app_reali_costo[$numca])) $num_controlla_limite2 = $num_app_reali_costo[$numca];
else $num_controlla_limite2 = $num_controlla_limite;
for ($num1 = 1 ; $num1 < $num_controlla_limite2 ; $num1++) {
if (strcmp(fixstr($numpersone_nr[$numtariffa][$num1]),"")) $numpersone_corr = $numpersone_nr[$numtariffa][$num1];
else $numpersone_corr = $numpersone;
aggiorna_letti_agg_in_periodi($dati_ca,$numca,$num_letti_agg_nr[$num1],$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],"",$nummoltiplica_ca_aux,$numpersone_corr,$dati_cat_pers,fixset(${"catpers_ca".$numca}));
} # fine for $num1
} # fine if ($continuare != "NO" and $continuare_comb != "NO")
} # fine else if ($dati_ca[$numca]['numsett'] == "c" and $dati_ca[$numca]['associasett'] == "s" and...

if (($dati_ca[$numca]['moltiplica'] == "p" or $dati_ca[$numca]['moltiplica'] == "t") and !$numpersone) $continuare = "NO";
if ($dati_ca[$numca]['mostra'] == "s" and ($continuare == "NO" or $continuare_comb == "NO") and isset($costo_agg_letti_vett[$numtariffa]) and $dati_ca[$numca]['id'] != $costo_agg_letti_vett[$numtariffa]) {
$ca_associato[$numca] = "";
if ($continuare == "NO") $asterisco = "SI";
$continuare = "SI";
} # fine if ($dati_ca[$numca]['mostra'] == "s" and $continuare == "NO" and...
if ($continuare_totale == "NO") $continuare = "NO";
} # fine if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI")
if ($continuare == "NO") break;
} # fine if ($attiva_costi_agg_consentiti == "n" or...
} # fine for $numca

if ($continuare == "SI") {
for ($numca = 0 ; $numca < $dati_ca['num'] ; $numca++) {
if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI") {
if (!empty($cat_persone_nr[0])) $cat_persone_corr = $cat_persone_nr[0];
else $cat_persone_corr = $cat_persone[$numtariffa];
$nummoltiplica_ca_aux = fixset(${"nummoltiplica_ca".fixset($ca_associato['nca'][$numca])});
calcola_moltiplica_costo($dati_ca,$numca,$moltiplica_costo[$numca],$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],$nummoltiplica_ca_aux,$numpersone,$cat_persone_corr,$num_letti_agg);
if (!empty($num_app_reali_costo[$numca])) $num_controlla_limite2 = $num_app_reali_costo[$numca];
else $num_controlla_limite2 = $num_controlla_limite;
for ($num1 = 0 ; $num1 < $num_controlla_limite2 ; $num1++) {
if (isset($numpersone_nr[$numtariffa][$num1]) and strcmp((string) $numpersone_nr[$numtariffa][$num1],"")) $numpersone_corr = $numpersone_nr[$numtariffa][$num1];
else $numpersone_corr = $numpersone;
if (!empty($cat_persone_nr[$num1])) $cat_persone_corr = $cat_persone_nr[$num1];
else $cat_persone_corr = $cat_persone[$numtariffa];
calcola_moltiplica_costo($dati_ca,$numca,$moltiplica_costo_nr[$numca][$num1],$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],$nummoltiplica_ca_aux,$numpersone_corr,$cat_persone_corr,$num_letti_agg_nr[$num1]);
if (controlla_num_limite_costo($tablecostiprenota,$tableprenota,$dati_ca,$numca,$num_costi_presenti,$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],$moltiplica_costo_nr[$numca][$num1]) == "NO") $continuare = "NO";
} # fine for $num1
if (isset($dati_ca[$numca]['tipo_beniinv']) and $dati_ca[$numca]['tipo_beniinv'] == "mag") {
for ($num1 = 0 ; $num1 < $num_controlla_limite2 ; $num1++) {
$risul = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$numca,$beniinv_presenti,$num_ripetizioni_costo[$numca],"SI",$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],$moltiplica_costo_nr[$numca][$num1],"");
if ($risul != "SI") { $continuare = "NO"; break; }
} # fine for $num1
} # fine if (isset($dati_ca[$numca]['tipo_beniinv']) and $dati_ca[$numca]['tipo_beniinv'] == "mag")
if ($dati_ca[$numca]['moltiplica'] == "c" and $dati_ca[$numca]['molt_max'] != "x") {
$num_max = 0;
$num_max_check = 0;
if ($dati_ca[$numca]['molt_max'] == "n") $num_max = $dati_ca[$numca]['molt_max_num'];
if ($dati_ca[$numca]['molt_max'] != "n" and $numpersone) {
$num_max = $numpersone;
if ($num_max) $num_max_check = 1;
if (!empty($dati_ca[$numca]['modo_cp_molt'])) {
$cat_persone_corr = $cat_persone[$numtariffa];
if (empty($cat_persone_corr)) {
$cat_persone_corr = array(0 => array());
$cat_persone_corr[0]['molt'] = $numpersone;
$cat_persone_corr[0]['ord'] = 0;
$cat_persone_corr['ord'][0] = 0;
$cat_persone_corr['num'] = 1;
} # fine if (empty($cat_persone_corr))
if (isset($dati_ca[$numca]['modo_cp_molt']) and $dati_ca[$numca]['modo_cp_molt'] == "i") $num_max = 0;
if (!empty($dati_ca[$numca]['cp_molt']['num'])) {
for ($num1 = 0 ; $num1 < $dati_ca[$numca]['cp_molt']['num'] ; $num1++) {
$cp = $dati_ca[$numca]['cp_molt']['ord'][$num1];
if ($dati_ca[$numca]['cp_molt'][$cp]['esist'] and $cat_persone_corr[$cat_persone_corr['ord'][$cp]]['molt']) {
if (isset($dati_ca[$numca]['modo_cp_molt']) and $dati_ca[$numca]['modo_cp_molt'] == "i") $num_max += $cat_persone_corr[$cat_persone_corr['ord'][$cp]]['molt'];
else $num_max = $num_max - $cat_persone_corr[$cat_persone_corr['ord'][$cp]]['molt'];
} # fine if ($dati_ca[$numca]['cp_molt'][$cp]['esist'] and $cat_persone_corr[$cat_persone_corr['ord'][$cp]]['molt'])
} # fine for $num1
} # fine if (!empty($dati_ca[$numca]['cp_molt']['num']))
} # fine if (!empty($dati_ca[$numca]['modo_cp_molt']))
} # fine if ($dati_ca[$numca]['molt_max'] != "n" and $numpersone)
if ($dati_ca[$numca]['molt_max'] == "t" and $num_letti_agg['max']) {
$num_letti_agg_corr = $num_letti_agg['max'];
if ($num_letti_agg_corr) $num_max_check = 1;
if (isset($dati_ca[$numca]['modo_cp_molt']) and $dati_ca[$numca]['modo_cp_molt'] == "i") $num_letti_agg_corr = 0;
if (!empty($dati_ca[$numca]['cp_molt']['num'])) {
for ($num1 = 0 ; $num1 < $dati_ca[$numca]['cp_molt']['num'] ; $num1++) {
$cp = $dati_ca[$numca]['cp_molt']['ord'][$num1];
if ($dati_ca[$numca]['cp_molt'][$cp]['esist'] and $num_letti_agg['catp_tot_max'][$cp]) {
if (isset($dati_ca[$numca]['modo_cp_molt']) and $dati_ca[$numca]['modo_cp_molt'] == "i") $num_letti_agg_corr += $num_letti_agg['catp_tot_max'][$cp];
else $num_letti_agg_corr = $num_letti_agg_corr - $num_letti_agg['catp_tot_max'][$cp];
} # fine if ($dati_ca[$numca]['cp_molt'][$cp]['esist'] and $num_letti_agg['catp_tot_max'][$cp])
} # fine for $num1
} # fine if (!empty($dati_ca[$numca]['cp_molt']['num']))
$num_max += $num_letti_agg_corr;
} # fine if ($dati_ca[$numca]['molt_max'] == "t" and $num_letti_agg['max'])
if ($num_max or $num_max_check) {
if ($dati_ca[$numca]['molt_max'] != "n" and $dati_ca[$numca]['molt_max_num']) $num_max = $num_max - $dati_ca[$numca]['molt_max_num'];
if ($nummoltiplica_ca_aux > $num_max) $continuare = "NO";
} # fine if ($num_max or $num_max_check)
} # fine if ($dati_ca[$numca]['moltiplica'] == "c" and $dati_ca[$numca]['molt_max'] != "x")
if ($dati_ca[$numca]['mostra'] == "s" and $continuare == "NO") {
$continuare = "SI";
$ca_associato[$numca] = "";
$asterisco = "SI";
} # fine if ($dati_ca[$numca]['mostra'] == "s" and $continuare == "NO")
if ($continuare == "NO") break;
} # fine if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI")
} # fine for $numca
} # fine if ($continuare == "SI")


if ($continuare == "SI") {
$tariffa_mostrata = 1;

# costi opzionali associabili se possibile
$oggi_costo = date("Ymd",(time() + (C_DIFF_ORE * 3600)));
for ($num_costo = 0 ; $num_costo < $dati_ca['num'] ; $num_costo++) {
if ($attiva_costi_agg_consentiti == "n" or (isset($costi_agg_consentiti_vett[$dati_ca[$num_costo]['id']]) and $costi_agg_consentiti_vett[$dati_ca[$num_costo]['id']] == "SI")) {
$associa_costo = "NO";
$associa_costo_tariffa = associa_costo_a_tariffa($dati_ca,$num_costo,$tariffa,$lunghezza_periodo);
if ($associa_costo_tariffa == "SI" and $dati_ca[$num_costo]["tipo_associa_".$tariffa] == "p") $associa_costo = "SI";
if ($associa_costo_tariffa != "SI" and empty($dati_ca[$num_costo]["incomp_".$tariffa])) {
if ($dati_ca[$num_costo]['assegna_con_num_prenota'] and $num_prenota_tot >= $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($data_inizioperiodo,5,2),(substr($data_inizioperiodo,8,2) - $giorni_lim),substr($data_inizioperiodo,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") {
$settimane_costo2 = calcola_settimane_costo($tableperiodi,$dati_ca,$num_costo,$idinizioperiodo,$idfineperiodo,"","");
$num_letti_agg_copia = $num_letti_agg_nr;
$beniinv_presenti_copia = $beniinv_presenti;
$num_app_reali_costo2 = "";

if ($dati_ca[$num_costo]['letto'] == "s") {
for ($num1 = 0 ; $num1 < $num_controlla_limite ; $num1++) {
if (isset($numpersone_nr[$numtariffa][$num1]) and strcmp((string) $numpersone_nr[$numtariffa][$num1],"")) $numpersone_corr = $numpersone_nr[$numtariffa][$num1];
else $numpersone_corr = $numpersone;
aggiorna_letti_agg_in_periodi($dati_ca,$num_costo,$num_letti_agg_copia[$num1],$idinizioperiodo,$idfineperiodo,$settimane_costo2,"","",$numpersone_corr,$dati_cat_pers,"0");
} # fine for $num1
unset($moltiplica_copia);
unset($num_costi_presenti_copia);
unset($num_ripetizioni_copia);
for ($numca = 0 ; $numca < $dati_ca['num'] ; $numca++) {
if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI") {
if (!empty($num_app_reali_costo[$numca])) $num_controlla_limite2 = $num_app_reali_costo[$numca];
else $num_controlla_limite2 = $num_controlla_limite;
for ($num1 = 0 ; $num1 < $num_controlla_limite2 ; $num1++) {
if ($dati_ca[$numca]['moltiplica'] != "t") $moltiplica_copia[$numca][$num1] = $moltiplica_costo_nr[$numca][$num1];
else {
if (isset($numpersone_nr[$numtariffa][$num1]) and strcmp((string) $numpersone_nr[$numtariffa][$num1],"")) $numpersone_corr = $numpersone_nr[$numtariffa][$num1];
else $numpersone_corr = $numpersone;
if (!empty($cat_persone_nr[$num1])) $cat_persone_corr = $cat_persone_nr[$num1];
else $cat_persone_corr = $cat_persone[$numtariffa];
calcola_moltiplica_costo($dati_ca,$numca,$moltiplica_copia[$numca][$num1],$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],"",$numpersone_corr,$cat_persone_corr,$num_letti_agg_copia[$num1]);
} # fine else if ($dati_ca[$numca]['moltiplica'] != "t")
if (controlla_num_limite_costo($tablecostiprenota,$tableprenota,$dati_ca,$numca,$num_costi_presenti_copia,$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],$moltiplica_copia[$numca][$num1]) == "NO") $associa_costo = "NO";
} # fine for $num1
if ($dati_ca[$numca]['moltiplica'] == "t") {
for ($num1 = 0 ; $num1 < $num_controlla_limite2 ; $num1++) {
$risul = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$numca,$beniinv_presenti_copia,$num_ripetizioni_copia[$numca],"SI",$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],$moltiplica_copia[$numca][$num1],"",$num_ripetizioni_costo[$numca]);
if ($risul != "SI") $associa_costo = "NO";
} # fine for $num1
} # fine if ($dati_ca[$numca]['moltiplica'] == "t")
} # fine if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI")
} # fine for $numca
} # fine if ($dati_ca[$num_costo]['letto'] == "s")
else $num_costi_presenti_copia = $num_costi_presenti;

if (trova_periodo_permesso_costo($dati_ca,$num_costo,$idinizioperiodo,$idfineperiodo,$settimane_costo2) == "NO") $associa_costo = "NO";
else {
if (strcmp(fixstr($numpersone_nr[$numtariffa][0]),"")) $numpersone_corr = $numpersone_nr[$numtariffa][0];
else $numpersone_corr = $numpersone;
if (!empty($cat_persone_nr[0])) $cat_persone_corr = $cat_persone_nr[0];
else $cat_persone_corr = $cat_persone[$numtariffa];
$moltiplica_costo2 = array();
calcola_moltiplica_costo($dati_ca,$num_costo,$moltiplica_costo2[0],$idinizioperiodo,$idfineperiodo,$settimane_costo2,"",$numpersone_corr,$cat_persone_corr,fixset($num_letti_agg_copia[0]));
if (controlla_num_limite_costo($tablecostiprenota,$tableprenota,$dati_ca,$num_costo,$num_costi_presenti_copia,$idinizioperiodo,$idfineperiodo,$settimane_costo2,$moltiplica_costo2[0]) == "NO") $associa_costo = "NO";
else for ($num1 = 1 ; $num1 < $num_controlla_limite ; $num1++) {
if (strcmp(fixstr($numpersone_nr[$numtariffa][$num1]),"")) $numpersone_corr = $numpersone_nr[$numtariffa][$num1];
else $numpersone_corr = $numpersone;
if (!empty($cat_persone_nr[$num1])) $cat_persone_corr = $cat_persone_nr[$num1];
else $cat_persone_corr = $cat_persone[$numtariffa];
calcola_moltiplica_costo($dati_ca,$num_costo,$moltiplica_costo2[$num1],$idinizioperiodo,$idfineperiodo,$settimane_costo2,"",$numpersone_corr,$cat_persone_corr,fixset($num_letti_agg_copia[$num1]));
if (controlla_num_limite_costo($tablecostiprenota,$tableprenota,$dati_ca,$num_costo,$num_costi_presenti_copia,$idinizioperiodo,$idfineperiodo,$settimane_costo2,$moltiplica_costo2[$num1]) == "NO") { $num_app_reali_costo2 = $num1; break; }
} # fine for $num1
} # fine else (trova_periodo_permesso_costo($dati_ca,$num_costo,$idinizioperiodo,$idfineperiodo,$settimane_costo2) == "NO")
if (!empty($dati_ca[$num_costo]['tipo_beniinv']) and $associa_costo == "SI") {
$nrc = "";
$risul = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$num_costo,$beniinv_presenti_copia,$nrc,"SI",$idinizioperiodo,$idfineperiodo,$settimane_costo2,$moltiplica_costo2[0],"");
if ($risul != "SI") $associa_costo = "NO";
else {
if ($num_app_reali_costo2 and $num_app_reali_costo2 < $num_controlla_limite) $num_controlla_limite2 = $num_app_reali_costo2;
else $num_controlla_limite2 = $num_controlla_limite;
for ($num1 = 1 ; $num1 < $num_controlla_limite2 ; $num1++) {
$beniinv_presenti_copia2 = $beniinv_presenti_copia;
$risul = controlla_beni_inventario_costo($tablerelinventario,$dati_ca,$num_costo,$beniinv_presenti_copia,$nrc,"SI",$idinizioperiodo,$idfineperiodo,$settimane_costo2,$moltiplica_costo2[$num1],"");
if ($risul != "SI") {
$beniinv_presenti_copia = $beniinv_presenti_copia2;
if (!$num_app_reali_costo2 or $num1 < $num_app_reali_costo2) $num_app_reali_costo2 = $num1;
break;
} # fine if ($risul != "SI")
} # fine for $num1
} # fine else if ($risul != "SI")
} # fine if (!empty($dati_ca[$num_costo]['tipo_beniinv']) and $associa_costo == "SI")

if ($associa_costo == "SI") {
$beniinv_presenti = $beniinv_presenti_copia;
if ($dati_ca[$num_costo]['letto'] == "s") {
$num_costi_presenti = $num_costi_presenti_copia;
$num_letti_agg = $num_letti_agg_copia[0];
$num_letti_agg_nr = $num_letti_agg_copia;
for ($numca = 0 ; $numca < $dati_ca['num'] ; $numca++) {
if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI") {
$moltiplica_costo[$numca] = $moltiplica_copia[$numca][0];
$moltiplica_costo_nr[$numca] = $moltiplica_copia[$numca];
if ($dati_ca[$numca]['moltiplica'] == "t") $num_ripetizioni_costo[$numca] = $num_ripetizioni_copia[$numca];
} # fine if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI")
} # fine for $numca
} # fine if ($dati_ca[$num_costo][letto] == "s")
$ca_associato[$num_costo] = "SI";
$settimane_costo[$num_costo] = $settimane_costo2;
$moltiplica_costo[$num_costo] = $moltiplica_costo2[0];
$moltiplica_costo_nr[$num_costo] = $moltiplica_costo2;
if ($num_app_reali_costo2) $num_app_reali_costo[$num_costo] = $num_app_reali_costo2;
if (!empty($dati_ca[$num_costo]['tipo_beniinv'])) $num_ripetizioni_costo[$num_costo] = $nrc;
} # fine if ($associa_costo == "SI")
} # fine if ($associa_costo == "SI")
} # fine if ($attiva_costi_agg_consentiti == "n" or $costi_agg_consentiti_vett[$dati_ca[$num_costo]['id']] == "SI")
} # fine for $num_costo


for ($num1 = 0 ; $num1 < $num_controlla_limite ; $num1++) {
$costi_agg_tot_vett[$num1] = (float) 0;
$costo_escludi_perc_vett[$num1] = (float) 0;
} # fine for $num1
unset($prezzo_costo);
unset($valgiornmax_costo);
for ($numca = 0 ; $numca < $dati_ca['num'] ; $numca++) {
if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI") {
$catpers_ca = fixset(${"catpers_ca".fixset($ca_associato['nca'][$numca])});

if (isset($numpersone_nr[$numtariffa][0]) and strcmp((string) $numpersone_nr[$numtariffa][0],"")) $numpersone_corr = $numpersone_nr[$numtariffa][0];
else $numpersone_corr = $numpersone;
if (strcmp(fixstr($costo_tariffa_nr[$numtariffa][0]),"")) {
$costo_tariffa_corr = $costo_tariffa_nr[$numtariffa][0];
$tariffesettimanali_corr = $tariffesettimanali_nr[$numtariffa][0];
if (strcmp(fixstr($tariffesettimanalip_nr[$numtariffa][0]),"")) $tariffesettimanali_corr .= ";".$tariffesettimanalip_nr[$numtariffa][0];
$caparra_corr = calcola_caparra($dati_tariffe,'tariffa'.$numtariffa,$idinizioperiodo,$idfineperiodo,$costo_tariffa_nr[$numtariffa][0],$tariffesettimanali_corr);
} # fine if (strcmp((string) $costo_tariffa_nr[$numtariffa][0],""))
else {
$costo_tariffa_corr = $costo_tariffa;
$tariffesettimanali_corr = $tariffesettimanali;
$caparra_corr = $caparra;
} # fine else if (strcmp((string) $costo_tariffa_nr[$numtariffa][0],""))
if (isset($moltiplica_costo_nr[$numca][0])) $moltiplica_costo_corr = $moltiplica_costo_nr[$numca][0];
else $moltiplica_costo_corr = $moltiplica_costo[$numca];

$prezzo_costo[$numca][0] = (float) calcola_prezzo_totale_costo($dati_ca,$numca,$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],$moltiplica_costo_corr,$costo_tariffa_corr,$tariffesettimanali_corr,($costo_tariffa_corr + $costi_agg_tot),$caparra_corr,$numpersone_corr,$dati_cat_pers,$catpers_ca,$costo_escludi_perc,1);
$valgiornmax_costo[$numca][0] = $prezzi_giorn_costo;
$costi_agg_tot = $costi_agg_tot + $prezzo_costo[$numca][0];
$costi_agg_tot_vett[0] = $costi_agg_tot;
if ($dati_ca[$numca]['escludi_tot_perc'] == "s") $costo_escludi_perc = $costo_escludi_perc + $prezzo_costo[$numca][0];
$costo_escludi_perc_vett[0] = $costo_escludi_perc;
if (!empty($num_app_reali_costo[$numca])) $num_controlla_limite2 = $num_app_reali_costo[$numca];
else $num_controlla_limite2 = $num_controlla_limite;
$prezzo_costo_corr = $prezzo_costo[$numca][0];
for ($num1 = 1 ; $num1 < $num_controlla_limite2 ; $num1++) {
if (isset($numpersone_nr[$numtariffa][$num1]) and strcmp((string) $numpersone_nr[$numtariffa][$num1],"")) $numpersone_corr = $numpersone_nr[$numtariffa][$num1];
else $numpersone_corr = $numpersone;
if (strcmp(fixstr($costo_tariffa_nr[$numtariffa][$num1]),"")) {
$costo_tariffa_corr = $costo_tariffa_nr[$numtariffa][$num1];
$tariffesettimanali_corr = $tariffesettimanali_nr[$numtariffa][$num1];
if (strcmp(fixstr($tariffesettimanalip_nr[$numtariffa][$num1]),"")) $tariffesettimanali_corr .= ";".$tariffesettimanalip_nr[$numtariffa][$num1];
$caparra_corr = calcola_caparra($dati_tariffe,'tariffa'.$numtariffa,$idinizioperiodo,$idfineperiodo,$costo_tariffa_nr[$numtariffa][$num1],$tariffesettimanali_corr);
} # fine if (strcmp((string) $costo_tariffa_nr[$numtariffa][$num1],""))
else {
$costo_tariffa_corr = $costo_tariffa;
$tariffesettimanali_corr = $tariffesettimanali;
$caparra_corr = $caparra;
} # fine else if (strcmp((string) $costo_tariffa_nr[$numtariffa][$num1],""))
$prezzo_costo[$numca][$num1] = (float) calcola_prezzo_totale_costo($dati_ca,$numca,$idinizioperiodo,$idfineperiodo,$settimane_costo[$numca],$moltiplica_costo_nr[$numca][$num1],$costo_tariffa_corr,$tariffesettimanali_corr,($costo_tariffa_corr + $costi_agg_tot_vett[$num1]),$caparra_corr,$numpersone_corr,$dati_cat_pers,$catpers_ca,$costo_escludi_perc_vett[$num1],1);
$valgiornmax_costo[$numca][$num1] = $prezzi_giorn_costo;
$costi_agg_tot_vett[$num1] = $costi_agg_tot_vett[$num1] + $prezzo_costo[$numca][$num1];
if ($dati_ca[$numca]['escludi_tot_perc'] == "s") $costo_escludi_perc_vett[$num1] = $costo_escludi_perc_vett[$num1] + $prezzo_costo[$numca][$num1];
$prezzo_costo_corr += (float) $prezzo_costo[$numca][$num1];
} # fine for $num1
if ($controlla_tariffe and isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1) $prezzo_costo_corr = $prezzo_costo_corr / $mostra_tariffa[$numtariffa];
$dett_costi .= "<em>".$dati_ca[$numca]['nome']."<\\/em>";
if ($dati_ca[$numca]['letto'] == "s" and $dati_cat_pers['num']) {
if (${"nummoltiplica_ca".$ca_associato['nca'][$numca]} == 1) $dett_costi .= " (".$dati_cat_pers[$catpers_ca]['n_sing'].")";
else $dett_costi .= " (".$dati_cat_pers[$catpers_ca]['n_plur'].")";
} # fine if ($dati_ca[$numca]['letto'] == "s" and $dati_cat_pers['num'])
$dett_costi .= ": ".punti_in_num($prezzo_costo_corr)." $Euro.<br>";
#if ($num_app_reali_costo[$numca]) $deduzione_costi = (float) $deduzione_costi + ($prezzo_costo[$numca][0] * ($num_controlla_limite - $num_app_reali_costo[$numca]));
} # fine if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI")
} # fine for $numca

$commissioni = calcola_commissioni($dati_tariffe,'tariffa'.$numtariffa,$idinizioperiodo,$idfineperiodo,$tariffesettimanali,0,$costi_agg_tot);


$costo_tariffa_tot = $costo_tariffa + $costi_agg_tot;
if ($controlla_tariffe) {
$costo_totale_tariffe = $costo_totale_tariffe + $costo_tariffa_tot;
for ($num1 = 1 ; $num1 < $num_controlla_limite ; $num1++) {
if (strcmp(fixstr($costo_tariffa_nr[$numtariffa][$num1]),"")) $costo_tariffa_corr = $costo_tariffa_nr[$numtariffa][$num1];
else $costo_tariffa_corr = $costo_tariffa;
$costo_totale_tariffe = $costo_totale_tariffe + $costo_tariffa_corr + $costi_agg_tot_vett[$num1];
if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1) {
$costi_agg_tot += $costi_agg_tot_vett[$num1];
$costo_tariffa_tot += $costo_tariffa_corr + $costi_agg_tot_vett[$num1];
} # fine if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1)
} # fine for $num1
if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1) {
$costi_agg_tot = $costi_agg_tot / $mostra_tariffa[$numtariffa];
$costo_tariffa_tot = $costo_tariffa_tot / $mostra_tariffa[$numtariffa];
} # fine if (isset($dati_r2['napp']["tariffa".$numtariffa]) and $dati_r2['napp']["tariffa".$numtariffa] > 1)
} # fine if ($controlla_tariffe)
else for ($num1 = 1 ; $num1 < $num_controlla_limite ; $num1++) {
if (strcmp(fixstr($costo_tariffa_nr[$numtariffa][$num1]),"")) $costo_tariffa_corr = $costo_tariffa_nr[$numtariffa][$num1];
else $costo_tariffa_corr = $costo_tariffa;
$costi_agg_tot += $costi_agg_tot_vett[$num1];
$costo_tariffa_tot += $costo_tariffa_corr + $costi_agg_tot_vett[$num1];
} # fine for $num1
if ($costo_tariffa_tot and (!$prezzo_piu_basso or $costo_tariffa_tot < $prezzo_piu_basso)) {
$prezzo_piu_basso = $costo_tariffa_tot;
$tariffa_piu_bassa = $numtariffa;
} # fine if ($costo_tariffa_tot and (!$prezzo_piu_basso or...
$costo_tariffa_tot_p = punti_in_num($costo_tariffa_tot,$stile_soldi);
$costi_agg_tot_p = punti_in_num($costi_agg_tot,$stile_soldi);

if ($controlla_tariffe) {
if (!empty($mostra_tariffa[$numtariffa])) {
$reg2_checkbox = "x <b>".$mostra_tariffa[$numtariffa]."</b>";
if ($numpersone) {
if ($numpersone_orig_nt[$numtariffa]) $numpersone_corr = $numpersone_orig_nt[$numtariffa];
else $numpersone_corr = $numpersone;
$reg2_checkbox .= " ".mex("per",$pag)." <b>$numpersone_corr</b>";
if (!$numpersone_orig_nt[$numtariffa] and $num_letti_agg['max']) {
$reg2_checkbox .= "+".$num_letti_agg['max'];
$numpersone_corr += $num_letti_agg['max'];
} # fine if (!$numpersone_orig_nt[$numtariffa] and $num_letti_agg['max'])
$reg2_checkbox .= " ";
if ($numpersone_corr != 1) $reg2_checkbox .= mex("persone",$pag);
else $reg2_checkbox .= mex("persona",$pag);
if ($dati_cat_pers['num']) {
$reg2_checkbox .= " <small>(";
$altra_cat = 0;
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
if (${"cat$num1"."_pers_reg2_tariffa$numtariffa"}) {
if ($altra_cat) $reg2_checkbox .= ", ";
else $altra_cat = 1;
if (${"cat$num1"."_pers_reg2_tariffa$numtariffa"} == 1) $reg2_checkbox .= "<span class=\"wsnw\">1 <em>".$dati_cat_pers[$num1]['n_sing']."</em></span>";
else $reg2_checkbox .= "<span class=\"wsnw\">".${"cat$num1"."_pers_reg2_tariffa$numtariffa"}." <em>".$dati_cat_pers[$num1]['n_plur']."</em></span>";
} # fine if (${"cat$num1"."_pers_reg2_tariffa$numtariffa"})
} # fine for $num1
$reg2_checkbox .= ")</small>";
} # fine if ($dati_cat_pers['num'])
} # fine if ($numpersone)
} # fine if (!empty($mostra_tariffa[$numtariffa]))
} # fine if ($controlla_tariffe)
else {
if (!empty($app_regola2_vett[$numtariffa]) and $priv_ins_multiple != "n" and empty($tariffa_non_disp[$numtariffa])) {
$form_regola2 = "SI";
if ($num_controlla_limite > 1) $numpersone_corr = $numpersone_orig_tar;
else $numpersone_corr = $numpersone + $num_letti_agg['max'];
$reg2_checkbox = "<label><input type=\"checkbox\" id=\"r2t_$numtariffa\" name=\"reg2_tariffa$numtariffa\" value=\"SI\">
x </label><input type=\"text\" name=\"molt_reg2_tariffa$numtariffa\" maxlength=\"2\" value =\"1\" style=\"width: 2em;\"
 onclick=\"document.getElementById('r2t_$numtariffa').checked='1';\"><label for=\"r2t_$numtariffa\">
".mex("per",$pag)." ";
if (!$dati_cat_pers['num']) {
$reg2_checkbox .= "</label><input type=\"text\" name=\"pers_reg2_tariffa$numtariffa\" maxlength=\"2\" value =\"$numpersone_corr\"
 style=\"width: 2em;\" onclick=\"document.getElementById('r2t_$numtariffa').checked='1';\"><label for=\"r2t_$numtariffa\">
".mex("persone",$pag);
} # fine if (!$dati_cat_pers['num'])
else {
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
$reg2_checkbox .= "</label><span class=\"wsnw\"><input type=\"text\" name=\"cat$num1"."_pers_reg2_tariffa$numtariffa\" maxlength=\"2\" value =\"".htmlspecialchars(fixstr(${"cat$num1"."_numpers"}))."\"
 style=\"width: 2em;\" onclick=\"document.getElementById('r2t_$numtariffa').checked='1';\"><label for=\"r2t_$numtariffa\"> ".$dati_cat_pers[$num1]['n_plur']."</span>";
if ($num1 != ($dati_cat_pers['num'] - 1)) $reg2_checkbox .= ", ";
} # fine for $num1
} # fine else if (!$dati_cat_pers['num'])
$reg2_checkbox .= "</label>";
} # fine if ($app_regola2_vett[$numtariffa] and $priv_ins_multiple != "n" and...
else $reg2_checkbox = "&nbsp;";
} # fine else if ($controlla_tariffe)

if (!empty($tariffa_non_disp[$numtariffa])) $colred = " class=\"colred\"";
else {
$colred = "";
if (!empty($tariffa_occupa_reg1[$numtariffa])) $colred = " class=\"colblu\"";
} # fine else if (!empty($tariffa_non_disp[$numtariffa]))
echo "<tr><td style=\"height: 5px;\"></td></tr>
<tr><td>".mex("Tariffa",$pag)." \"<b$colred><i>$nometariffa</i></b>\": </td><td style=\"width: 10px;\"></td><td><b>$costo_tariffa_tot_p</b> $Euro";
if ($costi_agg_tot != 0 or !empty($costo_agg_letti_vett[$numtariffa])) {
echo " <small>(".mex("compresi",$pag)." <b>$costi_agg_tot_p</b> $Euro ";
if ($costi_non_fissi == "SI") echo mex("di costi aggiuntivi",$pag);
else echo mex("di costi aggiuntivi fissi",$pag);
if (!empty($costo_agg_letti_vett[$numtariffa])) echo ", $nome_cal";
echo "<script type=\"text/javascript\">
<!--
function apri_costi$numtariffa () {
var bott = document.getElementById('bott_costi$numtariffa');
var elem_costi = document.getElementById('dett_costi$numtariffa');
var costi_vis = elem_costi.style.visibility;
if (costi_vis != 'visible') {
var testo = '<table cellspacing=0><tr><td style=\"width: 12px;\"><\/td><td class=\"smallfont\">$dett_costi<\/td><\/tr><\/table>';
elem_costi.style.visibility = 'visible';
bott.innerHTML = '<img style=\"display: block;\" src=\"./img/freccia_giu_marg.png\" alt=\"&gt;\">';
}
if (costi_vis == 'visible') {
var testo = '';
elem_costi.style.visibility = 'hidden';
bott.innerHTML = '<img style=\"display: block;\" src=\"./img/freccia_destra_marg.png\" alt=\"&gt;\">';
}
elem_costi.innerHTML = testo;
}
-->
</script>
<button type=\"button\" id=\"bott_costi$numtariffa\" onclick=\"apri_costi$numtariffa()\">
<img src=\"./img/freccia_destra_marg.png\" alt=\"&gt;\" style=\"display: block;\"></button>)</small>";
$div_costi = "<div id=\"dett_costi$numtariffa\" style=\"visibility: hidden;\"></div>";
} # fine if ($costi_agg_tot != 0 or !empty($costo_agg_letti_vett[$numtariffa]))
else $div_costi = "";
if ($asterisco == "SI") {
echo "<div style=\"display: inline; color: red;\"><b>*</b></div>";
$asterisco_totale = "SI";
} # fine if ($asterisco == "SI")
if ($dati_cat_pers['num']) $style_r2 = "min-width: 220px;";
else $style_r2 = "width: 220px;";
echo ".$div_costi</td><td style=\"width: 35px;\"></td><td style=\"$style_r2\">$reg2_checkbox</td></tr>";

$caparra_tot = 0;
$commissioni_tot = 0;
if (($caparra or $commissioni)) {
echo "<tr><td colspan=\"5\" align=\"left\">";
if ($caparra > $costo_tariffa_tot) $caparra = $costo_tariffa_tot;
$caparra_tot = $caparra;
$commissioni_tot = $commissioni;
for ($num1 = 1 ; $num1 < $num_controlla_limite ; $num1++) {
if (!strcmp(fixstr($costo_tariffa_nr[$numtariffa][$num1]),"")) {
$caparra_tot += $caparra;
$tariffesettimanali_corr = $tariffesettimanali;
} # fine if (!strcmp((string) $costo_tariffa_nr[$numtariffa][$num1],""))
else {
$tariffesettimanali_corr = $tariffesettimanali_nr[$numtariffa][$num1];
if (isset($tariffesettimanalip_nr[$numtariffa][$num1]) and strcmp((string) $tariffesettimanalip_nr[$numtariffa][$num1],"")) $tariffesettimanali_corr .= ";".$tariffesettimanalip_nr[$numtariffa][$num1];
$caparra_nr[$num1] = calcola_caparra($dati_tariffe,'tariffa'.$numtariffa,$idinizioperiodo,$idfineperiodo,$costo_tariffa_nr[$numtariffa][$num1],$tariffesettimanali_corr);
$caparra_tot += $caparra_nr[$num1];
} # fine else if (!strcmp((string) $costo_tariffa_nr[$numtariffa][$num1],""))
$commissioni_nr[$num1] = calcola_commissioni($dati_tariffe,'tariffa'.$numtariffa,$idinizioperiodo,$idfineperiodo,$tariffesettimanali_corr,0,$costi_agg_tot_vett[$num1]);
$commissioni_tot += $commissioni_nr[$num1];
} # fine for $num1
} # fine if (($caparra or $commissioni))
if ($caparra) {
$caparra_totale += (float) $caparra_tot;
#if (isset($mostra_tariffa[$numtariffa]) and $mostra_tariffa[$numtariffa] > 1) $caparra_tot = $caparra_tot / $mostra_tariffa[$numtariffa];
if (!$controlla_tariffe) echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<small>".mex("Caparra",$pag).": ".punti_in_num($caparra_tot)." $Euro</small>";
} # fine if ($caparra)
if ($commissioni and !$controlla_tariffe) echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<small>".mex("Commissioni",$pag).": ".punti_in_num($commissioni_tot)." $Euro</small>";
if (($caparra or $commissioni) and !$controlla_tariffe) echo "</td></tr>";

if ($controlla_tariffe) {
for ($num1 = 0 ; $num1 < $num_controlla_limite ; $num1++) {
if (strcmp(fixstr($costo_tariffa_nr[$numtariffa][$num1]),"")) {
$costo_tariffa_corr = $costo_tariffa_nr[$numtariffa][$num1];
$tariffesettimanali_corr = $tariffesettimanali_nr[$numtariffa][$num1];
$caparra_corr = fixset($caparra_nr[$num1]);
} # fine if (strcmp(fixstr($costo_tariffa_nr[$numtariffa][$num1]),""))
else {
$costo_tariffa_corr = $costo_tariffa;
$tariffesettimanali_corr = $tariffesettimanali;
$caparra_corr = $caparra;
} # fine else if (strcmp(fixstr($costo_tariffa_nr[$numtariffa][$num1]),""))
if (strcmp(fixstr($numpersone_nr[$numtariffa][$num1]),"")) $numpersone_corr = $numpersone_nr[$numtariffa][$num1];
else $numpersone_corr = $numpersone;
$num_ripeti_contr++;
$numpersone_rc[$num_ripeti_contr] = $numpersone_corr;
if (strcmp(fixstr($commissioni_nr[$num1]),"")) $commissioni_corr = $commissioni_nr[$num1];
else $commissioni_corr = $commissioni;
$costo_tariffa_tot = $costo_tariffa_corr + fixset($costi_agg_tot_vett[$num1]);
$dati_tutte_tariffe .= "<input type=\"hidden\" name=\"costo_tot_$num_ripeti_contr\" value=\"$costo_tariffa_tot\">
<input type=\"hidden\" name=\"costo_tariffa_$num_ripeti_contr\" value=\"$costo_tariffa_corr\">
<input type=\"hidden\" name=\"tariffesettimanali_$num_ripeti_contr\" value=\"$tariffesettimanali_corr\">
<input type=\"hidden\" name=\"percentuale_tasse_tariffa_$num_ripeti_contr\" value=\"".fixset($dati_tariffe['tariffa'.$numtariffa]['tasseperc'])."\">
<input type=\"hidden\" name=\"caparra_$num_ripeti_contr\" value=\"$caparra_corr\">
<input type=\"hidden\" name=\"commissioni_$num_ripeti_contr\" value=\"$commissioni_corr\">
<input type=\"hidden\" name=\"nome_tariffa_$num_ripeti_contr\" value=\"$nometariffa\">
<input type=\"hidden\" name=\"n_letti_agg_$num_ripeti_contr\" value=\"".$num_letti_agg['max']."\">";
for ($num2 = 0 ; $num2 < $dati_cat_pers['num'] ; $num2++) {
if (strcmp(fixstr($cat_persone_nr[$numtariffa][$num1][$num2]),"")) $cat_pers_corr = $cat_persone_nr[$numtariffa][$num1][$num2];
else $cat_pers_corr = fixset($cat_persone_tariffa[$numtariffa][$num2]);
if (!$cat_pers_corr) $cat_pers_corr = 0;
$dati_tutte_tariffe .= "<input type=\"hidden\" name=\"num_persone_tipo_".($num2 + 1)."_$num_ripeti_contr\" value=\"$cat_pers_corr\">";
} # fine for $num2
$num_ca_tot = 0;
for ($numca = 0 ; $numca < $dati_ca['num'] ; $numca++) {
if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI") {
if (empty($num_app_reali_costo[$numca]) or $num1 < $num_app_reali_costo[$numca]) {
if ($dati_ca[$numca]['tipo'] == "s") {
if ($dati_ca[$numca]['associasett'] == "s" and !$settimane_costo[$numca]) $giorni_costo_agg = ",";
else $giorni_costo_agg = $settimane_costo[$numca];
} # fine if ($dati_ca[$numca]['tipo'] == "s")
else $giorni_costo_agg = "";
if ($dati_ca[$numca]['letto'] == "s" and $dati_cat_pers['num']) $catpers_costo_agg = (${"catpers_ca".$numca} + 1);
else $catpers_costo_agg = "";
$dati_tutte_tariffe .= "<input type=\"hidden\" name=\"nome_costo_agg$num_ca_tot"."_$num_ripeti_contr\" value=\"".$dati_ca[$numca]['nome']."\">
<input type=\"hidden\" name=\"val_costo_agg$num_ca_tot"."_$num_ripeti_contr\" value=\"".$prezzo_costo[$numca][$num1]."\">
<input type=\"hidden\" name=\"percentuale_tasse_costo_agg$num_ca_tot"."_$num_ripeti_contr\" value=\"".$dati_ca[$numca]['tasseperc']."\">
<input type=\"hidden\" name=\"moltiplica_max_costo_agg$num_ca_tot"."_$num_ripeti_contr\" value=\"".$moltiplica_costo_nr[$numca][$num1]."\">
<input type=\"hidden\" name=\"valore_giornaliero_max_costo_agg$num_ca_tot"."_$num_ripeti_contr\" value=\"".$valgiornmax_costo[$numca][$num1]."\">
<input type=\"hidden\" name=\"giorni_costo_agg$num_ca_tot"."_$num_ripeti_contr\" value=\"$giorni_costo_agg\">
<input type=\"hidden\" name=\"tipo_persona_costo_agg$num_ca_tot"."_$num_ripeti_contr\" value=\"$catpers_costo_agg\">";
$num_ca_tot++;
} # fine if (empty($num_app_reali_costo[$numca]) or $num1 < $num_app_reali_costo[$numca])
} # fine if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI")
} # fine for $numca
$dati_tutte_tariffe .= "<input type=\"hidden\" name=\"num_costi_aggiuntivi_$num_ripeti_contr\" value=\"$num_ca_tot\">";
} # fine for $num1
} # fine if ($controlla_tariffe)
else {
$option_contratti .= "<option value=\"$numtariffa\">$nometariffa</option>";
$costo_tariffa = $costo_tariffa_tot - $costi_agg_tot;
$dati_tutte_tariffe .= "<input type=\"hidden\" name=\"c_tot_selez$numtariffa"."_1\" value=\"$costo_tariffa_tot\">
<input type=\"hidden\" name=\"c_tariffa_selez$numtariffa"."_1\" value=\"$costo_tariffa\">
<input type=\"hidden\" name=\"tarsett_tariffa_selez$numtariffa"."_1\" value=\"$tariffesettimanali\">
<input type=\"hidden\" name=\"perctas_tariffa_selez$numtariffa"."_1\" value=\"".fixset($dati_tariffe['tariffa'.$numtariffa]['tasseperc'])."\">
<input type=\"hidden\" name=\"cap_tariffa_selez$numtariffa"."_1\" value=\"$caparra_tot\">
<input type=\"hidden\" name=\"comm_tariffa_selez$numtariffa"."_1\" value=\"$commissioni_tot\">
<input type=\"hidden\" name=\"n_tariffa_selez$numtariffa"."_1\" value=\"$nometariffa\">
<input type=\"hidden\" name=\"n_letti_agg_tariffa_selez$numtariffa"."_1\" value=\"".$num_letti_agg['max']."\">
<input type=\"hidden\" name=\"numpers_tariffa_selez$numtariffa"."_1\" value=\"$numpersone\">";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) {
$cat_pers_corr = fixset($cat_persone_tariffa[$numtariffa][$num1]);
if (!$cat_pers_corr) $cat_pers_corr = "0";
$dati_tutte_tariffe .= "<input type=\"hidden\" name=\"numpers_tipo_".($num1 + 1)."_tariffa_selez$numtariffa"."_1\" value=\"$cat_pers_corr\">";
} # fine for $num1
$num_ca_tot = 0;
for ($num1 = 0 ; $num1 < $num_controlla_limite ; $num1++) {
for ($numca = 0 ; $numca < $dati_ca['num'] ; $numca++) {
if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI") {
if (empty($num_app_reali_costo[$numca]) or $num1 < $num_app_reali_costo[$numca]) {
if ($dati_ca[$numca]['tipo'] == "s") {
if ($dati_ca[$numca]['associasett'] == "s" and !$settimane_costo[$numca]) $giorni_costo_agg = ",";
else $giorni_costo_agg = $settimane_costo[$numca];
} # fine if ($dati_ca[$numca]['tipo'] == "s")
else $giorni_costo_agg = "";
if ($dati_ca[$numca]['letto'] == "s" and $dati_cat_pers['num']) $catpers_costo_agg = (${"catpers_ca".$numca} + 1);
else $catpers_costo_agg = "";
$dati_tutte_tariffe .= "<input type=\"hidden\" name=\"nome_costo_agg$num_ca_tot"."_tsel$numtariffa"."_1\" value=\"".$dati_ca[$numca]['nome']."\">
<input type=\"hidden\" name=\"val_costo_agg$num_ca_tot"."_tsel$numtariffa"."_1\" value=\"".$prezzo_costo[$numca][$num1]."\">
<input type=\"hidden\" name=\"percentuale_tasse_costo_agg$num_ca_tot"."_tsel$numtariffa"."_1\" value=\"".$dati_ca[$numca]['tasseperc']."\">
<input type=\"hidden\" name=\"moltiplica_max_costo_agg$num_ca_tot"."_tsel$numtariffa"."_1\" value=\"".$moltiplica_costo_nr[$numca][$num1]."\">
<input type=\"hidden\" name=\"valore_giornaliero_max_costo_agg$num_ca_tot"."_tsel$numtariffa"."_1\" value=\"".$valgiornmax_costo[$numca][$num1]."\">
<input type=\"hidden\" name=\"giorni_costo_agg$num_ca_tot"."_tsel$numtariffa"."_1\" value=\"$giorni_costo_agg\">
<input type=\"hidden\" name=\"tipo_persona_costo_agg$num_ca_tot"."_tsel$numtariffa"."_1\" value=\"$catpers_costo_agg\">";
$num_ca_tot++;
} # fine if (empty($num_app_reali_costo[$numca]) or $num1 < $num_app_reali_costo[$numca])
} # fine if (isset($ca_associato[$numca]) and $ca_associato[$numca] == "SI")
} # fine for $numca
} # fine for $num1
$dati_tutte_tariffe .= "<input type=\"hidden\" name=\"num_costi_aggiuntivi_tsel$numtariffa"."_1\" value=\"$num_ca_tot\">";
} # fine else if ($controlla_tariffe)

} # fine if ($continuare == "SI")
} # fine if ($continuare == "SI")

if ($continuare != "SI" and $controlla_tariffe and !empty($mostra_tariffa[$numtariffa])) $tariffe_non_disp .= "<tr><td style=\"height: 5px;\"></td></tr><tr><td>".mex("Tariffa",$pag)." \"<b class=\"colred\"><i>$nometariffa</i></b>\" ".mex("non disponibile",$pag).".";

} # fine if ($continuare_totale != "NO")
} # fine for $numtariffa

if ($tariffa_mostrata) echo $tariffe_non_disp;
echo "</table>";


$dati_costi_agg = "<input type=\"hidden\" name=\"numcostiagg\" value=\"$numcostiagg\">";
for ($numca = 1 ; $numca <= $numcostiagg ; $numca++) {
$idcostoagg = "idcostoagg".$numca;
$num_costo = $dati_ca['id'][$$idcostoagg];
if ($dati_ca[$num_costo]['mostra'] == "s") {
$dati_costi_agg .= "<input type=\"hidden\" name=\"id_periodi_costo$numca\" value=\"".htmlspecialchars(fixstr(${"id_periodi_costo".$numca}))."\">
<input type=\"hidden\" name=\"costoagg$numca\" value=\"".htmlspecialchars(fixstr(${"costoagg".$numca}))."\">
<input type=\"hidden\" name=\"idcostoagg$numca\" value=\"".htmlspecialchars(fixstr($$idcostoagg))."\">
<input type=\"hidden\" name=\"numsettimane$numca\" value=\"".htmlspecialchars(fixstr(${"numsettimane".$numca}))."\">
<input type=\"hidden\" name=\"nummoltiplica_ca$numca\" value=\"".htmlspecialchars(fixstr(${"nummoltiplica_ca".$numca}))."\">
<input type=\"hidden\" name=\"catpers_ca$numca\" value=\"".htmlspecialchars(fixstr(${"catpers_ca".$numca}))."\">";
} # fine if ($dati_ca[$num_costo]['mostra'] == "s")
} # fine for $numca

$form_mostra_non_disp = "<form accept-charset=\"utf-8\" method=\"post\" action=\"disponibilita.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"inizioperiodo\" value=\"$data_inizioperiodo\">
<input type=\"hidden\" name=\"fineperiodo\" value=\"$data_fineperiodo\">
<input type=\"hidden\" name=\"num_persone_casa\" value=\"".htmlspecialchars(fixstr($num_persone_casa))."\">
<input type=\"hidden\" name=\"molt_app_persone_casa\" value=\"".htmlspecialchars(fixstr($molt_app_persone_casa))."\">
<input type=\"hidden\" name=\"numpersone\" value=\"$numpersone_orig\">
<input type=\"hidden\" name=\"mostra_non_disp\" value=\"1\">
$dati_costi_agg
<button class=\"xavl\" type=\"submit\"><div>".mex("Mostra le tariffe non disponibili",$pag)."</div></button>
</div></form>";

$numpersone = $numpersone_orig;
if (!$tariffa_mostrata and $continuare_totale != "NO") {
$continuare_totale = "NO";
echo "<br>".mex("Non c'è nessuna tariffa disponibile in questo periodo",$pag).".<br>
</div></table></div></form></td></tr></table>";
if ($tariffa_non_mostrata) echo "<br>$form_mostra_non_disp<br>";
} # fine if (!$tariffa_mostrata and $continuare_totale != "NO")



if ($continuare_totale != "NO") {

echo "</div>";
if (isset($asterisco_totale) and $asterisco_totale == "SI") echo "<tr><td style=\"height: 5px;\"></td></tr><tr><td align=\"left\"><div style=\"display: inline; color: red;\"><b>*</b></div> ".mex("Non si sono potuti applicare alla tariffa uno o più costi",$pag).".</td></tr>";
if ($form_regola2 == "SI") {
if ($priv_ins_multiple == "s") echo "<tr><td style=\"height: 5px;\"></td></tr><tr><td>
<label><input type=\"checkbox\" name=\"prenota_vicine\" value=\"SI\"> ".mex("Appartamenti vicini",'unit.php').".</label></td></tr>";
echo "<tr><td style=\"height: 5px;\"></td></tr><tr><td align=\"center\">
$dati_costi_agg
<button class=\"xavl\" type=\"submit\"><div>".mex("Ricontrolla la disponibilità negli appartamenti selezionati",'unit.php')."</div></button>
</td></tr>";
} # fine if ($form_regola2 == "SI")
if ($controlla_tariffe) {
$costo_totale_tariffe_p = punti_in_num($costo_totale_tariffe,$stile_soldi);
echo "<tr><td style=\"height: 5px;\"></td></tr><tr><td>
".mex("TOTALE",$pag).": <b>$costo_totale_tariffe_p</b> $Euro</td></tr>";
if ($caparra_totale) {
echo "<tr><td align=\"left\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<small>
".mex("Caparra",$pag).": ".punti_in_num($caparra_totale,$stile_soldi)." $Euro
</small></td></tr>";
} # fine if ($caparra_totale)
} # fine if ($controlla_tariffe)
echo "</table></div></form>";

if ($tariffa_non_mostrata) echo "<br><div class=\"txtcenter\">$form_mostra_non_disp</div>";
echo "</td></tr></table>";

#if ($priv_ins_costi_agg == "s" and ($form_regola2 == "SI" or $controlla_tariffe)) {
if ($priv_ins_costi_agg == "s") {
$numcostiagg_prec = $numcostiagg;
$numcostiagg = 0;
$testo_costi_agg = "";
unset($costi_agg_raggr);
unset($chiedi_combina);
for ($num1 = 0 ; $num1 < $dati_ca['num'] ; $num1++) {
if ($dati_ca[$num1]['mostra'] == "s") {
if ($attiva_costi_agg_consentiti == "n" or (isset($costi_agg_consentiti_vett[$dati_ca[$num1]['id']]) and $costi_agg_consentiti_vett[$dati_ca[$num1]['id']] == "SI")) {
if ($dati_ca[$num1]['combina'] != "s") {
$testo_costo = "";
if ($dati_ca[$num1]['raggruppa'] != "s") {
$numcostiagg++;
$numcostiagg_v = $numcostiagg;
$nome_costo = $dati_ca[$num1]['nome'];
$id_costo = $dati_ca[$num1]['id'];
} # fine if ($dati_ca[$num1]['raggruppa'] != "s")
else {
$numcostiagg_v = "[nca]";
$nome_costo = "[nome]";
$id_costo = "[id]";
} # fine else if ($dati_ca[$num1]['raggruppa'] != "s")
$costoagg = "costoagg".$numcostiagg_v;
if ($dati_ca[$num1]['tipo'] == "u") $tipo_ca = "unico";
if ($dati_ca[$num1]['tipo'] == "s") $tipo_ca = "$parola_settimanale";
if (isset($$costoagg) and $$costoagg == "SI") {
$checked = " checked";
$b_check = "<b>";
$b_slash_check = "</b>";
} # fine if (isset($$costoagg) and $$costoagg == "SI")
else {
$checked = "";
$b_check = "";
$b_slash_check = "";
unset(${"id_periodi_costo".$numcostiagg_v});
unset(${"numsettimane".$numcostiagg_v});
unset(${"nummoltiplica_ca".$numcostiagg_v});
} # fine else if (isset($$costoagg) and $$costoagg == "SI")
$testo_costo .= "<input type=\"hidden\" name=\"idcostoagg$numcostiagg_v\" value=\"$id_costo\">
<input type=\"hidden\" name=\"id_periodi_costo$numcostiagg_v\" value=\"".htmlspecialchars(fixstr(${"id_periodi_costo".$numcostiagg_v}))."\">
<label><input type=\"checkbox\" id=\"ca_$numcostiagg_v\" name=\"$costoagg\" value=\"SI\"$checked>
".mex("costo aggiuntivo $tipo_ca",$pag)." $b_check\"<em>$nome_costo</em>\"$b_slash_check";
if ($dati_ca[$num1]['numsett'] == "c" and $dati_ca[$num1]['associasett'] == "n") {
$numsettimane = "numsettimane".$numcostiagg_v;
if (!empty($$numsettimane)) $valnumsettimane = $$numsettimane;
else $valnumsettimane = 0;
$testo_costo .= ", ".mex("nº di $parola_settimane da applicare",$pag).":</label>
<input type=\"text\" name=\"$numsettimane\" value=\"$valnumsettimane\" size=\"3\" maxlength=\"3\"
 onclick=\"document.getElementById('ca_$numcostiagg_v').checked='1';\"><label for=\"ca_$numcostiagg_v\">";
} # fine if ($dati_ca[$num1]['numsett'] == "c" and...
if ($dati_ca[$num1]['moltiplica'] == "c") {
$nummoltiplica_ca = "nummoltiplica_ca".$numcostiagg_v;
if (!empty($$nummoltiplica_ca)) $valnummoltiplica_ca = $$nummoltiplica_ca;
else $valnummoltiplica_ca = 1;
$testo_costo .= ", ".mex("da moltiplicare per",$pag).":</label>";
if ($dati_ca[$num1]['molt_max'] != "n") $testo_costo .= "<input type=\"text\" name=\"$nummoltiplica_ca\" value=\"$valnummoltiplica_ca\" size=\"3\" maxlength=\"12\"
 onclick=\"document.getElementById('ca_$numcostiagg_v').checked='1';\">";
else {
$testo_costo .= "<select name=\"$nummoltiplica_ca\" onclick=\"document.getElementById('ca_$numcostiagg_v').checked='1';\">";
for ($num2 = 1 ; $num2 <= $dati_ca[$num1]['molt_max_num'] ; $num2++) {
if ($num2 == $valnummoltiplica_ca) $sel = " selected";
else $sel = "";
if ($numcostiagg_v != "[nca]") $id_opt = "";
else $id_opt = " id=\"nm_ca$numcostiagg_v"."_opt$num2\"";
$testo_costo .= "<option$id_opt value=\"$num2\"$sel>$num2</option>";
} # fine for $num2
$testo_costo .= "</select>";
} # fine else if ($dati_ca[$num1]['molt_max'] != "n")
$testo_costo .= "<label for=\"ca_$numcostiagg_v\">";
} # fine if ($dati_ca[$num1]['moltiplica'] == "c")
if ($dati_ca[$num1]['letto'] == "s" and $dati_cat_pers['num']) {
$testo_costo .= " (</label><select name=\"catpers_ca$numcostiagg_v\" onclick=\"document.getElementById('ca_$numcostiagg_v').checked='1';\">";
for ($num2 = 0 ; $num2 < $dati_cat_pers['num'] ; $num2++) {
if ($num2 == fixset(${"catpers_ca$numcostiagg_v"})) $sel = " selected";
else $sel = "";
if ($numcostiagg_v != "[nca]") $id_opt = "";
else $id_opt = " id=\"cp_ca$numcostiagg_v"."_opt$num2\"";
$testo_costo .= "<option$id_opt value=\"$num2\"$sel>";
if ($dati_ca[$num1]['moltiplica'] != "1") $testo_costo .= $dati_cat_pers[$num2]['n_plur'];
else $testo_costo .= $dati_cat_pers[$num2]['n_sing'];
$testo_costo .= "</option>";
} # for $num2
$testo_costo .= "</select><label for=\"ca_$numcostiagg_v\">)";
} # fine if ($dati_ca[$num1]['letto'] == "s" and $dati_cat_pers['num'])
$testo_costo .= ".</label><br>";
} # fine if ($dati_ca[$num1]['combina'] != "s")
else {
$testo_costo = "combina";
$categ = $dati_ca[$num1]['categoria'];
if ($dati_ca[$num1]['numsett'] == "c" and $dati_ca[$num1]['associasett'] == "n") $chiedi_combina[$categ]['sett'] = 1;
if ($dati_ca[$num1]['moltiplica'] == "c") {
if (empty($chiedi_combina[$categ]['molt'])) $chiedi_combina[$categ]['molt_max_num'] = $dati_ca[$num1]['molt_max_num'];
if ($dati_ca[$num1]['molt_max'] != "n") $chiedi_combina[$categ]['molt_max_num'] = 0;
elseif ($chiedi_combina[$categ]['molt_max_num'] and $chiedi_combina[$categ]['molt_max_num'] < $dati_ca[$num1]['molt_max_num']) $chiedi_combina[$categ]['molt_max_num'] = $dati_ca[$num1]['molt_max_num'];
$chiedi_combina[$categ]['molt'] = 1;
} # fine if ($dati_ca[$num1]['moltiplica'] == "c")
if ($dati_ca[$num1]['letto'] == "s") $chiedi_combina[$categ]['letto'] = 1;
} # fine else if ($dati_ca[$num1]['combina'] != "s")
if ($dati_ca[$num1]['raggruppa'] != "s") $testo_costi_agg .= $testo_costo;
else $costi_agg_raggr[$testo_costo."<>".$dati_ca[$num1]['categoria']] = fixset($costi_agg_raggr[$testo_costo."<>".$dati_ca[$num1]['categoria']]).$dati_ca[$num1]['id'].",";
} # fine if ($attiva_costi_agg_consentiti == "n" or...
} # fine if ($dati_ca[$num1]['mostra'] == "s")
} # fine for $num1

if (!empty($costi_agg_raggr)) {
foreach ($costi_agg_raggr as $testo_costo => $id_costi) {
$testo_costo = explode("<>",$testo_costo);
$numcostiagg++;
$id_costi_vett = explode(",",substr($id_costi,0,-1));
$num_id_costi = count($id_costi_vett);
if ($testo_costo[0] != "combina") {
$testo_costo = $testo_costo[0];
if (isset(${"costoagg".$numcostiagg}) and ${"costoagg".$numcostiagg} == "SI") {
$testo_costo = str_replace("type=\"checkbox\"","type=\"checkbox\" checked",$testo_costo);
$b_check = "<b>";
$b_slash_check = "</b>";
} # fine if (isset(${"costoagg".$numcostiagg}) and ${"costoagg".$numcostiagg} == "SI")
else {
$b_check = "";
$b_slash_check = "";
unset(${"id_periodi_costo".$numcostiagg});
unset(${"numsettimane".$numcostiagg});
unset(${"nummoltiplica_ca".$numcostiagg});
} # fine else if (isset(${"costoagg".$numcostiagg}) and ${"costoagg".$numcostiagg} == "SI")
if (!empty(${"id_periodi_costo".$numcostiagg})) $testo_costo = str_replace("name=\"id_periodi_costo[nca]\" value=\"\"","name=\"id_periodi_costo[nca]\" value=\"".${"id_periodi_costo".$numcostiagg}."\"",$testo_costo);
if (!empty(${"numsettimane".$numcostiagg})) $testo_costo = str_replace("name=\"numsettimane[nca]\" value=\"0\"","name=\"numsettimane[nca]\" value=\"".${"numsettimane".$numcostiagg}."\"",$testo_costo);
if (!empty(${"nummoltiplica_ca".$numcostiagg})) $testo_costo = str_replace("name=\"nummoltiplica_ca[nca]\" value=\"1\"","name=\"nummoltiplica_ca[nca]\" value=\"".${"nummoltiplica_ca".$numcostiagg}."\"",$testo_costo);
if (strcmp(fixstr(${"nummoltiplica_ca".$numcostiagg}),"")) $testo_costo = str_replace(" id=\"nm_ca[nca]"."_opt".${"nummoltiplica_ca".$numcostiagg}."\" value=\"".${"nummoltiplica_ca".$numcostiagg}."\""," id=\"nm_ca[nca]"."_opt".${"nummoltiplica_ca".$numcostiagg}."\" value=\"".${"nummoltiplica_ca".$numcostiagg}."\" selected",$testo_costo);
if (strcmp(fixstr(${"catpers_ca".$numcostiagg}),"")) $testo_costo = str_replace(" id=\"cp_ca[nca]"."_opt".${"catpers_ca".$numcostiagg}."\" value=\"".${"catpers_ca".$numcostiagg}."\""," id=\"cp_ca[nca]"."_opt".${"catpers_ca".$numcostiagg}."\" value=\"".${"catpers_ca".$numcostiagg}."\" selected",$testo_costo);
$testo_costo = str_replace("[nca]",$numcostiagg,$testo_costo);
if ($num_id_costi == 1) {
$num_costo = $dati_ca['id'][$id_costi_vett[0]];
$testo_costo = str_replace(" \"<em>[nome]</em>\""," $b_check\"<em>".$dati_ca[$num_costo]['nome']."</em>\"$b_slash_check",$testo_costo);
$testo_costo = str_replace(" value=\"[id]\""," value=\"".$id_costi_vett[0]."\"",$testo_costo);
} # fine if ($num_id_costi == 1)
else {
$sel_costi = "</label><select name=\"idcostoagg$numcostiagg\" onclick=\"document.getElementById('ca_$numcostiagg').checked='1';\">";
for ($num1 = 0 ; $num1 < $num_id_costi ; $num1++) {
$num_costo = $dati_ca['id'][$id_costi_vett[$num1]];
if (isset(${"idcostoagg".$numcostiagg}) and ${"idcostoagg".$numcostiagg} == $id_costi_vett[$num1]) {
$sel = " selected";
$opt_bg = " style=\"font-weight: bold;\"";
} # fine if (isset(${"idcostoagg".$numcostiagg}) and ${"idcostoagg".$numcostiagg} == $id_costi_vett[$num1])
else {
$sel = "";
$opt_bg = "";
} # fine else if (isset(${"idcostoagg".$numcostiagg}) and ${"idcostoagg".$numcostiagg} == $id_costi_vett[$num1])
$sel_costi .= "<option value=\"".$id_costi_vett[$num1]."\"$opt_bg$sel>".$dati_ca[$num_costo]['nome']."</option>";
} # fine for $num1
$sel_costi .= "</select><label for=\"ca_$numcostiagg\">";
$testo_costo = str_replace(" \"<em>[nome]</em>\""," $b_check\"$b_slash_check$sel_costi$b_check\"$b_slash_check",$testo_costo);
$testo_costo = str_replace("<input type=\"hidden\" name=\"idcostoagg$numcostiagg\" value=\"[id]\">","",$testo_costo);
} # fine (count($id_costi_vett) == 1)
$testo_costi_agg .= $testo_costo;
} # fine if ($testo_costo[0] != "combina")
else {
$categoria = $testo_costo[1];
if (isset(${"costoagg".$numcostiagg}) and ${"costoagg".$numcostiagg} == "SI") {
$checked = " checked";
$b_check = "<b>";
$b_slash_check = "</b>";
} # fine if (isset(${"costoagg".$numcostiagg}) and ${"costoagg".$numcostiagg} == "SI")
else {
$checked = "";
$b_check = "";
$b_slash_check = "";
unset(${"id_periodi_costo".$numcostiagg});
unset(${"numsettimane".$numcostiagg});
unset(${"nummoltiplica_ca".$numcostiagg});
} # fine else if (isset(${"costoagg".$numcostiagg}) and ${"costoagg".$numcostiagg} == "SI")
$testo_costi_agg .= "<input type=\"hidden\" name=\"idcostoagg$numcostiagg\" value=\"c".htmlspecialchars($categoria)."\">
<input type=\"hidden\" name=\"id_periodi_costo$numcostiagg\" value=\"".htmlspecialchars(fixstr(${"id_periodi_costo".$numcostiagg}))."\">
<label><input type=\"checkbox\" id=\"ca_$numcostiagg\" name=\"costoagg$numcostiagg\" value=\"SI\"$checked>
".mex("costo aggiuntivo",$pag)." $b_check\"<em>".htmlspecialchars($categoria)."</em>\"$b_slash_check";
if (!empty($chiedi_combina[$categoria]['sett'])) {
$numsettimane = "numsettimane".$numcostiagg;
if ($$numsettimane) $valnumsettimane = $$numsettimane;
else $valnumsettimane = 0;
$testo_costi_agg .= ", ".mex("nº di $parola_settimane da applicare",$pag).":</label>
<input type=\"text\" name=\"$numsettimane\" value=\"$valnumsettimane\" size=\"3\" maxlength=\"3\"
 onclick=\"document.getElementById('ca_$numcostiagg').checked='1';\"><label for=\"ca_$numcostiagg\">";
} # fine if (!empty($chiedi_combina[$categoria]['sett']))
if (!empty($chiedi_combina[$categoria]['molt'])) {
$nummoltiplica_ca = "nummoltiplica_ca".$numcostiagg;
if (!empty($$nummoltiplica_ca)) $valnummoltiplica_ca = $$nummoltiplica_ca;
else $valnummoltiplica_ca = 1;
$testo_costi_agg .= ", ".mex("da moltiplicare per",$pag).":</label>";
if (!$chiedi_combina[$categoria]['molt_max_num']) $testo_costi_agg .= "<input type=\"text\" name=\"$nummoltiplica_ca\" value=\"$valnummoltiplica_ca\" size=\"3\" maxlength=\"12\"
 onclick=\"document.getElementById('ca_$numcostiagg').checked='1';\">";
else {
$testo_costi_agg .= "<select name=\"$nummoltiplica_ca\" onclick=\"document.getElementById('ca_$numcostiagg').checked='1';\">";
for ($num2 = 1 ; $num2 <= $chiedi_combina[$categoria]['molt_max_num'] ; $num2++) {
if ($num2 == $valnummoltiplica_ca) $sel = " selected";
else $sel = "";
$testo_costi_agg .= "<option value=\"$num2\"$sel>$num2</option>";
} # fine for $num2
$testo_costi_agg .= "</select>";
} # fine else if ($dati_ca[$num1]['molt_max'] != "n")
$testo_costi_agg .= "<label for=\"ca_$numcostiagg\">";
} # fine if (!empty($chiedi_combina[$categoria]['molt']))
if (!empty($chiedi_combina[$categoria]['letto']) and $dati_cat_pers['num']) {
$testo_costi_agg .= " (</label><select name=\"catpers_ca$numcostiagg\" onclick=\"document.getElementById('ca_$numcostiagg').checked='1';\">";
for ($num2 = 0 ; $num2 < $dati_cat_pers['num'] ; $num2++) {
if ($num2 == ${"catpers_ca$numcostiagg"}) $sel = " selected";
else $sel = "";
$testo_costi_agg .= "<option value=\"$num2\"$sel>".$dati_cat_pers[$num2]['n_plur']."</option>";
} # for $num2
$testo_costi_agg .= "</select><label for=\"ca_$numcostiagg\">)";
} # fine if (!empty($chiedi_combina[$categoria]['letto']) and $dati_cat_pers['num'])
$testo_costi_agg .= ".</label><br>";
} # fine else if ($testo_costo[0] != "combina")
} # fine foreach ($costi_agg_raggr as $testo_costo => $id_costi)
} # fine if (!empty($costi_agg_raggr))
for ($num1 = ($numcostiagg + 1) ; $num1 <= $numcostiagg_prec ; $num1++) if (${"costoagg".$num1} == "SI") echo "<input type=\"hidden\" name=\"id_periodi_costo$num1\" value=\"".htmlspecialchars(${"id_periodi_costo".$num1})."\">";

if ($testo_costi_agg) {
echo "<br><br>
<form accept-charset=\"utf-8\" method=\"post\" action=\"disponibilita.php\"><div class=\"rbox\">
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"inizioperiodo\" value=\"$data_inizioperiodo\">
<input type=\"hidden\" name=\"fineperiodo\" value=\"$data_fineperiodo\">
<input type=\"hidden\" name=\"num_persone_casa\" value=\"".htmlspecialchars(fixstr($num_persone_casa))."\">
<input type=\"hidden\" name=\"molt_app_persone_casa\" value=\"".htmlspecialchars(fixstr($molt_app_persone_casa))."\">
<input type=\"hidden\" name=\"numpersone\" value=\"$numpersone\">
<input type=\"hidden\" name=\"num_cat_pers_passa\" value=\"".$dati_cat_pers['num']."\">";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) if (!empty($cat_persone_invia[1][$num1])) echo "<input type=\"hidden\" name=\"cat$num1"."_numpers\" value=\"".htmlspecialchars($cat_persone_invia[1][$num1])."\">";
echo "<input type=\"hidden\" name=\"mostra_non_disp\" value=\"".htmlspecialchars(fixstr($mostra_non_disp))."\">
<input type=\"hidden\" name=\"numcostiagg\" value=\"$numcostiagg\">
$dati_email";
if ($controlla_tariffe) {
echo "<input type=\"hidden\" name=\"controlla_tariffe\" value=\"SI\">
<input type=\"hidden\" name=\"num_tariffe_passa\" value=\"".$dati_tariffe['num']."\">
<input type=\"hidden\" name=\"prenota_vicine\" value=\"".htmlspecialchars(fixstr($prenota_vicine))."\">";
for ($numtariffa = 1 ; $numtariffa <= $dati_tariffe['num'] ; $numtariffa++) {
echo "<input type=\"hidden\" name=\"reg2_tariffa$numtariffa\" value=\"".htmlspecialchars(fixstr(${"reg2_tariffa".$numtariffa}))."\">
<input type=\"hidden\" name=\"molt_reg2_tariffa$numtariffa\" value=\"".htmlspecialchars(fixstr(${"molt_reg2_tariffa".$numtariffa}))."\">
<input type=\"hidden\" name=\"pers_reg2_tariffa$numtariffa\" value=\"".htmlspecialchars(fixstr(${"pers_reg2_tariffa".$numtariffa}))."\">";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) if (!empty($cat_persone_invia[$numtariffa][$num1])) echo "<input type=\"hidden\" name=\"cat$num1"."_pers_reg2_tariffa$numtariffa\" value=\"".htmlspecialchars($cat_persone_invia[$numtariffa][$num1])."\">";
} # fine for $numtariffa
} # fine if ($controlla_tariffe)
echo "<table><tr><td>$testo_costi_agg</td><td style=\"width: 25px;\"></td><td valign=\"middle\">
<button class=\"aexc\" type=\"submit\"><div>".mex("Aggiungi",$pag)."</div></button>
</td><td style=\"width: 20px;\"></td></tr></table></div></form>";
} # fine if ($testo_costi_agg)
} # fine if ($priv_ins_costi_agg == "s")

} # fine if ($continuare_totale != "NO")

} # fine if ($liberato == "SI")

unlock_tabelle($tabelle_lock);


if ($continuare_totale != "NO") {

if (!$testo_costi_agg) echo "<br>";
echo "<br>
<form accept-charset=\"utf-8\" method=\"post\" action=\"disponibilita.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"inizioperiodo\" value=\"$data_inizioperiodo\">
<input type=\"hidden\" name=\"fineperiodo\" value=\"$data_fineperiodo\">
<input type=\"hidden\" name=\"mostra_non_disp\" value=\"".htmlspecialchars(fixstr($mostra_non_disp))."\">
$dati_email
 ".ucfirst(mex("disponibilità solo negli appartamenti da",'unit.php'))."
 <select name=\"num_persone_casa\">
<option value=\"\" selected>--</option>";
asort ($dati_app['maxocc']);
reset ($dati_app['maxocc']);
$ultime_persone_casa = "";
foreach ($dati_app['maxocc'] as $key => $val) {
$persone_casa = $val;
if ($persone_casa != $ultime_persone_casa) {
$ultime_persone_casa = $persone_casa;
echo "<option value=\"$persone_casa\">$persone_casa</option>";
} # fine if ($persone_casa != $ultimepersone_casa)
} # fine foreach ($dati_app['maxocc'] as $key => $val)
echo "</select> ".mex("persone",$pag);
if ($priv_ins_multiple != "n") echo "(x <input type=\"text\" name=\"molt_app_persone_casa\" size=\"2\" maxlength=\"2\" value =\"1\">)";
else echo "<input type=\"hidden\" name=\"molt_app_persone_casa\" value=\"1\">";
echo " <button class=\"xavl\" type=\"submit\"><div>".mex("Ricontrolla",$pag)."</div></button>
</div></form><br>";

$data_inizio = esegui_query("select * from $tableperiodi where idperiodi = $idinizioperiodo");
$data_inizio = risul_query($data_inizio,0,'datainizio');
$data_fine = esegui_query("select * from $tableperiodi where idperiodi = $idfineperiodo");
$data_fine = risul_query($data_fine,0,'datafine');
if (!empty($numpersone_rc[1])) $num_persone_1 = $numpersone_rc[1];
else $num_persone_1 = $numpersone;
if (!$num_ripeti_contr) $num_ripeti_contr = 1;
echo "<div style=\"text-align: center;\"><table style=\"margin-left: auto; margin-right: auto;\"><tr><td align=\"center\">
<form accept-charset=\"utf-8\" method=\"post\" action=\"visualizza_contratto.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"num_ripeti\" value=\"$num_ripeti_contr\">
<input type=\"hidden\" name=\"data_inizio_1\" value=\"$data_inizio\">
<input type=\"hidden\" name=\"data_fine_1\" value=\"$data_fine\">
<input type=\"hidden\" name=\"num_periodi_1\" value=\"$lunghezza_perioido\">
<input type=\"hidden\" name=\"num_persone_1\" value=\"$num_persone_1\">
<input type=\"hidden\" name=\"numero_cliente_1\" value=\"0\">";
if ($num_ripeti_contr == 1) echo "<input type=\"hidden\" name=\"ultima_prenotazione_per_cliente_1\" value=\"1\">";
else echo "<input type=\"hidden\" name=\"ultima_prenotazione_per_cliente_1\" value=\"0\">";
for ($num1 = 2 ; $num1 <= $num_ripeti_contr ; $num1++) {
echo "<input type=\"hidden\" name=\"data_inizio_$num1\" value=\"$data_inizio\">
<input type=\"hidden\" name=\"data_fine_$num1\" value=\"$data_fine\">
<input type=\"hidden\" name=\"num_periodi_$num1\" value=\"$lunghezza_perioido\">
<input type=\"hidden\" name=\"num_persone_$num1\" value=\"".$numpersone_rc[$num1]."\">
<input type=\"hidden\" name=\"numero_cliente_$num1\" value=\"0\">";
if ($num_ripeti_contr == $num1) echo "<input type=\"hidden\" name=\"ultima_prenotazione_per_cliente_$num1\" value=\"1\">";
else echo "<input type=\"hidden\" name=\"ultima_prenotazione_per_cliente_$num1\" value=\"0\">";
} # fine for $num1
if ($dati_tutte_tariffe) echo "<input type=\"hidden\" name=\"num_tariffe_passa\" value=\"".$dati_tariffe['num']."\">
<input type=\"hidden\" name=\"num_cat_pers_passa\" value=\"".$dati_cat_pers['num']."\">";
if (!empty($origine)) echo "<input type=\"hidden\" name=\"origine\" value=\"".htmlspecialchars($origine)."\">";
echo "$dati_email
$dati_tutte_tariffe
".ucfirst(mex("documento di tipo",$pag))."
 <select name=\"numero_contratto\">";
$nomi_contratti = esegui_query("select valpersonalizza from $tablepersonalizza where idpersonalizza = 'nomi_contratti' and idutente = '$id_utente'");
$nomi_contratti = (string) risul_query($nomi_contratti,0,'valpersonalizza');
$nomi_contratti = explode("#@&",$nomi_contratti);
$num_nomi_contratti = count($nomi_contratti);
for ($num1 = 0 ; $num1 < $num_nomi_contratti ; $num1++) {
$dati_nome_contratto = explode("#?&",$nomi_contratti[$num1]);
$nome_contratto[$dati_nome_contratto[0]] = fixset($dati_nome_contratto[1]);
} # fine for $num1
$max_contr = esegui_query("select max(numero) from $tablecontratti where tipo $LIKE 'contr%'");
$max_contr = risul_query($max_contr,0,0);
$contr_escludi = array();
$escludi_pag = esegui_query("select numero from $tablecontratti where tipo = 'pag_esc' and testo $LIKE '%,contr_disp,%' ");
for ($num1 = 0 ; $num1 < numlin_query($escludi_pag) ; $num1++) $contr_escludi[risul_query($escludi_pag,$num1,'numero')] = 1;
unset($contr_mln);
$contr_mln[0] = 1;
$dati_mln = esegui_query("select * from $tablecontratti where tipo $LIKE 'mln_%' ");
for ($num1 = 0 ; $num1 < numlin_query($dati_mln) ; $num1++) {
if (strcmp((string) risul_query($dati_mln,$num1,'testo'),"")) {
$num_contr = risul_query($dati_mln,$num1,'numero');
if (!isset($contr_mln[$num_contr]['num'])) $contr_mln[$num_contr]['num'] = 0;
$contr_mln[$num_contr]['num']++;
$contr_mln[$num_contr][$contr_mln[$num_contr]['num']] = substr(risul_query($dati_mln,$num1,'tipo'),4);
} # fine if (strcmp(risul_query($dati_mln,$num1,'testo'),""))
} # fine for $num1
for ($num_contratto = 1 ; $num_contratto <= $max_contr ; $num_contratto++) {
if (empty($contr_escludi[$num_contratto])) {
if ($attiva_contratti_consentiti == "n" or (isset($contratti_consentiti_vett[$num_contratto]) and $contratti_consentiti_vett[$num_contratto] == "SI")) {
if (!empty($nome_contratto[$num_contratto])) $num_contratto_vedi = $nome_contratto[$num_contratto];
else $num_contratto_vedi = $num_contratto;
if (empty($contr_mln[$num_contratto]) or $contr_mln[$num_contratto]['num'] == 1) echo "<option value=\"$num_contratto\">$num_contratto_vedi</option>";
else {
$default_mln = esegui_query("select testo from $tablecontratti where tipo $LIKE 'contr%' and numero = '$num_contratto' ");
$default_mln = str_replace("#!mln!#","",risul_query($default_mln,0,'testo'));
for ($num1 = 1 ; $num1 <= $contr_mln[$num_contratto]['num'] ; $num1++) {
if ($contr_mln[$num_contratto][$num1] == $default_mln) echo "<option value=\"$num_contratto-".$contr_mln[$num_contratto][$num1]."\">$num_contratto_vedi (".$contr_mln[$num_contratto][$num1].")</option>";
} # fine for $num1
for ($num1 = 1 ; $num1 <= $contr_mln[$num_contratto]['num'] ; $num1++) {
if ($contr_mln[$num_contratto][$num1] != $default_mln) echo "<option value=\"$num_contratto-".$contr_mln[$num_contratto][$num1]."\">$num_contratto_vedi (".$contr_mln[$num_contratto][$num1].")</option>";
} # fine for $num1
} # fine else if (empty($contr_mln[$num_contratto]) or...
} # fine if ($attiva_contratti_consentiti == "n" or...
} # fine if (empty($contr_escludi[$num_contratto]))
} # fine for $num_contratto
echo "</select>
 <button class=\"vdoc\" type=\"submit\"><div>".ucfirst(mex("visualizza",$pag))."</div></button>";
if ($option_contratti) {
if (!$tariffa_piu_bassa) $sel = " selected";
else $sel = "";
echo "<br><div class=\"doc_ec\">(".mex("con la tariffa",$pag)."
 <select name=\"tariffa_selezionata\">
<option value=\"\"$sel>----</option>
".str_replace("\"$tariffa_piu_bassa\">","\"$tariffa_piu_bassa\" selected>",$option_contratti)."
</select>)</div>";
} # fine if ($option_contratti)
echo "</div></form>";
if ($mostra_quadro_disp) echo "</td>";
else echo "<br><br></td></tr>";

if ($priv_ins_nuove_prenota == "s") {
if ($mostra_quadro_disp) echo "<td style=\"width: 50px;\"></td><td align=\"center\" valign=\"middle\">";
else echo "<tr><td align=\"center\">";
echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"prenota.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"num_tipologie\" value=\"$num_tipologie\">
<input type=\"hidden\" name=\"mos_tut_dat\" value=\"SI\">
<input type=\"hidden\" name=\"prenota_vicine\" value=\"".htmlspecialchars(fixstr($prenota_vicine))."\">";
for ($n_t = 1 ; $n_t <= $num_tipologie ; $n_t++) {
echo "<input type=\"hidden\" name=\"inizioperiodo$n_t\" value=\"$idinizioperiodo\">
<input type=\"hidden\" name=\"fineperiodo$n_t\" value=\"$idfineperiodo\">
<input type=\"hidden\" name=\"numpersone$n_t\" value=\"".fixset($num_persone_invia[$n_t])."\">";
if ($dati_cat_pers['num']) {
echo "<input type=\"hidden\" name=\"num_categorie_persone\" value=\"".$dati_cat_pers['num']."\">";
for ($num1 = 0 ; $num1 < $dati_cat_pers['num'] ; $num1++) if (!empty($cat_persone_invia[$n_t][$num1])) echo "<input type=\"hidden\" name=\"cat$num1"."_numpers$n_t\" value=\"".$cat_persone_invia[$n_t][$num1]."\">";
} # fine if ($dati_cat_pers['num'])
echo "<input type=\"hidden\" name=\"num_persone_casa$n_t\" value=\"".htmlspecialchars(fixstr($num_persone_casa))."\">
<input type=\"hidden\" name=\"num_app_richiesti$n_t\" value=\"".$num_app_richiesti_invia[$n_t]."\">
<input type=\"hidden\" name=\"nometipotariffa$n_t\" value=\"".fixset($tariffa_invia[$n_t])."\">";
} # fine for $n_t
echo "<button class=\"ires\" type=\"submit\"><div>".mex("Inserisci la prenotazione",$pag)."</div></button>
</div></form></td></tr>";
} # fine if ($priv_ins_nuove_prenota == "s")
echo "</table>";


} # fine if ($continuare_totale != "NO")
else echo "<br>
<div style=\"text-align: center;\">";



if ($mostra_quadro_disp) {
include("./includes/funzioni_quadro_disp.php");
$c_sfondo_tab_disp = "#dddddd";
$c_inisett_tab_disp = "#bbbbbb";
$c_libero_tab_disp = "#0cc80c";
$c_occupato_tab_disp = "#f8011e";
$aper_font_tab_disp = "";
$chiu_font_tab_disp = "";
$fr_persone = mex("persone",$pag);
$fr_persona = mex("persona",$pag);
$nome_mese["01"] = mex("Gennaio","giorni_mesi.php");
$nome_mese["02"] = mex("Febbraio","giorni_mesi.php");
$nome_mese["03"] = mex("Marzo","giorni_mesi.php");
$nome_mese["04"] = mex("Aprile","giorni_mesi.php");
$nome_mese["05"] = mex("Maggio","giorni_mesi.php");
$nome_mese["06"] = mex("Giugno","giorni_mesi.php");
$nome_mese["07"] = mex("Luglio","giorni_mesi.php");
$nome_mese["08"] = mex("Agosto","giorni_mesi.php");
$nome_mese["09"] = mex("Settembre","giorni_mesi.php");
$nome_mese["10"] = mex("Ottobre","giorni_mesi.php");
$nome_mese["11"] = mex("Novembre","giorni_mesi.php");
$nome_mese["12"] = mex("Dicembre","giorni_mesi.php");
if ($priv_ins_multiple != "n") $mostra_num_liberi = "SI";
else $mostra_num_liberi = "NO";

if ($mostra_quadro_disp == "reg2") $tar_cons = "";
else $tar_cons = "priv";
trova_app_consentiti_per_tab_disp($app_consentito,$app_consentito_sett,$quadro_non_preciso,$dati_app,$dati_tariffe,$id_data_inizio_tab_disp,$num_colonne_tab_disp,$dati_r2,$attiva_regole1_consentite,0,"",$condizioni_regole1_consentite,$tar_cons,$attiva_tariffe_consentite,fixset($tariffe_consentite_vett),$priv_mod_assegnazione_app,$priv_mod_prenotazioni,$priv_ins_assegnazione_app,$priv_ins_nuove_prenota,$tableregole);

$righe_tab_disp = crea_quadro_disp($id_data_inizio_tab_disp,$num_colonne_tab_disp,$mostra_quadro_disp,$mostra_num_liberi,$app_consentito,$app_consentito_sett,$app_regola2_orig,$tipo_periodi,$dati_tariffe['num'],$nome_tariffa,$dati_app,$prenota_in_app_sett,$app_orig_prenota_id,$tableperiodi,"",$dati_tariffe);

if ($righe_tab_disp) {
echo "<br><div style=\"text-align: center;\"><small>".mex("Quadro indicativo disponibilità",$pag)."";
if ($quadro_non_preciso == "SI") echo " <em>(".mex("potrebbe non essere preciso",$pag).")</em>";
echo "</small>
<div class=\"tab_cont\">
<table class=\"tab_disp\" border=1 cellspacing=0 cellpadding=1 style=\"background-color: $c_sfondo_tab_disp; font-size:70%; text-align: center; margin-left: auto;  margin-right: auto;\">
$righe_tab_disp
</table></div></div>";
} # fine if ($righe_tab_disp)

} # fine if ($mostra_quadro_disp)


} # fine if ($verificare != "NO")


else unlock_tabelle($tabelle_lock);



if (!empty($origine)) {
$action = controlla_pag_origine($origine);
$fr_torna_indietro = mex("Torna indietro",$pag);
} # fine if (!empty($origine))
else {
$action = "inizio.php";
$fr_torna_indietro = mex("Torna al menù principale",$pag);
} # fine else if (!empty($origine))
echo "<br><br><form accept-charset=\"utf-8\" method=\"post\" action=\"$action\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<button class=\"bkmm\" type=\"submit\"><div>$fr_torna_indietro</div></button>
</div></form><br><br>";
if ($verificare != "NO") echo "</div>";


if ($tema[$id_utente] and $tema[$id_utente] != "base" and @is_dir("./themes/".$tema[$id_utente]."/php")) include("./themes/".$tema[$id_utente]."/php/foot.php");
else include("./includes/foot.php");


} # fine if ($anno_utente_attivato == "SI" and ($priv_ins_nuove_prenota == "s" or $priv_vedi_tab_mesi != "n" or $priv_vedi_tab_prenotazioni != "n"))
} # fine if ($id_utente)



?>
