diff --git a/app/Http/Controllers/Single/SingleOrderController.php b/app/Http/Controllers/Single/SingleOrderController.php index f2eed33..9606976 100644 --- a/app/Http/Controllers/Single/SingleOrderController.php +++ b/app/Http/Controllers/Single/SingleOrderController.php @@ -80,12 +80,8 @@ class SingleOrderController extends Controller $data['all_price'] = $latestPrice; $data['price'] = $basePrice; $data['price_id'] = $latestPrice?->id; - $feeServiceCharge = Setting::where('key', 'fee_service_charge_percentage')->first(); - if (! $feeServiceCharge) { - throw new UnprocessableEntityHttpException('تنظیمات کارمزد یافت نشد.'); - } - $data['difference'] = (float) (Setting::where('key', 'fee_single')->value('value') ?? config('fee.single', 0)); - $data['service_charge_percentage'] = (float) $feeServiceCharge->value; + $data['difference'] = $config->orderSpreadRial(); + $data['service_charge_percentage'] = $config->orderServiceChargePercentage(); $fee_free = Setting::where('key', 'fee_free')->where('is_active', true)->value('value'); diff --git a/app/Services/ConfigService.php b/app/Services/ConfigService.php index 0458170..1d76d0e 100644 --- a/app/Services/ConfigService.php +++ b/app/Services/ConfigService.php @@ -110,6 +110,35 @@ class ConfigService return $sellFee > 0 ? $sellFee : $feeSingle; } + /** اختلاف ریالی سفارش — fee_single، بعد fee_cash (legacy)، بعد config/fee.php */ + public function orderSpreadRial(): float + { + $feeSingle = $this->getString('fee_single', ''); + if ($feeSingle !== '') { + return (float) $feeSingle; + } + + $legacyCash = $this->getString('fee_cash', ''); + if ($legacyCash !== '') { + return (float) $legacyCash; + } + + return (float) config('fee.single', 0); + } + + /** درصد کارمزد سفارش — fee_service_charge_percentage، service_charge_percentage، config/fee.php */ + public function orderServiceChargePercentage(): float + { + foreach (['fee_service_charge_percentage', 'service_charge_percentage'] as $key) { + $raw = $this->getString($key, ''); + if ($raw !== '') { + return (float) $raw; + } + } + + return (float) config('fee.service_charge_percentage', 0); + } + /** * sell / buy / price_last — یک منبع حقیقت برای lastPrice و buildFromDatabase. *