#!/usr/bin/perl #(C) Loris Ltd. 2000-2002 info@lorissoft.com. #Project: LHRS #2004-03-23/v3.03.05 #updated 2003-02-20 #HEADER: require "../config/config.pl"; require "../cgi_libs/db_lib.pl"; require "../cgi_libs/date_lib.pl"; require "../cgi_libs/general_lib.pl"; #debug $debugmode = 0; #assign vars $this_page="voucher"; $today = &GetDateTime; #get vars &GetFormInput; $res_nr = $field{'res_nr'}; $servid = $field{'servid'}; #ini &iniConfig; &Create_DB_Connection; &GetMessages; &GetResData; #override config voucher template settings? if ($res{'res_acc_template'}){$template{'voucher_reservation'}="../templates/$res{'res_acc_template'}";} if ($res{'res_serv_template'}){$template{'voucher_service'}="../templates/$res{'res_serv_template'}";} if ($servid){$tmpl = $template{'voucher_service'};} else {$tmpl = $template{'voucher_reservation'};} if($field{'rcp'}){$tmpl = $template{'receipt'};} $template=$template{$this_page}; if ($servid) { &GetOneService($servid, $res{'res_id'}); } else { $roomdisc = &GetRoomDiscData($res{'res_id'}); $servline = &GetAllServData($res{'res_id'}); $servdiscline = &GetServDiscs($res{'res_id'}); } $error = &GetError; #process if ($error) { &PrintTop; &PrintError; &PrintBot; } else { &PrintVoucher; } if ($debugmode) { print "

DEBUG START
$debug
DEBUG END

"; } #end session $dbh->disconnect; exit 1; #subs============================================================================== sub GetError { my $toret=""; if (!$res{'res_id'}){$toret.="\n 1";} if ($servid) { } return $toret; } sub GetResData { $SQL="SELECT * FROM hr_reservation,hr_payment,hr_hotel,hr_city,hr_customer,hr_room,hr_room_global_type,hr_ext_countrylist WHERE hr_reservation.res_nr='$res_nr' AND hr_reservation.cust_id=hr_customer.cust_id AND hr_reservation.pay_id=hr_payment.pay_id AND hr_reservation.hotel_id=hr_hotel.hotel_id AND hr_hotel.city_id=hr_city.city_id AND hr_reservation.room_id=hr_room.room_id AND hr_room.room_gtype_id=hr_room_global_type.gtype_id AND hr_customer.cust_country_code=hr_ext_countrylist.cntr_code"; $debug.="
$SQL
"; my $sth = &Do_SQL; while ($pointer = $sth->fetchrow_hashref) { $res{'res_id'} = $pointer->{'res_id'}; $res{'res_from'} = $pointer->{'res_from'}; $res{'res_from'} = &DateInString($res{'res_from'}); $res{'res_till'} = $pointer->{'res_till'}; $res{'res_till'} = &DateInString($res{'res_till'}); $res{'room_name'} = $pointer->{'room_name'}; $res{'gtype_name'} = $pointer->{'gtype_name'}; $res{'res_room_numberof'} = $pointer->{'res_room_numberof'}; $res{'res_room_totalprice'} = $pointer->{'res_room_totalprice'}; $res{'res_room_totaldisc'} = $pointer->{'res_room_totaldisc'}; $res{'cust_fname'} = $pointer->{'cust_fname'}; $res{'cust_lname'} = $pointer->{'cust_lname'}; $res{'cust_email'} = $pointer->{'cust_email'}; $res{'cust_telephone'} = $pointer->{'cust_telephone'}; $res{'cust_address'} = $pointer->{'cust_address'}; $res{'cust_extra'} = $pointer->{'cust_extra'}; @res_cust_extra = split("===", $res{'cust_extra'}); $res{'cntr_name'} = $pointer->{'cntr_name'}; $res{'pay_made'} = $pointer->{'pay_made'}; $res{'hotel_name'} = $pointer->{'hotel_name'}; $res{'hotel_telephone'} = $pointer->{'hotel_telephone'}; $res{'hotel_address'} = $pointer->{'hotel_address'}; $res{'city_name'} = $pointer->{'city_name'}; $res{'res_addserv_totalprice'} = $pointer->{'res_addserv_totalprice'}; $res{'res_addserv_totaldisc'} = $pointer->{'res_addserv_totaldisc'}; $res{'res_adults'} = $pointer->{'res_adults'}; $res{'res_children'} = $pointer->{'res_children'}; $res{'res_acc_template'} = $pointer->{'hotel_acc_voucher'}; $res{'res_serv_template'} = $pointer->{'hotel_serv_voucher'}; if ($res{'res_adults'}) { $adults_extra = " - ".$msg[536]; $adults_extra =~ s/VAR_ADULTS/$res{'res_adults'}/g; } } } sub PrintError { $vadm = "$config{'admin_email'}"; $msg[157]=~s/VAR_ADMIN_EMAIL/$vadm/g; print < $msg[156]

$msg[157]

EOF } sub PrintVoucher { print "Content-type: text/html\n\n"; open (FL, "$tmpl"); while ($line = ) { $line=~s/VAR_RESNUMBER/$res_nr/g; $line=~s/VAR_HOTEL_NAME/$res{'hotel_name'}/g; $line=~s/VAR_HOTEL_ADDRESS/$res{'hotel_address'}/g; $line=~s/VAR_HOTEL_TELEPHONE/$res{'hotel_telephone'}/g; $line=~s/VAR_HOTEL_CITY/$res{'city_name'}/g; $line=~s/VAR_CHECKIN_DATE/$res{'res_from'}/g; $line=~s/VAR_CHECKOUT_DATE/$res{'res_till'}/g; $line=~s/VAR_RES_ROOM_NAME/$res{'room_name'} $adults_extra/g; $line=~s/VAR_RES_ROOM_GLOBAL_TYPE/$res{'gtype_name'}/g; $line=~s/VAR_NROFROOMS/$res{'res_room_numberof'}/g; $line=~s/VAR_ROOM_CHARGE/$res{'res_room_totalprice'} $config{'default_currency'}/g; $line=~s/VAR_ROOM_DISCOUNTS/$roomdisc/g; $trc = $res{'res_room_totalprice'}-$res{'res_room_totaldisc'}; $line=~s/VAR_ROOM_TOTAL_CHARGE/$trc $config{'default_currency'}/g; $line=~s/VAR_ROOM_TOTAL_DISC/$res{'res_room_totaldisc'} $config{'default_currency'}/g; $line=~s/VAR_FIRST_NAME/$res{'cust_fname'}/g; $line=~s/VAR_LAST_NAME/$res{'cust_lname'}/g; $line=~s/VAR_EMAIL/$res{'cust_email'}/g; $line=~s/VAR_TELEPHONE/$res{'cust_telephone'}/g; if ($config{'customer_extra'}) { @cear_names=split("===", $config{'customer_extra'}); for $i (0..$#cear_names) { $find = "VAR_CEXTRA_$i"; $replace = $res_cust_extra[$i]; $line=~s/$find/$replace/g; } } $line=~s/VAR_ADDRESS/$res{'cust_address'}/g; $line=~s/VAR_COUNTRY/$res{'cntr_name'}/g; $total_charge = $res{'res_room_totalprice'} - $res{'res_room_totaldisc'} + $res{'res_addserv_totalprice'} - $res{'res_addserv_totaldisc'}; $total_charge.=" $config{'default_currency'}"; $line=~s/VAR_TOTALCHARGE/$total_charge/g; $line=~s/VAR_SERVICES/$servline/g; $line=~s/VAR_SERV_CHARGE/$res{'res_addserv_totalprice'}/g; $tsc = $res{'res_addserv_totalprice'}-$res{'res_addserv_totaldisc'}; $line=~s/VAR_SERV_TOTAL_CHARGE/$tsc $config{'default_currency'}/g; $line=~s/VAR_SERV_DISCOUNTS/$servdiscline/g; $line=~s/VAR_SERV_TOTAL_DISC/$res{'res_addserv_totaldisc'}/g; $line=~s/VAR_SERV_NAME/$res{'servname'}/g; $line=~s/VAR_SERV_PRICE/$res{'servprice'}/g; $servnr = "$res_nr-$servid"; $line=~s/VAR_SERVNUMBER/$servnr/g; $line=~s/VAR_NROFCHILDREN/$res{'res_children'}/g; print $line; } close(FL); } sub GetRoomDiscData { my $toret = ""; $SQL="SELECT * FROM hr_res_rdisc WHERE res_id='$_[0]'"; my $sth = &Do_SQL; while ($pointer = $sth->fetchrow_hashref) { $db_1 = $pointer->{'res_rdisc_name'}; $db_3 = $pointer->{'res_rdisc_value_percent'}; $db_4 = $pointer->{'res_rdisc_value_absolute'}; $db_5 = $pointer->{'res_rdisc_iscumulative'}; if ($db_3>0 && $db_4>0){$dstr = "$db_3\% $msg[68] $db_4 $config{'default_currency'}$cvline / $msg[67]";} if ($db_3>00 && $db_4==0){$dstr = "$db_3\%";} if ($db_3==0 && $db_4>0){$dstr = "$db_4 $config{'default_currency'}$cvline / $msg[67]";} if ($db_5){$vmsg = $msg[65];} else {$vsmg = $msg[66];} $toret.="\n$db_1 $dstr ($vmsg)
"; } $debug.="
disc $toret
"; return $toret; } sub GetAllServData { my $toret=""; $SQL="SELECT * FROM hr_res_addserv WHERE res_id='$_[0]'"; my $sth = &Do_SQL; while ($pointer = $sth->fetchrow_hashref) { $db_1 = $pointer->{'res_addserv_name'}; $db_2 = $pointer->{'res_addserv_price'}; $db_3 = $pointer->{'res_addserv_daily'}; $db_4 = $pointer->{'res_addserv_perroom'}; if ($db_4) {$prr = "($msg[130])";} else{$prr = "";} if ($db_3){$sstr = "$db_2 $config{'default_currency'} / $msg[67] $prr";} else {$sstr = "$db_2 $config{'default_currency'} $prr";} $toret.="\n$db_1 $sstr
"; } return $toret; } sub GetServDiscs { my $toret = ""; $SQL="SELECT * FROM hr_res_sdisc WHERE res_id='$_[0]'"; my $sth = &Do_SQL; while ($pointer = $sth->fetchrow_hashref) { $db_1 = $pointer->{'res_sdisc_name'}; $db_3 = $pointer->{'res_sdisc_value_percent'}; $db_4 = $pointer->{'res_sdisc_value_absolute'}; $db_5 = $pointer->{'res_sdisc_iscumulative'}; if ($db_3>0 && $db_4>0){$dstr = "$db_3\% $msg[68] $db_4 $config{'default_currency'}$cvline / $msg[67]";} if ($db_3>00 && $db_4==0){$dstr = "$db_3\%";} if ($db_3==0 && $db_4>0){$dstr = "$db_4 $config{'default_currency'}$cvline / $msg[67]";} if ($db_5){$vmsg = $msg[65];} else {$vsmg = $msg[66];} $toret.="\n$db_1 $dstr ($vmsg)
"; } $debug.="
disc $toret
"; return $toret; } sub GetOneService { $SQL="SELECT * FROM hr_res_addserv WHERE res_addserv_id='$_[0]' AND res_id=$_[1]"; my $sth = &Do_SQL; while ($pointer = $sth->fetchrow_hashref) { $db_1 = $pointer->{'res_addserv_name'}; $db_2 = $pointer->{'res_addserv_price'}; $db_3 = $pointer->{'res_addserv_daily'}; $db_4 = $pointer->{'res_addserv_perroom'}; if ($db_4) {$prr = "($msg[130])";} else{$prr = "";} if ($db_3){$sstr = "$db_2 $config{'default_currency'} / $msg[67] $prr";} else {$sstr = "$db_2 $config{'default_currency'} $prr";} $res{'servname'} = $db_1; $res{'servprice'} = $sstr; } }