<?php ################################################################################## # HOTELDRUID # Copyright (C) 2001-2009 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/>. ################################################################################## function trova_app_consentiti (&$appartamenti,$num_appartamenti,$attiva_regole1_consentite,$regole1_consentite,$priv_mod_assegnazione_app,$priv_mod_prenotazioni,$priv_ins_assegnazione_app,$priv_ins_nuove_prenota,$attiva_tariffe_consentite,$tariffe_consentite_vett,$id_utente,$tableregole,$tablenometariffe) { if (@is_array($priv_ins_nuove_prenota)) { $attiva_regole1_consentite_gr = $attiva_regole1_consentite; $regole1_consentite_gr = $regole1_consentite; $priv_mod_assegnazione_app_gr = $priv_mod_assegnazione_app; $priv_mod_prenotazioni_gr = $priv_mod_prenotazioni; $priv_ins_assegnazione_app_gr = $priv_ins_assegnazione_app; $priv_ins_nuove_prenota_gr = $priv_ins_nuove_prenota; $attiva_tariffe_consentite_gr = $attiva_tariffe_consentite; $tariffe_consentite_vett_gr = $tariffe_consentite_vett; } # fine if (@is_array($priv_ins_nuove_prenota)) else { $attiva_regole1_consentite_gr[$id_utente] = $attiva_regole1_consentite; $regole1_consentite_gr[$id_utente] = $regole1_consentite; $priv_mod_assegnazione_app_gr[$id_utente] = $priv_mod_assegnazione_app; $priv_mod_prenotazioni_gr[$id_utente] = $priv_mod_prenotazioni; $priv_ins_assegnazione_app_gr[$id_utente] = $priv_ins_assegnazione_app; $priv_ins_nuove_prenota_gr[$id_utente] = $priv_ins_nuove_prenota; $attiva_tariffe_consentite_gr[$id_utente] = $attiva_tariffe_consentite; $tariffe_consentite_vett_gr[$id_utente] = $tariffe_consentite_vett; } # fine else if (@is_array($priv_ins_nuove_prenota)) unset($appartamenti_consentiti); for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1++) { $id_appartamento = risul_query($appartamenti,$num1,'idappartamenti'); $appartamenti_consentiti[$id_appartamento] = "NO"; } # fine for $num1 foreach ($priv_ins_nuove_prenota_gr as $idut_gr => $val) { $condizioni_regole1_consentite = ""; $appartamenti_consentiti_regola1 = array(); $appartamenti_consentiti_regola2 = array(); $attiva_regole1_consentite = $attiva_regole1_consentite_gr[$idut_gr]; $regole1_consentite = $regole1_consentite_gr[$idut_gr]; $priv_mod_assegnazione_app = $priv_mod_assegnazione_app_gr[$idut_gr]; $priv_mod_prenotazioni = $priv_mod_prenotazioni_gr[$idut_gr]; $priv_ins_assegnazione_app = $priv_ins_assegnazione_app_gr[$idut_gr]; $priv_ins_nuove_prenota = $priv_ins_nuove_prenota_gr[$idut_gr]; $attiva_tariffe_consentite = $attiva_tariffe_consentite_gr[$idut_gr]; $tariffe_consentite_vett = $tariffe_consentite_vett_gr[$idut_gr]; if ($attiva_regole1_consentite != "n") { for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1++) { $id_appartamento = risul_query($appartamenti,$num1,'idappartamenti'); $appartamenti_consentiti_regola1[$id_appartamento] = "NO"; } # fine for $num1 if (is_array($regole1_consentite)) { for ($num1 = 0 ; $num1 < count($regole1_consentite) ; $num1++) if ($regole1_consentite[$num1]) $condizioni_regole1_consentite .= "motivazione = '".$regole1_consentite[$num1]."' or "; } # fine if (is_array($regole1_consentite)) if ($condizioni_regole1_consentite) { $condizioni_regole1_consentite = "(".str_replace("motivazione = ' '","motivazione = '' or motivazione is null",substr($condizioni_regole1_consentite,0,-4)).")"; $appartamenti_regola1 = esegui_query("select idregole,iddatainizio,iddatafine,app_agenzia from $tableregole where $condizioni_regole1_consentite order by app_agenzia"); for ($num1 = 0 ; $num1 < numlin_query($appartamenti_regola1) ; $num1++) { $id_appartamento = risul_query($appartamenti_regola1,$num1,'app_agenzia'); $appartamenti_consentiti_regola1[$id_appartamento] = "SI"; } # fine for $num1 } # fine if ($condizioni_regole1_consentite) } # fine if ($attiva_regole1_consentite != "n") if (($priv_mod_assegnazione_app != "s" or $priv_mod_prenotazioni != "s") and ($priv_ins_assegnazione_app != "s" or $priv_ins_nuove_prenota != "s")) { $tutti_app_consentiti = "NO"; $rigatariffe = esegui_query("select * from $tablenometariffe where idntariffe = 1 "); $numero_tariffe = risul_query($rigatariffe,0,'nomecostoagg'); for ($numtariffa = 1 ; $numtariffa <= $numero_tariffe ; $numtariffa++) { if ($attiva_tariffe_consentite == "n" or isset($tariffe_consentite_vett[$numtariffa])) { $tariffa = "tariffa".$numtariffa; $regola2 = esegui_query("select motivazione from $tableregole where tariffa_per_app = '$tariffa'"); if (numlin_query($regola2) == 0) { $tutti_app_consentiti = "SI"; break; } # fine if (numlin_query($regola2) == 0) else { $appartamenti_regola2 = explode(",",risul_query($regola2,0,"motivazione")); for ($num1 = 0 ; $num1 < count($appartamenti_regola2) ; $num1++) $appartamenti_consentiti_regola2[$appartamenti_regola2[$num1]] = "SI"; } # fine else if (numlin_query($regola2) == 0) } # fine if ($attiva_tariffe_consentite == "n" or isset($tariffe_consentite_vett[$numtariffa])) } # fine for $numtariffa if ($tutti_app_consentiti != "SI") { for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1++) { $id_appartamento = risul_query($appartamenti,$num1,'idappartamenti'); if ($appartamenti_consentiti_regola2[$id_appartamento] != "SI") $appartamenti_consentiti_regola2[$id_appartamento] = "NO"; } # fine for $num1 } # fine if ($tutti_app_consentiti != "SI") } # fine if (($priv_mod_assegnazione_app != "s" or... for ($num1 = 0 ; $num1 < $num_appartamenti ; $num1++) { $id_appartamento = risul_query($appartamenti,$num1,'idappartamenti'); if ((!isset($appartamenti_consentiti_regola1[$id_appartamento]) or $appartamenti_consentiti_regola1[$id_appartamento] != "NO") and (!isset($appartamenti_consentiti_regola2[$id_appartamento]) or $appartamenti_consentiti_regola2[$id_appartamento] != "NO")) $appartamenti_consentiti[$id_appartamento] = "SI"; } # fine for $num1 } # fine foreach ($priv_ins_nuove_prenota_gr as $idut_gr => $val) return $appartamenti_consentiti; } # fine function trova_app_consentiti ?> |