From 1db67a9a07ced06c75f99825d12674e8e5e77b93 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Sun, 19 Jul 2026 18:17:49 +0700 Subject: [PATCH] feat: update raw material status management to use status enum instead of is_active --- app/Services/Master/RawMaterialService.php | 8 +++++--- .../raw-materials/table/raw-material-status-toggle.vue | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/Services/Master/RawMaterialService.php b/app/Services/Master/RawMaterialService.php index f088433..3ebec1e 100644 --- a/app/Services/Master/RawMaterialService.php +++ b/app/Services/Master/RawMaterialService.php @@ -176,13 +176,15 @@ public function delete(RawMaterial $rawMaterial, User $user): void public function toggleStatus(RawMaterial $rawMaterial, array $validated, User $user): void { + $isActive = $validated['status'] === 'active'; + $rawMaterial->update([ - 'is_active' => (bool) $validated['is_active'], + 'is_active' => $isActive, ]); $this->cacheForgetByPattern('master:raw_materials:*'); - $statusLabel = $validated['is_active'] ? 'aktif' : 'nonaktif'; + $statusLabel = $isActive ? 'aktif' : 'nonaktif'; $this->notifyOwner( 'Ubah Status Bahan Baku', @@ -306,7 +308,7 @@ public function applyToggleStatus(OwnerVerificationRequest $verificationRequest) $newPayload = $this->payloadNew($verificationRequest); $rawMaterial->update([ - 'is_active' => (bool) ($newPayload['is_active'] ?? false), + 'is_active' => ($newPayload['status'] ?? 'inactive') === 'active', ]); } diff --git a/resources/js/pages/admin/master/raw-materials/table/raw-material-status-toggle.vue b/resources/js/pages/admin/master/raw-materials/table/raw-material-status-toggle.vue index b092cb5..fdf4b56 100644 --- a/resources/js/pages/admin/master/raw-materials/table/raw-material-status-toggle.vue +++ b/resources/js/pages/admin/master/raw-materials/table/raw-material-status-toggle.vue @@ -5,6 +5,7 @@ import { toast } from 'vue-sonner'; import { Badge } from '@/components/ui/badge'; import { Switch } from '@/components/ui/switch'; import { useCan } from '@/composables/useCan'; +import { ProductStatus } from '@/constants/active-status'; import { toggle_status } from '@/routes/admin/master/raw_materials'; import type { RawMaterialListItem } from '@/types/raw-material'; @@ -37,11 +38,13 @@ function toggleStatus(checked: boolean) { return; } + const newStatus = checked ? ProductStatus.ACTIVE : ProductStatus.INACTIVE; + processing.value = true; isActive.value = checked; router.patch(toggle_status.url(props.material.id), { - is_active: checked, + status: newStatus, }, { preserveScroll: true, onError: (errors: any) => {