private function saveDetail($booking, $locks, $user) { $count = 0; foreach ($locks as $key => $lock) { $zoneCode = substr($lock, 0, 1); $calendar = Calendar::where('opened_at', $booking->sale_at)->where('code', $zoneCode)->first(); $detail = BookingDetail::create(['code' => date('Ymd-His') . '-' . $user->id . '-' . ($count + 1), 'bookingID' => $booking->id, 'bookingCode' => $booking->code, 'zoneID' => $calendar->zoneID, 'zoneCode' => $calendar->code, 'zoneNumber' => $lock, 'price' => $calendar->price_type2, 'status' => 'BK', 'sale_at' => $booking->sale_at]); $count++; } }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $date = new DateTime(); $date->setTimezone(new DateTimeZone('Asia/Bangkok')); $rules = array('products' => 'required', 'date' => 'required', 'productName' => 'required', 'totalPrice' => 'required|integer', 'number' => 'required|integer'); $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return response()->json(array('result' => false, 'message' => 'invalid input field.')); } $user = \Auth::user(); if ($user == null) { return response()->json(array('result' => false, 'message' => 'user is not define.')); } $booking_code = date('YmdHms') . '-' . $user->id; $booking = Booking::create(['sale_at' => $request->input('date'), 'userID' => $user->id, 'userCode' => $user->code, 'quantity' => $request->input('number'), 'totalPrice' => $request->input('totalPrice'), 'code' => $booking_code, 'productName' => $request->input('productName'), 'status' => 'BK', 'type' => $request->input('type'), 'payment_type' => 1]); if ($booking == null) { return response()->json(array('result' => false, 'message' => 'booking create fails.')); } //$open = (object) $arr[$i]; $products_arr = $request->input('products'); $count = 0; $detail_result = []; foreach ($products_arr as $key => $product_arr) { # code... $product = (object) $product_arr; $calendar = Calendar::where('opened_at', $request->input('date'))->where('code', $product->code)->get()->first(); $detail = BookingDetail::create(['code' => $date->format('Ymd-His') . '-' . $user->id . '-' . ($count + 1), 'bookingID' => $booking->id, 'bookingCode' => $booking->code, 'zoneID' => $calendar->zoneID, 'zoneCode' => $calendar->code, 'zoneNumber' => $product->name, 'price' => $product->price, 'status' => 'BK', 'sale_at' => $request->input('date')]); if ($detail != null) { array_push($detail_result, $detail->id); $count++; } } //end foreach if ($count == count($products_arr)) { return response()->json(array('result' => true, 'message' => 'success', 'bookingCode' => $booking->code, 'detail' => $detail_result)); } return response()->json(array('result' => false, 'message' => 'booking create fails.')); }