Tambah controller Tindakan

This commit is contained in:
2026-08-03 16:26:49 +07:00
parent 245bef85e0
commit 824db369cd
+164
View File
@@ -0,0 +1,164 @@
<?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
]);
}
}