ALTER PROCEDURE [dbo].[RET_MASTER_Search] @p_RET_ID varchar(15) = NULL, @p_ASSET_ID VARCHAR(15) = NULL, @P_ASSET_CODE VARCHAR(15) = NULL, @P_DIV_ID VARCHAR(15) = NULL, @P_DIV_CODE VARCHAR(15) = NULL, @P_OWNER VARCHAR(50) = NULL, @p_LENGTH DECIMAL(18,2) = NULL, @p_WIDTH DECIMAL(18,2) = NULL, @p_CURRENT_STATE nvarchar(100) = NULL, @p_RET_TYPE varchar(15) = NULL, @p_STATUS varchar(15) = NULL, @p_LAND_SQUARE DECIMAL(18,2) = NULL, @p_CONSTRUCT_SQUARE DECIMAL(18,2) = NULL, @p_TOTAL_SQUARE DECIMAL(18,2) = NULL, @p_BOUNDARY nvarchar(100) = NULL, @p_HOUSEDES nvarchar(100) = NULL, @p_PURPOSE_IN_USE nvarchar(100) = NULL, @P_W_USE_CON NVARCHAR(100) = NULL, @p_USE_STATUS varchar(15) = NULL, @p_CONST_STATUS varchar(15) = NULL, @p_OWNER_TYPE varchar(15) = NULL, @p_USE_PERIOD int = NULL, @p_PERSON_HOLDER nvarchar(100) = NULL, @p_NOTES nvarchar(100) = 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_TOP INT = 10, ------------------BAODNQ 16/2/2022: Thêm tham số------------ @p_USER_LOGIN VARCHAR(15), @p_BRANCH_ID VARCHAR(15) = NULL AS --Validation is here /* DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( [NOT] EXISTS ( SELECT * FROM [TABLE] WHERE [CONDITION] )) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ BEGIN -- PAGING --DECLARE @p_USER_LOGIN_ROLE VARCHAR(50) = (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.*,(CASE WHEN USE_PERIOD = 0 THEN N'Lâu dài' ELSE convert(varchar(100),USE_PERIOD_DT, 103) END) AS USE_PERIOD_NAME, B.AUTH_STATUS_NAME, C.CONTENT, D.ASSET_NAME, D.BRANCH_ID, CASE WHEN BR.BRANCH_TYPE = 'HS' THEN DP.DEP_NAME ELSE BR.BRANCH_NAME END AS BRANCH_NAME, G.ADDR as ASS_ADDR, D.BUY_PRICE,G.DIV_ID,G.DIV_CODE,G.DIV_NAME,E.CONTENT AS RET_STATUS, AST.TYPE_NAME AS ASSET_TYPE, ASG.GROUP_NAME AS ASS_GROUP, -----------BAODNQ 15/3/2022 Lấy thông tin xuất excel C.CONTENT AS RET_TYPE_NAME, --loại BDS UF.CONTENT AS USE_FORM_NAME, -- hình thức sử dụng US.CONTENT AS USE_STATUS_NAME, --tình trạng sử dụng đất CS.CONTENT AS CONST_STATUS_NAME, --tình trạng xây dựng E.CONTENT AS RET_STATUS_NAME, --hiện trạng pháp lý gắn liền vs đất OT.CONTENT AS OWNER_TYPE_NAME -- loại sỡ hữu -- SELECT END FROM RET_MASTER A INNER JOIN CM_AUTH_STATUS B ON B.AUTH_STATUS = A.AUTH_STATUS --INNER JOIN CM_ALLCODE C ON C.CDVAL = A.RET_TYPE AND C.CDNAME = 'RET_TYPE'AND C.CDTYPE = 'RET' INNER JOIN CM_ALLCODE C ON C.CDVAL = A.RET_TYPE AND C.CDNAME = 'RET_TYPE_2'AND C.CDTYPE = 'RET' INNER JOIN CM_ALLCODE E ON E.CDVAL = A.[STATUS] AND E.CDNAME = 'RET_STATUS' AND E.CDTYPE = 'RET' INNER JOIN ASS_MASTER D ON D.ASSET_ID = A.ASSET_ID LEFT JOIN CM_DIVISION G ON G.DIV_ID=D.DIVISION_ID --LEFT JOIN CM_BRANCH BR ON D.BRANCH_CREATE = BR.BRANCH_ID LEFT JOIN CM_BRANCH BR ON D.BRANCH_ID = BR.BRANCH_ID LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = D.DEPT_ID LEFT JOIN ASS_MASTER AMS ON A.ASSET_ID = AMS.ASSET_ID LEFT JOIN ASS_TYPE AST ON AMS.TYPE_ID = AST.TYPE_ID LEFT JOIN ASS_GROUP ASG ON AMS.GROUP_ID = ASG.GROUP_ID ----------------------BAODNQ 15/3/2022: Lấy thông tin xuất excel----- LEFT JOIN CM_ALLCODE UF ON A.USE_FORM = UF.CDVAL AND UF.CDNAME = 'USE_FORM' AND UF.CDTYPE = 'RET' LEFT JOIN CM_ALLCODE US ON A.USE_STATUS = US.CDVAL AND US.CDNAME = 'USE_STATUS' AND US.CDTYPE = 'RET' LEFT JOIN CM_ALLCODE CS ON A.CONST_STATUS = CS.CDVAL AND CS.CDNAME = 'CONST_STATUS' AND CS.CDTYPE = 'RET' LEFT JOIN CM_ALLCODE OT ON A.OWNER_TYPE = OT.CDVAL AND OT.CDNAME = 'OWNER_TYPE' AND OT.CDTYPE = 'RET' WHERE 1 = 1 AND (A.RET_ID LIKE '%' + @p_RET_ID + '%' OR @p_RET_ID IS NULL OR @p_RET_ID = '') AND (A.ASSET_ID LIKE '%' + @p_ASSET_ID + '%' OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '') AND (A.ASSET_CODE LIKE '%' + @P_ASSET_CODE + '%' OR @P_ASSET_CODE IS NULL OR @P_ASSET_CODE = '') AND (A.OWNER LIKE '%' + @P_OWNER + '%' OR @P_OWNER IS NULL OR @P_OWNER = '') AND (A.LENGTH = @p_LENGTH OR @p_LENGTH IS NULL) AND (A.WIDTH = @p_WIDTH OR @p_WIDTH IS NULL) AND (A.CURRENT_STATE LIKE '%' + @p_CURRENT_STATE + '%' OR @p_CURRENT_STATE IS NULL OR @p_CURRENT_STATE = '') AND (A.RET_TYPE LIKE '%' + @p_RET_TYPE + '%' OR @p_RET_TYPE IS NULL OR @p_RET_TYPE = '') AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = '') AND (A.LAND_SQUARE = @p_LAND_SQUARE OR @p_LAND_SQUARE IS NULL) AND (A.CONSTRUCT_SQUARE = @p_CONSTRUCT_SQUARE OR @p_CONSTRUCT_SQUARE IS NULL) AND (A.TOTAL_SQUARE = @p_TOTAL_SQUARE OR @p_TOTAL_SQUARE IS NULL) AND (A.BOUNDARY LIKE '%' + @p_BOUNDARY + '%' OR @p_BOUNDARY IS NULL OR @p_BOUNDARY = '') AND (A.HOUSEDES LIKE '%' + @p_HOUSEDES + '%' OR @p_HOUSEDES IS NULL OR @p_HOUSEDES = '') AND (A.PURPOSE_IN_USE LIKE '%' + @p_PURPOSE_IN_USE + '%' OR @p_PURPOSE_IN_USE IS NULL OR @p_PURPOSE_IN_USE = '') AND (A.W_USE_CON LIKE '%' + @P_W_USE_CON + '%' OR @P_W_USE_CON IS NULL OR @P_W_USE_CON = '') AND (A.USE_STATUS LIKE '%' + @p_USE_STATUS + '%' OR @p_USE_STATUS IS NULL OR @p_USE_STATUS = '') AND (A.CONST_STATUS LIKE '%' + @p_CONST_STATUS + '%' OR @p_CONST_STATUS IS NULL OR @p_CONST_STATUS = '') AND (A.OWNER_TYPE LIKE '%' + @p_OWNER_TYPE + '%' OR @p_OWNER_TYPE IS NULL OR @p_OWNER_TYPE = '') AND (A.USE_PERIOD = @p_USE_PERIOD OR @p_USE_PERIOD IS NULL) AND (A.PERSON_HOLDER LIKE '%' + @p_PERSON_HOLDER + '%' OR @p_PERSON_HOLDER IS NULL OR @p_PERSON_HOLDER = '') AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.RECORD_STATUS = '1') AND (G.DIV_ID LIKE '%' + @P_DIV_ID + '%' OR @P_DIV_ID = '' OR @P_DIV_ID IS NULL) AND (G.DIV_CODE LIKE '%' + @P_DIV_CODE + '%' OR @P_DIV_CODE = '' OR @P_DIV_CODE IS NULL) AND (AMS.BRANCH_CREATE = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') -------BAODNQ 16/2/2022: Thêm điều kiện search------- 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 = AMS.BRANCH_CREATE AND BRANCH_TYPE = 'HS') AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) = (SELECT 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 = AMS.BRANCH_CREATE AND BRANCH_TYPE = 'HS') AND AMS.BRANCH_CREATE = (SELECT 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) ) ) ) -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP)) A.*, B.AUTH_STATUS_NAME, C.CONTENT, D.ASSET_NAME, D.BRANCH_ID, CASE WHEN BR.BRANCH_TYPE = 'HS' THEN DP.DEP_NAME ELSE BR.BRANCH_NAME END AS BRANCH_NAME, D.BUY_PRICE,G.DIV_ID,G.DIV_CODE,G.DIV_NAME, E.CONTENT AS RET_STATUS, -----------BAODNQ 15/3/2022 Lấy thông tin xuất excel C.CONTENT AS RET_TYPE_NAME, --loại BDS UF.CONTENT AS USE_FORM_NAME, -- hình thức sử dụng US.CONTENT AS USE_STATUS_NAME, --tình trạng sử dụng đất CS.CONTENT AS CONST_STATUS_NAME, --tình trạng xây dựng E.CONTENT AS RET_STATUS_NAME, --hiện trạng pháp lý gắn liền vs đất OT.CONTENT AS OWNER_TYPE_NAME -- loại sỡ hữu -- SELECT END FROM RET_MASTER A INNER JOIN CM_AUTH_STATUS B ON B.AUTH_STATUS = A.AUTH_STATUS --INNER JOIN CM_ALLCODE C ON C.CDVAL = A.RET_TYPE AND C.CDNAME = 'RET_TYPE'AND C.CDTYPE = 'RET' INNER JOIN CM_ALLCODE C ON C.CDVAL = A.RET_TYPE AND C.CDNAME = 'RET_TYPE_2'AND C.CDTYPE = 'RET' INNER JOIN CM_ALLCODE E ON E.CDVAL = A.[STATUS] AND E.CDNAME = 'RET_STATUS' AND E.CDTYPE = 'RET' INNER JOIN ASS_MASTER D ON D.ASSET_ID = A.ASSET_ID LEFT JOIN CM_DIVISION G ON G.DIV_ID=D.DIVISION_ID --LEFT JOIN CM_BRANCH BR ON D.BRANCH_CREATE = BR.BRANCH_ID LEFT JOIN CM_BRANCH BR ON D.BRANCH_ID = BR.BRANCH_ID LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = D.DEPT_ID ----------------------BAODNQ 15/3/2022: Lấy thông tin xuất excel----- LEFT JOIN CM_ALLCODE UF ON A.USE_FORM = UF.CDVAL AND UF.CDNAME = 'USE_FORM' AND UF.CDTYPE = 'RET' LEFT JOIN CM_ALLCODE US ON A.USE_STATUS = US.CDVAL AND US.CDNAME = 'USE_STATUS' AND US.CDTYPE = 'RET' LEFT JOIN CM_ALLCODE CS ON A.CONST_STATUS = CS.CDVAL AND CS.CDNAME = 'CONST_STATUS' AND CS.CDTYPE = 'RET' LEFT JOIN CM_ALLCODE OT ON A.OWNER_TYPE = OT.CDVAL AND OT.CDNAME = 'OWNER_TYPE' AND OT.CDTYPE = 'RET' WHERE 1 = 1 AND (A.RET_ID LIKE '%' + @p_RET_ID + '%' OR @p_RET_ID IS NULL OR @p_RET_ID = '') AND (A.ASSET_ID LIKE '%' + @p_ASSET_ID + '%' OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '') AND (A.ASSET_CODE LIKE '%' + @P_ASSET_CODE + '%' OR @P_ASSET_CODE IS NULL OR @P_ASSET_CODE = '') AND (A.OWNER LIKE '%' + @P_OWNER + '%' OR @P_OWNER IS NULL OR @P_OWNER = '') AND (A.LENGTH = @p_LENGTH OR @p_LENGTH IS NULL) AND (A.WIDTH = @p_WIDTH OR @p_WIDTH IS NULL) AND (A.CURRENT_STATE LIKE '%' + @p_CURRENT_STATE + '%' OR @p_CURRENT_STATE IS NULL OR @p_CURRENT_STATE = '') AND (A.RET_TYPE LIKE '%' + @p_RET_TYPE + '%' OR @p_RET_TYPE IS NULL OR @p_RET_TYPE = '') AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = '') AND (A.LAND_SQUARE = @p_LAND_SQUARE OR @p_LAND_SQUARE IS NULL) AND (A.CONSTRUCT_SQUARE = @p_CONSTRUCT_SQUARE OR @p_CONSTRUCT_SQUARE IS NULL) AND (A.TOTAL_SQUARE = @p_TOTAL_SQUARE OR @p_TOTAL_SQUARE IS NULL) AND (A.BOUNDARY LIKE '%' + @p_BOUNDARY + '%' OR @p_BOUNDARY IS NULL OR @p_BOUNDARY = '') AND (A.HOUSEDES LIKE '%' + @p_HOUSEDES + '%' OR @p_HOUSEDES IS NULL OR @p_HOUSEDES = '') AND (A.PURPOSE_IN_USE LIKE '%' + @p_PURPOSE_IN_USE + '%' OR @p_PURPOSE_IN_USE IS NULL OR @p_PURPOSE_IN_USE = '') AND (A.W_USE_CON LIKE '%' + @P_W_USE_CON + '%' OR @P_W_USE_CON IS NULL OR @P_W_USE_CON = '') AND (A.USE_STATUS LIKE '%' + @p_USE_STATUS + '%' OR @p_USE_STATUS IS NULL OR @p_USE_STATUS = '') AND (A.CONST_STATUS LIKE '%' + @p_CONST_STATUS + '%' OR @p_CONST_STATUS IS NULL OR @p_CONST_STATUS = '') AND (A.OWNER_TYPE LIKE '%' + @p_OWNER_TYPE + '%' OR @p_OWNER_TYPE IS NULL OR @p_OWNER_TYPE = '') AND (A.USE_PERIOD = @p_USE_PERIOD OR @p_USE_PERIOD IS NULL) AND (A.PERSON_HOLDER LIKE '%' + @p_PERSON_HOLDER + '%' OR @p_PERSON_HOLDER IS NULL OR @p_PERSON_HOLDER = '') AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '') AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '') AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '') AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '') AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '') AND (A.RECORD_STATUS = '1') AND (G.DIV_ID LIKE '%' + @P_DIV_ID + '%' OR @P_DIV_ID = '' OR @P_DIV_ID IS NULL) AND (G.DIV_CODE LIKE '%' + @P_DIV_CODE + '%' OR @P_DIV_CODE = '' OR @P_DIV_CODE IS NULL) AND (D.BRANCH_CREATE = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') -------BAODNQ 16/2/2022: Thêm điều kiện search------- --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 ( -- ((SELECT ROLE_NAME FROM @t_USER_LOGIN_ROLE_TABLE) IN('GDDV','PGD', 'TP', 'PP','TPGD','PPGD', 'TBP')) --- user 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 = D.BRANCH_CREATE AND BRANCH_TYPE = 'HS') AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) = (SELECT 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 = D.BRANCH_CREATE AND BRANCH_TYPE = 'HS') AND D.BRANCH_CREATE = (SELECT 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) ) ) ) -- PAGING END END -- PAGING