SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE [dbo].[ELV_GetDepartmentWiseEmployeeLeavList]
GO
CREATE PROCEDURE [dbo].[ELV_GetDepartmentWiseEmployeeLeavList]
@EmployeeIDName VARCHAR(300),
@CompanyId BIGINT = 1,
@DepartmentId BIGINT = 1,
@FromDate DATETIME,
@ToDate DATETIME
AS
BEGIN
SELECT
dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'EmployeeName','StringValue') AS 'EmployeeIDName'
,(SELECT DOJ FROM HRMEmployeeMaster WHERE dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'EmployeeName','StringValue')
= ((CONVERT(Varchar(MAX),EmployeeId)+'-'+Name))) AS DOJ
,SUM(CASE WHEN dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'RequestedTypeOfLeave','StringValue') = 'Annual Leave'
THEN
CONVERT(DECIMAL(6,2), dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'TotalDays','NumberValue'))
ELSE 0 END)AS AnnualLeave
,SUM(CASE WHEN dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'RequestedTypeOfLeave','StringValue') = 'Sick Leave (Non Hospitalization)'
THEN CONVERT(DECIMAL(6,2), dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'TotalDays','NumberValue'))
ELSE 0 END)
+SUM(CASE WHEN dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'RequestedTypeOfLeave','StringValue') = 'Sick Leave (Hospitalization)'
THEN CONVERT(DECIMAL(6,2), dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'TotalDays','NumberValue'))
ELSE 0 END)AS SickLeave
,SUM(CASE WHEN dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'RequestedTypeOfLeave','StringValue') = 'Compassionate Leave'
THEN CONVERT(DECIMAL(6,2), dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'TotalDays','NumberValue'))
ELSE 0 END)
+SUM(CASE WHEN dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'RequestedTypeOfLeave','StringValue') = 'National Service'
THEN CONVERT(DECIMAL(6,2), dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'TotalDays','NumberValue'))
ELSE 0 END)
+SUM(CASE WHEN dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'RequestedTypeOfLeave','StringValue') = 'Child Care Leave'
THEN CONVERT(DECIMAL(6,2), dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'TotalDays','NumberValue'))
ELSE 0 END)
+SUM(CASE WHEN dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'RequestedTypeOfLeave','StringValue') = 'Maternity Leave'
THEN CONVERT(DECIMAL(6,2), dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'TotalDays','NumberValue'))
ELSE 0 END)
+SUM(CASE WHEN dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'RequestedTypeOfLeave','StringValue') = 'Infant Care Leave'
THEN CONVERT(DECIMAL(6,2), dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'TotalDays','NumberValue'))
ELSE 0 END)
+SUM(CASE WHEN dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'RequestedTypeOfLeave','StringValue') = 'Infant Care Leave'
THEN CONVERT(DECIMAL(6,2), dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'TotalDays','NumberValue'))
ELSE 0 END) AS OtherLeave,
(SELECT COUNT(ISAbsent) FROM [cuteTime].[dbo].[cuteTimeAbsenteesInfo]WHERE ISAbsent=1 AND ISACTIVE=1
AND(SUBSTRING(CONVERT(Varchar(MAX),0,dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'EmployeeName','StringValue'))+'-'+dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'EmployeeName','StringValue'))))
AS [Absent]
FROM JOB Job
WHERE Job.ProjectID= 14 AND Job.JobStatus IN (87,88)
AND
CONVERT(DATETIME,dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'FromDate','DateValue'),105)
BETWEEN CONVERT(DATETIME,@FromDate,105) AND CONVERT(DATETIME,@ToDate,105)
AND
CONVERT(DATETIME,dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'ToDate','DateValue'),105)
BETWEEN CONVERT(DATETIME,@FromDate,105) AND CONVERT(DATETIME,@ToDate,105)
AND (SELECT DepartmentID FROM CutechAppsDb.dbo.HRMEmployeeMaster WHERE dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'EmployeeName','StringValue')
= ((CONVERT(Varchar(MAX),EmployeeId)+'-'+Name))) = @DepartmentId
AND (SELECT CompanyID FROM dbo.HRMCompanyMaster WHERE dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'EmployeeName','StringValue')
= ((CONVERT(Varchar(MAX),CompanyId)+'-'+CompanyName))) = @CompanyId
GROUP BY dbo.FunctionGetCustomFieldValuebyJobIDFieldNameandDatatype(Job.ID,'EmployeeName','StringValue')
END
GO