SET QUOTED_IDENTIFIER ON SET ANSI_NULLS ON GO ALTER PROCEDURE [dbo].[MW_OUT_Search] @p_TRN_Date VARCHAR(20) =NULL, @p_TRN_TIME VARCHAR(50) =NULL, @p_BRN_ID VARCHAR(15) =NULL, @p_DEPT_ID VARCHAR(15) =NULL, @p_QTY VARCHAR(20)=NULL, @p_PRICE VARCHAR(25) =NULL, @p_TOTAL_AMT NUMERIC(18,2)=NULL, @p_NOTES NVARCHAR(1000) =NULL, @p_OUT_DESC NVARCHAR(500) =NULL, @p_AUTH_STATUS VARCHAR(1) =NULL, @p_MAKER_ID VARCHAR(15) =NULL, @p_CREATE_DT varchar(25)=NULL, @p_CHECKER_ID VARCHAR(15) =NULL, @p_APPROVE_DT varchar(25)=NULL, @p_KT_AUTH_STATUS VARCHAR(1) =NULL, @p_KT_MAKER_ID VARCHAR(15) =NULL, @p_KT_CREATE_DT varchar(25)=NULL, @p_KT_CHECKER_ID VARCHAR(15) =NULL, @p_KT_APPROVE_DT varchar(25)=NULL, @p_RECORD_STATUS VARCHAR(1) =NULL, @p_MAKER_LOGIN VARCHAR(15) =NULL, @p_LEVEL VARCHAR(50) ='UNIT', @p_CORE_NOTE NVARCHAR(500) =NULL, @p_FR_BUY_DATE VARCHAR(10) =NULL, --Tu ngay nhap @p_TO_BUY_DATE VARCHAR(10) =NULL, @p_KT_IS_DO VARCHAR(1) =NULL, @p_TOP INT=NULL, @p_BRANCH_CREATE VARCHAR(15) =NULL,@p_WARE_HOUSE VARCHAR(15) = NULL,@p_OUT_CODE NVARCHAR(30) = NULL, @p_TYPE_SEARCH NVARCHAR(30) = NULL,@p_IS_CONFIRM VARCHAR(2) = NULL AS SET NOCOUNT ON; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED BEGIN -- PAGING DECLARE @MENU_PERMISSION NVARCHAR(500) = 'Pages.Administration.MaterialOutHCQT'--permission chức năng call store IF(@p_TYPE_SEARCH = 'KT') BEGIN SET @MENU_PERMISSION = 'Pages.Administration.MaterialOutKT' END IF(@p_TYPE_SEARCH = 'XN') BEGIN SET @MENU_PERMISSION = 'Pages.Administration.MaterialOutConfirm' END DECLARE @tmp TABLE(BRANCH_ID VARCHAR(15)) INSERT INTO @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_CREATE) DECLARE @BRANCH_LOGIN VARCHAR(20), @DEP_LOGIN VARCHAR(20) SELECT TOP 1 @BRANCH_LOGIN = TLSUBBRID, @DEP_LOGIN = DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_LOGIN IF(@p_TOP IS NULL OR @p_TOP='' OR @p_TOP=0) -- PAGING BEGIN SELECT A.*, B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AS KT_STATUS, TL.TLFullName EMP_NAME, TL1.TLFullName APPROVE_NAME, TL2.TLFullName KT_EMP_NAME, TL3.TLFullName KT_APPROVE_NAME, BR.BRANCH_ID AS FRM_BRANCH_ID, DP.DEP_ID AS FRM_DEP_ID, BR.BRANCH_NAME FRM_BRANCH_NAME, DP.DEP_NAME FRM_DEP_NAME, AL.CONTENT WARE_HOUSE_NAME, BRC.BRANCH_CODE BRANCH_CODE_CR, BRC.BRANCH_NAME BRANCH_NAME_CR -- SELECT END FROM MW_OUT A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN CM_AUTH_STATUS C ON A.KT_AUTH_STATUS=C.AUTH_STATUS LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME LEFT JOIN TL_USER TL2 ON A.KT_MAKER_ID=TL2.TLNANME LEFT JOIN TL_USER TL3 ON A.KT_CHECKER_ID=TL3.TLNANME LEFT JOIN dbo.CM_BRANCH BR ON A.BRN_ID=BR.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEPT_ID LEFT JOIN CM_ALLCODE AL ON A.WARE_HOUSE = AL.CDVAL AND AL.CDNAME='WARE_HOUSE_IN' LEFT JOIN CM_BRANCH BRC ON A.BRANCH_CREATE = BRC.BRANCH_ID WHERE 1=1 AND(A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL) AND(A.KT_AUTH_STATUS=@p_KT_AUTH_STATUS OR @p_KT_AUTH_STATUS='' OR @p_KT_AUTH_STATUS IS NULL) AND(CONVERT(DATE, A.TRN_Date, 103)>=CONVERT(DATE, @p_FR_BUY_DATE, 103)OR @p_FR_BUY_DATE IS NULL OR @p_FR_BUY_DATE='') AND(CONVERT(DATE, A.TRN_Date, 103)<=CONVERT(DATE, @p_TO_BUY_DATE, 103)OR @p_TO_BUY_DATE IS NULL OR @p_TO_BUY_DATE='') AND(((A.KT_MAKER_ID IS NOT NULL AND @p_KT_IS_DO='Y'AND NOT EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF WHERE A.OUT_ID = CF.OUT_ID AND ISNULL(CONFIRM_STATUS,'N') = 'N') ) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat OR((A.KT_MAKER_ID IS NULL AND @p_KT_IS_DO='N'AND NOT EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF WHERE A.OUT_ID = CF.OUT_ID AND ISNULL(CONFIRM_STATUS,'N') = 'N') ))OR ((@p_KT_IS_DO IS NULL OR @p_KT_IS_DO='') AND ((@p_TYPE_SEARCH = 'KT' AND NOT EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF WHERE A.OUT_ID = CF.OUT_ID AND ISNULL(CONFIRM_STATUS,'N') = 'N')) OR @p_TYPE_SEARCH <> 'KT'))) AND ((A.AUTH_STATUS = 'A' AND @p_IS_CONFIRM = 'N' AND EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF WHERE A.OUT_ID = CF.OUT_ID AND ((CF.BRANCH_ID = @BRANCH_LOGIN AND CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = @DEP_LOGIN) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = @BRANCH_LOGIN)) AND CF.CONFIRM_STATUS = 'N' )) OR A.AUTH_STATUS = 'A' AND @p_IS_CONFIRM = 'Y' AND EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF WHERE A.OUT_ID = CF.OUT_ID AND ((CF.BRANCH_ID = @BRANCH_LOGIN AND CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = @DEP_LOGIN) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = @BRANCH_LOGIN)) AND CF.CONFIRM_STATUS = 'Y' )OR @p_IS_CONFIRM IS NULL OR @p_IS_CONFIRM = '') AND ( (@p_LEVEL='ALL' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp)) OR((@p_LEVEL='UNIT' AND (A.BRANCH_CREATE=@p_BRANCH_CREATE OR (@p_TYPE_SEARCH = 'XN' AND EXISTS ( SELECT 1 FROM dbo.MW_OUT_CONF CF CROSS APPLY dbo.FN_GET_USER_BY_ROLE('GDDV,TPGD', CF.BRANCH_ID, CF.DEP_ID, @MENU_PERMISSION) RL WHERE ((CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = RL.DEP_ID) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = RL.BRANCH_ID)) AND RL.TLNANME = @p_MAKER_LOGIN ))))) OR @p_BRANCH_CREATE = '' OR @p_BRANCH_CREATE IS NULL OR(@BRANCH_LOGIN = 'DV0001' AND @DEP_LOGIN = 'DEP000000000022') --- NANG CAP GIAI DOAN 3: Them xu ly UY QUYEN KIEM NHIEM OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE('GDDV', A.BRANCH_CREATE, A.DEPT_ID, @MENU_PERMISSION) US WHERE US.TLNANME = @p_MAKER_LOGIN) OR (@p_TYPE_SEARCH = 'XN' AND EXISTS ( SELECT 1 FROM dbo.MW_OUT_CONF CF CROSS APPLY dbo.FN_GET_USER_BY_ROLE('GDDV,TPGD', CF.BRANCH_ID, CF.DEP_ID, @MENU_PERMISSION) RL WHERE ((CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = RL.DEP_ID) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = RL.BRANCH_ID)) AND RL.TLNANME = @p_MAKER_LOGIN ) ) ) ) --AND(A.OUT_ID=@p_OUT_ID OR @p_OUT_ID='' OR @p_OUT_ID IS NULL) AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL) AND(A.WARE_HOUSE=@p_WARE_HOUSE OR @p_WARE_HOUSE='' OR @p_WARE_HOUSE IS NULL) AND(A.OUT_CODE LIKE N'%'+@p_OUT_CODE+'%' OR @p_OUT_CODE IS NULL OR @p_OUT_CODE='') AND (A.RECORD_STATUS='1') ORDER BY A.CREATE_DT DESC -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT, @p_TOP))A.*, B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AS KT_STATUS, TL.TLFullName EMP_NAME, TL1.TLFullName APPROVE_NAME, TL2.TLFullName KT_EMP_NAME, TL3.TLFullName KT_APPROVE_NAME, BR.BRANCH_ID AS FRM_BRANCH_ID, DP.DEP_ID AS FRM_DEP_ID, BR.BRANCH_NAME FRM_BRANCH_NAME, DP.DEP_NAME FRM_DEP_NAME,AL.CONTENT WARE_HOUSE_NAME, BRC.BRANCH_CODE BRANCH_CODE_CR, BRC.BRANCH_NAME BRANCH_NAME_CR -- SELECT END FROM MW_OUT A LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS LEFT JOIN CM_AUTH_STATUS C ON A.KT_AUTH_STATUS=C.AUTH_STATUS LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME LEFT JOIN TL_USER TL2 ON A.KT_MAKER_ID=TL2.TLNANME LEFT JOIN TL_USER TL3 ON A.KT_CHECKER_ID=TL3.TLNANME LEFT JOIN dbo.CM_BRANCH BR ON A.BRN_ID=BR.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEPT_ID LEFT JOIN CM_ALLCODE AL ON A.WARE_HOUSE = AL.CDVAL AND AL.CDNAME='WARE_HOUSE_IN' LEFT JOIN CM_BRANCH BRC ON A.BRANCH_CREATE = BRC.BRANCH_ID WHERE 1=1 AND(A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL) AND(A.KT_AUTH_STATUS=@p_KT_AUTH_STATUS OR @p_KT_AUTH_STATUS='' OR @p_KT_AUTH_STATUS IS NULL) AND(CONVERT(DATE, A.TRN_Date, 103)>=CONVERT(DATE, @p_FR_BUY_DATE, 103)OR @p_FR_BUY_DATE IS NULL OR @p_FR_BUY_DATE='') AND(CONVERT(DATE, A.TRN_Date, 103)<=CONVERT(DATE, @p_TO_BUY_DATE, 103)OR @p_TO_BUY_DATE IS NULL OR @p_TO_BUY_DATE='') AND(((A.KT_MAKER_ID IS NOT NULL AND @p_KT_IS_DO='Y'AND NOT EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF WHERE A.OUT_ID = CF.OUT_ID AND ISNULL(CONFIRM_STATUS,'N') = 'N') ) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat OR((A.KT_MAKER_ID IS NULL AND @p_KT_IS_DO='N'AND NOT EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF WHERE A.OUT_ID = CF.OUT_ID AND ISNULL(CONFIRM_STATUS,'N') = 'N') ))OR ((@p_KT_IS_DO IS NULL OR @p_KT_IS_DO='') AND ((@p_TYPE_SEARCH = 'KT' AND NOT EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF WHERE A.OUT_ID = CF.OUT_ID AND ISNULL(CONFIRM_STATUS,'N') = 'N')) OR @p_TYPE_SEARCH <> 'KT'))) AND ((A.AUTH_STATUS = 'A' AND @p_IS_CONFIRM = 'N' AND EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF WHERE A.OUT_ID = CF.OUT_ID AND ((CF.BRANCH_ID = @BRANCH_LOGIN AND CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = @DEP_LOGIN) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = @BRANCH_LOGIN)) AND CF.CONFIRM_STATUS = 'N' )) OR A.AUTH_STATUS = 'A' AND @p_IS_CONFIRM = 'Y' AND EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF WHERE A.OUT_ID = CF.OUT_ID AND ((CF.BRANCH_ID = @BRANCH_LOGIN AND CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = @DEP_LOGIN) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = @BRANCH_LOGIN)) AND CF.CONFIRM_STATUS = 'Y' )OR @p_IS_CONFIRM IS NULL OR @p_IS_CONFIRM = '') AND ( (@p_LEVEL='ALL' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp)) OR((@p_LEVEL='UNIT' AND (A.BRANCH_CREATE=@p_BRANCH_CREATE OR (@p_TYPE_SEARCH = 'XN' AND EXISTS ( SELECT 1 FROM dbo.MW_OUT_CONF CF CROSS APPLY dbo.FN_GET_USER_BY_ROLE('GDDV,TPGD', CF.BRANCH_ID, CF.DEP_ID, @MENU_PERMISSION) RL WHERE ((CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = RL.DEP_ID) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = RL.BRANCH_ID)) AND RL.TLNANME = @p_MAKER_LOGIN ))))) OR @p_BRANCH_CREATE = '' OR @p_BRANCH_CREATE IS NULL OR(@BRANCH_LOGIN = 'DV0001' AND @DEP_LOGIN = 'DEP000000000022') --- NANG CAP GIAI DOAN 3: Them xu ly UY QUYEN KIEM NHIEM OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE('GDDV', A.BRANCH_CREATE, A.DEPT_ID, @MENU_PERMISSION) US WHERE US.TLNANME = @p_MAKER_LOGIN) OR (@p_TYPE_SEARCH = 'XN' AND EXISTS ( SELECT 1 FROM dbo.MW_OUT_CONF CF CROSS APPLY dbo.FN_GET_USER_BY_ROLE('GDDV,TPGD', CF.BRANCH_ID, CF.DEP_ID, @MENU_PERMISSION) RL WHERE ((CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = RL.DEP_ID) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = RL.BRANCH_ID)) AND RL.TLNANME = @p_MAKER_LOGIN ) ) ) ) --AND(A.OUT_ID=@p_OUT_ID OR @p_OUT_ID='' OR @p_OUT_ID IS NULL) AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL) AND(A.WARE_HOUSE=@p_WARE_HOUSE OR @p_WARE_HOUSE='' OR @p_WARE_HOUSE IS NULL) AND(A.OUT_CODE LIKE N'%'+@p_OUT_CODE+'%' OR @p_OUT_CODE IS NULL OR @p_OUT_CODE='') AND (A.RECORD_STATUS='1') ORDER BY A.CREATE_DT DESC -- PAGING END END -- PAGING GO