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 ]); } }