Project

General

Profile

AAA.SQL

Luc Tran Van, 06/16/2025 03:08 PM

 
1
ALTER PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Search]  
2
@p_REQ_PAY_ID                        VARCHAR(15)= NULL,  
3
@p_REQ_PAY_CODE                        VARCHAR(50) = NULL,  
4
@p_REQ_DT                                VARCHAR(20)= NULL,  
5
@p_BRANCH_ID                        VARCHAR(15) = NULL,  
6
@p_DEP_ID                                VARCHAR(15) = NULL,  
7
@p_REQ_REASON                        NVARCHAR(MAX) = NULL,  
8
@p_REQ_TYPE                                VARCHAR(15) = NULL,  
9
@P_REQ_ENTRIES                        NVARCHAR(MAX) = NULL,  
10
@p_REQ_DESCRIPTION                NVARCHAR(MAX) = NULL,  
11
@p_REF_ID                                VARCHAR(15) = NULL,  
12
@p_RECEIVER_PO                        NVARCHAR(250) = NULL,  
13
@p_RECEIVER_DEBIT                NVARCHAR(250) = NULL,  
14
@p_REQ_PAY_TYPE                        VARCHAR(15) = NULL,  
15
@p_REQ_TYPE_CURRENCY        NVARCHAR(50) = NULL,  
16
@p_REQ_AMT                                DECIMAL(18, 0) = NULL,  
17
@p_REQ_TEMP_AMT                        DECIMAL(18, 0) = NULL,  
18
@p_MAKER_ID                                VARCHAR(15) = NULL,  
19
@p_CREATE_DT                        VARCHAR(25) = NULL,  
20
@p_EDITOR_ID                        VARCHAR(15) = NULL,  
21
@p_AUTH_STATUS                        VARCHAR(1) = NULL,  
22
@p_CHECKER_ID                        VARCHAR(15) = NULL,  
23
@p_APPROVE_DT                        VARCHAR(25) = NULL,  
24
@p_CREATE_DT_KT                        VARCHAR(25) = NULL,  
25
@p_MAKER_ID_KT                        VARCHAR(15) = NULL,  
26
@p_AUTH_STATUS_KT                VARCHAR(1) = NULL,  
27
@p_CHECKER_ID_KT                VARCHAR(1) = NULL,
28
@p_EXEC_USER_KT                        NVARCHAR(20)        = NULL,
29
@p_APPROVE_DT_KT                VARCHAR(25)= NULL,  
30
@p_CORE_NOTE                        NVARCHAR(500) = NULL,  
31
@p_BRANCH_CREATE                VARCHAR(15) = NULL,  
32
@p_NOTES                                NVARCHAR(15) = NULL,  
33
@p_RECORD_STATUS                VARCHAR(1) = NULL,  
34
@p_TRANSFER_MAKER                NVARCHAR(50) = NULL,  
35
@p_TRANSFER_DT                        VARCHAR(25) = NULL,  
36
@p_TRASFER_USER_RECIVE        VARCHAR(15) = NULL,  
37
@p_PROCESS                                VARCHAR(15) = NULL,  
38
@p_PAY_PHASE                        VARCHAR(15)= NULL,  
39
@p_XMP_TEMP                                XML = NULL,  
40
@p_TOP                                        INT = 10,  
41
@p_LEVEL                                VARCHAR(10) = NULL,  
42
@p_FRMDATE                                VARCHAR(20)= NULL,  
43
@p_TODATE                                VARCHAR(20) = NULL,  
44
@p_BRANCH_LOGIN                        VARCHAR(15) = NULL,  
45
@p_IS_UPDATE_KT                        VARCHAR(15) = NULL,  
46
@p_IS_TRANSFER                        VARCHAR(15)= NULL,  
47
@p_DVDM_ID                                VARCHAR(15)= NULL,  
48
@p_USER_LOGIN                        VARCHAR(15) = NULL,  
49
@p_RATE                                        DECIMAL(18,0) =0,  
50
@p_FUNCTION                                VARCHAR(15) = NULL,  
51
@p_TYPE_SEARCH                        VARCHAR(15) = NULL,  
52
@p_TEMP_PAY_STATUS                VARCHAR(10) = NULL  
53
--select * from CM_ALLCODE where CDTYPE = 'TEMPPAYSTATUS'  
54
--HT Hoàn tất  
55
--DCHU Đang chờ hoàn ứng  
56
--DHU Đã hoàn ứng  
57
--'' tất cả  
58
AS
59
BEGIN -- PAGING
60
        DECLARE @MENU_PERMISSON NVARCHAR(500) = 'Pages.Administration.ReqTempPayment'
61
        IF(@p_TYPE_SEARCH = 'KT' AND @p_FUNCTION = 'TF')
62
        BEGIN
63
                SET @MENU_PERMISSON = 'Pages.Administration.ReqTempPayTransfer'
64
        END
65
        ELSE IF(@p_TYPE_SEARCH = 'KT' AND @p_FUNCTION = 'KT')
66
        BEGIN
67
                SET @MENU_PERMISSON = 'Pages.Administration.ReqTempPaymentKT'
68
        END
69

    
70
        SET @p_TOP = NULL  
71
        IF(ISNULL(@p_BRANCH_ID, '') = '')
72
        BEGIN
73
                SET @p_BRANCH_ID = @p_BRANCH_LOGIN
74
        END
75
        IF(ISNULL(@p_BRANCH_CREATE, '') = '')
76
        BEGIN
77
                SET @p_BRANCH_CREATE = @p_BRANCH_LOGIN
78
        END
79
-- BRANCH TYPE CUA USER LOGIN
80
        DECLARE @TB_TYPE TABLE (BRANCH_TYPE VARCHAR(15))  
81
        IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_LOGIN)='HS')  
82
        BEGIN  
83
                INSERT INTO @TB_TYPE VALUES('HS')  
84
        END  
85
        ELSE  
86
        BEGIN  
87
                INSERT INTO @TB_TYPE VALUES('PGD')  
88
                INSERT INTO @TB_TYPE VALUES('CN')  
89
        END  
90

    
91
-- DANH SACH PHONG BAN CON CUA NGUOI TAO PHIEU
92
        IF(NOT EXISTS (SELECT * FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID))
93
        BEGIN
94
                SET @p_BRANCH_ID = (SELECT TOP 1 BRANCH_ID FROM CM_BRANCH WHERE BRANCH_CODE = @p_BRANCH_ID)
95
        END
96
        DECLARE @tmp TABLE(BRANCH_ID VARCHAR(15))  
97
        INSERT INTO @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)  
98
-- DANH SACH PHONG BAN CON CUA USER LOGIN
99
        declare @tmp_Login table(BRANCH_ID varchar(15))  
100
        insert into @tmp_Login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)  
101

    
102
        DECLARE @ROLE_ID VARCHAR(20) , @DEP_ID_LG VARCHAR(15) = NULL, @DEP_ID VARCHAR(15) = NULL, @COST_LG VARCHAR(15), @DVDM_ID VARCHAR(15), @BRANCH_TYPE VARCHAR(15) , @KHOI_ID_LG VARCHAR(15) = NULL, @KHOI_ID VARCHAR(15) = NULL
103
-- BRANCH TYPE CUA PHIEU DE NGHI TAM UNG
104
        SET @BRANCH_TYPE =(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID))  
105
-- ROLE CUA USER LOGIN
106

    
107
-- KHAI BAO UY QUYEN KIEM NHIEM
108
        DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))  
109
  INSERT INTO @TABLE_ROLE(ROLE_AUTH)
110
        SELECT C.DisplayName
111
        FROM TL_USER A
112
        LEFT JOIN AbpUserRoles B ON A.ID = B.UserId
113
        LEFT JOIN AbpRoles C ON B.RoleId = C.Id
114
        WHERE A.TLNANME = @p_USER_LOGIN
115

    
116
  SET @ROLE_ID = (SELECT STRING_AGG(CONVERT(NVARCHAR (MAX), A.ROLE_AUTH), ',') FROM @TABLE_ROLE A) + ','
117

    
118
        INSERT INTO @TABLE_ROLE SELECT RoleDisplayName 
119
                                                        FROM SYS_PERMISSIONS_PAGE_FOR_USER A 
120
                                                        WHERE A.TLNAME = @p_USER_LOGIN
121
                                                        AND (DATEDIFF(DAY, CONVERT(DATE, A.EffectiveDate, 103) , CONVERT(DATE, GETDATE(), 103)) >= 0 OR A.EffectiveDate IS NULL OR A.EffectiveDate = '')
122
                                                        AND (DATEDIFF(DAY, CONVERT(DATE, A.ExpirationDate, 103) , CONVERT(DATE, GETDATE(), 103)) <= 0 OR A.ExpirationDate IS NULL OR A.ExpirationDate = '')
123
                                                        AND A.AUTH_STATUS = 'A' AND A.RECORD_STATUS = '1'
124
                                                        AND EXISTS(SELECT DT.PER_PAGE_FOR_USER_DT_ID FROM SYS_PERMISSIONS_PAGE_FOR_USER_DT DT WHERE DT.PER_PAGE_FOR_USER_ID = A.PER_PAGE_FOR_USER_ID AND DT.MENU_PERMISSION = @MENU_PERMISSON)
125

    
126
        --AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)  
127

    
128
-- PHONG BAN CUA USER LOGIN
129
        SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)  
130
        SET @DEP_ID =(SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID)  
131
        SET @KHOI_ID_LG =(SELECT KHOI_ID FROM CM_DEPARTMENT WHERE DEP_ID=@DEP_ID_LG) 
132
        SET @KHOI_ID =(SELECT KHOI_ID FROM CM_DEPARTMENT WHERE DEP_ID        = (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID))
133
        
134
        DECLARE @TMP_DEP TABLE(DEP_ID VARCHAR(15))  
135
        SET @COST_LG =(SELECT TOP 1 COST_ID FROM PL_COSTCENTER_DT WHERE DEP_ID =@DEP_ID_LG)  
136
        SET @DVDM_ID =(SELECT TOP 1 DVDM_ID FROM PL_COSTCENTER WHERE COST_ID =@COST_LG)  
137
        INSERT INTO @TMP_DEP SELECT B.DEP_ID FROM PL_COSTCENTER_DT B WHERE COST_ID =@COST_LG  
138
-- BRANCH_TYPE USER LOGIN
139
        DECLARE @BRANCH_TYPE_LG VARCHAR(15)  
140
        SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)  
141
-- KHAI BAO NHUNG PHONG BAN MA 1 USER KIEM NHIEM  
142
        DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR(15))  
143
        INSERT INTO @DEP_AUTH VALUES (@DEP_ID_LG)
144
        INSERT INTO @DEP_AUTH SELECT DEP_ID 
145
                                                  FROM SYS_PERMISSIONS_PAGE_FOR_USER A 
146
                                                  WHERE A.TLNAME = @P_USER_LOGIN  
147
                                                  AND (DATEDIFF(DAY, CONVERT(DATE, A.EffectiveDate, 103) , CONVERT(DATE, GETDATE(), 103)) >= 0 OR A.EffectiveDate IS NULL OR A.EffectiveDate = '')
148
                                                  AND (DATEDIFF(DAY, CONVERT(DATE, A.ExpirationDate, 103) , CONVERT(DATE, GETDATE(), 103)) <= 0 OR A.ExpirationDate IS NULL OR A.ExpirationDate = '')
149
                                                  AND A.AUTH_STATUS = 'A' AND A.RECORD_STATUS = '1'
150
                                                  AND EXISTS(SELECT DT.PER_PAGE_FOR_USER_DT_ID FROM SYS_PERMISSIONS_PAGE_FOR_USER_DT DT WHERE DT.PER_PAGE_FOR_USER_ID = A.PER_PAGE_FOR_USER_ID AND DT.MENU_PERMISSION = @MENU_PERMISSON)
151

    
152
        DECLARE @BRANCH_AUTH TABLE (BRN_AUTH VARCHAR(15))
153
        INSERT INTO @BRANCH_AUTH VALUES (@BRANCH_TYPE_LG)
154
        INSERT INTO @BRANCH_AUTH SELECT BRANCH_ID 
155
                                                         FROM SYS_PERMISSIONS_PAGE_FOR_USER A 
156
                                                         WHERE A.TLNAME = @P_USER_LOGIN 
157
                                                         AND (DATEDIFF(DAY, CONVERT(DATE, A.EffectiveDate, 103) , CONVERT(DATE, GETDATE(), 103)) >= 0 OR A.EffectiveDate IS NULL OR A.EffectiveDate = '')
158
                                                         AND (DATEDIFF(DAY, CONVERT(DATE, A.ExpirationDate, 103) , CONVERT(DATE, GETDATE(), 103)) <= 0 OR A.ExpirationDate IS NULL OR A.ExpirationDate = '')
159
                                                         AND A.AUTH_STATUS = 'A' AND A.RECORD_STATUS = '1'
160
                                                         AND EXISTS(SELECT DT.PER_PAGE_FOR_USER_DT_ID FROM SYS_PERMISSIONS_PAGE_FOR_USER_DT DT WHERE DT.PER_PAGE_FOR_USER_ID = A.PER_PAGE_FOR_USER_ID AND DT.MENU_PERMISSION = @MENU_PERMISSON)
161

    
162
-- LAY ROLE USER LOGIN
163
        DECLARE @ROLE_ID_TL_USER_V2 VARCHAR(50)
164
        IF(@ROLE_ID IS NOT NULL AND @ROLE_ID <>'' AND EXISTS(SELECT TOP 1 A.ROLE_NAME FROM TMP_ROLE_ADVANCE_PAYMENT_SEARCH A WHERE CHARINDEX(A.ROLE_NAME + ',', @ROLE_ID) > 0))  
165
        BEGIN  
166
                PRINT @ROLE_ID  
167
        END  
168
        ELSE  
169
        BEGIN  
170
                SET @ROLE_ID_TL_USER_V2 = (SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME = @p_USER_LOGIN)
171
                SET @ROLE_ID = @ROLE_ID + @ROLE_ID_TL_USER_V2 + ','
172
        END  
173
        --if(1=1)
174
        --begin
175
        --print 'role: ' + @ROLE_ID
176
        --return;
177
        --end
178
        IF(@p_TOP IS NULL OR @p_TOP=0)
179
        BEGIN
180
-- PAGING BEGIN 
181
                SELECT A.*, A.CONFIRM_NOTES AS CONFIRM_NOTE, '' as TEMP_PAY_STATUS ,ISNULL(B.AUTH_STATUS_NAME,N'Chờ duyệt') AS AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,  
182
                TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,  
183
                CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
184
                                                                                INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
185
                                                                                WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
186
                                                                                BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
187
                                                                                WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
188
                                                                                ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
189
                BR1.BRANCH_NAME BRANCH_NAME, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,  
190
                --Luanlt--2019/10/15-Sửa AL,AL1  
191
                BR1.BRANCH_CODE BRANCH_CODE_CRE, BR1.BRANCH_NAME AS BRANCH_NAME_CRE , AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,  
192
                A.REQ_AMT AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE ISNULL(A.PAY_AMT,0) END AS TOTAL_AMT_PAY_HIS,  
193
                TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,  
194
                TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,  
195
                PO.PO_CODE, PO.PO_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME,PM.PAY_PHASE AS KY_TAM_UNG,  
196
                DV.DVDM_CODE, DV.DVDM_NAME, CASE WHEN PC.ROLE_USER ='GDDV' THEN (SELECT RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) ELSE PC.ROLE_USER END AS ROLE_CONF, 
197
                --PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, 
198
                PR.PROCESS_DESC +N' vào lúc '+ ISNULL(FORMAT(PR.APP_DT,'dd/MM/yyyy H:mm:ss'),'') AS CONF_STATUS,
199
                --PC1.NOTES AS NEXT_STEP,  
200
                ---2021112 CAU HINH BUOC XU LY TIEP THEO PDN TAM UNG NOI BO
201
                CASE WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='E' THEN N'Phiếu đang chờ gửi phê duyệt' 
202
                WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='R' THEN N'Phiếu đang chờ GDV xử lý'
203
                WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='P' THEN N'Phiếu đang chờ KSV xử lý'
204
                WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='R' THEN N'Phiếu bị trả về đơn vị' 
205
                WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'')='' THEN N'Chờ cấp duyệt trung gian xác nhận'
206
                WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'') <> '' THEN N'Chờ trưởng đơn vị xác nhận'
207
                WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND   ISNULL(A.TRASFER_USER_RECIVE,'') = ''  AND ISNULL(A.PROCESS,'') = '' THEN N'Chờ trưởng đơn vị xác nhận'
208
                WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NOT NULL OR A.PROCESS ='0') THEN PC1.NOTES
209
                WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE <> 'DV0001' AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND (A.PROCESS IS NULL OR A.PROCESS ='') THEN N'Chờ cấp duyệt trung gian xác nhận'
210
                WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE<>'DV0001' AND (ISNULL(A.TRASFER_USER_RECIVE,'') ='' OR A.PROCESS ='0') THEN PC1.NOTES END AS NEXT_STEP,  
211
                PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,TL8.TLFullName AS RECIVER_MONEY_FULLNAME, CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR, BR.BRANCH_TYPE,@p_TYPE_SEARCH AS TYPE_SEARCH,  
212
                SR.ROLE_ID AS ROLE_ID_CRE, ISNULL(H.SOTIEN_TT,0) AS STTT, A.REQ_AMT - ISNULL(H.SOTIEN_TT,0) AS SL_CL,BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE, '' AS BRANCH_CODE_CONTRACT, '' AS BRANCH_NAME_CONTRACT,
213
                EXEC_USER = CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
214
                                                 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
215
                                                 ELSE TL2.TLNANME  
216
                                                 END
217
                -- doanptt 120522
218
                , C.AUTH_STATUS_KT_DESC,
219
                dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
220
                PC3.TLNAME AS EXEC_USER_KT,
221
                CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
222
                         ELSE 0 END AS NUMBER_OF_SEND_APPR, 
223
        -- NÂNG CẤP GD3: BO SUNG THÔNG TIN HOÀN ỨNG
224
                D.REQ_PAY_ID ID_HOAN_UNG, E.REQ_PAY_CODE SO_PHIEU_HOAN_UNG, E.APPROVE_DT_KT NGAY_HOAN_UNG
225

    
226
-- SELECT END
227
                FROM TR_REQ_ADVANCE_PAYMENT A  
228
                LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS  
229
                LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS  
230
                LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME  
231
                LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME  
232
                LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME  
233
                LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME  
234
                LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID  
235
                LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID  
236
                LEFT JOIN dbo.CM_DEPARTMENT DP ON A.DEP_ID= DP.DEP_ID  
237
                --Luanlt--2019/10/15-Sửa AL,AL1  
238
                LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE'  AND AL.CDTYPE = 'REQ_PAY_ADVANCE'--Loại thanh toán (Nội bộ/Thanh toán/Nợ)  
239
                LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'  AND AL1.CDTYPE = 'REQ_PAY_METHOD' --Hình thức thanh toán( Tiền mặt/Chuyển khoản)
240
                LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME  
241
                LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME  
242
                LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'  
243
                LEFT JOIN  
244
                (  
245
                SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID  
246
                ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID  
247
                LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'  
248
                LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'  
249
                LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'  
250
                LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'  
251
                LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'  
252
                LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID  
253
                OUTER APPLY ( SELECT TOP 1 P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P WHERE P.REQ_ID = A.REQ_PAY_ID ORDER BY ID DESC ) AS PR 
254
                LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND 
255
                (CHARINDEX(PC.ROLE_USER + ',', @ROLE_ID) > 0  OR EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_PAY_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN))
256
                AND PC.STATUS='C' 
257
                --LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND PC.STATUS='C'  
258
                LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C'  
259
                LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'  
260
                LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'  
261
                LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME  
262
                LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID  
263
                LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID  
264
        -- NÂNG CẤP GD3: BO SUNG THÔNG TIN HOÀN ỨNG
265
                LEFT JOIN TR_REQ_PAY_PERIOD B1 ON A.REQ_PAY_ID = B1.REQ_PAY_ID
266
                LEFT JOIN TR_REQ_PAY_PERIOD D ON B1.REQ_PAY_ID = D.AD_PAY_ID AND D.AUTH_STATUS_KT ='A' AND D.PAY_TYPE ='PAY' AND B1.PAY_PHASE = D.PAY_PHASE AND B1.OLD_INDEX = D.OLD_INDEX AND B1.NEW_INDEX = D.NEW_INDEX AND B1.CONTRACT_ID = D.CONTRACT_ID
267
                LEFT JOIN TR_REQ_PAYMENT E ON D.REQ_PAY_ID = E.REQ_PAY_ID
268
                WHERE 1=1  
269
                AND (A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='') 
270
                AND(A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID = '' OR @p_MAKER_ID IS NULL) 
271
                AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL)
272
                AND(PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL)
273
                AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
274
                AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)    
275
                AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)  
276
                --Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID  
277
                AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
278
                AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  
279
                AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH  
280
                AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
281
                --AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')  
282
                AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL)  
283
                AND        (        (A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' 
284
                                OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))        
285
                        )  
286
                AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) 
287
                AND        (        A.AUTH_STATUS=@p_AUTH_STATUS 
288
                                OR @p_AUTH_STATUS='' 
289
                                OR @p_AUTH_STATUS IS NULL 
290
                                OR (@p_AUTH_STATUS = 'W' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS IS NULL)
291
                                OR (@p_AUTH_STATUS = 'G' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS = '')
292
                                OR (        A.REQ_TYPE ='I' 
293
                                                AND A.AUTH_STATUS <>'A' 
294
                                                AND EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','GDK','KTT','PTGD','TGD','HDQT','TKTGD','TKHDQT'))
295
                                        )
296
                        )
297
                AND        (        (A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
298
                                OR        (A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N')
299
                                OR @p_IS_UPDATE_KT IS NULL 
300
                                OR @p_IS_UPDATE_KT=''
301
                        )  
302
                 
303
                AND
304
                (
305
                        (        @p_IS_TRANSFER='Y' 
306
                                 AND(
307
                                                @p_TYPE_SEARCH ='TKTGD' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1')
308
                        
309
                                         OR (
310
                                                        @p_TYPE_SEARCH ='TKHDQT' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2')
311
                                                )
312
                                         OR (
313
                                                        @p_TYPE_SEARCH ='KT' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)  OR A.AUTH_STATUS_KT ='A')
314
                                                )
315
                                        )
316
                        ) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
317
                        OR
318
                        (        @p_IS_TRANSFER='N' 
319
                                AND (
320
                                                (@p_TYPE_SEARCH ='TKTGD' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND  PROCESS_ID ='1') AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A') 
321
                                
322
                                                OR  (
323
                                                                @p_TYPE_SEARCH ='TKHDQT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2' AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A')
324
                                                        )
325
                                                OR  (
326
                                                                @p_TYPE_SEARCH ='KT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND (PROCESS_ID IS NULL OR PROCESS_ID ='' OR PROCESS_ID ='3')) AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A' 
327
                                                        )
328
                                        )
329
                        )
330
                        OR @p_IS_TRANSFER IS NULL 
331
                        OR @p_IS_TRANSFER=''
332
                ) 
333

    
334
                AND        (        (        (        @p_PROCESS='PM' 
335
                                                AND (A.REQ_AMT- ISNULL(A.PAY_AMT,0.00)) >0
336
                                        )  
337
                                        AND (        A.REQ_TYPE IN('I','D','P') 
338
                                                        OR        (        @DEP_ID_LG ='DEP000000000014' 
339
                                                                        AND A.REQ_TYPE IN ('I','P','D')
340
                                                                )
341
                                                )        
342
                                        AND        (        (        A.DEP_ID = @DEP_ID_LG 
343
                                                                OR A.MAKER_ID =@p_USER_LOGIN 
344
                                                                OR A.MAKER_ID IS NULL
345
                                                        ) 
346
                                                                OR        (        @BRANCH_TYPE_LG <>'HS' 
347
                                                                                AND A.BRANCH_ID =@p_BRANCH_LOGIN
348
                                                                        ) 
349
                                                                                OR (        @p_REQ_PAY_CODE IS NOT NULL 
350
                                                                                                AND @p_REQ_PAY_CODE <> '' 
351
                                                                                                AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
352
                                                                                        )
353
                                                )
354
                                )  
355
                                OR @p_PROCESS IS NULL OR @p_PROCESS =''
356
                        )  
357
                AND        (        (        @p_LEVEL='ALL' 
358
                                        AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
359
                                )  
360
                                OR        (        (        @p_LEVEL='UNIT' 
361
                                                        AND A.BRANCH_ID=@p_BRANCH_ID
362
                                                )
363
                                                OR        (        @p_BRANCH_ID='' 
364
                                                                OR @p_BRANCH_ID IS NULL
365
                                                        ) 
366
                                                OR        (        @p_REQ_PAY_CODE IS NOT NULL 
367
                                                                        AND @p_REQ_PAY_CODE <> '' 
368
                                                                        AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
369
                                                        )
370
                                        )
371
                        )    
372
                AND (        (        @p_FUNCTION ='KT' 
373
                                        AND (        EXISTS        (        SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X 
374
                                                                                WHERE X.REQ_ID = A.REQ_PAY_ID 
375
                                                                                AND (        X.TLNAME= @p_USER_LOGIN 
376
                                                                                                OR X.TLNAME =@p_EXEC_USER_KT
377
                                                                                        )
378
                                                                        )
379
                                                ) 
380
                                        OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT ='A'
381
                                )  
382
                                OR @p_FUNCTION IS NULL 
383
                                OR @p_FUNCTION ='' 
384
                                OR (@p_FUNCTION ='TF' AND A.AUTH_STATUS='A') 
385
                                OR @p_FUNCTION ='SIGN'
386
                        )
387
                AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='')    
388
                AND        (        EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS_CHILD 
389
                                                        WHERE TLNAME =@p_TRASFER_USER_RECIVE 
390
                                                        AND TYPE_JOB IN ('XL','KS','TP') 
391
                                                        AND REQ_ID = A.REQ_PAY_ID
392
                                                ) 
393
                                OR @p_TRASFER_USER_RECIVE IS NULL 
394
                                OR @p_TRASFER_USER_RECIVE=''
395
                        )  
396
                AND        (        A.MAKER_ID =@p_USER_LOGIN OR @p_USER_LOGIN = 'baotq'
397
                                OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))  
398
                                OR        (        A.AUTH_STATUS <>'E' AND A.AUTH_STATUS <> 'R'
399
                                                AND        (        (        @p_TYPE_SEARCH ='HC'        -- NEU LA PHIEU DE NGHI TAM UNG NOI BO
400
                                                                        AND @BRANCH_TYPE_LG ='HS' 
401
                                                                        AND A.REQ_TYPE ='I'  
402
                                                                        AND (        (        EXISTS        (        SELECT * FROM @TABLE_ROLE 
403
                                                                                                                        WHERE ROLE_AUTH IN ('GDDV','TP', 'PP', 'KTT','TC')
404
                                                                                                                ) 
405
                                                                                                AND (        A.BRANCH_ID =@p_BRANCH_LOGIN 
406
                                                                                                                OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
407
                                                                                                        )
408
                                                                                                AND (A.DEP_ID = @DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
409
                                                                                                AND        (        (        @p_AUTH_STATUS ='A' 
410
                                                                                                                        AND ISNULL(A.PROCESS,'') ='0' 
411
                                                                                                                        AND        EXISTS        (        SELECT * FROM PL_PROCESS 
412
                                                                                                                                                        WHERE REQ_ID =A.REQ_PAY_ID 
413
                                                                                                                                                        AND PROCESS_DESC IN (N'Trưởng đơn vị xác nhận phiếu',N'Cấp phê duyệt trung gian xác nhận phiếu')
414
                                                                                                                                                )
415
                                                                                                                        OR (@p_AUTH_STATUS ='U' AND (ISNULL(A.PROCESS,'')='')) 
416
                                                                                                                        OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS =''
417
                                                                                                                )
418
                                                                                                        )
419
                                                                                        ) 
420
                                                                                        OR        (        (CHARINDEX('NVMS,', @ROLE_ID) > 0 OR CHARINDEX('NVTT,', @ROLE_ID) > 0 OR CHARINDEX('TBP,', @ROLE_ID) > 0)
421
                                                                                                        AND        (        A.TRASFER_USER_RECIVE = @p_USER_LOGIN  
422
                                                                                                                        OR A.MAKER_ID =@p_MAKER_ID 
423
                                                                                                                        OR A.DEP_ID=@p_DEP_ID
424
                                                                                                                )
425
                                                                                                        AND (A.AUTH_STATUS =@p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS,'') ='')
426
                                                                                                )
427
                                                                                        OR        (        EXISTS        (        SELECT * FROM @TABLE_ROLE 
428
                                                                                                                                WHERE ROLE_AUTH  IN ('GDK')
429
                                                                                                                        ) 
430
                                                                                                        AND        (        DP.KHOI_ID =@DVDM_ID 
431
                                                                                                                        OR A.DVDM_ID = @DVDM_ID
432
                                                                                                                ) 
433
                                                                                                        AND EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS 
434
                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID
435
                                                                                                                                        AND ROLE_USER IN (        SELECT * FROM @TABLE_ROLE) 
436
                                                                                                                                        -- AND A.BRANCH_CREATE ='DV0001' 
437
                                                                                                                                        AND A.PROCESS<>'' 
438
                                                                                                                                        AND A.PROCESS IS NOT NULL
439
                                                                                                                                        AND        (        (        @p_AUTH_STATUS ='A' 
440
                                                                                                                                                                AND STATUS IN ('P','A')
441
                                                                                                                                                        ) 
442
                                                                                                                                                        OR        (        @p_AUTH_STATUS = 'U' AND STATUS ='C') 
443
                                                                                                                                                        OR        (        ISNULL(@p_AUTH_STATUS,'') ='' 
444
                                                                                                                                                                        AND STATUS IN ('C','P','A')
445
                                                                                                                                                                )
446
                                                                                                                                                )
447
                                                                                                                                )
448
                                                                                                )
449
                                                                                        OR        (        EXISTS        (        SELECT * FROM @TABLE_ROLE 
450
                                                                                                                                WHERE ROLE_AUTH  IN ('PTGD')
451
                                                                                                                        ) 
452
                                                                                                        AND        (        A.DVDM_ID =@DVDM_ID 
453
                                                                                                                        OR (        A.DVDM_ID IS NULL 
454
                                                                                                                                        OR A.DVDM_ID =''
455
                                                                                                                                )
456
                                                                                                                ) 
457
                                                                                                        AND EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS 
458
                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID
459
                                                                                                                                        AND ROLE_USER IN (        SELECT * FROM @TABLE_ROLE) 
460
                                                                                                                                        -- AND A.BRANCH_CREATE ='DV0001' 
461
                                                                                                                                        AND A.PROCESS<>'' 
462
                                                                                                                                        AND A.PROCESS IS NOT NULL
463
                                                                                                                                        AND        (        (        @p_AUTH_STATUS ='A' 
464
                                                                                                                                                                AND STATUS IN ('P','A')
465
                                                                                                                                                        ) 
466
                                                                                                                                                        OR        (        @p_AUTH_STATUS = 'U' AND STATUS ='C') 
467
                                                                                                                                                        OR        (        ISNULL(@p_AUTH_STATUS,'') ='' 
468
                                                                                                                                                                        AND STATUS IN ('C','P','A')
469
                                                                                                                                                                )
470
                                                                                                                                                )
471
                                                                                                                                )
472
                                                                                                        AND (        @KHOI_ID_LG = (SELECT KHOI_ID FROM CM_DEPARTMENT WHERE DEP_ID        = (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = A.REQ_PAY_ID))
473
                                                                                                                        OR        (        @p_USER_LOGIN = 'tupa' AND (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = A.REQ_PAY_ID) = 'DEP000000000015')
474
                                                                                                                        OR EXISTS        (        SELECT TOP 1 DVDM_ID FROM PL_REQUEST_PROCESS 
475
                                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID        AND DVDM_ID = @KHOI_ID_LG
476
                                                                                                                                                )
477
                                                                                                                )
478
                                                                                                )
479
                                                                                        OR        (        EXISTS        (        SELECT * 
480
                                                                                                                                FROM @TABLE_ROLE 
481
                                                                                                                                WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) 
482
                                                                                                                                AND EXISTS        (        SELECT * 
483
                                                                                                                                                                FROM PL_REQUEST_PROCESS        
484
                                                                                                                                                                WHERE REQ_ID = A.REQ_PAY_ID
485
                                                                                                                                                                AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) 
486
                                                                                                                                                                --AND A.BRANCH_CREATE ='DV0001' 
487
                                                                                                                                                                AND A.PROCESS<>'' 
488
                                                                                                                                                                AND A.PROCESS IS NOT NULL
489
                                                                                                                                                                AND (        (        @p_AUTH_STATUS ='A' 
490
                                                                                                                                                                                        AND STATUS IN ('P','A')
491
                                                                                                                                                                                ) 
492
                                                                                                                                                                                OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') 
493
                                                                                                                                                                                OR(ISNULL(@p_AUTH_STATUS,'') ='' )
494
                                                                                                                                                                        )
495
                                                                                                                                                        )
496
                                                                                                )
497
                                                                                        -- USER HOI SO KIEM NHIEM GDDV TAI CHI NHANH
498
                                                                                        OR        (        EXISTS        (        SELECT * 
499
                                                                                                                                FROM SYS_PERMISSIONS_PAGE_FOR_USER TLS 
500
                                                                                                                                WHERE 1=1
501
                                                                                                                                AND ISNULL(A.BRANCH_ID, '') <> '' AND ISNULL(A.BRANCH_ID, '') <> 'DV0001'
502
                                                                                                                                AND TLS.TLNAME = @p_USER_LOGIN
503
                                                                                                                                AND TLS.RoleDisplayName IN ('GDDV')
504
                                                                                                                                AND TLS.BRANCH_ID = A.BRANCH_ID
505
                                                                                                                                AND (DATEDIFF(DAY, CONVERT(DATE, TLS.EffectiveDate, 103) , CONVERT(DATE, GETDATE(), 103)) >= 0 OR TLS.EffectiveDate IS NULL OR TLS.EffectiveDate = '')
506
                                                                                                                                AND (DATEDIFF(DAY, CONVERT(DATE, TLS.ExpirationDate, 103) , CONVERT(DATE, GETDATE(), 103)) <= 0 OR TLS.ExpirationDate IS NULL OR TLS.ExpirationDate = '')
507
                                                                                                                                AND EXISTS(SELECT DT.PER_PAGE_FOR_USER_DT_ID FROM SYS_PERMISSIONS_PAGE_FOR_USER_DT DT WHERE DT.PER_PAGE_FOR_USER_ID = TLS.PER_PAGE_FOR_USER_ID AND DT.MENU_PERMISSION = @MENU_PERMISSON)
508
                                                                                                                                AND TLS.AUTH_STATUS = 'A'
509
                                                                                                                                AND TLS.RECORD_STATUS = '1'
510
                                                                                                                        )
511
                                                                                                )
512

    
513
                                                                                )-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW 1
514
                                                                )        -- ngoac so 2, line 347
515
-- NGUOC LAI NEU LA TAM UNG KHAC
516
                                                                OR        (        @p_TYPE_SEARCH ='HC' 
517
                                                                                AND @BRANCH_TYPE_LG ='HS' 
518
                                                                                AND A.REQ_TYPE <> 'I' 
519
                                                                                AND        (        A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
520
                                                                                                OR        (        EXISTS(SELECT TOP 1 A.ROLE_NAME FROM TMP_ROLE_ADVANCE_PAYMENT_SEARCH A WHERE A.ROLE_NAME IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') AND CHARINDEX(A.ROLE_NAME + ',', @ROLE_ID) > 0)
521
                                                                                                                AND (        A.BRANCH_ID =@p_BRANCH_LOGIN 
522
                                                                                                                                OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)
523
                                                                                                                        )        
524
                                                                                                                AND        (        A.DEP_ID =@DEP_ID_LG 
525
                                                                                                                                                OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
526
                                                                                                                        )  
527
                                                                                                                AND        (        A.TRASFER_USER_RECIVE IS NULL 
528
                                                                                                                                OR A.TRASFER_USER_RECIVE ='' 
529
                                                                                                                                OR        (        A.TRASFER_USER_RECIVE IS NOT NULL 
530
                                                                                                                                                AND A.TRASFER_USER_RECIVE <>'' 
531
                                                                                                                                                AND A.PROCESS IS NOT NULL 
532
                                                                                                                                        )
533
                                                                                                                        )
534
                                                                                                        )  
535
                                                                                                OR        (        EXISTS(SELECT TOP 1 A.ROLE_NAME FROM TMP_ROLE_ADVANCE_PAYMENT_SEARCH A WHERE A.ROLE_NAME NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') AND CHARINDEX(A.ROLE_NAME + ',', @ROLE_ID) > 0) 
536
                                                                                                                AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
537
                                                                                                        )  
538
                                                                                        )
539
                                                                        )
540
                                                                        -- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG
541
                                                                OR        (        @p_TYPE_SEARCH ='HC' 
542
                                                                                AND @BRANCH_TYPE_LG = 'CN' 
543
                                                                                AND (        EXISTS(SELECT TOP 1 A.ROLE_NAME FROM TMP_ROLE_ADVANCE_PAYMENT_SEARCH A WHERE A.ROLE_NAME IN ('GDDV','PGD','TPGD','PPGD') AND CHARINDEX(A.ROLE_NAME + ',', @ROLE_ID) > 0) 
544
                                                                                                AND        (        (        A.TRASFER_USER_RECIVE IS NOT NULL 
545
                                                                                                                        AND A.TRASFER_USER_RECIVE <>'' 
546
                                                                                                                        AND A.PROCESS IS NOT NULL 
547
                                                                                                                )  
548
                                                                                                                OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL
549
                                                                                                        )  
550

    
551
                                                                                                OR        (        (        A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
552
                                                                                                                        AND A.TRASFER_USER_RECIVE IS NOT NULL 
553
                                                                                                                        AND A.TRASFER_USER_RECIVE <>''
554
                                                                                                                ) 
555
                                                                                                                OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
556
                                                                                                        )  
557
                                                                                                AND A.BRANCH_ID IN (SELECT * FROM @tmp)
558
                                                                                        )
559
                                                                        )  
560
                                                                OR        (        @p_TYPE_SEARCH ='HC' 
561
                                                                                AND @BRANCH_TYPE_LG = 'CN' 
562
                                                                                AND A.BRANCH_ID IN (SELECT * FROM @tmp)
563
                                                                        )  
564
                                                                OR        (        @p_TYPE_SEARCH ='HC' 
565
                                                                                AND @BRANCH_TYPE_LG = 'PGD' 
566
                                                                                AND        ( EXISTS(SELECT TOP 1 A.ROLE_NAME FROM TMP_ROLE_ADVANCE_PAYMENT_SEARCH A WHERE A.ROLE_NAME IN ('GDDV','TPGD','PPGD','PGD') AND CHARINDEX(A.ROLE_NAME + ',', @ROLE_ID) > 0) 
567
                                                                                                AND A.BRANCH_ID =@p_BRANCH_LOGIN
568
                                                                                        )
569
                                                                        )  
570
                                                                OR        (        @p_TYPE_SEARCH ='HC' 
571
                                                                                AND        (        A.DVDM_ID IS NOT NULL 
572
                                                                                                AND A.DVDM_ID <>'' 
573
                                                                                                AND A.DVDM_ID =@DVDM_ID 
574
                                                                                                AND A.PROCESS IS NOT NULL 
575
                                                                                                AND A.PROCESS <>'' 
576
                                                                                                AND        EXISTS(SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND CHARINDEX(ROLE_USER + ',', @ROLE_ID) > 0)
577
                                                                                        ) 
578
                                                                                OR        (        A.DEP_ID IN (SELECT * FROM @TMP_DEP) 
579
                                                                                                AND A.PROCESS IS NOT NULL 
580
                                                                                                AND A.PROCESS <>''  
581
                                                                                                AND CHARINDEX('TKTGD,', @ROLE_ID) = 0
582
                                                                                                AND        EXISTS(SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND CHARINDEX(ROLE_USER + ',', @ROLE_ID) > 0)
583
                                                                                        )
584
                                                                        )  
585
                                                                --OR(@p_TYPE_SEARCH ='HC' AND (@ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID= A.REQ_PAY_ID AND ROLE_USER IN ('TGD','HDQT','TKTGD','TKHDQT') AND STATUS ='C')))  
586
                                                                OR        (        @p_TYPE_SEARCH='KT' 
587
                                                                                AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
588
                                                                        )  
589
                                                                OR        (        @p_TYPE_SEARCH='HC' 
590
                                                                                AND        ((CHARINDEX('KSV,', @ROLE_ID) > 0 OR CHARINDEX('GDV,', @ROLE_ID) > 0)  
591
                                                                                                OR @DEP_ID_LG ='DEP000000000022'
592
                                                                                        ) 
593
                                                                                AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
594
                                                                        )  
595
                                                                OR        (        @p_TYPE_SEARCH='HC' AND (        EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS_CHILD 
596
                                                                                                                                                                WHERE REQ_ID = A.REQ_PAY_ID 
597
                                                                                                                                                                AND TLNAME =@p_USER_LOGIN 
598
                                                                                                                                                                AND TYPE_JOB ='XL' 
599
                                                                                                                                                                AND STATUS_JOB = 'C' 
600
                                                                                                                                                                AND ISNULL(A.AUTH_STATUS, '') <> 'A'
601
                                                                                                                                                        ) 
602
                                                                                                                                        OR EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS_CHILD 
603
                                                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID 
604
                                                                                                                                                                        AND TLNAME =@p_USER_LOGIN 
605
                                                                                                                                                                        AND TYPE_JOB ='XL' 
606
                                                                                                                                                                        AND STATUS_JOB = 'P' 
607
                                                                                                                                                                        AND        (        ISNULL(A.AUTH_STATUS, '') = 'A'
608
                                                                                                                                                                                                                                                                                                                                                                                                                                                                OR EXISTS        (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TYPE_JOB ='KS' AND STATUS_JOB = 'C')
609
                                                                                                                                                                                                                                                                                                                                                                                                                                                        )
610
                                                                                                                                                                )
611
                                                                                                                                )
612
                                                                        ) 
613
                                                                OR        (        @p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') 
614
                                                                                AND A.PROCESS<>'' 
615
                                                                                AND A.PROCESS IS NOT NULL
616
                                                                                AND (        (        @p_FUNCTION ='TF' AND  EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS 
617
                                                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID 
618
                                                                                                                                                                        AND CHARINDEX(ROLE_USER + ',', @ROLE_ID) > 0
619
                                                                                                                                                                        AND STATUS ='C'
620
                                                                                                                                                                )
621
                                                                                                )
622
                                                                                                OR        (        ISNULL(@p_FUNCTION,'') <> 'TF' 
623
                                                                                                                AND EXISTS(        SELECT * 
624
                                                                                                                                        FROM PL_REQUEST_PROCESS 
625
                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID 
626
                                                                                                                                        AND CHARINDEX(ROLE_USER + ',', @ROLE_ID) > 0 
627
                                                                                                                                        AND (        (@p_IS_TRANSFER = N'N' AND STATUS ='C') 
628
                                                                                                                                                        OR        (        @p_IS_TRANSFER <>'N' 
629
                                                                                                                                                                        AND STATUS IN ('C','P')
630
                                                                                                                                                                )
631
                                                                                                                                                )
632
                                                                                                                                        )
633
                                                                                                        )
634
                                                                                        )
635
                                                                        )
636
                                                                OR        (        @p_TYPE_SEARCH='PAY' 
637
                                                                                AND (        A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 
638
                                                                                AND        (        (        @BRANCH_TYPE_LG ='HS' 
639
                                                                                                        AND        (        A.DEP_ID =@DEP_ID_LG 
640
                                                                                                                        OR A.MAKER_ID =@p_USER_LOGIN 
641
                                                                                                                        OR A.MAKER_ID IS NULL 
642
                                                                                                                        OR 1=1
643
                                                                                                                )
644
                                                                                                ) 
645
                                                                                                OR        (        @BRANCH_TYPE_LG <> 'HS' 
646
                                                                                                                AND A.BRANCH_ID = @p_BRANCH_LOGIN
647
                                                                                                        )
648
                                                                                                OR        (        @p_REQ_PAY_CODE IS NOT NULL 
649
                                                                                                                AND @p_REQ_PAY_CODE <> '' 
650
                                                                                                                AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
651
                                                                                                        )
652
                                                                                        )
653
                                                                        )  
654
                                                        ) -- ngoac so 1, line 347
655
                                                OR        (        @p_TYPE_SEARCH='HC' 
656
                                                                AND        ((CHARINDEX('KSV,', @ROLE_ID) > 0 OR CHARINDEX('GDV,', @ROLE_ID) > 0)
657
                                                                                OR @DEP_ID_LG ='DEP000000000022'
658
                                                                        ) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
659
                                                        )
660
                                        ) -- line 346
661
                        ) -- line 344
662
                AND        (        (        A.PAY_AMT = A.REQ_AMT 
663
                                        AND (@p_TEMP_PAY_STATUS = 'HT')
664
                                )  
665
                                OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') )  
666
                                OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU'))  
667
                                OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = ''  
668
                        )  
669
                AND        (        A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X')
670
                ORDER BY A.CREATE_DT DESC   
671
-- PAGING END
672
        END;
673
        ELSE 
674
        BEGIN
675
-- PAGING BEGIN 
676
                SELECT A.*, A.CONFIRM_NOTES AS CONFIRM_NOTE,'' as TEMP_PAY_STATUS ,ISNULL(B.AUTH_STATUS_NAME,N'Chờ duyệt') AS AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,  
677
                TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,  
678
                CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
679
                                                                                INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
680
                                                                                WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
681
                                                                                BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
682
                                                                                WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
683
                                                                                ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ, 
684
                BR1.BRANCH_NAME BRANCH_NAME, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,  
685
                --Luanlt--2019/10/15-Sửa AL,AL1  
686
                BR1.BRANCH_CODE BRANCH_CODE_CRE, BR1.BRANCH_NAME AS BRANCH_NAME_CRE , AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,  
687
                A.REQ_AMT AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE ISNULL(A.PAY_AMT,0) END AS TOTAL_AMT_PAY_HIS,  
688
                TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,  
689
                TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,  
690
                PO.PO_CODE, PO.PO_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME,PM.PAY_PHASE AS KY_TAM_UNG,  
691
                DV.DVDM_CODE, DV.DVDM_NAME, CASE WHEN PC.ROLE_USER ='GDDV' THEN (SELECT RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) ELSE PC.ROLE_USER END AS ROLE_CONF, 
692
                --PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, 
693
                PR.PROCESS_DESC +N' vào lúc '+ ISNULL(FORMAT(PR.APP_DT,'dd/MM/yyyy H:mm:ss'),'') AS CONF_STATUS,
694
                --PC1.NOTES AS NEXT_STEP,  
695
                ---2021112 CAU HINH BUOC XU LY TIEP THEO PDN TAM UNG NOI BO
696
                CASE WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='E' THEN N'Phiếu đang chờ gửi phê duyệt' 
697
                WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='R' THEN N'Phiếu đang chờ GDV xử lý'
698
                WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='P' THEN N'Phiếu đang chờ KSV xử lý'
699
                WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='R' THEN N'Phiếu bị trả về đơn vị' 
700
                WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'')='' THEN N'Chờ cấp duyệt trung gian xác nhận'
701
                WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'') <> '' THEN N'Chờ trưởng đơn vị xác nhận'
702
                WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND   ISNULL(A.TRASFER_USER_RECIVE,'') = ''  AND ISNULL(A.PROCESS,'') = '' THEN N'Chờ trưởng đơn vị xác nhận'
703
                WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NOT NULL OR A.PROCESS ='0') THEN PC1.NOTES
704
                WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE <> 'DV0001' AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND (A.PROCESS IS NULL OR A.PROCESS ='') THEN N'Chờ cấp duyệt trung gian xác nhận'
705
                WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE<>'DV0001' AND (ISNULL(A.TRASFER_USER_RECIVE,'') ='' OR A.PROCESS ='0') THEN PC1.NOTES END AS NEXT_STEP,  
706
                PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB, TL8.TLFullName AS RECIVER_MONEY_FULLNAME, CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR, BR.BRANCH_TYPE,@p_TYPE_SEARCH AS TYPE_SEARCH,  
707
                SR.ROLE_ID AS ROLE_ID_CRE, ISNULL(H.SOTIEN_TT,0) AS STTT, A.REQ_AMT - ISNULL(H.SOTIEN_TT,0) AS SL_CL,BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE, '' AS BRANCH_CODE_CONTRACT, '' AS BRANCH_NAME_CONTRACT,
708
                EXEC_USER = CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
709
                                                 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
710
                                                 ELSE TL2.TLNANME  
711
                                                 END
712
                -- doanptt 120522
713
                , C.AUTH_STATUS_KT_DESC,
714
                dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
715
                PC3.TLNAME AS EXEC_USER_KT,
716
                CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
717
                         ELSE 0 END AS NUMBER_OF_SEND_APPR
718
        -- NÂNG CẤP GD3: BO SUNG THÔNG TIN HOÀN ỨNG
719
        ,D.REQ_PAY_ID ID_HOAN_UNG, E.REQ_PAY_CODE SO_PHIEU_HOAN_UNG, E.APPROVE_DT_KT NGAY_HOAN_UNG
720
-- SELECT END
721
                FROM TR_REQ_ADVANCE_PAYMENT A  
722
                LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS  
723
                LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS  
724
                LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME  
725
                LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME  
726
                LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME  
727
                LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME  
728
                LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID  
729
                LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID  
730
                LEFT JOIN dbo.CM_DEPARTMENT DP ON A.DEP_ID= DP.DEP_ID  
731
                --Luanlt--2019/10/15-Sửa AL,AL1  
732
                LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE'  AND AL.CDTYPE = 'REQ_PAY_ADVANCE'--Loại thanh toán (Nội bộ/Thanh toán/Nợ)  
733
                LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'  AND AL1.CDTYPE = 'REQ_PAY_METHOD' --Hình thức thanh toán( Tiền mặt/Chuyển khoản)
734
                LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME  
735
                LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME  
736
                LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'  
737
                LEFT JOIN  
738
                (  
739
                SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID  
740
                ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID  
741
                LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'  
742
                LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'  
743
                LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'  
744
                LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'  
745
                LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'  
746
                LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID  
747
                OUTER APPLY ( SELECT TOP 1 P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P WHERE P.REQ_ID = A.REQ_PAY_ID ORDER BY ID DESC ) AS PR
748
                LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND 
749
                (CHARINDEX(PC.ROLE_USER + ',', @ROLE_ID) > 0 OR EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_PAY_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN))
750
                AND PC.STATUS='C'  
751
                --LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND PC.STATUS='C'  
752
                LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C'  
753
                LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'  
754
                LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'  
755
                LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME  
756
                LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID  
757
                LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID  
758
                LEFT JOIN TR_REQ_PAY_SCHEDULE D ON A.REQ_PAY_ID = D.REQ_ADV_ID AND D.TRN_TYPE ='PAY' AND D.AUTH_STATUS_KT ='A'  AND A.PAY_PHASE = D.PAY_PHASE AND A.REF_ID = D.REF_ID AND D.PROCESS = '2'        --PDN THANH TOAN
759
                LEFT JOIN TR_REQ_PAYMENT E ON D.REQ_PAY_ID = E.REQ_PAY_ID
760
                WHERE 1=1  
761
                AND (A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='')  
762
                AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL) 
763
                AND(A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID = '' OR @p_MAKER_ID IS NULL) 
764
                AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL)  
765
                AND(PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL)
766
                AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)    
767
                AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)  
768
                --Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID  
769
                AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
770
                AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  
771
                AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH  
772
                AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
773
                --AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')  
774
                AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL)  
775
                AND((A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S')))  
776
                AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) 
777
                AND        (        A.AUTH_STATUS=@p_AUTH_STATUS 
778
                                OR @p_AUTH_STATUS='' 
779
                                OR @p_AUTH_STATUS IS NULL 
780
                                OR (@p_AUTH_STATUS = 'W' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS IS NULL)
781
                                OR (@p_AUTH_STATUS = 'G' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS = '')
782
                                OR (        A.REQ_TYPE ='I' 
783
                                                AND A.AUTH_STATUS <>'A' 
784
                                                AND EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','GDK','KTT','PTGD','TGD','HDQT','TKTGD','TKHDQT'))
785
                                        )
786
                        )
787
                AND        (        (A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
788
                                OR        (A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N')
789
                                OR @p_IS_UPDATE_KT IS NULL 
790
                                OR @p_IS_UPDATE_KT=''
791
                        )  
792
                 
793
                AND
794
                (
795
                        (        @p_IS_TRANSFER='Y' 
796
                                 AND(
797
                                                @p_TYPE_SEARCH ='TKTGD' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1')
798
                        
799
                                         OR (
800
                                                        @p_TYPE_SEARCH ='TKHDQT' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2')
801
                                                )
802
                                         OR (
803
                                                        @p_TYPE_SEARCH ='KT' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)  OR A.AUTH_STATUS_KT ='A')
804
                                                )
805
                                        )
806
                        ) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
807
                        OR
808
                        (        @p_IS_TRANSFER='N' 
809
                                AND (
810
                                                (@p_TYPE_SEARCH ='TKTGD' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND  PROCESS_ID ='1') AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A') 
811
                                
812
                                                OR  (
813
                                                                @p_TYPE_SEARCH ='TKHDQT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2' AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A')
814
                                                        )
815
                                                OR  (
816
                                                                @p_TYPE_SEARCH ='KT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND (PROCESS_ID IS NULL OR PROCESS_ID ='' OR PROCESS_ID ='3')) AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A' 
817
                                                        )
818
                                        )
819
                        )
820
                        OR @p_IS_TRANSFER IS NULL 
821
                        OR @p_IS_TRANSFER=''
822
                ) 
823

    
824
                AND        (        (        (        @p_PROCESS='PM' 
825
                                                AND (A.REQ_AMT- ISNULL(A.PAY_AMT,0.00)) >0
826
                                        )  
827
                                        AND (        A.REQ_TYPE IN('I','D','P') 
828
                                                        OR        (        @DEP_ID_LG ='DEP000000000014' 
829
                                                                        AND A.REQ_TYPE IN ('I','P','D')
830
                                                                )
831
                                                )        
832
                                        AND        (        (        A.DEP_ID = @DEP_ID_LG 
833
                                                                OR A.MAKER_ID =@p_USER_LOGIN 
834
                                                                OR A.MAKER_ID IS NULL
835
                                                        ) 
836
                                                                OR        (        @BRANCH_TYPE_LG <>'HS' 
837
                                                                                AND A.BRANCH_ID =@p_BRANCH_LOGIN
838
                                                                        ) 
839
                                                                                OR (        @p_REQ_PAY_CODE IS NOT NULL 
840
                                                                                                AND @p_REQ_PAY_CODE <> '' 
841
                                                                                                AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
842
                                                                                        )
843
                                                )
844
                                )  
845
                                OR @p_PROCESS IS NULL OR @p_PROCESS =''
846
                        )  
847
                AND        (        (        @p_LEVEL='ALL' 
848
                                        AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
849
                                )  
850
                                OR        (        (        @p_LEVEL='UNIT' 
851
                                                        AND A.BRANCH_ID=@p_BRANCH_ID
852
                                                )
853
                                                OR        (        @p_BRANCH_ID='' 
854
                                                                OR @p_BRANCH_ID IS NULL
855
                                                        ) 
856
                                                OR        (        @p_REQ_PAY_CODE IS NOT NULL 
857
                                                                        AND @p_REQ_PAY_CODE <> '' 
858
                                                                        AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
859
                                                        )
860
                                        )
861
                        )    
862
                AND (        (        @p_FUNCTION ='KT' 
863
                                        AND (        EXISTS        (        SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X 
864
                                                                                WHERE X.REQ_ID = A.REQ_PAY_ID 
865
                                                                                AND (        X.TLNAME= @p_USER_LOGIN 
866
                                                                                                OR X.TLNAME =@p_EXEC_USER_KT
867
                                                                                        )
868
                                                                        )
869
                                                ) 
870
                                        OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT ='A'
871
                                )  
872
                                OR @p_FUNCTION IS NULL 
873
                                OR @p_FUNCTION ='' 
874
                                OR (@p_FUNCTION ='TF' AND A.AUTH_STATUS='A') 
875
                                OR @p_FUNCTION ='SIGN'
876
                        )
877
                AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='')    
878
                AND        (        EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS_CHILD 
879
                                                        WHERE TLNAME =@p_TRASFER_USER_RECIVE 
880
                                                        AND TYPE_JOB IN ('XL','KS','TP') 
881
                                                        AND REQ_ID = A.REQ_PAY_ID
882
                                                ) 
883
                                OR @p_TRASFER_USER_RECIVE IS NULL 
884
                                OR @p_TRASFER_USER_RECIVE=''
885
                        )  
886
                AND        (        A.MAKER_ID =@p_USER_LOGIN 
887
                                OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))  
888
                                OR        (        A.AUTH_STATUS <>'E' AND A.AUTH_STATUS <> 'R'
889
                                                AND        (        (        @p_TYPE_SEARCH ='HC'        -- NEU LA PHIEU DE NGHI TAM UNG NOI BO
890
                                                                        AND @BRANCH_TYPE_LG ='HS' 
891
                                                                        AND A.REQ_TYPE ='I'  
892
                                                                        AND (        (        EXISTS        (        SELECT * FROM @TABLE_ROLE 
893
                                                                                                                        WHERE ROLE_AUTH IN ('GDDV','TP', 'PP', 'KTT','TC')
894
                                                                                                                ) 
895
                                                                                                AND (        A.BRANCH_ID =@p_BRANCH_LOGIN 
896
                                                                                                                OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
897
                                                                                                        )
898
                                                                                                AND (A.DEP_ID = @DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
899
                                                                                                AND        (        (        @p_AUTH_STATUS ='A' 
900
                                                                                                                        AND ISNULL(A.PROCESS,'') ='0' 
901
                                                                                                                        AND        EXISTS        (        SELECT * FROM PL_PROCESS 
902
                                                                                                                                                        WHERE REQ_ID =A.REQ_PAY_ID 
903
                                                                                                                                                        AND PROCESS_DESC IN (N'Trưởng đơn vị xác nhận phiếu',N'Cấp phê duyệt trung gian xác nhận phiếu')
904
                                                                                                                                                )
905
                                                                                                                        OR (@p_AUTH_STATUS ='U' AND ISNULL(A.PROCESS,'')='') 
906
                                                                                                                        OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS =''
907
                                                                                                                )
908
                                                                                                        )
909
                                                                                        ) 
910
                                                                                        OR        ((CHARINDEX('NVMS,', @ROLE_ID) > 0 OR CHARINDEX('NVTT,', @ROLE_ID) > 0 OR CHARINDEX('TBP,', @ROLE_ID) > 0)
911
                                                                                                        AND        (        A.TRASFER_USER_RECIVE = @p_USER_LOGIN  
912
                                                                                                                        OR A.MAKER_ID =@p_MAKER_ID 
913
                                                                                                                        OR A.DEP_ID=@p_DEP_ID
914
                                                                                                                )
915
                                                                                                        AND (A.AUTH_STATUS =@p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS,'') ='')
916
                                                                                                )
917
                                                                                        OR        (        EXISTS        (        SELECT * FROM @TABLE_ROLE 
918
                                                                                                                                WHERE ROLE_AUTH  IN ('GDK')
919
                                                                                                                        ) 
920
                                                                                                        AND        (        DP.KHOI_ID =@DVDM_ID 
921
                                                                                                                        OR A.DVDM_ID = @DVDM_ID
922
                                                                                                                )
923
                                                                                                        AND EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS 
924
                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID
925
                                                                                                                                        AND ROLE_USER IN (        SELECT * FROM @TABLE_ROLE) 
926
                                                                                                                                        -- AND A.BRANCH_CREATE ='DV0001' 
927
                                                                                                                                        AND A.PROCESS<>'' 
928
                                                                                                                                        AND A.PROCESS IS NOT NULL
929
                                                                                                                                        AND        (        (        @p_AUTH_STATUS ='A' 
930
                                                                                                                                                                AND STATUS IN ('P','A')
931
                                                                                                                                                        ) 
932
                                                                                                                                                        OR        (        @p_AUTH_STATUS = 'U' AND STATUS ='C') 
933
                                                                                                                                                        OR        (        ISNULL(@p_AUTH_STATUS,'') ='' 
934
                                                                                                                                                                        AND STATUS IN ('C','P','A')
935
                                                                                                                                                                )
936
                                                                                                                                                )
937
                                                                                                                                )
938
                                                                                                )
939
                                                                                        OR        (        EXISTS        (        SELECT * FROM @TABLE_ROLE 
940
                                                                                                                                WHERE ROLE_AUTH  IN ('PTGD')
941
                                                                                                                        ) 
942
                                                                                                        AND        (        A.DVDM_ID =@DVDM_ID 
943
                                                                                                                        OR (        A.DVDM_ID IS NULL 
944
                                                                                                                                        OR A.DVDM_ID =''
945
                                                                                                                                )
946
                                                                                                                ) 
947
                                                                                                        AND EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS 
948
                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID
949
                                                                                                                                        AND ROLE_USER IN (        SELECT * FROM @TABLE_ROLE) 
950
                                                                                                                                        -- AND A.BRANCH_CREATE ='DV0001' 
951
                                                                                                                                        AND A.PROCESS<>'' 
952
                                                                                                                                        AND A.PROCESS IS NOT NULL
953
                                                                                                                                        AND        (        (        @p_AUTH_STATUS ='A' 
954
                                                                                                                                                                AND STATUS IN ('P','A')
955
                                                                                                                                                        ) 
956
                                                                                                                                                        OR        (        @p_AUTH_STATUS = 'U' AND STATUS ='C') 
957
                                                                                                                                                        OR        (        ISNULL(@p_AUTH_STATUS,'') ='' 
958
                                                                                                                                                                        AND STATUS IN ('C','P','A')
959
                                                                                                                                                                )
960
                                                                                                                                                )
961
                                                                                                                                )
962
                                                                                                        AND (        @KHOI_ID_LG = (SELECT KHOI_ID FROM CM_DEPARTMENT WHERE DEP_ID        = (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = A.REQ_PAY_ID))
963
                                                                                                                        OR        (        @p_USER_LOGIN = 'tupa' AND (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = A.REQ_PAY_ID) = 'DEP000000000015')
964
                                                                                                                        OR EXISTS        (        SELECT TOP 1 DVDM_ID FROM PL_REQUEST_PROCESS 
965
                                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID        AND DVDM_ID = @KHOI_ID_LG
966
                                                                                                                                                )
967
                                                                                                                )
968
                                                                                                )
969
                                                                                        OR        (        EXISTS        (        SELECT * 
970
                                                                                                                                FROM @TABLE_ROLE 
971
                                                                                                                                WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) 
972
                                                                                                                                AND EXISTS        (        SELECT * 
973
                                                                                                                                                                FROM PL_REQUEST_PROCESS        
974
                                                                                                                                                                WHERE REQ_ID = A.REQ_PAY_ID
975
                                                                                                                                                                AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) 
976
                                                                                                                                                                --AND A.BRANCH_CREATE ='DV0001' 
977
                                                                                                                                                                AND A.PROCESS<>'' 
978
                                                                                                                                                                AND A.PROCESS IS NOT NULL
979
                                                                                                                                                                AND (        (        @p_AUTH_STATUS ='A' 
980
                                                                                                                                                                                        AND STATUS IN ('P','A')
981
                                                                                                                                                                                ) 
982
                                                                                                                                                                                OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') 
983
                                                                                                                                                                                OR(ISNULL(@p_AUTH_STATUS,'') ='' )
984
                                                                                                                                                                        )
985
                                                                                                                                                        )
986
                                                                                                )
987
                                                                                        -- USER HOI SO KIEM NHIEM GDDV TAI CHI NHANH
988
                                                                                        OR        (        EXISTS        (        SELECT * 
989
                                                                                                                                FROM SYS_PERMISSIONS_PAGE_FOR_USER TLS 
990
                                                                                                                                WHERE 1=1
991
                                                                                                                                AND ISNULL(A.BRANCH_ID, '') <> '' AND ISNULL(A.BRANCH_ID, '') <> 'DV0001'
992
                                                                                                                                AND TLS.TLNAME = @p_USER_LOGIN
993
                                                                                                                                AND TLS.RoleDisplayName IN ('GDDV')
994
                                                                                                                                AND TLS.BRANCH_ID = A.BRANCH_ID
995
                                                                                                                                AND (DATEDIFF(DAY, CONVERT(DATE, TLS.EffectiveDate, 103) , CONVERT(DATE, GETDATE(), 103)) >= 0 OR TLS.EffectiveDate IS NULL OR TLS.EffectiveDate = '')
996
                                                                                                                                AND (DATEDIFF(DAY, CONVERT(DATE, TLS.ExpirationDate, 103) , CONVERT(DATE, GETDATE(), 103)) <= 0 OR TLS.ExpirationDate IS NULL OR TLS.ExpirationDate = '')
997
                                                                                                                                AND EXISTS(SELECT DT.PER_PAGE_FOR_USER_DT_ID FROM SYS_PERMISSIONS_PAGE_FOR_USER_DT DT WHERE DT.PER_PAGE_FOR_USER_ID = TLS.PER_PAGE_FOR_USER_ID AND DT.MENU_PERMISSION = @MENU_PERMISSON)
998
                                                                                                                                AND TLS.AUTH_STATUS = 'A'
999
                                                                                                                                AND TLS.RECORD_STATUS = '1'
1000
                                                                                                                        )
1001
                                                                                                )
1002

    
1003
                                                                                )-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW 1
1004
                                                                )        -- ngoac so 2, line 347
1005
-- NGUOC LAI NEU LA TAM UNG KHAC
1006
                                                                OR        (        @p_TYPE_SEARCH ='HC' 
1007
                                                                                AND @BRANCH_TYPE_LG ='HS' 
1008
                                                                                AND A.REQ_TYPE <> 'I' 
1009
                                                                                AND        (        A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
1010
                                                                                                OR        (        EXISTS(SELECT TOP 1 A.ROLE_NAME FROM TMP_ROLE_ADVANCE_PAYMENT_SEARCH A WHERE A.ROLE_NAME IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') AND CHARINDEX(A.ROLE_NAME + ',', @ROLE_ID) > 0) 
1011
                                                                                                                AND (        A.BRANCH_ID =@p_BRANCH_LOGIN 
1012
                                                                                                                                OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)
1013
                                                                                                                        )        
1014
                                                                                                                AND        (        A.DEP_ID =@DEP_ID_LG 
1015
                                                                                                                                                OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
1016
                                                                                                                        )  
1017
                                                                                                                AND        (        A.TRASFER_USER_RECIVE IS NULL 
1018
                                                                                                                                OR A.TRASFER_USER_RECIVE ='' 
1019
                                                                                                                                OR        (        A.TRASFER_USER_RECIVE IS NOT NULL 
1020
                                                                                                                                                AND A.TRASFER_USER_RECIVE <>'' 
1021
                                                                                                                                                AND A.PROCESS IS NOT NULL 
1022
                                                                                                                                                AND A.PROCESS <>''
1023
                                                                                                                                        )
1024
                                                                                                                        )
1025
                                                                                                        )  
1026
                                                                                                OR        (        EXISTS(SELECT TOP 1 A.ROLE_NAME FROM TMP_ROLE_ADVANCE_PAYMENT_SEARCH A WHERE A.ROLE_NAME NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') AND CHARINDEX(A.ROLE_NAME + ',', @ROLE_ID) > 0) 
1027
                                                                                                                AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
1028
                                                                                                        )  
1029
                                                                                        )
1030
                                                                        )
1031
                                                                        -- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG
1032
                                                                OR        (        @p_TYPE_SEARCH ='HC' 
1033
                                                                                AND @BRANCH_TYPE_LG = 'CN' 
1034
                                                                                AND (        EXISTS(SELECT TOP 1 A.ROLE_NAME FROM TMP_ROLE_ADVANCE_PAYMENT_SEARCH A WHERE A.ROLE_NAME IN ('GDDV','PGD','TPGD','PPGD') AND CHARINDEX(A.ROLE_NAME + ',', @ROLE_ID) > 0) 
1035
                                                                                                AND        (        (        A.TRASFER_USER_RECIVE IS NOT NULL 
1036
                                                                                                                        AND A.TRASFER_USER_RECIVE <>'' 
1037
                                                                                                                        AND A.PROCESS IS NOT NULL 
1038
                                                                                                                        AND A.PROCESS <>''
1039
                                                                                                                )  
1040
                                                                                                                OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL
1041
                                                                                                        )  
1042

    
1043
                                                                                                OR        (        (        A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
1044
                                                                                                                        AND A.TRASFER_USER_RECIVE IS NOT NULL 
1045
                                                                                                                        AND A.TRASFER_USER_RECIVE <>''
1046
                                                                                                                ) 
1047
                                                                                                                OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
1048
                                                                                                        )  
1049
                                                                                                AND A.BRANCH_ID IN (SELECT * FROM @tmp)
1050
                                                                                        )
1051
                                                                        )  
1052
                                                                OR        (        @p_TYPE_SEARCH ='HC' 
1053
                                                                                AND @BRANCH_TYPE_LG = 'CN' 
1054
                                                                                AND A.BRANCH_ID IN (SELECT * FROM @tmp)
1055
                                                                        )  
1056
                                                                OR        (        @p_TYPE_SEARCH ='HC' 
1057
                                                                                AND @BRANCH_TYPE_LG = 'PGD' 
1058
                                                                                AND        (        EXISTS(SELECT TOP 1 A.ROLE_NAME FROM TMP_ROLE_ADVANCE_PAYMENT_SEARCH A WHERE A.ROLE_NAME IN ('GDDV','TPGD','PPGD','PGD') AND CHARINDEX(A.ROLE_NAME + ',', @ROLE_ID) > 0) 
1059
                                                                                                AND A.BRANCH_ID =@p_BRANCH_LOGIN
1060
                                                                                        )
1061
                                                                        )  
1062
                                                                OR        (        @p_TYPE_SEARCH ='HC' 
1063
                                                                                AND        (        A.DVDM_ID IS NOT NULL 
1064
                                                                                                AND A.DVDM_ID <>'' 
1065
                                                                                                AND A.DVDM_ID =@DVDM_ID 
1066
                                                                                                AND A.PROCESS IS NOT NULL 
1067
                                                                                                AND A.PROCESS <>'' 
1068
                                                                                                AND        EXISTS(SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND CHARINDEX(ROLE_USER + ',', @ROLE_ID) > 0)
1069
                                                                                        ) 
1070
                                                                                OR        (        A.DEP_ID IN (SELECT * FROM @TMP_DEP) 
1071
                                                                                                AND A.PROCESS IS NOT NULL 
1072
                                                                                                AND A.PROCESS <>''  
1073
                                                                                                AND CHARINDEX('TKTGD,', @ROLE_ID) = 0 
1074
                                                                                                AND EXISTS(SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_PAY_ID AND CHARINDEX(ROLE_USER + ',', @ROLE_ID) > 0)
1075
                                                                                        )
1076
                                                                        )  
1077
                                                                --OR(@p_TYPE_SEARCH ='HC' AND (@ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID= A.REQ_PAY_ID AND ROLE_USER IN ('TGD','HDQT','TKTGD','TKHDQT') AND STATUS ='C')))  
1078
                                                                OR        (        @p_TYPE_SEARCH='KT' 
1079
                                                                                AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1080
                                                                        )  
1081
                                                                OR        (        @p_TYPE_SEARCH='HC' 
1082
                                                                                AND        (        (CHARINDEX('KSV,', @ROLE_ID) > 0 OR CHARINDEX('GDV,', @ROLE_ID) > 0)  
1083
                                                                                                OR @DEP_ID_LG ='DEP000000000022'
1084
                                                                                        ) 
1085
                                                                                AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1086
                                                                        )  
1087
                                                                OR        (        @p_TYPE_SEARCH='HC' AND (        EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS_CHILD 
1088
                                                                                                                                                                WHERE REQ_ID = A.REQ_PAY_ID 
1089
                                                                                                                                                                AND TLNAME =@p_USER_LOGIN 
1090
                                                                                                                                                                AND TYPE_JOB ='XL' 
1091
                                                                                                                                                                AND STATUS_JOB = 'C' 
1092
                                                                                                                                                                AND ISNULL(A.AUTH_STATUS, '') <> 'A'
1093
                                                                                                                                                        ) 
1094
                                                                                                                                        OR EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS_CHILD 
1095
                                                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID 
1096
                                                                                                                                                                        AND TLNAME =@p_USER_LOGIN 
1097
                                                                                                                                                                        AND TYPE_JOB ='XL' 
1098
                                                                                                                                                                        AND STATUS_JOB = 'P' 
1099
                                                                                                                                                                        AND        (        ISNULL(A.AUTH_STATUS, '') = 'A'
1100
                                                                                                                                                                                                                                                                                                                                                                                                                                                                OR EXISTS        (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TYPE_JOB ='KS' AND STATUS_JOB = 'C')
1101
                                                                                                                                                                                                                                                                                                                                                                                                                                                        )
1102
                                                                                                                                                                )
1103
                                                                                                                                )
1104
                                                                        ) 
1105
                                                                OR        (        @p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') 
1106
                                                                                AND A.PROCESS<>'' 
1107
                                                                                AND A.PROCESS IS NOT NULL
1108
                                                                                AND (        (        @p_FUNCTION ='TF' AND  EXISTS        (        SELECT * FROM PL_REQUEST_PROCESS 
1109
                                                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID 
1110
                                                                                                                                                                        AND CHARINDEX(ROLE_USER + ',', @ROLE_ID) > 0 
1111
                                                                                                                                                                        AND STATUS ='C'
1112
                                                                                                                                                                )
1113
                                                                                                )
1114
                                                                                                OR        (        ISNULL(@p_FUNCTION,'') <> 'TF' 
1115
                                                                                                                AND EXISTS(        SELECT * 
1116
                                                                                                                                        FROM PL_REQUEST_PROCESS 
1117
                                                                                                                                        WHERE REQ_ID = A.REQ_PAY_ID 
1118
                                                                                                                                        AND CHARINDEX(ROLE_USER + ',', @ROLE_ID) > 0 
1119
                                                                                                                                        AND (        (@p_IS_TRANSFER = N'N' AND STATUS ='C') 
1120
                                                                                                                                                        OR        (        @p_IS_TRANSFER <>'N' 
1121
                                                                                                                                                                        AND STATUS IN ('C','P')
1122
                                                                                                                                                                )
1123
                                                                                                                                                )
1124
                                                                                                                                        )
1125
                                                                                                        )
1126
                                                                                        )
1127
                                                                        )
1128
                                                                OR        (        @p_TYPE_SEARCH='PAY' 
1129
                                                                                AND (        A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 
1130
                                                                                AND        (        (        @BRANCH_TYPE_LG ='HS' 
1131
                                                                                                        AND        (        A.DEP_ID =@DEP_ID_LG 
1132
                                                                                                                        OR A.MAKER_ID =@p_USER_LOGIN 
1133
                                                                                                                        OR A.MAKER_ID IS NULL 
1134
                                                                                                                        OR 1=1
1135
                                                                                                                )
1136
                                                                                                ) 
1137
                                                                                                OR        (        @BRANCH_TYPE_LG <> 'HS' 
1138
                                                                                                                AND A.BRANCH_ID = @p_BRANCH_LOGIN
1139
                                                                                                        )
1140
                                                                                                OR        (        @p_REQ_PAY_CODE IS NOT NULL 
1141
                                                                                                                AND @p_REQ_PAY_CODE <> '' 
1142
                                                                                                                AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
1143
                                                                                                        )
1144
                                                                                        )
1145
                                                                        )  
1146
                                                        ) -- ngoac so 1, line 347
1147
                                                OR        (        @p_TYPE_SEARCH='HC' 
1148
                                                                AND        ((CHARINDEX('KSV,', @ROLE_ID) > 0 OR CHARINDEX('GDV,', @ROLE_ID) > 0)  
1149
                                                                                OR @DEP_ID_LG ='DEP000000000022'
1150
                                                                        ) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1151
                                                        )
1152
                                        ) -- line 346
1153
                        ) -- line 344
1154
                AND        (        (        A.PAY_AMT = A.REQ_AMT 
1155
                                        AND (@p_TEMP_PAY_STATUS = 'HT')
1156
                                )  
1157
                                OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') )  
1158
                                OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU'))  
1159
                                OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = ''  
1160
                        )  
1161
                AND        (        A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X')
1162
                ORDER BY A.CREATE_DT DESC  
1163
-- PAGING END
1164
        END;
1165
END -- PAGING