예제 #1
0
 public function postCreateReservation()
 {
     if (Auth::check()) {
         $validation = \App\Models\Reservation::validate(Input::all());
         if ($validation->passes()) {
             if (\App\Models\Reservation::isRoomAvailable(Input::get('date_from'), Input::get('date_to'), Input::get('room')) > 0) {
                 return Redirect::route('createreservation')->withErrors(array('message' => 'Room is occupied in this period!'))->withInput();
             }
             /** Get primary key of table rezervace and set value of new row (+1) **/
             $res_number_query = DB::select('SELECT MAX(cisrezervace) AS maxx FROM rezervace');
             if ($res_number_query[0]->maxx == 'NULL') {
                 $reservation_number = 1;
             } else {
                 $reservation_number = (int) $res_number_query[0]->maxx + 1;
             }
             //dd(Input::get('room'), Input::get('persons_number'));
             if (!\App\Models\Reservation::checkRoomCapacity(Input::get('room'), Input::get('persons_number'))) {
                 return Redirect::route('createreservation')->withErrors(array('message' => 'Room does not have enough capacity. Please divide this reservation.'))->withInput();
             }
             if (count(\App\Models\Reservation::checkIfExistsZakaznik(Input::get('user_id'))) == 0) {
                 /** Here, you have to check if user_id is valid ID number **/
                 DB::insert('INSERT INTO zakaznik (meno, rodnecislo, adresa, datnar, telcis, mail) VALUES (?, ?, ?, ?, ?, ?)', [Input::get('name'), Input::get('user_id'), Input::get('address'), Input::get('birth_date'), Input::get('telephone'), Input::get('mail')]);
             }
             DB::insert('INSERT INTO rezervace (cisrezervace, datum, datumdo, idzak, osob, cispokoje) VALUES (?, ?, ?, ?, ?, ?)', [$reservation_number, Input::get('date_from'), Input::get('date_to'), Input::get('user_id'), Input::get('persons_number'), Input::get('room')]);
             return Redirect::route('home')->with('message', 'Your reservation was succesfull!');
         } else {
             return Redirect::route('createreservation')->withErrors($validation)->withInput();
         }
     } else {
         return Redirect::route('home')->with('message', 'You are not logged in!');
     }
 }
 public function actionCreateCustomerAndReservation()
 {
     $customer = new Customer();
     $reservation = new Reservation();
     $reservation->customer_id = 0;
     if ($customer->load(Yii::$app->request->post()) && $reservation->load(Yii::$app->request->post()) && $customer->validate() && $reservation->validate()) {
         $dbTrans = Yii::$app->db->beginTransaction();
         $customerSaved = $customer->save();
         if ($customerSaved) {
             $reservation->customer_id = $customer->id;
             $reservationSaved = $reservation->save();
             if ($reservationSaved) {
                 $dbTrans->commit();
             } else {
                 $dbTrans->rollback();
             }
         } else {
             $dbTrans->rollback();
         }
     }
     return $this->render('createCustomerAndReservation', ['customer' => $customer, 'reservation' => $reservation]);
 }
 public function actionCreateCustomerAndReservation()
 {
     $customer = new \app\models\Customer();
     $reservation = new \app\models\Reservation();
     // It is useful to set fake customer_id to reservation model to avoid validationerror (because customer_id is mandatory)
     $reservation->customer_id = 0;
     if ($customer->load(Yii::$app->request->post()) && $reservation->load(Yii::$app->request->post()) && $customer->validate() && $reservation->validate()) {
         $dbTrans = Yii::$app->db->beginTransaction();
         $customerSaved = $customer->save();
         if ($customerSaved) {
             $reservation->customer_id = $customer->id;
             $reservationSaved = $reservation->save();
             if ($reservationSaved) {
                 $dbTrans->commit();
             } else {
                 $dbTrans->rollback();
             }
         } else {
             $dbTrans->rollback();
         }
     }
     return $this->render('createCustomerAndReservation', ['customer' => $customer, 'reservation' => $reservation]);
 }