diff --git a/app/Http/Controllers/ConfDistributionController.php b/app/Http/Controllers/ConfDistributionController.php new file mode 100644 index 0000000..ffdfd81 --- /dev/null +++ b/app/Http/Controllers/ConfDistributionController.php @@ -0,0 +1,210 @@ +tipe ?? "new"; + + $input = [ + "dc_code" => $req->dc_code, + "dc_name" => $req->dc_name, + ]; + $rulesInput = [ + "dc_code" => "required|string|max:10", + "dc_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_distribution_category WHERE dc_code = ?", [$req->dc_code]); + } + if($tipe == "edit"){ + $uniqCode = DB::select("SELECT * FROM t_conf_distribution_category WHERE dc_code = ? AND id != ?", [$req->dc_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 = [ + "dc_code" => $req->dc_code, + "dc_name" => $req->dc_name, + "crt" => $now, + "crt_by" => $req->auth->uid, + "updt" => $now, + "updt_by" => $req->auth->uid, + ]; + // $insQ = DB::insert("INSERT + // INTO t_conf_distribution_category (dc_code, dc_name, crt, crt_by, updt, updt_by) + // VALUES (?, ?, ?, ?, ?, ?) + // ", array_values($insD)); + $insQ = DB::insert("INSERT into t_conf_distribution_category set + dc_code = ?, + dc_name = ?, + crt = ?, + crt_by = ?, + updt = ?, + updt_by = ? + on duplicate key update + dc_code = values(dc_code), + dc_name = values(dc_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_distribution_category(Request $req) + { + try { + $now = time(); + + $list = DB::select("SELECT * FROM t_conf_distribution_category WHERE dlt IS NULL ORDER BY dc_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_distribution_category(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_distribution_category 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_distribution_category(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_distribution_category 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_distribution_category + 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/distribution_category.blade.php b/resources/views/menu_v1/configs/distribution_category.blade.php new file mode 100644 index 0000000..9d13b61 --- /dev/null +++ b/resources/views/menu_v1/configs/distribution_category.blade.php @@ -0,0 +1,390 @@ +@extends('app.app') + +@section('title') + Conf Distribution Categorys +@endsection + +@section('customcss') + +@endsection + +@section('content') +
+
+
+
+
+
+

Distribution Category

+
+ @can('config_distribution_category.create') +
+ +
+ @endcan + +
+ {{-- --}} + {{-- --}} +
+
+
+
+
+ + + + + + + + + + + + +
#ActionCodeName
+
+
+
+
+
+ + + + +@endsection + +@section('customjs') + + +@endsection diff --git a/resources/views/template/navbar.blade.php b/resources/views/template/navbar.blade.php index 988923c..c1e79d6 100755 --- a/resources/views/template/navbar.blade.php +++ b/resources/views/template/navbar.blade.php @@ -42,18 +42,22 @@ @endcan - @if (auth()->user()->can('config_truck_type.view') || auth()->user()->can('config_master_device.view') || auth()->user()->can('config_logs_gps.view')) + @if (auth()->user()->can('report_vehicle_trip.view') || auth()->user()->can('report_abnormality.view')) @endif @@ -73,11 +77,21 @@ Master Devices @endcan - @can('config_logs_gps.view') -
  • + @can('config_logs_gps.view') +
  • Logs Gps
  • @endcan + @can('config_distribution_category.view') +
  • + Distribution Category +
  • + @endcan + @can('config_pool.view') + + @endcan @endif diff --git a/routes/web.php b/routes/web.php index f18303b..183f4df 100755 --- a/routes/web.php +++ b/routes/web.php @@ -153,9 +153,23 @@ Route::middleware(["auth", "auth.user"])->group(function () { ); Route::get("/config/logbook_keys", "LogbookKeysController@view_lgb_keys")->name("view_config_lgb_keys"); + // distribution category + Route::get("/config/distribution_category", "ConfDistributionController@view_distribution_category") + ->name("view_config_distribution_category") + ->middleware("permission:config_distribution_category.view"); + Route::post("/api/conf/distribution_category", "ConfDistributionController@api_add_distribution_category")->name("api_conf_add_distribution_category"); + Route::get("/api/conf/distribution_category", "ConfDistributionController@api_list_distribution_category")->name("api_conf_list_distribution_category"); + 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"); + // reports Route::get("/reports/vehicle-trips", "ReportsController@view_report_vehicle_trips")->name("view_report_vehicle_trips"); Route::get("/reports/vehicle-trips-list", "ReportsController@api_report_vehicle_trips_list")->name("api_report_vehicle_trips_list"); + Route::get("/reports/vehicle-trip-detail", "ReportsController@view_report_trip_detail")->name("view_report_trip_detail"); Route::get("/reports/abnormalities", "ReportsController@view_report_abnormalities")->name("view_report_abnormalities"); Route::get("/reports/abnormalities-list", "ReportsController@api_report_abnormalities_list")->name("api_report_abnormalities_list");