Files
gps-frontend/app/Http/Controllers/MaintenanceHistoryController.php
2026-07-13 11:52:15 +07:00

103 lines
3.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Response;
use App\Responses;
use App\Models\UserLogs;
use Validator;
class MaintenanceHistoryController extends Controller
{
/**
* API Get data history maintenance
*/
public function api_get_data_maintenance($vehicleid)
{
try {
$data = DB::table('t_vehicles_maintenance_history as h')
->leftJoin('t_maintenance_vhc_type as t', function ($join) {
$join->whereRaw('FIND_IN_SET(t.id, h.idservice)');
})
->select(
'h.*',
DB::raw('GROUP_CONCAT(t.service_type SEPARATOR ", ") as service_names')
)
->where('h.vhc_id', $vehicleid)
->groupBy('h.id')
->get();
$apiResp = Responses::success("success list maintenance vehicles");
$apiResp["data"] = $data;
return new Response($apiResp, $apiResp["meta"]["code"]);
} catch (\Exception $e) {
$apiResp = Responses::error($e->getMessage());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
}
/**
* API Update data history maintenance
*/
public function api_update_data_maintenance(Request $req, $vehicleid, $id)
{
try {
$now = time();
$input = [
"idservice" => $req->idservice,
"odometer" => $req->odometer,
"dates" => $req->dates,
"ismaintenance"=> $req->ismaintenance
];
$rulesInput = [
"idservice" => "required|string",
"odometer" => "required|numeric",
"dates" => "required|string",
"ismaintenance" => "required|numeric"
];
// validasi input
$isValidInput = Validator::make($input, $rulesInput);
if (!$isValidInput->passes()) {
$apiResp = Responses::bad_input($isValidInput->messages()->first());
return new Response($apiResp, $apiResp["meta"]["code"]);
}
DB::beginTransaction();
$update = [
"idservice" => $req->idservice,
"vhc_id" => $vehicleid,
"odometer" => $req->odometer,
"dates" => $req->dates,
"ismaintenance" => $req->ismaintenance,
// "created_at" => date("Y-m-d H:i:s", $now),
// "udt" => date("Y-m-d H:i:s", $now),
// "created_by" => Auth::user()->id,
// "uby" => Auth::user()->id
];
DB::table('t_vehicles_maintenance_history')->where('id', $id)->update($update);
$apiResp = Responses::created("success update maintenance vehicles");
DB::commit();
$log = [
"module" => "Vehicle Type",
"action" => "Create",
"desc" => "Add new vehicle maintenance type: " . $req->service_type,
];
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"]);
}
}
}