diff --git a/src/utils/productDealMethod.ts b/src/utils/productDealMethod.ts index c44011d..b700d05 100644 --- a/src/utils/productDealMethod.ts +++ b/src/utils/productDealMethod.ts @@ -607,6 +607,7 @@ export type TransactionTradeProductSource = { product?: (ProductUnitSource & { title?: string | null }) | null wallet?: { product?: (ProductUnitSource & { title?: string | null }) | null } | null title?: string | null + order?: unknown } /** محصول معاملهشده — نه لزوماً همان کیف پول (مثلاً خرید مفتول با کیف کاتد) */ @@ -654,6 +655,53 @@ export function getTransactionTradePriceLabel(product?: (ProductUnitSource & { t return `قیمت هر ${getWeightUnit()} ${getTradePriceUnitLabel()}` } +/** برچسب «موجودی کیف …» برای سطر موجودی فلز در جزئیات معامله */ +export function getTransactionMetalWalletBalanceLabel( + item?: TransactionTradeProductSource | null, +): string { + if (!item) { + return getGoldWalletLabel() + } + + const tradeProduct = item.order ? resolveTransactionTradeProduct(item) : null + const walletProduct = item.wallet?.product + const tradeTitle = (tradeProduct?.title ?? '').trim() + const walletTitle = (walletProduct?.title ?? '').trim() + + if (tradeTitle) { + if (!walletTitle) { + return `موجودی کیف ${tradeTitle}` + } + + return `موجودی ${tradeTitle}` + } + + if (walletTitle) { + return `موجودی ${walletTitle}` + } + + return getGoldWalletLabel(item.wallet?.product?.group_type) +} + +/** واحد نمایش موجودی فلز در جزئیات معامله */ +export function getTransactionMetalWalletBalanceUnit( + item?: TransactionTradeProductSource | null, +): string { + const tradeProduct = item?.order ? resolveTransactionTradeProduct(item) : null + const walletProduct = item?.wallet?.product + const product = tradeProduct?.title ? tradeProduct : walletProduct + + if (product && usesQuantityTrade(product)) { + return getProductQuantityUnit(product) + } + + if (product?.title) { + return getWeightUnit() + } + + return getWeightUnit() +} + /** وزن کل زیر مقدار مبادلهشده — فقط محصول تعدادی (نه trade_by_quantity) */ export function shouldShowTransactionTotalWeightLine(product?: ProductUnitSource | null) { if (!product || usesQuantityTrade(product) || !hasProductUnitWeight(product)) { diff --git a/src/views/base/transactions/components/TransactionDetailPanel.vue b/src/views/base/transactions/components/TransactionDetailPanel.vue index c25d5d7..aeecf6d 100644 --- a/src/views/base/transactions/components/TransactionDetailPanel.vue +++ b/src/views/base/transactions/components/TransactionDetailPanel.vue @@ -60,29 +60,23 @@ ریال -