Project

General

Profile

PL_REQUEST_DOC_MOBILE_Search.txt

Luc Tran Van, 02/24/2025 02:13 PM

 
1
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_MOBILE_Search] @p_REQ_ID VARCHAR(15) = NULL,
2
@p_REQ_CODE NVARCHAR(100) = NULL,
3
@p_REQ_NAME NVARCHAR(200) = NULL,
4
@p_REQ_DT VARCHAR(20) = NULL,
5
@p_REQ_TYPE INT = NULL,
6
@p_REQ_CONTENT NVARCHAR(1000) = NULL,
7
@p_REQ_REASON NVARCHAR(500) = NULL,
8
@p_TOTAL_AMT DECIMAL = NULL,
9
@p_NOTES NVARCHAR(1000) = NULL,
10
@p_RECORD_STATUS VARCHAR(1) = NULL,
11
@p_MAKER_ID VARCHAR(12) = NULL,
12
@p_CREATE_DT VARCHAR(20) = NULL,
13
@p_AUTH_STATUS VARCHAR(50) = NULL,
14
@p_CHECKER_ID VARCHAR(12) = NULL,
15
@p_APPROVE_DT VARCHAR(20) = NULL,
16
@p_PROCESS_ID VARCHAR(15) = NULL,
17
@p_BRANCH_ID VARCHAR(15) = NULL,
18
@p_DEP_ID VARCHAR(15) = NULL,
19
@p_BRANCH_LOGIN VARCHAR(15),
20
@p_ROLE_USER VARCHAR(20),
21
@p_TLNAME_USER VARCHAR(15),
22
@p_FR_DATE VARCHAR(20) = NULL,
23
@p_TO_DATE VARCHAR(20) = NULL,
24
@p_TYPE_TRANFER VARCHAR(15) = NULL,
25
@p_TYPE VARCHAR(15) = NULL,
26
@p_YEAR INT = NULL,
27
@p_TOP INT = 10,
28
@p_IS_TRANSFER VARCHAR(10) = NULL,
29
@p_NGUOIXULY NVARCHAR(15) = NULL
30
AS
31
BEGIN -- PAGING
32
  DECLARE @MENU_PERMISSION NVARCHAR(500) = ''--permission chức năng call store, do chưa check dc mobile nên gán = ''
33
  DECLARE @TABLE_ROLE TABLE (
34
    ROLE_ID VARCHAR(20)
35
  )
36
  INSERT INTO @TABLE_ROLE
37
    VALUES (@p_ROLE_USER)
38

    
39

    
40
  INSERT INTO @TABLE_ROLE
41
    SELECT
42
      ROLE_NEW
43
    FROM dbo.TL_SYS_ROLE_MAPPING
44
    WHERE ROLE_OLD = @p_ROLE_USER
45

    
46

    
47

    
48
  DECLARE @DEP_ID VARCHAR(15)
49
         ,@BRANCH_TYPE VARCHAR(15)
50

    
51
  DECLARE @COST_ID TABLE (
52
    COST_ID VARCHAR(15)
53
  )
54

    
55
  DECLARE @DVDM_ID TABLE (
56
    DVDM_ID VARCHAR(15)
57
  )
58
  SET @DEP_ID = (SELECT
59
      SECUR_CODE
60
    FROM dbo.TL_USER
61
    WHERE TLNANME = @p_TLNAME_USER)
62
  SET @BRANCH_TYPE = (SELECT
63
      BRANCH_TYPE
64
    FROM dbo.CM_BRANCH
65
    WHERE BRANCH_ID = @p_BRANCH_LOGIN)
66

    
67

    
68
  IF (EXISTS (SELECT
69
        DEP_CODE
70
      FROM dbo.CM_DEPARTMENT
71
      WHERE DEP_ID = @DEP_ID
72
      AND DEP_CODE LIKE '069%')
73
    )
74
  BEGIN
75
    SET @BRANCH_TYPE = 'HS'
76
  END
77

    
78

    
79

    
80
  SELECT
81
    * INTO #AUTHOR
82
  FROM [dbo].[FN_GET_ROLE_USER_BY_TLNAME](@p_TLNAME_USER, @MENU_PERMISSION)
83

    
84
  SELECT
85
    * INTO #AUTHOR_DVDM
86
  FROM [dbo].[FN_GET_ROLE_DVDM_USER_BY_TLNAME](@p_TLNAME_USER, @MENU_PERMISSION)
87

    
88

    
89
  --- END LUCTV 16.11.2022
90
  INSERT INTO @COST_ID
91
    SELECT
92
      COST_ID
93
    FROM dbo.PL_COSTCENTER_DT
94
    WHERE DEP_ID = @DEP_ID
95
    AND BRANCH_ID = @p_BRANCH_LOGIN
96
  INSERT INTO @DVDM_ID
97
    SELECT
98
      DVDM_ID
99
    FROM dbo.PL_COSTCENTER
100
    WHERE COST_ID IN (SELECT
101
        COST_ID
102
      FROM @COST_ID)
103
    GROUP BY DVDM_ID
104

    
105
  ----- GIANT 23/12/2021
106
  IF (@p_FR_DATE IS NULL)
107
  BEGIN
108
    SET @p_FR_DATE = GETDATE()
109
    SET @p_FR_DATE = DATEADD(YEAR, -1, @p_FR_DATE)
110
  END
111
  -----
112
  -- PAGING BEGIN
113
  SELECT
114
    A.REQ_ID
115
   ,A.REQ_CODE
116
   ,A.REQ_CONTENT
117
   ,A.TOTAL_AMT
118
   ,'U' AS AUTH_STATUS
119
   ,--A.AUTH_STATUS,
120
    CASE
121
      WHEN G.BRANCH_TYPE = 'HS' THEN ISNULL(G.BRANCH_NAME, '') + ' - ' + ISNULL(DEP.DEP_NAME, '')
122
      ELSE ISNULL(G.BRANCH_NAME, '')
123
    END AS BRANCH_NAME
124
   ,N'Chờ duyệt' AS AUTH_STATUS_NAME
125
  -- SELECT END
126
  FROM PL_REQUEST_DOC A
127
  LEFT JOIN dbo.PL_REQUEST_PROCESS PLRP
128
    ON PLRP.REQ_ID = A.REQ_ID
129
      AND PLRP.STATUS = 'C'
130
  --LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.REQ_ID=A.REQ_ID AND RPN.STATUS = 'C'
131
  --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)	
132
  --LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
133
  LEFT JOIN CM_BRANCH G
134
    ON A.BRANCH_ID = G.BRANCH_ID
135

    
136
  LEFT JOIN dbo.CM_DEPARTMENT DEP
137
    ON DEP.DEP_ID = A.DEP_ID
138
  LEFT JOIN dbo.PL_REQUEST_PROCESS RPN
139
    ON RPN.ID IN (SELECT TOP 1
140
          Temp.ID
141
        FROM dbo.PL_REQUEST_PROCESS Temp
142
        WHERE Temp.REQ_ID = A.REQ_ID
143
        AND (Temp.STATUS = 'C'
144
        OR Temp.STATUS = 'R'))
145
  LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPNC
146
    ON RPNC.PROCESS_ID IN (SELECT TOP 1
147
          Temp.ID
148
        FROM dbo.PL_REQUEST_PROCESS Temp
149
        WHERE Temp.REQ_ID = A.REQ_ID
150
        AND (Temp.STATUS = 'C'
151
        OR Temp.STATUS = 'R')
152
        AND Temp.IS_HAS_CHILD = 1)
153
      AND (RPNC.STATUS_JOB = 'C'
154
        OR RPNC.STATUS_JOB = 'R')
155
  OUTER APPLY (SELECT
156
      [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY
157
     ,'' NGUOIXULYTLNAME) NXL
158

    
159
  --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')
160
  --		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
161
  --		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
162
  --		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
163
  --		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
164
  --		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
165
  --		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
166
  --		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
167
  --		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
168
  --		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
169
  --		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
170
  --		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
171
  --		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
172

    
173
  WHERE 1 = 1
174
  --    AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' OR A.AUTH_STATUS = @p_AUTH_STATUS)
175
  AND (@p_REQ_CODE IS NULL
176
  OR @p_REQ_CODE = ''
177
  OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
178
  --		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
179
  AND (@p_REQ_CONTENT IS NULL
180
  OR @p_REQ_CONTENT = ''
181
  OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
182
  AND (@p_REQ_REASON IS NULL
183
  OR @p_REQ_REASON = ''
184
  OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
185
  --		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
186
  --		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
187
  AND (@p_MAKER_ID IS NULL
188
  OR @p_MAKER_ID = ''
189
  OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
190
  --		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
191
  --		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
192
  --		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
193
  --		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
194
  --		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
195
  --AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
196
  AND A.RECORD_STATUS = '1'
197

    
198
  --		AND(@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
199
  --			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))
200
  --			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))
201
  --    )
202
  --PHONGNT 12/02/2023 Thêm điều kiện TĐV thấy phiếu
203
  AND ((RPN.PROCESS_ID = 'APPNEW'
204
  AND EXISTS (SELECT
205
      1
206
    FROM #AUTHOR_DVDM
207
    WHERE ROLE_DISPLAYNAME = RPN.ROLE_USER
208
    AND BRANCH_ID = RPN.BRANCH_ID
209
    AND ((BRANCH_ID = 'DV0001'
210
    AND DEP_ID = RPN.DEP_ID)
211
    OR (BRANCH_ID <> 'DV0001')))
212
  AND (PLRP.IS_HAS_CHILD = 0
213
  OR PLRP.IS_HAS_CHILD IS NULL))
214
  OR (RPNC.TLNAME = @p_TLNAME_USER
215
  AND RPNC.STATUS_JOB = 'C'
216
  AND RPNC.TYPE_JOB = 'TP')
217
  --END
218

    
219

    
220

    
221

    
222

    
223

    
224
  OR ((RPN.PROCESS_ID = 'TC'
225
  AND EXISTS (SELECT
226
      1
227
    FROM #AUTHOR_DVDM
228
    WHERE ROLE_DISPLAYNAME = RPN.ROLE_USER)
229
  )
230
  AND (RPN.SUB_PROCESS_ID IS NULL
231
  OR RPN.SUB_PROCESS_ID NOT LIKE '%DVDC%'))
232
  OR ((RPN.PROCESS_ID IN ('DVCM')
233
  AND EXISTS (SELECT
234
      1
235
    FROM #AUTHOR_DVDM
236
    WHERE ROLE_DISPLAYNAME = RPN.ROLE_USER
237
    AND DVDM_ID = RPN.DVDM_ID)
238
  ))
239
  OR EXISTS (SELECT
240
      AUTH.ROLE_DISPLAYNAME
241
    FROM #AUTHOR_DVDM AUTH
242
    WHERE AUTH.ROLE_DISPLAYNAME = PLRP.ROLE_USER
243
    AND (
244
    PLRP.DVDM_ID = AUTH.DVDM_ID
245
    OR ((PLRP.DVDM_ID = ''
246
    OR PLRP.DVDM_ID IS NULL)
247
    AND (PLRP.BRANCH_ID IS NULL
248
    OR PLRP.BRANCH_ID = ''))
249
    )
250
    AND (PLRP.IS_HAS_CHILD = 0
251
    OR PLRP.IS_HAS_CHILD IS NULL))
252
  )
253
  --AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) 
254
  --AND (
255
  --  (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='')) 
256
  --OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
257
  --OR
258
  --( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
259
  --)
260
  AND (@p_YEAR IS NULL
261
  OR @p_YEAR = 0
262
  OR YEAR(A.REQ_DT) = @p_YEAR)
263

    
264

    
265

    
266

    
267

    
268

    
269

    
270

    
271

    
272
  --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 = '')
273
  AND (@p_FR_DATE IS NULL
274
  OR @p_REQ_CODE IS NOT NULL
275
  OR CONVERT(DATETIME, A.REQ_DT, 103) >= CONVERT(DATETIME, @p_FR_DATE, 103))
276
  AND (@p_TO_DATE IS NULL
277
  OR @p_REQ_CODE IS NOT NULL
278
  OR CONVERT(DATETIME, A.REQ_DT, 103) <= CONVERT(DATETIME, @p_TO_DATE, 103))
279
  --		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
280
  --			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
281
  --AND(
282
  --	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
283
  --	OR
284
  --	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
285
  --)
286

    
287
  AND (A.BRANCH_ID = @p_BRANCH_ID
288
  OR @p_BRANCH_ID IS NULL
289
  OR @p_BRANCH_ID = '')
290
  --AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
291

    
292
  -- GIANT 26/10/2021
293
  AND (EXISTS (SELECT
294
      PL_REQUEST_DOC_DT.REQ_ID
295
    FROM PL_REQUEST_DOC_DT
296
    WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID)
297
  )
298
  AND (A.PROCESS_ID IN ('GDK_TT', 'PTGDK_TT', 'TGD', 'HDQT', 'GDK_DC', 'GDK_TC', 'APPNEW', 'DVCM', 'TC', 'DVDC')) -- LUCTV 24.11.2022 BO SUNG DIEU KIEN DE CHAN KHONG CHO LANH DAO TIM KIEM NEU PHIEU CHUA TOI
299
  ORDER BY A.CREATE_DT DESC
300
-- PAGING END
301
END -- PAGING