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
|
class DevicesController extends Controller
|
||||||
{
|
{
|
||||||
public function view_devices(Request $req)
|
public function view_devices(Request $req)
|
||||||
{
|
{
|
||||||
$vhcs = Vehicles::listVehicles($req->auth);
|
$vhcs = Vehicles::listVehicles($req->auth);
|
||||||
$data = [
|
$data = [
|
||||||
"vhcs" => $vhcs,
|
"vhcs" => $vhcs,
|
||||||
];
|
];
|
||||||
|
|
||||||
$log = [
|
$log = [
|
||||||
"module" => "Device",
|
"module" => "Device",
|
||||||
@ -29,415 +29,421 @@ class DevicesController extends Controller
|
|||||||
"desc" => "Open Device menu",
|
"desc" => "Open Device menu",
|
||||||
];
|
];
|
||||||
UserLogs::insert(Auth::user()->id, $log);
|
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)
|
public function api_list_devices(Request $req)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$now = time();
|
$now = time();
|
||||||
$input = [];
|
$input = [];
|
||||||
$rulesInput = [];
|
$rulesInput = [];
|
||||||
|
|
||||||
// validasi input
|
// validasi input
|
||||||
// $isValidInput = Validator::make($input, $rulesInput);
|
// $isValidInput = Validator::make($input, $rulesInput);
|
||||||
// if (!$isValidInput->passes()) {
|
// if (!$isValidInput->passes()) {
|
||||||
// $apiResp = Responses::bad_input($isValidInput->messages()->first());
|
// $apiResp = Responses::bad_input($isValidInput->messages()->first());
|
||||||
// return new Response($apiResp, $apiResp['meta']['code']);
|
// return new Response($apiResp, $apiResp['meta']['code']);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
$list = Devices::listDevices();
|
$list = Devices::listDevices();
|
||||||
foreach ($list as $key => $row) {
|
foreach ($list as $key => $row) {
|
||||||
$list[$key]->DT_RowIndex = $key + 1;
|
$list[$key]->DT_RowIndex = $key + 1;
|
||||||
$list[$key]->action = "-";
|
$list[$key]->action = "-";
|
||||||
if ($row->vhc_id == null) {
|
if ($row->vhc_id == null) {
|
||||||
$list[$key]->is_idle = "yes";
|
$list[$key]->is_idle = "yes";
|
||||||
} else {
|
} else {
|
||||||
$list[$key]->is_idle = "no";
|
$list[$key]->is_idle = "no";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$apiResp = Responses::success("success list devices");
|
$apiResp = Responses::success("success list devices");
|
||||||
$apiResp["count"] = count($list);
|
$apiResp["count"] = count($list);
|
||||||
$apiResp["data"] = $list;
|
$apiResp["data"] = $list;
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$apiResp = Responses::error($e->getMessage());
|
$apiResp = Responses::error($e->getMessage());
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function api_show_device(Request $req, $id)
|
public function api_show_device(Request $req, $id)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$now = time();
|
$now = time();
|
||||||
|
|
||||||
$input = [
|
$input = [
|
||||||
"id" => $id,
|
"id" => $id,
|
||||||
];
|
];
|
||||||
$rulesInput = [
|
$rulesInput = [
|
||||||
"id" => "required|integer|not_in:0",
|
"id" => "required|integer|not_in:0",
|
||||||
];
|
];
|
||||||
|
|
||||||
// validasi input
|
// validasi input
|
||||||
$isValidInput = Validator::make($input, $rulesInput);
|
$isValidInput = Validator::make($input, $rulesInput);
|
||||||
if (!$isValidInput->passes()) {
|
if (!$isValidInput->passes()) {
|
||||||
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$device = Devices::showDeviceById($id);
|
$device = Devices::showDeviceById($id);
|
||||||
if (count($device) < 1) {
|
if (count($device) < 1) {
|
||||||
$apiResp = Responses::not_found("device not found");
|
$apiResp = Responses::not_found("device not found");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$apiResp = Responses::success("success get detail device");
|
$apiResp = Responses::success("success get detail device");
|
||||||
$apiResp["data"] = $device[0];
|
$apiResp["data"] = $device[0];
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$apiResp = Responses::error($e->getMessage());
|
$apiResp = Responses::error($e->getMessage());
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function api_add_device(Request $req)
|
public function api_add_device(Request $req)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$now = time();
|
$now = time();
|
||||||
|
|
||||||
$input = [
|
$input = [
|
||||||
"device_id" => $req->device_id,
|
"device_id" => $req->device_id,
|
||||||
"name" => $req->name,
|
"name" => $req->name,
|
||||||
"simcard" => $req->simcard,
|
"simcard" => $req->simcard,
|
||||||
"type" => $req->type,
|
"type" => $req->type,
|
||||||
"status" => $req->status,
|
"status" => $req->status,
|
||||||
"assigned" => $req->assigned,
|
"assigned" => $req->assigned,
|
||||||
"vid" => $req->vid,
|
"vid" => $req->vid,
|
||||||
"available" => $req->available,
|
"available" => $req->available,
|
||||||
];
|
"protocol" => $req->protocol,
|
||||||
$rulesInput = [
|
];
|
||||||
"device_id" => "required|numeric",
|
$rulesInput = [
|
||||||
"name" => "required|string",
|
"device_id" => "required|numeric",
|
||||||
"simcard" => "required|numeric",
|
"name" => "required|string",
|
||||||
"type" => "required|integer|not_in:0",
|
"simcard" => "required|numeric",
|
||||||
"status" => "required|numeric|min:0",
|
"type" => "required|integer|not_in:0",
|
||||||
"assigned" => "required|numeric",
|
"status" => "required|numeric|min:0",
|
||||||
"vid" => "nullable|numeric",
|
"assigned" => "required|numeric",
|
||||||
"available" => "required|numeric",
|
"vid" => "nullable|numeric",
|
||||||
];
|
"available" => "required|numeric",
|
||||||
|
"protocol" => "string",
|
||||||
|
];
|
||||||
|
|
||||||
// validasi input
|
// validasi input
|
||||||
$isValidInput = Validator::make($input, $rulesInput);
|
$isValidInput = Validator::make($input, $rulesInput);
|
||||||
if (!$isValidInput->passes()) {
|
if (!$isValidInput->passes()) {
|
||||||
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$device_id = str_pad($req->device_id, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT);
|
$device_id = str_pad($req->device_id, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT);
|
||||||
if (strlen($device_id) > 16) {
|
if (strlen($device_id) > 16) {
|
||||||
$apiResp = Responses::bad_request("Device ID must be a maximum of 16 digits");
|
$apiResp = Responses::bad_request("Device ID must be a maximum of 16 digits");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
if (strlen($req->simcard) > 14) {
|
if (strlen($req->simcard) > 14) {
|
||||||
$apiResp = Responses::bad_request("SIM card number must be a maximum of 14 digits");
|
$apiResp = Responses::bad_request("SIM card number must be a maximum of 14 digits");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$uniqDeviceId = Devices::getDeviceByDeviceId($device_id);
|
$uniqDeviceId = Devices::getDeviceByDeviceId($device_id);
|
||||||
if (count($uniqDeviceId) > 0) {
|
if (count($uniqDeviceId) > 0) {
|
||||||
$apiResp = Responses::bad_request("device id has been used");
|
$apiResp = Responses::bad_request("device id has been used");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
$uniqSimcard = Devices::getDeviceBySimcard($req->simcard);
|
$uniqSimcard = Devices::getDeviceBySimcard($req->simcard);
|
||||||
if (count($uniqSimcard) > 0) {
|
if (count($uniqSimcard) > 0) {
|
||||||
$apiResp = Responses::bad_request("simcard has been used");
|
$apiResp = Responses::bad_request("simcard has been used");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
|
|
||||||
$insDevice = [
|
$insDevice = [
|
||||||
"device_id" => $device_id,
|
"device_id" => $device_id,
|
||||||
"name" => $req->name,
|
"name" => $req->name,
|
||||||
"simcard" => (int) $req->simcard,
|
"simcard" => (int) $req->simcard,
|
||||||
"type" => $req->type,
|
"type" => $req->type,
|
||||||
"is_active" => $req->status,
|
"is_active" => $req->status,
|
||||||
"is_assigned" => $req->assigned,
|
"is_assigned" => $req->assigned,
|
||||||
"is_available" => $req->available,
|
"is_available" => $req->available,
|
||||||
"crt" => $now,
|
"crt" => $now,
|
||||||
"crt_by" => $req->auth->uid,
|
"crt_by" => $req->auth->uid,
|
||||||
"updt" => $now,
|
"updt" => $now,
|
||||||
"updt_by" => $req->auth->uid,
|
"updt_by" => $req->auth->uid,
|
||||||
];
|
"protocol" => $req->protocol,
|
||||||
$id = Devices::addDevice($insDevice);
|
];
|
||||||
|
$id = Devices::addDevice($insDevice);
|
||||||
|
|
||||||
if ($req->assigned == Devices::IS_ASSIGNED) {
|
if ($req->assigned == Devices::IS_ASSIGNED) {
|
||||||
if ($req->vid == null || $req->vid == "") {
|
if ($req->vid == null || $req->vid == "") {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$apiResp = Responses::bad_request("Vehicle has not been selected");
|
$apiResp = Responses::bad_request("Vehicle has not been selected");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
$vhc = Vehicles::getVehicleByDeviceId($device_id);
|
$vhc = Vehicles::getVehicleByDeviceId($device_id);
|
||||||
if (count($vhc) > 0) {
|
if (count($vhc) > 0) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$apiResp = Responses::bad_request(
|
$apiResp = Responses::bad_request(
|
||||||
"The vehicle is already assigned to device ID " . $vhc[0]->device_id
|
"The vehicle is already assigned to device ID " . $vhc[0]->device_id
|
||||||
);
|
);
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
$vhc = Vehicles::getVehicleById($req->vid);
|
$vhc = Vehicles::getVehicleById($req->vid);
|
||||||
if (count($vhc) > 0 && $vhc[0]->dvc_id !== 0 && $vhc[0]->device_id !== $device_id) {
|
if (count($vhc) > 0 && $vhc[0]->dvc_id !== 0 && $vhc[0]->device_id !== $device_id) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$apiResp = Responses::bad_request(
|
$apiResp = Responses::bad_request(
|
||||||
"The vehicle is already assigned to device ID " . $vhc[0]->device_id
|
"The vehicle is already assigned to device ID " . $vhc[0]->device_id
|
||||||
);
|
);
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
$vid = $req->vid;
|
$vid = $req->vid;
|
||||||
Vehicles::updateVehicle($vid, [
|
Vehicles::updateVehicle($vid, [
|
||||||
"dvc_id" => $id,
|
"dvc_id" => $id,
|
||||||
"device_id" => $device_id,
|
"device_id" => $device_id,
|
||||||
"simcard" => (int) $req->simcard,
|
"simcard" => (int) $req->simcard,
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
$vid = 0;
|
$vid = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$apiResp = Responses::created("success add new device");
|
$apiResp = Responses::created("success add new device");
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
$log = [
|
$log = [
|
||||||
"module" => "Device",
|
"module" => "Device",
|
||||||
"action" => "Create",
|
"action" => "Create",
|
||||||
"desc" => "Add new device: ".$device_id,
|
"desc" => "Add new device: " . $device_id,
|
||||||
];
|
];
|
||||||
UserLogs::insert(Auth::user()->id, $log);
|
UserLogs::insert(Auth::user()->id, $log);
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$apiResp = Responses::error($e->getMessage());
|
$apiResp = Responses::error($e->getMessage());
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function api_updt_device(Request $req, $id)
|
public function api_updt_device(Request $req, $id)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$now = time();
|
$now = time();
|
||||||
|
|
||||||
$input = [
|
$input = [
|
||||||
"id" => $id,
|
"id" => $id,
|
||||||
"device_id" => $req->device_id,
|
"device_id" => $req->device_id,
|
||||||
"name" => $req->name,
|
"name" => $req->name,
|
||||||
"simcard" => $req->simcard,
|
"simcard" => $req->simcard,
|
||||||
"type" => $req->type,
|
"type" => $req->type,
|
||||||
"status" => $req->status,
|
"status" => $req->status,
|
||||||
"assigned" => $req->assigned,
|
"assigned" => $req->assigned,
|
||||||
"vid" => $req->vid,
|
"vid" => $req->vid,
|
||||||
"available" => $req->available,
|
"available" => $req->available,
|
||||||
];
|
"protocol" => $req->protocol,
|
||||||
$rulesInput = [
|
];
|
||||||
"id" => "required|integer|not_in:0",
|
$rulesInput = [
|
||||||
"device_id" => "required|numeric",
|
"id" => "required|integer|not_in:0",
|
||||||
"name" => "required|string",
|
"device_id" => "required|numeric",
|
||||||
"simcard" => "required|numeric",
|
"name" => "required|string",
|
||||||
"type" => "required|integer|not_in:0",
|
"simcard" => "required|numeric",
|
||||||
"status" => "required|numeric",
|
"type" => "required|integer|not_in:0",
|
||||||
"assigned" => "required|numeric",
|
"status" => "required|numeric",
|
||||||
"vid" => "nullable|numeric",
|
"assigned" => "required|numeric",
|
||||||
"available" => "required|numeric",
|
"vid" => "nullable|numeric",
|
||||||
];
|
"available" => "required|numeric",
|
||||||
|
"protocol" => "string",
|
||||||
|
];
|
||||||
|
|
||||||
// validasi input
|
// validasi input
|
||||||
$isValidInput = Validator::make($input, $rulesInput);
|
$isValidInput = Validator::make($input, $rulesInput);
|
||||||
if (!$isValidInput->passes()) {
|
if (!$isValidInput->passes()) {
|
||||||
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$device = Devices::showDeviceById($id);
|
$device = Devices::showDeviceById($id);
|
||||||
if (count($device) < 1) {
|
if (count($device) < 1) {
|
||||||
$apiResp = Responses::not_found("device not found");
|
$apiResp = Responses::not_found("device not found");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$device_id = str_pad($req->device_id, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT);
|
$device_id = str_pad($req->device_id, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT);
|
||||||
if (strlen($device_id) > 16) {
|
if (strlen($device_id) > 16) {
|
||||||
$apiResp = Responses::bad_request("Device ID must be a maximum of 16 digits");
|
$apiResp = Responses::bad_request("Device ID must be a maximum of 16 digits");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
if (strlen($req->simcard) > 14) {
|
if (strlen($req->simcard) > 14) {
|
||||||
$apiResp = Responses::bad_request("SIM card number must be a maximum of 14 digits");
|
$apiResp = Responses::bad_request("SIM card number must be a maximum of 14 digits");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$uniqDeviceId = Devices::getDeviceByDeviceId($device_id);
|
$uniqDeviceId = Devices::getDeviceByDeviceId($device_id);
|
||||||
if (count($uniqDeviceId) > 0) {
|
if (count($uniqDeviceId) > 0) {
|
||||||
$notSameUser = 1;
|
$notSameUser = 1;
|
||||||
foreach ($uniqDeviceId as $key => $row) {
|
foreach ($uniqDeviceId as $key => $row) {
|
||||||
if ($row->id == $id) {
|
if ($row->id == $id) {
|
||||||
$notSameUser = 0;
|
$notSameUser = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($notSameUser) {
|
if ($notSameUser) {
|
||||||
$apiResp = Responses::bad_request("device id has been used");
|
$apiResp = Responses::bad_request("device id has been used");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$uniqSimcard = Devices::getDeviceBySimcard($req->simcard);
|
$uniqSimcard = Devices::getDeviceBySimcard($req->simcard);
|
||||||
if (count($uniqSimcard) > 0) {
|
if (count($uniqSimcard) > 0) {
|
||||||
$notSameUser = 1;
|
$notSameUser = 1;
|
||||||
foreach ($uniqSimcard as $key => $row) {
|
foreach ($uniqSimcard as $key => $row) {
|
||||||
if ($row->id == $id) {
|
if ($row->id == $id) {
|
||||||
$notSameUser = 0;
|
$notSameUser = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($notSameUser) {
|
if ($notSameUser) {
|
||||||
$apiResp = Responses::bad_request("simcard has been used");
|
$apiResp = Responses::bad_request("simcard has been used");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($req->status == Devices::IS_INACTIVE) {
|
if ($req->status == Devices::IS_INACTIVE) {
|
||||||
$isUsed = Vehicles::getVehicleByDeviceId($device_id);
|
$isUsed = Vehicles::getVehicleByDeviceId($device_id);
|
||||||
if (count($isUsed) > 0) {
|
if (count($isUsed) > 0) {
|
||||||
$apiResp = Responses::bad_request("Cannot deactivate, the device is currently in use.");
|
$apiResp = Responses::bad_request("Cannot deactivate, the device is currently in use.");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
|
|
||||||
if ($device[0]->vhc_id) {
|
if ($device[0]->vhc_id) {
|
||||||
Vehicles::updateVehicle($device[0]->vhc_id, [
|
Vehicles::updateVehicle($device[0]->vhc_id, [
|
||||||
"dvc_id" => 0,
|
"dvc_id" => 0,
|
||||||
"device_id" => str_pad(0, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT),
|
"device_id" => str_pad(0, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT),
|
||||||
"simcard" => 0,
|
"simcard" => 0,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($req->assigned == Devices::IS_ASSIGNED) {
|
if ($req->assigned == Devices::IS_ASSIGNED) {
|
||||||
if ($req->vid == null || $req->vid == "") {
|
if ($req->vid == null || $req->vid == "") {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$apiResp = Responses::bad_request("Vehicle has not been selected");
|
$apiResp = Responses::bad_request("Vehicle has not been selected");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
$vhc = Vehicles::getVehicleById($req->vid);
|
$vhc = Vehicles::getVehicleById($req->vid);
|
||||||
if (count($vhc) > 0 && $vhc[0]->dvc_id !== 0 && $vhc[0]->device_id !== $device_id) {
|
if (count($vhc) > 0 && $vhc[0]->dvc_id !== 0 && $vhc[0]->device_id !== $device_id) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$apiResp = Responses::bad_request(
|
$apiResp = Responses::bad_request(
|
||||||
"This vehicle is already linked to a device " . $vhc[0]->device_id
|
"This vehicle is already linked to a device " . $vhc[0]->device_id
|
||||||
);
|
);
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
$vid = $req->vid;
|
$vid = $req->vid;
|
||||||
Vehicles::updateVehicle($vid, [
|
Vehicles::updateVehicle($vid, [
|
||||||
"dvc_id" => $id,
|
"dvc_id" => $id,
|
||||||
"device_id" => $device_id,
|
"device_id" => $device_id,
|
||||||
"simcard" => (int) $req->simcard,
|
"simcard" => (int) $req->simcard,
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
$vhc = Vehicles::getVehicleByDeviceId($device_id);
|
$vhc = Vehicles::getVehicleByDeviceId($device_id);
|
||||||
if (count($vhc) > 0) {
|
if (count($vhc) > 0) {
|
||||||
$vid = $vhc[0]->id;
|
$vid = $vhc[0]->id;
|
||||||
Vehicles::updateVehicle($vid, [
|
Vehicles::updateVehicle($vid, [
|
||||||
"dvc_id" => 0,
|
"dvc_id" => 0,
|
||||||
"device_id" => str_pad(0, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT),
|
"device_id" => str_pad(0, Devices::MAX_DEVICE_ID, "0", STR_PAD_LEFT),
|
||||||
"simcard" => 0,
|
"simcard" => 0,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$updtDevice = [
|
$updtDevice = [
|
||||||
"device_id" => $req->device_id,
|
"device_id" => $req->device_id,
|
||||||
"name" => $req->name,
|
"name" => $req->name,
|
||||||
"simcard" => (int) $req->simcard,
|
"simcard" => (int) $req->simcard,
|
||||||
"type" => $req->type,
|
"type" => $req->type,
|
||||||
"is_active" => $req->status,
|
"is_active" => $req->status,
|
||||||
"is_assigned" => $req->assigned,
|
"is_assigned" => $req->assigned,
|
||||||
"is_available" => $req->available,
|
"is_available" => $req->available,
|
||||||
"updt" => $now,
|
"updt" => $now,
|
||||||
"updt_by" => $req->auth->uid,
|
"updt_by" => $req->auth->uid,
|
||||||
];
|
"protocol" => $req->protocol,
|
||||||
Devices::updateDevice($id, $updtDevice);
|
];
|
||||||
|
Devices::updateDevice($id, $updtDevice);
|
||||||
|
|
||||||
$apiResp = Responses::created("success update device");
|
$apiResp = Responses::created("success update device");
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
$log = [
|
$log = [
|
||||||
"module" => "Device",
|
"module" => "Device",
|
||||||
"action" => "Update",
|
"action" => "Update",
|
||||||
"desc" => "Edit device: ".$device_id,
|
"desc" => "Edit device: " . $device_id,
|
||||||
];
|
];
|
||||||
UserLogs::insert(Auth::user()->id, $log);
|
UserLogs::insert(Auth::user()->id, $log);
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$apiResp = Responses::error($e->getMessage());
|
$apiResp = Responses::error($e->getMessage());
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function api_del_device(Request $req, $id)
|
public function api_del_device(Request $req, $id)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$now = time();
|
$now = time();
|
||||||
|
|
||||||
$input = [
|
$input = [
|
||||||
"id" => $id,
|
"id" => $id,
|
||||||
];
|
];
|
||||||
$rulesInput = [
|
$rulesInput = [
|
||||||
"id" => "required|integer|not_in:0",
|
"id" => "required|integer|not_in:0",
|
||||||
];
|
];
|
||||||
|
|
||||||
// validasi input
|
// validasi input
|
||||||
$isValidInput = Validator::make($input, $rulesInput);
|
$isValidInput = Validator::make($input, $rulesInput);
|
||||||
if (!$isValidInput->passes()) {
|
if (!$isValidInput->passes()) {
|
||||||
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$device = Devices::showDeviceById($id);
|
$device = Devices::showDeviceById($id);
|
||||||
if (count($device) < 1) {
|
if (count($device) < 1) {
|
||||||
$apiResp = Responses::not_found("Device not found");
|
$apiResp = Responses::not_found("Device not found");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$isUsed = Vehicles::getVehicleByDeviceId($device[0]->device_id);
|
$isUsed = Vehicles::getVehicleByDeviceId($device[0]->device_id);
|
||||||
if (count($isUsed) > 0) {
|
if (count($isUsed) > 0) {
|
||||||
$apiResp = Responses::bad_request("Cannot delete, the device is currently in use");
|
$apiResp = Responses::bad_request("Cannot delete, the device is currently in use");
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
|
|
||||||
Devices::updateDevice($id, [
|
Devices::updateDevice($id, [
|
||||||
"dlt" => $now,
|
"dlt" => $now,
|
||||||
"dlt_by" => $req->auth->uid,
|
"dlt_by" => $req->auth->uid,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
$apiResp = Responses::success("success delete device");
|
$apiResp = Responses::success("success delete device");
|
||||||
|
|
||||||
$log = [
|
$log = [
|
||||||
"module" => "Device",
|
"module" => "Device",
|
||||||
"action" => "Delete",
|
"action" => "Delete",
|
||||||
"desc" => "Delete device : ".$device[0]->device_id,
|
"desc" => "Delete device : " . $device[0]->device_id,
|
||||||
];
|
];
|
||||||
UserLogs::insert(Auth::user()->id, $log);
|
UserLogs::insert(Auth::user()->id, $log);
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$apiResp = Responses::error($e->getMessage());
|
$apiResp = Responses::error($e->getMessage());
|
||||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -366,7 +366,7 @@ class ReportsController extends Controller
|
|||||||
|
|
||||||
public function api_view_trip_detail(Request $req, $token)
|
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 = "1759686805|1759693045|B.10-517|1765845676";
|
||||||
$token = base64_decode($token);
|
$token = base64_decode($token);
|
||||||
$token = explode('|', $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