db->prepare("SELECT * FROM deduction_master ORDER BY fund_source ASC, display_order ASC"); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } public function getActiveDeductions() { $stmt = $this->db->prepare("SELECT * FROM deduction_master WHERE is_active = 1 ORDER BY display_order ASC, id ASC"); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } public function getDeductionById($id) { $stmt = $this->db->prepare("SELECT * FROM deduction_master WHERE id = ?"); $stmt->execute([$id]); return $stmt->fetch(PDO::FETCH_ASSOC); } public function createDeduction($data) { $sql = "INSERT INTO deduction_master (code, name, description, is_tax_deductible, is_active, display_order, fund_source) VALUES (?, ?, ?, ?, ?, ?, ?)"; $stmt = $this->db->prepare($sql); return $stmt->execute([ $data['code'], $data['name'], $data['description'] ?? null, $data['is_tax_deductible'] ?? 0, $data['is_active'] ?? 1, $data['display_order'] ?? 0, $data['fund_source'] ?? 'HOSPITAL' ]); } public function updateDeduction($id, $data) { $sql = "UPDATE deduction_master SET code = ?, name = ?, description = ?, is_tax_deductible = ?, 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_tax_deductible'] ?? 0, $data['is_active'] ?? 1, $data['display_order'] ?? 0, $data['fund_source'] ?? 'HOSPITAL', $id ]); } public function deleteDeduction($id) { $stmt = $this->db->prepare("DELETE FROM deduction_master WHERE id = ?"); return $stmt->execute([$id]); } public function addDeduction($code, $name, $fundSource = 'HOSPITAL', $displayOrder = 0) { $stmt = $this->db->prepare("INSERT INTO deduction_master (code, name, fund_source, display_order) VALUES (?, ?, ?, ?)"); return $stmt->execute([$code, $name, $fundSource, $displayOrder]); } }