Tambah controller Tindakan
This commit is contained in:
@@ -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
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user