diff --git a/app/Services/Admin/Manage/TransactionService.php b/app/Services/Admin/Manage/TransactionService.php index d70cfb5..31b5bff 100644 --- a/app/Services/Admin/Manage/TransactionService.php +++ b/app/Services/Admin/Manage/TransactionService.php @@ -309,13 +309,15 @@ public function update(Order $order, array $data): Order DB::table('order_items')->insert($itemRows); $newPaymentType = $data['payment_type'] ?? $order->payment_type->value; + $oldStatus = $order->status; + $newStatus = ($data['is_completed'] ?? false) ? OrderStatus::COMPLETED : OrderStatus::PENDING; $order->update([ 'customer_id' => $data['customer_id'] ?? null, 'marketing_id' => $data['marketing_id'] ?? null, 'channel' => $data['channel'] ?? $order->channel->value, 'price_type' => $priceType, - 'status' => ($data['is_completed'] ?? false) ? OrderStatus::COMPLETED : OrderStatus::PENDING, + 'status' => $newStatus, 'payment_type' => $newPaymentType, 'tiktok_order_id' => $data['tiktok_order_id'] ?? null, 'shopee_order_id' => $data['shopee_order_id'] ?? null, @@ -327,6 +329,17 @@ public function update(Order $order, array $data): Order 'notes' => $data['notes'] ?? null, ]); + if ($oldStatus !== OrderStatus::COMPLETED && $newStatus === OrderStatus::COMPLETED) { + $now = now(); + DB::table('orders') + ->where('id', $order->id) + ->update([ + 'created_at' => $now, + 'updated_at' => $now, + ]); + $order->refresh(); + } + $this->applyStock($data['items'], $stockType, -1); if ($oldPaymentType === PaymentType::CASH && $newPaymentType !== PaymentType::CASH->value) {