123 lines
5.4 KiB
PHP
123 lines
5.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Pembayaran;
|
|
use App\Models\Pemeriksaan;
|
|
use App\Models\Pasien;
|
|
use App\Models\Obat;
|
|
use App\Models\Resep;
|
|
use App\Models\Tindakan;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\App;
|
|
|
|
class DetailPembayaranController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$periksaId = $request['id_periksa'];
|
|
$no = 1;
|
|
|
|
$pemeriksaan = Pemeriksaan::select('*', 'pemeriksaan.id as id_periksa', DB::raw('(SELECT status FROM pembayaran WHERE pembayaran.id_periksa = pemeriksaan.id) as statuspembayaran'))
|
|
->leftJoin('pasien', 'pasien.id', 'pemeriksaan.pasien_id')
|
|
->where('pemeriksaan.id', $periksaId)
|
|
->orderBy('pemeriksaan.created_at', 'desc')
|
|
->first();
|
|
|
|
$pasien = Pasien::find($pemeriksaan->pasien_id);
|
|
|
|
$obat = Resep::leftJoin('obat', 'obat.id', 'resepobat.id_obat')->where('id_periksa', $periksaId)->get();
|
|
|
|
$harga = Tindakan::select('harga', 'nama_tindakan')->whereIn('nama_tindakan', $pemeriksaan->tindakan)->get();
|
|
$pemeriksaan->total_harga_tindakan = 0;
|
|
$hargatindakan = [];
|
|
$namatindakan = [];
|
|
|
|
foreach ($harga as $item) {
|
|
$namatindakan[] = $item->nama_tindakan;
|
|
if ($pasien->askes == "Dana_Sehat") {
|
|
if ($item->nama_tindakan == "periksa" || $item->nama_tindakan == "pemeriksaan dan konsultasi") {
|
|
$hargatindakan[] = 0;
|
|
$pemeriksaan->total_harga_tindakan += 0;
|
|
} else {
|
|
$hargatindakan[] = $item->harga;
|
|
$pemeriksaan->total_harga_tindakan += $item->harga;
|
|
}
|
|
} else {
|
|
$hargatindakan[] = $item->harga;
|
|
$pemeriksaan->total_harga_tindakan += $item->harga;
|
|
}
|
|
|
|
}
|
|
$pemeriksaan->hargatindakan = $hargatindakan;
|
|
$pemeriksaan->namatindakan = $namatindakan;
|
|
|
|
return view('pages.detailpembayaran', compact('no', 'pemeriksaan', 'pasien', 'obat'));
|
|
}
|
|
public function store(Request $request)
|
|
{
|
|
$data = $request->all();
|
|
Pembayaran::create($data);
|
|
|
|
return redirect()->route('pembayaran.index');
|
|
}
|
|
|
|
|
|
|
|
public function cetak($id)
|
|
{
|
|
App::setLocale('id');
|
|
// $periksaId = $request['id_periksa'];
|
|
$no = 1;
|
|
$kunjungan = Resep::select('resepobat.id_periksa', 'pemeriksaan.no_periksa', 'users.name as nama_dokter', 'pemeriksaan.tindakan', 'pemeriksaan.tindakan', 'pembayaran.status as statuspembayaran', 'pasien.nama_pasien', 'pasien.no_rmd', 'pemeriksaan.status as statuspemeriksaan', 'resepobat.status as statusobat', 'pemeriksaan.tgl_kunjungan', 'resepobat.pembelian as pembelian', 'pasien.askes', 'pemeriksaan.waktu_kunjungan', DB::raw('SUM(obat.harga) as total_harga_obat'))
|
|
->join('pemeriksaan', 'resepobat.id_periksa', '=', 'pemeriksaan.id')
|
|
->join('pasien', 'pemeriksaan.pasien_id', '=', 'pasien.id') // Join dengan tabel resepobat
|
|
->join('obat', 'resepobat.id_obat', '=', 'obat.id')
|
|
->join('users', 'pemeriksaan.user_id', '=', 'users.id')
|
|
->leftJoin('pembayaran', 'pemeriksaan.id', '=', 'pembayaran.id_periksa') // Left join dengan tabel pembayaran
|
|
->groupBy('pemeriksaan.no_periksa', 'resepobat.id_periksa', 'pemeriksaan.pasien_id', 'pembayaran.status', 'pasien.nama_pasien', 'pasien.no_rmd', 'pemeriksaan.status', 'resepobat.status', 'pembelian', 'pemeriksaan.tgl_kunjungan', 'pasien.askes', 'pemeriksaan.waktu_kunjungan')
|
|
->where('resepobat.id_periksa', $id)
|
|
->get();
|
|
$resep = Resep::select('resepobat.id_periksa', 'pemeriksaan.no_periksa', 'pasien.nama_pasien', 'pemeriksaan.status as statuspemeriksaan', 'obat.nama_obat', 'obat.harga', 'resepobat.aturanpakai', 'resepobat.jumlah', 'resepobat.deskripsi', 'pemeriksaan.tgl_kunjungan', 'pemeriksaan.waktu_kunjungan', 'pembelian')
|
|
->join('pemeriksaan', 'resepobat.id_periksa', '=', 'pemeriksaan.id')
|
|
->join('pasien', 'pemeriksaan.pasien_id', '=', 'pasien.id')
|
|
->join('obat', 'resepobat.id_obat', '=', 'obat.id')
|
|
->where('resepobat.id_periksa', $id)
|
|
->get();
|
|
foreach ($kunjungan as $data) {
|
|
// if ($data->askes == "Dana_Sehat") {
|
|
// $harga = Tindakan::select('harga')->where('nama_tindakan','!=','periksa')->whereIn('nama_tindakan', json_decode($data->tindakan, true))->get();
|
|
|
|
// }else {
|
|
$harga = Tindakan::select('harga', 'nama_tindakan')->whereIn('nama_tindakan', json_decode($data->tindakan, true))->get();
|
|
|
|
// }
|
|
$data->total_harga_tindakan = 0;
|
|
$hargatindakan = [];
|
|
$namatindakan = [];
|
|
// $data->hargatindakan = $harga->harga;
|
|
foreach ($harga as $item) {
|
|
$namatindakan[] = $item->nama_tindakan;
|
|
if ($data->askes == "Dana_Sehat") {
|
|
if ($item->nama_tindakan == "periksa" || $item->nama_tindakan == "pemeriksaan dan konsultasi") {
|
|
$hargatindakan[] = 0;
|
|
$data->total_harga_tindakan += 0;
|
|
} else {
|
|
$hargatindakan[] = $item->harga;
|
|
$data->total_harga_tindakan += $item->harga;
|
|
}
|
|
} else {
|
|
$hargatindakan[] = $item->harga;
|
|
$data->total_harga_tindakan += $item->harga;
|
|
}
|
|
|
|
}
|
|
$data->hargatindakan = $hargatindakan;
|
|
$data->namatindakan = $namatindakan;
|
|
}
|
|
|
|
return view('pages.cetaknota', compact('kunjungan', 'no', 'resep'));
|
|
}
|
|
}
|