164 lines
4.5 KiB
PHP
164 lines
4.5 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use CodeIgniter\Controller;
|
|
|
|
class Tindakan extends BaseController
|
|
{
|
|
// =========================
|
|
// HALAMAN INPUT TINDAKAN
|
|
// =========================
|
|
public function index()
|
|
{
|
|
$db = \Config\Database::connect();
|
|
|
|
$q = $this->request->getGet('q');
|
|
|
|
$builder = $db->table('register_ambulans r')
|
|
->select('r.id, r.register, p.nama, p.rm')
|
|
->join('pasien p', 'p.rm = r.rm', 'left');
|
|
|
|
if ($q) {
|
|
$builder->groupStart()
|
|
->like('p.nama', $q)
|
|
->orLike('r.register', $q)
|
|
->orLike('p.rm', $q)
|
|
->groupEnd();
|
|
}
|
|
|
|
$data['pasien'] = $builder->orderBy('r.id', 'DESC')
|
|
->get()
|
|
->getResultArray();
|
|
|
|
return view('tindakan/pilih_pasien', $data);
|
|
}
|
|
|
|
// =========================
|
|
// AMBIL DATA TARIF (JSON AJAX)
|
|
// =========================
|
|
public function tarif()
|
|
{
|
|
$db = \Config\Database::connect();
|
|
|
|
$data = $db->table('tindakan_tarif')
|
|
->orderBy('uraian', 'ASC')
|
|
->get()
|
|
->getResultArray();
|
|
|
|
return $this->response->setJSON($data);
|
|
}
|
|
|
|
// =========================
|
|
// SIMPAN TRANSAKSI TINDAKAN
|
|
// =========================
|
|
public function simpan()
|
|
{
|
|
$db = \Config\Database::connect();
|
|
|
|
$input = json_decode($this->request->getPost('data'), true);
|
|
|
|
if (!$input) {
|
|
return $this->response->setJSON([
|
|
'status' => 'error',
|
|
'message' => 'Data kosong'
|
|
]);
|
|
}
|
|
|
|
// =========================
|
|
// SIMPAN HEADER TRANSAKSI
|
|
// =========================
|
|
$db->table('tindakan_transaksi')->insert([
|
|
'register_id' => $input['register_id'],
|
|
'tanggal' => $input['tanggal'],
|
|
'nama_pasien' => $input['namaPasien'],
|
|
'register' => $input['register'],
|
|
'kuitansi' => $input['kuitansi'],
|
|
'petugas' => $input['petugas'],
|
|
'total' => $input['total']
|
|
]);
|
|
|
|
$transaksi_id = $db->insertID();
|
|
|
|
// =========================
|
|
// SIMPAN DETAIL TINDAKAN
|
|
// =========================
|
|
foreach ($input['items'] as $item) {
|
|
|
|
$db->table('tindakan_detail')->insert([
|
|
'transaksi_id' => $transaksi_id,
|
|
'kode' => $item['kode'],
|
|
'uraian' => $item['uraian'],
|
|
'jumlah' => $item['jumlah'],
|
|
'harga' => $item['harga'],
|
|
'subtotal' => $item['jumlah'] * $item['harga']
|
|
]);
|
|
}
|
|
|
|
return $this->response->setJSON([
|
|
'status' => 'success',
|
|
'message' => 'Tindakan berhasil disimpan',
|
|
'transaksi_id' => $transaksi_id
|
|
]);
|
|
}
|
|
|
|
// =========================
|
|
// LIST TRANSAKSI (OPSIONAL)
|
|
// =========================
|
|
public function pasienList()
|
|
{
|
|
$db = \Config\Database::connect();
|
|
|
|
$data = $db->table('register_ambulans r')
|
|
->select('r.id, r.register, p.nama')
|
|
->join('pasien p', 'p.rm = r.rm', 'left')
|
|
->orderBy('r.id', 'DESC')
|
|
->get()
|
|
->getResultArray();
|
|
|
|
return $this->response->setJSON($data);
|
|
}
|
|
|
|
// =========================
|
|
// DETAIL TRANSAKSI (OPSIONAL)
|
|
// =========================
|
|
public function detail($id)
|
|
{
|
|
$db = \Config\Database::connect();
|
|
|
|
$header = $db->table('tindakan_transaksi')
|
|
->where('id', $id)
|
|
->get()
|
|
->getRowArray();
|
|
|
|
$detail = $db->table('tindakan_detail')
|
|
->where('transaksi_id', $id)
|
|
->get()
|
|
->getResultArray();
|
|
|
|
return view('tindakan/detail', [
|
|
'header' => $header,
|
|
'detail' => $detail
|
|
]);
|
|
}
|
|
|
|
public function input($id)
|
|
{
|
|
$db = \Config\Database::connect();
|
|
|
|
$pasien = $db->table('register_ambulans r')
|
|
->select('r.id, r.register, p.nama')
|
|
->join('pasien p', 'p.rm = r.rm', 'left')
|
|
->where('r.id', $id)
|
|
->get()
|
|
->getRowArray();
|
|
|
|
if (!$pasien) {
|
|
return redirect()->to('/tindakan')->with('error', 'Pasien tidak ditemukan');
|
|
}
|
|
|
|
return view('tindakan/inputtindakan', [
|
|
'pasien' => $pasien
|
|
]);
|
|
}
|
|
} |