(Feat-Fix): Lots of fixes.

This commit is contained in:
2025-12-21 10:31:13 +00:00
parent 2d3412f79a
commit d36d925e38
3 changed files with 161 additions and 40 deletions

View File

@@ -36,12 +36,20 @@ router.get(
e.name as employee_name, e.username as employee_username,
s.name as supervisor_name,
d.name as department_name,
c.name as contractor_name
COALESCE(oc.name, c.name) as contractor_name,
es.id as active_swap_id,
es.original_contractor_id,
es.target_contractor_id,
oc.name as original_contractor_name,
tc.name as target_contractor_name
FROM attendance a
JOIN users e ON a.employee_id = e.id
JOIN users s ON a.supervisor_id = s.id
LEFT JOIN departments d ON e.department_id = d.id
LEFT JOIN users c ON e.contractor_id = c.id
LEFT JOIN employee_swaps es ON es.employee_id = e.id AND es.status = 'Active' AND es.swap_date <= a.work_date
LEFT JOIN users oc ON es.original_contractor_id = oc.id
LEFT JOIN users tc ON es.target_contractor_id = tc.id
WHERE 1=1
`;
const queryParams: unknown[] = [];
@@ -97,12 +105,18 @@ router.get("/:id", authenticateToken, async (ctx) => {
e.name as employee_name, e.username as employee_username,
s.name as supervisor_name,
d.name as department_name,
c.name as contractor_name
COALESCE(oc.name, c.name) as contractor_name,
es.id as active_swap_id,
oc.name as original_contractor_name,
tc.name as target_contractor_name
FROM attendance a
JOIN users e ON a.employee_id = e.id
JOIN users s ON a.supervisor_id = s.id
LEFT JOIN departments d ON e.department_id = d.id
LEFT JOIN users c ON e.contractor_id = c.id
LEFT JOIN employee_swaps es ON es.employee_id = e.id AND es.status = 'Active' AND es.swap_date <= a.work_date
LEFT JOIN users oc ON es.original_contractor_id = oc.id
LEFT JOIN users tc ON es.target_contractor_id = tc.id
WHERE a.id = ?`,
[attendanceId],
);

View File

@@ -29,11 +29,14 @@ router.get(
e.name as employee_name, e.username as employee_username,
e.phone_number as employee_phone,
s.name as supervisor_name,
c.name as contractor_name,
COALESCE(oc.name, c.name) as contractor_name,
sd.name as sub_department_name,
d.name as department_name,
d.id as department_id,
sr.rate as standard_rate
sr.rate as standard_rate,
es.id as active_swap_id,
oc.name as original_contractor_name,
tc.name as target_contractor_name
FROM work_allocations wa
JOIN users e ON wa.employee_id = e.id
JOIN users s ON wa.supervisor_id = s.id
@@ -42,6 +45,9 @@ router.get(
LEFT JOIN departments d ON e.department_id = d.id
LEFT JOIN standard_rates sr ON wa.sub_department_id = sr.sub_department_id
AND wa.activity = sr.activity
LEFT JOIN employee_swaps es ON es.employee_id = e.id AND es.status = 'Active' AND es.swap_date <= wa.assigned_date
LEFT JOIN users oc ON es.original_contractor_id = oc.id
LEFT JOIN users tc ON es.target_contractor_id = tc.id
WHERE wa.status = 'Completed'
`;
const queryParams: unknown[] = [];