2010年12月6日

[GH] 重算補休資料(個人)

BEGIN TRAN

    DECLARE @PER_SERIL_NO PER_SERIL_NO; SET @PER_SERIL_NO= ''

    DELETE A
      FROM dbo.LOL_LEV_OT A 
     WHERE EXISTS (SELECT 'X' 
                     FROM LOL_LEV X 
                    WHERE A.LE_APPLY_NO=X.LE_APPLY_NO
                      AND dbo.ufnIsContains(X.PER_SERIL_NO,@PER_SERIL_NO,',','Y')='Y'
        )

    UPDATE A
       SET OT_COMPEN_RHR = OT_COMPEN_HR
         , MOD_REASON = REPLACE(MOD_REASON,N'加班補休假撤回',N'')
      FROM dbo.LOL_OT A
     WHERE EFORM_STATUS_COD IN ('P','W')
       AND dbo.ufnIsContains(A.PER_SERIL_NO,@PER_SERIL_NO,',','Y')='Y'

    UPDATE A
       SET LEV_BORROW_HR = 0
      FROM LOL_LEV A
     WHERE EFORM_STATUS_COD IN ('P','W')
       AND dbo.ufnIsContains(A.PER_SERIL_NO,@PER_SERIL_NO,',','Y')='Y'

    DECLARE @strOT_PER_SERIL_NO PER_SERIL_NO,
            @strOT_LE_APPLY_NO CHAR(20)

    DECLARE lev_cursor CURSOR FOR
    SELECT PER_SERIL_NO, LE_APPLY_NO 
      FROM LOL_LEV 
     WHERE LEV_TYPE_COD = '00014' 
       AND EFORM_STATUS_COD IN ('W','P')
       AND dbo.ufnIsContains(PER_SERIL_NO,@PER_SERIL_NO,',','Y')='Y'
     ORDER BY PER_SERIL_NO , SDATE

    OPEN lev_cursor
    FETCH NEXT FROM lev_cursor INTO @strOT_PER_SERIL_NO, @strOT_LE_APPLY_NO
    WHILE @@FETCH_STATUS = 0
        BEGIN
            EXEC spApplyLeaveOT '', @strOT_PER_SERIL_NO, @strOT_LE_APPLY_NO, NULL, NULL, 0, 'HIHI', 0
            FETCH NEXT FROM lev_cursor INTO @strOT_PER_SERIL_NO, @strOT_LE_APPLY_NO
        END
    CLOSE lev_cursor
    DEALLOCATE lev_cursor

--ROLLBACK
--COMMIT

沒有留言 :

張貼留言