Laravel Controller Repository - dathalongbay/notes GitHub Wiki
public function storeTableRestaurant(Request $request)
{
$currentUser = Auth::user();
// check if is role cskh
if ($currentUser->getRole()->id == 2) {
return redirect(action('Admin\Bookings\Booking@cskh'));
}
if ($currentUser->hasRole('restaurant')) {
$resIdFromCurrentUser = ($currentUser->restaurants()->first()) ['code']; // Lấy ra giá trị nhà hàng đầu tiên vì quan hệ user - restaurant (n:n)
$restaurant = new Restaurant([
'code' => (int) $resIdFromCurrentUser,
'customerServiceTableAmount' => $request->customer_service_table_amount,
'websiteTableAmount' => $request->website_table_amount,
]);
$doUpdate = $this->restaurantRepo->updateRestaurant($restaurant);
$patternRegexDateTime = "/^\d\d\d\d-\d\d-\d\d \d\d:\d\d$/";
$dataBookingSeatSchedules = [];
if (isset($request->schedule_id) && is_array($request->schedule_id) && !empty($request->schedule_id)) {
for($i = 0; $i < count($request->schedule_id); $i++) {
$checkStartTime = strtotime($request->start_time[$i]);
$checkEndTime = strtotime($request->end_time[$i]);
/* $a[] = preg_match($patternRegexDateTime, $request->start_time[$i]);
$b[] = preg_match($patternRegexDateTime, $request->end_time[$i]);*/
if (isset($request->schedule_id[$i]) && isset($request->status[$i]) && isset($request->source[$i]) && isset($request->start_time[$i]) && isset($request->end_time[$i]) && isset($request->seat_amount[$i]) && ($request->seat_amount[$i] >= 0) &&
(preg_match($patternRegexDateTime, $request->start_time[$i]) == 1) && (preg_match($patternRegexDateTime, $request->end_time[$i]) == 1)
&& ($checkStartTime < $checkEndTime)
) {
$dataBookingSeatSchedules[$i] = [
"id" => $request->schedule_id[$i],"status" => $request->status[$i],
"restaurant_code" => (int) $resIdFromCurrentUser, "source" => $request->source[$i], "start_time" => $request->start_time[$i], "end_time" => $request->end_time[$i], "seat_amount" => $request->seat_amount[$i]
];
}
}
}
if (is_array($dataBookingSeatSchedules) && !empty($dataBookingSeatSchedules)) {
foreach($dataBookingSeatSchedules as $dataBookingSeatScheduleItem){
$dataBookingSeatScheduleItemId = (int)$dataBookingSeatScheduleItem["id"];
$status = (int)$dataBookingSeatScheduleItem["status"];
unset($dataBookingSeatScheduleItem["id"]);
unset($dataBookingSeatScheduleItem["status"]);
if ($dataBookingSeatScheduleItemId > 0 && $status == 1) {
$this->bookingSeatSchedulesRepository->update($dataBookingSeatScheduleItem, $dataBookingSeatScheduleItemId);
}
if (!$dataBookingSeatScheduleItemId) {
$this->bookingSeatSchedulesRepository->create($dataBookingSeatScheduleItem);
}
if ($dataBookingSeatScheduleItemId > 0 && $status == 0) {
$this->bookingSeatSchedulesRepository->delete($dataBookingSeatScheduleItemId);
}
}
}
if ($doUpdate->messageCode == Message::SUCCESS) {
return redirect(action('Admin\Bookings\Booking@configTableRestaurant'))->with('flashMessage', 'Cập nhật thành công');
} else {
return redirect(action('Admin\Bookings\Booking@configTableRestaurant'))->with('flashMessage', $doUpdate->message);
}
}
return redirect(action('Admin\Bookings\Booking@configTableRestaurant'))->with('flashMessage', '');
} // end update