Files
airtime-reseller/bits-pieces.md
Kwesi Banson Jnr 2cfcfade4e Initial commit
2026-08-04 14:50:01 +00:00

65 lines
2.7 KiB
Markdown

public function refundStoreOld(Request $request){
$validatedData = $request->validate([
'dealer_id' => 'required',
'merchant_id' => 'required',
'amount' => 'required|numeric',
'transaction_id' => 'required|string',
'reason' => 'required|string',
]);
// dd($request->all());
$merchant = Models\Merchant::findorfail($request->merchant_id);
// dd($merchant);
$merchant_name = $merchant->fullname;
$dealer = Models\OrgUser::findorfail($request->dealer_id);
$dealer_name = $dealer->name;
$organisation = Models\Organisation::findorfail($request->dealer_id);
$result = Models\MerchantToDealerRefund::create([
'dealer_id' => $request->dealer_id,
'merchant_id' => $request->merchant_id,
'amount' => $request->amount,
'dealer_msisdn' => $dealer->phone,
'reason' => $request->reason,
]);
$merchant_balance = $merchant->balance;
$merchant->balance = $merchant_balance - $request->amount;
$merchant->save();
//Review this -- should dealers belong to a larger organisation or they should be on their own
$dealer_balance = $organisation->balance;
$organisation->balance = $dealer_balance + $request->amount;
$organisation->save();
$desc = [
'title' => 'Dealer Refund',
'data' => "Redunded a dealer with an amount of " . $request->amount,
'type' => 'merchant',
];
$activity = new ActivityLog;
$activity->user_id = $request->session()->get('current_org_user.id'); // org_user_id ;
$activity->user_type = 'merchant';
$activity->description = json_encode($desc);
$activity->save();
$msg = "You have been Successfully refunded a dealer ($dealer_name) with an amount of $request->amount.";
$dealer_msg = "You have received a refund amount of $request->amount from Airtime Merchant ($merchant_name)";
$smsgateway = new Smsgateway;
if(env('APP_ENV') !== 'local'){
$result = $smsgateway->sendSmsNew($merchant->phone, $msg);
$result = $smsgateway->sendSmsNew($dealer->phone, $dealer_msg);
}
\Log::info($msg);
\Log::info($dealer_msg);
// $this->sendNtfy($msg);
if($request->ajax()){
return response()->json([
'code' => 1,
'status' => 'success',
'message' => 'Dealer Refund Successfully processed'
]);
}
else{
return redirect()->to('merchant/refunds')->with('success_message', 'Dealer Refund Successfully processed');
}
}