feat: update raw material status management to use status enum instead of is_active

This commit is contained in:
Yoga Pangestu 2026-07-19 18:17:49 +07:00
parent 03ea092d39
commit 1db67a9a07
2 changed files with 9 additions and 4 deletions

View File

@ -176,13 +176,15 @@ public function delete(RawMaterial $rawMaterial, User $user): void
public function toggleStatus(RawMaterial $rawMaterial, array $validated, User $user): void public function toggleStatus(RawMaterial $rawMaterial, array $validated, User $user): void
{ {
$isActive = $validated['status'] === 'active';
$rawMaterial->update([ $rawMaterial->update([
'is_active' => (bool) $validated['is_active'], 'is_active' => $isActive,
]); ]);
$this->cacheForgetByPattern('master:raw_materials:*'); $this->cacheForgetByPattern('master:raw_materials:*');
$statusLabel = $validated['is_active'] ? 'aktif' : 'nonaktif'; $statusLabel = $isActive ? 'aktif' : 'nonaktif';
$this->notifyOwner( $this->notifyOwner(
'Ubah Status Bahan Baku', 'Ubah Status Bahan Baku',
@ -306,7 +308,7 @@ public function applyToggleStatus(OwnerVerificationRequest $verificationRequest)
$newPayload = $this->payloadNew($verificationRequest); $newPayload = $this->payloadNew($verificationRequest);
$rawMaterial->update([ $rawMaterial->update([
'is_active' => (bool) ($newPayload['is_active'] ?? false), 'is_active' => ($newPayload['status'] ?? 'inactive') === 'active',
]); ]);
} }

View File

@ -5,6 +5,7 @@ import { toast } from 'vue-sonner';
import { Badge } from '@/components/ui/badge'; import { Badge } from '@/components/ui/badge';
import { Switch } from '@/components/ui/switch'; import { Switch } from '@/components/ui/switch';
import { useCan } from '@/composables/useCan'; import { useCan } from '@/composables/useCan';
import { ProductStatus } from '@/constants/active-status';
import { toggle_status } from '@/routes/admin/master/raw_materials'; import { toggle_status } from '@/routes/admin/master/raw_materials';
import type { RawMaterialListItem } from '@/types/raw-material'; import type { RawMaterialListItem } from '@/types/raw-material';
@ -37,11 +38,13 @@ function toggleStatus(checked: boolean) {
return; return;
} }
const newStatus = checked ? ProductStatus.ACTIVE : ProductStatus.INACTIVE;
processing.value = true; processing.value = true;
isActive.value = checked; isActive.value = checked;
router.patch(toggle_status.url(props.material.id), { router.patch(toggle_status.url(props.material.id), {
is_active: checked, status: newStatus,
}, { }, {
preserveScroll: true, preserveScroll: true,
onError: (errors: any) => { onError: (errors: any) => {