103 lines
3.3 KiB
PHP
103 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Interfaces\TrTransaksiInterface;
|
|
use App\Interfaces\MsTindakanInterface;
|
|
use App\Interfaces\MsPegawaiInterface;
|
|
use Illuminate\Http\Request;
|
|
|
|
class TrTransaksiController extends Controller
|
|
{
|
|
private $trTransaksi;
|
|
private $msTindakan;
|
|
private $msPegawai;
|
|
|
|
public function __construct(TrTransaksiInterface $trTransaksi, MsTindakanInterface $msTindakan, MsPegawaiInterface $msPegawai)
|
|
{
|
|
$this->trTransaksi = $trTransaksi;
|
|
$this->msTindakan = $msTindakan;
|
|
$this->msPegawai = $msPegawai;
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
if ($request->ajax()) {
|
|
return DataTables()->of($this->trTransaksi->getAll())
|
|
->addIndexColumn()
|
|
->addColumn('nama_tindakan', function ($data) {
|
|
return $this->msTindakan->getById($data->id_tindakan)->nama_tindakan;
|
|
})
|
|
->addColumn('jumlah_tindakan', function ($data) {
|
|
return $data->jumlah_tindakan;
|
|
})
|
|
->addColumn('nama_pegawai', function ($data) {
|
|
return $this->msPegawai->getById($data->id_pegawai)->nama_pegawai;
|
|
})
|
|
->addColumn('total_tarif', function ($data) {
|
|
return $data->jumlah_tindakan * $this->msTindakan->getById($data->id_tindakan)->tarif;
|
|
})
|
|
->addColumn('action', function ($data) {
|
|
return view('admin.tr_transaksi.column.action', compact('data'));
|
|
})
|
|
->make(true);
|
|
}
|
|
|
|
return view('admin.tr_transaksi.index');
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
return view('admin.tr_transaksi.create', [
|
|
'registrasi' => $this->trTransaksi->getAll(),
|
|
'tindakan' => $this->msTindakan->getAll(),
|
|
'pegawai' => $this->msPegawai->getAll(),
|
|
]);
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'id_registrasi' => 'required',
|
|
'id_tindakan' => 'required',
|
|
'jumlah_tindakan' => 'required|integer|min:1',
|
|
'id_pegawai' => 'required',
|
|
]);
|
|
|
|
$this->trTransaksi->store($request->all());
|
|
|
|
return redirect()->route('admin.tr_transaksi.index')->with('success', 'Data Ruang Pelayanan berhasil ditambahkan.');
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$transaksi = $this->trTransaksi->getById($id);
|
|
return view('admin.tr_transaksi.edit',[
|
|
'transaksi' => $transaksi,
|
|
'tindakan' => $this->msTindakan->getAll(),
|
|
'pegawai' => $this->msPegawai->getAll(),
|
|
]);
|
|
}
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
$request->validate([
|
|
'id_registrasi' => 'required',
|
|
'id_tindakan' => 'required',
|
|
'jumlah_tindakan' => 'required|integer|min:1',
|
|
'id_pegawai' => 'required',
|
|
]);
|
|
|
|
$this->trTransaksi->update($id, $request->all());
|
|
|
|
return redirect()->route('admin.tr_transaksi.index')->with('success', 'Data Ruang Pelayanan berhasil diperbarui.');
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
$this->trTransaksi->delete($id);
|
|
return response()->json(['success' => 'Data Ruang Pelayanan berhasil dihapus.']);
|
|
}
|
|
}
|