diff --git a/app/Http/Controllers/ConfPoolController.php b/app/Http/Controllers/ConfPoolController.php new file mode 100644 index 0000000..4c317c0 --- /dev/null +++ b/app/Http/Controllers/ConfPoolController.php @@ -0,0 +1,210 @@ +tipe ?? "new"; + + $input = [ + "pool_code" => $req->pool_code, + "pool_name" => $req->pool_name, + ]; + $rulesInput = [ + "pool_code" => "required|string|max:10", + "pool_name" => "required|string|max:100", + ]; + + // 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($tipe == "new"){ + $uniqCode = DB::select("SELECT * FROM t_conf_pool WHERE pool_code = ?", [$req->pool_code]); + } + if($tipe == "edit"){ + $uniqCode = DB::select("SELECT * FROM t_conf_pool WHERE pool_code = ? AND id != ?", [$req->pool_code, $req->id]); + } + if (count($uniqCode) > 0) { + $apiResp = Responses::bad_request("type code has been used"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + + DB::beginTransaction(); + + $insD = [ + "pool_code" => $req->pool_code, + "pool_name" => $req->pool_name, + "crt" => $now, + "crt_by" => $req->auth->uid, + "updt" => $now, + "updt_by" => $req->auth->uid, + ]; + // $insQ = DB::insert("INSERT + // INTO t_conf_pool (pool_code, pool_name, crt, crt_by, updt, updt_by) + // VALUES (?, ?, ?, ?, ?, ?) + // ", array_values($insD)); + $insQ = DB::insert("INSERT into t_conf_pool set + pool_code = ?, + pool_name = ?, + crt = ?, + crt_by = ?, + updt = ?, + updt_by = ? + on duplicate key update + pool_code = values(pool_code), + pool_name = values(pool_name), + updt = values(updt), + updt_by = values(updt_by) + ", array_values($insD)); + + + $apiResp = Responses::created("success " . ($tipe == "new" ? "add new" : "edit") . " distribution category"); + + 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_list_pool(Request $req) + { + try { + $now = time(); + + $list = DB::select("SELECT * FROM t_conf_pool WHERE dlt IS NULL ORDER BY pool_code ASC"); + foreach ($list as $key => $row) { + $list[$key]->DT_RowIndex = $key + 1; + $list[$key]->action = "-"; + } + + $apiResp = Responses::success("success list distribution category"); + $apiResp["count"] = count($list); + $apiResp["data"] = $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_pool(Request $req, $id) + { + try { + $input = [ + "id" => $id, + ]; + $rulesInput = [ + "id" => "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"]); + } + + $dtl = DB::select("SELECT * FROM t_conf_pool WHERE id = ? AND dlt IS NULL limit 1", [$id]); + if (count($dtl) < 1) { + $apiResp = Responses::not_found("truck type not found"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + + $apiResp = Responses::success("success get detail vehicle type"); + $apiResp["data"] = $dtl[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_del_pool(Request $req, $id) + { + try { + $now = time(); + + $input = [ + "id" => $id, + ]; + $rulesInput = [ + "id" => "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"]); + } + + $dtl = DB::select("SELECT * FROM t_conf_pool WHERE id = ? AND dlt IS NULL limit 1", [$id]); + if (count($dtl) < 1) { + $apiResp = Responses::not_found("vehicle type not found"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + + DB::beginTransaction(); + + $updtQ = DB::update("UPDATE t_conf_pool + SET + dlt = ?, + dlt_by = ?, + updt = ?, + updt_by = ? + WHERE id = ? AND dlt IS NULL + ", [1, $req->user()->id, $now, $req->user()->id, $id]); + + DB::commit(); + + $apiResp = Responses::success("success delete vehicle type"); + 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/resources/views/menu_v1/configs/pool.blade.php b/resources/views/menu_v1/configs/pool.blade.php new file mode 100644 index 0000000..c739f0f --- /dev/null +++ b/resources/views/menu_v1/configs/pool.blade.php @@ -0,0 +1,390 @@ +@extends('app.app') + +@section('title') + Conf Pools +@endsection + +@section('customcss') + +@endsection + +@section('content') +
+
+
+
+
+
+

Pool / Area

+
+ @can('config_pool.create') +
+ +
+ @endcan + +
+ {{-- --}} + {{-- --}} +
+
+
+
+
+ + + + + + + + + + + + +
#ActionCodeName
+
+
+
+
+
+ + + + +@endsection + +@section('customjs') + + +@endsection diff --git a/resources/views/template/navbar.blade.php b/resources/views/template/navbar.blade.php index c1e79d6..25d6f41 100755 --- a/resources/views/template/navbar.blade.php +++ b/resources/views/template/navbar.blade.php @@ -88,9 +88,9 @@ @endcan @can('config_pool.view') - +
  • + Pool +
  • @endcan diff --git a/routes/web.php b/routes/web.php index 183f4df..8ef0a29 100755 --- a/routes/web.php +++ b/routes/web.php @@ -153,7 +153,7 @@ Route::middleware(["auth", "auth.user"])->group(function () { ); Route::get("/config/logbook_keys", "LogbookKeysController@view_lgb_keys")->name("view_config_lgb_keys"); - // distribution category + // config distribution category Route::get("/config/distribution_category", "ConfDistributionController@view_distribution_category") ->name("view_config_distribution_category") ->middleware("permission:config_distribution_category.view"); @@ -162,9 +162,15 @@ Route::middleware(["auth", "auth.user"])->group(function () { Route::get("/api/conf/distribution_category/{id}", "ConfDistributionController@api_show_distribution_category")->name("api_conf_show_distribution_category"); Route::delete("/api/conf/distribution_category/{id}", "ConfDistributionController@api_del_distribution_category")->name("api_conf_del_distribution_category"); - // Route::get("/config/pool", "ConfTruckTypeController@view_pool") - // ->name("view_config_pool") - // ->middleware("permission:config_pool.view"); + // config pool + Route::get("/config/pool", "ConfPoolController@view_pool") + ->name("view_config_pool") + ->middleware("permission:config_pool.view"); + Route::post("/api/conf/pool", "ConfPoolController@api_add_pool")->name("api_conf_add_pool"); + Route::get("/api/conf/pool", "ConfPoolController@api_list_pool")->name("api_conf_list_pool"); + Route::get("/api/conf/pool/{id}", "ConfPoolController@api_show_pool")->name("api_conf_show_pool"); + Route::delete("/api/conf/pool/{id}", "ConfPoolController@api_del_pool")->name("api_conf_del_pool")->middleware("permission:config_pool.delete"); + // reports Route::get("/reports/vehicle-trips", "ReportsController@view_report_vehicle_trips")->name("view_report_vehicle_trips");