ALTER PROCEDURE [dbo].[REAL_ESTATE_L_C_App] @p_RET_L_C_ID VARCHAR(15) = NULL, @p_AUTH_STATUS VARCHAR(1) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL AS DECLARE @sErrorCode VARCHAR(20) DECLARE @aStatus VARCHAR(1) --Put validation here --SET @sErrorCode = '' --SELECT @aStatus = [AUTH_STATUS] FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID --IF @aStatus = 'A' -- SET @sErrorCode = 'CMDG-0001' --IF @sErrorCode <> '' --BEGIN -- SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode -- RETURN 0 --END IF(EXISTS (SELECT * FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND AUTH_STATUS = 'R')) BEGIN SELECT '-1' as Result, '' RET_L_C_ID, N'Phê duyệt thất bại. Thông tin BĐS đang hoàn thiện thủ tục pháp lý đang bị trả về' ErrorDesc RETURN '-1' END IF(EXISTS (SELECT *FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND AUTH_STATUS = 'A')) BEGIN SELECT '-1' as Result, '' RET_L_C_ID, N'Phê duyệt thất bại. Thông tin BĐS đang hoàn thiện thủ tục pháp lý đã được phê duyệt' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT RET_L_C_ID FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND AUTH_STATUS = 'E' AND IS_SEND_APPR = 'N')) BEGIN SELECT '-1' as Result, '' RET_L_C_ID, N'Phê duyệt thất bại. Thông tin BĐS đang hoàn thiện thủ tục pháp lý đang ở trạng thái lưu nháp. Vui lòng đợi người tạo gửi yêu cầu phê duyệt' ErrorDesc RETURN '-1' END IF(EXISTS( SELECT RET_L_C_ID FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND IS_SEND_APPR = 'Y' AND AUTH_STATUS = 'U' AND(SIGN_USER IS NOT NULL AND SIGN_USER <> '') AND (SIGN_DT IS NULL OR SIGN_DT = '') )) BEGIN SELECT '-1' AS Result, N'Phê duyệt thất bại. Thông tin BĐS đang hoàn thiện thủ tục pháp lý đang chờ cấp phê duyệt trung gian xác nhận. Vui lòng đợi cấp phê duyệt trung gian xác nhận' ErrorDesc RETURN '-1' END BEGIN TRANSACTION BEGIN UPDATE REAL_ESTATE_L_C SET AUTH_STATUS = @p_AUTH_STATUS, CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE RET_L_C_ID = @p_RET_L_C_ID IF @@Error <> 0 GOTO ABORT END --------BAODNQ 15/2/2022: Insert vào bảng lưu lịch sử xử lý------ INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_RET_L_C_ID, 'APPROVE', @p_CHECKER_ID, GETDATE(), N'Trưởng đơn vị phê duyệt thành công' , N'Trưởng đơn vị phê duyệt' ) IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @p_RET_L_C_ID RET_L_C_ID,'' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' RET_L_C_ID,'' ErrorDesc RETURN '-1' END GO ALTER PROCEDURE [dbo].[REAL_ESTATE_L_C_Confirm] @p_RET_L_C_ID VARCHAR(15) = NULL, @p_SIGN_USER VARCHAR(15) = NULL, @p_SIGN_DT VARCHAR(20) = NULL AS BEGIN TRANSACTION IF(EXISTS (SELECT * FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND AUTH_STATUS = 'R')) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result, '' RET_L_C_ID, N'Xác nhận thất bại. Thông tin BĐS đang hoàn thiện thủ tục pháp lý đang bị trả về' ErrorDesc RETURN '-1' END IF(EXISTS (SELECT * FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND IS_SEND_APPR = 'Y' AND (SIGN_DT IS NOT NULL OR SIGN_DT <> ''))) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result, '' RET_L_C_ID, N'Xác nhận thất bại. Thông tin BĐS đang hoàn thiện thủ tục pháp lý đã được cấp trung gian xác nhận trước đó' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT RET_L_C_ID FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND AUTH_STATUS = 'E' AND IS_SEND_APPR = 'N')) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result, '' RET_L_C_ID, N'Xác nhận thất bại. Thông tin BĐS đang hoàn thiện thủ tục pháp lý đang ở trạng thái lưu nháp. Vui lòng đợi người tạo gửi yêu cầu phê duyệt' ErrorDesc RETURN '-1' END -------Trường hợp người duyệt là cấp phê duyệt trung gian, update SIGN_DT--------- UPDATE REAL_ESTATE_L_C SET AUTH_STATUS = 'U', SIGN_DT = CONVERT(DATETIME, @p_SIGN_DT, 103) WHERE RET_L_C_ID = @p_RET_L_C_ID IF @@ERROR <> 0 GOTO ABORT ------Insert vào bảng lịch sử xử lý------------- INSERT INTO PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_RET_L_C_ID, 'APPROVE', @p_SIGN_USER, GETDATE(), N'Cấp trung gian xác nhận thành công', N' Cấp trung gian xác nhận') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' AS Result, @p_RET_L_C_ID RET_L_C_ID , N'Thông tin BĐS: ' +@p_RET_L_C_ID+ N' đã được xác nhận thành công. Vui lòng đợi trưởng đơn vị phê duyệt.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result, '' RET_L_C_ID, '' ErrorDesc RETURN '-1' END GO ALTER PROCEDURE [dbo].[REAL_ESTATE_L_C_Search] @p_RET_L_C_ID varchar(15)=NULL, @p_RET_NAME nvarchar(MAX)=NULL, @p_RET_ADDR nvarchar(MAX)=NULL, @p_RET_DESC nvarchar(MAX)=NULL, @p_REASON nvarchar(500)=NULL, @p_PROC_EXE nvarchar(500)=NULL, @p_BRANCH_CREATE varchar(15)=NULL, @p_BRANCH_ID varchar(15)=NULL, @p_BRANCH_LOGIN varchar(15)=NULL, @p_PROC_NEXT nvarchar(500)=NULL, @p_END_DT VARCHAR(20)=NULL, @p_NOTES NVARCHAR(1000)=NULL, @p_RECORD_STATUS varchar(1)=NULL, @p_AUTH_STATUS varchar(1)=NULL, @p_MAKER_ID varchar(15)=NULL, @p_CREATE_DT VARCHAR(20)=NULL, @p_CHECKER_ID varchar(15)=NULL, @p_APPROVE_DT VARCHAR(20)=NULL, @p_MaxResultCount INT=NULL, @p_LEVEL VARCHAR(50) = 'UNIT', @p_TOP INT = 300, -------BAODNQ 15/2/2022: Truyền thêm tham số------ @p_USER_LOGIN VARCHAR(15) AS BEGIN -- PAGING declare @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN) --DECLARE @p_USER_LOGIN_ROLE VARCHAR(15) = (SELECT RoleName FROM TL_USER WHERE TLNANME = @p_USER_LOGIN) DECLARE @t_USER_LOGIN_ROLE_TABLE TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15), ROLE_ID VARCHAR(20)) INSERT INTO @t_USER_LOGIN_ROLE_TABLE(BRANCH_ID, DEPT_ID, ROLE_ID) SELECT * FROM [dbo].[TL_USER_GET_ROLES](@p_USER_LOGIN) IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0) -- PAGING BEGIN SELECT --A.*, A.RET_L_C_ID, A.RET_ADDR, A.RET_DESC, A.REASON, A.PROC_EXE, A.PROC_NEXT, A.END_DT, A.NOTES, A.BRANCH_ID, A.BRANCH_CREATE, A.RECORD_STATUS, A.AUTH_STATUS, A.MAKER_ID, A.CREATE_DT, A.CHECKER_ID, A.APPROVE_DT, A.BRANCH_USE, A.BRANCH_MANAGE, A.BUY_DT, A.AREA, A.CONTRUCT_AREA, A.IS_SEND_APPR, A.SEND_APPR_DT, A.SIGN_USER, A.SIGN_DT, A.RET_ID, A.ASSET_PRICE, A.LAND_USE_RIGHTS_PRICE, A.MARKET_PRICE, A.FINISH_DT_REAL, RM.ASS_NAME AS RET_NAME, A.BRANCH_USE BRANCH_USE_NAME, BRMN.BRANCH_NAME BRANCH_MANAGE_NAME, BRN.BRANCH_NAME, BRNC.BRANCH_NAME AS BRANCH_CREATE_NAME, D.AUTH_STATUS_NAME, TUM.TLFullName AS MAKER_NAME -- SELECT END FROM REAL_ESTATE_L_C AS A LEFT JOIN CM_BRANCH BRN ON BRN.BRANCH_ID = A.BRANCH_ID LEFT JOIN CM_BRANCH BRNC ON BRNC.BRANCH_ID = A.BRANCH_CREATE LEFT JOIN CM_BRANCH BRMN ON BRMN.BRANCH_ID = A.BRANCH_MANAGE LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN RET_MASTER RM ON A.RET_ID = RM.RET_ID LEFT JOIN TL_USER TUM ON A.MAKER_ID = TUM.TLNANME WHERE (@p_RET_L_C_ID IS NULL OR @p_RET_L_C_ID='' OR A.RET_L_C_ID LIKE N'%' + @p_RET_L_C_ID + '%') AND (@p_RET_NAME IS NULL OR @p_RET_NAME='' OR A.RET_NAME LIKE N'%' + @p_RET_NAME + '%') AND (@p_RET_ADDR IS NULL OR @p_RET_ADDR='' OR A.RET_ADDR LIKE N'%' + @p_RET_ADDR + '%') AND (@p_RET_DESC IS NULL OR @p_RET_DESC='' OR A.RET_DESC LIKE N'%' + @p_RET_DESC + '%') AND (@p_REASON IS NULL OR @p_REASON='' OR A.REASON LIKE N'%' + @p_REASON + '%') AND (@p_PROC_EXE IS NULL OR @p_PROC_EXE='' OR A.PROC_EXE LIKE N'%' + @p_PROC_EXE + '%') AND (@p_PROC_NEXT IS NULL OR @p_PROC_NEXT='' OR A.PROC_NEXT LIKE N'%' + @p_PROC_NEXT + '%') AND (@p_END_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.END_DT,CONVERT(datetime, @p_END_DT,103)) = 0) AND (@p_NOTES IS NULL OR @p_NOTES='' OR A.NOTES LIKE N'%' + @p_NOTES + '%') AND (@p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE='' OR A.BRANCH_CREATE = @p_BRANCH_CREATE) AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID='' OR A.BRANCH_ID = @p_BRANCH_ID) AND (@p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS='' OR A.RECORD_STATUS = @p_RECORD_STATUS) AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS='' OR A.AUTH_STATUS = @p_AUTH_STATUS) AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID='' OR A.MAKER_ID = @p_MAKER_ID) AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID='' OR A.CHECKER_ID = @p_CHECKER_ID) AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.APPROVE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) AND ((@P_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp)) OR ((@P_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_LOGIN) OR (@p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL))) -------BAODNQ 15/2/2022: Thêm điều kiện search------- --AND (A.MAKER_ID = @p_USER_LOGIN ---- ng login là ng tạo -- OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- ng login là cấp duyệt trung gian và đã gửi YC phê duyệt -- OR ((@p_USER_LOGIN_ROLE IN('GDDV','PGD', 'TP', 'PP','TPGD','PPGD', 'TBP')) --- ng login là trưởng ĐV và đã gửi YC phê duyệt -- AND A.IS_SEND_APPR = 'Y' -- AND ( -- ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL) -- ) -- ) -- ) --AND (A.MAKER_ID = @p_USER_LOGIN ---- user login là ng tạo -- OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- user login là cấp duyệt trung gian và đã gửi YC phê duyệt -- OR ( -- --user login là trưởng ĐV và đã gửi YC phê duyệt -- ( -- ------user login là trưởng ĐV ở hội sở-------- -- ( -- EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE AND BRANCH_TYPE = 'HS') -- AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) -- = (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP')) -- ) -- ------user login là trưởng ĐV ở CN/PGD -- OR -- ( -- NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE AND BRANCH_TYPE = 'HS') -- AND A.BRANCH_CREATE = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD')) -- ) -- ) -- AND A.IS_SEND_APPR = 'Y' -- AND ( -- ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL) -- ) -- ) --) AND( A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) = (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE) OR(SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_LOGIN) <> 'HS' ) ) ORDER BY A.CREATE_DT DESC -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT, @p_TOP)) --A.*, A.RET_L_C_ID, A.RET_ADDR, A.RET_DESC, A.REASON, A.PROC_EXE, A.PROC_NEXT, A.END_DT, A.NOTES, A.BRANCH_ID, A.BRANCH_CREATE, A.RECORD_STATUS, A.AUTH_STATUS, A.MAKER_ID, A.CREATE_DT, A.CHECKER_ID, A.APPROVE_DT, A.BRANCH_USE, A.BRANCH_MANAGE, A.BUY_DT, A.AREA, A.CONTRUCT_AREA, A.IS_SEND_APPR, A.SEND_APPR_DT, A.SIGN_USER, A.SIGN_DT, A.RET_ID, A.ASSET_PRICE, A.LAND_USE_RIGHTS_PRICE, A.MARKET_PRICE, A.FINISH_DT_REAL, RM.ASS_NAME AS RET_NAME, A.BRANCH_USE BRANCH_USE_NAME, BRMN.BRANCH_NAME BRANCH_MANAGE_NAME, BRN.BRANCH_NAME, BRNC.BRANCH_NAME AS BRANCH_CREATE_NAME, D.AUTH_STATUS_NAME, TUM.TLFullName AS MAKER_NAME -- SELECT END FROM REAL_ESTATE_L_C AS A LEFT JOIN CM_BRANCH BRN ON BRN.BRANCH_ID = A.BRANCH_ID LEFT JOIN CM_BRANCH BRNC ON BRNC.BRANCH_ID = A.BRANCH_CREATE LEFT JOIN CM_BRANCH BRMN ON BRMN.BRANCH_ID = A.BRANCH_MANAGE LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS LEFT JOIN RET_MASTER RM ON A.RET_ID = RM.RET_ID LEFT JOIN TL_USER TUM ON A.MAKER_ID = TUM.TLNANME WHERE (@p_RET_L_C_ID IS NULL OR @p_RET_L_C_ID='' OR A.RET_L_C_ID LIKE N'%' + @p_RET_L_C_ID + '%') AND (@p_RET_NAME IS NULL OR @p_RET_NAME='' OR A.RET_NAME LIKE N'%' + @p_RET_NAME + '%') AND (@p_RET_ADDR IS NULL OR @p_RET_ADDR='' OR A.RET_ADDR LIKE N'%' + @p_RET_ADDR + '%') AND (@p_RET_DESC IS NULL OR @p_RET_DESC='' OR A.RET_DESC LIKE N'%' + @p_RET_DESC + '%') AND (@p_REASON IS NULL OR @p_REASON='' OR A.REASON LIKE N'%' + @p_REASON + '%') AND (@p_PROC_EXE IS NULL OR @p_PROC_EXE='' OR A.PROC_EXE LIKE N'%' + @p_PROC_EXE + '%') AND (@p_PROC_NEXT IS NULL OR @p_PROC_NEXT='' OR A.PROC_NEXT LIKE N'%' + @p_PROC_NEXT + '%') AND (@p_END_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.END_DT,CONVERT(datetime, @p_END_DT,103)) = 0) AND (@p_NOTES IS NULL OR @p_NOTES='' OR A.NOTES LIKE N'%' + @p_NOTES + '%') AND (@p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE='' OR A.BRANCH_CREATE = @p_BRANCH_CREATE) AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID='' OR A.BRANCH_ID = @p_BRANCH_ID) AND (@p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS='' OR A.RECORD_STATUS = @p_RECORD_STATUS) AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS='' OR A.AUTH_STATUS = @p_AUTH_STATUS) AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID='' OR A.MAKER_ID = @p_MAKER_ID) AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID='' OR A.CHECKER_ID = @p_CHECKER_ID) AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.APPROVE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) AND ((@P_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp)) OR ((@P_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_LOGIN) OR (@p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL))) -------BAODNQ 15/2/2022: Thêm điều kiện search------- --AND (A.MAKER_ID = @p_USER_LOGIN ---- ng login là ng tạo -- OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- ng login là cấp duyệt trung gian và đã gửi YC phê duyệt -- OR ((@p_USER_LOGIN_ROLE IN('GDDV','PGD', 'TP', 'PP','TPGD','PPGD', 'TBP')) --- ng login là trưởng ĐV và đã gửi YC phê duyệt -- AND A.IS_SEND_APPR = 'Y' -- AND ( -- ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL) -- ) -- ) -- ) --AND (A.MAKER_ID = @p_USER_LOGIN ---- user login là ng tạo -- OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- user login là cấp duyệt trung gian và đã gửi YC phê duyệt -- OR ( -- --user login là trưởng ĐV và đã gửi YC phê duyệt -- ( -- ------user login là trưởng ĐV ở hội sở-------- -- ( -- EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE AND BRANCH_TYPE = 'HS') -- AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) -- = (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP')) -- ) -- ------user login là trưởng ĐV ở CN/PGD -- OR -- ( -- NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE AND BRANCH_TYPE = 'HS') -- AND A.BRANCH_CREATE = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD')) -- ) -- ) -- AND A.IS_SEND_APPR = 'Y' -- AND ( -- ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL) -- ) -- ) --) AND( A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) = (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE) OR(SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_LOGIN) <> 'HS' ) ) ORDER BY A.CREATE_DT DESC -- PAGING END END -- PAGING GO ALTER PROCEDURE [dbo].[REAL_ESTATE_L_C_SendAppr] @p_RET_L_C_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(15), @p_SEND_APPR_DT VARCHAR(20) = NULL AS BEGIN TRANSACTION IF(EXISTS (SELECT * FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND IS_SEND_APPR = 'Y')) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result, '' RET_L_C_ID , N'Gửi yêu cầu phê duyệt thất bại. Thông tin BĐS đang hoàn thiện thủ tục đã được gửi yêu cầu phê duyệt trước đó' ErrorDesc RETURN '-1' END UPDATE REAL_ESTATE_L_C SET IS_SEND_APPR = 'Y', SEND_APPR_DT = CONVERT(DATETIME, @p_SEND_APPR_DT, 103), SIGN_DT = NULL, AUTH_STATUS = 'U' WHERE RET_L_C_ID = @p_RET_L_C_ID IF @@ERROR <> 0 GOTO ABORT DECLARE @p_IS_SEND_APPR VARCHAR(15) = (SELECT IS_SEND_APPR FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID) DECLARE @p_MESSAGE NVARCHAR(500) DECLARE @p_RET_NAME NVARCHAR(1000) = ( SELECT RL.RET_NAME FROM REAL_ESTATE_L_C RL WHERE RET_L_C_ID = @p_RET_L_C_ID ) -----------------TH gửi phê duyệt có cấp duyệt trung gian----------- IF(EXISTS(SELECT * FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND SIGN_USER IS NOT NULL)) BEGIN SET @p_MESSAGE = N'Thông tin BĐS: ' +@p_RET_NAME+ N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.' END ELSE -----------------TH gửi phê duyệt ko có cấp duyệt trung gian (gửi thẳng lên trưởng DV)------ BEGIN SET @p_MESSAGE = N'Thông tin BĐS: ' +@p_RET_NAME+ N' đã được gửi phê duyệt thành công. Vui lòng đợi trưởng đơn vị phê duyệt.' END ------Insert vào bảng lịch sử xử lý------------- INSERT INTO PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_RET_L_C_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Người tạo gửi phê duyệt thành công', N' Người tạo gửi phê duyệt') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' AS Result, @p_RET_L_C_ID RET_L_C_ID ,@p_IS_SEND_APPR IS_SEND_APPR, @p_MESSAGE ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result, '' RET_L_C_ID ,'' IS_SEND_APPR, '' ErrorDesc RETURN '-1' END GO ALTER PROCEDURE [dbo].[REAL_ESTATE_L_C_Upd] @p_RET_L_C_ID varchar(15) = null, @p_RET_NAME nvarchar(MAX) = null, @p_RET_ADDR nvarchar(MAX) = null, @p_RET_DESC nvarchar(MAX) = null, @p_REASON nvarchar(500) = null, @p_PROC_EXE nvarchar(500) = null, @p_PROC_NEXT nvarchar(500) = null, @p_BRANCH_ID varchar(15) = NULL, @p_BRANCH_USE Nvarchar(500) = NULL, @p_BRANCH_MANAGE varchar(15) = NULL, @p_BRANCH_CREATE nvarchar(15) = NULL, @p_AREA nvarchar(500) = NULL, @p_END_DT VARCHAR(20) = null, @p_BUY_DT varchar(20) = NULL, @p_NOTES nvarchar(1000) = null, @p_RECORD_STATUS varchar(1) = null, @p_AUTH_STATUS varchar(1) = null, @p_MAKER_ID varchar(15) = null, @p_CREATE_DT VARCHAR(20) = null, @p_CHECKER_ID varchar(15) = null, @p_APPROVE_DT VARCHAR(20) = null, @p_CONTRUCT_AREA nvarchar(500) = NULL, --------BAODNQ 15/2/2022: Thêm cột vào bảng REAL_ESTATE_L_C------ @p_IS_SEND_APPR VARCHAR(15) = NULL, @p_SEND_APPR_DT VARCHAR(20) = NULL, @p_SIGN_USER VARCHAR(15) = NULL, @p_SIGN_DT VARCHAR(20) = NULL, @p_RET_ID VARCHAR(15) = NULL, @p_ASSET_PRICE DECIMAL(18,2) = NULL, @p_LAND_USE_RIGHTS_PRICE DECIMAL(18,2) = NULL, @p_MARKET_PRICE DECIMAL(18,2) = NULL, @p_FINISH_DT_REAL VARCHAR(20) = NULL AS DECLARE @l_ERROR_MESSAGE VARCHAR(1000) BEGIN TRANSACTION IF(@p_RET_L_C_ID IS NULL) BEGIN SET @l_ERROR_MESSAGE = 'ID IS NULL' GOTO ABORT END IF(EXISTS(SELECT * FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND IS_SEND_APPR = 'Y' AND AUTH_STATUS = 'U')) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result, '' RET_ID, N'Không thể chỉnh sửa. Thông tin BĐS đang hoàn thiện thủ tục pháp lý đã được gửi yêu cầu phê duyệt' ErrorDesc RETURN '-1' END IF(EXISTS (SELECT * FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_RET_L_C_ID AND AUTH_STATUS = 'A')) BEGIN --------------------CẬP NHẬT LẠI SAU KHI ĐÃ DUYỆT---------------- SET @p_CHECKER_ID = NULL SET @p_APPROVE_DT = NULL SET @p_SEND_APPR_DT = NULL SET @p_SIGN_DT = NULL END -- UPDATE UPDATE REAL_ESTATE_L_C SET RET_NAME=@p_RET_NAME, RET_ADDR=@p_RET_ADDR, RET_DESC=@p_RET_DESC, REASON=@p_REASON, PROC_EXE=@p_PROC_EXE, PROC_NEXT=@p_PROC_NEXT, END_DT=CONVERT(DATETIME, @p_END_DT, 103), BRANCH_CREATE = @p_BRANCH_CREATE, BRANCH_ID = @p_BRANCH_ID, NOTES=@p_NOTES, RECORD_STATUS=@p_RECORD_STATUS, AUTH_STATUS=@p_AUTH_STATUS, MAKER_ID=@p_MAKER_ID, BUY_DT = CONVERT(DATETIME, @p_BUY_DT, 103), CREATE_DT=CONVERT(DATETIME, @p_CREATE_DT, 103), CHECKER_ID=@p_CHECKER_ID, APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), BRANCH_USE = @p_BRANCH_USE, BRANCH_MANAGE = @p_BRANCH_MANAGE, AREA = @p_AREA, CONTRUCT_AREA = @p_CONTRUCT_AREA, --------BAODNQ 15/2/2022: Thêm cột vào bảng REAL_ESTATE_L_C------ IS_SEND_APPR = @p_IS_SEND_APPR, SEND_APPR_DT = CONVERT(DATETIME, @p_SEND_APPR_DT, 103), SIGN_USER = @p_SIGN_USER, SIGN_DT = CONVERT(DATETIME, @p_SIGN_DT, 103), RET_ID = @p_RET_ID, ASSET_PRICE = @p_ASSET_PRICE, LAND_USE_RIGHTS_PRICE = @p_LAND_USE_RIGHTS_PRICE, MARKET_PRICE = @p_MARKET_PRICE, FINISH_DT_REAL = CONVERT(DATETIME, @p_FINISH_DT_REAL, 103) WHERE RET_L_C_ID = @p_RET_L_C_ID IF @@Error <> 0 GOTO ABORT ---------------BAODNQ : TH NGƯỜI TẠO CẬP NHẬT NHIỀU LẦN THÌ CHỈ LƯU LỊCH SỬ XỬ LÝ CẬP NHẬT GẦN NHẤT---------------- IF((SELECT TOP 1 PROCESS_ID FROM PL_PROCESS WHERE REQ_ID = @p_RET_L_C_ID ORDER BY APPROVE_DT DESC) = 'UPDATE') BEGIN WITH RESULT AS( SELECT TOP 1 * FROM PL_PROCESS WHERE REQ_ID = @p_RET_L_C_ID ORDER BY APPROVE_DT DESC ) DELETE FROM RESULT END --------BAODNQ 15/2/2022: Insert vào bảng lưu lịch sử xử lý------ INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_RET_L_C_ID, 'UPDATE', @p_MAKER_ID, GETDATE(), N'Cập nhật thông tin BĐS đang hoàn thiện thủ tục pháp lý thành công' , N'Cập nhật thông tin BĐS đang hoàn thiện thủ tục pháp lý' ) IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @p_RET_L_C_ID RET_L_C_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN SELECT '-1' as Result, '' RET_L_C_ID, @l_ERROR_MESSAGE ErrorDesc RETURN '-1' END