144 lines
4.3 KiB
PHP
144 lines
4.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Parking\Setup\Vehicle;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\MasterTarif;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class ModifiedVehiclepriceController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function index()
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function create()
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*
|
|
* @param int $id
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function show($id)
|
|
{
|
|
$vehicleRates = DB::table("tarif")->where("id_mobil", (string) $id)->first();
|
|
|
|
if (!$vehicleRates) {
|
|
return response()->json(['status' => false, 'message' => 'Tarif kendaraan tidak ditemukan.'], 404);
|
|
}
|
|
|
|
return response()->json($vehicleRates);
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*
|
|
* @param int $id
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function edit($id)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param int $id
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function update(Request $request, $id)
|
|
{
|
|
$dataQuery = MasterTarif::find($id);
|
|
if (!$dataQuery) {
|
|
return response()->json(['status' => false, 'message' => 'Tarif kendaraan tidak ditemukan.'], 404);
|
|
}
|
|
|
|
$validated = $request->validate([
|
|
'waktu_gratis' => 'nullable|integer|min:0',
|
|
'tarif_period' => 'nullable|numeric|min:0',
|
|
'frek_interval' => 'nullable|integer|min:1',
|
|
'interval' => 'nullable|integer|min:1',
|
|
'tarif_interval' => 'nullable|numeric|min:0',
|
|
'bayar_dimuka' => 'nullable|boolean',
|
|
'asuransi_incl' => 'nullable|numeric|min:0',
|
|
'frek_waktu2' => 'nullable|integer|min:1',
|
|
'waktu2' => 'nullable|integer|min:1',
|
|
'tarif2' => 'nullable|numeric|min:0',
|
|
'tarif' => 'required|numeric|min:0',
|
|
'waktu_tarif' => 'nullable|integer|min:1',
|
|
'maksimum' => 'nullable|numeric|min:0',
|
|
'maksimum_mode' => 'required|in:hour,day',
|
|
'maksimum_hour' => 'nullable|integer|min:1',
|
|
'maksimum_day_minute' => 'nullable|integer|min:0',
|
|
'denda' => 'nullable|numeric|min:0',
|
|
'denda_member' => 'nullable|integer|min:0',
|
|
'denda_only_casual' => 'nullable|boolean',
|
|
'denda_only' => 'nullable|boolean',
|
|
]);
|
|
|
|
try {
|
|
$data = collect($validated)->except(['maksimum_mode', 'maksimum_hour', 'maksimum_day_minute'])->all();
|
|
$data['time_base'] = $validated['maksimum_mode'] === 'hour' ? 1 : 0;
|
|
$data['time_base_maks'] = $validated['maksimum_mode'] === 'hour' ? $validated['maksimum_hour'] : null;
|
|
$data['min_per_hari'] = $validated['maksimum_mode'] === 'day' ? $validated['maksimum_day_minute'] : null;
|
|
$data['denda_only_casual'] = $request->boolean('denda_only_casual') ? 1 : 0;
|
|
$data['denda_only'] = $request->boolean('denda_only') ? 1 : 0;
|
|
|
|
$dataQuery->fill($data);
|
|
$dataQuery->save();
|
|
|
|
return response()->json([
|
|
"status" => true,
|
|
"message" => "Data berhasil di ubah",
|
|
]);
|
|
} catch (\Throwable $th) {
|
|
Log::error('Gagal memperbarui tarif kendaraan', ['id_mobil' => $id, 'error' => $th->getMessage()]);
|
|
return response()->json([
|
|
"status" => false,
|
|
"message" => "Gagal menyimpan data " . $th->getMessage(),
|
|
]);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*
|
|
* @param int $id
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function destroy($id)
|
|
{
|
|
//
|
|
}
|
|
}
|