<?php ################################################################################## # PHP-RESIDENCE # 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_prenota_succ ($anno,$d_id_data_fine,$PHPR_TAB_PRE,$id_prenota,&$fineperiodo_succ) { $fineperiodo_succ = ""; $d_data_fine = esegui_query("select datafine from ".$PHPR_TAB_PRE."periodi".$anno." where idperiodi = '$d_id_data_fine'"); $d_data_fine = risul_query($d_data_fine,0,'datafine'); if (substr($d_data_fine,0,4) != $anno) { $anno_succ_esistente = esegui_query("select idanni from ".$PHPR_TAB_PRE."anni where idanni = '".($anno + 1)."'"); if (numlin_query($anno_succ_esistente) == 1) { $id_prenota_succ = "soloanno"; $data_succ_esistente = esegui_query("select idperiodi from $PHPR_TAB_PRE"."periodi".($anno + 1)." where datafine <= '$d_data_fine'"); if (numlin_query($data_succ_esistente) >= 1) { $prenota_succ = esegui_query("select idprenota,iddatafine from $PHPR_TAB_PRE"."prenota".($anno + 1)." where iddatainizio = '0' and commento = '$id_prenota'"); if (numlin_query($prenota_succ) == 1) { $id_prenota_succ = risul_query($prenota_succ,0,'idprenota'); $fineperiodo_succ = risul_query($prenota_succ,0,'iddatafine'); } # fine if (numlin_query($prenota_in_anno_succ) == 1) } # fine if (numlin_query($data_succ_esistente) >= 1) } # fine if (numlin_query($anno_succ_esistente) == 1) } # fine if (substr($d_data_fine,0,4) != $anno) return $id_prenota_succ; } # fine function trova_prenota_succ function trova_prenota_prec ($anno,$d_id_data_inizio,$PHPR_TAB_PRE,$dati_prenota_modifica,&$n_dati_prenota_modifica) { $n_dati_prenota_modifica = ""; if ($d_id_data_inizio == 0) { $id_prenota_prec = "SI"; $id_prenota_prec_esist = aggslashdb(risul_query($dati_prenota_modifica,0,'commento')); if ($id_prenota_prec_esist) { $anno_prec_esistente = esegui_query("select idanni from ".$PHPR_TAB_PRE."anni where idanni = '".($anno - 1)."'"); if (numlin_query($anno_prec_esistente) == 1) { $n_dati_prenota_modifica = esegui_query("select * from $PHPR_TAB_PRE"."prenota".($anno - 1)." where idprenota = '$id_prenota_prec_esist'"); if (numlin_query($n_dati_prenota_modifica) == 1) $id_prenota_prec = $id_prenota_prec_esist; } # fine if (numlin_query($anno_prec_esistente) == 1) } # fine if ($id_prenota_prec_esist) } # fine if ($d_id_data_inizio == 0) return $id_prenota_prec; } # fine function trova_prenota_prec function cancella_prenotazione ($id_prenota,$cancella_pagato,$metodo_pagamento,$priv_mod_pagato,$lock,$anno,$PHPR_TAB_PRE,$id_utente,&$stato_canc) { $pag = "modifica_prenota.php"; $tableprenota = $PHPR_TAB_PRE."prenota".$anno; $tableperiodi = $PHPR_TAB_PRE."periodi".$anno; $tablesoldi = $PHPR_TAB_PRE."soldi".$anno; $tableanni = $PHPR_TAB_PRE."anni"; $tablepersonalizza = $PHPR_TAB_PRE."personalizza"; $tablecostiprenota = $PHPR_TAB_PRE."costiprenota".$anno; $tablerclientiprenota = $PHPR_TAB_PRE."rclientiprenota".$anno; $tableinterconnessioni = $PHPR_TAB_PRE."interconnessioni"; $continua_canc = "SI"; $tabelle_lock = array("$tableprenota","$tablecostiprenota","$tablerclientiprenota","$tablesoldi","$tableinterconnessioni"); $altre_tab_lock = array("$tableanni","$tableperiodi","$tablepersonalizza"); $dati_prenota = esegui_query("select * from $tableprenota where idprenota = '$id_prenota' and idclienti != '0' "); $num_dati_prenota = numlin_query($dati_prenota); if ($num_dati_prenota == 0) { $testo .= mex("La prenotazione",$pag)." $id_prenota ".mex("era già stata cancellata",$pag)."!<br>"; $continua_canc = "NO"; } # fine if ($num_dati_prenota == 0) # Controlli per vedere se la prenotazione è anche nell'anno precedente o successivo if ($continua_canc != "NO") { $id_prenota_succ = ""; $id_prenota_orig = ""; $d_id_data_inizio = risul_query($dati_prenota,0,'iddatainizio'); $d_id_data_fine = risul_query($dati_prenota,0,'iddatafine'); $id_prenota_succ = trova_prenota_succ($anno,$d_id_data_fine,$PHPR_TAB_PRE,$id_prenota,$fineperiodo_succ); if ($id_prenota_succ == "soloanno") $id_prenota_succ = ""; if ($id_prenota_succ) { $tableprenota_succ = $PHPR_TAB_PRE."prenota".($anno + 1); $tablecostiprenota_succ = $PHPR_TAB_PRE."costiprenota".($anno + 1); $tablerclientiprenota_succ = $PHPR_TAB_PRE."rclientiprenota".($anno + 1); } # fine if ($id_prenota_succ) $id_prenota_prec = trova_prenota_prec($anno,$d_id_data_inizio,$PHPR_TAB_PRE,$dati_prenota,$n_dati_prenota_modifica); if ($id_prenota_prec == "SI") $id_prenota_prec = ""; if ($id_prenota_prec) { $id_prenota_succ = $id_prenota; $id_prenota = $id_prenota_prec; $tableprenota_succ = $tableprenota; $tablecostiprenota_succ = $tablecostiprenota; $tablerclientiprenota_succ = $tablerclientiprenota; $tableprenota = $PHPR_TAB_PRE."prenota".($anno - 1); $tablecostiprenota = $PHPR_TAB_PRE."costiprenota".($anno - 1); $tablerclientiprenota = $PHPR_TAB_PRE."rclientiprenota".($anno - 1); $tablesoldi = $PHPR_TAB_PRE."soldi".($anno - 1); } # fine if ($id_prenota_prec) if ($id_prenota_succ) { $tabelle_lock = array("$tableprenota","$tableprenota_succ","$tablecostiprenota","$tablecostiprenota_succ","$tablerclientiprenota","$tablerclientiprenota_succ","$tablesoldi","$tableinterconnessioni"); $altre_tab_lock = array("$tablepersonalizza"); } # fine if ($id_prenota_succ) } # fine if ($continua_canc != "NO") if ($lock) $tabelle_lock = lock_tabelle($tabelle_lock,$altre_tab_lock); else $tabelle_lock = ""; $dati_prenota = esegui_query("select * from $tableprenota where idprenota = '$id_prenota' and idclienti != '0'"); $num_dati_prenota = numlin_query($dati_prenota); if ($num_dati_prenota == 0 and $continua_canc != "NO") { $testo .= mex("La prenotazione",$pag)." $id_prenota ".mex("era già stata cancellata",$pag)."!<br>"; $continua_canc = "NO"; } # fine if ($num_dati_prenota == 0 and $continua_canc != "NO") if ($continua_canc != "NO") { $d_pagato = risul_query($dati_prenota,0,pagato); if ($d_pagato != 0) { if ($cancella_pagato and $priv_mod_pagato == "s") { if (get_magic_quotes_gpc()) $metodo_pagamento = (string) stripslashes($metodo_pagamento); $metodo_pagamento = htmlspecialchars($metodo_pagamento); if ($metodo_pagamento != "") { $metodi_pagamento = esegui_query("select valpersonalizza from $tablepersonalizza where idpersonalizza = 'metodi_pagamento' and idutente = '$id_utente'"); $metodi_pagamento = risul_query($metodi_pagamento,0,'valpersonalizza'); $metodi_pagamento = explode(",",$metodi_pagamento); $metodo_trovato = "NO"; for ($num1 = 0 ; $num1 < count($metodi_pagamento) ; $num1++) if ($metodi_pagamento[$num1] == $metodo_pagamento) $metodo_trovato = "SI"; if ($metodo_trovato == "NO") $metodo_pagamento = ""; } # fine if ($metodo_pagamento != "") $metodo_pagamento = aggslashdb($metodo_pagamento); $datainserimento_saldo = date("Y-m-d H:i:s",(time() + (C_DIFF_ORE * 3600))); $motivazione_saldo = risul_query($dati_prenota,0,'idclienti'); $d_idinizioprenota = risul_query($dati_prenota,0,'iddatainizio'); $d_idfineprenota = risul_query($dati_prenota,0,'iddatafine'); $motivazione_saldo .= ";$d_idinizioprenota;$d_idfineprenota;$id_prenota"; $saldo = 0 - $d_pagato; $idsoldi = esegui_query("select max(idsoldi) from $tablesoldi"); $idsoldi = risul_query($idsoldi,0,0) + 1; esegui_query("insert into $tablesoldi (idsoldi,motivazione,saldo_prenota,soldi_prima,data_inserimento,metodo_pagamento,utente_inserimento) values ('$idsoldi','$motivazione_saldo','$saldo','$d_pagato','$datainserimento_saldo','$metodo_pagamento','$id_utente')"); } # fine if ($cancella_pagato and $priv_mod_pagato == "s") else { $soldi_prenota_cancellate = esegui_query("select * from $tablesoldi where idsoldi = 1"); $soldi_prenota_cancellate = risul_query($soldi_prenota_cancellate,0,'soldi_prima'); $soldi_prenota_cancellate = $soldi_prenota_cancellate + $d_pagato; esegui_query("update $tablesoldi set soldi_prima = '$soldi_prenota_cancellate' where idsoldi = 1"); } # fine else if ($cancella_pagato and $priv_mod_pagato == "s") } # fine if ($d_pagato != 0) $d_prenota_comp = aggslashdb(risul_query($dati_prenota,0,'idprenota_compagna')); if ($d_prenota_comp) { $d_prenota_comp_vett = explode(",",$d_prenota_comp); for ($num1 = 0 ; $num1 < count($d_prenota_comp_vett) ; $num1++) { $idprenota_compagna = substr(str_replace(",".$d_prenota_comp_vett[$num1].",",",",",$d_prenota_comp,"),1,-1); esegui_query("update $tableprenota set idprenota_compagna = '$idprenota_compagna' where idprenota = '".$d_prenota_comp_vett[$num1]."' "); } # fine for $num1 } # fine if ($d_prenota_comp) esegui_query("delete from $tableprenota where idprenota = '$id_prenota'"); esegui_query("delete from $tablecostiprenota where idprenota = '$id_prenota'"); esegui_query("delete from $tablerclientiprenota where idprenota = '$id_prenota'"); if ($id_prenota_succ) { esegui_query("delete from $tableprenota_succ where idprenota = '$id_prenota_succ'"); esegui_query("delete from $tablecostiprenota_succ where idprenota = '$id_prenota_succ'"); esegui_query("delete from $tablerclientiprenota_succ where idprenota = '$id_prenota_succ'"); if ($d_id_data_inizio == 0 and $id_prenota_prec) { esegui_query("delete from $tableinterconnessioni where idlocale = '$id_prenota' and tipoid = 'prenota' and anno = '".($anno - 1)."' "); esegui_query("delete from $tableinterconnessioni where idlocale = '$id_prenota_succ' and tipoid = 'prenota' and anno = '$anno' "); $id_prenota = $id_prenota_succ; } # fine if ($d_id_data_inizio == 0 and $id_prenota_prec) else { esegui_query("delete from $tableinterconnessioni where idlocale = '$id_prenota' and tipoid = 'prenota' and anno = '$anno' "); esegui_query("delete from $tableinterconnessioni where idlocale = '$id_prenota_succ' and tipoid = 'prenota' and anno = '".($anno + 1)."' "); } # fine else if ($d_id_data_inizio == 0 and $id_prenota_prec) } # fine if ($id_prenota_succ) else esegui_query("delete from $tableinterconnessioni where idlocale = '$id_prenota' and tipoid = 'prenota' and anno = '$anno' "); $testo .= mex("Prenotazione",$pag)." $id_prenota ".mex("cancellata",$pag)."!<br>"; } # fine if ($continua_canc != "NO") $stato_canc = $continua_canc; if ($tabelle_lock) unlock_tabelle($tabelle_lock); return $testo; } # fine function cancella_prenotazione ?> |