Project

General

Profile

TR_REQ_SEARCH.txt

Truong Nguyen Vu, 08/19/2020 03:49 PM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_Search]
3
@p_REQ_ID	varchar(15)  = NULL,
4
@p_REQ_CODE	nvarchar(100)  = NULL,
5
@p_REQ_NAME	nvarchar(200)  = NULL,
6
@p_REQ_DT	VARCHAR(20) = NULL,
7
@p_REQ_TYPE	varchar(20) = NULL,
8
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
9
@p_CONTRACT_ID	varchar(15)  = NULL,
10
@p_SUP_ID	varchar(15)  = NULL,
11
@p_SUP_NAME	nvarchar(200)  = NULL,
12
@p_SUP_ADDR	nvarchar(200)  = NULL,
13
@p_TOTAL_AMT	decimal = NULL,
14
@p_NOTES	nvarchar(1000)  = NULL,
15
@p_RECORD_STATUS	varchar(1)  = NULL,
16
@p_MAKER_ID VARCHAR(100)  = NULL,
17
@p_CREATE_DT	VARCHAR(20) = NULL,
18
@p_AUTH_STATUS	varchar(50)  = NULL,
19
@p_CHECKER_ID VARCHAR(100)  = NULL,
20
@p_APPROVE_DT	VARCHAR(20) = NULL,
21
@p_CONTRACT_CODE VARCHAR(15) = NULL,
22
@p_RECEIVE_BRANCH VARCHAR(15) = NULL,
23
@p_USERNAME VARCHAR(100) = NULL,
24
@p_BRANCH_ID VARCHAR(15)=NULL,
25
@p_DEP_ID VARCHAR(15)=NULL,
26
@p_STATUS  VARCHAR(15)=NULL,
27
@p_TOP	INT = 10
28
AS
29
BEGIN -- PAGING
30

    
31
	DECLARE @DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20)
32

    
33
	SET @DEP_ID= (SELECT DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME)
34
	SET @BRANCH_ID= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME)
35
	DECLARE @lstCOST TABLE
36
	(
37
		COST_ID VARCHAR(20)
38
	)
39
	INSERT INTO @lstCOST
40
	SELECT COST_ID FROM dbo.CM_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID
41

    
42
	IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
43
	-- PAGING BEGIN
44
		SELECT A.REQ_ID,
45
               A.REQ_CODE,
46
               A.REQ_NAME,
47
               ISNULL(PRP.APPROVE_DT,A.REQ_DT) AS REQ_DT,
48
               A.REQ_TYPE,
49
               A.REQ_CONTENT,
50
               A.CONTRACT_ID,
51
               A.SUP_ID,
52
               A.SUP_NAME,
53
               A.SUP_ADDR,
54
               A.TOTAL_AMT,
55
               A.NOTES,
56
               A.RECORD_STATUS,
57
               A.MAKER_ID,
58
               A.CREATE_DT,
59
               A.AUTH_STATUS,
60
               A.CHECKER_ID,
61
               A.APPROVE_DT,
62
               A.BRANCH_ID,
63
               A.STATUS,
64
               A.DEP_ID,
65
               A.HO_NOTES,C.CONTRACT_CODE, D.AUTH_STATUS_NAME,  E.SUP_CODE AS S_SUP_CODE, E.SUP_NAME AS S_SUP_NAME, E.ADDR AS S_ADDR, K.CONTENT AS REQ_TYPE_NAME, I.CONTENT AS REQ_STATUS_NAME,
66
				F.CONTRACT_CODE AS C_CONTRACT_CODE, F.[CONTRACT_NAME] AS C_CONTRACT_NAME,  F.TOTAL_AMT AS C_TOTAL_AMT ,
67
				ISNULL((SELECT SUM(TR_REQ.TOTAL_AMT) FROM TR_REQUEST_DOC TR_REQ WHERE TR_REQ.CONTRACT_ID = A.CONTRACT_ID),0) AS C_DONE_AMT, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,G.BRANCH_NAME, PRP.DVKD_USER_APP
68
		-- SELECT END
69
		FROM TR_REQUEST_DOC A
70
		
71
		LEFT JOIN TR_CONTRACT C ON A.CONTRACT_ID = C.CONTRACT_ID  
72
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
73
		LEFT JOIN CM_SUPPLIER E ON E.SUP_ID= A.SUP_ID
74
		LEFT JOIN TR_CONTRACT F ON F.CONTRACT_ID = A.CONTRACT_ID --AND A.CONTRACT_ID IS NOT NULL
75
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
76
		LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQTYPE' AND K.CDVAL = A.REQ_TYPE
77
		LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS]
78
		LEFT JOIN dbo.PL_REQUEST_PROCESS PRP ON PRP.REQ_ID=A.REQ_ID AND   PRP.PROCESS_ID= (SELECT T.PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS T WHERE T.REQ_ID=A.REQ_ID AND T.PROCESS_ID=@p_STATUS) 
79

    
80
		WHERE 1 = 1
81
		
82
	   AND (A.MAKER_ID=@p_USERNAME  OR  (EXISTS(SELECT r.DisplayName FROM TL_USER u 
83
						LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
84
						LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
85
						where u.TLNANME=@p_USERNAME AND r.DisplayName='CVMS') ) OR 
86
		 
87
	   EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID  
88
						AND (((PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P') AND (@p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)) OR 
89
								(@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P'))
90
						AND PROCESS_ID <> 'DVKD'
91
						AND PL_REQUEST_PROCESS.ROLE_USER in (SELECT r.DisplayName FROM TL_USER u 
92
						LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
93
						LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
94
						where u.TLNANME=@p_USERNAME)
95
						 AND BRANCH_ID=@BRANCH_ID
96
						 AND (DEP_ID IS NULL OR DEP_ID='' OR DEP_ID IN (SELECT DEP_ID FROM dbo.CM_KHOI_DT WHERE KHOI_ID IN  (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID=@DEP_ID)) )
97
						 AND (COST_ID IN (SELECT COST_ID FROM @lstCOST) OR COST_ID ='' OR COST_ID IS NULL)
98
						 ) OR
99
	   EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID  
100
						AND PROCESS_ID = 'DVKD' AND (DVKD_USER_APP IS NULL OR DVKD_USER_APP = '' OR DVKD_USER_APP = @p_USERNAME)
101
						 ))
102
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
103
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
104
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
105
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
106
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
107
		AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '')
108
		AND (A.SUP_ID LIKE '%' + @p_SUP_ID + '%' OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
109
		AND (A.SUP_ADDR LIKE '%' + @p_SUP_ADDR + '%' OR @p_SUP_ADDR IS NULL OR @p_SUP_ADDR = '')		
110
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
111
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
112
		AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
113
		--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
114
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
115
		AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')		
116
		AND (C.CONTRACT_CODE LIKE '%' + @P_CONTRACT_CODE + '%' OR @P_CONTRACT_CODE = '' OR @P_CONTRACT_CODE IS NULL)
117
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
118
		AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = '')
119
		--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
120
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
121
		--AND (@p_RECEIVE_BRANCH IS NULL OR @p_RECEIVE_BRANCH = '' OR EXISTS(SELECT REQ_DOC_ID FROM TR_REQUEST_DOC_DT WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH AND REQ_DOC_ID = A.REQ_ID))
122
		AND A.RECORD_STATUS = '1'
123
		AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
124
		AND (@p_DEP_ID IS NULL OR @p_DEP_ID = '' OR A.DEP_ID = @p_DEP_ID)
125
		ORDER BY A.CREATE_DT DESC
126
	-- PAGING END
127
   ELSE
128
   -- PAGING BEGIN
129
		SELECT TOP(CONVERT(INT,@P_TOP)) A.REQ_ID,
130
                                        A.REQ_CODE,
131
                                        A.REQ_NAME,
132
                                         ISNULL(PRP.APPROVE_DT,A.REQ_DT) AS REQ_DT,
133
                                        A.REQ_TYPE,
134
                                        A.REQ_CONTENT,
135
                                        A.CONTRACT_ID,
136
                                        A.SUP_ID,
137
                                        A.SUP_NAME,
138
                                        A.SUP_ADDR,
139
                                        A.TOTAL_AMT,
140
                                        A.NOTES,
141
                                        A.RECORD_STATUS,
142
                                        A.MAKER_ID,
143
                                        A.CREATE_DT,
144
                                        A.AUTH_STATUS,
145
                                        A.CHECKER_ID,
146
                                        A.APPROVE_DT,
147
                                        A.BRANCH_ID,
148
                                        A.STATUS,
149
                                        A.DEP_ID,
150
                                        A.HO_NOTES,C.CONTRACT_CODE, D.AUTH_STATUS_NAME,  E.SUP_CODE AS S_SUP_CODE, E.SUP_NAME AS S_SUP_NAME, E.ADDR AS S_ADDR, K.CONTENT AS REQ_TYPE_NAME, I.CONTENT AS REQ_STATUS_NAME,
151
				F.CONTRACT_CODE AS C_CONTRACT_CODE, F.[CONTRACT_NAME] AS C_CONTRACT_NAME,  F.TOTAL_AMT AS C_TOTAL_AMT ,
152
				ISNULL((SELECT SUM(TR_REQ.TOTAL_AMT) FROM TR_REQUEST_DOC TR_REQ WHERE TR_REQ.CONTRACT_ID = A.CONTRACT_ID),0) AS C_DONE_AMT, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,G.BRANCH_NAME, PRP.DVKD_USER_APP
153
		-- SELECT END
154
		FROM TR_REQUEST_DOC A
155
		
156
		LEFT JOIN TR_CONTRACT C ON A.CONTRACT_ID = C.CONTRACT_ID  
157
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
158
		LEFT JOIN CM_SUPPLIER E ON E.SUP_ID= A.SUP_ID
159
		LEFT JOIN TR_CONTRACT F ON F.CONTRACT_ID = A.CONTRACT_ID --AND A.CONTRACT_ID IS NOT NULL
160
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
161
		LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQTYPE' AND K.CDVAL = A.REQ_TYPE
162
		LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS]
163
		LEFT JOIN dbo.PL_REQUEST_PROCESS PRP ON PRP.REQ_ID=A.REQ_ID AND   PRP.PROCESS_ID= (SELECT T.PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS T WHERE T.REQ_ID=A.REQ_ID AND T.PROCESS_ID=@p_STATUS) 
164

    
165
		WHERE 1 = 1
166
		 AND (A.MAKER_ID=@p_USERNAME  OR  (EXISTS(SELECT r.DisplayName FROM TL_USER u 
167
						LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
168
						LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
169
						where u.TLNANME=@p_USERNAME AND r.DisplayName='CVMS') ) OR
170
		 
171
	   EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID  
172
						AND (((PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P') AND (@p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)) OR 
173
								(@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P'))
174
						AND PROCESS_ID <> 'DVKD'
175
						AND PL_REQUEST_PROCESS.ROLE_USER in (SELECT r.DisplayName FROM TL_USER u 
176
						LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
177
						LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
178
						where u.TLNANME=@p_USERNAME)
179
						 AND BRANCH_ID=@BRANCH_ID
180
						 AND (DEP_ID IS NULL OR DEP_ID='' OR DEP_ID IN (SELECT DEP_ID FROM dbo.CM_KHOI_DT WHERE KHOI_ID IN  (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID=@DEP_ID)) )
181
						 AND (COST_ID IN (SELECT COST_ID FROM @lstCOST) OR COST_ID ='' OR COST_ID IS NULL)
182
						 ) OR
183
	   EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID  
184
						AND PROCESS_ID = 'DVKD' AND (DVKD_USER_APP IS NULL OR DVKD_USER_APP = '' OR DVKD_USER_APP = @p_USERNAME)
185
						 ))
186
			
187
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
188
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
189
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
190
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
191
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
192
		AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '')
193
		AND (A.SUP_ID LIKE '%' + @p_SUP_ID + '%' OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
194
		AND (A.SUP_ADDR LIKE '%' + @p_SUP_ADDR + '%' OR @p_SUP_ADDR IS NULL OR @p_SUP_ADDR = '')				
195
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
196
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
197
		AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
198
		--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
199
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
200
		AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')		
201
		AND (C.CONTRACT_CODE LIKE '%' + @P_CONTRACT_CODE + '%' OR @P_CONTRACT_CODE = '' OR @P_CONTRACT_CODE IS NULL)
202
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
203
			AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = '')
204
		--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
205
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
206
		--AND (@p_RECEIVE_BRANCH IS NULL OR @p_RECEIVE_BRANCH = '' OR EXISTS(SELECT REQ_DOC_ID FROM TR_REQUEST_DOC_DT WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH AND REQ_DOC_ID = A.REQ_ID))
207
		AND A.RECORD_STATUS = '1'
208
		AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
209
		AND (@p_DEP_ID IS NULL OR @p_DEP_ID = '' OR A.DEP_ID = @p_DEP_ID)
210
		ORDER BY A.CREATE_DT DESC
211
	-- PAGING END
212
   END -- PAGING