This commit is contained in:
meusinfirmary
2025-07-23 04:44:20 +07:00
parent db6fe59062
commit 3e6ea0b3d4
9 changed files with 641 additions and 402 deletions

View File

@ -24,19 +24,11 @@ class TrackController extends Controller
$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']);
// }
$filter = [
"get_order_data" => 1,
];
if ($req->cptid) {
$filter["company"] = $req->cptid;
// $filter["company"] = 1;
}
if ($req->auth->is_tracking === Users::IS_TRACK_VHC_YES) {
@ -75,7 +67,6 @@ class TrackController extends Controller
$filter["vids"][] = $v->vhc_id;
}
} elseif ($req->auth->role === Users::ROLE_SPECIAL_TRACKING) {
// $filter['vid'] = 0;
$filter["company"] = $req->auth->client_group_id;
} else {
$filter["vid"] = 0;
@ -88,8 +79,7 @@ class TrackController extends Controller
// dd($list);
foreach ($list as $key => $row) {
$list[$key]->DT_RowIndex = $key + 1;
// $list[$key]->mileage_km = '-';
$list[$key]->track_schedule = $row->track_sch_h . "/" . $row->track_sch_d; // combine track_sch_h + track_sch_d
$list[$key]->is_track_holiday_text =
$list[$key]->is_track_holiday == Vehicles::ENABLED_TRACK_HOLIDAY ? "Enabled" : "Disabled";
$list[$key]->alert_zones = "-";

View File

@ -454,24 +454,163 @@ class UsersController extends Controller
return new Response($apiResp, $apiResp["meta"]["code"]);
}
// if ($req->roles == Users::ROLE_VENDOR) {
// if (!$req->bank_id) {
// $apiResp = Responses::bad_request("bank wajib diisi");
// return new Response($apiResp, $apiResp["meta"]["code"]);
// }
// if (!$req->bank_branch_name) {
// $apiResp = Responses::bad_request("bank kcp wajib diisi");
// return new Response($apiResp, $apiResp["meta"]["code"]);
// }
// if (!$req->bank_acc_number) {
// $apiResp = Responses::bad_request("nomor rekening wajib diisi");
// return new Response($apiResp, $apiResp["meta"]["code"]);
// }
// if (!$req->bank_acc_name) {
// $apiResp = Responses::bad_request("nama pemilik rekening wajib diisi");
// return new Response($apiResp, $apiResp["meta"]["code"]);
// }
// }
$uniqEmail = Users::getUserByEmail($req->email);
if (count($uniqEmail) > 0) {
$notSameUser = 1;
foreach ($uniqEmail as $key => $row) {
if ($row->id == $req->uid) {
$notSameUser = 0;
}
}
if ($notSameUser) {
$apiResp = Responses::bad_request("email has been used");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
$uniqPhone = Users::getUserByPhone($req->phone);
if (count($uniqPhone) > 0) {
$notSameUser = 1;
foreach ($uniqPhone as $key => $row) {
if ($row->id == $req->uid) {
$notSameUser = 0;
}
}
if ($notSameUser) {
$apiResp = Responses::bad_request("phone has been used");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
$vhcs = null;
if ($req->is_tracking == Users::IS_TRACK_VHC_YES) {
if (!$req->vehicles) {
$apiResp = Responses::bad_request("vehicles must be filled");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
foreach ($req->vehicles as $k => $v) {
$vhcs .= $v . ",";
}
if ($vhcs) {
if (substr($vhcs, -1) === ",") {
$vhcs = substr($vhcs, 0, -1);
}
}
}
$data["is_tracking"] = $req->is_tracking;
$data["vhcs"] = $vhcs;
$data["updt"] = $now;
$data["updt_by"] = $req->auth->uid;
$data["role"] = 2;
DB::beginTransaction();
Users::updateUser($req->uid, $data);
if ($req->roles) {
DB::table("model_has_roles")
->where("model_id", $req->uid)
->delete();
DB::table("model_has_roles")->insert([
"role_id" => $req->roles,
"model_type" => "App\\User",
"model_id" => $req->uid,
]);
}
$apiResp = Responses::created("success update user");
DB::commit();
return new Response($apiResp, $apiResp["meta"]["code"]);
} catch (\Exception $e) {
DB::rollBack();
$apiResp = Responses::error($e->getMessage());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
public function api_edit_user_profile(Request $req)
{
try {
$now = time();
$roles = Users::arrRoles();
$statuses = Users::arrStatus();
$input = [
"uid" => $req->uid,
"is_tracking" => $req->is_tracking,
"vehicles" => $req->vehicles,
"bank_id" => $req->bank_id,
"bank_code" => $req->bank_code,
"bank_short" => $req->bank_short,
"bank_name" => $req->bank_name,
"bank_kcp" => $req->bank_branch_name,
"bank_acc_number" => $req->bank_acc_number,
"bank_acc_name" => $req->bank_acc_name,
"is_vdr_bcng" => $req->is_vdr_bcng,
];
$rulesInput = [
"uid" => "required|integer|not_in:0",
"is_tracking" => "nullable|numeric",
"vehicles" => "nullable|array",
"bank_id" => "nullable|integer|not_in:0",
"bank_code" => "nullable|numeric",
"bank_short" => "nullable|string",
"bank_name" => "nullable|string",
"bank_kcp" => "nullable|string",
"bank_acc_number" => "nullable|numeric",
"bank_acc_name" => "nullable|string|max:255",
"is_vdr_bcng" => "nullable|numeric",
];
$data = [
"id" => $req->uid,
];
if ($req->first_name) {
$input["first_name"] = $req->first_name;
$rulesInput["first_name"] = "required|string|max:125";
$data["first_name"] = $req->first_name;
}
if ($req->last_name) {
$input["last_name"] = $req->last_name;
$rulesInput["last_name"] = "required|string|max:125";
$data["last_name"] = $req->last_name ?? null;
}
if ($req->email) {
$input["email"] = $req->email;
$rulesInput["email"] = "required|email";
$data["email"] = $req->email;
}
if ($req->phone) {
$input["phone"] = $req->phone;
$rulesInput["phone"] = "required|integer|not_in:0";
$data["phone"] = $req->phone;
$data["phone_code"] = Users::DEFAULT_PHONE_CODE;
}
if ($req->fulladdress) {
$input["fulladdress"] = $req->fulladdress;
$rulesInput["fulladdress"] = "required|string|min:45";
$data["fulladdress"] = $req->fulladdress;
}
if ($req->password) {
$input["password"] = $req->password;
$rulesInput["password"] = "required|string";
$data["password"] = Hash::make($req->password);
}
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
$getUser = Users::getUserById($req->uid);
if (count($getUser) < 1) {
$apiResp = Responses::not_found("user not found");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
$uniqEmail = Users::getUserByEmail($req->email);
if (count($uniqEmail) > 0) {
@ -499,67 +638,20 @@ class UsersController extends Controller
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
// $uniqCPhone = Clients::getClientByPhone($req->phone);
// if (count($uniqCPhone) > 0) {
// $notSameUser = 1;
// foreach ($uniqCPhone as $key => $row) {
// if ($row->id == $getUser[0]->client_id) {
// $notSameUser = 0;
// }
// }
// if ($notSameUser) {
// $apiResp = Responses::bad_request('phone has been used');
// return (new Response($apiResp, $apiResp['meta']['code']));
// }
// }
$vhcs = null;
if ($req->is_tracking == Users::IS_TRACK_VHC_YES) {
if (!$req->vehicles) {
$apiResp = Responses::bad_request("vehicles must be filled");
return new Response($apiResp, $apiResp["meta"]["code"]);
}
foreach ($req->vehicles as $k => $v) {
$vhcs .= $v . ",";
}
if ($vhcs) {
if (substr($vhcs, -1) === ",") {
$vhcs = substr($vhcs, 0, -1);
}
}
}
$data["is_tracking"] = $req->is_tracking;
$data["vhcs"] = $vhcs;
// if ($req->roles == Users::ROLE_VENDOR) {
// $data["bank_id"] = $req->bank_id;
// $data["bank_code"] = $req->bank_code;
// $data["bank_name"] = $req->bank_name;
// $data["bank_short_name"] = $req->bank_short;
// $data["bank_branch_name"] = $req->bank_branch_name;
// $data["bank_acc_number"] = $req->bank_acc_number;
// $data["bank_acc_name"] = $req->bank_acc_name;
// $data["is_vdr_bcng"] = $req->is_vdr_bcng;
// }
$data["updt"] = $now;
$data["updt_by"] = $req->auth->uid;
$data["role"] = 2;
DB::beginTransaction();
Users::updateUser($req->uid, $data);
DB::table("model_has_roles")
->where("model_id", $req->uid)
->delete();
if ($req->roles) {
DB::table("model_has_roles")
->where("model_id", $req->uid)
->delete();
DB::table("model_has_roles")->insert([
"role_id" => $req->roles,
"model_type" => "App\\User", // atau 'App\User' tergantung struktur kamu
"model_id" => $req->uid, // ID user-nya
"model_type" => "App\\User",
"model_id" => $req->uid,
]);
}