) : ""; my $belegung = qq($zimmerdata->{minpers} - $zimmerdata->{maxpers} Personen); $belegung = qq($zimmerdata->{minpers} Personen) if $zimmerdata->{minpers} == $zimmerdata->{maxpers}; $belegung = qq($zimmerdata->{minpers} Person) if $zimmerdata->{maxpers} == 1; $out .= qq(
<% require "se_travel.pl"; my $parameter = &vermittlung_encode_parameter; my $out = &vermittlung_decode_parameter($parameter); return qq(
$out

); %> <% # alle zimmer zeigen my $sth = $TRAVEL{database}->prepare(qq( SELECT travel_zimmer.zid, travel_zimmer.name AS name, travel_zimmer.typ, travel_zimmer.maxpers, travel_preisgruppe.name AS preisgruppe, MIN( IF(travel_zimmer.minpers = 2, travel_zeitraum.preis2, travel_zeitraum.preis1) ) AS min_preis, MAX( IF(travel_zimmer.minpers = 2, travel_zeitraum.preis2, travel_zeitraum.preis1) ) AS max_preis, MIN(travel_zeitraum.min) AS min_belegung, MAX(travel_zeitraum.min) AS max_belegung, travel_zimmer.merkmale, travel_zimmer.minpers, MIN(travel_zeitraum.verpflegung_ohne) AS min_ohne, MAX(travel_zeitraum.verpflegung_ohne) AS max_ohne, MIN(travel_zeitraum.verpflegung_uf) AS min_uf, MAX(travel_zeitraum.verpflegung_uf) AS max_uf, MIN(travel_zeitraum.verpflegung_hp) AS min_hp, MAX(travel_zeitraum.verpflegung_hp) AS max_hp, MIN(travel_zeitraum.verpflegung_vp) AS min_vp, MAX(travel_zeitraum.verpflegung_vp) AS max_vp, travel_zimmer.flaeche, travel_zimmer.endreinigung, travel_zimmer.bild, travel_zimmer.text FROM travel_zimmer LEFT JOIN travel_preisgruppe ON travel_preisgruppe.pid=travel_zimmer.preisgruppe LEFT JOIN travel_zeitraum ON travel_zeitraum.pid=travel_preisgruppe.pid WHERE travel_zimmer.gid='$in{gid}' AND travel_zimmer.zid='$in{zid}' GROUP BY travel_zimmer.zid ORDER BY travel_zimmer.typ, LPAD(travel_zimmer.name,25,"0") ASC ) ); $sth->execute || &mysql_error($sth); my $zimmer; my $old_zimmertyp; my $zimmerdata = $sth->fetchrow_hashref; ## . . . . . . . . . . . . . . . . . . . . . . . . . . . ## mache eine auflistung der merkmale #my @merkmale; #my $sth2 = $TRAVEL{database}->prepare("SELECT id, name, gruppe FROM travel_merkmale WHERE gid='1' AND FIND_IN_SET('zimmer',verwendung) ORDER BY name"); #$sth2->execute; #while (my $merkmal = $sth2->fetchrow_arrayref) { # if ( substr($zimmerdata->{merkmale},$$merkmal[0]-1,1) eq "1") { # push @merkmale, $$merkmal[1]; # } #} #my $merkmale = join ", ",@merkmale; ## . . . . . . . . . . . . . . . . . . . . . . . . . . . my $merkmale = getMerkmale( format => "LISTE", online => 1, zimmer => $in{zid}, order_by => "gruppe", ); $out .= qq( ); my $bildspalte = -s "../se_data/_filebank/$zimmerdata->{bild}" && $zimmerdata->{bild} ? qq(

$bildspalte ); $out .= qq( ) if $zimmerdata->{flaeche}; $out .= qq(
$LANG{Information}
$LANG{Zimmer} $zimmerdata->{name}
$LANG{Zimmerart} $TRAVEL{zimmertypen}->{ $zimmerdata->{typ} }
$LANG{Flaeche} $zimmerdata->{flaeche} m²
$LANG{Belegung} $belegung
$LANG{Beschreibung}> $zimmerdata->{text}
$LANG{Merkmale} $merkmale
); # ------------------------------------------- # # Preisinformation visualisieren # # ------------------------------------------- my $filter_anfrage; $filter_anfrage = qq( AND ( ( TO_DAYS(travel_zeitraum.von) <= TO_DAYS(FROM_UNIXTIME($in{feld_von_epoche})) AND TO_DAYS(travel_zeitraum.bis) >= TO_DAYS(FROM_UNIXTIME($in{feld_von_epoche})) ) OR ( TO_DAYS(travel_zeitraum.von) <= TO_DAYS(FROM_UNIXTIME($in{feld_bis_epoche})) AND TO_DAYS(travel_zeitraum.bis) >= TO_DAYS(FROM_UNIXTIME($in{feld_bis_epoche})) ) ) ) unless $in{off_zeitraum}; my $sth = $TRAVEL{database}->prepare( qq( SELECT travel_zimmer.minpers AS belegung_min, travel_zimmer.maxpers AS belegung_max, DATE_FORMAT(travel_zeitraum.von,'%d.%m.%Y') AS zeitraum_von, DATE_FORMAT(travel_zeitraum.bis,'%d.%m.%Y') AS zeitraum_bis, IF ( "$in{intage}" >= travel_zeitraum.min, travel_zeitraum.min, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D THEN travel_zeitraum.min_D WHEN "$in{intage}" >= travel_zeitraum.min_C THEN travel_zeitraum.min_C WHEN "$in{intage}" >= travel_zeitraum.min_B THEN travel_zeitraum.min_B WHEN "$in{intage}" >= travel_zeitraum.min_A THEN travel_zeitraum.min_A ELSE travel_zeitraum.min END ) AS mindestaufenthalt, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D AND min_D IS NOT NULL AND min_D > 0 THEN travel_zeitraum.preis1_D WHEN "$in{intage}" >= travel_zeitraum.min_C AND min_C IS NOT NULL AND min_C > 0 THEN travel_zeitraum.preis1_C WHEN "$in{intage}" >= travel_zeitraum.min_B AND min_B IS NOT NULL AND min_B > 0 THEN travel_zeitraum.preis1_B WHEN "$in{intage}" >= travel_zeitraum.min_A AND min_A IS NOT NULL AND min_A > 0 THEN travel_zeitraum.preis1 ELSE travel_zeitraum.preis1 END AS preis1, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D AND min_D IS NOT NULL AND min_D > 0 THEN travel_zeitraum.preis2_D WHEN "$in{intage}" >= travel_zeitraum.min_C AND min_C IS NOT NULL AND min_C > 0 THEN travel_zeitraum.preis2_C WHEN "$in{intage}" >= travel_zeitraum.min_B AND min_B IS NOT NULL AND min_B > 0 THEN travel_zeitraum.preis2_B WHEN "$in{intage}" >= travel_zeitraum.min_A AND min_A IS NOT NULL AND min_A > 0 THEN travel_zeitraum.preis2 ELSE travel_zeitraum.preis2 END AS preis2, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D AND min_D IS NOT NULL AND min_D > 0 THEN travel_zeitraum.preis3_D WHEN "$in{intage}" >= travel_zeitraum.min_C AND min_C IS NOT NULL AND min_C > 0 THEN travel_zeitraum.preis3_C WHEN "$in{intage}" >= travel_zeitraum.min_B AND min_B IS NOT NULL AND min_B > 0 THEN travel_zeitraum.preis3_B WHEN "$in{intage}" >= travel_zeitraum.min_A AND min_A IS NOT NULL AND min_A > 0 THEN travel_zeitraum.preis3 ELSE travel_zeitraum.preis3 END AS preis3, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D AND min_D IS NOT NULL AND min_D > 0 THEN travel_zeitraum.preis4_D WHEN "$in{intage}" >= travel_zeitraum.min_C AND min_C IS NOT NULL AND min_C > 0 THEN travel_zeitraum.preis4_C WHEN "$in{intage}" >= travel_zeitraum.min_B AND min_B IS NOT NULL AND min_B > 0 THEN travel_zeitraum.preis4_B WHEN "$in{intage}" >= travel_zeitraum.min_A AND min_A IS NOT NULL AND min_A > 0 THEN travel_zeitraum.preis4 ELSE travel_zeitraum.preis4 END AS preis4, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D AND min_D IS NOT NULL AND min_D > 0 THEN travel_zeitraum.preis5_D WHEN "$in{intage}" >= travel_zeitraum.min_C AND min_C IS NOT NULL AND min_C > 0 THEN travel_zeitraum.preis5_C WHEN "$in{intage}" >= travel_zeitraum.min_B AND min_B IS NOT NULL AND min_B > 0 THEN travel_zeitraum.preis5_B WHEN "$in{intage}" >= travel_zeitraum.min_A AND min_A IS NOT NULL AND min_A > 0 THEN travel_zeitraum.preis5 ELSE travel_zeitraum.preis5 END AS preis5, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D AND min_D IS NOT NULL AND min_D > 0 THEN travel_zeitraum.preis6_D WHEN "$in{intage}" >= travel_zeitraum.min_C AND min_C IS NOT NULL AND min_C > 0 THEN travel_zeitraum.preis6_C WHEN "$in{intage}" >= travel_zeitraum.min_B AND min_B IS NOT NULL AND min_B > 0 THEN travel_zeitraum.preis6_B WHEN "$in{intage}" >= travel_zeitraum.min_A AND min_A IS NOT NULL AND min_A > 0 THEN travel_zeitraum.preis6 ELSE travel_zeitraum.preis6 END AS preis6, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D AND min_D IS NOT NULL AND min_D > 0 THEN travel_zeitraum.preis7_D WHEN "$in{intage}" >= travel_zeitraum.min_C AND min_C IS NOT NULL AND min_C > 0 THEN travel_zeitraum.preis7_C WHEN "$in{intage}" >= travel_zeitraum.min_B AND min_B IS NOT NULL AND min_B > 0 THEN travel_zeitraum.preis7_B WHEN "$in{intage}" >= travel_zeitraum.min_A AND min_A IS NOT NULL AND min_A > 0 THEN travel_zeitraum.preis7 ELSE travel_zeitraum.preis7 END AS preis7, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D AND min_D IS NOT NULL AND min_D > 0 THEN travel_zeitraum.preis8_D WHEN "$in{intage}" >= travel_zeitraum.min_C AND min_C IS NOT NULL AND min_C > 0 THEN travel_zeitraum.preis8_C WHEN "$in{intage}" >= travel_zeitraum.min_B AND min_B IS NOT NULL AND min_B > 0 THEN travel_zeitraum.preis8_B WHEN "$in{intage}" >= travel_zeitraum.min_A AND min_A IS NOT NULL AND min_A > 0 THEN travel_zeitraum.preis8 ELSE travel_zeitraum.preis8 END AS preis8, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D AND min_D IS NOT NULL AND min_D > 0 THEN travel_zeitraum.preis9_D WHEN "$in{intage}" >= travel_zeitraum.min_C AND min_C IS NOT NULL AND min_C > 0 THEN travel_zeitraum.preis9_C WHEN "$in{intage}" >= travel_zeitraum.min_B AND min_B IS NOT NULL AND min_B > 0 THEN travel_zeitraum.preis9_B WHEN "$in{intage}" >= travel_zeitraum.min_A AND min_A IS NOT NULL AND min_A > 0 THEN travel_zeitraum.preis9 ELSE travel_zeitraum.preis9 END AS preis9, k1_ohne, k1_uf, k1_hp, k1_vp, k1_alter, k2_ohne, k2_uf, k2_hp, k2_vp, k2_alter, k3_ohne, k3_uf, k3_hp, k3_vp, k3_alter, travel_zeitraum.verpflegung_ohne AS ohne, travel_zeitraum.verpflegung_uf AS uf, travel_zeitraum.verpflegung_hp AS hp, travel_zeitraum.verpflegung_vp AS vp, CASE WHEN "$in{intage}" >= travel_zeitraum.min_D AND min_D IS NOT NULL AND min_D > 0 THEN min_D WHEN "$in{intage}" >= travel_zeitraum.min_C AND min_C IS NOT NULL AND min_C > 0 THEN min_C WHEN "$in{intage}" >= travel_zeitraum.min_B AND min_B IS NOT NULL AND min_B > 0 THEN min_B WHEN "$in{intage}" >= travel_zeitraum.min_A AND min_A IS NOT NULL AND min_A > 0 THEN min_A ELSE travel_zeitraum.min END AS preis_mindestaufenthalt, 1 FROM travel_zimmer LEFT JOIN travel_preisgruppe ON travel_preisgruppe.pid=travel_zimmer.preisgruppe LEFT JOIN travel_zeitraum ON travel_zeitraum.pid=travel_preisgruppe.pid WHERE travel_zimmer.gid='$in{gid}' AND travel_zimmer.zid='$in{zid}' AND travel_zeitraum.bis > NOW() $filter_anfrage ORDER BY travel_zeitraum.von ) ); $sth->execute || &mysql_error($sth); if ($sth->rows) { $out .= qq( ); my $c = 1; while ( my $preise = $sth->fetchrow_hashref ) { my $spalten = 3 + $preise->{belegung_max} - $preise->{belegung_min}; if ($c == 1) { my $preisfelder; for ($preise->{belegung_min} .. $preise->{belegung_max}) { $preisfelder .= qq($_ Person) if $_ == 1; $preisfelder .= qq($_ Personen) if $_ > 1; } $out .= qq(

$preisfelder ); } $out .= qq( ); $html_kinderpreise .= qq( ); my $leistungen; $leistungen++ if $preise->{ohne} ne "" || ($preise->{uf} eq "" && $preise->{vp} ne "" && $preise->{hp} ne ""); $leistungen++ if $preise->{uf} ne ""; $leistungen++ if $preise->{hp} ne ""; $leistungen++ if $preise->{vp} ne ""; my $mindestaufenthalt; $mindestaufenthalt = qq(); $mindestaufenthalt = qq() if $preise->{preis_mindestaufenthalt} == 1; # Grundpreise if ( ($preise->{ohne} ne "") || ($preise->{uf} eq "" && $preise->{vp} eq "" && $preise->{hp} eq "") ) { my $preisfelder; for ($preise->{belegung_min} .. $preise->{belegung_max}) { if ($preise->{"preis" . $_} > 0) { my $preis = sprintf ("%6.2f",$preise->{ohne} * $_ + $preise->{"preis" . $_}); $preis =~ s/\./,/; $preisfelder .= qq(); } else { $preisfelder .= qq(); } } my $preisfelder; for ($preise->{belegung_min} .. $preise->{belegung_max}) { if ($preise->{"preis" . $_} > 0) { my $preis = sprintf ("%6.2f",$preise->{ohne} * $_ + $preise->{"preis" . $_}); $preis =~ s/\./,/; $preisfelder .= qq(); } else { $preisfelder .= qq(); } } my $preisfelder; for ($preise->{belegung_min} .. $preise->{belegung_max}) { if ($preise->{"preis" . $_} > 0) { my $preis = sprintf ("%6.2f",$preise->{ohne} * $_ + $preise->{"preis" . $_}); $preis =~ s/\./,/; $preisfelder .= qq(); } else { $preisfelder .= qq(); } } $out .= qq( $mindestaufenthalt $preisfelder ); $mindestaufenthalt = ""; # flush weil aussgegeben. } # UF if ($preise->{uf} ne "") { my $preisfelder; for ($preise->{belegung_min} .. $preise->{belegung_max}) { if ($preise->{"preis" . $_} > 0) { my $preis = sprintf ("%6.2f",$preise->{uf} * $_ + $preise->{"preis" . $_}); $preis =~ s/\./,/; $preisfelder .= qq(); } else { $preisfelder .= qq(); } } $out .= qq( $mindestaufenthalt $preisfelder ); $mindestaufenthalt = ""; # flush weil aussgegeben. } # HP if ($preise->{hp} ne "") { my $preisfelder; for ($preise->{belegung_min} .. $preise->{belegung_max}) { if ($preise->{"preis" . $_} > 0) { my $preis = sprintf ("%6.2f",$preise->{hp} * $_ + $preise->{"preis" . $_}); $preis =~ s/\./,/; $preisfelder .= qq(); } else { $preisfelder .= qq(); } } $out .= qq( $mindestaufenthalt $preisfelder ); $mindestaufenthalt = ""; # flush weil aussgegeben. } # VP if ($preise->{vp} ne "") { my $preisfelder; for ($preise->{belegung_min} .. $preise->{belegung_max}) { if ($preise->{"preis" . $_} > 0) { my $preis = sprintf ("%6.2f",$preise->{vp} * $_ + $preise->{"preis" . $_}); $preis =~ s/\./,/; $preisfelder .= qq(); } else { $preisfelder .= qq(); } } $out .= qq( $mindestaufenthalt $preisfelder ); $mindestaufenthalt = ""; # flush weil aussgegeben. } # Kinderpreise if ($preise->{k1_alter} > 0 || $preise->{k3_alter} > 0 || $preise->{k3_alter} > 0) { my $kinder; for (1..3) { my $kinderpreise; my $zeilen; if ($preise->{"k${_}_ohne"}) { $kinderpreise .= qq(); $zeilen++; } if ($preise->{"k${_}_uf"}) { $kinderpreise .= qq(); $zeilen++; } if ($preise->{"k${_}_hp"}) { $kinderpreise .= qq(); $zeilen++; } if ($preise->{"k${_}_vp"}) { $kinderpreise .= qq(); $zeilen++; } $kinderpreise = qq( $kinderpreise ); $kinder .= qq( ) if $zeilen; } $html_kinderpreise .= qq( ) if $kinder; } $c++; }; $out .= qq(
PREISE (zzgl. Kurbeitrag)
Leistung Aufenthalt
In der Zeit vom $preise->{zeitraum_von} bis $preise->{zeitraum_bis}
In der Zeit vom $preise->{zeitraum_von} bis $preise->{zeitraum_bis}
ab $preise->{preis_mindestaufenthalt} Nächteab $preise->{preis_mindestaufenthalt} Nacht$preis €---$preis €---$preis €---
Übernachtung
$preis €---
mit Frühstück
$preis €---
Halbpension
$preis €---
Vollpension
$preise->{"k${_}_ohne"} € Übernachtung
$preise->{"k${_}_uf"} € mit Frühstück
$preise->{"k${_}_hp"} € mit Halbpension
$preise->{"k${_}_vp"} € mit Vollpension
Kinder
bis $preise->{"k${_}_alter"}
Jahre
$kinderpreise
$kinder
); $out .= qq(

$html_kinderpreise
PREISE FÜR KINDER (in Zimmer/Wohnung der Eltern)
); } $sth->finish; # --------------------------------------------------------------------------------- sub travel_gen_href { my $href; foreach my $key (keys %{$_[0]}) { $in{$key} = $_[0]->{$key}; } foreach my $key (sort keys %in) { $in{$key} =~ s/\0/\|/g; $href .= "&$key=$in{$key}" if $key ne "" && $key !~ /(page|action|seite)/; } return $href; } $out; %>