128 lines
4.0 KiB
PHP
128 lines
4.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Tr_Transaksi;
|
|
use App\Models\TrRegistrasi;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class TransaksiController extends Controller
|
|
{
|
|
public function getTransaksi()
|
|
{
|
|
$data = Tr_Transaksi::with(['tindakan', 'pegawai', 'registrasi.pasien'])
|
|
->where('statusenabled', true)
|
|
->get();
|
|
|
|
|
|
return response()->json(['data' => $data]);
|
|
}
|
|
|
|
public function transaksiBaru(Request $request)
|
|
{
|
|
DB::beginTransaction();
|
|
try {
|
|
$validated = $request->validate([
|
|
'IdRegistrasi' => 'required|exists:tr_registrasis,IdRegistrasi',
|
|
'IdTindakan' => 'required|exists:ms__tindakans,IdTindakan',
|
|
'JmlTindakan' => 'required|integer|min:1',
|
|
'IdPegawai' => 'required|exists:ms__pegawais,IdPegawai',
|
|
]);
|
|
|
|
// Mengambil tarif tindakan dari tabel ms__tindakans
|
|
$tindakan = \App\Models\Ms_Tindakan::findOrFail($validated['IdTindakan']);
|
|
$total = $tindakan->Tarif * $validated['JmlTindakan'];
|
|
|
|
$transaksi = Tr_Transaksi::create([
|
|
'IdRegistrasi' => $validated['IdRegistrasi'],
|
|
'IdTindakan' => $validated['IdTindakan'],
|
|
'JmlTindakan' => $validated['JmlTindakan'],
|
|
'IdPegawai' => $validated['IdPegawai'],
|
|
'Total' => $total,
|
|
'statusenabled' => true
|
|
]);
|
|
|
|
DB::commit();
|
|
return response()->json([
|
|
'message' => 'Transaksi berhasil ditambahkan',
|
|
'data' => $transaksi
|
|
], 201);
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
return response()->json([
|
|
'message' => 'Gagal tambah transaksi',
|
|
'error' => $e->getMessage()
|
|
], 500);
|
|
}
|
|
}
|
|
|
|
public function updateTransaksi(Request $request, $id)
|
|
{
|
|
DB::beginTransaction();
|
|
try {
|
|
$validated = $request->validate([
|
|
'IdTindakan' => 'required|exists:ms__tindakans,IdTindakan',
|
|
'JmlTindakan' => 'required|integer|min:1',
|
|
'IdPegawai' => 'required|exists:ms__pegawais,IdPegawai',
|
|
]);
|
|
|
|
$transaksi = Tr_Transaksi::findOrFail($id);
|
|
$transaksi->update([
|
|
'IdTindakan' => $validated['IdTindakan'],
|
|
'JmlTindakan' => $validated['JmlTindakan'],
|
|
'IdPegawai' => $validated['IdPegawai']
|
|
]);
|
|
|
|
DB::commit();
|
|
return response()->json([
|
|
'message' => 'Transaksi berhasil diperbarui',
|
|
'data' => $transaksi
|
|
]);
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
return response()->json([
|
|
'message' => 'Gagal update transaksi',
|
|
'error' => $e->getMessage()
|
|
], 500);
|
|
}
|
|
}
|
|
|
|
public function hapusTransaksi($id)
|
|
{
|
|
DB::beginTransaction();
|
|
try {
|
|
$transaksi = Tr_Transaksi::findOrFail($id);
|
|
$transaksi->update(['statusenabled' => false]);
|
|
|
|
DB::commit();
|
|
return response()->json([
|
|
'message' => 'Transaksi berhasil di-nonaktifkan'
|
|
]);
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
return response()->json([
|
|
'message' => 'Gagal hapus transaksi',
|
|
'error' => $e->getMessage()
|
|
], 500);
|
|
}
|
|
}
|
|
|
|
|
|
public function printBilling($id)
|
|
{
|
|
$registrasi = TrRegistrasi::with('pasien', 'ruanganPelayanan')->findOrFail($id);
|
|
|
|
$transaksiList = Tr_Transaksi::with(['tindakan', 'pegawai'])
|
|
->where('IdRegistrasi', $id)
|
|
->where('statusenabled', true)
|
|
->get();
|
|
|
|
return view('billing-print', [
|
|
'registrasi' => $registrasi,
|
|
'transaksiList' => $transaksiList,
|
|
]);
|
|
}
|
|
|
|
}
|