%
my $sth = $TRAVEL{database}->prepare(qq(
SELECT travel_betriebe.*, travel_user.*
FROM travel_betriebe
LEFT JOIN travel_user ON travel_user.gid = travel_betriebe.gid
WHERE travel_betriebe.gid='$in{gid}'
)
); $sth->execute || &mysql_error($sth);
my $betriebdata = $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('betrieb',verwendung)
ORDER BY name");
$sth2->execute;
while (my $merkmal = $sth2->fetchrow_arrayref) {
if ( substr($betriebdata->{merkmale},$$merkmal[0]-1,1) eq "1") {
push @merkmale, $$merkmal[1];
}
}
my $merkmale = join ", ",@merkmale;
# . . . . . . . . . . . . . . . . . . . . . . . . . . .
$out .= qq(
$betriebdata->{betriebsname}
$TRAVEL{kategorien}->{$betriebdata->{kategorie}}
|
$betriebdata->{strasse} $betriebdata->{hausnummer}
$betriebdata->{plz} $betriebdata->{ort} $betriebdata->{ortsteil}
|
Tel. $betriebdata->{telefonvorwahl} $betriebdata->{telefon}
Fax $betriebdata->{faxvorwahl} $betriebdata->{fax}
|
Beschreibung: $betriebdata->{text}
|
Zusatzinfos: LocalID #1: $betriebdata->{lid} LocalID #2: $betriebdata->{lid2}
|
Merkmale: $merkmale
|
);
$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 = 3, travel_zeitraum.preis3,
IF(travel_zimmer.minpers = 2, travel_zeitraum.preis2, travel_zeitraum.preis1) )
) AS min_preis2,
MIN( CASE travel_zimmer.minpers
WHEN 1 THEN travel_zeitraum.preis1
WHEN 2 THEN travel_zeitraum.preis2
WHEN 3 THEN travel_zeitraum.preis3
WHEN 4 THEN travel_zeitraum.preis4
WHEN 5 THEN travel_zeitraum.preis5
WHEN 6 THEN travel_zeitraum.preis6
WHEN 7 THEN travel_zeitraum.preis7
END
) AS min_preis,
MAX( IF(travel_zimmer.minpers = 2, travel_zeitraum.preis2, travel_zeitraum.preis1) ) AS max_preis1,
MAX( CASE travel_zimmer.maxpers
WHEN 1 THEN travel_zeitraum.preis1
WHEN 2 THEN travel_zeitraum.preis2
WHEN 3 THEN travel_zeitraum.preis3
WHEN 4 THEN travel_zeitraum.preis4
WHEN 5 THEN travel_zeitraum.preis5
WHEN 6 THEN travel_zeitraum.preis6
WHEN 7 THEN travel_zeitraum.preis7
END
) 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
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}'
GROUP BY travel_zimmer.zid
ORDER BY travel_zimmer.typ, LPAD(travel_zimmer.name,25,"0") ASC
)
); $sth->execute;
my $zimmer;
my $old_zimmertyp;
while (my $projekt = $sth->fetchrow_hashref) {
$zimmer .= qq(
) if $projekt->{typ} ne $old_zimmertyp;
my $zimmernr = $projekt->{name};
$zimmernr = "Nr. $projekt->{name}" if $projekt->{name} =~ /^\d+$/ ;
my $preise;
my $preise;
my $von;
my $bis;
$von = sprintf( "%6.2f", $projekt->{min_preis} + $projekt->{min_ohne} * $projekt->{minpers} );
$bis = sprintf( "%6.2f", $projekt->{max_preis} + $projekt->{max_ohne} * $projekt->{maxpers} );
$preise_ohne = qq(ab $projekt->{min_preis} - $projekt->{max_preis} €);
$preise_ohne = qq(ab $projekt->{min_preis} €) if $projekt->{min_preis} == $projekt->{max_preis};
# Frühstück
$von = sprintf( "%6.2f", $projekt->{min_preis} + $projekt->{min_uf} * $projekt->{minpers} );
$bis = sprintf( "%6.2f", $projekt->{max_preis} + $projekt->{max_uf} * $projekt->{maxpers} );
$preise_uf = qq(ab $von - $bis €);
$preise_uf = qq(ab $von €) if $von == $bis;
# Halbpension
$von = sprintf( "%6.2f", $projekt->{min_preis} + $projekt->{min_hp} * $projekt->{minpers} );
$bis = sprintf( "%6.2f", $projekt->{max_preis} + $projekt->{max_hp} * $projekt->{maxpers} );
$preise_hp = qq(ab $von - $bis €);
$preise_hp = qq(ab $von €) if $von == $bis;
# Vollpension
$von = sprintf( "%6.2f", $projekt->{min_preis} + $projekt->{min_vp} * $projekt->{minpers} );
$bis = sprintf( "%6.2f", $projekt->{max_preis} + $projekt->{max_vp} * $projekt->{maxpers} );
$preise_vp = qq(ab $von - $bis €);
$preise_vp = qq(ab $von €) if $von == $bis;
# Preise zusammenbauen, und nur wenn verfügbar zeigen...
$preise .= "$preise_ohne ohne Verpflegung
" if $projekt->{min_ohne};
$preise .= "$preise_uf mit Frühstück
" if $projekt->{min_uf};
$preise .= "$preise_hp mit Halbpension
" if $projekt->{min_hp};
$preise .= "$preise_vp mit Vollpension
" if $projekt->{min_vp};
$preise .= "$preise_ohne
" unless $projekt->{min_ohne} || $projekt->{min_uf} || $projekt->{min_hp} || $projekt->{min_uf} ;
my $mindest = qq($projekt->{min_belegung} - $projekt->{max_belegung} Tage);
$mindest = qq($projekt->{min_belegung} Tage) if $projekt->{min_belegung} == $projekt->{max_belegung};
$mindest = qq($projekt->{min_belegung} Tag) if $projekt->{min_belegung} == $projekt->{max_belegung} && $projekt->{min_belegung} == 1;
$mindest = qq(-) unless $projekt->{min_belegung};
my $maxpers = qq($projekt->{minpers}-$projekt->{maxpers} Personen);
$maxpers = qq($projekt->{minpers} Personen) if $projekt->{minpers} == $projekt->{maxpers};
$maxpers = qq($projekt->{minpers} Person) if $projekt->{minpers} == $projekt->{maxpers} && $projekt->{minpers} == 1;
# . . . . . . . . . . . . . . . . . . . . . . . . . . .
# 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($projekt->{merkmale},$$merkmal[0]-1,1) eq "1") {
push @merkmale, $$merkmal[1];
}
}
my $merkmale = join ", ",@merkmale;
# . . . . . . . . . . . . . . . . . . . . . . . . . . .
my $href = &travel_gen_href( { zid => $projekt->{zid}, do => "zimmerinfo" } );
$zimmer .= qq(

 |
$zimmernr |
$maxpers |
$preise |
$mindest |
|
$merkmale |
);
$old_zimmertyp = $projekt->{typ};
}
$zimmer .= qq(
Dieser Betrieb hat noch keine Zimmer angelegt... |
) unless $zimmer;
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;
}
$zimmer;
%>