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
|