db->prepare("SELECT * FROM income_master ORDER BY fund_source ASC, display_order ASC"); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } public function getActiveIncomes() { $stmt = $this->db->prepare("SELECT * FROM income_master WHERE is_active = 1 ORDER BY display_order ASC, id ASC"); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } public function getIncomeById($id) { $stmt = $this->db->prepare("SELECT * FROM income_master WHERE id = ?"); $stmt->execute([$id]); return $stmt->fetch(PDO::FETCH_ASSOC); } public function createIncome($data) { $sql = "INSERT INTO income_master (code, name, description, is_taxable, is_active, display_order, fund_source) VALUES (?, ?, ?, ?, ?, ?, ?)"; $stmt = $this->db->prepare($sql); return $stmt->execute([ $data['code'], $data['name'], $data['description'] ?? null, $data['is_taxable'] ?? 1, $data['is_active'] ?? 1, $data['display_order'] ?? 0, $data['fund_source'] ?? 'HOSPITAL' ]); } public function updateIncome($id, $data) { $sql = "UPDATE income_master SET code = ?, name = ?, description = ?, is_taxable = ?, is_active = ?, display_order = ?, fund_source = ? WHERE id = ?"; $stmt = $this->db->prepare($sql); return $stmt->execute([ $data['code'], $data['name'], $data['description'] ?? null, $data['is_taxable'] ?? 1, $data['is_active'] ?? 1, $data['display_order'] ?? 0, $data['fund_source'] ?? 'HOSPITAL', $id ]); } public function deleteIncome($id) { $stmt = $this->db->prepare("DELETE FROM income_master WHERE id = ?"); return $stmt->execute([$id]); } public function addIncome($code, $name, $isTaxable, $fundSource = 'HOSPITAL', $displayOrder = 0) { $stmt = $this->db->prepare("INSERT INTO income_master (code, name, is_taxable, fund_source, display_order) VALUES (?, ?, ?, ?, ?)"); return $stmt->execute([$code, $name, $isTaxable, $fundSource, $displayOrder]); } }