billing-rsabhk/app/Http/Controllers/Admin/MsPegawaiController.php
2025-04-27 18:17:42 +07:00

92 lines
2.8 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Interfaces\MsPegawaiInterface;
use Illuminate\Http\Request;
class MsPegawaiController extends Controller
{
private $msPegawai;
public function __construct(MsPegawaiInterface $msPegawai)
{
$this->msPegawai = $msPegawai;
}
public function index(Request $request)
{
if ($request->ajax()) {
return DataTables()->of($this->msPegawai->getAll())
->addIndexColumn()
->addColumn('id_pegawai', function ($data) {
return $data->id_pegawai;
})
->addColumn('nama_pegawai', function ($data) {
return $data->nama_pegawai;
})
->addColumn('tanggal_lahir', function ($data) {
return $data->tanggal_lahir;
})
->addColumn('jenis_kelamin', function ($data) {
return $data->jenis_kelamin;
})
->addColumn('posisi', function ($data) {
return $data->posisi == 'doctor' ? 'Dokter' : ($data->posisi == 'nurse' ? 'Perawat' : ($data->posisi == 'admin' ? 'Admin' : 'Lainnya'));
})
->addColumn('action', function ($data) {
return view('admin.ms_pegawai.column.action', compact('data'));
})
->make(true);
}
return view('admin.ms_pegawai.index');
}
public function create()
{
return view('admin.ms_pegawai.create');
}
public function store(Request $request)
{
$request->validate([
'nama_pegawai' => 'required|string|max:100',
'tanggal_lahir' => 'required|date',
'jenis_kelamin' => 'required|string|max:10',
'posisi' => 'required|string|max:50',
]);
$this->msPegawai->store($request->all());
return redirect()->route('admin.ms_pegawai.index')->with('success', 'Data pegawai berhasil ditambahkan.');
}
public function edit($id)
{
$pegawai = $this->msPegawai->getById($id);
return view('admin.ms_pegawai.edit', compact('pegawai'));
}
public function update(Request $request, $id)
{
$request->validate([
'nama_pegawai' => 'required|string|max:100',
'tanggal_lahir' => 'required|date',
'jenis_kelamin' => 'required|string|max:10',
'posisi' => 'required|string|max:50',
]);
$this->msPegawai->update($id, $request->all());
return redirect()->route('admin.ms_pegawai.index')->with('success', 'Data pegawai berhasil diperbarui.');
}
public function destroy($id)
{
$this->msPegawai->delete($id);
return response()->json(['success' => 'Data pegawai berhasil dihapus.']);
}
}