Files
2026-09-16 23:20:08 +07:00

68 lines
2.4 KiB
PHP

<?php
namespace app\Models;
use PDO;
class DeductionMasterModel extends Model {
public function getAllDeductions() {
$stmt = $this->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]);
}
}