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]); }