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:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user