completed clients and MNO module
This commit is contained in:
115
app/Http/Controllers/NetworkOperatorsController.php
Normal file
115
app/Http/Controllers/NetworkOperatorsController.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\NetworkOperator;
|
||||
|
||||
class NetworkOperatorsController extends Controller
|
||||
{
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$query = NetworkOperator::query();
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$search = $request->input('search');
|
||||
$query->where('name', 'like', "%{$search}%")
|
||||
->orWhere('contact_person_email', 'like', "%{$search}%")
|
||||
->orWhere('support_phones', 'like', "%{$search}%");
|
||||
}
|
||||
|
||||
if ($request->filled('country')) {
|
||||
$query->where('country', $request->input('country'));
|
||||
}
|
||||
|
||||
if ($request->filled('connection_status')) {
|
||||
$query->where('connection_status', 'like', "%{$request->input('connection_status')}%");
|
||||
}
|
||||
|
||||
// Paginate instead of getting all records at once (e.g., 10 per page)
|
||||
$operators = $query->latest('id')->paginate(10)->withQueryString();
|
||||
|
||||
// dd($operators);
|
||||
|
||||
$totalActive = NetworkOperator::where('connection_status', 'Active')->count();
|
||||
$totalSipLinks = NetworkOperator::where('connection_type', 'like', '%VPN%')->count();
|
||||
$totalOperators = NetworkOperator::count();
|
||||
|
||||
return view('network_operators.index', compact('operators', 'totalActive', 'totalSipLinks', 'totalOperators'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required|string|max:200',
|
||||
'country' => 'required|string',
|
||||
]);
|
||||
|
||||
NetworkOperator::create([
|
||||
'name' => $request->name,
|
||||
'country' => $request->country,
|
||||
'connection_status' => $request->connection_status ?? 'Online',
|
||||
'contact_person' => $request->contact_person,
|
||||
'contact_person_phone' => $request->contact_person_phone,
|
||||
'contact_person_email' => $request->contact_person_email,
|
||||
'technical_support_person' => $request->technical_support_person,
|
||||
'support_skype' => $request->support_skype,
|
||||
'mno_account_manager' => $request->mno_account_manager,
|
||||
'services' => $request->services,
|
||||
'support_emails' => $request->support_emails,
|
||||
'finance_emails' => $request->finance_emails,
|
||||
'buying_rate' => $request->buying_rate ?? 0,
|
||||
'rate_type' => $request->rate_type,
|
||||
'payment_terms' => $request->payment_terms,
|
||||
'connection_type' => $request->connection_type,
|
||||
]);
|
||||
|
||||
return response()->json(['message' => 'MNO Partner created successfully!']);
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$operator = NetworkOperator::findOrFail($id);
|
||||
|
||||
$request->validate([
|
||||
'name' => 'required|string|max:200',
|
||||
'country' => 'required|string',
|
||||
]);
|
||||
|
||||
$operator->update([
|
||||
'name' => $request->name,
|
||||
'country' => $request->country,
|
||||
'connection_status' => $request->connection_status,
|
||||
'contact_person' => $request->contact_person,
|
||||
'contact_person_phone' => $request->contact_person_phone,
|
||||
'contact_person_email' => $request->contact_person_email,
|
||||
'technical_support_person' => $request->technical_support_person,
|
||||
'support_skype' => $request->support_skype,
|
||||
'mno_account_manager' => $request->mno_account_manager,
|
||||
'services' => $request->services,
|
||||
'support_emails' => $request->support_emails,
|
||||
'finance_emails' => $request->finance_emails,
|
||||
'buying_rate' => $request->buying_rate,
|
||||
'rate_type' => $request->rate_type,
|
||||
'payment_terms' => $request->payment_terms,
|
||||
'connection_type' => $request->connection_type,
|
||||
]);
|
||||
|
||||
return response()->json(['message' => 'MNO Partner updated successfully!']);
|
||||
}
|
||||
|
||||
// Fetch single record JSON for editing modal
|
||||
public function getJson($id)
|
||||
{
|
||||
$operator = NetworkOperator::findOrFail($id);
|
||||
return response()->json($operator);
|
||||
}
|
||||
public function show($id)
|
||||
{
|
||||
$operator = NetworkOperator::findOrFail($id);
|
||||
return view('network_operators.show', compact('operator'));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user