diff --git a/app/Http/Controllers/Admin/WalletController.php b/app/Http/Controllers/Admin/WalletController.php index 6c6a006..db9cd16 100644 --- a/app/Http/Controllers/Admin/WalletController.php +++ b/app/Http/Controllers/Admin/WalletController.php @@ -262,6 +262,9 @@ class WalletController extends Controller try { $data['direction'] = $deposit ? 0 : 1; $data['withdraw_id'] = $Withdraw->id; + if ($deposit && trim((string) ($data['note'] ?? '')) === '') { + $data['note'] = 'شارژ حساب'; + } app(TahesabController::class)->wallet($data); } catch (\Exception $e) { report($e); diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index f538c49..0c4e4c8 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -395,7 +395,7 @@ class Controller extends BaseController 'واریز طلایی', 'برداشت طلایی', 'واریز درگاه', 'واریز آنلاین', 'واریز به کیف پول', 'برداشت از کیف پول', - 'شارژ حساب', 'برداشت از حساب', + 'برداشت از حساب', 'شارژ', 'دشارژ', 'شارژ طلای کیف اصلی', 'برداشت طلای کیف اصلی', ]; diff --git a/app/Services/Payment/WalletDepositCreditor.php b/app/Services/Payment/WalletDepositCreditor.php index 4d0c9fa..7c7187f 100644 --- a/app/Services/Payment/WalletDepositCreditor.php +++ b/app/Services/Payment/WalletDepositCreditor.php @@ -78,6 +78,8 @@ class WalletDepositCreditor report($e); } + $this->syncGatewayDepositToAccounting($user, $locked, $note); + $locked->loadMissing('customer'); $message = 'کاربر ' . ($locked->customer->name ?? '') . ' با شماره موبایل ' . ($locked->customer->mobile ?? '') . ' حساب خود را به مقدار ' . number_format((int) $locked->cash) . ' ریال شارژ کرد. با تشکر، ' @@ -90,4 +92,38 @@ class WalletDepositCreditor }); }); } + + /** سند بانکی ته‌حساب/زرین — قبلاً فقط پرگار می‌رفت و در ته‌حساب «خرید» دستی ثبت می‌شد */ + private function syncGatewayDepositToAccounting(Customer $customer, Withdraw $withdraw, string $note): void + { + $cash = (int) round(abs((float) $withdraw->cash)); + if ($cash <= 0) { + return; + } + + $accountingNote = trim($note) !== '' ? $note : 'دریافت وجه بابت شارژ'; + $payload = [ + 'customer_id' => (int) $customer->id, + 'value' => $cash, + 'direction' => 0, + 'withdraw_id' => (int) $withdraw->id, + 'note' => $accountingNote, + ]; + + if ($this->config->isTahesabAccounting()) { + try { + app(\App\Http\Controllers\Admin\TahesabController::class)->wallet($payload); + } catch (\Throwable $e) { + report($e); + } + } + + if ($this->config->isZarinAccounting()) { + try { + app(\App\Http\Controllers\Admin\ZarinController::class)->wallet($payload); + } catch (\Throwable $e) { + report($e); + } + } + } }