1
|
CREATE PROCEDURE dbo.PL_REQUEST_DOC_MOBILE_Search
|
2
|
@p_REQ_ID varchar(15) = NULL,
|
3
|
@p_REQ_CODE nvarchar(100) = NULL,
|
4
|
@p_REQ_NAME nvarchar(200) = NULL,
|
5
|
@p_REQ_DT varchar(20) = NULL,
|
6
|
@p_REQ_TYPE int = NULL,
|
7
|
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
|
8
|
@p_REQ_REASON NVARCHAR(500)=NULL,
|
9
|
@p_TOTAL_AMT decimal = NULL,
|
10
|
@p_NOTES nvarchar(1000) = NULL,
|
11
|
@p_RECORD_STATUS varchar(1) = NULL,
|
12
|
@p_MAKER_ID varchar(12) = NULL,
|
13
|
@p_CREATE_DT varchar(20) = NULL,
|
14
|
@p_AUTH_STATUS varchar(50) = NULL,
|
15
|
@p_CHECKER_ID varchar(12) = NULL,
|
16
|
@p_APPROVE_DT varchar(20) = NULL,
|
17
|
@p_PROCESS_ID varchar(15) = NULL,
|
18
|
@p_BRANCH_ID VARCHAR(15)=NULL,
|
19
|
@p_DEP_ID VARCHAR(15) = NULL,
|
20
|
@p_BRANCH_LOGIN VARCHAR(15),
|
21
|
@p_ROLE_USER VARCHAR(20),
|
22
|
@p_TLNAME_USER VARCHAR(15),
|
23
|
@p_FR_DATE varchar(20) = NULL,
|
24
|
@p_TO_DATE varchar(20) = NULL,
|
25
|
@p_TYPE_TRANFER VARCHAR(15)= NULL,
|
26
|
@p_TYPE VARCHAR(15) = NULL,
|
27
|
@p_YEAR INT = NULL,
|
28
|
@p_TOP INT = 10 ,
|
29
|
@p_IS_TRANSFER VARCHAR(10) = NULL,
|
30
|
@p_NGUOIXULY NVARCHAR(15) = NULL
|
31
|
AS
|
32
|
BEGIN -- PAGING
|
33
|
|
34
|
DECLARE @TABLE_ROLE TABLE
|
35
|
( ROLE_ID VARCHAR(20))
|
36
|
INSERT INTO @TABLE_ROLE VALUES(@p_ROLE_USER)
|
37
|
|
38
|
|
39
|
INSERT INTO @TABLE_ROLE
|
40
|
SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER
|
41
|
|
42
|
|
43
|
|
44
|
DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(15)
|
45
|
|
46
|
DECLARE
|
47
|
@COST_ID TABLE (
|
48
|
COST_ID VARCHAR(15)
|
49
|
)
|
50
|
|
51
|
DECLARE @DVDM_ID TABLE (
|
52
|
DVDM_ID VARCHAR(15)
|
53
|
)
|
54
|
SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)
|
55
|
SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
|
56
|
|
57
|
|
58
|
IF(EXISTS(SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%'))
|
59
|
BEGIN
|
60
|
SET @BRANCH_TYPE='HS'
|
61
|
END
|
62
|
|
63
|
|
64
|
|
65
|
DECLARE @AUTHOR TABLE
|
66
|
(
|
67
|
ROLE_ID VARCHAR(100),
|
68
|
BRANCH_ID VARCHAR(20),
|
69
|
DEP_ID VARCHAR(20)
|
70
|
)
|
71
|
DECLARE @AUTHOR_DVDM TABLE
|
72
|
(
|
73
|
ROLE_ID VARCHAR(100),
|
74
|
BRANCH_ID VARCHAR(20),
|
75
|
DEP_ID VARCHAR(20),
|
76
|
DVDM_ID VARCHAR(20)
|
77
|
)
|
78
|
INSERT INTO @AUTHOR
|
79
|
(
|
80
|
ROLE_ID,
|
81
|
BRANCH_ID,
|
82
|
DEP_ID
|
83
|
)
|
84
|
SELECT RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
|
85
|
WHERE TLNANME=@p_TLNAME_USER
|
86
|
UNION ALL
|
87
|
SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
|
88
|
LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
|
89
|
WHERE TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
|
90
|
UNION ALL
|
91
|
SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
|
92
|
WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
93
|
UNION ALL
|
94
|
SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
|
95
|
LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
|
96
|
WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
97
|
|
98
|
INSERT INTO @AUTHOR_DVDM
|
99
|
(
|
100
|
ROLE_ID,
|
101
|
BRANCH_ID,
|
102
|
DEP_ID,
|
103
|
DVDM_ID
|
104
|
)
|
105
|
SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU
|
106
|
LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
|
107
|
LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
|
108
|
WHERE TU.TLNANME=@p_TLNAME_USER
|
109
|
UNION ALL
|
110
|
SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU
|
111
|
LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
|
112
|
LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
|
113
|
LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
|
114
|
WHERE TU.TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
|
115
|
UNION ALL
|
116
|
SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU
|
117
|
LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
|
118
|
LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
|
119
|
WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
120
|
UNION ALL
|
121
|
SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU
|
122
|
LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
|
123
|
LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
|
124
|
LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
|
125
|
WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
126
|
---- 16.11.22 LUCTV BO SUNG UNION NHUNG PHONG BAN CON CUA PHONG BAN DUOC KIEM NHIEM
|
127
|
UNION ALL
|
128
|
SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU
|
129
|
LEFT JOIN CM_DEPARTMENT DP ON DP.FATHER_ID = TU.DEP_ID
|
130
|
LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=DP.DEP_ID
|
131
|
LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
|
132
|
WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
133
|
UNION ALL
|
134
|
SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU
|
135
|
LEFT JOIN CM_DEPARTMENT DP ON DP.FATHER_ID = TU.SECUR_CODE
|
136
|
LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=DP.DEP_ID
|
137
|
LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
|
138
|
WHERE TU.TLNANME=@p_TLNAME_USER
|
139
|
--- END LUCTV 16.11.2022
|
140
|
INSERT INTO @COST_ID
|
141
|
SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
|
142
|
INSERT INTO @DVDM_ID
|
143
|
SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
|
144
|
|
145
|
----- GIANT 23/12/2021
|
146
|
IF(@p_FR_DATE IS NULL)
|
147
|
BEGIN
|
148
|
SET @p_FR_DATE = GETDATE()
|
149
|
SET @p_FR_DATE = DATEADD(YEAR,-1,@p_FR_DATE)
|
150
|
END
|
151
|
-----
|
152
|
-- PAGING BEGIN
|
153
|
SELECT A.REQ_CODE, A.REQ_CONTENT, A.TOTAL_AMT,
|
154
|
CASE WHEN G.BRANCH_TYPE = 'HS' THEN ISNULL(G.BRANCH_NAME,'') + ' - ' + ISNULL(DEP.DEP_NAME,'') ELSE ISNULL(G.BRANCH_NAME,'') END AS BRANCH_NAME,
|
155
|
N'Chờ duyệt' AS AUTH_STATUS_NAME
|
156
|
-- SELECT END
|
157
|
FROM PL_REQUEST_DOC A
|
158
|
LEFT JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C'
|
159
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.REQ_ID=A.REQ_ID AND RPN.STATUS = 'C'
|
160
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)
|
161
|
--LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
|
162
|
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
|
163
|
|
164
|
LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
|
165
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')
|
166
|
-- LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
|
167
|
-- LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
|
168
|
-- LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
|
169
|
-- LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
|
170
|
-- LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
|
171
|
-- LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
|
172
|
-- LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
|
173
|
-- LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
|
174
|
-- LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
|
175
|
-- LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
|
176
|
-- LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
|
177
|
-- LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
|
178
|
|
179
|
WHERE 1 = 1
|
180
|
AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
|
181
|
-- AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
|
182
|
AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
|
183
|
AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
|
184
|
-- AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
|
185
|
-- AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')
|
186
|
AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
|
187
|
-- AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
|
188
|
-- AND (@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0)
|
189
|
-- AND (@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0)
|
190
|
-- AND (@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0)
|
191
|
-- AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
|
192
|
--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
|
193
|
AND A.RECORD_STATUS = '1'
|
194
|
|
195
|
-- AND(@p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL
|
196
|
-- OR(@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID))
|
197
|
-- OR(@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID))
|
198
|
-- )
|
199
|
|
200
|
AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
|
201
|
PLRP.DVDM_ID=AUTH.DVDM_ID
|
202
|
OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
|
203
|
))
|
204
|
--AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE)
|
205
|
--AND (
|
206
|
-- (PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID=''))
|
207
|
--OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
|
208
|
--OR
|
209
|
--( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
|
210
|
--)
|
211
|
AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)
|
212
|
AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
|
213
|
--AND (( @p_AUTH_STATUS='A' AND PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
|
214
|
AND(@p_FR_DATE IS NULL OR @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
|
215
|
AND(@p_TO_DATE IS NULL OR @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))
|
216
|
-- AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = ''
|
217
|
-- OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY + '%')
|
218
|
--AND(
|
219
|
-- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')
|
220
|
-- OR
|
221
|
-- (dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')
|
222
|
--)
|
223
|
|
224
|
AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
|
225
|
--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
|
226
|
|
227
|
-- GIANT 26/10/2021
|
228
|
AND (EXISTS (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
|
229
|
AND (A.PROCESS_ID IN ('GDK_TT','PTGDK_TT','TGD','HDQT','GDK_DC','GDK_TC')) -- LUCTV 24.11.2022 BO SUNG DIEU KIEN DE CHAN KHONG CHO LANH DAO TIM KIEM NEU PHIEU CHUA TOI
|
230
|
ORDER BY A.CREATE_DT DESC
|
231
|
-- PAGING END
|
232
|
END -- PAGING
|