diff --git a/ui/src/pages/ProductionProductCostingHasCostDetail.vue b/ui/src/pages/ProductionProductCostingHasCostDetail.vue index b381aac..543f825 100644 --- a/ui/src/pages/ProductionProductCostingHasCostDetail.vue +++ b/ui/src/pages/ProductionProductCostingHasCostDetail.vue @@ -457,7 +457,7 @@
@@ -2911,6 +2911,26 @@ function shouldIncludeRowInGroupTotal (grp, row) { return normalizedValue !== '0' && normalizedValue !== 'false' && normalizedValue !== 'hayir' } +// OrderEntry groupedRows ile ayni desen: sub-header degerleri ayri bir +// state/cache icinde tutulmaz; iki gorunen tutar kolonu satirlardan reaktif +// olarak her degisiklikte yeniden toplanir. +const detailGroupsWithTotals = computed(() => ( + detailGroups.value.map(group => { + const totals = (Array.isArray(group?.items) ? group.items : []).reduce((acc, row) => { + if (!shouldIncludeRowInGroupTotal(group, row)) return acc + acc.tryTotal += parseMoneyInput(row?.lTutar) + acc.usdTotal += resolveRowUSDTutar(row) + return acc + }, { tryTotal: 0, usdTotal: 0 }) + + return { + ...group, + tryTotal: totals.tryTotal, + usdTotal: totals.usdTotal + } + }) +)) + function refreshLiveGroupTotals () { // Totals are derived directly from reactive rows. The revision only forces // Quasar's table/sub-header render after an in-place row edit. @@ -2972,19 +2992,11 @@ function resolveRenderedGroupRowCount (groupIndex) { } function resolveGroupTRYTutar (groupIndex, _revision) { - const grp = detailGroups.value[groupIndex] - return (Array.isArray(grp?.items) ? grp.items : []).reduce((total, row) => { - if (!shouldIncludeRowInGroupTotal(grp, row)) return total - return total + resolveRowTRYTutar(row) - }, 0) + return parseMoneyInput(detailGroupsWithTotals.value[groupIndex]?.tryTotal) } function resolveGroupUSDTutar (groupIndex, _revision) { - const grp = detailGroups.value[groupIndex] - return (Array.isArray(grp?.items) ? grp.items : []).reduce((total, row) => { - if (!shouldIncludeRowInGroupTotal(grp, row)) return total - return total + resolveRowUSDTutar(row) - }, 0) + return parseMoneyInput(detailGroupsWithTotals.value[groupIndex]?.usdTotal) } function resolveGroupQuantity (grp) {