public function insertBookNormal()
 {
     $validator = Validator::make(Input::all(), $this->rules);
     $getNum = Input::get('ccnum');
     $getType = Input::get('CardType');
     if ($validator->fails()) {
         return Redirect::action('normalBook', [Input::get('roomID')])->withErrors($validator, 'guest')->withInput();
     } else {
         if (!checkCreditCard($getNum, $getType, $errornumber, $errortext)) {
             $errortext = "This Card Has Invalid Number";
             return Redirect::action('normalBook', [Input::get('roomID')])->with('ccError', $errortext)->withInput();
         } else {
             $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
             $temp;
             $bookCode = "";
             for ($i = 1; $i <= 10; $i++) {
                 if ($i % 2 == 1) {
                     $temp = floor(rand(0, 9));
                 } else {
                     $temp = $characters[rand(0, strlen($characters) - 1)];
                 }
                 $bookCode = $bookCode . $temp;
             }
             $inputAll = Input::all();
             $guest = new Guest();
             $booking = new Book();
             $payment = new Payment();
             $extra = new Extra();
             $detailBook = new DetailBooking();
             $detailAdditional = new DetailAdditional();
             $countAdd = Additional::where('Status', '=', 'Active')->count();
             $countBook = Book::orderby('ID_Booking', 'DESC')->first();
             $countGuest = Guest::orderby('ID_Guest', 'DESC')->first();
             $countExtra = Extra::orderby('ID_Extra', 'DESC')->first();
             $countPayment = Payment::orderby('ID_Payment', 'DESC')->first();
             $tampIDBook = $countBook->ID_Booking;
             $tampIDGuest = $countGuest->ID_Guest;
             $tampIDExtra = $countExtra->ID_Extra;
             $tampIDPayment = $countPayment->ID_Payment;
             $checkYearBook = substr(strval($tampIDBook), 3, -5);
             $checkYearGuest = substr(strval($tampIDGuest), 3, -5);
             $checkYearExtra = substr(strval($tampIDExtra), 3, -5);
             $checkYearPayment = substr(strval($tampIDPayment), 3, -5);
             $incrementIDBook = substr($tampIDBook, 3) + 1;
             $incrementIDGuest = substr($tampIDGuest, 3) + 1;
             $incrementIDExtra = substr($tampIDExtra, 3) + 1;
             $incrementIDPayment = substr($tampIDPayment, 3) + 1;
             $joinBook = "BOK" . $incrementIDBook;
             $joinGuest = "GUE" . $incrementIDGuest;
             $joinExtra = "EXT" . $incrementIDExtra;
             $joinPayment = "PAY" . $incrementIDPayment;
             $occupancy = Input::get('adult') . ' Adult | ' . Input::get('child') . ' Child';
             $ccexpiry = Input::get('ccmonth') . '/' . Input::get('ccyear');
             $arrive = date("Y-m-d", strtotime(Input::get('from')));
             //arrive date
             $depart = date("Y-m-d", strtotime(Input::get('to')));
             //depart
             if ($checkYearBook == strval(date("y"))) {
                 //1. insert to book
                 $booking->ID_Booking = $joinBook;
                 $booking->Booking_code = $bookCode;
                 $booking->Arrive = $arrive;
                 $booking->Depart = $depart;
                 $booking->Number_nights = Input::get('total_d');
                 $booking->Occupancy = $occupancy;
                 $booking->Booking_Status = "Booked";
                 //2. insert to guest
                 if ($checkYearGuest == strval(date("y"))) {
                     $guest->ID_Guest = $joinGuest;
                     $guest->ID_Booking = $joinBook;
                     $guest->First_Name = Input::get('fname');
                     $guest->Last_Name = Input::get('lname');
                     $guest->No_Identity = Input::get('identity');
                     $guest->Email = Input::get('email');
                     $guest->Telephone = Input::get('phone');
                     $guest->Address = Input::get('address');
                     $guest->Country = Input::get('country');
                     $guest->City = Input::get('city');
                     $guest->State = Input::get('city');
                     $guest->Post_code = Input::get('state');
                 } else {
                     $guest->ID_Guest = "GUE" . date('y') . "00001";
                     $guest->ID_Booking = $joinBook;
                     $guest->First_Name = Input::get('fname');
                     $guest->Last_Name = Input::get('lname');
                     $guest->No_Identity = Input::get('identity');
                     $guest->Email = Input::get('email');
                     $guest->Telephone = Input::get('phone');
                     $guest->Address = Input::get('address');
                     $guest->Country = Input::get('country');
                     $guest->City = Input::get('city');
                     $guest->State = Input::get('city');
                     $guest->Post_code = Input::get('state');
                 }
                 //3. insert to payment
                 if ($checkYearPayment == strval(date("y"))) {
                     $payment->ID_Payment = $joinPayment;
                     $payment->ID_Booking = $joinBook;
                     $payment->Credit_Type = Input::get('CardType');
                     $payment->Credit_Holder = Input::get('ccname');
                     $payment->Credit_Number = Input::get('ccnum');
                     $payment->Credit_Expiry = $ccexpiry;
                 } else {
                     $payment->ID_Payment = "PAY" . date('y') . "00001";
                     $payment->ID_Booking = $joinBook;
                     $payment->Credit_Type = Input::get('CardType');
                     $payment->Credit_Holder = Input::get('ccname');
                     $payment->Credit_Number = Input::get('ccnum');
                     $payment->Credit_Expiry = $ccexpiry;
                 }
                 //4. insert to extra
                 if ($checkYearExtra == strval(date("y"))) {
                     $extra->ID_Extra = $joinExtra;
                     $extra->ID_Booking = $joinBook;
                     $extra->Arrival_time = Input::get('darrive');
                     $extra->Flight_detail = Input::get('fdetail');
                     $extra->Comment = Input::get('comment');
                 } else {
                     $extra->ID_Extra = "EXT" . date('y') . "00001";
                     $extra->ID_Booking = $joinBook;
                     $extra->Arrival_Time = Input::get('darrive');
                     $extra->Flight_Detail = Input::get('fdetail');
                     $extra->Comment = Input::get('comment');
                 }
                 //5. insert to detail Book
                 $detailBook->ID_Booking = $joinBook;
                 $detailBook->ID_RoomType = Input::get('roomID');
                 $detailBook->Quantity = Input::get('quantity');
                 $detailBook->Price = Input::get('roomPR');
                 for ($i = 0; $i < $countAdd; $i++) {
                     $data = array(array('ID_Booking' => $joinBook, 'ID_Additional' => Input::get("id_add_{$i}"), 'Price' => Input::get("price_add_{$i}"), 'Quantity' => Input::get("add_{$i}")));
                     DetailAdditional::insert($data);
                 }
                 $booking->save();
                 $guest->save();
                 $payment->save();
                 $extra->save();
                 $detailBook->save();
                 return Redirect::action('showBook', $bookCode);
             } else {
                 //1. insert to book
                 $booking->ID_Booking = "BOK" . date('y') . "00001";
                 $booking->Booking_code = $bookCode;
                 $booking->Arrive = $arrive;
                 $booking->Depart = $depart;
                 $booking->Number_nights = Input::get('total_d');
                 $booking->Occupancy = $occupancy;
                 $booking->Booking_Status = "Booked";
                 //2. insert to guest
                 if ($checkYearGuest == strval(date("y"))) {
                     $guest->ID_Guest = $joinGuest;
                     $guest->ID_Booking = "BOK" . date('y') . "00001";
                     $guest->First_Name = Input::get('fname');
                     $guest->Last_Name = Input::get('lname');
                     $guest->No_Identity = Input::get('identity');
                     $guest->Email = Input::get('email');
                     $guest->Telephone = Input::get('phone');
                     $guest->Address = Input::get('address');
                     $guest->Country = Input::get('country');
                     $guest->City = Input::get('city');
                     $guest->State = Input::get('city');
                     $guest->Post_code = Input::get('state');
                 } else {
                     $guest->ID_Guest = "GUE" . date('y') . "00001";
                     $guest->ID_Booking = "BOK" . date('y') . "00001";
                     $guest->First_Name = Input::get('fname');
                     $guest->Last_Name = Input::get('lname');
                     $guest->No_Identity = Input::get('identity');
                     $guest->Email = Input::get('email');
                     $guest->Telephone = Input::get('phone');
                     $guest->Address = Input::get('address');
                     $guest->Country = Input::get('country');
                     $guest->City = Input::get('city');
                     $guest->State = Input::get('city');
                     $guest->Post_code = Input::get('state');
                 }
                 //3. insert to payment
                 if ($checkYearPayment == strval(date("y"))) {
                     $payment->ID_Payment = $joinPayment;
                     $payment->ID_Booking = "BOK" . date('y') . "00001";
                     $payment->Credit_Type = Input::get('CardType');
                     $payment->Credit_Holder = Input::get('ccname');
                     $payment->Credit_Number = Input::get('ccnum');
                     $payment->Credit_Expiry = $ccexpiry;
                 } else {
                     $payment->ID_Payment = "PAY" . date('y') . "00001";
                     $payment->ID_Booking = "BOK" . date('y') . "00001";
                     $payment->Credit_Type = Input::get('CardType');
                     $payment->Credit_Holder = Input::get('ccname');
                     $payment->Credit_Number = Input::get('ccnum');
                     $payment->Credit_Expiry = $ccexpiry;
                 }
                 //4. insert to extra
                 if ($checkYearExtra == strval(date("y"))) {
                     $extra->ID_Extra = $joinExtra;
                     $extra->ID_Booking = "BOK" . date('y') . "00001";
                     $extra->Arrival_Time = Input::get('darrive');
                     $extra->Flight_Detail = Input::get('fdetail');
                     $extra->Comment = Input::get('comment');
                 } else {
                     $extra->ID_Extra = "EXT" . date('y') . "00001";
                     $extra->ID_Booking = "BOK" . date('y') . "00001";
                     $extra->Arrival_Time = Input::get('darrive');
                     $extra->Flight_Detail = Input::get('fdetail');
                     $extra->Comment = Input::get('comment');
                 }
                 //5. insert to detail Book
                 $detailBook->ID_Booking = "BOK" . date('y') . "00001";
                 $detailBook->ID_RoomType = Input::get('roomID');
                 $detailBook->Quantity = Input::get('quantity');
                 $detailBook->Price = Input::get('roomPR');
                 //6. insert to detail additional
                 for ($i = 0; $i < $countAdd; $i++) {
                     $data = array(array('ID_Booking' => "BOK" . date('y') . "00001", 'ID_Additional' => Input::get("id_add_{$i}"), 'Price' => Input::get("price_add_{$i}"), 'Quantity' => Input::get("add_{$i}")));
                     DetailAdditional::insert($data);
                 }
                 $booking->save();
                 $guest->save();
                 $payment->save();
                 $extra->save();
                 $detailBook->save();
                 return Redirect::action('showInvoice', $bookCode);
                 //return Redirect::to('/rooms')->with('message','Success');
             }
         }
     }
 }
Пример #2
0
 public function attachAdditionalMenu()
 {
     $additional = new Additional();
     $additional->menu_id = Input::get('item_id');
     $additional->reservation_id = Input::get('reservation_id');
     $additional->package = 0;
     $additional->quantity = Input::get('quantity');
     $additional->category = 1;
     $additional->save();
     $reservation = Reservation::find(Input::get('reservation_id'));
     $reservation->net_total = $reservation->net_total + Input::get('quantity') * Input::get('price');
     $reservation->save();
     return Redirect::back();
 }