billing-rsabhk/app/Http/Controllers/Admin/TrTransaksiController.php
2025-04-27 23:46:16 +07:00

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.']);
}
}