fix(tahesab): sync gateway and admin cash deposits as VKHBank charge

Route online wallet deposits to Tahesab/Zarin wallet() instead of leaving
staff to post gold buy docs; keep «شارژ حساب» in accounting notes.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-31 14:58:20 +03:30
co-authored by Cursor
parent 142cfd7661
commit c5fd6608bf
3 changed files with 40 additions and 1 deletions
@@ -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);
}
}
}
}