middleware('auth'); $this->admin_user = $admin_user; } public function auth() { $this->user = Auth::user(); return $this->user; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $admin_users = User::get(); return view('admin.adminuser.index', ["admin_users" => $admin_users]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { return $this->admin_user->store($request); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $data = $this->admin_user->edit($id); return view('admin.adminuser.edit', ["user_details" => $data['user'], "menu" => $data['sec'], "menu_tab" => $data['menus'], "pdata" => $data['prof_data'],"agencies" => $data['agency'],"login" => $data['login_stamps'], "userlevel" => $data['userlevel']]); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $update_act = $this->admin_user->update($request, $id); $userdet = $request->user; $delete = (isset($userdet['delete'])) ? $userdet['delete'] : ''; if($delete=='on') return redirect('admin/user'); else { if($update_act) $request->session()->flash('aalert-success', 'Username / Email already exists'); return redirect('admin/user/' . $id . '/edit'); } } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $user = User::find($id); $user->delete(); return '1'; } /** * Send email to users. * * @param int $id * @return \Illuminate\Http\Response */ public function send_user_email(Request $request) { $this->admin_user->send_email($request); $request->session()->flash('aealert-success', 'Email Sent Successfully'); return redirect('admin/user'); } /** * List Unapproved Users * * @param int $id * @return \Illuminate\Http\Response */ public function unapprove_user() { $admin_users = $this->admin_user->unapprove_user(); return view('admin.adminuser.approve', ["admin_user" => $admin_users]); } /** * List Unapproved Users * * @param int $id * @return \Illuminate\Http\Response */ public function update_approve(Request $request) { $admin_users = $this->admin_user->update_user($request); return $admin_users; } /** * Delete Users * * @param int $id * @return \Illuminate\Http\Response */ public function destroy_users(Request $request) { $user_list = $request->userlist; foreach ($user_list as $id) { $user = User::find($id); $user->delete(); } return '1'; } public function decline_user(Request $request) { $user_list = $request->userlist; foreach ($user_list as $id) { $user = User::where('id', $id) ->update(["approved"=>""]); $users = User::where('id', $id)->get(); $data = array(); foreach($users as $ls) { $data['firstname'] = $ls->first_name; $data['lastname'] = $ls->last_name; $data['username'] = $ls->username; $data['email'] = $ls->email; } Mail::send('mail.user_decline', $data, function ($m) use ($data) { $m->to($data['email']); $m->subject('Your account has been Declined in ECCO'); }); } return '1'; } /** * List User Levels * * @param int $id * @return \Illuminate\Http\Response */ public function user_levels() { $admin_level = $this->admin_user->login_levels(); return view('admin.adminuser.user_level', ["admin_level" => $admin_level['levels'], "users" => $admin_level['user']]); } public function get_eligibility_rate($year,$term,$type) { $rate = Eligibility_rate::with('user')->where('ELGIBLY_TYPE',$type) ->where('ACADEMIC_YEAR',$year) ->where('SEMESTER',$term) ->first(); return $rate; } /** * Admin Settings * * @param int $id * @return \Illuminate\Http\Response */ public function admin_settings() { $proposals = Eligibility_rate::where('ELGIBLY_TYPE','PROPOSAL')->get(); //$cworkbook = Eligibility_rate::with('user')->where('ELGIBLY_TYPE','COSTWB')->first(); $coworkbook = Eligibility_rate::with('user')->where('ELGIBLY_TYPE','COSTWBONLY')->get(); $prop_eligs = array(); if(count($proposals)) { foreach($proposals as $prop_elig) { $a_year = $prop_elig->ACADEMIC_YEAR; $a_sem = $prop_elig->SEMESTER; $prop_eligs[$a_year.$a_sem] = $this->get_eligibility_rate($a_year,$a_sem,'PROPOSAL'); } } $cost_eligs = array(); if(count($coworkbook)) { foreach($coworkbook as $cost_elig) { $ac_year = $cost_elig->ACADEMIC_YEAR; $ac_sem = $cost_elig->SEMESTER; $cost_eligs[$ac_year.$ac_sem] = $this->get_eligibility_rate($ac_year,$ac_sem,'COSTWBONLY'); } } //echo '
'; print_r($prop_eligs); exit;
return view('admin.adminuser.admin_settings', ["proposal" => $prop_eligs,
"coworkbook" => $cost_eligs]);
}
/**
* Save Process Settings values
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function save_process_settings(Request $request){
$type = $request->type;
$rate = $request->rate;
$user_id = Auth::user()->id;
$cdate = date('Y-m-d h:i:s');
if($type=='PROPOSAL') {
$year = $request->year;
$sem = $request->sem;
$check = Eligibility_rate::select('ELGIBLY_ID')
->where('ACADEMIC_YEAR',$year)
->where('SEMESTER',$sem)
->where('ELGIBLY_TYPE','PROPOSAL')
->first();
$checkid = isset($check->ELGIBLY_ID)?$check->ELGIBLY_ID:'';
if(!$checkid) {
$prop_elig = new Eligibility_rate;
$prop_elig->ELGIBLY_TYPE = "PROPOSAL";
$prop_elig->ACADEMIC_YEAR = $year;
$prop_elig->SEMESTER = $sem;
$prop_elig->ELIGIBLY_RATE = $rate;
$prop_elig->CREATE_USER_ID = $user_id;
$prop_elig->CREATE_DT = $cdate;
$prop_elig->MODIFY_USER_ID = $user_id;
$prop_elig->MODIFY_DT = $cdate;
$prop_elig->save();
}
else {
$upd = ['ELIGIBLY_RATE' => $rate,"MODIFY_USER_ID"=>$user_id,"MODIFY_DT"=>$cdate];
Eligibility_rate::where('ACADEMIC_YEAR',$year)
->where('SEMESTER',$sem)
->where('ELGIBLY_TYPE',"PROPOSAL")
->update($upd);
}
}
else if($type=='COSTWBONLY') {
$year = $request->year;
$sem = $request->sem;
$check = Eligibility_rate::select('ELGIBLY_ID')
->where('ELGIBLY_TYPE','COSTWBONLY')
->where('SEMESTER',$sem)
->where('ACADEMIC_YEAR',$year)
->first();
$checkid = isset($check->ELGIBLY_ID)?$check->ELGIBLY_ID:'';
if(!$checkid) {
$prop_elig = new Eligibility_rate;
$prop_elig->ELGIBLY_TYPE = "COSTWBONLY";
$prop_elig->ACADEMIC_YEAR = $year;
$prop_elig->SEMESTER = $sem;
$prop_elig->ELIGIBLY_RATE = $rate;
$prop_elig->CREATE_USER_ID = $user_id;
$prop_elig->CREATE_DT = $cdate;
$prop_elig->MODIFY_USER_ID = $user_id;
$prop_elig->MODIFY_DT = $cdate;
$prop_elig->save();
}
else {
$upd = ['ELIGIBLY_RATE' => $rate,"MODIFY_USER_ID"=>$user_id,"MODIFY_DT"=>$cdate];
Eligibility_rate::where('ACADEMIC_YEAR',$year)
->where('SEMESTER',$sem)
->where('ELGIBLY_TYPE',"COSTWBONLY")
->update($upd);
}
}
else {
$check = Eligibility_rate::select('ELGIBLY_ID')
->where('ELGIBLY_TYPE','COSTWB')
->first();
$checkid = isset($check->ELGIBLY_ID)?$check->ELGIBLY_ID:'';
if(!$checkid) {
$prop_elig = new Eligibility_rate;
$prop_elig->ELGIBLY_TYPE = "COSTWB";
$prop_elig->ELIGIBLY_RATE = $rate;
$prop_elig->CREATE_USER_ID = $user_id;
$prop_elig->CREATE_DT = $cdate;
$prop_elig->MODIFY_USER_ID = $user_id;
$prop_elig->MODIFY_DT = $cdate;
$prop_elig->save();
}
else {
$upd = ['ELIGIBLY_RATE' => $rate,"MODIFY_USER_ID"=>$user_id,"MODIFY_DT"=>$cdate];
Eligibility_rate::where('ELGIBLY_TYPE',"COSTWB")
->update($upd);
}
}
return 1;
}
/**
* Create New User Levels
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function store_levels(Request $request) {
$level_name = $request->name;
$redirect = $request->redirect;
$level = Login_levels::max('level_level');
$level = $level + 1;
$insert = Login_levels::insert(['level_name' => $level_name, 'level_level' => $level,
'redirect' => $redirect]);
$request->session()->flash('level-success', 'Level Created Successfully');
return redirect('admin/user/user_level');
}
/**
* Edit User Levels
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit_levels($id) {
$user = $this->admin_user->edit_levels($id);
return view('admin.adminuser.edit_level', ["user_level" => $user]);
}
/**
* Update User Levels
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update_level(Request $request, $id) {
$user = $this->admin_user->update_level($request);
$request->session()->flash('lev_update_success', 'Level updated Successfully');
return redirect('admin/user/user_level');
}
public function user_download(Request $request) {
$data = User::get();
$rows = array();
$headers = array(
"Content-type" => "text/csv",
"Content-Disposition" => "attachment; filename=users.csv",
"Pragma" => "no-cache",
"Cache-Control" => "must-revalidate, post-check=0, pre-check=0",
"Expires" => "0"
);
$columns = array('Username', 'Name', 'Email', 'Restricted', 'Assoications', 'Created on', ' Universities Associated with');
$callback = function() use ($data, $columns) {
$i=0;
$file = fopen('php://output', 'w');
fputcsv($file, $columns);
foreach($data as $datas) {
$username = $datas->username;
$name = $datas->first_name;
$email = $datas->email;
$created = date('d m Y', strtotime($datas->created_at));
$agency = $this->admin_user->user_download($datas);
$associated = $agency;
$restrict = $datas->restricted;
$restrict = ($restrict)?'Yes':'No';
$assoc = $this->admin_user->get_agencyfromid($datas->assoc_univ);
fputcsv($file, array($username, $name, $email, $restrict, $assoc, $created, $associated));
}
fclose($file);
};
return Response::stream($callback, 200, $headers);
}
public function admin_settings_upload(Request $request) {
if ($request->file('eligibility_doc') != '')
{
$image = $request->file('eligibility_doc');
$imgtype = $image->getClientOriginalExtension();
$upfile = $image->getClientOriginalName();
$temp_name = $upfile;
$year = $request->year;
$sem = $request->sem;
$ysem = $year.'_'.$sem;
$destinationPath = public_path('/images/eligibility/'.$ysem);
if(!File::exists($destinationPath)) {
File::makeDirectory($destinationPath, $mode = 0777, true, true);
}
$user_id = Auth::user()->id;
$cdate = date("Y-m-d");
if ($imgtype == 'bmp' || $imgtype == 'gif' || $imgtype == 'jpg' || $imgtype ==
'png' || $imgtype == 'jpeg' || $imgtype == 'pdf' || $imgtype == 'xls' || $imgtype == 'csv' || $imgtype == 'docx' || $imgtype == 'xlsx' || $imgtype == 'txt' || $imgtype == 'rtf' || $imgtype == 'ppt' || $imgtype == 'pptx')
{
$image->move($destinationPath, $temp_name);
$proc_rec = Eligibility_rate::select("UPD_DOCS")
->where('ACADEMIC_YEAR',$year)
->where('SEMESTER',$sem)
->first();
if(isset($proc_rec->UPD_DOCS) && $proc_rec->UPD_DOCS!='') {
$documents=unserialize($proc_rec->UPD_DOCS);
$arrcnt = count($documents);
if($arrcnt) {
array_push($documents, $upfile);
} else {
$documents=array($upfile);
}
}
else $documents=array($upfile);
$doc_array = serialize($documents);
$upd = ['UPD_DOCS' => $doc_array,"MODIFY_USER_ID"=>$user_id,"MODIFY_DT"=>$cdate];
Eligibility_rate::where('ACADEMIC_YEAR',$year)
->where('SEMESTER',$sem)
->update($upd);
$request->session()->flash('aalert-success', 'Image uploded Successfully');
return redirect('admin/user/admin_settings');
}
else
{
$request->session()->flash('aalert-error', 'Invalid file type '.$imgtype);
return redirect('admin/user/admin_settings');
}
}
else {
$request->session()->flash('aalert-error', 'No files selected');
return redirect('admin/user/admin_settings');
}
}
/*
Remove Uploaded Documents
*/
public function remove_eligibility_doc(Request $request) {
$propid = $request->pid;
$item_no = $request->item_no;
$first = array(); $second= array();
$proc_rec = Eligibility_rate::select("UPD_DOCS")
->where("ELGIBLY_ID", $propid)
->first();
$arraysocial1=unserialize($proc_rec->UPD_DOCS);
unset($arraysocial1[$request->item_no]);
$first[] = array_values($arraysocial1);
$arraysocial = $first;
$arrcnt = count($arraysocial1);
if($arrcnt) {
$folder=serialize($arraysocial);
} else {
$folder='';
}
$upd = ["UPD_DOCS"=>$folder];
Eligibility_rate::where("ELGIBLY_ID", $propid)
->update($upd);
echo 1;
}
public function approval_process(Request $request) {
$sort = $request->sort;
$sort = ($sort!='all')?$sort:'';
$user_id = $this->auth()->id;
$user_level = auth::user()->user_level;
if($user_level!='1') {
$mapped_agency = array();
$mapped_agencies = University_map::where('user_id', $user_id)->get();
foreach ($mapped_agencies as $map_agency) {
$mapped_agency[] = $map_agency->university_id;
}
}
$process = $this->admin_user->approval_process($sort);
$ucity = Approval_process::with('university');
if($user_level!='1') {
$ucity = $ucity->whereIn('UNIV_ID', $mapped_agency);
}
if($sort!='') {
$ucity = $ucity->where('PROC_STATUS', $sort);
}
$ucity = $ucity->groupBy('UNIV_ID')
->orderBy('PROC_ON', 'desc')
->get();
return view('admin.adminuser.approval_process', ["process" => $process,"ucity"=>$ucity]);
}
}