diff --git a/app/Classes/Modules/Companies/Services/ListsCompanyCancelledOrders.php b/app/Classes/Modules/Companies/Services/ListsCompanyCancelledOrders.php index ea8eec2..3a54f2b 100644 --- a/app/Classes/Modules/Companies/Services/ListsCompanyCancelledOrders.php +++ b/app/Classes/Modules/Companies/Services/ListsCompanyCancelledOrders.php @@ -32,7 +32,7 @@ class ListsCompanyCancelledOrders try { /** @var Order $orders */ $orders = $this->repository->where('company_id', $id) - ->onlyTrashed()->get(); + ->onlyTrashed()->orderBy('created_at', 'desc')->get(); return OrderResource::collection($orders); diff --git a/app/Classes/Modules/Companies/Services/ListsCompanyCompleteOrders.php b/app/Classes/Modules/Companies/Services/ListsCompanyCompleteOrders.php index 42d1948..70aeb4a 100644 --- a/app/Classes/Modules/Companies/Services/ListsCompanyCompleteOrders.php +++ b/app/Classes/Modules/Companies/Services/ListsCompanyCompleteOrders.php @@ -31,7 +31,7 @@ class ListsCompanyCompleteOrders try { /** @var Order $orders */ $orders = $this->repository->where('company_id', $id) - ->where('complete', true)->get(); + ->where('complete', true)->orderBy('created_at', 'desc')->get(); return OrderResource::collection($orders); diff --git a/app/Classes/Modules/Companies/Services/ListsCompanyOrdersCategory.php b/app/Classes/Modules/Companies/Services/ListsCompanyOrdersCategory.php index 8cff3a1..2e0ab0d 100644 --- a/app/Classes/Modules/Companies/Services/ListsCompanyOrdersCategory.php +++ b/app/Classes/Modules/Companies/Services/ListsCompanyOrdersCategory.php @@ -27,7 +27,7 @@ class ListsCompanyOrdersCategory try { /** @var Order $orders */ $orders = $this->repository->where('company_id', $id) - ->whereIn('current_step', $category)->get(); + ->whereIn('current_step', $category)->orderBy('created_at', 'desc')->get(); return OrderResource::collection($orders); } catch (\Exception $exception){ diff --git a/app/Classes/Modules/Orders/Services/ListsOrder.php b/app/Classes/Modules/Orders/Services/ListsOrder.php index c5a9c63..8801ae3 100644 --- a/app/Classes/Modules/Orders/Services/ListsOrder.php +++ b/app/Classes/Modules/Orders/Services/ListsOrder.php @@ -1,10 +1,4 @@ push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => 'Your Order has been loaded into container']); break; case Constants::ORDER_WAREHOUSE_RECEIVING_STEP: - $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => 'Arrived at China\'s warehouse']); + $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => 'Arrived at China\'s warehouse on: ['.Carbon::parse($order->receiveNotes()->firstOrFail()->receive_date)->format('d-m-Y').']']); break; case Constants::ORDER_WAREHOUSE_PACKING_STEP: - $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => 'Your Order has been loaded into container']); + $packages = $order->packingLists()->firstOrFail()->packages()->selectRaw(DB::raw('((width/100) * (height/100) * (length/100)) * quantity as cbm, quantity'))->get(); + $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => '['.$packages->sum('quantity').' Packages, '.number_format((float)$packages->sum('cbm'), 2, '.', '').' CBM] Your order has been loaded into container']); $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => 'Invoice has been issued, waiting for shipping payment']); break; case Constants::ORDER_SHIPPING_STEP: + $shippingArrangment = $order->shippingArrangement()->first(); + if($shippingArrangment){ + $shippingSchedules = $shippingArrangment->shippingSchedule()->get(); + foreach ($shippingSchedules as $schedule){ + if($schedule->status === "2"){ + $customeIssue = CustomIssues::where('schedule_id', $schedule->id)->firstOrFail(); + $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => '[ETD: '.$schedule->ETD.', ETA: '.$schedule->ETA.'] Shipping Schedule failed due to: '.$customeIssue->remark]); + } else { + $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => '[ETD: '.$schedule->ETD.', ETA: '.$schedule->ETA.'] Your Order has been scheduled for shipping ']); + } + } + } $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => 'Arrived to Malaysian port']); $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => 'Custom clearance is successful']); break; @@ -54,6 +69,22 @@ class ListsOrderHistory } } + if($order->current_step === Constants::ORDER_SHIPPING_STEP){ + $shippingArrangment = $order->shippingArrangement()->first(); + if($shippingArrangment){ + $shippingSchedules = $shippingArrangment->shippingSchedule()->get(); + foreach ($shippingSchedules as $schedule){ + if($schedule->status === "2"){ + $customeIssue = CustomIssues::where('schedule_id', $schedule->id)->firstOrFail(); + $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => '[ETD: '.$schedule->ETD.', ETA: '.$schedule->ETA.'] Shipping Schedule failed due to: '.$customeIssue->remark]); + } else { + $history->push(['date' => $step->updated_at->format('d-m-Y H:i'), 'description' => '[ETD: '.$schedule->ETD.', ETA: '.$schedule->ETA.'] Your Order has been scheduled for shipping ']); + } + } + } + + } + if($complete){ $history->push(['date' => $lastUpdate->format('d-m-Y H:i'), 'description' => 'Your Order has successfully been delivered']); } diff --git a/app/Http/Controllers/Orders/OrderController.php b/app/Http/Controllers/Orders/OrderController.php index ac31725..53c8a51 100644 --- a/app/Http/Controllers/Orders/OrderController.php +++ b/app/Http/Controllers/Orders/OrderController.php @@ -75,7 +75,9 @@ class OrderController extends Controller 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; } diff --git a/app/Models/Order.php b/app/Models/Order.php index 25d3236..e25bfd5 100644 --- a/app/Models/Order.php +++ b/app/Models/Order.php @@ -22,7 +22,7 @@ class Order extends AbstractModel public function receiveNotes() { - return $this->hasMany(ReceiveNote::class, 'order_id'); + return $this->hasOne(ReceiveNote::class, 'order_id'); } public function packingLists() diff --git a/resources/assets/vue/components/order/elements/OrderComponenet.vue b/resources/assets/vue/components/order/elements/OrderComponenet.vue index 0dacc27..f3c7535 100644 --- a/resources/assets/vue/components/order/elements/OrderComponenet.vue +++ b/resources/assets/vue/components/order/elements/OrderComponenet.vue @@ -69,9 +69,7 @@
{{detail.date}}
-
- {{detail.description}} -
+