ALTER PROCEDURE [dbo].[SP_UpdateEmpStatus_IfLastAttDateMoreThan50]
(
@Msg NVARCHAR(MAX)=null OUTPUT
)
AS
BEGIN
DECLARE @TCursor CURSOR
DECLARE @EmpCode bigint=null,@maxAttDate DATE=null,@totDays INT=null
CREATE TABLE
(EmpCode BIGINT,maxAttDate DATE,totDays int)
INSERT INTO
(
SELECT EmpCode,MAX( LastAttDate) AS maxAttDate,(DATEDIFF(DAY,MAX( LastAttDate),GETDATE())) As totDays FROM tbl_EmpdutyDays
WHERE EmpCode IN (SELECT DISTINCT EmpCode FROM tbl_Set_EmpWiseValidations WHERE Status=1)
GROUP BY EmpCode
)
SET @TCursor =CURSOR FOR SELECT EmpCode,maxAttDate,totDays FROM
OPEN @TCursor
FETCH NEXT FROM @TCursor INTO @EmpCode,@maxAttDate,@totDays
WHILE @@FETCH_STATUS=0
BEGIN
IF(@totDays IS NOT NULL)
BEGIN
IF (@totDays>=50)
BEGIN
UPDATE tbl_Set_EmpRestric
SET [Status]=0
WHERE EmpCode=@EmpCode
UPDATE tbl_Employees
SET [Status]=0
WHERE EmpCode=@EmpCode
END
END
FETCH NEXT FROM @TCursor INTO @EmpCode,@maxAttDate,@totDays
END
SET @Msg='more Than 50 days Deactived Successfully.'
DEALLOCATE @TCursor
SELECT * FROM
DROP TABLE
END