From 62f615f5c1a7305f74f9b494441f8a56c8106759 Mon Sep 17 00:00:00 2001 From: mohammad sedighi Date: Fri, 10 Jul 2026 22:53:31 +0330 Subject: [PATCH] added some feature --- src/model/order.ts | 8 ++++++++ .../menuPages/configuration/settingTypes.ts | 2 +- src/pages/menuPages/customers/base/index.vue | 18 ++++++++++++------ .../components/OrderMobileDetailSheet.vue | 15 +++++++++++++-- src/pages/menuPages/orders/index.vue | 14 +++++++++----- 5 files changed, 43 insertions(+), 14 deletions(-) diff --git a/src/model/order.ts b/src/model/order.ts index 52d6a4b..158e3fc 100644 --- a/src/model/order.ts +++ b/src/model/order.ts @@ -27,6 +27,14 @@ export interface Order { pay_at?: string difference?: string total_price_liman?: number + /** کارمزد بر حسب وزن طلا */ + service_charge?: number | string + /** کارمزد بر حسب ریال */ + service_charge_price?: number | string + /** درصد کارمزد اعمال‌شده */ + service_charge_percentage?: number | string + /** مبلغ نقدی جابه‌جاشده: خرید = پرداختی مشتری، فروش = دریافتی مشتری */ + payment_amount?: number } export interface OrderSts { order_id?: number diff --git a/src/pages/menuPages/configuration/settingTypes.ts b/src/pages/menuPages/configuration/settingTypes.ts index b5b9266..7fdd90a 100644 --- a/src/pages/menuPages/configuration/settingTypes.ts +++ b/src/pages/menuPages/configuration/settingTypes.ts @@ -334,7 +334,7 @@ const KEY_HELP_FALLBACK: Record = { fee_service_charge_percentage: 'درصد کارمزد هر معامله از مبلغ سفارش (اعشاری؛ مثلاً ۰٫۰۰۵ یعنی نیم در هزار).', fee_deduct_from_gold: - 'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).', + 'این کلید دیگر روی محاسبه اثری ندارد. مبنای کارمزد اکنون فیلدی است که مشتری وارد می‌کند: اگر «مبلغ ریالی» را وارد کند (مثلاً دقیقاً ۱۰۰ میلیون ریال) همان مبلغ معامله می‌شود و کارمزد از طلا کسر می‌شود؛ اگر «وزن» را وارد کند (مثلاً دقیقاً ۲ گرم) همان وزن معامله می‌شود و کارمزد از ریال کسر می‌شود. این قانون برای خرید و فروش یکسان است.', fee_free: 'تعداد اولین سفارش‌های هر کاربر که از کارمزد معاف می‌شوند. صفر یعنی غیرفعال.', min_withdraw: diff --git a/src/pages/menuPages/customers/base/index.vue b/src/pages/menuPages/customers/base/index.vue index 90f1d88..4c10f47 100644 --- a/src/pages/menuPages/customers/base/index.vue +++ b/src/pages/menuPages/customers/base/index.vue @@ -510,13 +510,19 @@ function infoOrder(val: Order) { key: 'شماره ملی', value: val.customer.n_code ?? '-' }, - /*{ - key: 'کارمزد ریالی', - value: usePrice(val.service_charge_price ?? 0) - },*/ { - key: metalLabel.goldCommission(), - value: val.service_charge ?? '-' + ' گرم' + key: 'کارمزد (طلا)', + 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: 'تاریخ تولد', diff --git a/src/pages/menuPages/orders/components/OrderMobileDetailSheet.vue b/src/pages/menuPages/orders/components/OrderMobileDetailSheet.vue index 0a4f04d..f647493 100644 --- a/src/pages/menuPages/orders/components/OrderMobileDetailSheet.vue +++ b/src/pages/menuPages/orders/components/OrderMobileDetailSheet.vue @@ -31,7 +31,13 @@
- + + +
@@ -63,7 +69,12 @@ import { toJalali } from '@core/utils/useDataTime' import { usePrice } from '@core/utils/usePrice' 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<{ visible: boolean diff --git a/src/pages/menuPages/orders/index.vue b/src/pages/menuPages/orders/index.vue index 0a9dc21..41ad4f7 100644 --- a/src/pages/menuPages/orders/index.vue +++ b/src/pages/menuPages/orders/index.vue @@ -227,17 +227,21 @@ function info(val: Order) { key: 'شماره ملی', value: val.customer.n_code ?? '-' }, - /*{ - key: 'کارمزد ریالی', - value: usePrice(val.service_charge_price ?? 0) - },*/ { - key: 'کارمزد', + key: 'کارمزد (طلا)', value: val.service_charge != null && val.service_charge !== '' ? 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: 'تاریخ تولد', value: toJalaliNoTime(val.customer.birth_date) ?? '-'