File manager - Edit - /home/autoph/public_html/projects/tickets-autohub/app/Http/Controllers/EmployeeController.php
Back
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; use App\Models\User; use DB; class EmployeeController extends Controller { public function __construct() { $this->user = new User; $this->auth = new AuthenticationController; } public function index() { if($this->auth->checkMaintenance() == "true"){ abort(503); } return view('layouts.authentication.admin.employee.archive_employee') ->with(['title_page'=>"Archived Employee"]); } public function asa_employee() { if($this->auth->checkMaintenance() == "true"){ abort(503); } return view('layouts.authentication.admin.employee.asa_employee') ->with(['title_page'=>"ASA Employee (live from asa database)"]); } public function listArchivedEmployee(Request $request) { $searchKeyword = $request->search['value'] ?? ''; $searchType = $request->search_type ?? ''; $orderColumnIndex = $request->order[0]['column']; $orderDir = $request->order[0]['dir']; $orderColumn = $request->columns[$orderColumnIndex]['data']; $limit = $request->length; $offset = $request->start; $data = DB::table('users_copy') ->select( 'id', 'asa_id', 'f_name', 'l_name' , 'email' , 'viber' , 'password' , 'position', 'department_id' , 'deal_code', 'comp_code', 'status' ); if (!empty($searchKeyword)) { switch ($searchType) { case "ASA ID": $data->where('users_copy.asa_id', 'like', '%' . $searchKeyword . '%'); break; case "Name": $data->where(function ($q) use ($searchKeyword) { $q->where(DB::raw("CONCAT(users_copy.f_name, ' ', users_copy.l_name)"), 'like', '%' . $searchKeyword . '%'); }); break; default: // Apply general search on f_name, l_name, and ticket number $data->where(function ($q) use ($searchKeyword) { $q->where('users_copy.asa_id', 'like', '%' . $searchKeyword . '%') ->orWhere(DB::raw("CONCAT(users_copy.f_name, ' ', users_copy.l_name)"), 'like', '%' . $searchKeyword . '%'); }); break; } } $data = $data->whereNull('status'); $data =$data->offset($offset) ->limit($limit)->orderBy('users_copy.f_name')->get(); $totalRecords = DB::table('users_copy')->count(); $filteredRecords = $totalRecords; $results = []; foreach ($results as $row) { $data[] = [ "id" => $row->id ?? '', // Ticket ID "asa_id" => $row->asa_id, "f_name" => $row->f_name, "l_name" => $row->l_name, "position" => $row->position, 'email' => $row->email, 'viber' => $row->viber, 'department_id' => $row->department_id, 'deal_code' => $row->deal_code, 'comp_code' => $row->comp_code, 'status' => $row->status ]; } // Prepare response for DataTables $result = [ 'draw' => intval($request->draw), 'recordsTotal' => $totalRecords, 'recordsFiltered' => $filteredRecords, 'data' => $data, ]; return response()->json($result); } //FROM dbconnect public function AsaEmployee(Request $request) { $searchKeyword = $request->search['value'] ?? ''; $searchType = $request->search_type ?? ''; $orderColumnIndex = $request->order[0]['column'] ?? []; $orderDir = $request->order[0]['dir'] ?? []; $orderColumn = $request->columns[$orderColumnIndex]['data'] ?? []; $limit = $request->length; $offset = $request->start; DB::enableQueryLog(); $query = DB::connection('autohub_connect')->table('vts_users') ->where('u_status', 1) ->select('vts_users.u_id', 'employee_id', 'company', 'dealer', 'dept_id', 'u_name', 'u_fname', 'u_lname', 'u_position', 'email', 'u_status', 'usr_mobile', DB::raw('vts_company.comp_code as comp_code'), DB::raw('vts_dealerships.deal_code as dealer_code') ) ->join('vts_company', 'vts_users.company', '=', 'vts_company.comp_id') ->join('vts_dealerships', 'vts_users.dealer', '=', 'vts_dealerships.deal_id') ->whereNotIn('employee_id', function ($query) { $query->select('asa_id')->from(DB::connection('mysql')->getDatabaseName() . '.users'); }) ->where('vts_users.u_status', 1); // Search logic if (!empty($searchKeyword)) { switch ($searchType) { case "ASA ID": $query->where('vts_users.employee_id', 'like', '%' . $searchKeyword . '%'); break; case "Name": $query->where(DB::raw("CONCAT(vts_users.u_fname, ' ', vts_users.u_lname)"), 'like', '%' . $searchKeyword . '%'); break; default: $query->where(function ($q) use ($searchKeyword) { $q->where('vts_users.employee_id', 'like', '%' . $searchKeyword . '%') ->orWhere(DB::raw("CONCAT(vts_users.u_fname, ' ', vts_users.u_lname)"), 'like', '%' . $searchKeyword . '%'); }); break; } } // Apply offset and limit before executing the query $data = $query->offset($offset) ->limit($limit) ->get(); $totalRecords = DB::connection('autohub_connect')->table('vts_users')->select()->whereNotIn('employee_id', function ($query) { $query->select('asa_id')->from(DB::connection('mysql')->getDatabaseName() . '.users'); }) ->where('vts_users.u_status', 1)->count(); $filteredRecords = $totalRecords; // Adjust this according to your filtering logic if necessary $results = []; foreach ($data as $row) { $results[] = [ "id" => $row->u_id, "asa_id" => $row->employee_id, "f_name" => $row->u_fname, "l_name" => $row->u_lname, "position" => $row->u_position, 'email' => $row->email, 'viber' => $row->usr_mobile, 'department_id' => $row->dept_id, 'deal_code' => $row->dealer_code, 'comp_code' => $row->comp_code, ]; } // Prepare response for DataTables $result = [ 'draw' => intval($request->draw), 'recordsTotal' => $totalRecords, 'recordsFiltered' => $filteredRecords, 'data' => $results, ]; return response()->json($result); } public function migrateEmployee(Request $request) { $id = $request->id; $employee = DB::connection('')->table('users_copy') ->where('id',$id) ->get(); try { foreach ($employee as $row) { $exists = DB::table('users') ->where('asa_id', $row->asa_id) ->orWhere('email',$row->email)->exists(); if($exists) { return response()->json(['status'=> 0 ,'message' => 'Employee ID or Email already exists']); } DB::table('users') ->insert([ 'asa_id' => $row->asa_id, 'f_name' => $row->f_name, 'l_name' => $row->l_name, 'email' => $row->email, 'viber' => $row->viber, 'password' => bcrypt('password'), 'position' => strtoupper($row->position), 'department_id' => $row->department_id, 'deal_code' => $row->deal_code, 'comp_code' => $row->comp_code, 'active' => 1, 'created_at' => now(), 'updated_at' => now(), ]); // After successful migration, update the status in users_copy to 1 DB::table('users_copy') ->where('id', $row->id) ->update(['status' => 1, 'updated_at' => now()]); } DB::commit(); return response()->json(['status' => 1, 'message' => 'Employee successfully migrated!']); } catch (\Exception $e) { DB::rollback(); return response()->json(['status' => 0, 'message' => $e->getMessage()]); } } public function migrateEmployeetoTicketing(Request $request) { $id = $request->id; // DB::connection('autohub_connect')->enableQueryLog(); $id = $request->id; $employee = DB::connection('autohub_connect')->table('vts_users') ->select('vts_users.u_id', 'employee_id', 'company', 'dealer', 'dept_id', 'u_name', 'u_fname', 'u_lname', 'u_position', 'email', 'u_status', 'usr_mobile', DB::raw('vts_company.comp_code as comp_code'), DB::raw('vts_dealerships.deal_code as dealer_code') ) ->join('vts_company', 'vts_users.company', '=', 'vts_company.comp_id') ->join('vts_dealerships', 'vts_users.dealer', '=', 'vts_dealerships.deal_id') ->where('u_id', $id) ->get(); // Log the query // $queryLog = DB::connection('autohub_connect')->getQueryLog(); // dd($queryLog); DB::beginTransaction(); try { foreach ($employee as $row) { try{ DB::connection('mysql')->table('users') ->insert([ 'asa_id' => $row->employee_id, 'f_name' => $row->u_fname, 'l_name' => $row->u_lname, 'email' => $row->email, 'password' => bcrypt('password'), 'position' => strtoupper($row->u_position), 'department_id' => $row->dept_id, 'viber' => $row->usr_mobile, 'deal_code' => $row->dealer_code, 'comp_code' => $row->comp_code, 'active' => 1, 'created_at' => now(), 'updated_at' => now(), ]); } catch(\Illuminate\Database\QueryException $e) { // $this->warn("Skipped duplicate: {$row->email}"); DB::connection('mysql')->table('users_copy') ->insert([ 'asa_id' => $row->employee_id, 'f_name' => $row->u_fname, 'l_name' => $row->u_lname, 'email' => $row->email, 'password' => bcrypt('password'), 'position' => strtoupper($row->u_position), 'department_id' => $row->dept_id, 'viber' => $row->usr_mobile, 'deal_code' => $row->dealer_code, 'comp_code' => $row->comp_code, 'active' => 1, 'created_at' => now(), 'updated_at' => now(), ]); } } DB::commit(); return response()->json(['status' => 1, 'message'=>'Employee successfully migrated']); } catch (\Exception $e) { DB::rollback(); return response()->json(['status' => 0,'message' => $e->getMessage()]); } } // public function searchEmployee(Request $request) // { // $employee_id = $request->employee_id ?? ''; // $firstname = $request->fname ?? ''; // $lastname = $request->lname ?? ''; // $employee = $request->email ?? ''; // $query = DB::table('users_copy'); // if($employee_id){ // $query->where('asa_id',$request->employee_id); // } // // $query->where( fn($q)) // if($firstname) // { // $query->orWhere('f_name', 'like', '%' . $firstname . '%'); // } // if($lastname) // { // $query->orWhere('l_name','like', '%' . $lastname . '%'); // } // if($email) // { // $query->orWhere('email','like','%' . $email . '%'); // } // $data = $query->get(); // echo'<pre>';print_r($data);echo'</pre>'; // } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings