From bc6a88e1dba491efea5d508ba17042f8af08db1b Mon Sep 17 00:00:00 2001 From: meusinfirmary Date: Wed, 16 Jul 2025 19:36:14 +0700 Subject: [PATCH] update --- app/Http/Controllers/RolesController.php | 104 +++---- app/Http/Controllers/RolesController_bak.php | 287 +++++++++++++++++++ app/Http/Controllers/VehiclesController.php | 4 +- resources/views/menu_v1/dashboard.blade.php | 2 +- resources/views/menu_v1/vehicles.blade.php | 20 +- 5 files changed, 345 insertions(+), 72 deletions(-) create mode 100755 app/Http/Controllers/RolesController_bak.php diff --git a/app/Http/Controllers/RolesController.php b/app/Http/Controllers/RolesController.php index 8e11a19..7bf5821 100755 --- a/app/Http/Controllers/RolesController.php +++ b/app/Http/Controllers/RolesController.php @@ -2,7 +2,6 @@ namespace App\Http\Controllers; -use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\DB; @@ -15,14 +14,10 @@ use App\Models\Clients; use App\Models\Vehicles; use App\Models\Banks; use App\Models\UsersMenuPermissions; +use Spatie\Permission\PermissionRegistrar; class RolesController extends Controller { - /** - * Display a listing of the resource. - * - * @return \Illuminate\Http\Response - */ public function view(Request $req) { $permissions = \Spatie\Permission\Models\Permission::all(); @@ -35,17 +30,13 @@ class RolesController extends Controller "vehicles" => Vehicles::getVehicles(), "banks" => Banks::listBanks(["is_active" => Banks::IS_ACTIVE]), "permission" => $permissions->groupBy(function ($perm) { - return explode(".", $perm->name)[0]; // ambil modul: user, transaction, dst + return explode(".", $perm->name)[0]; }), ]; return view("menu_v1.roles", $data); } - /** - * API - */ - public function api_list(Request $req) { try { @@ -69,16 +60,9 @@ class RolesController extends Controller public function api_show(Request $req, $uid) { try { - $now = time(); + $input = ["uid" => $uid]; + $rulesInput = ["uid" => "required|integer|not_in:0"]; - $input = [ - "uid" => $uid, - ]; - $rulesInput = [ - "uid" => "required|integer|not_in:0", - ]; - - // validasi input $isValidInput = Validator::make($input, $rulesInput); if (!$isValidInput->passes()) { $apiResp = Responses::bad_input($isValidInput->messages()->first()); @@ -88,7 +72,6 @@ class RolesController extends Controller $role = DB::table("roles") ->where("roles.id", $uid) ->get(); - if (count($role) < 1) { $apiResp = Responses::not_found("role not found"); return new Response($apiResp, $apiResp["meta"]["code"]); @@ -96,7 +79,7 @@ class RolesController extends Controller $permissions = DB::table("role_has_permissions") ->where("role_id", $uid) - ->pluck("permission_id") // ambil array [1, 6, ...] + ->pluck("permission_id") ->toArray(); $role[0]->permissions = $permissions; @@ -113,24 +96,28 @@ class RolesController extends Controller { try { DB::beginTransaction(); - // Users::addUser($data); $role_id = DB::table("roles")->insertGetId([ "name" => $req->name, "guard_name" => "web", - "created_at" => date("Y-m-d H:i:s"), - "updated_at" => date("Y-m-d H:i:s"), + "created_at" => now(), + "updated_at" => now(), ]); $role_has_permissions = []; foreach ($req->permissions as $_permission) { - array_push($role_has_permissions, ["permission_id" => $_permission, "role_id" => $role_id]); + $role_has_permissions[] = [ + "permission_id" => $_permission, + "role_id" => $role_id, + ]; } - DB::table("role_has_permissions")->insert($role_has_permissions); - $apiResp = Responses::created("success add new role"); DB::commit(); + + app()[PermissionRegistrar::class]->forgetCachedPermissions(); + + $apiResp = Responses::created("success add new role"); return new Response($apiResp, $apiResp["meta"]["code"]); } catch (\Exception $e) { DB::rollBack(); @@ -147,7 +134,7 @@ class RolesController extends Controller DB::table("roles") ->where("id", $req->uid) ->update([ - "name" => $req->name, // ganti sesuai field yang mau diubah + "name" => $req->name, "updated_at" => now(), ]); @@ -164,9 +151,11 @@ class RolesController extends Controller } DB::table("role_has_permissions")->insert($role_has_permissions); - $apiResp = Responses::created("success update role"); - DB::commit(); + + app()[PermissionRegistrar::class]->forgetCachedPermissions(); + + $apiResp = Responses::created("success update role"); return new Response($apiResp, $apiResp["meta"]["code"]); } catch (\Exception $e) { DB::rollBack(); @@ -178,19 +167,9 @@ class RolesController extends Controller public function api_del(Request $req) { try { - $now = time(); + $input = ["uid" => $req->uid]; + $rulesInput = ["uid" => "required|integer|not_in:0"]; - $input = [ - "uid" => $req->uid, - ]; - $rulesInput = [ - "uid" => "required|integer|not_in:0", - ]; - $data = [ - "id" => $req->uid, - ]; - - // validasi input $isValidInput = Validator::make($input, $rulesInput); if (!$isValidInput->passes()) { $apiResp = Responses::bad_input($isValidInput->messages()->first()); @@ -201,7 +180,7 @@ class RolesController extends Controller ->where("id", $req->uid) ->get(); if (count($role) < 1) { - $apiResp = Responses::not_found("user not found"); + $apiResp = Responses::not_found("role not found"); return new Response($apiResp, $apiResp["meta"]["code"]); } @@ -210,14 +189,15 @@ class RolesController extends Controller DB::table("role_has_permissions") ->where("role_id", $req->uid) ->delete(); - DB::table("roles") ->where("id", $req->uid) ->delete(); - $apiResp = Responses::created("success delete role"); - DB::commit(); + + app()[PermissionRegistrar::class]->forgetCachedPermissions(); + + $apiResp = Responses::created("success delete role"); return new Response($apiResp, $apiResp["meta"]["code"]); } catch (\Exception $e) { DB::rollBack(); @@ -229,10 +209,9 @@ class RolesController extends Controller public function api_search(Request $req) { try { - $now = time(); - $roles = Users::arrRoles(); - $statuses = Users::arrStatus(); + DB::beginTransaction(); + $roles = Users::arrRoles(); $input = [ "name" => $req->name, "roles" => $req->roles, @@ -242,41 +221,32 @@ class RolesController extends Controller "roles" => "nullable|integer|not_in:0", ]; - // validasi input $isValidInput = Validator::make($input, $rulesInput); if (!$isValidInput->passes()) { $apiResp = Responses::bad_input($isValidInput->messages()->first()); return new Response($apiResp, $apiResp["meta"]["code"]); } - if ($req->roles) { - if (in_array($req->roles, $roles)) { - } else { - $apiResp = Responses::bad_request("role not valid"); - return new Response($apiResp, $apiResp["meta"]["code"]); - } - $users = Users::likeName($req->name, $req->roles); - } else { - $users = Users::likeName($req->name); + if ($req->roles && !in_array($req->roles, $roles)) { + $apiResp = Responses::bad_request("role not valid"); + return new Response($apiResp, $apiResp["meta"]["code"]); } + $users = $req->roles ? Users::likeName($req->name, $req->roles) : Users::likeName($req->name); + if (count($users) < 1) { $apiResp = Responses::not_found("user not found"); return new Response($apiResp, $apiResp["meta"]["code"]); } foreach ($users as $k => $v) { - // remove from array but no reindex array - // unset($users[$k]); - // remove from array and reindex array - // array_splice($users, $k, 1); unset($users[$k]->password); } + DB::commit(); + $apiResp = Responses::success("success search user by name"); $apiResp["data"] = $users; - - DB::commit(); return new Response($apiResp, $apiResp["meta"]["code"]); } catch (\Exception $e) { DB::rollBack(); @@ -284,4 +254,4 @@ class RolesController extends Controller return new Response($apiResp, $apiResp["meta"]["code"]); } } -} \ No newline at end of file +} diff --git a/app/Http/Controllers/RolesController_bak.php b/app/Http/Controllers/RolesController_bak.php new file mode 100755 index 0000000..4076b7d --- /dev/null +++ b/app/Http/Controllers/RolesController_bak.php @@ -0,0 +1,287 @@ + Users::listRoles($req->auth->role), + "pernus" => UsersMenuPermissions::listPermissionsMenus([ + "is_active" => UsersMenuPermissions::IS_ACTIVE, + ]), + "vehicles" => Vehicles::getVehicles(), + "banks" => Banks::listBanks(["is_active" => Banks::IS_ACTIVE]), + "permission" => $permissions->groupBy(function ($perm) { + return explode(".", $perm->name)[0]; // ambil modul: user, transaction, dst + }), + ]; + + return view("menu_v1.roles", $data); + } + + /** + * API + */ + + public function api_list(Request $req) + { + try { + $list = DB::table("roles")->get(); + foreach ($list as $key => $row) { + $list[$key]->DT_RowIndex = $key + 1; + $list[$key]->count_trx = 0; + $list[$key]->action = "-"; + } + + $apiResp = Responses::success("success list users"); + $apiResp["data"] = $list; + $apiResp["count"] = count($list); + return new Response($apiResp, $apiResp["meta"]["code"]); + } catch (\Exception $e) { + $apiResp = Responses::error($e->getMessage()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + } + + public function api_show(Request $req, $uid) + { + try { + $now = time(); + + $input = [ + "uid" => $uid, + ]; + $rulesInput = [ + "uid" => "required|integer|not_in:0", + ]; + + // validasi input + $isValidInput = Validator::make($input, $rulesInput); + if (!$isValidInput->passes()) { + $apiResp = Responses::bad_input($isValidInput->messages()->first()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + + $role = DB::table("roles") + ->where("roles.id", $uid) + ->get(); + + if (count($role) < 1) { + $apiResp = Responses::not_found("role not found"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + + $permissions = DB::table("role_has_permissions") + ->where("role_id", $uid) + ->pluck("permission_id") // ambil array [1, 6, ...] + ->toArray(); + $role[0]->permissions = $permissions; + + $apiResp = Responses::success("success get detail role"); + $apiResp["data"] = $role[0]; + return new Response($apiResp, $apiResp["meta"]["code"]); + } catch (\Exception $e) { + $apiResp = Responses::error($e->getMessage()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + } + + public function api_add(Request $req) + { + try { + DB::beginTransaction(); + // Users::addUser($data); + + $role_id = DB::table("roles")->insertGetId([ + "name" => $req->name, + "guard_name" => "web", + "created_at" => date("Y-m-d H:i:s"), + "updated_at" => date("Y-m-d H:i:s"), + ]); + + $role_has_permissions = []; + foreach ($req->permissions as $_permission) { + array_push($role_has_permissions, ["permission_id" => $_permission, "role_id" => $role_id]); + } + + DB::table("role_has_permissions")->insert($role_has_permissions); + + $apiResp = Responses::created("success add new role"); + DB::commit(); + return new Response($apiResp, $apiResp["meta"]["code"]); + } catch (\Exception $e) { + DB::rollBack(); + $apiResp = Responses::error($e->getMessage()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + } + + public function api_edit(Request $req) + { + try { + DB::beginTransaction(); + + DB::table("roles") + ->where("id", $req->uid) + ->update([ + "name" => $req->name, // ganti sesuai field yang mau diubah + "updated_at" => now(), + ]); + + DB::table("role_has_permissions") + ->where("role_id", $req->uid) + ->delete(); + + $role_has_permissions = []; + foreach ($req->permissions as $pid) { + $role_has_permissions[] = [ + "role_id" => $req->uid, + "permission_id" => $pid, + ]; + } + DB::table("role_has_permissions")->insert($role_has_permissions); + + $apiResp = Responses::created("success update role"); + + DB::commit(); + return new Response($apiResp, $apiResp["meta"]["code"]); + } catch (\Exception $e) { + DB::rollBack(); + $apiResp = Responses::error($e->getMessage()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + } + + public function api_del(Request $req) + { + try { + $now = time(); + + $input = [ + "uid" => $req->uid, + ]; + $rulesInput = [ + "uid" => "required|integer|not_in:0", + ]; + $data = [ + "id" => $req->uid, + ]; + + // validasi input + $isValidInput = Validator::make($input, $rulesInput); + if (!$isValidInput->passes()) { + $apiResp = Responses::bad_input($isValidInput->messages()->first()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + + $role = DB::table("roles") + ->where("id", $req->uid) + ->get(); + if (count($role) < 1) { + $apiResp = Responses::not_found("user not found"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + + DB::beginTransaction(); + + DB::table("role_has_permissions") + ->where("role_id", $req->uid) + ->delete(); + + DB::table("roles") + ->where("id", $req->uid) + ->delete(); + + $apiResp = Responses::created("success delete role"); + + DB::commit(); + return new Response($apiResp, $apiResp["meta"]["code"]); + } catch (\Exception $e) { + DB::rollBack(); + $apiResp = Responses::error($e->getMessage()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + } + + public function api_search(Request $req) + { + try { + $now = time(); + $roles = Users::arrRoles(); + $statuses = Users::arrStatus(); + + $input = [ + "name" => $req->name, + "roles" => $req->roles, + ]; + $rulesInput = [ + "name" => "required|string|max:125", + "roles" => "nullable|integer|not_in:0", + ]; + + // validasi input + $isValidInput = Validator::make($input, $rulesInput); + if (!$isValidInput->passes()) { + $apiResp = Responses::bad_input($isValidInput->messages()->first()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + + if ($req->roles) { + if (in_array($req->roles, $roles)) { + } else { + $apiResp = Responses::bad_request("role not valid"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + $users = Users::likeName($req->name, $req->roles); + } else { + $users = Users::likeName($req->name); + } + + if (count($users) < 1) { + $apiResp = Responses::not_found("user not found"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + + foreach ($users as $k => $v) { + // remove from array but no reindex array + // unset($users[$k]); + // remove from array and reindex array + // array_splice($users, $k, 1); + unset($users[$k]->password); + } + + $apiResp = Responses::success("success search user by name"); + $apiResp["data"] = $users; + + DB::commit(); + return new Response($apiResp, $apiResp["meta"]["code"]); + } catch (\Exception $e) { + DB::rollBack(); + $apiResp = Responses::error($e->getMessage()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + } +} diff --git a/app/Http/Controllers/VehiclesController.php b/app/Http/Controllers/VehiclesController.php index f53a2eb..c53e895 100755 --- a/app/Http/Controllers/VehiclesController.php +++ b/app/Http/Controllers/VehiclesController.php @@ -353,6 +353,7 @@ class VehiclesController extends Controller "type_id" => $req->type_id, "model_id" => $req->model_id, "speed_limit" => $req->speed_limit, + "sum_milleage" => $req->mileage, "fuel_capacity" => $req->fuel_capacity, "fuel_drop_treshold" => $req->fuel_drop_treshold, "max_pressure" => $req->max_pressure, @@ -386,6 +387,7 @@ class VehiclesController extends Controller "type_id" => "required|integer", "model_id" => "nullable|integer", "speed_limit" => "required|numeric", + "sum_milleage" => "required|numeric", // "fuel_capacity" => "required|numeric", // "fuel_drop_treshold" => "required|numeric", // "max_pressure" => "required|numeric", @@ -495,7 +497,7 @@ class VehiclesController extends Controller "nopol3" => strtoupper($req->nopol3), "c_did" => $req->d_current ?? 0, "a_did" => $req->d_assign ?? 0, - "sum_milleage" => $req->sum_milleage ?? 0, + "sum_milleage" => $req->mileage ?? 0, "is_track_holiday" => Vehicles::DEFAULT_TRACK_HOLIDAY, "track_sch_d" => Vehicles::DEFAULT_TRACK_SCH_D, "track_sch_h" => Vehicles::DEFAULT_TRACK_SCH_H, diff --git a/resources/views/menu_v1/dashboard.blade.php b/resources/views/menu_v1/dashboard.blade.php index 22243f5..ccfa86b 100755 --- a/resources/views/menu_v1/dashboard.blade.php +++ b/resources/views/menu_v1/dashboard.blade.php @@ -2415,7 +2415,7 @@ $('#infoVehicles-addr').text( `${Helper.shortenText(decodeURIComponent(truck?.lst_fulladdress || 'address'), 25)}`); $('#infoVehicles-lat_lng').text(Number(truck?.lst_lat).toFixed(5) + ', ' + Number(truck?.lst_lng).toFixed(6)); - $('#infoVehicles-mileage').text(Number(truck?.vhc_sum_milleage).toFixed(0)); + $('#infoVehicles-mileage').text(Number(truck?.vhc_sum_milleage_1).toFixed(0)); $('#infoVehicles-speedLimit').text(truck?.speed_limit); $('#infoVehicles-currentSpeed').text(truck?.lst_speed); let idlingDur = Wrapper.calcIdlingDur(truck?.lst_idle_at, truck?.lst_speed); diff --git a/resources/views/menu_v1/vehicles.blade.php b/resources/views/menu_v1/vehicles.blade.php index c50c0a4..bcd3fef 100755 --- a/resources/views/menu_v1/vehicles.blade.php +++ b/resources/views/menu_v1/vehicles.blade.php @@ -339,10 +339,22 @@ @endforeach -
- - +
+
+
+ + +
+
+ +
+
+ + +
+
+
@@ -1209,6 +1221,7 @@ $('#edt-model').val(data?.model_id).trigger('change'); $('#edt-speedlimit').val(data?.speed_limit); + $('#edt-mileage').val(data?.sum_milleage?.toFixed(2)); $('#edt-fuelcapacity').val(data?.fuel_capacity); $('#edt-fueldroptreshold').val(data?.fuel_drop_treshold); $('#edt-maxpressure').val(data?.max_pressure); @@ -1264,6 +1277,7 @@ data.model_id = $('#edt-model').val(); data.speed_limit = $('#edt-speedlimit').val(); + data.mileage = $('#edt-mileage').val(); data.fuel_capacity = $('#edt-fuelcapacity').val(); data.fuel_drop_treshold = $('#edt-fueldroptreshold').val(); data.max_pressure = $('#edt-maxpressure').val();