Project

General

Profile

SERACH_HOAN_UNG.txt

Luc Tran Van, 12/20/2022 05:03 PM

 
1
-- PROCEDURE NAME: TR_REQ_PAYMENT_Log
2

    
3
DECLARE @p_REQ_PAY_ID varchar(15) = N'TADY00000203477',
4
@p_REQ_PAY_CODE varchar(50) = 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 = 0,
17
@p_REQ_TEMP_AMT decimal = 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) = N'A',
27
@p_CHECKER_ID_KT varchar(1) = NULL,
28
@p_APPROVE_DT_KT varchar(25) = NULL,
29
@p_CORE_NOTE nvarchar(500) = NULL,
30
@p_BRANCH_CREATE varchar(15) = NULL,
31
@p_NOTES varchar(15) = NULL,
32
@p_RECORD_STATUS varchar(1) = NULL,
33
@p_TRANSFER_MAKER nvarchar(50) = NULL,
34
@p_TRANSFER_DT varchar(25) = NULL,
35
@p_TRASFER_USER_RECIVE varchar(15) = NULL,
36
@p_PROCESS varchar(15) = NULL,
37
@p_XMP_TEMP xml = NULL,
38
@p_TOP int = 300,
39
@p_LEVEL varchar(10) = NULL,
40
@p_FRMDATE varchar(20) = NULL,
41
@p_TODATE varchar(20) = NULL,
42
@p_BRANCH_LOGIN varchar(15) = N'DV0001',
43
@p_IS_UPDATE_KT varchar(15) = NULL,
44
@p_IS_TRANSFER varchar(15) = NULL,
45
@p_PAY_PHASE varchar(15) = NULL
46

    
47
SET @p_TOP = NULL
48
		declare @tmp table(BRANCH_ID varchar(15))
49
		insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
50

    
51
	IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0 OR @P_TOP>0)
52
	BEGIN
53
-- PAGING BEGIN
54
BEGIN
55
SELECT COUNT(*) -- SELECT END
56
        FROM TR_REQ_ADVANCE_PAYMENT A
57
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
58
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
59
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
60
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
61
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
62
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
63
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
64
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID 
65
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
66
			 --Luanlt--2019/10/15-Sửa AL,AL1
67
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE' AND AL.CDTYPE = 'REQ_TYPE'
68
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_TRANSFER'
69
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
70
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
71
			 LEFT JOIN
72
			 (
73
			 SELECT X.PAY_ADV_ID,X.APPROVE_DT_KT, B.REQ_PAY_CODE, SUM (AMT_DO) PAY_HIS ,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
74
			 FROM TR_REQ_PAYMENT_DT X
75
			 INNER JOIN TR_REQ_PAYMENT B ON X.PAY_ID = B.REQ_PAY_ID
76
			 WHERE X.AUTH_STATUS_KT ='A' 
77
			 AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_PERIOD WHERE X.PAY_ADV_ID = PARENT_ID) 
78
			 AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE X.PAY_ADV_ID = REQ_ADV_ID AND TRN_TYPE = 'PAY')
79
			 --LEFT JOIN TR_REQ_ADVANCE_PAYMENT Y ON X.PAY_ADV_ID = Y.REQ_PAY_ID
80
			 --WHERE Y.REF_ID = @p_REF_ID
81
			 GROUP BY X.PAY_ADV_ID, X.APPROVE_DT_KT,B.REQ_PAY_CODE, B.REQ_PAY_ID
82
			 UNION
83
			 SELECT X.PARENT_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
84
			 FROM TR_REQ_PAY_PERIOD X
85
			 INNER JOIN TR_REQ_PAYMENT B ON X.REQ_PAY_ID = B.REQ_PAY_ID
86
			 WHERE X.AUTH_STATUS_KT ='A' AND X.PARENT_ID IS NOT NULL AND X.PROCESS = '2'
87
			 UNION
88
			 SELECT X.REQ_PAY_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY_REAL SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
89
			 FROM TR_REQ_PAY_SCHEDULE X	-- PDN TAM UNG
90
			 LEFT JOIN TR_REQ_PAY_SCHEDULE X1 ON X.PAY_ID = X1.PAY_ID AND X1.TRN_TYPE = 'PAY' AND X.TRN_TYPE = 'ADV_PAY' AND X.PAY_PHASE = X1.PAY_PHASE AND X.REF_ID = X1.REF_ID	-- PDN THANH TOAN
91
			 INNER JOIN TR_REQ_PAYMENT B ON X1.REQ_PAY_ID = B.REQ_PAY_ID AND X1.AUTH_STATUS_KT ='A' AND X1.PROCESS IN ('0', '2') AND X1.TRN_TYPE = 'PAY' -- LAY RA CAC PDN THANH TOAN LA HOAN UNG
92
			 WHERE X.AUTH_STATUS_KT ='A'
93
			 ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID
94
			 LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'
95
			 LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'		
96
			 LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'
97
			 --LEFT JOIN TR_REQ_ADVANCE_DT DT ON A.REQ_PAY_ID = DT.REQ_PAY_ID AND A.REQ_TYPE ='P' AND DT.[TYPE]='ADV_PAY'
98
			 --LEFT JOIN TR_PO_MASTER PO ON DT.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
99
			 --LEFT JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID AND A.REQ_TYPE='P' AND DT.[TYPE]='ADV_PAY'
100
			 --LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'
101
			 LEFT JOIN TR_REQ_ADVANCE_CUS CS ON A.REQ_PAY_ID= CS.REQ_PAY_ID
102
			 LEFT JOIN LS_CUSTOMER CUS ON CS.CUST_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'
103
        WHERE 1=1 
104
			 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' )
105
			 AND (A.AUTH_STATUS_KT ='A')
106
		
107
;WITH QUERY_DATA AS ( 
108
        SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,
109
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,
110
		BR.BRANCH_NAME BRANCH_NAME_REQ, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
111
		--Luanlt--2019/10/15-Sửa AL,AL1
112
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,
113
		(A.REQ_AMT -ISNULL(A.PAY_AMT,0)) AS AMT_REMAIN, 
114
		H.PAY_HIS AS AMT_PAY_HIS,
115
		CASE WHEN H.SO_TIEN_THANH_TOAN IS NOT NULL THEN (ISNULL(H.SO_TIEN_THANH_TOAN,0)) ELSE A.PAY_AMT END AS TOTAL_AMT_PAY,
116
		 TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,
117
		TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE,
118
		TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,
119
		--ISNULL(PO.PO_CODE, CT.CONTRACT_CODE) AS PO_CODE ,ISNULL(PO.PO_NAME, CT.[CONTRACT_NAME]) AS PO_NAME,
120
		--PO.SUP_NAME,
121
		--SUP.TAX_NO AS SUP_TAX_NO,
122
		CUS.CUSTOMER_CODE AS CUST_CODE,
123
		CUS.CUSTOMER_NAME AS CUST_NAME,
124
		PM.PAY_PHASE KY_TAM_UNG,
125
		H.APPROVE_DT_KT NGAY_HOAN_UNG,
126
		H.REQ_PAY_CODE AS SO_PHIEU_HOAN_UNG, H.ID_HOAN_UNG
127
, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
128
) AS __ROWNUM-- SELECT END
129
        FROM TR_REQ_ADVANCE_PAYMENT A
130
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
131
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
132
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
133
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
134
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
135
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
136
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
137
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID 
138
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
139
			 --Luanlt--2019/10/15-Sửa AL,AL1
140
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE' AND AL.CDTYPE = 'REQ_TYPE'
141
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_TRANSFER'
142
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
143
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
144
			 LEFT JOIN
145
			 (
146
			 SELECT X.PAY_ADV_ID,X.APPROVE_DT_KT, B.REQ_PAY_CODE, SUM (AMT_DO) PAY_HIS ,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
147
			 FROM TR_REQ_PAYMENT_DT X
148
			 INNER JOIN TR_REQ_PAYMENT B ON X.PAY_ID = B.REQ_PAY_ID
149
			 WHERE X.AUTH_STATUS_KT ='A' 
150
			 AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_PERIOD WHERE X.PAY_ADV_ID = PARENT_ID) 
151
			 AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE X.PAY_ADV_ID = REQ_ADV_ID AND TRN_TYPE = 'PAY')
152
			 --LEFT JOIN TR_REQ_ADVANCE_PAYMENT Y ON X.PAY_ADV_ID = Y.REQ_PAY_ID
153
			 --WHERE Y.REF_ID = @p_REF_ID
154
			 GROUP BY X.PAY_ADV_ID, X.APPROVE_DT_KT,B.REQ_PAY_CODE, B.REQ_PAY_ID
155
			 UNION
156
			 SELECT X.PARENT_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
157
			 FROM TR_REQ_PAY_PERIOD X
158
			 INNER JOIN TR_REQ_PAYMENT B ON X.REQ_PAY_ID = B.REQ_PAY_ID
159
			 WHERE X.AUTH_STATUS_KT ='A' AND X.PARENT_ID IS NOT NULL AND X.PROCESS = '2'
160
			 UNION
161
			 SELECT X.REQ_PAY_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY_REAL SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
162
			 FROM TR_REQ_PAY_SCHEDULE X	-- PDN TAM UNG
163
			 LEFT JOIN TR_REQ_PAY_SCHEDULE X1 ON X.PAY_ID = X1.PAY_ID AND X1.TRN_TYPE = 'PAY' AND X.TRN_TYPE = 'ADV_PAY' AND X.PAY_PHASE = X1.PAY_PHASE AND X.REF_ID = X1.REF_ID	-- PDN THANH TOAN
164
			 INNER JOIN TR_REQ_PAYMENT B ON X1.REQ_PAY_ID = B.REQ_PAY_ID AND X1.AUTH_STATUS_KT ='A' AND X1.PROCESS IN ('0', '2') AND X1.TRN_TYPE = 'PAY' -- LAY RA CAC PDN THANH TOAN LA HOAN UNG
165
			 WHERE X.AUTH_STATUS_KT ='A'
166
			 ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID
167
			 LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'
168
			 LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'		
169
			 LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'
170
			 --LEFT JOIN TR_REQ_ADVANCE_DT DT ON A.REQ_PAY_ID = DT.REQ_PAY_ID AND A.REQ_TYPE ='P' AND DT.[TYPE]='ADV_PAY'
171
			 --LEFT JOIN TR_PO_MASTER PO ON DT.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
172
			 --LEFT JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID AND A.REQ_TYPE='P' AND DT.[TYPE]='ADV_PAY'
173
			 --LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'
174
			 LEFT JOIN TR_REQ_ADVANCE_CUS CS ON A.REQ_PAY_ID= CS.REQ_PAY_ID
175
			 LEFT JOIN LS_CUSTOMER CUS ON CS.CUST_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'
176
        WHERE 1=1 
177
			 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' )
178
			 AND (A.AUTH_STATUS_KT ='A')
179
		
180
) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
181
END-- PAGING END
182
	END
183
	ELSE
184
	BEGIN
185
-- PAGING BEGIN
186
BEGIN
187
SELECT COUNT(*) -- SELECT END
188
        FROM TR_REQ_ADVANCE_PAYMENT A
189
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
190
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
191
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
192
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
193
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
194
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
195
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
196
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID 
197
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
198
			 --Luanlt--2019/10/15-Sửa AL,AL1
199
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE' AND AL.CDTYPE = 'REQ_TYPE'
200
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_TRANSFER'
201
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
202
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
203
			 LEFT JOIN
204
			 (
205
			 SELECT X.PAY_ADV_ID,X.APPROVE_DT_KT, B.REQ_PAY_CODE, SUM (AMT_DO) PAY_HIS ,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
206
			 FROM TR_REQ_PAYMENT_DT X
207
			 INNER JOIN TR_REQ_PAYMENT B ON X.PAY_ID = B.REQ_PAY_ID
208
			 WHERE X.AUTH_STATUS_KT ='A' 
209
			 AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_PERIOD WHERE X.PAY_ADV_ID = PARENT_ID)
210
			 AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE X.PAY_ADV_ID = REQ_ADV_ID AND TRN_TYPE = 'PAY')
211
			 --LEFT JOIN TR_REQ_ADVANCE_PAYMENT Y ON X.PAY_ADV_ID = Y.REQ_PAY_ID
212
			 --WHERE Y.REF_ID = @p_REF_ID
213
			 GROUP BY X.PAY_ADV_ID, X.APPROVE_DT_KT,B.REQ_PAY_CODE, B.REQ_PAY_ID
214
			 UNION
215
			 SELECT X.PARENT_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
216
			 FROM TR_REQ_PAY_PERIOD X
217
			 INNER JOIN TR_REQ_PAYMENT B ON X.REQ_PAY_ID = B.REQ_PAY_ID
218
			 WHERE X.AUTH_STATUS_KT ='A' AND X.PARENT_ID IS NOT NULL AND X.PROCESS = '2'
219
			 UNION
220
			 SELECT X.REQ_PAY_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY_REAL SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
221
			 FROM TR_REQ_PAY_SCHEDULE X	-- PDN TAM UNG
222
			 LEFT JOIN TR_REQ_PAY_SCHEDULE X1 ON X.PAY_ID = X1.PAY_ID AND X1.TRN_TYPE = 'PAY' AND X.TRN_TYPE = 'ADV_PAY' AND X.PAY_PHASE = X1.PAY_PHASE AND X.REF_ID = X1.REF_ID	-- PDN THANH TOAN
223
			 INNER JOIN TR_REQ_PAYMENT B ON X1.REQ_PAY_ID = B.REQ_PAY_ID AND X1.AUTH_STATUS_KT ='A' AND X1.PROCESS IN ('0', '2') AND X1.TRN_TYPE = 'PAY' -- LAY RA CAC PDN THANH TOAN LA HOAN UNG
224
			 WHERE X.AUTH_STATUS_KT ='A'
225
			 ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID
226
			 LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'
227
			 LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'		
228
			 LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'
229
			 --LEFT JOIN TR_REQ_ADVANCE_DT DT ON A.REQ_PAY_ID = DT.REQ_PAY_ID AND A.REQ_TYPE ='P' AND DT.[TYPE]='ADV_PAY'
230
			 --LEFT JOIN TR_PO_MASTER PO ON DT.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
231
			 --LEFT JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID AND A.REQ_TYPE='P' AND DT.[TYPE]='ADV_PAY'
232
			 --LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'
233
			 LEFT JOIN TR_REQ_ADVANCE_CUS CS ON A.REQ_PAY_ID= CS.REQ_PAY_ID
234
			 LEFT JOIN LS_CUSTOMER CUS ON CS.CUST_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'
235
        WHERE 1=1 
236
			 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' )
237
			 AND (A.AUTH_STATUS_KT ='A')
238
		
239
;WITH QUERY_DATA AS ( 
240
		SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,
241
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,
242
		BR.BRANCH_NAME BRANCH_NAME_REQ, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
243
		--Luanlt--2019/10/15-Sửa AL,AL1
244
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,
245
		(A.REQ_AMT -ISNULL(A.PAY_AMT,0)) AS AMT_REMAIN, 
246
		H.PAY_HIS AS AMT_PAY_HIS,
247
		CASE WHEN H.SO_TIEN_THANH_TOAN IS NOT NULL THEN (ISNULL(H.SO_TIEN_THANH_TOAN,0)) ELSE A.PAY_AMT END AS TOTAL_AMT_PAY,
248
		 TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,
249
		TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE,
250
		TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,
251
		--ISNULL(PO.PO_CODE, CT.CONTRACT_CODE) AS PO_CODE ,ISNULL(PO.PO_NAME, CT.[CONTRACT_NAME]) AS PO_NAME,
252
		--PO.SUP_NAME,
253
		--SUP.TAX_NO AS SUP_TAX_NO,
254
		CUS.CUSTOMER_CODE AS CUST_CODE,
255
		CUS.CUSTOMER_NAME AS CUST_NAME,
256
		PM.PAY_PHASE KY_TAM_UNG,
257
		H.APPROVE_DT_KT NGAY_HOAN_UNG,
258
		H.REQ_PAY_CODE AS SO_PHIEU_HOAN_UNG, H.ID_HOAN_UNG
259
, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
260
) AS __ROWNUM-- SELECT END
261
        FROM TR_REQ_ADVANCE_PAYMENT A
262
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
263
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
264
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
265
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
266
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
267
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
268
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
269
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID 
270
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
271
			 --Luanlt--2019/10/15-Sửa AL,AL1
272
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE' AND AL.CDTYPE = 'REQ_TYPE'
273
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ_TRANSFER'
274
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
275
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
276
			 LEFT JOIN
277
			 (
278
			 SELECT X.PAY_ADV_ID,X.APPROVE_DT_KT, B.REQ_PAY_CODE, SUM (AMT_DO) PAY_HIS ,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
279
			 FROM TR_REQ_PAYMENT_DT X
280
			 INNER JOIN TR_REQ_PAYMENT B ON X.PAY_ID = B.REQ_PAY_ID
281
			 WHERE X.AUTH_STATUS_KT ='A' 
282
			 AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_PERIOD WHERE X.PAY_ADV_ID = PARENT_ID)
283
			 AND NOT EXISTS (SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE X.PAY_ADV_ID = REQ_ADV_ID AND TRN_TYPE = 'PAY')
284
			 --LEFT JOIN TR_REQ_ADVANCE_PAYMENT Y ON X.PAY_ADV_ID = Y.REQ_PAY_ID
285
			 --WHERE Y.REF_ID = @p_REF_ID
286
			 GROUP BY X.PAY_ADV_ID, X.APPROVE_DT_KT,B.REQ_PAY_CODE, B.REQ_PAY_ID
287
			 UNION
288
			 SELECT X.PARENT_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
289
			 FROM TR_REQ_PAY_PERIOD X
290
			 INNER JOIN TR_REQ_PAYMENT B ON X.REQ_PAY_ID = B.REQ_PAY_ID
291
			 WHERE X.AUTH_STATUS_KT ='A' AND X.PARENT_ID IS NOT NULL AND X.PROCESS = '2'
292
			 UNION
293
			 SELECT X.REQ_PAY_ID AS PAY_ADV_ID, B.APPROVE_DT_KT AS APPROVE_DT_KT, B.REQ_PAY_CODE, X.AMT_PAY PAY_HIS ,X.AMT_PAY_REAL SO_TIEN_THANH_TOAN, B.REQ_PAY_ID AS ID_HOAN_UNG
294
			 FROM TR_REQ_PAY_SCHEDULE X	-- PDN TAM UNG
295
			 LEFT JOIN TR_REQ_PAY_SCHEDULE X1 ON X.PAY_ID = X1.PAY_ID AND X1.TRN_TYPE = 'PAY' AND X.TRN_TYPE = 'ADV_PAY' AND X.PAY_PHASE = X1.PAY_PHASE AND X.REF_ID = X1.REF_ID	-- PDN THANH TOAN
296
			 INNER JOIN TR_REQ_PAYMENT B ON X1.REQ_PAY_ID = B.REQ_PAY_ID AND X1.AUTH_STATUS_KT ='A' AND X1.PROCESS IN ('0', '2') AND X1.TRN_TYPE = 'PAY' -- LAY RA CAC PDN THANH TOAN LA HOAN UNG
297
			 WHERE X.AUTH_STATUS_KT ='A'
298
			 ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID
299
			 LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'
300
			 LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'		
301
			 LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'
302
			 --LEFT JOIN TR_REQ_ADVANCE_DT DT ON A.REQ_PAY_ID = DT.REQ_PAY_ID AND A.REQ_TYPE ='P' AND DT.[TYPE]='ADV_PAY'
303
			 --LEFT JOIN TR_PO_MASTER PO ON DT.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
304
			 --LEFT JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID AND A.REQ_TYPE='P' AND DT.[TYPE]='ADV_PAY'
305
			 --LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'
306
			 LEFT JOIN TR_REQ_ADVANCE_CUS CS ON A.REQ_PAY_ID= CS.REQ_PAY_ID
307
			 LEFT JOIN LS_CUSTOMER CUS ON CS.CUST_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'
308
        WHERE 1=1 
309
			 AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='' )
310
			 AND (A.AUTH_STATUS_KT ='A')
311
		
312
) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
313
END-- PAGING END
314
    END;
315

    
316
go