added some feature

This commit is contained in:
2026-07-10 22:53:31 +03:30
parent 2c33ba7a05
commit 62f615f5c1
5 changed files with 43 additions and 14 deletions
+8
View File
@@ -27,6 +27,14 @@ export interface Order {
pay_at?: string pay_at?: string
difference?: string difference?: string
total_price_liman?: number total_price_liman?: number
/** کارمزد بر حسب وزن طلا */
service_charge?: number | string
/** کارمزد بر حسب ریال */
service_charge_price?: number | string
/** درصد کارمزد اعمال‌شده */
service_charge_percentage?: number | string
/** مبلغ نقدی جابه‌جاشده: خرید = پرداختی مشتری، فروش = دریافتی مشتری */
payment_amount?: number
} }
export interface OrderSts { export interface OrderSts {
order_id?: number order_id?: number
@@ -334,7 +334,7 @@ const KEY_HELP_FALLBACK: Record<string, string> = {
fee_service_charge_percentage: fee_service_charge_percentage:
'درصد کارمزد هر معامله از مبلغ سفارش (اعشاری؛ مثلاً ۰٫۰۰۵ یعنی نیم در هزار).', 'درصد کارمزد هر معامله از مبلغ سفارش (اعشاری؛ مثلاً ۰٫۰۰۵ یعنی نیم در هزار).',
fee_deduct_from_gold: fee_deduct_from_gold:
'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).', 'این کلید دیگر روی محاسبه اثری ندارد. مبنای کارمزد اکنون فیلدی است که مشتری وارد می‌کند: اگر «مبلغ ریالی» را وارد کند (مثلاً دقیقاً ۱۰۰ میلیون ریال) همان مبلغ معامله می‌شود و کارمزد از طلا کسر می‌شود؛ اگر «وزن» را وارد کند (مثلاً دقیقاً ۲ گرم) همان وزن معامله می‌شود و کارمزد از ریال کسر می‌شود. این قانون برای خرید و فروش یکسان است.',
fee_free: fee_free:
'تعداد اولین سفارش‌های هر کاربر که از کارمزد معاف می‌شوند. صفر یعنی غیرفعال.', 'تعداد اولین سفارش‌های هر کاربر که از کارمزد معاف می‌شوند. صفر یعنی غیرفعال.',
min_withdraw: min_withdraw:
+12 -6
View File
@@ -510,13 +510,19 @@ function infoOrder(val: Order) {
key: 'شماره ملی', key: 'شماره ملی',
value: val.customer.n_code ?? '-' value: val.customer.n_code ?? '-'
}, },
/*{
key: 'کارمزد ریالی',
value: usePrice(val.service_charge_price ?? 0)
},*/
{ {
key: metalLabel.goldCommission(), key: 'کارمزد (طلا)',
value: val.service_charge ?? '-' + ' گرم' value: val.service_charge != null && val.service_charge !== ''
? `${val.service_charge} گرم`
: '-'
},
{
key: 'کارمزد (ریال)',
value: usePrice(Number(val.service_charge_price ?? 0)) ?? '-'
},
{
key: val.direction === 2 ? 'مبلغ دریافتی مشتری (ریال)' : 'مبلغ پرداختی مشتری (ریال)',
value: usePrice(val.payment_amount ?? val.total_price ?? 0) ?? '-'
}, },
/* { /* {
key: 'تاریخ تولد', key: 'تاریخ تولد',
@@ -31,7 +31,13 @@
</div> </div>
<div class="space-y-2"> <div class="space-y-2">
<MobileStatCard bordered label="کارمزد" :value="serviceChargeLabel(row)" /> <MobileStatCard
bordered
:label="row.direction === 2 ? 'مبلغ دریافتی مشتری (ریال)' : 'مبلغ پرداختی مشتری (ریال)'"
:value="usePrice(row.payment_amount ?? row.total_price ?? 0, true, '')"
/>
<MobileStatCard bordered label="کارمزد (طلا)" :value="serviceChargeLabel(row)" />
<MobileStatCard bordered label="کارمزد (ریال)" :value="usePrice(row.service_charge_price ?? 0, true, '')" />
<MobileStatCard bordered label="قیمت کل بدون سود (ریال)" :value="usePrice(row.total_price_original ?? 0, true, '')" /> <MobileStatCard bordered label="قیمت کل بدون سود (ریال)" :value="usePrice(row.total_price_original ?? 0, true, '')" />
<MobileStatCard bordered label="سود واحد (ریال)" :value="usePrice(row.fee ?? 0, true, '')" /> <MobileStatCard bordered label="سود واحد (ریال)" :value="usePrice(row.fee ?? 0, true, '')" />
</div> </div>
@@ -63,7 +69,12 @@ import { toJalali } from '@core/utils/useDataTime'
import { usePrice } from '@core/utils/usePrice' import { usePrice } from '@core/utils/usePrice'
import { formatAmountWithUnit } from '@/utils/weightUnit' import { formatAmountWithUnit } from '@/utils/weightUnit'
type OrderRow = Order & { sts_str?: string; service_charge?: number | string } type OrderRow = Order & {
sts_str?: string
service_charge?: number | string
service_charge_price?: number | string
payment_amount?: number | string
}
const props = defineProps<{ const props = defineProps<{
visible: boolean visible: boolean
+9 -5
View File
@@ -227,17 +227,21 @@ function info(val: Order) {
key: 'شماره ملی', key: 'شماره ملی',
value: val.customer.n_code ?? '-' value: val.customer.n_code ?? '-'
}, },
/*{
key: 'کارمزد ریالی',
value: usePrice(val.service_charge_price ?? 0)
},*/
{ {
key: 'کارمزد', key: 'کارمزد (طلا)',
value: value:
val.service_charge != null && val.service_charge !== '' val.service_charge != null && val.service_charge !== ''
? formatAmountWithUnit(Number(val.service_charge), val.amount_unit) ? formatAmountWithUnit(Number(val.service_charge), val.amount_unit)
: '-' : '-'
}, },
{
key: 'کارمزد (ریال)',
value: usePrice(Number(val.service_charge_price ?? 0)) ?? '-'
},
{
key: val.direction === 2 ? 'مبلغ دریافتی مشتری (ریال)' : 'مبلغ پرداختی مشتری (ریال)',
value: usePrice(val.payment_amount ?? val.total_price ?? 0) ?? '-'
},
/* { /* {
key: 'تاریخ تولد', key: 'تاریخ تولد',
value: toJalaliNoTime(val.customer.birth_date) ?? '-' value: toJalaliNoTime(val.customer.birth_date) ?? '-'