From 6c9d0aa427e85267634906746bdb5204a3437ead Mon Sep 17 00:00:00 2001 From: Sumon Ahmed Date: Mon, 21 Oct 2024 15:32:42 +0600 Subject: [PATCH] Admin Can Delete Order --- .../Controllers/Admin/OrderController.php | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Admin/OrderController.php b/app/Http/Controllers/Admin/OrderController.php index 46b4dc7..fcd0925 100644 --- a/app/Http/Controllers/Admin/OrderController.php +++ b/app/Http/Controllers/Admin/OrderController.php @@ -12,6 +12,7 @@ use App\Pathao\Facade\Pathao; use App\Product; use Illuminate\Support\Carbon; +use Illuminate\Support\Facades\DB; use Maatwebsite\Excel\Facades\Excel; class OrderController extends Controller @@ -390,7 +391,25 @@ public function destroy(Order $order) } return null; }, $products); - $order->delete(); + + DB::transaction(function () use ($order) { + $phone = $order->phone; + $order->delete(); + + // update data.is_fraud, data.is_repeat for other orders + $orders = Order::where('phone', $phone)->get(); + // is_fraud + $orders->each(function ($order) use ($orders) { + // where order_id is less than $order->id and status is CANCELLED or RETURNED + $order->update([ + 'data' => [ + 'is_fraud' => $orders->where('id', '<', $order->id)->whereIn('status', ['CANCELLED', 'RETURNED'])->count() > 0, + 'is_repeat' => $orders->where('id', '<', $order->id)->count() > 0, + ], + ]); + }); + }); + return request()->expectsJson() ? true : redirect(action([self::class, 'index'])) ->with('success', 'Order Has Been Deleted.'); }