Здравствуйте, вот собственно код:
public function continueTransfer(Request $request)
{
if($request->session()->has('checkCode') && $request->session()->get('checkCode')=='success')
$request->session()->forget('checkCode');
if(!$request->session()->has('typeTransfer') || !$request->session()->has('whomTransfer') || !$request->session()->has('moneyTransfer'))
return redirect()->route('dashboard')
->with('message-success', 'Ошибка перевода, попробуйте еще раз');
$settings = Settings::all();
foreach ($settings as $setting) {
$ref_percent = $setting->ref_percent;
}
//dd($ref_percent);
$data['type']=$request->session()->get('typeTransfer');
$data['whom']=$request->session()->get('whomTransfer');
$data['money']=$request->session()->get('moneyTransfer');
$user=Auth::user();
$data['who']=$user->id;
if($data['type']=='sop')
{
$whomuser = User::where('telephone', $data['whom'])->first();
$user->money=$user->money-$data['money'];
$whomuser->money=$whomuser->money+$data['money'];
if($user->save() && $whomuser->save())
{
if ($user->group== '3') {
$referal = $whomuser->ref_id;
$money=[
'money'=> ($data['money']/100*$ref_percent) + $whomuser->money,
];
$updateref = User::where('id', $referal)->first();
$updateref->update($money);
$data1 = array();
$data1['ref_id'] = $referal;
$userid = User::where('telephone', $data['whom'])->first();
$data1['user_id'] = $userid->id;
$data1['money'] = $data['money']/100*$ref_percent;
Partner::create($data1);
}
$data['status']='1';
MoneyTransfer::create($data);
return redirect()->route('dashboard')
->with('message-success', 'Перевод успешно произведен');
}
return redirect()->route('dashboard')
->withErrors('Ошибка перевода');
}
else {
$data['status']='2';
$user->money=$user->money-$data['money'];
if($user->save())
{
$result=MoneyTransfer::create($data);
if($result)
return redirect()->route('dashboard')
->with('message-success', 'Запрос на вывод средств сформирован');
}
}
}
Проблема заключаются в $money, по логике вещей. Допустим ref_percent = 10, при отправке суммы перевода 100 рублей, он должен начислить 10% пользователю, который его пригласил. Но считает по другому. Начальный баланс был равен нулю. А после выполнения скрипта равен 4135.