92 lines
2.8 KiB
PHP
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.']);
|
|
}
|
|
}
|