/
home
/
corsairdevelopme
/
public_html
/
amplivo-console
/
app
/
Http
/
Controllers
/
Backend
/
Upload File
HOME
<?php namespace App\Http\Controllers\Backend; use App\Http\Controllers\Controller; use App\Models\CustomerLevel; use Illuminate\Http\Request; class InfinityStarBonusController extends Controller { public function edit($id) { $data['customerRules'] = CustomerLevel::find(basicDecrypt($id)); $starRanks = CustomerLevel::where('for_what', 'Configuration parameters for Star Ranks')->first(); $data['starRanks'] = $starRanks->value ? json_decode($starRanks->value) : null; return view('backend.infinity-star-bonus-level', $data); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $id = basicDecrypt($id); $reqData = $request->validate([ 'customerLevels.*.level' => 'required', 'customerLevels.*.bonus_multiplier' => 'required', 'customerLevels.*.eligible_user_ranks' => 'required', ], [ 'customerLevels.*.level.required' => 'The Level field is required', 'customerLevels.*.bonus_multiplier.required' => 'The Bonus Multiplier field is required', 'customerLevels.*.eligible_user_ranks.required' => 'The Eligible User Ranks field is required', ]); $reqData['value'] = $request->customerLevels ? json_encode($request->customerLevels) : ''; $customerRule = CustomerLevel::find($id); if ($reqData['value'] !== $customerRule->value) { $arraya = $reqData['customerLevels']; $arrayb = json_decode($customerRule->value); $arrayc = $reqData['customerLevels']; $arrayb = json_decode(json_encode($arrayb), true); $arr1 = []; // new updated value $arr2 = []; // old value $arr3 = []; // add new row foreach ($arraya as $keya => $valuea) { if (in_array($valuea, $arrayb)) { unset($arraya[$keya]); } else { if (isset($arrayb[$keya])) { $arr2[$keya] = $arrayb[$keya]; } else { $arr3 = array_diff_key($arrayc, $arrayb); } } } $arr1 = $arraya; if ($arr3) { foreach ($arr3 as $key => $item) { if (isset($arr1[$key])) { unset($arr1[$key]); } foreach ($item as $key2 => $value) { saveLog($customerRule->for_what . " " . str_replace( '_', ' ', $key2 ) . " updated from Nan to " . $value, $customerRule, [], 'updated'); } } } foreach ($arr1 as $key1 => $item1) { foreach ($arr2 as $key2 => $item2) { if ($key1 == $key2) { foreach ($item2 as $key3 => $item3) { if ($item3 !== $item1[$key3]) { saveLog($customerRule->for_what . " " . str_replace('_', ' ', $key3) . " updated from " . $item3 . " to " . $item1[$key3], $customerRule, [], 'updated'); } } } } } } $customerRule->update($reqData); return response()->json([ 'success' => true, 'message' => 'Customer Rule updated successfully', ]); } }