$val){ $end = false; $cnt = 0; $bkDate1 = ""; $bkDate2 = ""; $bk_key = ""; $dayRsv = 0; $chk = false; $chk_busy = false; if ((isset($data[$key]))&&($cnt == 0)){ //チェック日でループ foreach ($data[$key] as $key2 => $val2){ //繁忙期(7月から9月)をチェックする 2017/2 $mo = explode("/", $val2); if($mo[1] >= 7 && $mo[1] <= 9) $chk_busy = true; //おわってない場合、もしくは、みつけたよtrueで、その部屋の処理継続中の場合 if ((!$end)||(($chk===true)&&($bk_key == $key))){ //最初のチェック日だったら宿泊初日に保存 if ($cnt == 0){ $data['RSV_DATE_RESERVE_F'][$key] = $val2; $data['RSV_ROOM_ID'][$key] = $key; //日付みつけたよにtrue $chk = true; //宿泊日数に加算 $dayRsv = 1; $dayRsv_all[$val2]++; }else{ $ymd = explode ( '/' , $val2); $cDate = date('Y-m-d',mktime(0,0,0, $ymd[1],$ymd[2],$ymd[0])); $cDate = date("Y-m-d", strtotime($cDate." -1 day")); //日付-1日が、前処理の日付と違ったら(=連続したチェックでなかったら) if(($end)||($cDate <> $bkDate1)){ // unset($data[$key][$key2]); // //●予約日確定 // if (!$end){ // $data['RSV_DATE_RESERVE_T'][$key] = $bkDate2; // $data['RSV_DATE_CHECKOUT'][$key] = date("Y/m/d", strtotime($bkDate1." +1 day")); // $data['RSV_RESERVE_DAYS'][$key] = $dayRsv; // } //取得終了フラグ $end = true; $arrErrors[$key] = "同じ部屋で日付をまたいでの予約はできません。(".$val.")"; }else{ $dayRsv++; $dayRsv_all[$val2]++; } } //バックアップ $ymd = explode ( '/' , $val2); $bkDate1 = date('Y-m-d',mktime(0,0,0, $ymd[1],$ymd[2],$ymd[0])); $bkDate2 = $val2; }else{ // unset($data[$key][$key2]); } $cnt++; //キーをバックアップ $bk_key = $key; $bk_day = $key2; } //繁忙期をチェック if($chk_busy === true) { $chk_busy_stay = true; } //一日のみ宿泊だったら●予約日確定 if ($end === false){ $data['RSV_DATE_RESERVE_T'][$key] = $bkDate2; $data['RSV_DATE_CHECKOUT'][$key] = date("Y/m/d", strtotime($bkDate1." +1 day")); $data['RSV_RESERVE_DAYS'][$key] = $dayRsv; $end = true; } }else{ unset($data[$key]); } } //繁忙期は2泊以上 2017/6 if($chk_busy_stay === true && count($dayRsv_all) == 1) { $end = true; $arrErrors[$key] = "7月から9月の繁忙期は合計2泊以上よりご予約をお受けしております。連泊でないご予約で2泊以上お申し込み希望のお客様は、お手数ですがお電話にてお問い合わせください。
※他のご宿泊先への宿泊を挟んで、合計2泊以上ご宿泊なさりたい場合はお手数ですがお電話にてお問い合わせください。"; } //$clsRsv->setWhere(); //$row = $clsRsv->getRsvInfo(); if (count($arrErrors) == 0){ $incFile = 'form.inc'; }else{ if (strlen($data['date1'])==0){ // $data['date1'] = date('Y/m/d'); $data['date1'] = date("Y/m/d", strtotime(date('Y-m-d')." +1 day")); } $clsRsv->setData($data,1); $rtn = $clsRsv->getCalendar(); $incFile = 'calendar.inc'; foreach ($_ROOM_ID as $key => $val){ unset($data[$key]); } } break; case 'back': $incFile = 'form.inc'; break; case 'del': $search = 'search'; $clsRsv->doDelete($data['uid']); $data['uid'] = ''; break; case 'confirm': $clsRsv->setData($data,1); $arrErrors = $clsRsv->isValidRsvData(1); if (count($arrErrors) == 0){ $incFile = 'confirm.inc'; }else{ $incFile = 'form.inc'; } break; case 'commit': $clsRsv->setData($data,1); $arrErrors = $clsRsv->isValidRsvData(1); if (count($arrErrors) == 0){ $clsRsv->doInsert(); $incFile = 'complete.inc'; }else{ $incFile = 'form.inc'; } break; case 'prev': if (strlen($data['date1'])==0){ // $data['date1'] = date('Y/m/d'); $data['date1'] = date("Y/m/d", strtotime(date('Y-m-d')." +1 day")); } $clsRsv->setData($data,1); $rtn = $clsRsv->getCalendar(); $incFile = 'calendar.inc'; foreach ($_ROOM_ID as $key => $val){ unset($data[$key]); } break; default: if (strlen($data['date1'])==0){ // $data['date1'] = date('Y/m/d'); $data['date1'] = date("Y/m/d", strtotime(date('Y-m-d')." +2 day")); //2日前まで入力可(2017.2) } $clsRsv->setData($data,1); $rtn = $clsRsv->getCalendar(); $incFile = 'calendar.inc'; foreach ($_ROOM_ID as $key => $val){ unset($data[$key]); } break; } include_once $incFile; $clsRsv->close(); ?>