From 7b85e1e376f5255adf1b1c12f83cee4128b88009 Mon Sep 17 00:00:00 2001 From: meusinfirmary Date: Tue, 17 Jun 2025 09:44:24 +0900 Subject: [PATCH] update --- app/Http/Controllers/DevicesController.php | 698 +++++++++--------- public/mails/v0/output/2. Aktivasi akun.html | 2 +- resources/views/app/app.blade.php | 2 +- .../views/menu_v1/_addChecklist.blade.php | 2 +- .../menu_v1/_viewTransactions.blade.php.bak | 10 +- .../_viewTransactionsSingle.blade.php.bak | 16 +- resources/views/menu_v1/checklist.blade.php | 2 +- .../views/menu_v1/configs/devices.blade.php | 14 +- .../menu_v1/configs/insurances.blade.php | 54 +- .../configs/static_insurances.blade.php | 28 +- .../configs/usersMenuPermissions.blade.php | 242 +++--- .../views/menu_v1/transactions.blade.php | 4 +- resources/views/menu_v1/vehicles.blade.php | 28 +- .../views/menu_v2/Checker/_view.blade.php | 10 +- .../views/menu_v2/Finance/_dana.blade.php | 100 +-- .../menu_v2/Finance/_viewBilling.blade.php | 18 +- .../Finance/_viewBilling.blade.php.bak | 10 +- .../menu_v2/Finance/_viewPayment.blade.php | 259 +++---- .../Finance/_viewPaymentSingle.blade.php.bak | 28 +- .../views/menu_v2/Finance/adtItems.blade.php | 96 ++- 20 files changed, 790 insertions(+), 833 deletions(-) diff --git a/app/Http/Controllers/DevicesController.php b/app/Http/Controllers/DevicesController.php index ff46800..108d9a9 100755 --- a/app/Http/Controllers/DevicesController.php +++ b/app/Http/Controllers/DevicesController.php @@ -16,392 +16,398 @@ class DevicesController extends Controller { public function view_devices(Request $req) { - $vhcs = Vehicles::listVehicles($req->auth); - $data = [ - 'vhcs' => $vhcs, - ]; - return view('menu_v1.configs.devices', $data); + $vhcs = Vehicles::listVehicles($req->auth); + $data = [ + "vhcs" => $vhcs, + ]; + return view("menu_v1.configs.devices", $data); } /** - * API - */ + * API + */ - public function api_list_devices(Request $req) - { - try { - $now = time(); - $input = []; - $rulesInput = []; + public function api_list_devices(Request $req) + { + try { + $now = time(); + $input = []; + $rulesInput = []; - // validasi input - // $isValidInput = Validator::make($input, $rulesInput); - // if (!$isValidInput->passes()) { - // $apiResp = Responses::bad_input($isValidInput->messages()->first()); - // return new Response($apiResp, $apiResp['meta']['code']); - // } + // validasi input + // $isValidInput = Validator::make($input, $rulesInput); + // if (!$isValidInput->passes()) { + // $apiResp = Responses::bad_input($isValidInput->messages()->first()); + // return new Response($apiResp, $apiResp['meta']['code']); + // } - $list = Devices::listDevices(); - foreach ($list as $key => $row) { - $list[$key]->DT_RowIndex = $key + 1; - $list[$key]->action = '-'; - if ($row->vhc_id == null) { - $list[$key]->is_idle = 'yes'; - } else { - $list[$key]->is_idle = 'no'; - } - } + $list = Devices::listDevices(); + foreach ($list as $key => $row) { + $list[$key]->DT_RowIndex = $key + 1; + $list[$key]->action = "-"; + if ($row->vhc_id == null) { + $list[$key]->is_idle = "yes"; + } else { + $list[$key]->is_idle = "no"; + } + } - $apiResp = Responses::success('success list devices'); - $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'])); - } - } + $apiResp = Responses::success("success list devices"); + $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_device(Request $req, $id) - { - try { - $now = time(); + public function api_show_device(Request $req, $id) + { + try { + $now = time(); - $input = [ - 'id' => $id, - ]; - $rulesInput = [ - 'id' => 'required|integer|not_in:0', - ]; + $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']); - } + // validasi input + $isValidInput = Validator::make($input, $rulesInput); + if (!$isValidInput->passes()) { + $apiResp = Responses::bad_input($isValidInput->messages()->first()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - $device = Devices::showDeviceById($id); - if (count($device) < 1) { - $apiResp = Responses::not_found('device not found'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - - $apiResp = Responses::success('success get detail device'); - $apiResp['data'] = $device[0]; - return (new Response($apiResp, $apiResp['meta']['code'])); - } catch (\Exception $e) { - $apiResp = Responses::error($e->getMessage()); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - } + $device = Devices::showDeviceById($id); + if (count($device) < 1) { + $apiResp = Responses::not_found("device not found"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - public function api_add_device(Request $req) - { - try { - $now = time(); + $apiResp = Responses::success("success get detail device"); + $apiResp["data"] = $device[0]; + return new Response($apiResp, $apiResp["meta"]["code"]); + } catch (\Exception $e) { + $apiResp = Responses::error($e->getMessage()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + } - $input = [ - 'device_id' => $req->device_id, - 'name' => $req->name, - 'simcard' => $req->simcard, - 'type' => $req->type, - 'status' => $req->status, - 'assigned' => $req->assigned, - 'vid' => $req->vid, - 'available' => $req->available, - ]; - $rulesInput = [ - 'device_id' => 'required|numeric', - 'name' => 'required|string', - 'simcard' => 'required|numeric', - 'type' => 'required|integer|not_in:0', - 'status' => 'required|numeric|min:0', - 'assigned' => 'required|numeric', - 'vid' => 'nullable|numeric', - 'available' => 'required|numeric', - ]; + public function api_add_device(Request $req) + { + try { + $now = time(); - // validasi input - $isValidInput = Validator::make($input, $rulesInput); - if (!$isValidInput->passes()) { - $apiResp = Responses::bad_input($isValidInput->messages()->first()); - return new Response($apiResp, $apiResp['meta']['code']); - } + $input = [ + "device_id" => $req->device_id, + "name" => $req->name, + "simcard" => $req->simcard, + "type" => $req->type, + "status" => $req->status, + "assigned" => $req->assigned, + "vid" => $req->vid, + "available" => $req->available, + ]; + $rulesInput = [ + "device_id" => "required|numeric", + "name" => "required|string", + "simcard" => "required|numeric", + "type" => "required|integer|not_in:0", + "status" => "required|numeric|min:0", + "assigned" => "required|numeric", + "vid" => "nullable|numeric", + "available" => "required|numeric", + ]; - $device_id = str_pad($req->device_id, Devices::MAX_DEVICE_ID, '0', STR_PAD_LEFT); - if (strlen($device_id) > 16) { - $apiResp = Responses::bad_request('device id maksimal 16 digit'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - if (strlen($req->simcard) > 14) { - $apiResp = Responses::bad_request('simcard maksimal 14 digit'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } + // validasi input + $isValidInput = Validator::make($input, $rulesInput); + if (!$isValidInput->passes()) { + $apiResp = Responses::bad_input($isValidInput->messages()->first()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - $uniqDeviceId = Devices::getDeviceByDeviceId($device_id); - if (count($uniqDeviceId) > 0) { - $apiResp = Responses::bad_request('device id has been used'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - $uniqSimcard = Devices::getDeviceBySimcard($req->simcard); - if (count($uniqSimcard) > 0) { - $apiResp = Responses::bad_request('simcard has been used'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } + $device_id = str_pad($req->device_id, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT); + if (strlen($device_id) > 16) { + $apiResp = Responses::bad_request("Device ID must be a maximum of 16 digits"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + if (strlen($req->simcard) > 14) { + $apiResp = Responses::bad_request("SIM card number must be a maximum of 14 digits"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - DB::beginTransaction(); + $uniqDeviceId = Devices::getDeviceByDeviceId($device_id); + if (count($uniqDeviceId) > 0) { + $apiResp = Responses::bad_request("device id has been used"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + $uniqSimcard = Devices::getDeviceBySimcard($req->simcard); + if (count($uniqSimcard) > 0) { + $apiResp = Responses::bad_request("simcard has been used"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - $insDevice = [ - 'device_id' => $device_id, - 'name' => $req->name, - 'simcard' => (int)$req->simcard, - 'type' => $req->type, - 'is_active' => $req->status, - 'is_assigned' => $req->assigned, - 'is_available' => $req->available, - 'crt' => $now, - 'crt_by' => $req->auth->uid, - 'updt' => $now, - 'updt_by' => $req->auth->uid, - ]; - $id = Devices::addDevice($insDevice); + DB::beginTransaction(); - if ($req->assigned == Devices::IS_ASSIGNED) { - if ($req->vid == null || $req->vid == "") { - DB::rollBack(); - $apiResp = Responses::bad_request('kendaraan belum dipilih'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - $vhc = Vehicles::getVehicleByDeviceId($device_id); - if (count($vhc) > 0) { - DB::rollBack(); - $apiResp = Responses::bad_request('kendaraan sudah dipasang oleh device id ' . $vhc[0]->device_id); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - $vhc = Vehicles::getVehicleById($req->vid); - if (count($vhc) > 0 && $vhc[0]->dvc_id !== 0 && $vhc[0]->device_id !== $device_id) { - DB::rollBack(); - $apiResp = Responses::bad_request('kendaraan sudah dipasang oleh device id ' . $vhc[0]->device_id); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - $vid = $req->vid; - Vehicles::updateVehicle($vid, [ - 'dvc_id' => $id, - 'device_id' => $device_id, - 'simcard' => (int)$req->simcard, - ]); - } else { - $vid = 0; - } + $insDevice = [ + "device_id" => $device_id, + "name" => $req->name, + "simcard" => (int) $req->simcard, + "type" => $req->type, + "is_active" => $req->status, + "is_assigned" => $req->assigned, + "is_available" => $req->available, + "crt" => $now, + "crt_by" => $req->auth->uid, + "updt" => $now, + "updt_by" => $req->auth->uid, + ]; + $id = Devices::addDevice($insDevice); - $apiResp = Responses::created('success add new device'); + if ($req->assigned == Devices::IS_ASSIGNED) { + if ($req->vid == null || $req->vid == "") { + DB::rollBack(); + $apiResp = Responses::bad_request("Vehicle has not been selected"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + $vhc = Vehicles::getVehicleByDeviceId($device_id); + if (count($vhc) > 0) { + DB::rollBack(); + $apiResp = Responses::bad_request( + "The vehicle is already assigned to device ID " . $vhc[0]->device_id + ); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + $vhc = Vehicles::getVehicleById($req->vid); + if (count($vhc) > 0 && $vhc[0]->dvc_id !== 0 && $vhc[0]->device_id !== $device_id) { + DB::rollBack(); + $apiResp = Responses::bad_request( + "The vehicle is already assigned to device ID " . $vhc[0]->device_id + ); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + $vid = $req->vid; + Vehicles::updateVehicle($vid, [ + "dvc_id" => $id, + "device_id" => $device_id, + "simcard" => (int) $req->simcard, + ]); + } else { + $vid = 0; + } - 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'])); - } - } + $apiResp = Responses::created("success add new device"); - public function api_updt_device(Request $req, $id) - { - try { - $now = time(); + 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"]); + } + } - $input = [ - 'id' => $id, - 'device_id' => $req->device_id, - 'name' => $req->name, - 'simcard' => $req->simcard, - 'type' => $req->type, - 'status' => $req->status, - 'assigned' => $req->assigned, - 'vid' => $req->vid, - 'available' => $req->available, - ]; - $rulesInput = [ - 'id' => 'required|integer|not_in:0', - 'device_id' => 'required|numeric', - 'name' => 'required|string', - 'simcard' => 'required|numeric', - 'type' => 'required|integer|not_in:0', - 'status' => 'required|numeric', - 'assigned' => 'required|numeric', - 'vid' => 'nullable|numeric', - 'available' => 'required|numeric', - ]; + public function api_updt_device(Request $req, $id) + { + try { + $now = time(); - // validasi input - $isValidInput = Validator::make($input, $rulesInput); - if (!$isValidInput->passes()) { - $apiResp = Responses::bad_input($isValidInput->messages()->first()); - return new Response($apiResp, $apiResp['meta']['code']); - } + $input = [ + "id" => $id, + "device_id" => $req->device_id, + "name" => $req->name, + "simcard" => $req->simcard, + "type" => $req->type, + "status" => $req->status, + "assigned" => $req->assigned, + "vid" => $req->vid, + "available" => $req->available, + ]; + $rulesInput = [ + "id" => "required|integer|not_in:0", + "device_id" => "required|numeric", + "name" => "required|string", + "simcard" => "required|numeric", + "type" => "required|integer|not_in:0", + "status" => "required|numeric", + "assigned" => "required|numeric", + "vid" => "nullable|numeric", + "available" => "required|numeric", + ]; - $device = Devices::showDeviceById($id); - if (count($device) < 1) { - $apiResp = Responses::not_found('device not found'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } + // validasi input + $isValidInput = Validator::make($input, $rulesInput); + if (!$isValidInput->passes()) { + $apiResp = Responses::bad_input($isValidInput->messages()->first()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - $device_id = str_pad($req->device_id, Devices::MAX_DEVICE_ID, '0', STR_PAD_LEFT); - if (strlen($device_id) > 16) { - $apiResp = Responses::bad_request('device id maksimal 16 digit'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - if (strlen($req->simcard) > 14) { - $apiResp = Responses::bad_request('simcard maksimal 14 digit'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } + $device = Devices::showDeviceById($id); + if (count($device) < 1) { + $apiResp = Responses::not_found("device not found"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - $uniqDeviceId = Devices::getDeviceByDeviceId($device_id); - if (count($uniqDeviceId) > 0) { - $notSameUser = 1; - foreach ($uniqDeviceId as $key => $row) { - if ($row->id == $id) { - $notSameUser = 0; - } - } - if ($notSameUser) { - $apiResp = Responses::bad_request('device id has been used'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - } - $uniqSimcard = Devices::getDeviceBySimcard($req->simcard); - if (count($uniqSimcard) > 0) { - $notSameUser = 1; - foreach ($uniqSimcard as $key => $row) { - if ($row->id == $id) { - $notSameUser = 0; - } - } - if ($notSameUser) { - $apiResp = Responses::bad_request('simcard has been used'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - } + $device_id = str_pad($req->device_id, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT); + if (strlen($device_id) > 16) { + $apiResp = Responses::bad_request("Device ID must be a maximum of 16 digits"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + if (strlen($req->simcard) > 14) { + $apiResp = Responses::bad_request("SIM card number must be a maximum of 14 digits"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - if ($req->status == Devices::IS_INACTIVE) { - $isUsed = Vehicles::getVehicleByDeviceId($device_id); - if (count($isUsed) > 0) { - $apiResp = Responses::bad_request('tidak dapat mengubah menjadi nonaktif, device sedang digunakan'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - } + $uniqDeviceId = Devices::getDeviceByDeviceId($device_id); + if (count($uniqDeviceId) > 0) { + $notSameUser = 1; + foreach ($uniqDeviceId as $key => $row) { + if ($row->id == $id) { + $notSameUser = 0; + } + } + if ($notSameUser) { + $apiResp = Responses::bad_request("device id has been used"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + } + $uniqSimcard = Devices::getDeviceBySimcard($req->simcard); + if (count($uniqSimcard) > 0) { + $notSameUser = 1; + foreach ($uniqSimcard as $key => $row) { + if ($row->id == $id) { + $notSameUser = 0; + } + } + if ($notSameUser) { + $apiResp = Responses::bad_request("simcard has been used"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + } - DB::beginTransaction(); + if ($req->status == Devices::IS_INACTIVE) { + $isUsed = Vehicles::getVehicleByDeviceId($device_id); + if (count($isUsed) > 0) { + $apiResp = Responses::bad_request("Cannot deactivate, the device is currently in use."); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + } - if ($device[0]->vhc_id) { - Vehicles::updateVehicle($device[0]->vhc_id, [ - 'dvc_id' => 0, - 'device_id' => str_pad(0, Devices::MAX_DEVICE_ID, '0', STR_PAD_LEFT), - 'simcard' => 0, - ]); - } + DB::beginTransaction(); - if ($req->assigned == Devices::IS_ASSIGNED) { - if ($req->vid == null || $req->vid == "") { - DB::rollBack(); - $apiResp = Responses::bad_request('kendaraan belum dipilih'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - $vhc = Vehicles::getVehicleById($req->vid); - if (count($vhc) > 0 && $vhc[0]->dvc_id !== 0 && $vhc[0]->device_id !== $device_id) { - DB::rollBack(); - $apiResp = Responses::bad_request('kendaraan sudah dipasang dengan device id ' . $vhc[0]->device_id); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - $vid = $req->vid; - Vehicles::updateVehicle($vid, [ - 'dvc_id' => $id, - 'device_id' => $device_id, - 'simcard' => (int)$req->simcard, - ]); - } else { - $vhc = Vehicles::getVehicleByDeviceId($device_id); - if (count($vhc) > 0) { - $vid = $vhc[0]->id; - Vehicles::updateVehicle($vid, [ - 'dvc_id' => 0, - 'device_id' => str_pad(0, Devices::MAX_DEVICE_ID, '0', STR_PAD_LEFT), - 'simcard' => 0, - ]); - } - } + if ($device[0]->vhc_id) { + Vehicles::updateVehicle($device[0]->vhc_id, [ + "dvc_id" => 0, + "device_id" => str_pad(0, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT), + "simcard" => 0, + ]); + } - $updtDevice = [ - 'device_id' => $req->device_id, - 'name' => $req->name, - 'simcard' => (int)$req->simcard, - 'type' => $req->type, - 'is_active' => $req->status, - 'is_assigned' => $req->assigned, - 'is_available' => $req->available, - 'updt' => $now, - 'updt_by' => $req->auth->uid, - ]; - Devices::updateDevice($id, $updtDevice); + if ($req->assigned == Devices::IS_ASSIGNED) { + if ($req->vid == null || $req->vid == "") { + DB::rollBack(); + $apiResp = Responses::bad_request("Vehicle has not been selected"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + $vhc = Vehicles::getVehicleById($req->vid); + if (count($vhc) > 0 && $vhc[0]->dvc_id !== 0 && $vhc[0]->device_id !== $device_id) { + DB::rollBack(); + $apiResp = Responses::bad_request( + "This vehicle is already linked to a device " . $vhc[0]->device_id + ); + return new Response($apiResp, $apiResp["meta"]["code"]); + } + $vid = $req->vid; + Vehicles::updateVehicle($vid, [ + "dvc_id" => $id, + "device_id" => $device_id, + "simcard" => (int) $req->simcard, + ]); + } else { + $vhc = Vehicles::getVehicleByDeviceId($device_id); + if (count($vhc) > 0) { + $vid = $vhc[0]->id; + Vehicles::updateVehicle($vid, [ + "dvc_id" => 0, + "device_id" => str_pad(0, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT), + "simcard" => 0, + ]); + } + } - $apiResp = Responses::created('success update device'); + $updtDevice = [ + "device_id" => $req->device_id, + "name" => $req->name, + "simcard" => (int) $req->simcard, + "type" => $req->type, + "is_active" => $req->status, + "is_assigned" => $req->assigned, + "is_available" => $req->available, + "updt" => $now, + "updt_by" => $req->auth->uid, + ]; + Devices::updateDevice($id, $updtDevice); - 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'])); - } - } + $apiResp = Responses::created("success update device"); - public function api_del_device(Request $req, $id) - { - try { - $now = time(); + 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"]); + } + } - $input = [ - 'id' => $id, - ]; - $rulesInput = [ - 'id' => 'required|integer|not_in:0', - ]; + public function api_del_device(Request $req, $id) + { + try { + $now = time(); - // validasi input - $isValidInput = Validator::make($input, $rulesInput); - if (!$isValidInput->passes()) { - $apiResp = Responses::bad_input($isValidInput->messages()->first()); - return new Response($apiResp, $apiResp['meta']['code']); - } + $input = [ + "id" => $id, + ]; + $rulesInput = [ + "id" => "required|integer|not_in:0", + ]; - $device = Devices::showDeviceById($id); - if (count($device) < 1) { - $apiResp = Responses::not_found('device not found'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } + // validasi input + $isValidInput = Validator::make($input, $rulesInput); + if (!$isValidInput->passes()) { + $apiResp = Responses::bad_input($isValidInput->messages()->first()); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - $isUsed = Vehicles::getVehicleByDeviceId($device[0]->device_id); - if (count($isUsed) > 0) { - $apiResp = Responses::bad_request('tidak dapat menghapus, device sedang digunakan'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } + $device = Devices::showDeviceById($id); + if (count($device) < 1) { + $apiResp = Responses::not_found("Device not found"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - DB::beginTransaction(); + $isUsed = Vehicles::getVehicleByDeviceId($device[0]->device_id); + if (count($isUsed) > 0) { + $apiResp = Responses::bad_request("Cannot delete, the device is currently in use"); + return new Response($apiResp, $apiResp["meta"]["code"]); + } - Devices::updateDevice($id, [ - 'dlt' => $now, - 'dlt_by' => $req->auth->uid, - ]); + DB::beginTransaction(); - DB::commit(); - - $apiResp = Responses::success('success delete device'); - return (new Response($apiResp, $apiResp['meta']['code'])); - } catch (\Exception $e) { - DB::rollBack(); - $apiResp = Responses::error($e->getMessage()); - return (new Response($apiResp, $apiResp['meta']['code'])); - } - } + Devices::updateDevice($id, [ + "dlt" => $now, + "dlt_by" => $req->auth->uid, + ]); + + DB::commit(); + + $apiResp = Responses::success("success delete device"); + 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/public/mails/v0/output/2. Aktivasi akun.html b/public/mails/v0/output/2. Aktivasi akun.html index 384be94..7afa025 100755 --- a/public/mails/v0/output/2. Aktivasi akun.html +++ b/public/mails/v0/output/2. Aktivasi akun.html @@ -133,7 +133,7 @@ Lakukan pembayaran dengan jumlah diatas
  • - Setelah transaksi berhasil, Anda akan menerima bukti pembayaran. Simpan + Setelah transaksi berhasil, Anda akan menerima bukti pembayaran. Save bukti pembayaran.
  • Semua Perusahaan + `); for (let iData in data) { $('#filter-company').append(` diff --git a/resources/views/menu_v1/_addChecklist.blade.php b/resources/views/menu_v1/_addChecklist.blade.php index bb4abdf..d9729bd 100755 --- a/resources/views/menu_v1/_addChecklist.blade.php +++ b/resources/views/menu_v1/_addChecklist.blade.php @@ -35,7 +35,7 @@
    - +
    diff --git a/resources/views/menu_v1/_viewTransactions.blade.php.bak b/resources/views/menu_v1/_viewTransactions.blade.php.bak index 9054f18..9fbbd90 100755 --- a/resources/views/menu_v1/_viewTransactions.blade.php.bak +++ b/resources/views/menu_v1/_viewTransactions.blade.php.bak @@ -1226,9 +1226,9 @@ @@ -1246,7 +1246,7 @@ @@ -1270,7 +1270,7 @@ diff --git a/resources/views/menu_v1/_viewTransactionsSingle.blade.php.bak b/resources/views/menu_v1/_viewTransactionsSingle.blade.php.bak index 79ddf9a..40d1e01 100755 --- a/resources/views/menu_v1/_viewTransactionsSingle.blade.php.bak +++ b/resources/views/menu_v1/_viewTransactionsSingle.blade.php.bak @@ -977,9 +977,9 @@ @@ -998,7 +998,7 @@ class="img-fluid mb-3" alt="" /> @@ -1022,7 +1022,7 @@ @@ -1869,7 +1869,7 @@ action += `

    Pengajuan ditolak oleh ${row.urjct_name} pada tanggal ${moment.unix(row.rjct_at).format('DD MMM YYYY HH:mm:ss')}

    `; - return action; + return action; } if (State.ddln_pay_type.ord_finish == row.ddln_pay_type) { if (row.drop_chk_at != 0) { @@ -1993,7 +1993,7 @@ text += `

    Ditolak

    `; - return text; + return text; } return `

    Belum Dibayar

    @@ -2077,7 +2077,7 @@ OrdAItem.toggleGroupPayPurpose('show'); OrdAItem.toggleGroupSubmissionProof('show'); OrdAItem.toggleGroupFillDdln('show'); - } + } }); $('#invcToClient').on('change', function() { $('#add-invc_item_price').val(''); diff --git a/resources/views/menu_v1/checklist.blade.php b/resources/views/menu_v1/checklist.blade.php index a115da4..9945672 100755 --- a/resources/views/menu_v1/checklist.blade.php +++ b/resources/views/menu_v1/checklist.blade.php @@ -79,7 +79,7 @@ diff --git a/resources/views/menu_v1/configs/devices.blade.php b/resources/views/menu_v1/configs/devices.blade.php index 9982529..7ff0edf 100755 --- a/resources/views/menu_v1/configs/devices.blade.php +++ b/resources/views/menu_v1/configs/devices.blade.php @@ -7,8 +7,8 @@ @section('customcss') @endsection @@ -227,8 +227,8 @@ @@ -245,7 +245,7 @@ diff --git a/resources/views/menu_v1/configs/insurances.blade.php b/resources/views/menu_v1/configs/insurances.blade.php index 9cca484..d1e3f09 100755 --- a/resources/views/menu_v1/configs/insurances.blade.php +++ b/resources/views/menu_v1/configs/insurances.blade.php @@ -7,9 +7,8 @@ @section('customcss') @endsection @@ -55,8 +54,7 @@ - @@ -861,7 +861,7 @@ diff --git a/resources/views/menu_v2/Finance/_viewBilling.blade.php.bak b/resources/views/menu_v2/Finance/_viewBilling.blade.php.bak index 2d790d0..a273295 100755 --- a/resources/views/menu_v2/Finance/_viewBilling.blade.php.bak +++ b/resources/views/menu_v2/Finance/_viewBilling.blade.php.bak @@ -350,8 +350,8 @@ @@ -408,8 +408,8 @@ @@ -849,7 +849,7 @@ }, getData: function() { const data = {}; - + data.ord_id = State.ord_id; data.ord_code = State.ord_code; data.termin_id = $('#subTotal').data('terminid'); diff --git a/resources/views/menu_v2/Finance/_viewPayment.blade.php b/resources/views/menu_v2/Finance/_viewPayment.blade.php index 57106ee..0f8702e 100755 --- a/resources/views/menu_v2/Finance/_viewPayment.blade.php +++ b/resources/views/menu_v2/Finance/_viewPayment.blade.php @@ -4,12 +4,12 @@ @endsection @section('customcss') - + @endsection @section('content') @@ -30,8 +30,7 @@

    - +
    @@ -218,9 +217,7 @@

    - + {{ implode(' ', str_split('0' . $order->drv_phone_val, 4)) }}

    @else @@ -241,9 +238,7 @@

    - + {{ implode(' ', str_split('0' . $order->drv_phone2_val, 4)) }}

    @else @@ -298,7 +293,7 @@
    - +
    @@ -364,14 +359,11 @@

    -

    -
    +
    @php @@ -386,8 +378,7 @@
    - +
    @@ -399,8 +390,7 @@
    - +
    @@ -412,14 +402,13 @@
    - +
    @elseif ($drvUp->stts === \App\Models\OrdersDriversUploads::STTS_UP_TRAVEL_DOCUMENT) @php - $afterTravelDoc = 1; + $afterTravelDoc = 1; @endphp
    @@ -428,8 +417,7 @@
    - +
    @@ -441,8 +429,7 @@
    - +
    @@ -454,8 +441,7 @@
    - +
    @@ -467,8 +453,7 @@
    - +
    @@ -480,8 +465,7 @@
    - +
    @@ -493,8 +477,7 @@
    - +
    @@ -506,8 +489,7 @@
    - +
    @@ -557,9 +539,7 @@ 1 - Bayar + Bayar Biaya inap kendaraan Rp350.000 @@ -576,8 +556,7 @@ 2 - Lihat Bukti + Lihat Bukti Biaya pengemudi tambahan Rp530.000 @@ -623,9 +602,7 @@ 1 - Bayar + Bayar Biaya inap kendaraan Rp350.000 @@ -642,8 +619,7 @@ 2 - Lihat Bukti + Lihat Bukti Biaya pengemudi tambahan Rp530.000 @@ -678,7 +654,7 @@ {{-- --}}

    Catatan Finance #{{ $order->ord_code }}

    - + @endforeach @@ -690,8 +666,7 @@ {{-- Modal Term 1 --}} - - @@ -1197,7 +1151,7 @@ @@ -1239,12 +1193,12 @@ // $('#btnPayAdd').on('click', function() { // let a = ` - // Lihat Bukti - // ` + // Lihat Bukti + // ` // let b = ` - //

    Lunas

    - //

    23 Apr 2022 06:00

    - // ` + //

    Lunas

    + //

    23 Apr 2022 06:00

    + // ` // $('#tblColAction').html(a) // $('#tblColStatus').html(b) // $('#mdlpayAdd').modal('hide'); @@ -1341,7 +1295,9 @@ ArcvTable.activate(); }, event: function() { - const { orders } = State; + const { + orders + } = State; for (const iOrd in orders) { $(`#view${iOrd}-pickup_at`).text(moment.unix(orders[iOrd].set_pck_at).format('DD MMM YYYY HH:mm:ss')); $(`#view${iOrd}-pickup_date_at`).text(moment.unix(orders[iOrd].set_pck_at).format('DD MMM YYYY')); @@ -1463,7 +1419,9 @@ } }, initDateAdtPoints: function() { - const { orders } = State; + const { + orders + } = State; for (let iOrd in orders) { iOrd = Number(iOrd); for (let iAdtPoint in orders[iOrd].adtPoints) { @@ -1502,7 +1460,9 @@ let ids = $('#mdlpayAdd').data('ord_a_item_id').split(','); let lastPaid = null; for (let id of ids) { - let data = OrdPaidItem.getData({ ord_a_item_id: Number(id) }); + let data = OrdPaidItem.getData({ + ord_a_item_id: Number(id) + }); let isValid = OrdPaidItem.checkData(data, true); if (!isValid) return false; lastPaid = await OrdPaidItem.submitData(data); @@ -1690,7 +1650,7 @@ // event checklist $('#add-item_isAdmPrice').on('change', function() { $('#invcToClient').prop('checked', false).trigger('change'); - if($('#add-item_isAdmPrice').prop('checked')) { + if ($('#add-item_isAdmPrice').prop('checked')) { OrdAItem.toggleGroupPayPurpose('hide'); OrdAItem.toggleGroupSubmissionProof('hide'); OrdAItem.toggleGroupFillDdln('hide'); @@ -1698,7 +1658,7 @@ OrdAItem.toggleGroupPayPurpose('show'); OrdAItem.toggleGroupSubmissionProof('show'); OrdAItem.toggleGroupFillDdln('show'); - } + } }); $('#invcToClient').on('change', function() { $('#add-invc_item_price').val(''); @@ -1763,15 +1723,23 @@ }, eventTax: function() { // vendor - $('#add-item_tax_type').on('change', function () { + $('#add-item_tax_type').on('change', function() { const val = $('#add-item_tax_type').val(); if (val == State.tax_type.include) { $('.groupTax').removeClass('d-none'); - if (State.vdr_pkp.is_pkp == State.vdr_pkp.pkp) { $('#add-item_tax_ppn_percent').val(State.tax_type.ppn_percent); } else { $('#add-item_tax_ppn_percent').val(0); } + if (State.vdr_pkp.is_pkp == State.vdr_pkp.pkp) { + $('#add-item_tax_ppn_percent').val(State.tax_type.ppn_percent); + } else { + $('#add-item_tax_ppn_percent').val(0); + } $('#add-item_tax_pph_percent').val(State.tax_type.pph_percent); } else if (val == State.tax_type.exclude) { $('.groupTax').removeClass('d-none'); - if (State.vdr_pkp.is_pkp == State.vdr_pkp.pkp) { $('#add-item_tax_ppn_percent').val(State.tax_type.ppn_percent); } else { $('#add-item_tax_ppn_percent').val(0); } + if (State.vdr_pkp.is_pkp == State.vdr_pkp.pkp) { + $('#add-item_tax_ppn_percent').val(State.tax_type.ppn_percent); + } else { + $('#add-item_tax_ppn_percent').val(0); + } $('#add-item_tax_pph_percent').val(State.tax_type.pph_percent); } else { // without $('.groupTax').addClass('d-none'); @@ -1784,7 +1752,11 @@ $('#add-item_tax_pph_flat').val((new Intl.NumberFormat('id-ID')).format(calcTax.pph_flat)); $('#add-item_tax_total_flat').val((new Intl.NumberFormat('id-ID')).format(calcTax.total_tax)); - if (State.vdr_pkp.is_pkp == State.vdr_pkp.pkp) { $('.groupPpn').removeClass('d-none'); } else { $('.groupPpn').addClass('d-none'); } + if (State.vdr_pkp.is_pkp == State.vdr_pkp.pkp) { + $('.groupPpn').removeClass('d-none'); + } else { + $('.groupPpn').addClass('d-none'); + } }); $('#add-item_tax_type').trigger('change'); let ppnPercentTimeout = null; @@ -1830,7 +1802,7 @@ }); // client - $('#add-item_bill_tax_type').on('change', function () { + $('#add-item_bill_tax_type').on('change', function() { const val = $('#add-item_bill_tax_type').val(); if (val == State.tax_type.include) { $('.groupTaxBill').removeClass('d-none'); @@ -1898,10 +1870,9 @@ vdr_pkp: State.vdr_pkp.is_pkp, }; let slcType = $('#slcItem option:selected'); - if (slcType.val() === 'new') { + if (slcType.val() === 'new') { calc.price = Number($('#add-item_price').val().split('.').join('')); - } else if (slcType.val() === '') { - } else { + } else if (slcType.val() === '') {} else { calc.price = Number(slcType.data('price')); } @@ -1976,18 +1947,17 @@ const data = {}; let slcType = $('#slcItem option:selected'); - if (slcType.val() === 'new') { + if (slcType.val() === 'new') { data.a_id = '00'; data.a_name = $('#add-item_name').val(); data.a_type = $('#add-item_type').val(); data.a_price = $('#add-item_price').val().split('.').join(''); - if($('#add-item_isAdmPrice').prop('checked')) { + if ($('#add-item_isAdmPrice').prop('checked')) { data.is_adm_price = State.is_adm_price.yes } else { data.is_adm_price = State.is_adm_price.no } - } else if (slcType.val() === '') { - } else { + } else if (slcType.val() === '') {} else { data.a_id = slcType.val(); // id data.a_name = slcType.data('name'); data.a_type = slcType.data('type'); @@ -2534,7 +2504,9 @@ // $('#tblAdditional').DataTable(); // if (Driver.Table.firstInitDataTable == 1) { loadTableSkeletonLoading() } else { Driver.Table.firstInitDataTable = 1; } let ord_ids = ''; - const { orders } = State; + const { + orders + } = State; for (let iOrd in orders) { ord_ids += `${orders[iOrd].ord_id},`; } @@ -2639,9 +2611,9 @@ // if (State.a_item_type.second == row.a_item_type) { // if (row.is_merge_to == State.is_merge.yes || row.is_merge_from == State.is_merge.yes) {} else { // action += ` - //
    - // Merge - // `; + //
    + // Merge + // `; // } // } return action; @@ -2691,8 +2663,11 @@ orderable: true, searchable: true, render: function(data, type, row, meta) { - let totalTax = 0, totalBase = 0; - let textTax = '', textBase = '', taxType = ''; + let totalTax = 0, + totalBase = 0; + let textTax = '', + textBase = '', + taxType = ''; if (row.amt_tax_type == State.tax_type.include) { taxType = 'Perpajakan: Sudah Termasuk Pajak
    '; @@ -2725,7 +2700,7 @@ } } } - + let text = ''; if (row.amt_tax_type == State.tax_type.include) { text += taxType + textBase + (new Intl.NumberFormat('id-ID')).format(totalBase) + '
    ' + textTax + (new Intl.NumberFormat('id-ID')).format(totalTax) + '
    '; @@ -2818,7 +2793,9 @@ // $('#tblAdditionalArchv').DataTable(); // if (Driver.Table.firstInitDataTable == 1) { loadTableSkeletonLoading() } else { Driver.Table.firstInitDataTable = 1; } let ord_ids = ''; - const { orders } = State; + const { + orders + } = State; for (let iOrd in orders) { ord_ids += `${orders[iOrd].ord_id},`; } @@ -2973,7 +2950,9 @@ OrdNoteFnnc.event(); }, event: function() { - const { orders } = State; + const { + orders + } = State; for (let iOrd in orders) { $(`#btnSaveFnncNote${iOrd}`).on('click', function(e) { e.preventDefault(); @@ -3222,7 +3201,7 @@ // reader.readAsArrayBuffer(file); reader.readAsDataURL(file); }, - clearFile: function (x) { + clearFile: function(x) { $('#inpt-' + x + '-img').addClass('d-none') $('#inpt-' + x + '-filesize').html(''); $('#inpt-' + x + '-base64').val(''); diff --git a/resources/views/menu_v2/Finance/_viewPaymentSingle.blade.php.bak b/resources/views/menu_v2/Finance/_viewPaymentSingle.blade.php.bak index ecd2427..cb78136 100755 --- a/resources/views/menu_v2/Finance/_viewPaymentSingle.blade.php.bak +++ b/resources/views/menu_v2/Finance/_viewPaymentSingle.blade.php.bak @@ -287,7 +287,7 @@
    - +
    @@ -492,7 +492,7 @@
    - +
    @@ -518,8 +518,8 @@ @@ -566,8 +566,8 @@ @@ -598,7 +598,7 @@ @@ -823,8 +823,8 @@ @@ -848,7 +848,7 @@ @@ -889,7 +889,7 @@ @@ -938,7 +938,7 @@ @@ -1363,7 +1363,7 @@ OrdAItem.toggleGroupPayPurpose('show'); OrdAItem.toggleGroupSubmissionProof('show'); OrdAItem.toggleGroupFillDdln('show'); - } + } }); $('#invcToClient').on('change', function() { $('#add-invc_item_price').val(''); @@ -2213,7 +2213,7 @@ action += `

    Pengajuan ditolak oleh ${row.urjct_name} pada tanggal ${moment.unix(row.rjct_at).format('DD MMM YYYY HH:mm:ss')}

    `; - return action; + return action; } return action; } diff --git a/resources/views/menu_v2/Finance/adtItems.blade.php b/resources/views/menu_v2/Finance/adtItems.blade.php index ca9c8cc..2790414 100755 --- a/resources/views/menu_v2/Finance/adtItems.blade.php +++ b/resources/views/menu_v2/Finance/adtItems.blade.php @@ -7,9 +7,8 @@ @section('customcss') @endsection @@ -54,8 +53,7 @@ -