diff --git a/resources/js/pages/admin/manage/cuttings/form/CuttingPosCartDetailDialog.vue b/resources/js/pages/admin/manage/cuttings/form/CuttingPosCartDetailDialog.vue index 9dfaa20..df4bf6f 100644 --- a/resources/js/pages/admin/manage/cuttings/form/CuttingPosCartDetailDialog.vue +++ b/resources/js/pages/admin/manage/cuttings/form/CuttingPosCartDetailDialog.vue @@ -5,78 +5,63 @@ import { DialogHeader, DialogTitle, } from '@/components/ui/dialog'; +import { Separator } from '@/components/ui/separator'; import { formatRupiah } from '@/lib/rupiah'; +import type { FormWithErrors } from '@/lib/form'; import type { CuttingMaterialCartItem, CuttingResultCartItem } from '@/types/cutting'; +import CuttingPosMaterialSummaryItems from './CuttingPosMaterialSummaryItems.vue'; +import CuttingPosResultSummaryItems from './CuttingPosResultSummaryItems.vue'; defineProps<{ + form: FormWithErrors & { description: string; processing?: boolean }; materialCart: CuttingMaterialCartItem[]; resultCart: CuttingResultCartItem[]; materialLineCost: (item: CuttingMaterialCartItem) => number; totalMaterialCost: number; + totalResultPieces: number; isCreateMode: boolean; }>(); +const emit = defineEmits<{ + 'remove-material': [index: number]; + 'sync-material-field': [index: number]; + 'remove-combination': [combinationId: number]; + 'sync-combination-result': [combinationId: number, result: number | null]; + 'remove-result': [index: number]; + 'sync-result-totals': [item: CuttingResultCartItem]; + 'sync-result-field': [index: number]; +}>(); + const open = defineModel('open', { required: true });