This commit is contained in:
2026-07-02 00:29:48 +03:30
parent ffab326aa0
commit 24edbf3ff3
4 changed files with 148 additions and 18 deletions
+21 -1
View File
@@ -428,7 +428,9 @@ WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_service_charge_per
-- fee_deduct_from_gold: value پیش‌فرض false فقط در INSERT اولیه؛ اجرای مجدد value/is_active را overwrite نمی‌کند
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
SELECT 'fee_deduct_from_gold', 'false', 'اعمال مبلغ دقیق در معامله مشتری', 1, 1, NULL, 'switch'
SELECT 'fee_deduct_from_gold', 'false', 'اعمال مبلغ دقیق در معامله مشتری', 1, 1,
'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).',
'switch'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_deduct_from_gold' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
@@ -901,7 +903,9 @@ UPDATE `settings` SET `description` = 'مبلغ اضافه (ریال) روی ق
UPDATE `settings` SET `description` = 'مبلغ کسر (ریال) از قیمت پایه برای سمت فروش. خالی = استفاده از «اختلاف پایه».' WHERE `key` = 'sell_fee';
UPDATE `settings` SET `description` = 'درصد کارمزد هر سفارش از مبلغ معامله (اعشاری؛ مثلاً ۰٫۰۰۵ یعنی نیم در هزار).' WHERE `key` = 'fee_service_charge_percentage';
UPDATE `settings` SET
`title_fa` = 'اعمال مبلغ دقیق در معامله مشتری',
`type` = 'switch',
`can_edit` = 1,
`description` = 'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).'
WHERE `key` = 'fee_deduct_from_gold';
UPDATE `settings` SET `description` = 'تعداد اولین سفارش‌های هر کاربر که از کارمزد معاف می‌شوند. ۰ = غیرفعال.' WHERE `key` = 'fee_free';
@@ -1200,10 +1204,26 @@ UPDATE `settings` SET `type` = 'number' WHERE `key` IN (
'deposit_sms_support_number'
);
-- ---------------------------------------------------------------------------
-- تثبیت نهایی fee_deduct_from_gold — آخرین override قبل از COMMIT
-- (title_fa / description / type / can_edit — value و is_active دست نمی‌خورند)
-- ---------------------------------------------------------------------------
UPDATE `settings` SET
`title_fa` = 'اعمال مبلغ دقیق در معامله مشتری',
`type` = 'switch',
`can_edit` = 1,
`description` = 'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).'
WHERE `key` = 'fee_deduct_from_gold';
COMMIT;
SELECT 'deploy_settings_const.sql finished' AS status;
-- بررسی fee_deduct_from_gold (desc_preview باید با «مشتری دقیقاً» شروع شود):
SELECT `key`, `title_fa`, LEFT(`description`, 60) AS desc_preview, `can_edit`, `type`, `value`
FROM `settings`
WHERE `key` = 'fee_deduct_from_gold';
-- بعد از اجرا (اختیاری):
-- SELECT `key`, `title_fa`, `value`, `type`, `is_active` FROM `settings` ORDER BY `key`;
-- SELECT `key`, `value`, `title_fa` FROM `const` ORDER BY `key`;
@@ -426,7 +426,9 @@ WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_service_charge_per
-- fee_deduct_from_gold: value پیش‌فرض false فقط در INSERT اولیه؛ اجرای مجدد value/is_active را overwrite نمی‌کند
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
SELECT 'fee_deduct_from_gold', 'false', 'اعمال مبلغ دقیق در معامله مشتری', 1, 1, NULL, 'switch'
SELECT 'fee_deduct_from_gold', 'false', 'اعمال مبلغ دقیق در معامله مشتری', 1, 1,
'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).',
'switch'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_deduct_from_gold' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
@@ -929,8 +931,9 @@ UPDATE `settings` SET `description` = 'مبلغ اضافه (ریال) روی ق
UPDATE `settings` SET `description` = 'مبلغ کسر (ریال) از قیمت پایه برای سمت فروش. خالی = استفاده از «اختلاف پایه».' WHERE `key` = 'sell_fee';
UPDATE `settings` SET `description` = 'درصد کارمزد هر سفارش از مبلغ معامله (اعشاری؛ مثلاً ۰٫۰۰۵ یعنی نیم در هزار).' WHERE `key` = 'fee_service_charge_percentage';
UPDATE `settings` SET
`type` = 'switch',
`title_fa` = 'اعمال مبلغ دقیق در معامله مشتری',
`type` = 'switch',
`can_edit` = 1,
`description` = 'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).'
WHERE `key` = 'fee_deduct_from_gold';
UPDATE `settings` SET `description` = 'تعداد اولین سفارش‌های هر کاربر که از کارمزد معاف می‌شوند. ۰ = غیرفعال.' WHERE `key` = 'fee_free';
@@ -1042,21 +1045,61 @@ WHERE `key` IN ('text_rule', 'text_about', 'support_messenger_text', 'invite_lin
-- ---------------------------------------------------------------------------
-- sync can_edit — برای کلیدهای موجود هم طبق ساختار همین SQL تنظیم شود
-- sync can_edit — برای کلیدهای موجود هم طبق ساختار deploy_settings_const.sql
-- نکته: value اینجا عمداً آپدیت نمی‌شود؛ مقدار موجود کارفرما/پنل حفظ می‌شود.
-- ---------------------------------------------------------------------------
UPDATE `settings` s
JOIN (
SELECT 'admin_url' AS `key`, 1 AS `can_edit`
UNION ALL SELECT 'app_url', 1
UNION ALL SELECT 'auto_active_customer', 1
UNION ALL SELECT 'balance_report_exclude_customer_id', 1
UNION ALL SELECT 'bale_bot_token', 0
UNION ALL SELECT 'buy_fee', 1
UNION ALL SELECT 'charge_notif', 1
UNION ALL SELECT 'chart_id', 1
UNION ALL SELECT 'chart_use_local_data', 1
UNION ALL SELECT 'close_price', 1
UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
'admin_url', 'apk_download_link', 'app_url',
'bale_bot_token', 'banner_enabled',
'chart_id', 'chart_use_local_data',
'external_order_api_enabled',
'group_sms',
'has_page_earn_money',
'is_store',
'logo_login', 'logo_register', 'title_pwa', 'title_fav',
'main_product', 'main_wallet_products', 'metal_type', 'main_metal',
'montify_name',
'montzar_base_url', 'montzar_closed',
'montzar_diff', 'montzar_last_product_log', 'montzar_live_price', 'montzar_mazaneh',
'montzar_order_response', 'montzar_token',
'montzar_truly_buy_mazaneh', 'montzar_truly_sell_mazaneh',
'node_client_id', 'node_shared_secret',
'payping_fin_customer_id', 'payping_fin_sync_enabled', 'payping_fin_token', 'payping_fin_url',
'payping_gateway_items', 'payping_gateway_name',
'payping_round_toman', 'payping_start_url', 'payping_strict_failed_withdraw', 'payping_verify_url',
'price_extreme_date', 'price_provider', 'profit_gold_api_enabled',
'send_to_tahesab', 'service_charge_percentage',
'sse_path',
'tahesab_bank_account', 'tahesab_db', 'tahesab_host', 'tahesab_port', 'tahesab_token',
'telegram_bot_token',
'unit',
'up_price', 'down_price',
'wss_enabled',
'zaarbox_api_url', 'zaarbox_price_key'
);
UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
'name_fa',
'auto_active_customer', 'balance_report_exclude_customer_id',
'buy_fee', 'charge_notif', 'close_price',
'deposit_sms_support_number', 'endDay',
'fee_deduct_from_gold', 'fee_free', 'fee_service_charge_percentage', 'fee_single',
'gift_for_referral', 'gift_for_referrer',
'invite_link_text',
'jibit_verification',
'main_product_price',
'min_first_buy', 'min_withdraw', 'minimum_sell',
'montzar_mobile', 'montzar_open_buy', 'montzar_open_sell',
'montzar_password', 'montzar_price', 'montzar_product_id',
'open_register',
'referral_bonus_amount', 'referral_id', 'referral_limit', 'referral_gift_on_first_order',
'register_jibit_verify', 'register_referral_bonus_message', 'register_referral_sms_to_referrer',
'sell_fee', 'show_last_price', 'startDay',
'support_messenger', 'support_messenger_id', 'support_messenger_text',
'text_about', 'text_rule'
);
-- تفکیک نهایی type (بعد از همه batchها — override روی دیتابیس موجود)
UPDATE `settings` SET `type` = 'price' WHERE `key` IN (
'fee_single', 'buy_fee', 'sell_fee',
+11 -2
View File
@@ -1,7 +1,9 @@
-- سوییچ «اعمال مبلغ دقیق در معامله مشتری» — برای نصب‌های موجود (مثلاً abshodehrahimi)
-- سوییچ «اعمال مبلغ دقیق در معامله مشتری» — برای نصب‌های موجود
-- idempotent: چند بار قابل اجرا
-- • اولین بار: INSERT با value='false' (پیش‌فرض خاموش)
-- • اجرای مجدد: value و is_active دست نمی‌خورند — فقط title_fa / description / type / can_edit
-- • اجرای مجدد: value و is_active دست نمی‌خورند — title_fa / description / type / can_edit همیشه override می‌شوند
START TRANSACTION;
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
SELECT 'fee_deduct_from_gold', 'false', 'اعمال مبلغ دقیق در معامله مشتری', 1, 1,
@@ -15,3 +17,10 @@ SET `title_fa` = 'اعمال مبلغ دقیق در معامله مشتری',
`type` = 'switch',
`can_edit` = 1
WHERE `key` = 'fee_deduct_from_gold';
COMMIT;
-- بررسی (باید desc_preview با «مشتری دقیقاً» شروع شود):
SELECT `key`, `title_fa`, LEFT(`description`, 60) AS desc_preview, `can_edit`, `type`
FROM `settings`
WHERE `key` = 'fee_deduct_from_gold';