feat: Add initial implementation for vehicle and device management, including dedicated controllers and views, and a new reports controller.
This commit is contained in:
@ -16,12 +16,12 @@ use Auth;
|
||||
|
||||
class DevicesController extends Controller
|
||||
{
|
||||
public function view_devices(Request $req)
|
||||
{
|
||||
$vhcs = Vehicles::listVehicles($req->auth);
|
||||
$data = [
|
||||
"vhcs" => $vhcs,
|
||||
];
|
||||
public function view_devices(Request $req)
|
||||
{
|
||||
$vhcs = Vehicles::listVehicles($req->auth);
|
||||
$data = [
|
||||
"vhcs" => $vhcs,
|
||||
];
|
||||
|
||||
$log = [
|
||||
"module" => "Device",
|
||||
@ -29,415 +29,421 @@ class DevicesController extends Controller
|
||||
"desc" => "Open Device menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return view("menu_v1.configs.devices", $data);
|
||||
}
|
||||
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"]);
|
||||
}
|
||||
$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"]);
|
||||
}
|
||||
}
|
||||
$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"]);
|
||||
}
|
||||
}
|
||||
|
||||
public function api_add_device(Request $req)
|
||||
{
|
||||
try {
|
||||
$now = time();
|
||||
public function api_add_device(Request $req)
|
||||
{
|
||||
try {
|
||||
$now = time();
|
||||
|
||||
$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",
|
||||
];
|
||||
$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,
|
||||
"protocol" => $req->protocol,
|
||||
];
|
||||
$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",
|
||||
"protocol" => "string",
|
||||
];
|
||||
|
||||
// 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_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"]);
|
||||
}
|
||||
$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"]);
|
||||
}
|
||||
|
||||
$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"]);
|
||||
}
|
||||
$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"]);
|
||||
}
|
||||
|
||||
DB::beginTransaction();
|
||||
DB::beginTransaction();
|
||||
|
||||
$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);
|
||||
$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,
|
||||
"protocol" => $req->protocol,
|
||||
];
|
||||
$id = Devices::addDevice($insDevice);
|
||||
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
$apiResp = Responses::created("success add new device");
|
||||
$apiResp = Responses::created("success add new device");
|
||||
|
||||
DB::commit();
|
||||
DB::commit();
|
||||
|
||||
$log = [
|
||||
"module" => "Device",
|
||||
"action" => "Create",
|
||||
"desc" => "Add new device: ".$device_id,
|
||||
"desc" => "Add new device: " . $device_id,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
$apiResp = Responses::error($e->getMessage());
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
}
|
||||
}
|
||||
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_updt_device(Request $req, $id)
|
||||
{
|
||||
try {
|
||||
$now = time();
|
||||
public function api_updt_device(Request $req, $id)
|
||||
{
|
||||
try {
|
||||
$now = time();
|
||||
|
||||
$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",
|
||||
];
|
||||
$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,
|
||||
"protocol" => $req->protocol,
|
||||
];
|
||||
$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",
|
||||
"protocol" => "string",
|
||||
];
|
||||
|
||||
// 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"]);
|
||||
}
|
||||
$device = Devices::showDeviceById($id);
|
||||
if (count($device) < 1) {
|
||||
$apiResp = Responses::not_found("device not found");
|
||||
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"]);
|
||||
}
|
||||
$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"]);
|
||||
}
|
||||
|
||||
$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"]);
|
||||
}
|
||||
}
|
||||
$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"]);
|
||||
}
|
||||
}
|
||||
|
||||
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 ($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"]);
|
||||
}
|
||||
}
|
||||
|
||||
DB::beginTransaction();
|
||||
DB::beginTransaction();
|
||||
|
||||
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,
|
||||
]);
|
||||
}
|
||||
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,
|
||||
]);
|
||||
}
|
||||
|
||||
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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
$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);
|
||||
$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,
|
||||
"protocol" => $req->protocol,
|
||||
];
|
||||
Devices::updateDevice($id, $updtDevice);
|
||||
|
||||
$apiResp = Responses::created("success update device");
|
||||
$apiResp = Responses::created("success update device");
|
||||
|
||||
DB::commit();
|
||||
DB::commit();
|
||||
|
||||
$log = [
|
||||
"module" => "Device",
|
||||
"action" => "Update",
|
||||
"desc" => "Edit device: ".$device_id,
|
||||
"desc" => "Edit device: " . $device_id,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
$apiResp = Responses::error($e->getMessage());
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
}
|
||||
}
|
||||
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_device(Request $req, $id)
|
||||
{
|
||||
try {
|
||||
$now = time();
|
||||
public function api_del_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"]);
|
||||
}
|
||||
$device = Devices::showDeviceById($id);
|
||||
if (count($device) < 1) {
|
||||
$apiResp = Responses::not_found("Device not found");
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
}
|
||||
|
||||
$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"]);
|
||||
}
|
||||
$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"]);
|
||||
}
|
||||
|
||||
DB::beginTransaction();
|
||||
DB::beginTransaction();
|
||||
|
||||
Devices::updateDevice($id, [
|
||||
"dlt" => $now,
|
||||
"dlt_by" => $req->auth->uid,
|
||||
]);
|
||||
Devices::updateDevice($id, [
|
||||
"dlt" => $now,
|
||||
"dlt_by" => $req->auth->uid,
|
||||
]);
|
||||
|
||||
DB::commit();
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success delete device");
|
||||
$apiResp = Responses::success("success delete device");
|
||||
|
||||
$log = [
|
||||
"module" => "Device",
|
||||
"action" => "Delete",
|
||||
"desc" => "Delete device : ".$device[0]->device_id,
|
||||
"desc" => "Delete device : " . $device[0]->device_id,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
$apiResp = Responses::error($e->getMessage());
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
}
|
||||
}
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
$apiResp = Responses::error($e->getMessage());
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -366,7 +366,7 @@ class ReportsController extends Controller
|
||||
|
||||
public function api_view_trip_detail(Request $req, $token)
|
||||
{
|
||||
// token = base64_encode(tgl0 + '|' + tgl1 + '|' + nopol1 + '|' + now_unix())
|
||||
// token = base64(unix(start_time) + '|' + unix(end_time) + '|' + nopol + '|' + unix(now()))
|
||||
// $token = "1759686805|1759693045|B.10-517|1765845676";
|
||||
$token = base64_decode($token);
|
||||
$token = explode('|', $token);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user