ALTER PROCEDURE dbo.CM_BRANCH_DEP_Search_v2 @p_BRANCH_ID varchar(15) = NULL, @p_FATHER_ID varchar(15) = NULL, @p_FATHER_CODE VARCHAR(15) = NULL, @p_BRANCH_CODE varchar(15) = NULL, @p_BRANCH_NAME nvarchar(200) = NULL, @p_REGION_ID varchar(15) = NULL, @P_REGION_CODE VARCHAR(15) = NULL, @p_BRANCH_TYPE varchar(5) = NULL, @p_ADDR nvarchar(200) = NULL, @p_TEL varchar(20) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_TOP INT = NULL, @p_BRANCH_LOGIN varchar(15) = NULL, @p_DEP_NAME NVARCHAR(500)=NULL, @p_DEP_CODE VARCHAR(20) =NULL, @p_DEP_ID VARCHAR(20) = NULL, @p_USER_LOGIN VARCHAR(15) = NULL, @p_TYPE_SEARCH 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 IF @p_TOP = 300 SET @p_TOP = 1000 DECLARE @LOAI_DONVI VARCHAR(20), @DEPT_LOGIN VARCHAR(15) SET @DEPT_LOGIN = (SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME = @p_USER_LOGIN) IF ((SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_LOGIN) <> 'HS') SET @LOAI_DONVI = 'DVKD' ELSE IF (EXISTS(SELECT DM.DVDM_ID FROM dbo.PL_COSTCENTER_DT DT LEFT JOIN PL_COSTCENTER CO ON DT.COST_ID = CO.COST_ID LEFT JOIN dbo.CM_DEPARTMENT DE ON DE.DEP_ID = DT.DEP_ID LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID = CO.DVDM_ID WHERE DM.IS_DVDM = 1 AND DT.BRANCH_ID = @p_BRANCH_LOGIN AND DT.DEP_ID = @DEPT_LOGIN)) SET @LOAI_DONVI = 'DVDM' ELSE SET @LOAI_DONVI = 'HS' IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0) -- PAGING BEGIN SELECT A.*, B.BRANCH_CODE AS F_BRANCH_CODE, B.BRANCH_NAME AS F_BRANCH_NAME,CD.DEP_CODE,CD.DEP_NAME,CD.DEP_ID -- SELECT END FROM CM_BRANCH A LEFT JOIN CM_BRANCH B ON A.FATHER_ID = B.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.BRANCH_ID=A.BRANCH_ID AND A.BRANCH_TYPE='HS' WHERE 1 = 1 AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') -- PHONGNT 17/10/22 THEM DIEU KIEN TIM KIEM PHONGBAN AND (CD.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') -- END AND (A.FATHER_ID LIKE '%' + @p_FATHER_ID + '%' OR @p_FATHER_ID IS NULL OR @p_FATHER_ID = '') AND (B.BRANCH_CODE LIKE '%' + @p_FATHER_CODE + '%' OR @p_FATHER_CODE IS NULL OR @p_FATHER_CODE = '') AND (A.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE + '%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE = '' OR CD.DEP_CODE LIKE '%' +@p_BRANCH_CODE +'%') AND (A.BRANCH_NAME LIKE '%' + @p_BRANCH_NAME + '%' OR @p_BRANCH_NAME IS NULL OR @p_BRANCH_NAME = '' OR CD.DEP_NAME LIKE '%' + @p_BRANCH_NAME + '%' OR CD.DEP_CODE LIKE '%' + @p_BRANCH_NAME + '%') AND (A.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '') AND (A.BRANCH_TYPE LIKE '%' + @p_BRANCH_TYPE + '%' OR @p_BRANCH_TYPE IS NULL OR @p_BRANCH_TYPE = '') AND (A.ADDR LIKE '%' + @p_ADDR + '%' OR @p_ADDR IS NULL OR @p_ADDR = '') AND (A.TEL LIKE '%' + @p_TEL + '%' OR @p_TEL IS NULL OR @p_TEL = '') 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.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.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') 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 ( (@LOAI_DONVI = 'DVKD' AND A.BRANCH_ID = @p_BRANCH_LOGIN) OR (@LOAI_DONVI = 'DVDM') OR (@LOAI_DONVI = 'HS' AND ((@p_TYPE_SEARCH = 'FROM' AND A.BRANCH_TYPE = 'HS') OR (@p_TYPE_SEARCH = 'TO' AND A.BRANCH_ID = @p_BRANCH_LOGIN AND (CD.DEP_ID = @DEPT_LOGIN OR CD.DEP_ID = @p_DEP_ID)))) ) ORDER BY A.BRANCH_CODE -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@P_TOP))A.*, B.BRANCH_CODE AS F_BRANCH_CODE, B.BRANCH_NAME AS F_BRANCH_NAME,CD.DEP_CODE,CD.DEP_NAME,CD.DEP_ID -- SELECT END FROM CM_BRANCH A LEFT JOIN CM_BRANCH B ON A.FATHER_ID = B.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.BRANCH_ID=A.BRANCH_ID AND A.BRANCH_TYPE='HS' WHERE 1 = 1 AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') -- PHONGNT 17/10/22 THEM DIEU KIEN TIM KIEM PHONGBAN AND (CD.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '') -- END AND (A.FATHER_ID LIKE '%' + @p_FATHER_ID + '%' OR @p_FATHER_ID IS NULL OR @p_FATHER_ID = '') AND (A.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE + '%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE = '' OR CD.DEP_CODE LIKE '%' +@p_BRANCH_CODE +'%') AND (B.BRANCH_CODE LIKE '%' + @p_FATHER_CODE + '%' OR @p_FATHER_CODE IS NULL OR @p_FATHER_CODE = '') AND (A.BRANCH_NAME LIKE '%' + @p_BRANCH_NAME + '%' OR @p_BRANCH_NAME IS NULL OR @p_BRANCH_NAME = '' OR CD.DEP_NAME LIKE '%' + @p_BRANCH_NAME + '%' OR CD.DEP_CODE LIKE '%' + @p_BRANCH_NAME + '%') AND (A.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '') AND (A.BRANCH_TYPE LIKE '%' + @p_BRANCH_TYPE + '%' OR @p_BRANCH_TYPE IS NULL OR @p_BRANCH_TYPE = '') AND (A.ADDR LIKE '%' + @p_ADDR + '%' OR @p_ADDR IS NULL OR @p_ADDR = '') AND (A.TEL LIKE '%' + @p_TEL + '%' OR @p_TEL IS NULL OR @p_TEL = '') 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.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.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') 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 ( (@LOAI_DONVI = 'DVKD' AND A.BRANCH_ID = @p_BRANCH_LOGIN) OR (@LOAI_DONVI = 'DVDM') OR (@LOAI_DONVI = 'HS' AND ((@p_TYPE_SEARCH = 'FROM' AND A.BRANCH_TYPE = 'HS') OR (@p_TYPE_SEARCH = 'TO' AND A.BRANCH_ID = @p_BRANCH_LOGIN AND (CD.DEP_ID = @DEPT_LOGIN OR CD.DEP_ID = @p_DEP_ID)))) ) ORDER BY A.BRANCH_CODE -- PAGING END END -- PAGING