feat: enhance grouping of purchase items by sorting variants and assigning item numbers
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (8.3) (push) Waiting to run
tests / ci (8.4) (push) Waiting to run
tests / ci (8.5) (push) Waiting to run

This commit is contained in:
Yoga Pangestu 2026-07-31 01:34:16 +07:00
parent c14b32b5bb
commit ec59a87527

View File

@ -78,27 +78,33 @@ interface GroupedPurchaseItems {
function getGroupedItems(items: PurchaseItemDetail[]): GroupedPurchaseItems[] {
const groups: Record<number, GroupedPurchaseItems> = {};
let itemCounter = 0;
items.forEach((item) => {
const rawMaterialId = item.raw_material_id ?? 0;
const rawMaterialName = item.raw_material_name || 'Bahan Baku Tidak Diketahui';
const unitLabel = item.raw_material_unit_label;
if (!groups[rawMaterialId]) {
groups[rawMaterialId] = {
rawMaterialId,
rawMaterialName,
unitLabel,
rawMaterialName: item.raw_material_name || 'Bahan Baku Tidak Diketahui',
unitLabel: item.raw_material_unit_label,
items: [],
};
}
itemCounter++;
groups[rawMaterialId].items.push({ ...item, item_number: itemCounter });
groups[rawMaterialId].items.push({ ...item });
});
return Object.values(groups);
let itemCounter = 0;
return Object.values(groups).map((group) => {
group.items.sort((a, b) => (a.variant ?? '').localeCompare(b.variant ?? ''));
return {
...group,
items: group.items.map((item) => {
itemCounter++;
return { ...item, item_number: itemCounter };
}),
};
});
}
const verificationModalOpen = ref(false);