Files
backend_parkir/app/Http/Controllers/Parking/Setup/Member/StasiunKerjaController.php
T
pand03-CEOandClaude Sonnet 5 2a9b28581c Rapihin setup/member/lot-parking + fitur intercom, exclude WIP controller & file sampah dari git
Kumpulan perubahan yang udah numpuk di working tree: refactor Setup
(Gate/Vehicle/Member), rapihin memberin & stiker, service parking baru
(ParkingUtilsServices, NetworkService), model/migration lot-parking &
DHCP reservation, dan fitur baru Intercom (controller/model/migration/
view).

ReportTransaksiController versi lokal ini WIP (~90%, masih didebug) -
versi yang bener ada di server, jadi dikeluarin dari git (ditambahin
ke .gitignore) biar gak numpuk nindihin punya server pas git pull di
sana. Sekalian keluarin dump mentah tabel softseting (1.8MB, nyasar
ke-commit), file .bak, dan arsip ad-hoc (api.tgz, c.zip) yang emang
bukan source code.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01EAJc2mrpj2cSTe4oowLPzQ
2026-10-04 07:15:54 +07:00

178 lines
5.1 KiB
PHP

<?php
namespace App\Http\Controllers\Parking\Setup\Member;
use App\Http\Controllers\Controller;
use App\Models\Origin\MasterStasiunKerja;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
class StasiunKerjaController extends Controller
{
/**
* Tampilkan halaman utama (view + tabel kosong, data di-load via JS).
*/
public function index()
{
return view("Parking.setup.member.stasiunkerja");
}
/**
* Ambil seluruh data stasiun kerja dalam format JSON.
* Dipanggil via fetch() dari JS untuk mengisi tabel.
*/
public function data(): JsonResponse
{
$data = MasterStasiunKerja::orderBy("kode")->get();
return response()->json([
"success" => true,
"data" => $data,
]);
}
/**
* Ambil satu data berdasarkan kode (dipakai saat buka form edit).
*/
public function show(string $kode): JsonResponse
{
$item = MasterStasiunKerja::find($kode);
if (!$item) {
return response()->json(
[
"success" => false,
"message" => "Data stasiun kerja tidak ditemukan.",
],
404,
);
}
return response()->json([
"success" => true,
"data" => $item,
]);
}
/**
* Simpan data stasiun kerja baru.
*/
public function store(Request $request): JsonResponse
{
$validator = Validator::make($request->all(), [
"kode" => ["required", "string", "max:50", Rule::unique("stasiunkerja", "kode")],
"nama" => ["required", "string", "max:255"],
"margin" => ["nullable", "integer"],
"spv" => ["nullable", "string", "max:20"],
"target" => ["nullable", "integer"],
"id_lokasi" => ["nullable", "string", "max:10"],
"lantai" => ["nullable", "string", "max:4"],
"status" => ["nullable", "integer"],
"alamat" => ["nullable", "string", "max:255"],
"bank" => ["nullable", "string", "max:64"],
"telp" => ["nullable", "string", "max:32"],
"kode_akses" => ["nullable", "string", "max:5"],
]);
if ($validator->fails()) {
return response()->json(
[
"success" => false,
"message" => "Validasi gagal.",
"errors" => $validator->errors(),
],
422,
);
}
$item = MasterStasiunKerja::create($validator->validated());
return response()->json(
[
"success" => true,
"message" => "Data stasiun kerja berhasil ditambahkan.",
"data" => $item,
],
201,
);
}
/**
* Perbarui data stasiun kerja berdasarkan kode.
*/
public function update(Request $request, string $kode): JsonResponse
{
$item = MasterStasiunKerja::find($kode);
if (!$item) {
return response()->json(
[
"success" => false,
"message" => "Data stasiun kerja tidak ditemukan.",
],
404,
);
}
$validator = Validator::make($request->all(), [
"nama" => ["required", "string", "max:255"],
"margin" => ["nullable", "integer"],
"spv" => ["nullable", "string", "max:20"],
"target" => ["nullable", "integer"],
"id_lokasi" => ["nullable", "string", "max:10"],
"lantai" => ["nullable", "string", "max:4"],
"status" => ["nullable", "integer"],
"alamat" => ["nullable", "string", "max:255"],
"bank" => ["nullable", "string", "max:64"],
"telp" => ["nullable", "string", "max:32"],
"kode_akses" => ["nullable", "string", "max:5"],
]);
if ($validator->fails()) {
return response()->json(
[
"success" => false,
"message" => "Validasi gagal.",
"errors" => $validator->errors(),
],
422,
);
}
$item->update($validator->validated());
return response()->json([
"success" => true,
"message" => "Data stasiun kerja berhasil diperbarui.",
"data" => $item,
]);
}
/**
* Hapus data stasiun kerja berdasarkan kode.
*/
public function destroy(string $kode): JsonResponse
{
$item = MasterStasiunKerja::find($kode);
if (!$item) {
return response()->json(
[
"success" => false,
"message" => "Data stasiun kerja tidak ditemukan.",
],
404,
);
}
$item->delete();
return response()->json([
"success" => true,
"message" => "Data stasiun kerja berhasil dihapus.",
]);
}
}