ALTER PROCEDURE dbo.TR_BUDGET_CHECK_LIMIT_MONTH_Byid @p_GD_ID VARCHAR(20) = NULL, @p_GD_CODE VARCHAR(20) = NULL, @p_BRANCH_TYPE VARCHAR(20) = NULL, @p_BUDGET_YEAR VARCHAR(20) = NULL, @p_MONTH_RATE VARCHAR(20) = NULL, @p_BRANCH_KIND VARCHAR(20) = NULL, @p_BRANCH_TAKE_COST_ID VARCHAR(20) = NULL, @p_DEP_TAKE_COST_ID VARCHAR(20) = NULL, @p_BUDGET_LIMIT_CURRENT DECIMAL(18,0) OUT, @p_BUDGET_USED_CURRENT DECIMAL(18,0) OUT AS DECLARE @l_BUDGET_LIMIT_CURRENT DECIMAL(18,0); DECLARE @l_BUDGET_USED_CURRENT DECIMAL(18,0); IF(ISNULL(@p_BRANCH_TAKE_COST_ID, '') = 'DV0001') BEGIN -- duyet moi kiem tra han muc IF(EXISTS(SELECT TOP 1 * FROM TR_REQ_BUDGET_MONTH_LIMIT where GD_ID = @p_GD_ID AND BRANCH_TYPE = @p_BRANCH_TYPE AND BUDGET_YEAR = @p_BUDGET_YEAR AND AUTH_STATUS = 'A')) BEGIN --Validation is here /* */ -- Lấy hạn mức tháng, năm được chọn SET @l_BUDGET_LIMIT_CURRENT = ISNULL((SELECT TOP 1 BUDGET_LIMIT_AMT = CASE WHEN @p_MONTH_RATE = 'M1' then M1 WHEN @p_MONTH_RATE = 'M2' then M2 WHEN @p_MONTH_RATE = 'M3' then M3 WHEN @p_MONTH_RATE = 'M4' then M4 WHEN @p_MONTH_RATE = 'M5' then M5 WHEN @p_MONTH_RATE = 'M6' then M6 WHEN @p_MONTH_RATE = 'M7' then M7 WHEN @p_MONTH_RATE = 'M8' then M8 WHEN @p_MONTH_RATE = 'M9' then M9 WHEN @p_MONTH_RATE = 'M10' then M10 WHEN @p_MONTH_RATE = 'M11' then M11 WHEN @p_MONTH_RATE = 'M12' then M12 ELSE M1 END FROM TR_REQ_BUDGET_MONTH_LIMIT WHERE GD_ID = @p_GD_ID AND BRANCH_TYPE = @p_BRANCH_TYPE AND BUDGET_YEAR = @p_BUDGET_YEAR AND AUTH_STATUS = 'A' AND RECORD_STATUS = 1 AND BUDGET_TYPE = 'thang'),0) -- Lấy hạn mức đã sử dụng đến hiện tại SET @l_BUDGET_USED_CURRENT = ISNULL((SELECT BUDGET_LIMIT_CURRENT = SUM(CASE WHEN @p_MONTH_RATE = 'M1' then M1 WHEN @p_MONTH_RATE = 'M2' then M2 WHEN @p_MONTH_RATE = 'M3' then M3 WHEN @p_MONTH_RATE = 'M4' then M4 WHEN @p_MONTH_RATE = 'M5' then M5 WHEN @p_MONTH_RATE = 'M6' then M6 WHEN @p_MONTH_RATE = 'M7' then M7 WHEN @p_MONTH_RATE = 'M8' then M8 WHEN @p_MONTH_RATE = 'M9' then M9 WHEN @p_MONTH_RATE = 'M10' then M10 WHEN @p_MONTH_RATE = 'M11' then M11 WHEN @p_MONTH_RATE = 'M12' then M12 ELSE M1 END) FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL WHERE GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_TAKE_COST_ID AND DEP_ID = @p_DEP_TAKE_COST_ID AND BUDGET_YEAR = @p_BUDGET_YEAR AND RECORD_STATUS = 1 AND AUTH_STATUS = 'A' GROUP BY GD_ID),0) SET @p_BUDGET_LIMIT_CURRENT = @l_BUDGET_LIMIT_CURRENT; SET @p_BUDGET_USED_CURRENT = @l_BUDGET_USED_CURRENT; IF(@l_BUDGET_USED_CURRENT > @l_BUDGET_LIMIT_CURRENT) BEGIN --SELECT '-1' as Result, N'Thông tin hạng mục ngân sách và chi phí, mã ngân sách ' + @p_GD_CODE + N': Số tiền sử dụng ngân sách vượt quá định mức ngân sách. Hạn mức hiện tại là ' + @l_BUDGET_LIMIT_CURRENT + N', số tiền đã sử dụng đến hiện tại là ' + @l_BUDGET_USED_CURRENT ErrorDesc RETURN '-1' END ELSE BEGIN --SELECT '0' as Result, @l_BUDGET_LIMIT_CURRENT LIMIT_CURRENT, @l_BUDGET_USED_CURRENT LIMIT_USED, '' ErrorDesc RETURN '0' END END ELSE BEGIN RETURN '1' END END ELSE BEGIN -- duyet moi kiem tra han muc IF(EXISTS(SELECT TOP 1 * FROM TR_REQ_BUDGET_MONTH_LIMIT where GD_ID = @p_GD_ID AND BRANCH_TYPE = @p_BRANCH_TYPE AND BUDGET_YEAR = @p_BUDGET_YEAR AND AUTH_STATUS = 'A')) BEGIN --Validation is here /* */ -- Lấy hạn mức tháng, năm được chọn SET @l_BUDGET_LIMIT_CURRENT = ISNULL((SELECT BUDGET_LIMIT_AMT = CASE WHEN @p_MONTH_RATE = 'M1' then M1 WHEN @p_MONTH_RATE = 'M2' then M2 WHEN @p_MONTH_RATE = 'M3' then M3 WHEN @p_MONTH_RATE = 'M4' then M4 WHEN @p_MONTH_RATE = 'M5' then M5 WHEN @p_MONTH_RATE = 'M6' then M6 WHEN @p_MONTH_RATE = 'M7' then M7 WHEN @p_MONTH_RATE = 'M8' then M8 WHEN @p_MONTH_RATE = 'M9' then M9 WHEN @p_MONTH_RATE = 'M10' then M10 WHEN @p_MONTH_RATE = 'M11' then M11 WHEN @p_MONTH_RATE = 'M12' then M12 ELSE M1 END FROM TR_REQ_BUDGET_MONTH_LIMIT WHERE GD_ID = @p_GD_ID AND BRANCH_TYPE = @p_BRANCH_TYPE AND BUDGET_YEAR = @p_BUDGET_YEAR AND BRANCH_KIND = @p_BRANCH_KIND),0) -- Lấy hạn mức đã sử dụng đến hiện tại SET @l_BUDGET_USED_CURRENT = ISNULL((SELECT BUDGET_LIMIT_CURRENT = SUM(CASE WHEN @p_MONTH_RATE = 'M1' then M1 WHEN @p_MONTH_RATE = 'M2' then M2 WHEN @p_MONTH_RATE = 'M3' then M3 WHEN @p_MONTH_RATE = 'M4' then M4 WHEN @p_MONTH_RATE = 'M5' then M5 WHEN @p_MONTH_RATE = 'M6' then M6 WHEN @p_MONTH_RATE = 'M7' then M7 WHEN @p_MONTH_RATE = 'M8' then M8 WHEN @p_MONTH_RATE = 'M9' then M9 WHEN @p_MONTH_RATE = 'M10' then M10 WHEN @p_MONTH_RATE = 'M11' then M11 WHEN @p_MONTH_RATE = 'M12' then M12 ELSE M1 END) FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL WHERE GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_TAKE_COST_ID AND BUDGET_YEAR = @p_BUDGET_YEAR AND BRANCH_KIND = @p_BRANCH_KIND AND RECORD_STATUS = 1 AND AUTH_STATUS = 'A' GROUP BY GD_ID),0) SET @p_BUDGET_LIMIT_CURRENT = @l_BUDGET_LIMIT_CURRENT; SET @p_BUDGET_USED_CURRENT = @l_BUDGET_USED_CURRENT; IF(@l_BUDGET_USED_CURRENT > @l_BUDGET_LIMIT_CURRENT) BEGIN --SELECT '-1' as Result, N'Thông tin hạng mục ngân sách và chi phí, mã ngân sách ' + @p_GD_CODE + N': Số tiền sử dụng ngân sách vượt quá định mức ngân sách. Hạn mức hiện tại là ' + @l_BUDGET_LIMIT_CURRENT + N', số tiền đã sử dụng đến hiện tại là ' + @l_BUDGET_USED_CURRENT ErrorDesc RETURN '-1' END ELSE BEGIN --SELECT '0' as Result, @l_BUDGET_LIMIT_CURRENT LIMIT_CURRENT, @l_BUDGET_USED_CURRENT LIMIT_USED, '' ErrorDesc RETURN '0' END END ELSE BEGIN RETURN '1' END END