Ejemplo n.º 1
0
     } else {
         echo "{$frase_app_incomp_costi}.<br>";
     }
     if (!$mostra_non_disp) {
         $liberato = "NO";
         echo "<br><form accept-charset=\"utf-8\" method=\"post\" action=\"disponibilita.php\"><div>\n<input type=\"hidden\" name=\"anno\" value=\"{$anno}\">\n<input type=\"hidden\" name=\"id_sessione\" value=\"{$id_sessione}\">\n<input type=\"hidden\" name=\"inizioperiodo\" value=\"{$data_inizioperiodo}\">\n<input type=\"hidden\" name=\"fineperiodo\" value=\"{$data_fineperiodo}\">\n<input type=\"hidden\" name=\"numpersone\" value=\"{$numpersone}\">\n<input type=\"hidden\" name=\"mostra_non_disp\" value=\"1\">\n{$dati_email}\n<input class=\"sbutton\" type=\"submit\" name=\"agg_costo\" value=\"" . mex("Mostra le tariffe non disponibili", $pag) . "\">\n</div></form><br>";
     }
     # fine if (!$mostra_non_disp)
 }
 # fine else if ($fatto_libera == "SI")
 if ($liberato != "SI" and !$num_persone_casa and !$controlla_tariffe and $app_richiesti[',numero,'] == 1 and !$app_incomp_costi) {
     $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 !$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);
 if ($liberato == "SI") {
     $form_regola2 = "NO";
     $lunghezza_perioido = $fineperiodo - $inizioperiodo + 1;
     echo "<br>" . mex("Periodo di", $pag) . " <b>{$lunghezza_perioido}</b> ";
     if ($lunghezza_perioido == 1) {
Ejemplo n.º 2
0
function spezzaprenota ($idinizio,$idfine,$anno,&$limiti_var,$profondita,&$n_tronchi,&$vet_appartamenti,&$vett_idinizio,&$vett_idfine,$num_persone,&$app_prenota_id,&$app_orig_prenota_id,&$inizio_prenota_id,&$fine_prenota_id,&$app_assegnabili_id,&$prenota_in_app_sett,&$dati_app,$nome_tab_prenota = "prenota") {
global $debug;

$limiti_var['n_ini'] = $idinizio;
$limiti_var['n_fine'] = $idfine;
if (!is_array($profondita)) {
$primo_ciclo = "SI";
$prof_copia = $profondita;
$profondita = "";
$profondita['iniziale'] = $prof_copia;
$profondita['attuale'] = $prof_copia;
$tableprenota = $nome_tab_prenota . $anno . $profondita['iniziale'];
$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,$nome_tab_prenota);
} # fine if (!is_array($profondita))

if (!$n_tronchi) $n_tronchi = 0;

# ciclo da ripetere per ogni appartamento che non inizia con una
# prenotazione fissa, non spostabile o con $maxoccupanti troppo basso
$numsettimane = $idfine - $idinizio + 1;
$n_tronchi3 = -1;
if ($limiti_var['tutti_fissi'] != "SI" and $limiti_var['t_limite'] >= time()) {

for ($num1 = 0 ; $num1 < $dati_app['totapp'] ; $num1++) {
$numapp = $dati_app['posizione'][$num1];
if ($dati_app['maxocc'][$numapp] >= $num_persone) {
$prima_prenota = prenota_in_app_e_periodo($numapp,$idinizio,$idinizio,$prenota_in_app_sett,$fine_prenota_id,$num_pp);
if ($num_pp != 0) $idprima_prenota = $prima_prenota[1];
else $idprima_prenota = "";
if (!$idprima_prenota or $app_assegnabili_id[$idprima_prenota]) {
$limiti_var_orig = $limiti_var;
$nuova_profondita = $profondita;
$nuova_profondita['attuale'] = $profondita['attuale'] + 1;
$app_prenota_id2 = $app_prenota_id;
$prenota_in_app_sett2 = $prenota_in_app_sett;
$ap_ric = "";
$ap_ric[$numapp] = "SI";
$n_tronchi2 = $n_tronchi;
$vet_appartamenti2 = $vet_appartamenti;
$vett_idinizio2 = $vett_idinizio;
$vett_idfine2 = $vett_idfine;

for ($num2 = 0 ; $num2 < $numsettimane ; $num2 = $num2 + 1) {
$id_settimana = $idinizio + $num2;
$fatto_libera = "";
if ($debug == "on") {
for ($i = 0 ; $i < $profondita['attuale'] ; $i++) echo "&nbsp;&nbsp;";
echo "<b>".$profondita['attuale']."</b> <em>".date("H:i:s")."</em> spezz_libera  da $id_settimana a $id_settimana negli app ".implode(",",array_keys($ap_ric))."<br>";
} # fine if ($debug == "on")
liberasettimane($id_settimana,$id_settimana,$limiti_var,$anno,$fatto_libera,$app_liber,$nuova_profondita,$ap_ric,$app_prenota_id2,$app_orig_prenota_id,$inizio_prenota_id,$fine_prenota_id,$app_assegnabili_id,$prenota_in_app_sett2,$dati_app,$nome_tab_prenota);
if ($debug == "on") {
for ($i = 0 ; $i < $profondita['attuale'] ; $i++) echo "&nbsp;&nbsp;";
echo "<b>".$profondita['attuale']."</b> finito <em>".date("H:i:s")."</em> spezz_lib $fatto_libera $app_liber<br>";
} # fine if ($debug == "on")
if ($fatto_libera == "SI") {
$nuova_profondita['tot_prenota_attuale']++;
$app_prenota_id2[$nuova_profondita['tot_prenota_attuale']] = $numapp;
$inizio_prenota_id[$nuova_profondita['tot_prenota_attuale']] = $id_settimana;
$fine_prenota_id[$nuova_profondita['tot_prenota_attuale']] = $id_settimana;
$prenota_in_app_sett2[$numapp][$id_settimana] = $nuova_profondita['tot_prenota_attuale'];
} # fine if ($fatto_libera == "SI")
else break;
} # fine for $num2

if ($fatto_libera == "SI" or $id_settimana != $idinizio) {

$n_tronchi2 = $n_tronchi2 + 1;
$vet_appartamenti2[$n_tronchi2] = $numapp;
$vett_idinizio2[$n_tronchi2] = $idinizio;
$vett_idfine2[$n_tronchi2] = $idfine;
if ($fatto_libera != "SI") {
$idfine2 = $id_settimana - 1;
$vett_idfine2[$n_tronchi2] = $idfine2;
if ($debug == "on") {
for ($i = 0 ; $i < $profondita['attuale'] ; $i++) echo "&nbsp;&nbsp;";
echo "<b>".$profondita['attuale']."</b> <em>".date("H:i:s")."</em> spezza  da $id_settimana a $idfine<br>";
} # fine if ($debug == "on")
spezzaprenota($id_settimana,$idfine,$anno,$limiti_var,$nuova_profondita,$n_tronchi2,$vet_appartamenti2,$vett_idinizio2,$vett_idfine2,$num_persone,$app_prenota_id2,$app_orig_prenota_id,$inizio_prenota_id,$fine_prenota_id,$app_assegnabili_id,$prenota_in_app_sett2,$dati_app,$nome_tab_prenota);
if ($debug == "on") {
for ($i = 0 ; $i < $profondita['attuale'] ; $i++) echo "&nbsp;&nbsp;";
echo "<b>".$profondita['attuale']."</b> finito <em>".date("H:i:s")."</em> spezza $fatto_libera $app_liber<br>";
} # fine if ($debug == "on")
if ($n_tronchi2 == -1) { break; }
} # fine if ($fatto_libera != "SI")

if ($n_tronchi3 == -1 or $n_tronchi2 < $n_tronchi3) {
$n_tronchi3 = $n_tronchi2;
$vet_appartamenti3 = $vet_appartamenti2;
$vett_idinizio3 = $vett_idinizio2;
$vett_idfine3 = $vett_idfine2;
for ($num2 = ($profondita['tot_prenota_attuale'] + 1) ; $num2 <= $nuova_profondita['tot_prenota_attuale'] ; $num2++) {
$app_prenota_id2[$num2] = "";
for ($num3 = $inizio_prenota_id[$num2] ; $num3 <= $fine_prenota_id[$num2] ; $num3++) {
$prenota_in_app_sett2[$numapp][$num3] = "";
} # fine for $num3
} # fine for $num2
$app_prenota_id_mod = $app_prenota_id2;
$prenota_in_app_sett_mod = $prenota_in_app_sett2;
} # fine if (!$n_tronchi3 or $n_tronchi2 < $n_tronchi3)

if ($n_tronchi3 == 1) break;

} # fine if ($fatto_libera == "SI" or $idsettimana != $idinizio)

for ($num2 = ($profondita['tot_prenota_attuale'] + 1) ; $num2 <= $nuova_profondita['tot_prenota_attuale'] ; $num2++) {
$inizio_prenota_id[$num2] = "";
$fine_prenota_id[$num2] = "";
} # fine for $num2
aggiorna_app_aggiunti($limiti_var,$limiti_var_orig,$app_orig_prenota_id,$app_prenota_id,$inizio_prenota_id,$fine_prenota_id,$prenota_in_app_sett);

} # fine if (!$idprima_prenota or $app_assegnabili_id[$idprima_prenota])
} # fine if ($dati_app['maxocc'][$numapp] >= $num_persone)
} # fine for $num1

} # fine if ($limiti_var['tutti_fissi'] != "SI" and...

$n_tronchi = $n_tronchi3;
if ($n_tronchi != -1) {
$vet_appartamenti = $vet_appartamenti3;
$vett_idinizio = $vett_idinizio3;
$vett_idfine = $vett_idfine3;
$app_prenota_id = $app_prenota_id_mod;
$prenota_in_app_sett = $prenota_in_app_sett_mod;
if ($primo_ciclo == "SI") {
$risul_agg = aggiorna_tableprenota($app_prenota_id,$app_orig_prenota_id,$tableprenota);
if (!$risul_agg) $n_tronchi = -1;
} # fine if ($primo_ciclo == "SI")
} # fine if ($n_tronchi != -1)

} # fine function spezzaprenota