bug fixes, AM change feature, refactoring

This commit is contained in:
Kwesi Banson Jnr
2025-11-23 14:40:32 +00:00
parent eabf61b7da
commit d5ac7391dd
41 changed files with 1559 additions and 125 deletions

View File

@@ -15,6 +15,7 @@ use App\Http\Requests;
use Carbon\Carbon;
use App\Libs\PaperLessNgx;
use Spatie\Activitylog\Models\Activity;
use Config;
class ClientsController extends Controller
{
@@ -23,7 +24,7 @@ class ClientsController extends Controller
*
* @return \Illuminate\Http\Response
*/
public function index(){
public function index(){
$data = [
'page_title' => 'Clients',
'current_user' => session('current_user')
@@ -715,7 +716,7 @@ class ClientsController extends Controller
$country_networks = \DB::table('network_operators')->Select(\DB::raw('id, concat(name, " (", country, ")") AS network'))->orderBy('network')->pluck('network', 'network');
// $country_networks = \DB::table('network_operators')->Select(\DB::raw('concat(name, " (", country, ")") AS network)')->orderBy('network')->get()->toArray();
// $country_networks = \DB::table('network_operators')->Select(\DB::raw('concat(name, " (", country, ")") AS network)'))->pluck('network', 'network');
$auth_users = Models\SystemUser::orderBy('name', 'ASC')->pluck('name', 'id');
$networks_raw = [
'AirtelTigo GH' => 'AirtelTigo GH',
'MTN GH' => 'MTN GH',
@@ -814,6 +815,8 @@ class ClientsController extends Controller
sort($networks_raw);
$recurring_arr = ['NO' => 'NO', 'Monthly' => 'Monthly', 'Quarterly' => 'Quarterly', 'Semiannual' => 'Semiannual', 'Yearly' => 'Yearly'];
$sender_id_statuses = ['Pending' => 'Pending', 'Inactive' => 'Inactive', 'Approved' => 'Approved'];
$change_account_mgr_permisson = Config::get('permissions.CHANGE_ACCOUNT_MANAGERS');
$change_account_mgr_permisson = ($this->hasAnyAccess([$change_account_mgr_permisson])) ? 'YES' : 'NO';
$data = [
'page_title' => 'Client Profile',
'showclient' => $showclient,
@@ -839,6 +842,8 @@ class ClientsController extends Controller
'recurring_arr' => $recurring_arr,
// 'client_sender_ids' => $client_sender_ids,
// 'sender_id_statuses' => $sender_id_statuses,
'change_account_mgr_permisson' => $change_account_mgr_permisson,
'am_list_arr' => $auth_users,
'country_network_arr' => $country_networks,
'mnos_arr' => ['' => '-- Select Country first --']
];
@@ -1198,26 +1203,29 @@ class ClientsController extends Controller
* @return \Illuminate\Http\Response
*/
public function update(Requests\UpdateClientRequest $request, $id){
// dd($request->all());
// dump($request->all());
// \DB::connection()->enableQueryLog();
$client_update = Models\Client::find($id);
// dump($client_update->progress_indicator);
$paperless = new PaperLessNgx();
if ($client_update->progress_indicator != 'COMPLETED') {
$current_pending_stage_details = Models\ClientOnboardingMainStage::where('stage', $request->current_pending_stage)->first();
$get_stage_subs_items = Models\ClientOnboardingSubItem::where('stage_id', $current_pending_stage_details->stage_id)->get();
#update the table for onboarding progress
foreach ($request->onboarding_sub_items_progress as $value) {
$stage_id = [
'stage_id' => $current_pending_stage_details->stage_id,
'client_id' => $id,
'name' => $value
];
$progress_arr = [
'status' => 'COMPLETED'
];
$clients_onboarding_progress = Models\ClientOnboardingProgress::updateOrCreate($stage_id, $progress_arr);
// dump($request->onboarding_sub_items_progress);
if ($request->onboarding_sub_items_progress) {
foreach ($request->onboarding_sub_items_progress as $value) {
$stage_id = [
'stage_id' => $current_pending_stage_details->stage_id,
'client_id' => $id,
'name' => $value
];
$progress_arr = [
'status' => 'COMPLETED'
];
$clients_onboarding_progress = Models\ClientOnboardingProgress::updateOrCreate($stage_id, $progress_arr);
}
}
//update the status of onboarding progress stage in clients
$get_stage_onboarding_status = Models\ClientOnboardingProgress::where('client_id', $id)->where('stage_id', $current_pending_stage_details->stage_id)->where('status', 'COMPLETED')->get();
$onboarding_progress_stage = json_decode($client_update->onboarding_progress_stage, true);
@@ -1450,6 +1458,45 @@ class ClientsController extends Controller
$result = Models\ClientCategory::create($client_arr);
}
return true;
}
public function changeAccountManagers(Request $request){
$new_account_manager = Models\SystemUser::find($request->account_manager);
$client = Models\Client::with('auth_user_info')->find($request->client_id);
$client->auth_user_id = $request->account_manager;
$client->last_modified_by = session('current_user.id');
$result = $client->save();
if ($result) {
$log_text = session('current_user.name') . " changed the account manager of ";
$log_text .= " " . $client->name . " from " . $client->auth_user_info->name;
$log_text .= " to " . $new_account_manager->name;
$activity_arr = [
'type' => 'staff',
'content' => $log_text,
'user_id' => session('current_user.id'),
'ip_address' => \Request::ip(),
'device' => $request->header('User-Agent')
];
$retval = Models\UserActivity::create($activity_arr);
$user_id = session('current_user.id');
$username = session('current_user.name');
$content = $log_text;
$this->logUsersActivity($type = 'staff', $content);
$data = ['code' => 1, $msg = 'success'];
return response()->json($data, 200);
}
else{
$data = ['code' => 3, $msg = 'fail'];
return response()->json($data, 200);
}
}
public function storeFiles(AddFilesRequest $request){
$document_arr = $request->except('document');