240 lines
5.5 KiB
PHP
240 lines
5.5 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="id">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Input Tindakan Ambulans</title>
|
|
|
|
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/select2.min.css" rel="stylesheet" />
|
|
|
|
<style>
|
|
body { background:#fff; font-family:Segoe UI; }
|
|
.card { border-radius:1rem; box-shadow:0 4px 12px rgba(0,0,0,.05); }
|
|
|
|
/* disembunyikan dulu sampai pasien dipilih */
|
|
#formSection { display:none; }
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="container my-4">
|
|
|
|
<!-- ================= PILIH PASIEN ================= -->
|
|
<div class="card p-3 mb-3">
|
|
<h5>Pilih Pasien Ambulans</h5>
|
|
|
|
<select id="pilihPasien" class="form-select">
|
|
<option value="">-- Pilih Pasien --</option>
|
|
</select>
|
|
</div>
|
|
|
|
<!-- ================= INFO PASIEN ================= -->
|
|
<div class="card p-3 mb-3" id="infoPasien" style="display:none;">
|
|
<h5>Data Pasien</h5>
|
|
<b>Nama:</b> <span id="namaPasienText"></span><br>
|
|
<b>Register:</b> <span id="registerText"></span>
|
|
</div>
|
|
|
|
<!-- ================= FORM ================= -->
|
|
<div class="card p-4" id="formSection">
|
|
|
|
<form id="formTindakan">
|
|
|
|
<input type="hidden" id="register_id">
|
|
<input type="hidden" id="register">
|
|
<input type="hidden" id="namaPasien">
|
|
|
|
<div class="row mb-3">
|
|
<div class="col-md-3">
|
|
<input type="date" id="tanggal" class="form-control" required>
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
<input type="text" id="kuitansi" class="form-control" placeholder="No Kuitansi">
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
<select id="petugas" class="form-control">
|
|
<option>Yahya Citra Winata</option>
|
|
<option>Widodo</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row mb-3">
|
|
<div class="col-md-6">
|
|
<select id="tindakan" class="form-select"></select>
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
<input type="number" id="jumlah" class="form-control" value="1">
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
<button class="btn btn-primary w-100">Tambah</button>
|
|
</div>
|
|
</div>
|
|
|
|
</form>
|
|
|
|
<table class="table table-bordered">
|
|
<thead>
|
|
<tr>
|
|
<th>Kode</th>
|
|
<th>Uraian</th>
|
|
<th>Qty</th>
|
|
<th>Harga</th>
|
|
<th>Total</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="list"></tbody>
|
|
</table>
|
|
|
|
<button onclick="simpan()" class="btn btn-success w-100">
|
|
Simpan Tindakan
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- ================= SCRIPT ================= -->
|
|
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js"></script>
|
|
|
|
<script>
|
|
|
|
let data = [];
|
|
|
|
// ================= SELECT2 =================
|
|
$('#tindakan').select2();
|
|
|
|
// ================= LOAD PASIEN =================
|
|
fetch("<?= base_url('tindakan/pasien-list') ?>")
|
|
.then(r => r.json())
|
|
.then(res => {
|
|
res.forEach(p => {
|
|
$('#pilihPasien').append(`
|
|
<option value="${p.id}"
|
|
data-nama="${p.nama}"
|
|
data-register="${p.register}">
|
|
${p.register} - ${p.nama}
|
|
</option>
|
|
`);
|
|
});
|
|
});
|
|
|
|
// ================= PILIH PASIEN =================
|
|
$('#pilihPasien').on('change', function () {
|
|
|
|
let id = $(this).val();
|
|
|
|
if (!id) return;
|
|
|
|
let selected = $(this).find(':selected');
|
|
|
|
let nama = selected.data('nama');
|
|
let register = selected.data('register');
|
|
|
|
// isi hidden
|
|
$('#register_id').val(id);
|
|
$('#register').val(register);
|
|
$('#namaPasien').val(nama);
|
|
|
|
// tampilkan info
|
|
$('#namaPasienText').text(nama);
|
|
$('#registerText').text(register);
|
|
|
|
$('#infoPasien').show();
|
|
$('#formSection').show();
|
|
});
|
|
|
|
// ================= LOAD TARIF =================
|
|
fetch("<?= base_url('tindakan/tarif') ?>")
|
|
.then(r => r.json())
|
|
.then(res => {
|
|
res.forEach(v => {
|
|
$('#tindakan').append(
|
|
`<option value="${v.kode}|${v.uraian}|${v.harga}">
|
|
${v.kode} - ${v.uraian}
|
|
</option>`
|
|
);
|
|
});
|
|
});
|
|
|
|
// ================= TAMBAH TINDAKAN =================
|
|
$('#formTindakan').on('submit', function(e){
|
|
e.preventDefault();
|
|
|
|
let val = $('#tindakan').val();
|
|
|
|
if (!val) return;
|
|
|
|
let [kode, uraian, harga] = val.split('|');
|
|
|
|
data.push({
|
|
kode,
|
|
uraian,
|
|
harga: parseInt(harga),
|
|
jumlah: parseInt($('#jumlah').val())
|
|
});
|
|
|
|
render();
|
|
});
|
|
|
|
// ================= RENDER TABLE =================
|
|
function render(){
|
|
|
|
let html = '';
|
|
|
|
data.forEach(v => {
|
|
html += `
|
|
<tr>
|
|
<td>${v.kode}</td>
|
|
<td>${v.uraian}</td>
|
|
<td>${v.jumlah}</td>
|
|
<td>${v.harga}</td>
|
|
<td>${v.jumlah * v.harga}</td>
|
|
</tr>`;
|
|
});
|
|
|
|
$('#list').html(html);
|
|
}
|
|
|
|
// ================= SIMPAN =================
|
|
function simpan(){
|
|
|
|
if (!$('#register_id').val()) {
|
|
alert('Pilih pasien dulu!');
|
|
return;
|
|
}
|
|
|
|
$.post("<?= base_url('tindakan/simpan') ?>", {
|
|
data: JSON.stringify({
|
|
register_id: $('#register_id').val(),
|
|
register: $('#register').val(),
|
|
namaPasien: $('#namaPasien').val(),
|
|
tanggal: $('#tanggal').val(),
|
|
kuitansi: $('#kuitansi').val(),
|
|
petugas: $('#petugas').val(),
|
|
total: 0,
|
|
items: data
|
|
})
|
|
}, function(){
|
|
|
|
alert('Berhasil disimpan');
|
|
location.reload();
|
|
|
|
});
|
|
}
|
|
|
|
// ================= TANGGAL AUTO =================
|
|
document.addEventListener("DOMContentLoaded", function(){
|
|
$('#tanggal').val(new Date().toISOString().split('T')[0]);
|
|
});
|
|
|
|
</script>
|
|
|
|
</body>
|
|
</html> |