You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
6.0 KiB
168 lines
6.0 KiB
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\WithdrawalMethod;
|
|
use App\Http\Controllers\Controller;
|
|
use Brian2694\Toastr\Facades\Toastr;
|
|
// use App\CentralLogics\Helpers;
|
|
|
|
class WithdrawalMethodController extends Controller
|
|
{
|
|
protected WithdrawalMethod $withdrawal_method;
|
|
|
|
public function __construct(WithdrawalMethod $withdrawal_method)
|
|
{
|
|
$this->withdrawal_method = $withdrawal_method;
|
|
}
|
|
|
|
public function list(Request $request)
|
|
{
|
|
$search = $request->search;
|
|
$withdrawal_methods = $this->withdrawal_method
|
|
->when($request->has('search'), function ($query) use ($request) {
|
|
$keys = explode(' ', $request['search']);
|
|
return $query->where(function ($query) use ($keys) {
|
|
foreach ($keys as $key) {
|
|
$query->where('method_name', 'LIKE', '%' . $key . '%');
|
|
}
|
|
});
|
|
})
|
|
->latest()
|
|
->paginate(config('default_pagination'));
|
|
|
|
return view('admin-views.withdraw-method.withdraw-methods-list', compact('withdrawal_methods', 'search'));
|
|
}
|
|
|
|
public function create(Request $request)
|
|
{
|
|
return view('admin-views.withdraw-method.withdraw-methods-create');
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'method_name' => 'required',
|
|
'field_type' => 'required|array',
|
|
'field_name' => 'required|array',
|
|
'placeholder_text' => 'required|array',
|
|
// 'is_required' => '',
|
|
// 'is_default' => 'nullable|in:0,1 ',
|
|
]);
|
|
|
|
$method_fields = [];
|
|
foreach ($request->field_name as $key => $field_name) {
|
|
$method_fields[] = [
|
|
'input_type' => $request->field_type[$key],
|
|
'input_name' => strtolower(str_replace(' ', "_", $request->field_name[$key])),
|
|
'placeholder' => $request->placeholder_text[$key],
|
|
'is_required' => isset($request['is_required']) && isset($request['is_required'][$key]) ? 1 : 0,
|
|
];
|
|
}
|
|
|
|
$data_count = $this->withdrawal_method->get()->count();
|
|
|
|
$withdrawal_method_object = $this->withdrawal_method->updateOrCreate(
|
|
['method_name' => $request->method_name],
|
|
[
|
|
'method_fields' => $method_fields,
|
|
'is_default' => ($request->has('is_default') && $request->is_default || $data_count == 0) == '1' ? 1 : 0,
|
|
]
|
|
);
|
|
|
|
if ($request->has('is_default') && $request->is_default == '1') {
|
|
$this->withdrawal_method->where('id', '!=', $withdrawal_method_object->id)->update(['is_default' => 0]);
|
|
}
|
|
|
|
Toastr::success('Withdrawal method added successfully');
|
|
return redirect()->route('admin.business-settings.withdraw-method.list');
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$withdrawal_method = $this->withdrawal_method->find($id);
|
|
return View('admin-views.withdraw-method.withdraw-methods-edit', compact('withdrawal_method'));
|
|
}
|
|
|
|
public function update(Request $request)
|
|
{
|
|
// dd($request->all());
|
|
$request->validate([
|
|
'method_name' => 'required',
|
|
'field_type' => 'required|array',
|
|
'field_name' => 'required|array',
|
|
'placeholder_text' => 'required|array',
|
|
// 'is_required' => '',
|
|
// 'is_default' => 'nullable|in:1,0 ',
|
|
]);
|
|
$withdrawal_method = $this->withdrawal_method->find($request['id']);
|
|
|
|
if(!isset($withdrawal_method)) {
|
|
Toastr::error('Withdrawal method not found!');
|
|
return back();
|
|
}
|
|
|
|
$method_fields = [];
|
|
foreach ($request->field_name as $key=>$field_name) {
|
|
$method_fields[] = [
|
|
'input_type' => $request->field_type[$key],
|
|
'input_name' => strtolower(str_replace(' ', "_", $request->field_name[$key])),
|
|
'placeholder' => $request->placeholder_text[$key],
|
|
'is_required' => isset($request['is_required']) && isset($request['is_required'][$key]) ? 1 : 0,
|
|
];
|
|
}
|
|
|
|
$withdrawal_method->method_name = $request->method_name;
|
|
$withdrawal_method->method_fields = $method_fields;
|
|
$withdrawal_method->is_default = $request->has('is_default') && $request->is_default == '1' ? 1 : 0;
|
|
$withdrawal_method->save();
|
|
|
|
if ($request->has('is_default') && $request->is_default == '1') {
|
|
$this->withdrawal_method->where('id', '!=', $withdrawal_method->id)->update(['is_default' => 0]);
|
|
}
|
|
|
|
Toastr::success('Withdrawal method update successfully');
|
|
return redirect()->route('admin.business-settings.withdraw-method.list');
|
|
|
|
}
|
|
|
|
public function status_update(Request $request)
|
|
{
|
|
$id = $request->id;
|
|
$success = 1;
|
|
$withdrawal_method = $this->withdrawal_method->where('id', $id)->first();
|
|
$withdrawal_method->is_active = ($withdrawal_method['is_active'] == 0 || $withdrawal_method['is_active'] == null) ? 1 : 0;
|
|
$withdrawal_method->save();
|
|
|
|
return response()->json([
|
|
'success' => $success,
|
|
], 200);
|
|
}
|
|
|
|
public function default_status_update(Request $request)
|
|
{
|
|
$id = $request->id;
|
|
$withdrawal_method = $this->withdrawal_method->where('id', $id)->first();
|
|
$success = 1;
|
|
if ($withdrawal_method->is_default == 1) {
|
|
$success = 0;
|
|
}
|
|
|
|
$this->withdrawal_method->where('id', '!=', $id)->update(['is_default' => $withdrawal_method->is_default]);
|
|
$this->withdrawal_method->where('id', $id)->update(['is_default' => !$withdrawal_method->is_default]);
|
|
|
|
return response()->json([
|
|
'success' => $success,
|
|
], 200);
|
|
}
|
|
|
|
public function delete($id)
|
|
{
|
|
$this->withdrawal_method->where('id', $id)->delete();
|
|
|
|
Toastr::success('Withdraw method removed successfully!');
|
|
return back();
|
|
}
|
|
}
|
|
|