#!/usr/local/bin/perl
############################################################
#
# Yoyaku Form ver.2.0
#
# 制作者: 株式会社ワイズプランニング 制作室
# 制作日: 2001.05.31
# 動作確認: FreeBSD & perl5
#
# 更新者: 株式会社ネットワーク北海道
# 更新日: 2009.02.20
#
############################################################
require "lib.pl";
require "webcal.conf";
require "kihon.pl";
require "qreki.pl";
&lib'getinputfromweb;
$tamaend = &lib'getgetumatu($query_year,$query_mon);
#消費税率 税込みの場合は0にする
$dues = 5;
#見積り書の名前
$titl = '宿泊予約フォーム';
#満室対応
$manshitsu = '本日は誠にありがとうございます。
折角ですが、この日はすでに満室となっております。
「予約状況」へは、ブラウザの「戻る」ボタンでお願いいたします。';
#非正規アクセス
$roomq = '本日は誠にありがとうございます。
折角ですが、正しくアクセスされておりませんので
これ以上の作業は出来ません。
「予約状況」へは、ブラウザの「戻る」ボタンでお願いいたします。';
#問い合わせ対応
$toiawase = '本日は誠にありがとうございます。
残室がわずかのため、お部屋をお取り出来ない場合がございます。
予約フォームから送信いただき次第、確認の上ご連絡させていただきます。
';
#注意
$chui = '入力の際、メールアドレス又は連絡先に不具合が有った場合は、確認の連絡が取れませんので、正確にご入力をお願いいたします。連絡が取れない場合は「予約成立」と成りませんので、ご了承下さい。
ご夕食プランご利用のお客様は、ご利用希望時間をご指定下さい。ご希望のお時間が、ご用意出来ない場合には、メール又はお電話にてご連絡をさせていただきます。';
&lib'getinputfromweb('sjis');
($year,$mon,$day,$wday,$hour,$min,$sec) = &lib'getdatetime;
$action = $form{'action'};
$query_year = $form{'year'};
$query_mon = $form{'mon'};
$query_day = $form{'day'};
$name = $form{'name'};
$email = $form{'email'};
$place = $form{'place'};
$title = $form{'title'};
$content = $form{'content'};
$delline = $form{'delline'};
$roomt = $form{'room'};
@wday_array = ('日','月','火','水','木','金','土');
$tamaend = &lib'getgetumatu($query_year,$query_mon);
##########################################################
# http://www.fin.ne.jp/webcal/schedule.cgi?year=1999&mon=2&day=17
# 小林様のご助言により、春分の日、秋分の日、振替休日をサポート
# すごいっす(^_^)
# 2000年1月6日
# 2000年ハッピーマンデー対応(クソ!勝手に休みを変えるな!)
#
if(open(DATA,"<$yearlydata")){
while () {
if($_ !~ /^#/){
chop;
push(@yearly, $_);
}
}
close(DATA);
}
# 成人の日の割出し(2000年以降に適用)
if($query_year >= 2000){
if(($seijin = &lib'getyoubi($query_year,1,1)) <= 1){
$seijin = 9 - $seijin;
push(@yearly,"1\t$seijin\t成人の日\t1");
}else{
$seijin = 16 - $seijin;
push(@yearly,"1\t$seijin\t成人の日\t1");
}
}else{
push(@yearly,"1\t15\t成人の日\t1");
}
# 体育の日の割出し(2000年以降に適用)
if($query_year >= 2000){
if(($taiiku = &lib'getyoubi($query_year,10,1)) <= 1){
$taiiku = 9 - $taiiku;
push(@yearly,"10\t$taiiku\t体育の日\t1");
}else{
$taiiku = 16 - $taiiku;
push(@yearly,"10\t$taiiku\t体育の日\t1");
}
}else{
push(@yearly,"10\t10\t体育の日\t1");
}
# 海の日の割出し(2000年以降に適用)
if($query_year >= 2000){
if(($uminohi = &lib'getyoubi($query_year,7,1)) <= 1){
$uminohi = 16 - $uminohi;
push(@yearly,"7\t$uminohi\t海の日\t1");
}else{
$uminohi = 23 - $uminohi;
push(@yearly,"7\t$uminohi\t海の日\t1");
}
}else{
push(@yearly,"7\t20\t海の日\t1");
}
# 敬老の日の割出し(2000年以降に適用)
if($query_year >= 2000){
if(($keirou = &lib'getyoubi($query_year,9,1)) <= 1){
$keirou = 16 - $keirou;
push(@yearly,"9\t$keirou\t敬老の日\t1");
}else{
$keirou = 23 - $keirou;
push(@yearly,"9\t$keirou\t敬老の日\t1");
}
}else{
push(@yearly,"9\t15\t敬老の日\t1");
}
# 春分の日の割出し(1980年以降に適用)
$shun = int(20.8431+0.242194*($query_year-1980)-int(($query_year-1980)/4));
push(@yearly,"3\t$shun\t春分の日\t1");
# 秋分の日の割出し(1980年以降に適用)
$shuu = int(23.2488+0.242194*($query_year-1980)-int(($query_year-1980)/4));
push(@yearly,"9\t$shuu\t秋分の日\t1");
# 振替休日のチェック
@furikae = ();
$yearlysize = $#yearly;
for($i = 0; $i <= $yearlysize; $i++){
($yearly_mon,$yearly_day,$yearly_dat,$yearly_flag) = split(/\t/,@yearly[$i]);
$weekday = &lib'getyoubi($query_year,$yearly_mon,$yearly_day);
if ($weekday == 0 && $yearly_dat ne "憲法記念日" && $yearly_dat ne "国民の休日"){
$yearly_day_tmp = $yearly_day + 1;
push(@furikae,"$yearly_mon\t$yearly_day_tmp\t振替休日\t1");
}
}
$furikaesize = $#furikae;
if ($furikaesize >= 1){push(@yearly,@furikae);}
$yearlysize = $#yearly;
##########################################################
# 月に一回のスケジュールの読み込み
if(open(DATA,"<$monthlydata")){
while () { if($_ !~ /^#/){chop; push(@monthly, $_);}}
close(DATA);
}
$monthlysize = $#monthly;
##########################################################
# 週に一回のスケジュールの読み込み
if(open(DATA,"<$weeklydata")){
while () { if($_ !~ /^#/){chop; push(@weekly, $_);}}
close(DATA);
}
$weeklysize = $#weekly;
##########################################################
# クッキーを使うなら
if($use_cookie){
&lib'get_cookie('sjis');
if($form{'name'} ne ""){
&lib'set_cookie("name",$form{'name'},30);
&lib'set_cookie("email",$form{'email'},30);
$cookie_name = $form{'name'};
$cookie_email = $form{'email'};
}else{
$cookie_name = $cookie{'name'};
$cookie_email = $cookie{'email'};
}
}
print "Content-type: text/html\n\n";
##########################################################
# 特に日付の指定がなければ、今日のスケジュールを表示させる
if($query_year eq ""){
$query_year = $year; $query_mon = $mon; $query_day = $day;
}
$datafile = "$datadir/$query_year.$query_mon/$query_day";
##########################################################
#CGIが呼び出された条件によって処理を分岐
if($QUERY{'send'} eq 'sendmail') { &sendmail; }
elsif ($QUERY{'action'} eq 'estimation') { &estimation; }
else { &html; }
#===============================HTMLドキュメントを生成===========================
sub html
{
$count = @DATA;
&html_head;
print "\申\し込みフォーム\n";
print "
\n";
print "\予\約状況によりまして、すでに満室の場合もございます。
その際は誠に\申\し訳ございませんが、ご了承ください。
\n";
print "\予\約のお\申\込は、ご宿泊日の4日前までとなっております。3日以内はお電話でお願いいたします。\n";
$youbi_tmp = &lib'getyoubi($inyear,$inmon,$inday);
$youbi = @wday_array[$youbi_tmp];
$getumatu = &lib'getgetumatu($query_year,$query_mon);
print "
| \n"; print "チェックイン (15:00〜) ※\n"; print " | \n";
#チェックイン年(elements1)
print "年\n";
#チェックイン月(elements2)
print "月\n";
#チェックイン日(elements3)
print "日から\n";
#到着予定時間(elements4)
print " 到着\予\定 午後 頃\n"; #チェックアウト print " | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| \n"; print "チェックアウト (〜10:00) ※\n"; print " | \n"; #チェックアウト年(elements5) print "年\n"; #チェックアウト月(elements6) print "月\n"; #チェックアウト日(elements7) print "日までの 泊数\n"; print "泊 \n"; #宿泊人数 print " | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| \n"; print "ご宿泊人数 ※\n"; #宿泊人数大人(elements9) 宿泊人数子供(elements10) 宿泊人数幼児(elements11) 宿泊人数乳児(elements12) print " | \n";
print "
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| \n"; print "ご希望宿泊施設及び部屋数 ※\n"; print " | \n"; print "\n";
print "ご希望はどちらですか? ホテル 宿舎 | 室\n"; print " | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| おすすめプラン ※ | ※お選びいただいたプランのご夕食内容が有効になります。 お食事場所は「レストラン」になります。 ※団体のお客様は宴会場をご用意いたします。 メモ欄にてお問い合わせ下さい。 | \n";
print "|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
\n";
#2010年2月27日追加(3月〜5月限定価格の為)開始
#個人向け宿泊プラン3月〜5月限定価格(elements16) 食事(elements17)
print "
\n";
# print " | \n";
print "
ご朝食 ※ | ご朝食ご不要の場合は、 1,000円引きになります。 必要 | 不要\n";
print " | \n";
print "宿 | 泊 \申\ 込 者 \n"; print " \n";
#郵便番号(elements33)
print "郵便番号 ※\n";
print " | \n";
print "\n";
print " | \n";
#住所(elements34)
print "ご住所 ※\n";
print " | \n";
print "\n";
print " | \n";
#名前(elements35)
print "お名前(漢字) ※\n";
print " | \n";
print "\n";
print " | \n";
#フリガナ(elements36)
print "フリガナ(カタカナ) ※\n";
print " | \n";
print "\n";
print " | \n";
#電話番号 自宅(elements37) 勤め先か携帯電話(elements38)
print "電話番号(いずれか) ※ | 例)0124-23-1155\n"; print " \n";
print "ご自宅 | お勤め先又は携帯電話 | \n"; print " \n";
print "メールアドレス ※\n";
print " | \n";
#メールアドレス(elements39)
print " | ※携帯電話のメールアドレスはお使いいただけません。 ※半角英数文字で入力して下さい\n"; print " \n";
#年齢(elements40)
print "年齢\n";
print " | \n";
print "歳代\n";
print " | \n";
#性別(elements57)
print "性別\n";
print " | \n";
print "男性 | 女性\n";
print " | \n";
#メモ欄(elements41)
print "メモ欄 | 特に質問・ご要望等がある場合にご記入ください。\n"; print " \n";
print "\n";
print " | "; $dallinenum--; } } else { print "\n"; } # $query_year = $inyear; $query_mon = $QUERY{'inmon'}; $query_day = $QUERY{'inday'}; &repeat_sc; if ($yearly_dat2 eq "") { $hol = 0; } else { $hol = 1; } if ($youbi_tmp eq 6) { $hantei = 1; } else { if ($hol eq 1) { $hantei = 1; } else { if ($youbi_tmp eq 5) { $hantei = 2; } else { $hantei = 3; } } } print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "☆このホームページを最初に見つけられたのはどのような媒体でしたか? もし、よろしければ、参考までにお答え下さい。\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print " \n"; print " | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||