Project

General

Profile

ASS_INVENTORY_MASTER_Search.txt

Luc Tran Van, 01/17/2023 02:32 PM

 
1

    
2
ALTER PROCEDURE dbo.ASS_INVENTORY_MASTER_Search
3
@p_INVENT_ID	varchar(15)  = NULL,
4
@p_INVENTORY_DT	VARCHAR(20) = NULL,
5
@p_TERM	nvarchar(20)  = NULL,
6
@p_BRANCH_ID	varchar(15)  = NULL,
7
@p_DEPT_ID	varchar(15)  = NULL,
8
@p_NOTES	NVARCHAR(1000)  = NULL,
9
@p_RECORD_STATUS	varchar(1)  = NULL,
10
@p_AUTH_STATUS	varchar(1)  = NULL,
11
@p_AUTH_STATUS_DVKD	varchar(1)  = NULL,
12
@p_MAKER_ID	varchar(15)  = NULL,
13
@p_CREATE_DT	VARCHAR(20) = NULL,
14
@p_CHECKER_ID	varchar(15)  = NULL,
15
@p_APPROVE_DT	VARCHAR(20) = NULL,
16
@p_TOP	INT = 10,
17
@p_BRANCH_CREATE	VARCHAR(15) = NULL,
18
@p_LEVEL	VARCHAR(50) = 'UNIT',
19
@p_USER_LOGIN	VARCHAR(20) = NULL,
20
@p_TYPE_SEARCH	VARCHAR(20) = NULL,
21
@p_AUTH_STATUS_CONFIRM VARCHAR(1) = NULL,
22
@p_FROMDATE VARCHAR(20) = NULL,
23
@p_TODATE VARCHAR(20) = NULL
24
AS
25
	--Validation is here
26
/*
27
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
28
	IF ( [NOT] EXISTS ( SELECT * FROM [TABLE] WHERE  [CONDITION] ))
29
		 SET @ERRORSYS = ''
30
	IF @ERRORSYS <> '' 
31
	BEGIN
32
		SELECT ErrorCode Result, ''  CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
33
		RETURN '0'
34
	END */
35
BEGIN -- PAGING
36
declare @tmp table(BRANCH_ID varchar(15))
37
	insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_CREATE)
38

    
39
	IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
40
	-- PAGING BEGIN
41
	SELECT A.INVENT_ID ,A.INVENTORY_DT ,A.TERM,A.BRANCH_ID,A.NOTES,A.RECORD_STATUS,A.AUTH_STATUS,A.MAKER_ID,A.CREATE_DT,A.CHECKER_ID ,A.APPROVE_DT,A.BRANCH_CREATE,A.DEPT_ID,DE.DEP_CODE AS DEPT_CODE,DE.DEP_NAME AS DEPT_NAME,A.NQL,A.DECISION,A.PROM_DT,A.COMMENT,A.PENTITION,A.ISSUED_DATE,A.AUTH_STATUS_DVKD,A.CHECKER_ID_DVKD,A.APPROVE_DT_DVKD,A.SIGN_USER,A.PROCESS_ID,C.BRANCH_CODE, C.BRANCH_NAME, T.TERM_CODE, T.TERM_NAME,D.CONTENT AS AUTH_STATUS_DVKD_NAME,TL.TLFullName AS CHECKER_ID_DVKD_NAME,
42
	CASE 
43
	WHEN EXISTS (SELECT INVENT_ID FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND PARTY_NAME = @p_USER_LOGIN AND IS_DONE = '1')
44
		THEN N'Đã xác nhận'
45
		-- PHONGNT 27/06/22
46
	WHEN @p_TYPE_SEARCH='APPR' AND EXISTS (SELECT 1 FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_DONE = '1')
47
		THEN N'Đã xác nhận'
48
	ELSE N'Chưa xác nhận' END AS CONFIRM_STATUS,
49
	CASE @p_TYPE_SEARCH 
50
		-- END
51
	WHEN 'CF' 
52
		THEN (SELECT CONFIRM_DT FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND PARTY_NAME = @p_USER_LOGIN)
53
	ELSE (SELECT TOP(1) CONFIRM_DT FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_DONE = '1' AND CONFIRM_DT IS NOT NULL) END AS CONFIRM_DT,
54
	(SELECT TLFullName FROM TL_USER WHERE TLNANME = ( SELECT PARTY_NAME FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_MAIN = '1')) AS APPROVE_NAME,
55
	(SELECT tu.TLFullName FROM TL_USER tu WHERE tu.TLNANME = A.SIGN_USER) AS SIGN_USER_NAME,
56
  CASE WHEN A.ASSET_TYPE IS NULL OR A.ASSET_TYPE ='' THEN 'TSCD/CCLD' ELSE A.ASSET_TYPE END AS ASSET_TYPE
57

    
58
	-- SELECT END
59
	FROM ASS_INVENTORY_MASTER A 
60
	LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS 
61
	LEFT JOIN CM_BRANCH C ON C.BRANCH_ID = A.BRANCH_ID
62
	--PHONGNT 27/8/22 Bổ sung phòng ban
63
	LEFT JOIN CM_DEPARTMENT DE ON DE.DEP_ID = A.DEPT_ID
64
	--END
65
	--LEFT JOIN CM_AUTH_STATUS D ON A.AUTH_STATUS_DVKD = D.AUTH_STATUS 
66
	LEFT JOIN CM_ALLCODE D ON (D.CDVAL=A.AUTH_STATUS AND D.CDNAME='ASS_INVENTORY')
67
	LEFT JOIN CM_TERM T ON T.TERM_ID = A.TERM
68
	LEFT JOIN TL_USER TL ON TL.TLNANME = A.CHECKER_ID_DVKD
69
	 WHERE 1 = 1
70
		AND (A.INVENT_ID LIKE '%' + @p_INVENT_ID + '%' OR  @p_INVENT_ID IS NULL OR @p_INVENT_ID = '')
71
		AND (DATEDIFF(DAYOFYEAR,A.INVENTORY_DT,CONVERT(DATETIME, @p_INVENTORY_DT, 103)) = 0 OR  @p_INVENTORY_DT IS NULL OR @p_INVENTORY_DT = '')
72
		AND (A.TERM LIKE '%' + @p_TERM + '%' OR  @p_TERM IS NULL OR @p_TERM = '')
73
		AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
74
		AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
75
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
76
		AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
77

    
78
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
79
		AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
80
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
81
		AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
82
		AND A.RECORD_STATUS = '1'
83
		AND ((@P_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
84
			OR ((@P_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_CREATE) 
85
			OR (@p_BRANCH_CREATE = '' OR @p_BRANCH_CREATE IS NULL)))
86

    
87
		-- GIANT 25/08/2021
88
		AND ((@p_TYPE_SEARCH = 'CF' AND A.AUTH_STATUS = 'U' 
89
					AND EXISTS ((SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_RECIVE_MAIL = 1 
90
						AND ( (@p_AUTH_STATUS_CONFIRM = 'Y' AND IS_DONE = 1) OR (@p_AUTH_STATUS_CONFIRM = 'N' AND IS_DONE = 0) OR (@p_AUTH_STATUS_CONFIRM = '' OR @p_AUTH_STATUS_CONFIRM IS NULL) )
91
					))
92
				OR	(@p_TYPE_SEARCH = 'CF' AND A.AUTH_STATUS = 'A' AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
93
				OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL
94
			))
95
			OR ( 
96
				(@p_TYPE_SEARCH = 'APPR' AND A.AUTH_STATUS = 'U' AND  NOT EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE IS_RECIVE_MAIL = 1 AND IS_DONE = 0 AND INVENT_ID = A.INVENT_ID)
97
					AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
98
				OR	(@p_TYPE_SEARCH = 'APPR' AND A.AUTH_STATUS = 'A' AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
99
				OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL) 
100
			)
101
		)
102
			
103
		AND (A.AUTH_STATUS_DVKD LIKE '%' + @p_AUTH_STATUS_DVKD + '%' OR  @p_AUTH_STATUS_DVKD IS NULL OR @p_AUTH_STATUS_DVKD = '')
104

    
105
		AND (CONVERT(DATE,ISNULL(A.INVENTORY_DT, A.CREATE_DT),103) >=CONVERT(DATE, @p_FROMDATE, 103) OR  @p_FROMDATE IS NULL OR @p_FROMDATE = '')
106
		AND (CONVERT(DATE,ISNULL(A.INVENTORY_DT, A.CREATE_DT),103) <=CONVERT(DATETIME, @p_TODATE, 103) OR  @p_TODATE IS NULL OR @p_TODATE = '')
107

    
108
		-- HUYHT 27/04/2022 Khi trạng thái duyệt là "Nháp", "Từ chối" thì chỉ người tạo tìm thấy phiếu
109
		AND ((A.AUTH_STATUS_DVKD IN ('E','R') AND (A.MAKER_ID = @p_USER_LOGIN OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''))
110
			OR A.AUTH_STATUS_DVKD NOT IN ('E','R'))
111

    
112
		ORDER BY A.CREATE_DT DESC
113
	-- PAGING END
114
	ELSE
115
	-- PAGING BEGIN
116

    
117
	SELECT TOP(CONVERT(INT,@P_TOP))A.INVENT_ID ,A.INVENTORY_DT ,A.TERM,A.BRANCH_ID,A.NOTES,A.RECORD_STATUS,A.AUTH_STATUS,A.MAKER_ID,A.CREATE_DT,A.CHECKER_ID ,A.APPROVE_DT,A.BRANCH_CREATE,A.DEPT_ID,DE.DEP_CODE AS DEPT_CODE,DE.DEP_NAME AS DEPT_NAME,A.NQL,A.DECISION,A.PROM_DT,A.COMMENT,A.PENTITION,A.ISSUED_DATE,A.AUTH_STATUS_DVKD,A.CHECKER_ID_DVKD,A.APPROVE_DT_DVKD,A.SIGN_USER,A.PROCESS_ID,B.AUTH_STATUS_NAME,C.BRANCH_CODE, C.BRANCH_NAME, T.TERM_CODE, T.TERM_NAME,D.CONTENT AS AUTH_STATUS_DVKD_NAME,TL.TLFullName AS CHECKER_ID_DVKD_NAME,
118
	CASE 
119
		WHEN EXISTS (SELECT INVENT_ID FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND PARTY_NAME = @p_USER_LOGIN AND IS_DONE = '1')
120
			THEN N'Đã xác nhận'
121
			-- PHONGNT 27/06/22 Bổ sung màn hình phê duyệt ngày
122
		WHEN @p_TYPE_SEARCH='APPR' AND EXISTS (SELECT CONFIRM_DT FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_DONE = '1')
123
			THEN N'Đã xác nhận'
124
		ELSE N'Chưa xác nhận' END AS CONFIRM_STATUS,
125
	CASE @p_TYPE_SEARCH 
126
		WHEN 'CF' 
127
			THEN (SELECT CONFIRM_DT FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND PARTY_NAME = @p_USER_LOGIN)
128
		ELSE (SELECT TOP(1) CONFIRM_DT FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_DONE = '1' AND CONFIRM_DT IS NOT NULL ORDER BY CONFIRM_DT) END AS CONFIRM_DT,
129
	(SELECT TLFullName FROM TL_USER WHERE TLNANME = ( SELECT PARTY_NAME FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_MAIN = '1')) AS APPROVE_NAME,
130
	(SELECT tu.TLFullName FROM TL_USER tu WHERE tu.TLNANME = A.SIGN_USER) AS SIGN_USER_NAME,
131
  CASE WHEN A.ASSET_TYPE IS NULL OR A.ASSET_TYPE ='' THEN 'TSCD/CCLD' ELSE A.ASSET_TYPE END AS ASSET_TYPE
132
	-- SELECT END
133

    
134
	FROM ASS_INVENTORY_MASTER A 
135
	LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS
136
	--LEFT JOIN CM_AUTH_STATUS D ON A.AUTH_STATUS_DVKD = D.AUTH_STATUS 
137
	--PHONGNT 27/8/22 Bổ sung phòng ban
138
	LEFT JOIN CM_DEPARTMENT DE ON DE.DEP_ID = A.DEPT_ID
139
	--END
140
	LEFT JOIN CM_ALLCODE D ON (D.CDVAL=A.AUTH_STATUS AND D.CDNAME='ASS_INVENTORY')
141
	LEFT JOIN CM_BRANCH C ON C.BRANCH_ID = A.BRANCH_ID 
142
	LEFT JOIN CM_TERM T ON T.TERM_ID = A.TERM
143
	LEFT JOIN TL_USER TL ON TL.TLNANME = A.CHECKER_ID_DVKD
144
	 WHERE 1 = 1
145
		AND (A.INVENT_ID LIKE '%' + @p_INVENT_ID + '%' OR  @p_INVENT_ID IS NULL OR @p_INVENT_ID = '')
146
		AND (DATEDIFF(DAYOFYEAR,A.INVENTORY_DT,CONVERT(DATETIME, @p_INVENTORY_DT, 103)) = 0 OR  @p_INVENTORY_DT IS NULL OR @p_INVENTORY_DT = '')
147
		AND (A.TERM LIKE '%' + @p_TERM + '%' OR  @p_TERM IS NULL OR @p_TERM = '')
148
		AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
149
		AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
150
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
151
		AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
152

    
153
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
154
		AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
155
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
156
		AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
157
		AND A.RECORD_STATUS = '1'
158
		AND ((@P_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
159
			OR ((@P_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_CREATE) 
160
			OR (@p_BRANCH_CREATE = '' OR @p_BRANCH_CREATE IS NULL)))
161
		
162
		-- GIANT 25/08/2021
163
		--AND (
164
		--	(@p_TYPE_SEARCH = 'CF' AND A.AUTH_STATUS = 'U' 
165
		--		AND EXISTS ((SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_RECIVE_MAIL = 1 
166
		--			AND ( (@p_AUTH_STATUS_CONFIRM = 'Y' AND IS_DONE = 1) OR (@p_AUTH_STATUS_CONFIRM = 'N' AND IS_DONE = 0) OR (@p_AUTH_STATUS_CONFIRM = '' OR @p_AUTH_STATUS_CONFIRM IS NULL) )
167
		--		))
168
		--		OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL
169
		--	))			
170
		--	OR ( 
171
		--		(@p_TYPE_SEARCH = 'APPR' AND A.AUTH_STATUS = 'U' AND  NOT EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE IS_RECIVE_MAIL = 1 AND IS_DONE = 0 AND INVENT_ID = A.INVENT_ID)
172
		--			AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
173
			
174
		--		OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL) )
175
		--	)
176
				AND ((@p_TYPE_SEARCH = 'CF' AND A.AUTH_STATUS = 'U' 
177
					AND EXISTS ((SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_RECIVE_MAIL = 1 
178
						AND ( (@p_AUTH_STATUS_CONFIRM = 'Y' AND IS_DONE = 1) OR (@p_AUTH_STATUS_CONFIRM = 'N' AND IS_DONE = 0) OR (@p_AUTH_STATUS_CONFIRM = '' OR @p_AUTH_STATUS_CONFIRM IS NULL) )
179
					))
180
				OR	(@p_TYPE_SEARCH = 'CF' AND A.AUTH_STATUS = 'A' AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
181
				OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL
182
			))
183
			OR ( 
184
				(@p_TYPE_SEARCH = 'APPR' AND A.AUTH_STATUS = 'U' AND  NOT EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE IS_RECIVE_MAIL = 1 AND IS_DONE = 0 AND INVENT_ID = A.INVENT_ID)
185
					AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
186
				OR	(@p_TYPE_SEARCH = 'APPR' AND A.AUTH_STATUS = 'A' AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
187
				OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL) 
188
			)
189
		)
190

    
191
		AND (A.AUTH_STATUS_DVKD LIKE '%' + @p_AUTH_STATUS_DVKD + '%' OR  @p_AUTH_STATUS_DVKD IS NULL OR @p_AUTH_STATUS_DVKD = '')
192

    
193
		AND (CONVERT(DATE,ISNULL(A.INVENTORY_DT,A.CREATE_DT),103) >=CONVERT(DATE, @p_FROMDATE, 103) OR  @p_FROMDATE IS NULL OR @p_FROMDATE = '')
194
		AND (CONVERT(DATE,ISNULL(A.INVENTORY_DT, A.CREATE_DT),103) <=CONVERT(DATETIME, @p_TODATE, 103) OR  @p_TODATE IS NULL OR @p_TODATE = '')
195

    
196
		-- HUYHT 27/04/2022 Khi trạng thái duyệt là "Nháp", "Từ chối" thì chỉ người tạo tìm thấy phiếu
197
		AND ((A.AUTH_STATUS_DVKD IN ('E','R') AND (A.MAKER_ID = @p_USER_LOGIN OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''))
198
			OR A.AUTH_STATUS_DVKD NOT IN ('E','R'))
199

    
200
		ORDER BY A.CREATE_DT DESC
201
	-- PAGING END
202

    
203
END -- PAGING
204

    
205
GO