orderBy('created_at', 'DESC') ->paginate(100); return OrderResource::collection($orders); } public function listWarehouseOrders(String $id){ $orders = Order::where('warehouse', $id)->orderBy('created_at', 'DESC') ->paginate(100); return OrderResource::collection($orders); } public function updateStep(String $orderId, Request $request, UpdateOrderStepLogic $logic){ return $logic->execute($orderId, $request); // return (new UpdateOrderStepLogic())->execute($orderId, $request) ? 200 : 408; } public function updatePackingList(String $orderId, Request $request){ $packingList = PackingList::updateOrCreate(['order_id' => $orderId],['reference_no' => $request->input('reference_no')]); $confirmed = true; $packages = []; foreach ($request->input('packages') as $package) { if(trim($package['description']) !== '' || $package['description'] !== null){ $packages[] = $package; if($package['width'] == 0 || $package['length'] == 0 || $package['height'] == 0){ $confirmed = false; } } } if(empty($packages)){ $confirmed = false; } $packingList->packages()->delete(); $packingList->packages()->createMany($packages); $packingList->confirmed = $confirmed; if($packingList->save()){ } return 408; } public function orderShippingArrangement(String $orderId, Request $request){ $shippingArrangement = ShippingArrangement::updateOrCreate(['order_id' => $orderId],['container_no' => $request->input('container_no'), 'seal_no' => $request->input('seal_no')]); $shippingArrangement->shippingSchedule()->delete(); $shippingArrangement->shippingSchedule()->create(['ETD' => Carbon::parse($request->input('schedule')['ETD']), 'ETA' => Carbon::parse($request->input('schedule')['ETA'])]); return 200; } public function rescheduleShipping(String $orderId, Request $request){ $shippingArrangement = ShippingArrangement::where('order_id', $orderId)->first(); $lastSchedule = $shippingArrangement->shippingSchedule()->orderBy('created_at', 'desc')->first(); $shippingArrangement->shippingSchedule()->update(['status' => 2]); CustomIssues::create(['schedule_id' => $lastSchedule->id, 'remark' => $request->input('remark')]); $shippingArrangement->shippingSchedule()->create(['ETD' => Carbon::parse($request->input('ETD')), 'ETA' => Carbon::parse($request->input('ETA'))]); return 200; } public function delete(String $orderId){ /** @var Order $order */ $order = Order::findOrFail($orderId); $order->delete(); } }