103 lines
3.4 KiB
PHP
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"]);
|
|
}
|
|
}
|
|
}
|