diff --git a/resources/js/pages/admin/manage/purchases/table/PurchaseGroupedTable.vue b/resources/js/pages/admin/manage/purchases/table/PurchaseGroupedTable.vue index 8ab705c..4e4c0b7 100644 --- a/resources/js/pages/admin/manage/purchases/table/PurchaseGroupedTable.vue +++ b/resources/js/pages/admin/manage/purchases/table/PurchaseGroupedTable.vue @@ -48,15 +48,37 @@ function rowNumber(index: number): number { return groupedTableRowNumber(props.firstItem, index); } +interface ProductInfo { + name: string; + unitLabel?: string; +} + +function productInfos(items: PurchaseItemDetail[]): ProductInfo[] { + const map = new Map(); + + items.forEach((item) => { + const id = item.raw_material_id ?? 0; + if (id && !map.has(id)) { + map.set(id, { + name: item.raw_material_name || 'Bahan Baku Tidak Diketahui', + unitLabel: item.raw_material_unit_label, + }); + } + }); + + return [...map.values()]; +} + interface GroupedPurchaseItems { rawMaterialId: number; rawMaterialName: string; unitLabel?: string; - items: PurchaseItemDetail[]; + items: (PurchaseItemDetail & { item_number: number })[]; } function getGroupedItems(items: PurchaseItemDetail[]): GroupedPurchaseItems[] { const groups: Record = {}; + let itemCounter = 0; items.forEach((item) => { const rawMaterialId = item.raw_material_id ?? 0; @@ -72,7 +94,8 @@ function getGroupedItems(items: PurchaseItemDetail[]): GroupedPurchaseItems[] { }; } - groups[rawMaterialId].items.push(item); + itemCounter++; + groups[rawMaterialId].items.push({ ...item, item_number: itemCounter }); }); return Object.values(groups); @@ -102,9 +125,16 @@ function openVerificationDetail(requestId: number | undefined) { {{ rowNumber(index) }}
-

- {{ purchase.supplier?.name }} +

+

+

+ Supplier: {{ purchase.supplier?.name }} +

{{ purchase.pending_request_submitted_by_name }} mengajukan {{ purchase.pending_request_action_label?.toLowerCase() }} belanja ini — @@ -138,6 +168,7 @@ function openVerificationDetail(requestId: number | undefined) { + # Varian Jumlah Harga Satuan @@ -146,20 +177,15 @@ function openVerificationDetail(requestId: number | undefined) { - + Belum ada item