Match the TV header quote to the product list buy and sell prices.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-27 21:42:17 +03:30
co-authored by Cursor
parent 7770c763cc
commit 8083c4f06d
4 changed files with 79 additions and 23 deletions
+11 -6
View File
@@ -61,6 +61,15 @@ function sellCashFee(product: Product, base: number) {
return resolveProductCashFeeSellRial(product, base, cashFeeOptions(product, 'sell'))
}
/** سمت خرید/فروش همکار؛ اگر سرور نفرستاده باشد همان قیمت وسط قبلی */
function colleagueSideUnit(product: Product, side: 'buy' | 'sell', live: number): number {
const sided = side === 'buy' ? Number(product.price_buy ?? 0) : Number(product.price_sell ?? 0)
if (sided > 0) {
return sided
}
return getColleagueSourcedUnitPrice(product, live)
}
/** قیمت منبع همکار؛ اگر خالی بود آبشده همان مظنهٔ صفحه اصلی را می‌گیرد */
function getColleagueSourcedUnitPrice(product: Product, live: number, apiPrice = Number(product.price ?? 0)): number {
if (apiPrice > 0) {
@@ -134,7 +143,7 @@ export function getProductBaseBuyPrice(product?: Product | null): number {
}
if (isColleaguePriceProduct(product)) {
return getColleagueSourcedUnitPrice(product, getTradeBuyPrice(lastPrice.value))
return colleagueSideUnit(product, 'buy', getTradeBuyPrice(lastPrice.value))
}
if (isMeltedProductUsingAppPrice(product) || isAppPriceProduct(product)) {
@@ -211,11 +220,7 @@ export function getProductBaseSellPrice(product?: Product | null): number {
}
if (isColleaguePriceProduct(product)) {
return getColleagueSourcedUnitPrice(
product,
getTradeSellPrice(lastPrice.value),
Number(product.sellPrice ?? product.price ?? 0),
)
return colleagueSideUnit(product, 'sell', getTradeSellPrice(lastPrice.value))
}
if (isMeltedProductUsingAppPrice(product) || isAppPriceProduct(product)) {