106 lines
3.6 KiB
PHP
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');
|
|
}
|
|
}
|