Commit 0c9fc89b authored by Mahmoud Aglan's avatar Mahmoud Aglan

fix(hr): use raw SQL arrays instead of Model objects in LeaveType views

Model::find() returns a Model object which cannot be used as array in
views. Switch to selectOne() which returns associative arrays.
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent a901d48a
......@@ -71,12 +71,15 @@ class LeaveTypeController extends Controller
{
$this->authorize('hr.leave.manage');
$leaveType = HrLeaveType::find((int) $id);
$db = App::getInstance()->db();
$leaveType = $db->selectOne(
"SELECT * FROM hr_leave_types WHERE id = ? AND is_archived = 0",
[(int) $id]
);
if (!$leaveType) {
return $this->redirect('/hr/leave-types')->withError('نوع الإجازة غير موجود');
}
$db = App::getInstance()->db();
$usageCount = $db->selectOne(
"SELECT COUNT(*) as cnt FROM hr_leave_requests WHERE leave_type_id = ? AND is_archived = 0",
[(int) $id]
......@@ -93,7 +96,11 @@ class LeaveTypeController extends Controller
{
$this->authorize('hr.leave.manage');
$leaveType = HrLeaveType::find((int) $id);
$db = App::getInstance()->db();
$leaveType = $db->selectOne(
"SELECT * FROM hr_leave_types WHERE id = ? AND is_archived = 0",
[(int) $id]
);
if (!$leaveType) {
return $this->redirect('/hr/leave-types')->withError('نوع الإجازة غير موجود');
}
......@@ -108,7 +115,11 @@ class LeaveTypeController extends Controller
{
$this->authorize('hr.leave.manage');
$leaveType = HrLeaveType::find((int) $id);
$db = App::getInstance()->db();
$leaveType = $db->selectOne(
"SELECT id FROM hr_leave_types WHERE id = ? AND is_archived = 0",
[(int) $id]
);
if (!$leaveType) {
return $this->redirect('/hr/leave-types')->withError('نوع الإجازة غير موجود');
}
......@@ -120,7 +131,6 @@ class LeaveTypeController extends Controller
return $this->flashErrorsAndRedirect($errors, $request, '/hr/leave-types/' . $id . '/edit');
}
$db = App::getInstance()->db();
$existing = $db->selectOne(
"SELECT id FROM hr_leave_types WHERE code = ? AND id != ? AND is_archived = 0",
[$data['code'], (int) $id]
......@@ -133,7 +143,8 @@ class LeaveTypeController extends Controller
);
}
$leaveType->update($data);
$data['updated_at'] = date('Y-m-d H:i:s');
$db->update('hr_leave_types', $data, '`id` = ?', [(int) $id]);
return $this->redirect('/hr/leave-types/' . $id)->withSuccess('تم تحديث نوع الإجازة بنجاح');
}
......@@ -142,12 +153,15 @@ class LeaveTypeController extends Controller
{
$this->authorize('hr.leave.manage');
$leaveType = HrLeaveType::find((int) $id);
$db = App::getInstance()->db();
$leaveType = $db->selectOne(
"SELECT id FROM hr_leave_types WHERE id = ? AND is_archived = 0",
[(int) $id]
);
if (!$leaveType) {
return $this->redirect('/hr/leave-types')->withError('نوع الإجازة غير موجود');
}
$db = App::getInstance()->db();
$activeRequests = $db->selectOne(
"SELECT COUNT(*) as cnt FROM hr_leave_requests WHERE leave_type_id = ? AND status IN ('pending','approved') AND is_archived = 0",
[(int) $id]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment