rsabhk_hsr/app/Http/Controllers/TransaksiController.php
2025-04-27 22:57:29 +07:00

106 lines
3.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Exports\TransaksiExport;
use App\Models\Asuransi;
use App\Models\AsuransiTindakan;
use App\Models\Registrasi;
use App\Models\Tindakan;
use App\Models\Transaksi;
use Barryvdh\DomPDF\Facade\Pdf;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
class TransaksiController extends Controller
{
// public function tindakanForm(Registrasi $registrasi)
// {
// $dataRegistrasi = Registrasi::find($registrasi->id);
// $tindakan = Tindakan::get();
// $asuransiTindakan = AsuransiTindakan::where('id_asuransi', $dataRegistrasi->id_asuransi)->get();
// return view('module.transaksi.tindakan', compact(['dataRegistrasi', 'tindakan', 'asuransiTindakan']));
// }
public function store(Request $request)
{
$idRegistrasi = $request->input('id_registrasi');
$idTindakanList = $request->input('id_tindakan');
$jumlahTindakanList = $request->input('jumlah_tindakan');
$subtotalList = $request->input('subtotal');
$asuransiDiscountList = $request->input('asuransi_discount');
$totalAkhirList = $request->input('total_akhir');
foreach ($idTindakanList as $index => $idTindakan) {
$transaksi = new Transaksi();
$transaksi->id_registrasi = $idRegistrasi;
$transaksi->id_tindakan = $idTindakan;
$transaksi->jml_tindakan = $jumlahTindakanList[$index];
$transaksi->potongan = $asuransiDiscountList[$index];
$transaksi->subtotal = $subtotalList[$index];
$transaksi->total = $totalAkhirList[$index];
$transaksi->id_pegawai = auth('pegawai')->user()->id;
$transaksi->created_by = auth('pegawai')->user()->nama;
$transaksi->save();
}
$registrasi = Registrasi::find($idRegistrasi);
$registrasi->status_tindakan = "done";
$registrasi->updated_by = auth('pegawai')->user()->nama;
$registrasi->save();
return redirect()->back()->with('message', 'Transaksi berhasil');
}
public function laporan()
{
$transaksi = Transaksi::with(['registrasi', 'tindakan'])->orderByDesc('id')->get();
return view('module.transaksi.laporan', compact('transaksi'));
}
public function excelExport()
{
$transaksi = Transaksi::with(['registrasi', 'tindakan'])->orderByDesc('id')->get();
$data = [];
$no = 1;
foreach ($transaksi as $trs) {
$data[] = [
'No' => $no++,
'Tanggal' => date('d/m/Y', strtotime($trs->created_at)),
'Nama Pasien' => $trs->registrasi->pasien->nama,
'Nama Tindakan' => $trs->tindakan->nama,
'Jumlah' => $trs->jml_tindakan,
'Subtotal' => $trs->subtotal,
'Potongan' => $trs->potongan,
'Total' => $trs->total,
];
}
$header = [
'No',
'Tanggal',
'Nama Pasien',
'Nama Tindakan',
'Jumlah',
'Subtotal',
'Potongan',
'Total',
];
return Excel::download(new TransaksiExport($header, $data), 'Data Transaksi Pasien '.now().'.xlsx');
}
public function generatePdf()
{
$transaksi = Transaksi::with(['registrasi', 'tindakan'])->orderByDesc('id')->get();
$pdf = Pdf::loadview('module.transaksi.laporan_pdf', ['transaksi' => $transaksi]);
$pdf->setPaper('A4');
return $pdf->stream('Data Transaksi Pasien '.now().'.pdf');
}
}