modified it for multiple organisations

This commit is contained in:
Kwesi Banson Jnr
2026-06-23 10:07:20 +00:00
parent 5e97905786
commit 1c77a23963
11 changed files with 221 additions and 64 deletions

View File

@@ -44,7 +44,6 @@ class ClientsLoginController extends Controller
}
public function activation(Request $request){
$this->validate($request, [
// 'activation_hash' => 'required',
'password' => 'required',
// 'password' => ['required', 'min:8', 'confirmed']
'password' => ['required','confirmed', Password::min(8)->letters()->numbers(),]
@@ -83,19 +82,21 @@ class ClientsLoginController extends Controller
$logged_in = '';
$client = Models\ClientSession::where('email', $request->email)->first();
// dump($client);
if ($client == false) {
return redirect()->back()->withErrors(['Invalid credentials']);
}
$client_url = "clients/" . $client->client_id;
$result = ApiCalls::CurlGet($client_url);
// dd($result);
$result_arr = json_decode($result, true);
$logged_in = $result_arr;
// dd($logged_in);
$request->session()->regenerate(true);
$request->session()->put('current_user.user_id', $logged_in['id']);
$request->session()->put('current_user.org_id', $logged_in['id']);
$request->session()->put('current_user.ucm_org_id', $client->ucm_org_id);
$request->session()->put('current_user.name', $logged_in['name']);
$request->session()->put('current_user.email', $logged_in['email']);
$request->session()->put('current_user.role', $client['role']);

View File

@@ -38,26 +38,36 @@ class ClientsTrafficController extends Controller
['path' => $request->url(), 'query' => $request->query()]
);
}
public function indexTest(){
$data = ['page_title' => 'Test Page'];
return view('client-traffic.test', $data);
}
public function index(){
$client_id = session('current_user.org_id');
$ucm_org_id = session('current_user.ucm_org_id');
// dd($client_id);
$clients_url = "messages/client/$client_id?page=0&size=1000&sort=createdAt,desc";
$result = ApiCalls::CurlGet($clients_url);
$result_arr = json_decode($result);
// dd($result_arr);
$current_date = new DateTime();
$start_date = $current_date->modify('-10 days');
$start_date = $start_date->format('Y-m-d');
$end_date = date('Y-m-d');
$daily_smsunits_url = "ucm/reports/daily-sms-units?from=$start_date&to=$end_date";
$daily_smsunits_url = "ucm/reports/daily-sms-units?from=$start_date&to=$end_date&ucm_org_id=$ucm_org_id";
$result = ApiCalls::CurlGet($daily_smsunits_url);
$sms_units_arr = json_decode($result, true);
$daily_smsunits_url_split = "ucm/reports/daily-sms-units-by-network?from=$start_date&to=$end_date";
$daily_smsunits_url_split = "ucm/reports/daily-sms-units-by-network?from=$start_date&to=$end_date&ucm_org_id=$ucm_org_id";
// dump($daily_smsunits_url_split);
$result = ApiCalls::CurlGet($daily_smsunits_url_split);
$split_sms_units_arr = json_decode($result, true);
// dd($split_sms_units_arr);
$orgId = session('current_user.org_id');
$sms_balance_url = "clients/$orgId/balance";
$result = ApiCalls::CurlGet($sms_balance_url);
@@ -77,22 +87,49 @@ class ClientsTrafficController extends Controller
"TNM SMSUnits" => 18796
*/
// dump($split_sms_units_arr);
$airtel_rate = 14;
$tnm_rate = 18;
$airtel_computation = $split_sms_units_arr['Airtel SMSUnits'] * $airtel_rate;
$tnm_computation = $split_sms_units_arr['TNM SMSUnits'] * $tnm_rate;
$charge_computation = $airtel_computation + $tnm_computation;
if ($ucm_org_id == 629) {
$airtel_rate = 14;
$tnm_rate = 18;
$airtel_computation = $split_sms_units_arr['Airtel SMSUnits'] * $airtel_rate;
$tnm_computation = $split_sms_units_arr['TNM SMSUnits'] * $tnm_rate;
$charge_computation = $airtel_computation + $tnm_computation;
$split_sms_units_arr['charge_computation'] = number_format($charge_computation);
$split_sms_units_arr['charge_computation'] = number_format($charge_computation);
$data = [
'page_title' => 'SMS Traffic',
'traffic_arr' => $result_arr,
'sms_units_arr' => $sms_units_arr,
'split_sms_units_arr' => $split_sms_units_arr,
'charge_computation' => $charge_computation,
'balance_arr' => $balance_arr
];
$data = [
'page_title' => 'SMS Traffic',
'traffic_arr' => $result_arr,
'sms_units_arr' => $sms_units_arr,
'split_sms_units_arr' => $split_sms_units_arr,
'charge_computation' => $charge_computation,
'balance_arr' => $balance_arr
];
}
elseif($ucm_org_id == 701){
// "movitelMzSmsUnits" => 0
// "tmcelMzSmsUnits" => 0
// "vodacomMzSmsUnits" => 1
$movitel_rate = 0.32;
$tmcell_rate = 0.32;
$vodacom_rate = 0.32;
$movitel_computation = $split_sms_units_arr['movitelMzSmsUnits'] * $movitel_rate;
$tmcell_computation = $split_sms_units_arr['tmcelMzSmsUnits'] * $tmcell_rate;
$vodacom_computation = $split_sms_units_arr['tmcelMzSmsUnits'] * $vodacom_rate;
$charge_computation = $movitel_computation + $tmcell_computation + $vodacom_computation;
$split_sms_units_arr['charge_computation'] = number_format($charge_computation);
$split_sms_units_arr['units_computation'] = $split_sms_units_arr['movitelMzSmsUnits'] + $split_sms_units_arr['tmcelMzSmsUnits'] + $split_sms_units_arr['vodacomMzSmsUnits'];
$data = [
'page_title' => 'SMS Traffic',
'traffic_arr' => $result_arr,
'sms_units_arr' => $sms_units_arr,
'split_sms_units_arr' => $split_sms_units_arr,
'charge_computation' => $charge_computation,
'balance_arr' => $balance_arr
];
}
// dd($data);
return view('client-traffic.index-main', $data);
}
@@ -210,19 +247,61 @@ class ClientsTrafficController extends Controller
]);
$start_date = $request->start_date;
$end_date = $request->end_date;
$client_id = session('current_user.org_id');
$ucm_org_id = session('current_user.ucm_org_id');
/*
$daily_smsunits_url = "ucm/reports/daily-sms-units?from=$start_date&to=$end_date";
$result = ApiCalls::CurlGet($daily_smsunits_url);
\Log::info('SMS Units Response ' . $result);
*/
$daily_smsunits_url_split = "ucm/reports/daily-sms-units-by-network?from=$start_date&to=$end_date";
$daily_smsunits_url_split = "ucm/reports/daily-sms-units-by-network?from=$start_date&to=$end_date&ucm_org_id=$ucm_org_id";
$result = ApiCalls::CurlGet($daily_smsunits_url_split);
$split_sms_units_arr = json_decode($result, true);
\Log::info('SMS Units Response ' . $result);
$data = json_decode($result, true);
if ($ucm_org_id == 629) {
$airtel_rate = 14;
$tnm_rate = 18;
$airtel_computation = $split_sms_units_arr['Airtel SMSUnits'] * $airtel_rate;
$tnm_computation = $split_sms_units_arr['TNM SMSUnits'] * $tnm_rate;
$charge_computation = (int)$airtel_computation + (int)$tnm_computation;
$data['ucm_org_id'] = $ucm_org_id;
$data['charge_computation'] = number_format($charge_computation);
$data['airtel_sms_units'] = number_format($split_sms_units_arr['Airtel SMSUnits']);
$data['tnm_sms_units'] = number_format($split_sms_units_arr['TNM SMSUnits']);
return response()->json($data);
}
elseif($ucm_org_id == 701){
// "movitelMzSmsUnits" => 0
// "tmcelMzSmsUnits" => 0
// "vodacomMzSmsUnits" => 1
$movitel_rate = 0.32;
$tmcell_rate = 0.32;
$vodacom_rate = 0.32;
$movitel_computation = $split_sms_units_arr['movitelMzSmsUnits'] * $movitel_rate;
$tmcell_computation = $split_sms_units_arr['tmcelMzSmsUnits'] * $tmcell_rate;
$vodacom_computation = $split_sms_units_arr['tmcelMzSmsUnits'] * $vodacom_rate;
$charge_computation = (int)$movitel_computation + (int)$tmcell_computation + (int)$vodacom_computation;
$data['ucm_org_id'] = $ucm_org_id;
$data['charge_computation'] = number_format($charge_computation);
$units_computation = (int)$split_sms_units_arr['movitelMzSmsUnits'] + (int)$split_sms_units_arr['tmcelMzSmsUnits'] + (int)$split_sms_units_arr['vodacomMzSmsUnits'];
$data['units_computation'] = $units_computation;
return response()->json($data);
}
/*
$airtel_rate = 14;
$tnm_rate = 18;
@@ -237,8 +316,9 @@ class ClientsTrafficController extends Controller
$data['charge_computation'] = number_format($charge_computation);
$data['airtel_sms_units'] = number_format($split_sms_units_arr['Airtel SMSUnits']);
$data['tnm_sms_units'] = number_format($split_sms_units_arr['TNM SMSUnits']);
*/
return response()->json($data);
}
public function dailySmsUnitsSplit(){

View File

@@ -42,7 +42,7 @@ class ApiCalls
$api_key = $result_arr->content[0]->apiKey;
$header_part = "Authorization: Bearer " . $api_key; //env('SUNKING_APIKEY');
}
// dd($header_part);
\Log::info('Request Params :' . $data);
$curl = curl_init();
curl_setopt_array($curl, array(