33 lines
1.8 KiB
MySQL
33 lines
1.8 KiB
MySQL
|
|
CREATE OR ALTER VIEW [dbo].[Hr_V_LeaveSummary]
|
|||
|
|
AS
|
|||
|
|
-- Çalışan başına yıllık izin bakiyesi; defterin (Hr_V_LeaveBalanceYear) toplamıdır.
|
|||
|
|
-- Kalan = hak edilen + düzeltme − onaylı kullanılan; Kullanılabilir = kalan − onay bekleyen.
|
|||
|
|
SELECT u.Id,
|
|||
|
|
u.TenantId,
|
|||
|
|
u.Id AS EmployeeId,
|
|||
|
|
CONCAT(u.Name, N' ', u.Surname) AS EmployeeName,
|
|||
|
|
u.DepartmentId,
|
|||
|
|
u.JobPositionId,
|
|||
|
|
CAST(COALESCE(u.SeniorityStartDate, u.HireDate) AS date) AS SeniorityStartDate,
|
|||
|
|
CASE
|
|||
|
|
WHEN COALESCE(u.SeniorityStartDate, u.HireDate) IS NULL THEN NULL
|
|||
|
|
ELSE DATEDIFF(year, COALESCE(u.SeniorityStartDate, u.HireDate), GETDATE())
|
|||
|
|
- CASE WHEN DATEADD(year, DATEDIFF(year, COALESCE(u.SeniorityStartDate, u.HireDate), GETDATE()),
|
|||
|
|
COALESCE(u.SeniorityStartDate, u.HireDate)) > GETDATE() THEN 1 ELSE 0 END
|
|||
|
|
END AS ServiceYears,
|
|||
|
|
CAST(COALESCE(SUM(CASE WHEN l.YearNo > 0 THEN l.EntitledDays END), 0) AS decimal(9, 1)) AS EntitledDays,
|
|||
|
|
CAST(COALESCE(SUM(CASE WHEN l.YearNo = 0 THEN l.EntitledDays END), 0) AS decimal(9, 1)) AS AdjustmentDays,
|
|||
|
|
CAST(COALESCE(SUM(l.UsedDays), 0) AS decimal(9, 1)) AS UsedDays,
|
|||
|
|
CAST(COALESCE(SUM(l.PendingDays), 0) AS decimal(9, 1)) AS PendingDays,
|
|||
|
|
CAST(COALESCE(SUM(l.EntitledDays - l.UsedDays), 0) AS decimal(9, 1)) AS RemainingDays,
|
|||
|
|
CAST(COALESCE(SUM(l.EntitledDays - l.UsedDays - l.PendingDays), 0) AS decimal(9, 1)) AS AvailableDays,
|
|||
|
|
MAX(l.NextAccrualDate) AS NextAccrualDate,
|
|||
|
|
MAX(l.NextAccrualDays) AS NextAccrualDays,
|
|||
|
|
u.IsActive
|
|||
|
|
FROM AbpUsers u
|
|||
|
|
LEFT JOIN Hr_V_LeaveBalanceYear l ON l.EmployeeId = u.Id
|
|||
|
|
WHERE u.IsDeleted = 0
|
|||
|
|
GROUP BY u.Id, u.TenantId, u.Name, u.Surname, u.DepartmentId, u.JobPositionId,
|
|||
|
|
u.SeniorityStartDate, u.HireDate, u.IsActive
|
|||
|
|
GO
|