From 83b76cd7af44406aa458b96146d1cfc2ede53a33 Mon Sep 17 00:00:00 2001 From: hasrinuryawati <53637311+hasrinuryawati@users.noreply.github.com> Date: Sun, 27 Apr 2025 21:14:59 +0700 Subject: [PATCH] unduh excel & pdf laporan transaksi --- app/Exports/TransaksiExport.php | 33 ++++++ app/Http/Controllers/RegistrasiController.php | 5 +- app/Http/Controllers/TransaksiController.php | 53 +++++++++ resources/views/layout/sidebar.blade.php | 9 ++ .../views/module/transaksi/laporan.blade.php | 66 +++++++++++ .../module/transaksi/laporan_pdf.blade.php | 105 ++++++++++++++++++ routes/web.php | 3 + 7 files changed, 271 insertions(+), 3 deletions(-) create mode 100644 app/Exports/TransaksiExport.php create mode 100644 resources/views/module/transaksi/laporan.blade.php create mode 100644 resources/views/module/transaksi/laporan_pdf.blade.php diff --git a/app/Exports/TransaksiExport.php b/app/Exports/TransaksiExport.php new file mode 100644 index 0000000..a3b8b52 --- /dev/null +++ b/app/Exports/TransaksiExport.php @@ -0,0 +1,33 @@ +header = $header; + $this->data = $data; + } + + public function collection() + { + return collect([$this->header])->merge($this->data); + } + + public function styles(Worksheet $sheet) + { + return [ + 1 => ['font' => ['bold' => true]], + ]; + } +} diff --git a/app/Http/Controllers/RegistrasiController.php b/app/Http/Controllers/RegistrasiController.php index a94e021..eb938ff 100644 --- a/app/Http/Controllers/RegistrasiController.php +++ b/app/Http/Controllers/RegistrasiController.php @@ -8,11 +8,10 @@ use App\Models\Pasien; use App\Models\Registrasi; use App\Models\RuangPelayanan; use App\Models\Tindakan; -use Barryvdh\DomPDF\Facade\Pdf as FacadePdf; +use Barryvdh\DomPDF\Facade\Pdf; use Illuminate\Http\Request; use Illuminate\Support\Str; use Maatwebsite\Excel\Facades\Excel; -use PDF; class RegistrasiController extends Controller { @@ -97,7 +96,7 @@ class RegistrasiController extends Controller { $registrasi = Registrasi::with(['pasien', 'asuransi', 'pegawai', 'ruangPelayanan'])->orderByDesc('id')->get(); - $pdf = FacadePdf::loadview('module.registrasi.registrasi_pdf', ['registrasi' => $registrasi]); + $pdf = Pdf::loadview('module.registrasi.registrasi_pdf', ['registrasi' => $registrasi]); $pdf->setPaper('A4'); return $pdf->stream('Data Regitrasi Pasien '.now().'.pdf'); diff --git a/app/Http/Controllers/TransaksiController.php b/app/Http/Controllers/TransaksiController.php index 0f87edd..241020d 100644 --- a/app/Http/Controllers/TransaksiController.php +++ b/app/Http/Controllers/TransaksiController.php @@ -2,12 +2,15 @@ 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 { @@ -49,4 +52,54 @@ class TransaksiController extends Controller 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'); + } } diff --git a/resources/views/layout/sidebar.blade.php b/resources/views/layout/sidebar.blade.php index 02b6817..d22b4a1 100644 --- a/resources/views/layout/sidebar.blade.php +++ b/resources/views/layout/sidebar.blade.php @@ -89,6 +89,15 @@ + + {{-- For Access Superadmin --}} {{--