leftJoin('registrasis', 'registrasis.id', '=', 'transaksis.registrasi_id') ->leftJoin('pasiens', 'pasiens.id', '=', 'registrasis.pasien_id') ->where('registrasis.registrasi_tanggal', date('Y-m-d')) ->whereIn('registrasis.status', [2, 3]); return DataTables::of($registrasi) ->editColumn('total', function ($row) { return number_format($row->total, 0, ',', '.'); }) ->editColumn('status', function ($row) { $str = ''; if($row->status == 2) { $str = 'Belum Bayar'; } else if($row->status == 3){ $str = 'Sudah Bayar'; } return $str; }) ->addColumn('action', function ($row) { if($row->status == 2){ return 'Buat Invoice'; } else { return 'Detail'; } }) ->rawColumns(['action', 'status']) ->make(true); } public function invoice(string $id) { // $transaksi = TransaksiDetail::select([ 'transaksis.id', 'transaksis.tindakan_tarif_total', 'transaksis.biaya_tambahan', 'transaksis.catatan', 'registrasis.nomor_urut', 'registrasis.registrasi_tanggal', 'registrasis.pasien_id', 'pasiens.pasien_nik', 'pasiens.pasien_name', 'pasiens.tanggal_lahir', 'pasiens.jenis_kelamin', 'registrasis.asuransi_id', 'asuransis.asuransi_name', 'registrasis.asuransi_no', 'registrasis.pegawai_id', 'pegawais.pegawai_name', 'registrasis.ruang_pelayanan_id', 'ruang_pelayanans.ruang_pelayanan_name', DB::raw('GROUP_CONCAT(tindakans.tindakan_name SEPARATOR ", ") as tindakan'), DB::raw('COUNT(IF(transaksi_details.tindakan_id = -1, 1, null)) as tambahan'), ]) ->leftJoin('transaksis', 'transaksis.id', '=', 'transaksi_details.transaksi_id') ->leftJoin('registrasis', 'registrasis.id', '=', 'transaksis.registrasi_id') ->leftJoin('pasiens', 'pasiens.id', '=', 'registrasis.pasien_id') ->leftJoin('asuransis', 'asuransis.id', '=', 'registrasis.asuransi_id') ->leftJoin('pegawais', 'pegawais.id', '=', 'registrasis.pegawai_id') ->leftJoin('ruang_pelayanans', 'ruang_pelayanans.id', '=', 'registrasis.ruang_pelayanan_id') ->leftJoin('tindakans', 'tindakans.id', '=', 'transaksi_details.tindakan_id') ->where('registrasis.id', $id) ->groupBy('transaksis.id') ->first(); if($transaksi){ $data['title'] = 'INVOICE FORM'; $data['transaksi'] = $transaksi; return view('transaksi.invoice', $data); } else { abort(404); } } /** * Show the form for creating a new resource. */ public function create() { // } /** * Store a newly created resource in storage. */ public function store(Request $request) { // $id = $request->id; $tarif_tambahan = $request->biaya_tambahan; $transaksi = Transaksi::findorFail($id); if (!$transaksi) { $data_return = [ 'status' => false, 'data' => null, 'msg' => 'Data Not Found!' ]; return response()->json($data_return, 404); } $registrasi_id = $transaksi->registrasi_id; try { DB::beginTransaction(); $registrasi = Registrasi::findorFail($registrasi_id); $transaksi_detail = TransaksiDetail::where('transaksi_id', $id)->where('tindakan_id', -1); $registrasi->update(['status' => 3]); $transaksi->update(['biaya_tambahan' => $tarif_tambahan, 'is_pay' => 1]); $transaksi_detail->update(['tarif' => $tarif_tambahan]); DB::commit(); $data_return = [ 'status' => true, 'data' => $id, 'msg' => null ]; return response()->json($data_return, 200); } catch (Exception $e) { //throw $th; DB::rollBack(); $data_return = [ 'status' => false, 'data' => null, 'msg' => 'something wrong!!', 'msg_for_dev' => $e->getMessage() ]; return response()->json($data_return, 500); } } /** * Display the specified resource. */ public function detail(string $id) { // $transaksi = TransaksiDetail::select([ 'transaksis.id', 'transaksis.tindakan_tarif_total', 'transaksis.biaya_tambahan', 'transaksis.catatan', 'registrasis.nomor_urut', 'registrasis.registrasi_tanggal', 'registrasis.pasien_id', 'pasiens.pasien_nik', 'pasiens.pasien_name', 'pasiens.tanggal_lahir', 'pasiens.jenis_kelamin', 'registrasis.asuransi_id', 'asuransis.asuransi_name', 'registrasis.asuransi_no', 'registrasis.pegawai_id', 'pegawais.pegawai_name', 'registrasis.ruang_pelayanan_id', 'ruang_pelayanans.ruang_pelayanan_name', DB::raw('GROUP_CONCAT(tindakans.tindakan_name SEPARATOR ", ") as tindakan'), DB::raw('(transaksis.tindakan_tarif_total + transaksis.biaya_tambahan) total') ]) ->leftJoin('transaksis', 'transaksis.id', '=', 'transaksi_details.transaksi_id') ->leftJoin('registrasis', 'registrasis.id', '=', 'transaksis.registrasi_id') ->leftJoin('pasiens', 'pasiens.id', '=', 'registrasis.pasien_id') ->leftJoin('asuransis', 'asuransis.id', '=', 'registrasis.asuransi_id') ->leftJoin('pegawais', 'pegawais.id', '=', 'registrasis.pegawai_id') ->leftJoin('ruang_pelayanans', 'ruang_pelayanans.id', '=', 'registrasis.ruang_pelayanan_id') ->leftJoin('tindakans', 'tindakans.id', '=', 'transaksi_details.tindakan_id') ->where('registrasis.id', $id) ->groupBy('transaksis.id') ->first(); if($transaksi){ $data['title'] = 'INVOICE DETAIL'; $data['transaksi'] = $transaksi; return view('transaksi.detail', $data); } else { abort(404); } } public function download_pdf($id) { $transaksi = Transaksi::select([ 'transaksis.id', 'transaksis.tindakan_tarif_total', 'transaksis.biaya_tambahan', 'transaksis.catatan', 'registrasis.nomor_urut', 'registrasis.registrasi_tanggal', 'registrasis.pasien_id', 'pasiens.pasien_nik', 'pasiens.pasien_name', 'pasiens.tanggal_lahir', 'pasiens.jenis_kelamin', 'registrasis.asuransi_id', 'asuransis.asuransi_name', 'registrasis.asuransi_no', 'registrasis.pegawai_id', 'pegawais.pegawai_name', 'registrasis.ruang_pelayanan_id', 'ruang_pelayanans.ruang_pelayanan_name', DB::raw('(transaksis.tindakan_tarif_total + transaksis.biaya_tambahan) total'), 'transaksis.created_at' ]) ->leftJoin('registrasis', 'registrasis.id', '=', 'transaksis.registrasi_id') ->leftJoin('pasiens', 'pasiens.id', '=', 'registrasis.pasien_id') ->leftJoin('asuransis', 'asuransis.id', '=', 'registrasis.asuransi_id') ->leftJoin('pegawais', 'pegawais.id', '=', 'registrasis.pegawai_id') ->leftJoin('ruang_pelayanans', 'ruang_pelayanans.id', '=', 'registrasis.ruang_pelayanan_id') ->where('transaksis.id', $id) ->first(); if($transaksi){ $transaksi_detail = TransaksiDetail::select([ 'tindakans.tindakan_name', 'transaksi_details.tarif', 'transaksi_details.tindakan_id', ]) ->leftJoin('tindakans', 'tindakans.id', '=', 'transaksi_details.tindakan_id') ->where('transaksi_id', $id) ->get(); $data['transaksi'] = $transaksi; $data['transaksi_detail'] = $transaksi_detail; // Render view to PDF $pdf = Pdf::loadView('transaksi.pdf', $data); return $pdf->stream('transaksi.pdf'); } else { abort(404); } } /** * Show the form for editing the specified resource. */ public function edit(string $id) { // } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { // } /** * Remove the specified resource from storage. */ public function destroy(string $id) { // } }