Project

General

Profile

1.0.18.03.2025 BVBANK KIEM TRA NGAN SACH.txt

Luc Tran Van, 03/18/2025 04:50 PM

 
1
SET QUOTED_IDENTIFIER ON
2
SET ANSI_NULLS ON
3
GO
4
ALTER   PROCEDURE [dbo].[MW_OUT_Search] @p_TRN_Date VARCHAR(20) =NULL, @p_TRN_TIME VARCHAR(50) =NULL, @p_BRN_ID VARCHAR(15) =NULL,
5
    @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,
6
    @p_OUT_DESC NVARCHAR(500) =NULL, @p_AUTH_STATUS VARCHAR(1) =NULL, @p_MAKER_ID VARCHAR(15) =NULL, @p_CREATE_DT varchar(25)=NULL,
7
    @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,
8
    @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,
9
    @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
10
    @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,
11
	@p_TYPE_SEARCH NVARCHAR(30) = NULL,@p_IS_CONFIRM VARCHAR(2) = NULL
12
AS 
13
SET NOCOUNT ON;
14
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
15
BEGIN -- PAGING
16
	DECLARE @MENU_PERMISSION NVARCHAR(500) = 'Pages.Administration.MaterialOutHCQT'--permission chức năng call store
17
	IF(@p_TYPE_SEARCH = 'KT')
18
	BEGIN
19
		SET @MENU_PERMISSION = 'Pages.Administration.MaterialOutKT'
20
	END
21
  IF(@p_TYPE_SEARCH = 'XN')
22
  BEGIN
23
  	SET @MENU_PERMISSION = 'Pages.Administration.MaterialOutConfirm'
24
  END
25
	DECLARE @tmp TABLE(BRANCH_ID VARCHAR(15))
26
	INSERT INTO @tmp
27
	SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_CREATE)
28

    
29
	DECLARE @BRANCH_LOGIN VARCHAR(20), @DEP_LOGIN VARCHAR(20)
30
	SELECT TOP 1 @BRANCH_LOGIN = TLSUBBRID, @DEP_LOGIN = DEP_ID
31
	FROM TL_USER 
32
	WHERE TLNANME = @p_MAKER_LOGIN
33

    
34
IF(@p_TOP IS NULL OR @p_TOP='' OR @p_TOP=0)
35
-- PAGING BEGIN
36
    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,
37
        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,
38
			DP.DEP_NAME FRM_DEP_NAME, AL.CONTENT WARE_HOUSE_NAME, BRC.BRANCH_CODE BRANCH_CODE_CR, BRC.BRANCH_NAME BRANCH_NAME_CR
39
-- SELECT END
40
    FROM MW_OUT A
41
        LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
42
        LEFT JOIN CM_AUTH_STATUS C ON A.KT_AUTH_STATUS=C.AUTH_STATUS
43
        LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
44
        LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
45
        LEFT JOIN TL_USER TL2 ON A.KT_MAKER_ID=TL2.TLNANME
46
        LEFT JOIN TL_USER TL3 ON A.KT_CHECKER_ID=TL3.TLNANME
47
        LEFT JOIN dbo.CM_BRANCH BR ON A.BRN_ID=BR.BRANCH_ID
48
        LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEPT_ID
49
    	LEFT JOIN CM_ALLCODE AL ON A.WARE_HOUSE = AL.CDVAL AND AL.CDNAME='WARE_HOUSE_IN'
50
    	LEFT JOIN CM_BRANCH BRC ON A.BRANCH_CREATE = BRC.BRANCH_ID
51
    WHERE 1=1 
52
		AND(A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)
53
        AND(A.KT_AUTH_STATUS=@p_KT_AUTH_STATUS OR @p_KT_AUTH_STATUS='' OR @p_KT_AUTH_STATUS IS NULL)
54
        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='')
55
        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='')
56
        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')
57
		) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
58
            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')
59
			))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')))
60
			AND ((A.AUTH_STATUS = 'A' AND @p_IS_CONFIRM = 'N' AND EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF 
61
														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' ))
62
				OR A.AUTH_STATUS = 'A' AND @p_IS_CONFIRM = 'Y' AND EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF 
63
														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 = '')
64
        AND	(	(@p_LEVEL='ALL' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp))
65
				OR((@p_LEVEL='UNIT' AND (A.BRANCH_CREATE=@p_BRANCH_CREATE OR (@p_TYPE_SEARCH = 'XN' AND EXISTS (
66
											SELECT 1
67
											FROM dbo.MW_OUT_CONF CF
68
											CROSS APPLY dbo.FN_GET_USER_BY_ROLE('GDDV,TPGD', CF.BRANCH_ID, CF.DEP_ID, @MENU_PERMISSION) RL
69
											WHERE ((CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = RL.DEP_ID) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = RL.BRANCH_ID))
70
											  AND RL.TLNANME = @p_MAKER_LOGIN
71
										)))))
72
				OR @p_BRANCH_CREATE = ''
73
				OR @p_BRANCH_CREATE IS NULL
74
				OR(@BRANCH_LOGIN = 'DV0001' AND @DEP_LOGIN = 'DEP000000000022')
75
                --- NANG CAP GIAI DOAN 3: Them xu ly UY QUYEN KIEM NHIEM
76
                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)
77
				OR (@p_TYPE_SEARCH = 'XN' AND  EXISTS (
78
											SELECT 1
79
											FROM dbo.MW_OUT_CONF CF
80
											CROSS APPLY dbo.FN_GET_USER_BY_ROLE('GDDV,TPGD', CF.BRANCH_ID, CF.DEP_ID, @MENU_PERMISSION) RL
81
											WHERE ((CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = RL.DEP_ID) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = RL.BRANCH_ID))
82
											  AND RL.TLNANME = @p_MAKER_LOGIN
83
										)
84
										)
85
										)
86
			)
87
		--AND(A.OUT_ID=@p_OUT_ID OR @p_OUT_ID='' OR @p_OUT_ID IS NULL)
88
		AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
89
		AND(A.WARE_HOUSE=@p_WARE_HOUSE OR @p_WARE_HOUSE='' OR @p_WARE_HOUSE IS NULL)
90
		AND(A.OUT_CODE LIKE N'%'+@p_OUT_CODE+'%' OR @p_OUT_CODE IS NULL OR @p_OUT_CODE='')
91
			AND (A.RECORD_STATUS='1')
92
	ORDER BY A.CREATE_DT DESC
93
-- PAGING END
94
ELSE
95
-- PAGING BEGIN
96
	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,
97
		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,
98
		DP.DEP_NAME FRM_DEP_NAME,AL.CONTENT WARE_HOUSE_NAME, BRC.BRANCH_CODE BRANCH_CODE_CR, BRC.BRANCH_NAME BRANCH_NAME_CR
99
-- SELECT END
100
	FROM MW_OUT A
101
		LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
102
		LEFT JOIN CM_AUTH_STATUS C ON A.KT_AUTH_STATUS=C.AUTH_STATUS
103
		LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
104
		LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
105
		LEFT JOIN TL_USER TL2 ON A.KT_MAKER_ID=TL2.TLNANME
106
		LEFT JOIN TL_USER TL3 ON A.KT_CHECKER_ID=TL3.TLNANME
107
		LEFT JOIN dbo.CM_BRANCH BR ON A.BRN_ID=BR.BRANCH_ID
108
		LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEPT_ID
109
		LEFT JOIN CM_ALLCODE AL ON A.WARE_HOUSE = AL.CDVAL AND AL.CDNAME='WARE_HOUSE_IN'
110
		LEFT JOIN CM_BRANCH BRC ON A.BRANCH_CREATE = BRC.BRANCH_ID
111
		
112
	WHERE 1=1
113
		AND(A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)
114
        AND(A.KT_AUTH_STATUS=@p_KT_AUTH_STATUS OR @p_KT_AUTH_STATUS='' OR @p_KT_AUTH_STATUS IS NULL)
115
        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='')
116
        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='')
117
        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')
118
		) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
119
            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')
120
			))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')))
121
			AND ((A.AUTH_STATUS = 'A' AND @p_IS_CONFIRM = 'N' AND EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF 
122
														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' ))
123
				OR A.AUTH_STATUS = 'A' AND @p_IS_CONFIRM = 'Y' AND EXISTS(SELECT 1 FROM dbo.MW_OUT_CONF CF 
124
														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 = '')
125
        AND	(	(@p_LEVEL='ALL' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp))
126
				OR((@p_LEVEL='UNIT' AND (A.BRANCH_CREATE=@p_BRANCH_CREATE OR (@p_TYPE_SEARCH = 'XN' AND EXISTS (
127
											SELECT 1
128
											FROM dbo.MW_OUT_CONF CF
129
											CROSS APPLY dbo.FN_GET_USER_BY_ROLE('GDDV,TPGD', CF.BRANCH_ID, CF.DEP_ID, @MENU_PERMISSION) RL
130
											WHERE ((CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = RL.DEP_ID) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = RL.BRANCH_ID))
131
											  AND RL.TLNANME = @p_MAKER_LOGIN
132
										)))))
133
				OR @p_BRANCH_CREATE = ''
134
				OR @p_BRANCH_CREATE IS NULL
135
				OR(@BRANCH_LOGIN = 'DV0001' AND @DEP_LOGIN = 'DEP000000000022')
136
                --- NANG CAP GIAI DOAN 3: Them xu ly UY QUYEN KIEM NHIEM
137
                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)
138
				OR (@p_TYPE_SEARCH = 'XN' AND  EXISTS (
139
											SELECT 1
140
											FROM dbo.MW_OUT_CONF CF
141
											CROSS APPLY dbo.FN_GET_USER_BY_ROLE('GDDV,TPGD', CF.BRANCH_ID, CF.DEP_ID, @MENU_PERMISSION) RL
142
											WHERE ((CF.BRANCH_ID = 'DV0001' AND CF.DEP_ID = RL.DEP_ID) OR (CF.BRANCH_ID <> 'DV0001' AND CF.BRANCH_ID = RL.BRANCH_ID))
143
											  AND RL.TLNANME = @p_MAKER_LOGIN
144
										)
145
										)
146
										)
147
			)
148
		--AND(A.OUT_ID=@p_OUT_ID OR @p_OUT_ID='' OR @p_OUT_ID IS NULL)
149
		AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
150
		AND(A.WARE_HOUSE=@p_WARE_HOUSE OR @p_WARE_HOUSE='' OR @p_WARE_HOUSE IS NULL)
151
		AND(A.OUT_CODE LIKE N'%'+@p_OUT_CODE+'%' OR @p_OUT_CODE IS NULL OR @p_OUT_CODE='')
152
			AND (A.RECORD_STATUS='1')
153
	ORDER BY A.CREATE_DT DESC
154
-- PAGING END
155
END -- PAGING
156
GO