updated client module

This commit is contained in:
Kwesi Banson Jnr
2026-07-27 09:03:12 +00:00
parent 3656d2fd26
commit 143e1590e0
7 changed files with 514 additions and 5 deletions

View File

@@ -7,8 +7,17 @@ use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
// Your login method is likely here...
// public function login(Request $request)
// {
// if (Auth::attempt($credentials)) {
// $request->session()->regenerate();
// return redirect()->intended('/');
// }
// return back()->withErrors([...]);
// }
/**
* Log the user out of the application.
*/

View File

@@ -382,4 +382,266 @@ class ClientsController extends Controller
Session::flash('success_message', 'Client successfully added');
return redirect('clients');
}
public function storeFiles(AddFilesRequest $request){
$document_arr = $request->except('document');
if ($request->hasFile('document')) {
if ($request->file('document')->isValid()) {
$filename = "erp_" . time() . "." . $request->document->extension();
$request->document->storeAs('client_files', $filename, 'public');
$document_arr['document'] = json_encode([$filename]);
}
}
$client = Models\Client::find($request->client_id);
$document_arr['file_extension'] = $request->document->extension();
$document_arr['file_reff'] = time() . uniqid();
$document_arr['last_modified_by'] = session('current_user.id');
$result = Models\ClientFile::create($document_arr);
if ($result) {
$data = ['code' => 1, 'msg' => 'Document successfully uploaded'];
}
else{
$data = ['code' => 3, 'msg' => 'Your request could not be handled at this time'];
}
$user_id = session('current_user.id');
$username = session('current_user.name');
$content = "User ID : " . $user_id . " (" . $username . ") Document successfully uploaded for " . $client->name;
$this->logUsersActivity($type = 'staff', $content);
return response()->json($data, 200);
}
public function getClientFile($id){
$client_file = Models\ClientFile::with('client_info')->findOrFail($id);
$file = public_path('documents/client_files/') . $client_file->file_path;
$headers = [];
$filename = $client_file->client_info->name . "_" . $client_file->name;
$filename = $this->cleanStr($filename);
$filename = $filename . "." . $client_file->file_extension;
return \Response::download($file, $filename, $headers);
}
public function paymentsStore(Request $request){
$request->validate([
'client_id' => 'required',
'services' => 'required',
'invoice_number' => 'required',
'invoice_amount' => 'required|numeric',
'invoice_date' => 'required',
'invoice_status' => 'required',
]);
$auth_user = session('current_user');
if ($request->short_code !== null) {
$check = is_numeric($request->short_code);
if ($check == false) {
$data = ['code' => 3, 'msg' => 'Short Code must be a number'];
return response()->json($data, 200);
}
}
$finance_arr = [
'invoice_number' => $request->invoice_number,
'invoice_amount' => $request->invoice_amount,
'invoice_date' => $request->invoice_date,
'invoice_status' => $request->invoice_status,
'short_code' => ($request->short_code) ? $request->short_code : "",
'services' => implode(',', $request->services),
'user_id' => $auth_user['id'],
'client_id' => $request->client_id
];
if ($request->has('remarks')) {
$finance_arr['remarks'] = $request->remarks;
}
$client = Models\Client::find($request->client_id);
$result = Models\ClientPayment::updateOrCreate(['invoice_number' => $request->invoice_number, 'client_id' => $request->client_id, ], $finance_arr);
if ($request->has('short_code')) {
$short_code_list = Models\ClientShortCode::where('client_id', $request->client_id)->get();
$client = Models\Client::find($request->client_id);
$message_body = $auth_user['name'] . " has added a new Short Code ($request->short_code) Payment entry for " . $client->name;
dispatch(new SendShortCodeListToFinance($short_code_list, $message_body, $finance_arr));
}
#$payments = Models\ClientPayment::with('client_info', 'created_by_info')->find($result->id);
if ($result) {
$data = ['code' => 1, 'msg' => 'Payment Details successfully added'];
}
else{
$data = ['code' => 3, 'msg' => 'Your request could not be handled at this time'];
}
$user_id = session('current_user.id');
$username = session('current_user.name');
$content = "User ID : " . $user_id . " (" . $username . ") Added a payment record for : " . $client->name;
$this->logUsersActivity($type = 'staff', $content);
return response()->json($data, 200);
}
public function financeUpdate(Request $request){
$request->validate([
'payment_id' => 'required',
'client_id' => 'required',
'services' => 'required',
'invoice_number' => 'required',
'invoice_amount' => 'required|numeric',
'invoice_date' => 'required',
'invoice_status' => 'required'
]);
$auth_user = session('current_user');
$payment = Models\ClientPayment::findOrFail($request->payment_id);
$payment->invoice_number = $request->invoice_number;
$payment->invoice_amount = $request->invoice_amount;
$payment->invoice_date = $request->invoice_date;
$payment->invoice_status = $request->invoice_status;
$payment->short_code = ($request->short_code) ? $request->short_code : "";
$payment->services = implode(',', $request->services);
$result = $payment->save();
$client = Models\Client::find($request->client_id);
if ($request->has('short_code')) {
$short_code_list = Models\ClientShortCode::where('client_id', $request->client_id)->get();
$finance_arr = [
'invoice_number' => $request->invoice_number,
'invoice_amount' => $request->invoice_amount,
'invoice_date' => $request->invoice_date,
'invoice_status' => $request->invoice_status,
'short_code' => ($request->short_code) ? $request->short_code : "",
'services' => implode(',', $request->services),
'user_id' => $auth_user['id'],
'client_id' => $request->client_id
];
if ($request->has('remarks')) {
$finance_arr['remarks'] = $request->remarks;
}
$message_body = $auth_user['name'] . " has updated a Short Code ($request->short_code) Payment entry for " . $client->name;
#dispatch(new SendShortCodeListToFinance($short_code_list, $message_body, $finance_arr));
}
if ($result) {
$data = ['code' => 1, 'msg' => 'Payment Details successfully updated'];
}
else{
$data = ['code' => 3, 'msg' => 'Your request could not be handled at this time'];
}
$user_id = session('current_user.id');
$username = session('current_user.name');
$content = "User ID : " . $user_id . " (" . $username . ") updated an existing payment record for " . $client->name;
$this->logUsersActivity($type = 'staff', $content);
return response()->json($data, 200);
}
public function shortcodeStore(Request $request){
$request->validate([
'client_id' => 'required',
'network' => 'required',
'shortcode' => 'required',
'code_type' => 'required',
'toll_free' => 'required',
'status' => 'required',
'remarks' => 'required',
'launch_date' => 'required',
'expiry_date' => 'required',
'monthly_fee' => 'sometimes'
]);
$auth_user = session('current_user');
$shortcode_arr = [
'name' => $request->name,
'client_id' => $request->client_id,
'network' => $request->network,
// 'country' => $mnoCountry, //$network->country,
'shortcode' => $request->shortcode,
'code_type' => $request->code_type,
'toll_free' => $request->toll_free,
'last_updated_by' => $auth_user['id'],
'launch_date' => $request->launch_date,
'expiry_date' => $request->expiry_date,
'status' => $request->status
];
// dd($shortcode_arr);
if ($request->has('remarks')) {
$shortcode_arr['remarks'] = $request->remarks;
}
if ($request->has('monthly_fee')) {
$shortcode_arr['monthly_fee'] = $request->monthly_fee;
}
$result = Models\ClientShortCode::create($shortcode_arr);
$client = Models\Client::find($request->client_id);
if ($result) {
$data = ['code' => 1, 'msg' => 'ShortCode Details successfully added'];
}
else{
$data = ['code' => 3, 'msg' => 'Your request could not be handled at this time'];
}
$user_id = session('current_user.id');
$username = session('current_user.name');
$content = "User ID : " . $user_id . " (" . $username . ") Added new short code for " . $client->name;
$this->logUsersActivity($type = 'staff', $content);
return response()->json($data, 200);
}
public function shortCodeUpdate(Request $request){
$request->validate([
'client_id' => 'required',
'network' => 'required',
'shortcode' => 'required',
'code_type' => 'required',
'toll_free' => 'required',
'monthly_fee' => 'sometimes',
'status' => 'required',
'remarks' => 'required',
'launch_date' => 'required',
'expiry_date' => 'required'
]);
$auth_user = session('current_user');
$mnoCountry = $this->getMnoCountry($request->network);
if ($mnoCountry == false) {
$data = ['code' => 3, 'msg' => 'Your request could not be handled at this time'];
return response()->json($data, 200);
// code...
}
$shortcode_arr = [
'name' => $request->name,
'client_id' => $request->client_id,
'network' => $request->network,
'country' => $mnoCountry,
'shortcode' => $request->shortcode,
'code_type' => $request->code_type,
'toll_free' => $request->toll_free,
'last_updated_by' => $auth_user['id'],
'launch_date' => $request->launch_date,
'expiry_date' => $request->expiry_date,
'status' => $request->status
];
if ($request->has('remarks')) {
$shortcode_arr['remarks'] = $request->remarks;
}
if ($request->has('monthly_fee')) {
$shortcode_arr['monthly_fee'] = $request->monthly_fee;
}
$result = Models\ClientShortCode::where('id', $request->shortcode_id)->update($shortcode_arr);
if ($result) {
$data = ['code' => 1, 'msg' => 'Short Code Details successfully updated'];
}
else{
$data = ['code' => 3, 'msg' => 'Your request could not be handled at this time'];
}
$user_id = session('current_user.id');
$username = session('current_user.name');
$content = "User ID : " . $user_id . " (" . $username . ") updated short code enty for " . $request->short_code;
$this->logUsersActivity($type = 'staff', $content);
return response()->json($data, 200);
}
}