fix ذشزنلقخعدی
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user