fix ذشزنلقخعدی

This commit is contained in:
2026-06-23 16:02:41 +03:30
parent 29c58c4202
commit ac28eda09f
29 changed files with 624 additions and 167 deletions
+49 -2
View File
@@ -42,6 +42,19 @@ export function isKatodMesGroup(groupType?: string | null) {
return normalizeProductGroupType(groupType) === BOURSECU_GROUP_KATOD
}
export function isShamshMesGroup(groupType?: string | null, title?: string | null) {
if (!isBoursecuProject()) {
return false
}
const group = normalizeProductGroupType(groupType)
if (group === 'شمش') {
return true
}
return (title ?? '').includes('شمش')
}
export function isGoldOnlyDealGroup(groupType?: string | null) {
return isMeltedTradeGroup(groupType)
}
@@ -51,6 +64,7 @@ export interface ProductUnitSource {
direct_price?: number | null
group_type?: string | null
amount?: number | null
trade_by_quantity?: boolean | number | null
}
export function isWeightBasedProductUnit(unit?: string | null) {
@@ -111,8 +125,17 @@ export function formatProductWeightAmount(amount?: number | null, product?: Prod
return `${value} ${weightUnit}`
}
/** فقط محصول تعدادی (مثل سکه): «هر عدد X گرم» — معامله مقداری با trade_by_quantity نیست */
export function shouldShowPerUnitWeightHint(product?: ProductUnitSource | null) {
if (!product || !hasProductUnitWeight(product) || usesQuantityTrade(product)) {
return false
}
return isCountBasedProduct(product)
}
export function getProductUnitWeightLabel(product?: ProductUnitSource | null) {
if (!hasProductUnitWeight(product)) {
if (!shouldShowPerUnitWeightHint(product)) {
return null
}
@@ -152,12 +175,16 @@ export function formatProductInventoryBalance(product?: (ProductUnitSource & { w
return `${quantityPart} · هر عدد ${unitWeight}`
}
/** محصول تعدادی: موجودی wallet.gold = تعداد قلم، نه وزن */
/** محصول تعدادی: موجودی wallet.gold = تعداد قلم، نه وزن — معامله مقداری با trade_by_quantity نیست */
export function isCountBasedProduct(product?: ProductUnitSource | null) {
if (!product) {
return false
}
if (usesQuantityTrade(product)) {
return false
}
if (isWeightBasedProductUnit(product.unit)) {
return false
}
@@ -567,3 +594,23 @@ export function getMetalTypeTradeLabel() {
export function getTradePriceUnitLabel() {
return useSettingsStore().metalTypeLabel
}
/** برچسب قیمت حین معامله — معامله مقداری: نام و واحد همان محصول */
export function getTransactionTradePriceLabel(product?: (ProductUnitSource & { title?: string | null }) | null) {
if (product && usesQuantityTrade(product)) {
const unit = getProductQuantityUnit(product)
const title = (product.title ?? '').trim()
return title ? `قیمت هر ${unit} ${title}` : `قیمت هر ${unit}`
}
return `قیمت هر ${getWeightUnit()} ${getTradePriceUnitLabel()}`
}
/** وزن کل زیر مقدار مبادله‌شده — فقط محصول تعدادی (نه trade_by_quantity) */
export function shouldShowTransactionTotalWeightLine(product?: ProductUnitSource | null) {
if (!product || usesQuantityTrade(product) || !hasProductUnitWeight(product)) {
return false
}
return isCountBasedProduct(product)
}