/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update($id) { $a = Booking::where('id', $id)->update(['verify' => 1]); $b = BookingDetail::where('bookingID', $id)->update(['verify' => 1]); if ($a <= 0 || $b <= 0) { return response()->json(['result' => false, 'message' => 'can not find this booking.']); } $temp_booking = ViewBookingAndDetail::where('active', 1)->where('id', $id)->groupBy('id')->orderBy('zoneNumber')->get(); foreach ($temp_booking as $key => $value) { $value->detail = BookingDetail::where('bookingID', $value->id)->get(); $value->user = User::where('id', $value->userID)->first(); } return response()->json(['result' => true, 'message' => 'success', 'data' => $temp_booking]); }
public function search(Request $request) { $rules = array('date' => 'required', 'page' => 'required', 'pageSize' => 'required'); $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return response()->json(array('result' => false, 'message' => $validator->errors()->first())); } $zone = $request->input('zone'); $type = $request->input('type'); $status = $request->input('status'); $date = $request->input('date') . ' 00:00:00'; $page = $request->input('page'); $pageSize = $request->input('pageSize'); $skip = ($page - 1) * $pageSize; if ($zone == 99 && $type == 99 && $status == 99) { $booking = Booking::where('sale_at', $date)->where('payment_type', 1)->skip($skip)->take($pageSize)->get(); $count = Booking::where('sale_at', $date)->where('payment_type', 1)->count(); return response()->json(['result' => true, 'data' => $booking, 'total' => $count]); } $query = \DB::table('v_booking_and_detail')->where('sale_at', $date)->where('payment_type', 1); if (isset($zone) && $zone != 99) { $query->where('zoneID', $zone); } if (isset($type) && $type != 99) { $query->where('type', $type); } if (isset($status) && $status != 99) { $query->where('payment', $status); } /* \Event::listen('illuminate.query', function($query) { var_dump($query); });*/ $countQuery = $query->groupBy('id'); $booking = $query->skip($skip)->take($pageSize)->get(); $sql = $query->toSql(); $count = ViewBookingAndDetail::from(\DB::raw('(' . $countQuery->toSql() . ') as table_count'))->mergeBindings($countQuery)->count(); return response()->json(['result' => true, 'data' => $booking, 'total' => $count, 'sql' => $sql]); }