1
|
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES_Search]
|
2
|
@p_ENTRY_AUTO_ID VARCHAR(15)= NULL,
|
3
|
@p_REQ_PAY_AUTO_ID VARCHAR(20) = NULL,
|
4
|
@p_REQ_PAY_AUTO_CODE VARCHAR(20) = NULL,
|
5
|
@p_MAKER_ID VARCHAR(15) = NULL,
|
6
|
@p_CREATE_DT VARCHAR(25) = NULL,
|
7
|
@p_AUTH_STATUS VARCHAR(1) = NULL,
|
8
|
@p_CHECKER_ID VARCHAR(15) = NULL,
|
9
|
@p_APPROVE_DT VARCHAR(25) = NULL,
|
10
|
@p_RECORD_STATUS VARCHAR(1) = NULL,
|
11
|
@p_TOP INT = 300,
|
12
|
@p_LEVEL VARCHAR(10) = NULL,
|
13
|
@p_FROM_DATE VARCHAR(20)= NULL,
|
14
|
@p_TO_DATE VARCHAR(20) = NULL,
|
15
|
@p_USER_LOGIN VARCHAR(15)= NULL
|
16
|
AS
|
17
|
BEGIN -- PAGING
|
18
|
|
19
|
IF(@p_TOP IS NULL OR @p_TOP=0)
|
20
|
BEGIN
|
21
|
-- PAGING BEGIN
|
22
|
SELECT A.*, B.REQ_PAY_AUTO_CODE, ALLCODE.CONTENT AS AUTH_STATUS_NAME, TL1.TLFullName AS CREATE_FULL_NAME, TL2.TLFullName AS APPROVE_FULL_NAME,
|
23
|
B.REQ_PAY_AUTO_TYPE, B.REQ_PAY_AUTO_STATUS, B.REQ_PAY_AUTO_EFFECTIVE_DT, B.CREATE_DT AS CREATE_DT_PAYMENT_AUTO, B.TRANSFER_USER_RECEIVE, B.CONFIRM_NOTE, B.CONTRACT_ID, B.REQ_PAY_AUTO_SERVICE_TYPE, B.NOTIFI_EXPIRED_DT,
|
24
|
-- Thong tin PYC
|
25
|
TL3.TLFullName AS MAKER_NAME, B.CREATE_DT AS CREATE_PAYMENT_AUTO_DT, BR.BRANCH_NAME AS BRANCH_NAME, DEP.DEP_NAME AS DEP_NAME, TL4.TLFullName AS TRANSFER_USER_RECEIVE_NAME, C.CONTRACT_CODE, C.[CONTRACT_NAME]
|
26
|
-- SELECT END
|
27
|
FROM TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES A
|
28
|
INNER JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
|
29
|
LEFT JOIN CM_ALLCODE ALLCODE ON A.AUTH_STATUS = ALLCODE.CDVAL AND ALLCODE.CDNAME = 'AUTH_STATUS' AND ALLCODE.CDTYPE = 'TR_PO'
|
30
|
LEFT JOIN TL_USER TL1 ON A.MAKER_ID = TL1.TLNANME
|
31
|
LEFT JOIN TL_USER TL2 ON A.CHECKER_ID = TL2.TLNANME
|
32
|
-- Thong tin PYC
|
33
|
LEFT JOIN TL_USER TL3 ON B.MAKER_ID = TL3.TLNANME
|
34
|
LEFT JOIN CM_BRANCH BR ON B.BRANCH_ID = BR.BRANCH_ID
|
35
|
LEFT JOIN CM_DEPARTMENT DEP ON B.DEP_ID = DEP.DEP_ID
|
36
|
LEFT JOIN TL_USER TL4 ON B.TRANSFER_USER_RECEIVE = TL4.TLNANME
|
37
|
LEFT JOIN TR_CONTRACT C ON B.CONTRACT_ID = C.CONTRACT_ID
|
38
|
|
39
|
WHERE 1=1
|
40
|
AND (A.ENTRY_AUTO_ID = @p_ENTRY_AUTO_ID OR ISNULL(@p_ENTRY_AUTO_ID, '') = '')
|
41
|
AND (A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
|
42
|
AND (B.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
|
43
|
AND(CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FROM_DATE, 103) OR ISNULL(@p_FROM_DATE, '') = '')
|
44
|
AND(CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TO_DATE, 103) OR ISNULL(@p_TO_DATE, '') = '')
|
45
|
|
46
|
ORDER BY A.CREATE_DT DESC
|
47
|
-- PAGING END
|
48
|
END;
|
49
|
ELSE
|
50
|
BEGIN
|
51
|
-- PAGING BEGIN
|
52
|
SELECT TOP(CONVERT(INT,@p_TOP)) A.*, B.REQ_PAY_AUTO_CODE, ALLCODE.CONTENT AS AUTH_STATUS_NAME, TL1.TLFullName AS CREATE_FULL_NAME, TL2.TLFullName AS APPROVE_FULL_NAME,
|
53
|
B.REQ_PAY_AUTO_TYPE, B.REQ_PAY_AUTO_STATUS, B.REQ_PAY_AUTO_EFFECTIVE_DT, B.CREATE_DT AS CREATE_DT_PAYMENT_AUTO, B.TRANSFER_USER_RECEIVE, B.CONFIRM_NOTE, B.CONTRACT_ID, B.REQ_PAY_AUTO_SERVICE_TYPE, B.NOTIFI_EXPIRED_DT,
|
54
|
-- Thong tin PYC
|
55
|
TL3.TLFullName AS MAKER_NAME, B.CREATE_DT AS CREATE_PAYMENT_AUTO_DT, BR.BRANCH_NAME AS BRANCH_NAME, DEP.DEP_NAME AS DEP_NAME, TL4.TLFullName AS TRANSFER_USER_RECEIVE_NAME, C.CONTRACT_CODE, C.[CONTRACT_NAME]
|
56
|
-- SELECT END
|
57
|
FROM TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES A
|
58
|
INNER JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
|
59
|
LEFT JOIN CM_ALLCODE ALLCODE ON A.AUTH_STATUS = ALLCODE.CDVAL AND ALLCODE.CDNAME = 'AUTH_STATUS' AND ALLCODE.CDTYPE = 'TR_PO'
|
60
|
LEFT JOIN TL_USER TL1 ON A.MAKER_ID = TL1.TLNANME
|
61
|
LEFT JOIN TL_USER TL2 ON A.CHECKER_ID = TL2.TLNANME
|
62
|
-- Thong tin PYC
|
63
|
LEFT JOIN TL_USER TL3 ON B.MAKER_ID = TL3.TLNANME
|
64
|
LEFT JOIN CM_BRANCH BR ON B.BRANCH_ID = BR.BRANCH_ID
|
65
|
LEFT JOIN CM_DEPARTMENT DEP ON B.DEP_ID = DEP.DEP_ID
|
66
|
LEFT JOIN TL_USER TL4 ON B.TRANSFER_USER_RECEIVE = TL4.TLNANME
|
67
|
LEFT JOIN TR_CONTRACT C ON B.CONTRACT_ID = C.CONTRACT_ID
|
68
|
|
69
|
WHERE 1=1
|
70
|
AND (A.ENTRY_AUTO_ID = @p_ENTRY_AUTO_ID OR ISNULL(@p_ENTRY_AUTO_ID, '') = '')
|
71
|
AND (A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
|
72
|
AND (B.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
|
73
|
AND(CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FROM_DATE, 103) OR ISNULL(@p_FROM_DATE, '') = '')
|
74
|
AND(CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TO_DATE, 103) OR ISNULL(@p_TO_DATE, '') = '')
|
75
|
|
76
|
ORDER BY A.CREATE_DT DESC
|
77
|
-- PAGING END
|
78
|
END;
|
79
|
END -- PAGING
|
80
|
|
81
|
GO
|
82
|
|
83
|
ALTER PROCEDURE [dbo].[TR_REQ_PAY_AUTO_CREATE_REQ_PAYMENT_FROM_SYSTEM_INVOICE]
|
84
|
@p_XMP_RECURRING XML
|
85
|
AS
|
86
|
BEGIN TRANSACTION
|
87
|
|
88
|
DECLARE @list_req_payment NVARCHAR(MAX) = ''
|
89
|
-- DS CAC KY DA THANH TOAN
|
90
|
DECLARE @billRef VARCHAR(20), @billCode VARCHAR(20), @customerName NVARCHAR(MAX), @amount VARCHAR(20), @accountNo VARCHAR(20), @accountType VARCHAR(20),
|
91
|
@createdTime VARCHAR(21), @partner VARCHAR(20), @resultCode VARCHAR(20), @resultDesc NVARCHAR(MAX), @transDesc NVARCHAR(MAX), @coreXref VARCHAR(20), @partnerAccount VARCHAR(20),
|
92
|
@billCodeAlias VARCHAR(20), @prvCode VARCHAR(20), @sevCode VARCHAR(20), @year VARCHAR(20), @customerAddress VARCHAR(20), @month VARCHAR(20),
|
93
|
@accountName VARCHAR(20), @accountNoRec VARCHAR(20), @accountNameRec VARCHAR(20), @billDate VARCHAR(20)
|
94
|
|
95
|
DECLARE @hDocRecurring INT EXEC sp_xml_preparedocument @hDocRecurring OUTPUT, @p_XMP_RECURRING;
|
96
|
DECLARE XmlAutoRecurring CURSOR LOCAL FOR
|
97
|
SELECT * FROM OPENXML(@hDocRecurring, 'Root/XmlAutoRecurring',2)
|
98
|
WITH(billRef VARCHAR(20), billCode VARCHAR(20), customerName NVARCHAR(MAX), amount VARCHAR(20), accountNo VARCHAR(20), accountType VARCHAR(20), createdTime VARCHAR(30),
|
99
|
[partner] VARCHAR(20), resultCode VARCHAR(20), resultDesc NVARCHAR(MAX), transDesc NVARCHAR(MAX), coreXref VARCHAR(20), partnerAccount VARCHAR(20), [month] VARCHAR(20))
|
100
|
OPEN XmlAutoRecurring
|
101
|
|
102
|
--- DUYET QUA TUNG KY THANH TOAN
|
103
|
FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
|
104
|
@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
|
105
|
WHILE @@fetch_status=0
|
106
|
BEGIN
|
107
|
-- LUU LOG KY THANH TOAN
|
108
|
INSERT INTO TR_REQ_PAY_AUTO_RECURRING_LOG(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
|
109
|
[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
|
110
|
VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
|
111
|
@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
|
112
|
|
113
|
IF(@resultCode NOT IN ('00', '100'))
|
114
|
BEGIN
|
115
|
PRINT 'KY THANH TOAN KHONG HOP LE' + @billRef
|
116
|
-- THEM VAO LOG CAC KY THANH TOAN LOI
|
117
|
END
|
118
|
ELSE IF(@accountType <> 'A')
|
119
|
BEGIN
|
120
|
PRINT 'KHONG PHAI THANH TOAN BANG THE' + @billRef
|
121
|
END
|
122
|
ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING_HISTORY WHERE billRef = @billRef AND @billCode = billCode AND @coreXref = coreXref))
|
123
|
BEGIN
|
124
|
PRINT 'KY THANH TOAN DA TON TAI TRONG HE THONG - DA THUC HIEN THANH TOAN TREN AMS: ' + @billRef
|
125
|
END
|
126
|
ELSE IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING WHERE BILLCODE = @billCode))
|
127
|
BEGIN
|
128
|
PRINT 'KHONG CO BILLCODE TRONG HE THONG AMS: ' + @billCode
|
129
|
END
|
130
|
ELSE IF(NOT EXISTS (SELECT * FROM TR_REQ_PAY_AUTO_RECURRING A
|
131
|
LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
|
132
|
WHERE A.BILLCODE = @billCode
|
133
|
)
|
134
|
)
|
135
|
BEGIN
|
136
|
PRINT 'KHONG CO PHIEU YEU CAU THANH TOAN TU DONG TRONG HE THONG AMS: ' + @billCode
|
137
|
END
|
138
|
ELSE
|
139
|
BEGIN
|
140
|
DECLARE @REQ_PAY_ID VARCHAR(20), @REQ_PAY_CODE VARCHAR(20), @CONTRACT_ID VARCHAR(20), @CONTRACT_CODE VARCHAR(20), @CONTRACT_NAME NVARCHAR(500),
|
141
|
@BRANCH_ID NVARCHAR(20), @REQ_PAY_AUTO_SERVICE_TYPE VARCHAR(50), @REQ_PAY_AUTO_SERVICE_TYPE_NAME NVARCHAR(200), @DEP_ID VARCHAR(20), @BRANCH_CREATE VARCHAR(20),
|
142
|
@REQ_PAY_AUTO_ID VARCHAR(20), @TRANSFER_USER_RECEIVE VARCHAR(20), @TRANS_GLCODE VARCHAR(20), @TRANS_GLNAME NVARCHAR(500)
|
143
|
|
144
|
PRINT 'GET DATA BILLCODE'
|
145
|
-- LAY DATA CUA BILLCODE DANG KY TRONG AMS
|
146
|
SELECT TOP 1 @CONTRACT_ID = B.CONTRACT_ID, @CONTRACT_CODE = E.CONTRACT_CODE, @CONTRACT_NAME = E.[CONTRACT_NAME],
|
147
|
@BRANCH_ID = B.BRANCH_ID, @REQ_PAY_AUTO_SERVICE_TYPE = B.REQ_PAY_AUTO_SERVICE_TYPE, @REQ_PAY_AUTO_SERVICE_TYPE_NAME = D.CONTENT, @DEP_ID = B.DEP_ID,
|
148
|
@BRANCH_CREATE = B.BRANCH_CREATE, @REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID, @TRANSFER_USER_RECEIVE = B.TRANSFER_USER_RECEIVE,
|
149
|
@TRANS_GLCODE = A.TRANS_GLCODE, @TRANS_GLNAME = A.TRANS_GLNAME
|
150
|
FROM TR_REQ_PAY_AUTO_RECURRING A
|
151
|
LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
|
152
|
LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID
|
153
|
LEFT JOIN CM_ALLCODE D ON B.REQ_PAY_AUTO_SERVICE_TYPE = D.CDVAL AND D.CDNAME = 'PAY_SER_AUTO' AND CDTYPE = 'REQ_AUTO'
|
154
|
LEFT JOIN TR_CONTRACT E ON B.CONTRACT_ID = E.CONTRACT_ID
|
155
|
WHERE BILLCODE = @billCode
|
156
|
PRINT 'LUU LOG KY THANH TOAN'
|
157
|
print @createdTime
|
158
|
-- LUU LOG KY THANH TOAN
|
159
|
INSERT INTO TR_REQ_PAY_AUTO_RECURRING_HISTORY(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
|
160
|
[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
|
161
|
VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
|
162
|
@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
|
163
|
|
164
|
-------------------- BEGIN TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
|
165
|
|
166
|
-- BEGIN KHOI TAO GIA TRI
|
167
|
-- ID PDN THANH TOAN
|
168
|
PRINT 'GEN ID PDN THANH TOAN'
|
169
|
EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out
|
170
|
IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @REQ_PAY_CODE )
|
171
|
BEGIN
|
172
|
ROLLBACK TRANSACTION
|
173
|
SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Số phiếu đề nghị thanh toán đã tồn tại trong hệ thống' ErrorDesc
|
174
|
RETURN '-1'
|
175
|
END
|
176
|
PRINT 'GEN MA CODE PDN THANH TOAN'
|
177
|
-- MA CODE PDN THANH TOAN
|
178
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @REQ_PAY_ID out
|
179
|
IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT
|
180
|
PRINT 'GET DON VI QUAN LY HOP DONG'
|
181
|
DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) = ( SELECT TOP 1 BRANCH_ID
|
182
|
FROM CM_BRANCH
|
183
|
WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
|
184
|
)
|
185
|
|
186
|
DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = ( SELECT TOP 1 BRANCH_NAME
|
187
|
FROM CM_BRANCH
|
188
|
WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
|
189
|
)
|
190
|
|
191
|
-- NOI DUNG THANH TOAN, DUNG CHO NHIEU TABLE
|
192
|
DECLARE @PAY_AUTO_DESC_DETAIL NVARCHAR(1000) = ''
|
193
|
DECLARE @PAY_AUTO_TRN_DESC_DETAIL VARCHAR(1000) = ''
|
194
|
|
195
|
DECLARE @l_Month VARCHAR(2), @l_Year VARCHAR(4)
|
196
|
-- NEU LA DIEN HOAC NUOC: t; DIEN THOAI HOAC INTERNET: t-1
|
197
|
IF(ISNULL(@REQ_PAY_AUTO_SERVICE_TYPE, '') = 'ELECTRIC' OR ISNULL(@REQ_PAY_AUTO_SERVICE_TYPE, '') = 'WATER')
|
198
|
BEGIN
|
199
|
SET @l_Month = RIGHT('0' + CAST(DATEPART(MM, GETDATE()) AS VARCHAR(2)), 2);
|
200
|
SET @l_Year = RIGHT(YEAR(GETDATE()), 4);
|
201
|
END
|
202
|
ELSE
|
203
|
BEGIN
|
204
|
SET @l_Month = RIGHT('0' + CAST(DATEPART(MM, DATEADD(MONTH, -1, GETDATE())) AS VARCHAR(2)), 2);
|
205
|
SET @l_Year = RIGHT(YEAR(DATEADD(MONTH, -1, GETDATE())), 4);
|
206
|
END
|
207
|
|
208
|
IF(ISNULL(@month, '') = '')
|
209
|
BEGIN
|
210
|
PRINT 'HOP DONG KHONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
|
211
|
SET @month = @l_Month + '/' + @l_Year
|
212
|
SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + ' ' + @l_Month + '/' + @l_Year + N' theo GDNTT số ' + @REQ_PAY_CODE
|
213
|
SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + ' ' + @l_Month + '/' + @l_Year + N' theo GDNTT số ' + @REQ_PAY_CODE))
|
214
|
END
|
215
|
ELSE
|
216
|
BEGIN
|
217
|
PRINT 'HOP DONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
|
218
|
SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N', ' + @month + N' theo GDNTT số ' + @REQ_PAY_CODE
|
219
|
SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N', ' + @month + N' theo GDNTT số ' + @REQ_PAY_CODE))
|
220
|
END
|
221
|
|
222
|
-- END KHOI TAO GIA TRI
|
223
|
PRINT 'TAO PHIEU DE NGHI THANH TOAN'
|
224
|
INSERT INTO [dbo].[TR_REQ_PAYMENT]
|
225
|
(REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE,
|
226
|
REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
|
227
|
REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT,
|
228
|
MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
|
229
|
CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
|
230
|
BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY, IS_CREATE_AUTO, TYPE_AUTO, SYSTEM_INVOICE_ID, IS_CREATE_AUTO_DONE)
|
231
|
VALUES
|
232
|
(@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P',
|
233
|
NULL, NULL, NULL, NULL, NULL, --NULL
|
234
|
'1', GETDATE(), 'VND', @amount, NULL,
|
235
|
'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(), --HC
|
236
|
GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
|
237
|
@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL, 'Y', 'B', @billRef, 'N')
|
238
|
PRINT 'TAO LUOI PDN THANH TOAN CHO PYC TTTD'
|
239
|
-- TẠO LƯỚI PHIEU DE NGHI THANH TOAN CHO PYC
|
240
|
INSERT INTO [dbo].[TR_REQ_PAY_AUTO_PAYMENTS]
|
241
|
(REQ_PAY_AUTO_ID, REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE,
|
242
|
REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
|
243
|
REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT,
|
244
|
MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
|
245
|
CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
|
246
|
BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY)
|
247
|
VALUES
|
248
|
(@REQ_PAY_AUTO_ID ,@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P',
|
249
|
NULL, NULL, NULL, NULL, NULL, --NULL
|
250
|
'1', GETDATE(), 'VND', @amount, NULL,
|
251
|
'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(), --HC
|
252
|
GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
|
253
|
@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL)
|
254
|
PRINT 'THEM LICH SU XU LY'
|
255
|
INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
|
256
|
VALUES(@REQ_PAY_ID,'AUTO_APPR','admin',GETDATE(), N'Hệ thống tạo phiếu thanh toán tự động',N'Hệ thống tạo phiếu thanh toán tự động')
|
257
|
|
258
|
|
259
|
-------------------- END TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
|
260
|
|
261
|
-- TẠO LƯỚI THÔNG TIN HỢP ĐỒNG ĐỊNH KỲ
|
262
|
PRINT 'TAO LUOI THONG TIN HDDK'
|
263
|
DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15);
|
264
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT;
|
265
|
IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT;
|
266
|
INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID, REQ_PAY_ID,REF_ID, [TYPE], MAKER_ID, CREATE_DT, IS_CLOSED, REF_TYPE, DELIVERY_DT)
|
267
|
VALUES(@REQ_PAYDTID_PERIOD, @REQ_PAY_ID, @CONTRACT_ID, 'PAY', 'admin', GETDATE(), 'N', 'C', CONVERT(DATE,NULL,103))
|
268
|
|
269
|
-- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ
|
270
|
PRINT 'TAO LUOI THONG TIN THANH TOAN HDDK'
|
271
|
DECLARE @PERIOD_ID VARCHAR(15);
|
272
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT;
|
273
|
IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT;
|
274
|
INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID, REQ_PAY_ID, PAY_TYPE, CONTRACT_ID, PAY_DT_REAL ,OLD_INDEX, NEW_INDEX, AMT_PAY,
|
275
|
AUTH_STATUS_KT, CURRENCY, RATE, FROM_DATE, TO_DATE,AD_PAY_ID, PROCESS, PARENT_ID, PAY_PHASE, REASON, TYPE_COST,FR_LEVEL , TO_LEVEL)
|
276
|
VALUES (@PERIOD_ID, @REQ_PAY_ID,'PAY', @CONTRACT_ID, NULL, NULL , NULL , @amount,
|
277
|
'A', 'VND', '1', NULL, NULL, NULL, '1', NULL, @month, @PAY_AUTO_DESC_DETAIL, NULL, NULL, NULL )
|
278
|
|
279
|
-- TẠO LƯỚI THÔNG TIN HẠCH TOÁN
|
280
|
|
281
|
-- BEGIN BUT TOAN CHI PHI
|
282
|
PRINT 'BUT TOAN CHI PHI'
|
283
|
DECLARE @FUNCTION_TYPE VARCHAR(15), @TRN_TYPE NVARCHAR(40), @REF_ID VARCHAR(15), @ENTRY_PAIR varchar(50), @DR_CR varchar(2), @DR_CR_NAME nvarchar(50),
|
284
|
@ACCT varchar(100), @ACCT_NAME varchar(500), @AMT DECIMAL(18,2), @EXC_RATE DECIMAL(18,2), @TRN_DATE VARCHAR(20), @TRN_DESC nvarchar(1000), @AUTH_STATUS varchar(2), @APPROVE_DT varchar(20),
|
285
|
@CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20),
|
286
|
@CURRENCY varchar(20), @MAKER_ID varchar(20), @CREATE_DT varchar(20), @CHECKER_ID varchar(20), @MAKER_ID_KT varchar(20), @AUTH_STATUS_KT varchar(2), @CHECKER_ID_KT varchar(20),
|
287
|
@RECORD_STATUS varchar(20)
|
288
|
DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15);
|
289
|
|
290
|
DECLARE @TYPE_BUDGET_ALLOCAITON_ENTRIES VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2)
|
291
|
|
292
|
DECLARE @RES VARCHAR(10)
|
293
|
DECLARE @TOTAL_CREDIT_AMT DECIMAL(18,0) = @amount;
|
294
|
DECLARE @TAX DECIMAL(18,1) = 0.1
|
295
|
DECLARE @TOTAL_PERCENT DECIMAL(18,2) = 0, @TOTAL_PERCENT_AMT DECIMAL(18,0) = 0;
|
296
|
DECLARE @TOTAL_MONEY DECIMAL(18,2) = 0, @TOTAL_MONEY_AMT DECIMAL(18,0) = (SELECT SUM(ISNULL(AMT_BUDGET_ALLOCAITON, 0)) FROM TR_REQ_PAY_AUTO_ENTRIES);
|
297
|
|
298
|
-- KHAI BAO CONST
|
299
|
DECLARE @PERCENT_VAT DECIMAL(18,2) = 1.1;
|
300
|
/*
|
301
|
-- NEU LA HOA DON DIEN THI THUE SE LA 8%. VIEC NAY CO HIEU LUC DEN HET NAM 2023
|
302
|
IF ( ( SELECT TOP 1 ISNULL(B.REQ_PAY_AUTO_SERVICE_TYPE, '')
|
303
|
FROM TR_REQ_PAY_AUTO_RECURRING A
|
304
|
INNER JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
|
305
|
WHERE A.BILLCODE = @billCode
|
306
|
) = 'ELECTRIC'
|
307
|
)
|
308
|
BEGIN
|
309
|
SET @PERCENT_VAT = 1.08;
|
310
|
END
|
311
|
*/
|
312
|
|
313
|
-- CO THUE
|
314
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002'))
|
315
|
BEGIN
|
316
|
-- SET THUE DUA VAO VAT TREN LUOI HACH TOAN
|
317
|
SET @PERCENT_VAT = 1 + (SELECT TOP 1 VAT FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002')/100
|
318
|
|
319
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT' AND 1=2))-- THEM DIEU KIEN 1=2 VI CHUC NANG NAY CHUA HOAT DONG
|
320
|
BEGIN
|
321
|
PRINT 'CO THUE, CO PHAN CHIA'
|
322
|
-- CREATE CURSOR CÁC ĐẦU CÓ --> LẤY ĐƯỢC CÁC CẶP BÚT TOÁN
|
323
|
DECLARE cursorEntries_C CURSOR LOCAL FOR
|
324
|
SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
|
325
|
FROM TR_REQ_PAY_AUTO_ENTRIES
|
326
|
WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
|
327
|
|
328
|
Open cursorEntries_C
|
329
|
FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
|
330
|
WHILE @@FETCH_STATUS = 0
|
331
|
BEGIN
|
332
|
-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
|
333
|
DECLARE cursorEntries CURSOR LOCAL FOR
|
334
|
SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE,
|
335
|
TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS,
|
336
|
IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
|
337
|
FROM TR_REQ_PAY_AUTO_ENTRIES
|
338
|
WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
|
339
|
|
340
|
Open cursorEntries
|
341
|
FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
|
342
|
@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS,
|
343
|
@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
|
344
|
WHILE @@FETCH_STATUS = 0
|
345
|
BEGIN
|
346
|
|
347
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
|
348
|
IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
|
349
|
SET @PERCENT_BUDGET_ALLOCAITON_ENTRIES = (SELECT TOP 1 ISNULL(PERCENT_BUDGET_ALLOCAITON, 0) FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR AND ACCT <> '353200002')
|
350
|
|
351
|
IF(@DR_CR = 'D')
|
352
|
BEGIN
|
353
|
IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
|
354
|
BEGIN
|
355
|
PRINT 'DONG NO CUOI'
|
356
|
DECLARE @A_CREDIT_AMT DECIMAL(18,0) = @amount - @TOTAL_PERCENT_AMT
|
357
|
DECLARE @A_DEBIT_AMT DECIMAL(18,0) = @A_CREDIT_AMT/@PERCENT_VAT
|
358
|
DECLARE @A_3532_AMT DECIMAL(18,0) = @A_CREDIT_AMT - @A_DEBIT_AMT
|
359
|
print '@A_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@A_CREDIT_AMT)
|
360
|
print '@A_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@A_DEBIT_AMT)
|
361
|
print '@A_3532_AMT: ' + CONVERT(VARCHAR(15),@A_3532_AMT)
|
362
|
|
363
|
IF(ISNULL(@ACCT, '') = '353200002')
|
364
|
BEGIN
|
365
|
print '@ACCT 3532: ' + @ACCT
|
366
|
print '@A_3532_AMT 3532: ' + CONVERT(VARCHAR(15),@A_3532_AMT)
|
367
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
368
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
369
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @A_3532_AMT, @CURRENCY, @EXC_RATE,
|
370
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
371
|
END
|
372
|
ELSE
|
373
|
BEGIN
|
374
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
375
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
376
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @A_DEBIT_AMT, @CURRENCY, @EXC_RATE,
|
377
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
378
|
END
|
379
|
END
|
380
|
ELSE
|
381
|
BEGIN
|
382
|
PRINT 'CHUA PHAI DONG NO CUOI'
|
383
|
DECLARE @B_CREDIT_AMT DECIMAL(18,0) = CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100)
|
384
|
DECLARE @B_DEBIT_AMT DECIMAL(18,0) = @B_CREDIT_AMT/@PERCENT_VAT
|
385
|
DECLARE @B_3532_AMT DECIMAL(18,0) = @B_CREDIT_AMT - @B_DEBIT_AMT
|
386
|
print '@B_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@B_CREDIT_AMT)
|
387
|
print '@B_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@B_DEBIT_AMT)
|
388
|
print '@B_3532_AMT: ' +CONVERT(VARCHAR(15),@B_3532_AMT)
|
389
|
|
390
|
IF(ISNULL(@ACCT, '') = '353200002')
|
391
|
BEGIN
|
392
|
print '@ACCT 3532: ' + @ACCT
|
393
|
print '@B_3532_AMT hach toan: ' +CONVERT(VARCHAR(15),@B_3532_AMT)
|
394
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
395
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
396
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @B_3532_AMT, @CURRENCY, @EXC_RATE,
|
397
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
398
|
END
|
399
|
ELSE
|
400
|
BEGIN
|
401
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
402
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
403
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @B_DEBIT_AMT, @CURRENCY, @EXC_RATE,
|
404
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
405
|
END
|
406
|
END
|
407
|
END
|
408
|
ELSE
|
409
|
BEGIN
|
410
|
IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
|
411
|
BEGIN
|
412
|
PRINT 'DONG CO CUOI'
|
413
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
414
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
415
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
|
416
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
417
|
END
|
418
|
ELSE
|
419
|
BEGIN
|
420
|
PRINT 'CHUA PHAI DONG CO CUOI'
|
421
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
422
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
423
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
|
424
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
425
|
END
|
426
|
|
427
|
END
|
428
|
|
429
|
IF @@error<>0 GOTO ABORT;
|
430
|
FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
|
431
|
@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS,
|
432
|
@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
|
433
|
END
|
434
|
CLOSE cursorEntries
|
435
|
DEALLOCATE cursorEntries
|
436
|
-- END CHẠY TỪNG CẶP BÚT TOÁN
|
437
|
|
438
|
SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
|
439
|
SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
|
440
|
|
441
|
IF @@error<>0 GOTO ABORT;
|
442
|
FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
|
443
|
END
|
444
|
CLOSE cursorEntries_C
|
445
|
DEALLOCATE cursorEntries_C
|
446
|
|
447
|
|
448
|
--- BAN BUT TOAN VAO CORE
|
449
|
EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
|
450
|
END
|
451
|
ELSE
|
452
|
BEGIN
|
453
|
PRINT 'CO THUE, KHONG PHAN CHIA 2 NO - 1 CO'
|
454
|
DECLARE @DEBIT_AMT_1 DECIMAL(18,0) = @TOTAL_CREDIT_AMT/@PERCENT_VAT
|
455
|
DECLARE @3532_AMT DECIMAL(18,0) = @TOTAL_CREDIT_AMT - @DEBIT_AMT_1
|
456
|
|
457
|
DECLARE cursorEntries CURSOR LOCAL FOR
|
458
|
SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE,
|
459
|
TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS, IS_TRANSFER_EXTERNAL
|
460
|
FROM TR_REQ_PAY_AUTO_ENTRIES
|
461
|
WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
|
462
|
Open cursorEntries
|
463
|
FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
|
464
|
@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
|
465
|
WHILE @@FETCH_STATUS = 0
|
466
|
BEGIN
|
467
|
|
468
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
|
469
|
IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
|
470
|
|
471
|
IF(@DR_CR = 'D') -- Nợ
|
472
|
BEGIN
|
473
|
IF(@ACCT = '353200002')
|
474
|
BEGIN
|
475
|
print '3532'
|
476
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
477
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
478
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, '1', @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @3532_AMT, @CURRENCY, @EXC_RATE,
|
479
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
480
|
END
|
481
|
ELSE
|
482
|
BEGIN
|
483
|
print 'No TKCP'
|
484
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
485
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
486
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, '1', @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @DEBIT_AMT_1, @CURRENCY, @EXC_RATE,
|
487
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
488
|
END
|
489
|
END
|
490
|
ELSE
|
491
|
BEGIN
|
492
|
print 'Co TKTT'
|
493
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
494
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
495
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, '1', @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount, @CURRENCY, @EXC_RATE,
|
496
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
497
|
END
|
498
|
|
499
|
|
500
|
IF @@error<>0 GOTO ABORT;
|
501
|
FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
|
502
|
@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
|
503
|
END
|
504
|
CLOSE cursorEntries
|
505
|
DEALLOCATE cursorEntries
|
506
|
--- BAN BUT TOAN VAO CORE
|
507
|
EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
|
508
|
END
|
509
|
END
|
510
|
-- KHONG THUE
|
511
|
ELSE
|
512
|
BEGIN
|
513
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID))
|
514
|
BEGIN
|
515
|
PRINT 'KHONG THUE, CO PHAN CHIA'
|
516
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT'))
|
517
|
BEGIN
|
518
|
PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO TY LE'
|
519
|
-- CREATE CURSOR CÁC ĐẦU CÓ
|
520
|
DECLARE cursorEntries_C CURSOR LOCAL FOR
|
521
|
SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
|
522
|
FROM TR_REQ_PAY_AUTO_ENTRIES
|
523
|
WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
|
524
|
|
525
|
Open cursorEntries_C
|
526
|
FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
|
527
|
WHILE @@FETCH_STATUS = 0
|
528
|
BEGIN
|
529
|
-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
|
530
|
DECLARE cursorEntries CURSOR LOCAL FOR
|
531
|
SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE,
|
532
|
TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS,
|
533
|
IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
|
534
|
FROM TR_REQ_PAY_AUTO_ENTRIES
|
535
|
WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
|
536
|
|
537
|
Open cursorEntries
|
538
|
FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
|
539
|
@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS,
|
540
|
@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
|
541
|
WHILE @@FETCH_STATUS = 0
|
542
|
BEGIN
|
543
|
|
544
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
|
545
|
IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
|
546
|
|
547
|
IF(@DR_CR = 'D')
|
548
|
BEGIN
|
549
|
IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
|
550
|
BEGIN
|
551
|
PRINT 'DONG NO CUOI'
|
552
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
553
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
554
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
|
555
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
556
|
END
|
557
|
ELSE
|
558
|
BEGIN
|
559
|
PRINT 'CHUA PHAI DONG NO CUOI'
|
560
|
|
561
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
562
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
563
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
|
564
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
565
|
END
|
566
|
END
|
567
|
ELSE
|
568
|
BEGIN
|
569
|
IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
|
570
|
BEGIN
|
571
|
PRINT 'DONG CO CUOI'
|
572
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
573
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
574
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
|
575
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
576
|
END
|
577
|
ELSE
|
578
|
BEGIN
|
579
|
PRINT 'CHUA PHAI DONG CO CUOI'
|
580
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
581
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
582
|
VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
|
583
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
|
584
|
END
|
585
|
|
586
|
END
|
587
|
|
588
|
IF @@error<>0 GOTO ABORT;
|
589
|
FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
|
590
|
@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS,
|
591
|
@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
|
592
|
END
|
593
|
CLOSE cursorEntries
|
594
|
DEALLOCATE cursorEntries
|
595
|
-- END CHẠY TỪNG CẶP BÚT TOÁN
|
596
|
|
597
|
SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
|
598
|
SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
|
599
|
|
600
|
IF @@error<>0 GOTO ABORT;
|
601
|
FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
|
602
|
END
|
603
|
CLOSE cursorEntries_C
|
604
|
DEALLOCATE cursorEntries_C
|
605
|
|
606
|
|
607
|
--- BAN BUT TOAN VAO CORE
|
608
|
EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
|
609
|
END
|
610
|
ELSE
|
611
|
BEGIN
|
612
|
PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO SO TIEN'
|
613
|
END
|
614
|
END
|
615
|
ELSE
|
616
|
BEGIN
|
617
|
PRINT 'KHONG THUE, KHONG PHAN CHIA 1 NO - 1 CO'
|
618
|
|
619
|
DECLARE cursorEntries CURSOR LOCAL FOR
|
620
|
SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE,
|
621
|
TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS, IS_TRANSFER_EXTERNAL
|
622
|
FROM TR_REQ_PAY_AUTO_ENTRIES
|
623
|
WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
|
624
|
Open cursorEntries
|
625
|
|
626
|
FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
|
627
|
@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
|
628
|
WHILE @@FETCH_STATUS = 0
|
629
|
BEGIN
|
630
|
DECLARE @l_TR_REQ_PAY_ENTRIES VARCHAR(15);
|
631
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES OUT;
|
632
|
IF @l_TR_REQ_PAY_ENTRIES='' OR @l_TR_REQ_PAY_ENTRIES IS NULL GOTO ABORT;
|
633
|
|
634
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
|
635
|
[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
636
|
VALUES (@l_TR_REQ_PAY_ENTRIES, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, CONVERT(DECIMAL(18,2), @amount), 'VND', @EXC_RATE,
|
637
|
@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', GETDATE(), @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', GETDATE(), 'A', 'admin', @APPROVE_DT_KT, '1', @IS_TRANSFER_EXTERNAL)
|
638
|
|
639
|
IF @@error<>0 GOTO ABORT;
|
640
|
FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
|
641
|
@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
|
642
|
END
|
643
|
CLOSE cursorEntries
|
644
|
DEALLOCATE cursorEntries
|
645
|
|
646
|
--- BAN BUT TOAN VAO CORE
|
647
|
EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
|
648
|
END
|
649
|
END
|
650
|
|
651
|
-- END BUT TOAN CHI PHI
|
652
|
|
653
|
|
654
|
|
655
|
-- BEGIN BUT TOAN HE THONG: BUT TOAN SO 0
|
656
|
-- NỢ
|
657
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
|
658
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
|
659
|
[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
|
660
|
[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
|
661
|
[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
|
662
|
[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
663
|
VALUES(@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
|
664
|
'0', N'D', N'Nợ',
|
665
|
@accountNo, @customerName, N'DV0001', N'',
|
666
|
CONVERT(DECIMAL(18,2), @amount), N'VND', 1.00, GETDATE(), @transDesc,
|
667
|
'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
|
668
|
|
669
|
DECLARE @l_PAY_ENTRIES_POST_D VARCHAR(15);
|
670
|
EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_D OUT;
|
671
|
INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
|
672
|
[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
|
673
|
[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
|
674
|
VALUES (@l_PAY_ENTRIES_POST_D, @coreXref, @REQ_PAY_ID, @l_TR_REQ_PAY_ENTRIES_D,'PAYMENT',
|
675
|
'0',N'DV0001',N'D',
|
676
|
@accountNo,N'DV0001',N'',
|
677
|
CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
|
678
|
@transDesc,'admin','admin')
|
679
|
|
680
|
-- CÓ
|
681
|
DECLARE @l_TR_REQ_PAY_ENTRIES_C VARCHAR(15);
|
682
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_C OUT;
|
683
|
INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
|
684
|
[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
|
685
|
[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
|
686
|
[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
|
687
|
[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
|
688
|
VALUES(@l_TR_REQ_PAY_ENTRIES_C, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
|
689
|
'0',N'C',N'Có',
|
690
|
@partnerAccount, @partner,N'DV0001',N'',
|
691
|
CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,GETDATE(),@transDesc,
|
692
|
'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
|
693
|
|
694
|
DECLARE @l_PAY_ENTRIES_POST_C VARCHAR(15);
|
695
|
EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_C OUT;
|
696
|
INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
|
697
|
[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
|
698
|
[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
|
699
|
VALUES (@l_PAY_ENTRIES_POST_C, @coreXref, @REQ_PAY_ID,@l_TR_REQ_PAY_ENTRIES_C,'PAYMENT',
|
700
|
'0',N'DV0001',N'C',
|
701
|
@partnerAccount,N'DV0001',N'',
|
702
|
CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
|
703
|
@transDesc, 'admin', 'admin')
|
704
|
-- END BUT TOAN HE THONG: BUT TOAN SO 0
|
705
|
|
706
|
-- Mỗi lần chỉ quét 1 bill hợp lệ
|
707
|
CLOSE XmlAutoRecurring;
|
708
|
DEALLOCATE XmlAutoRecurring;
|
709
|
COMMIT TRANSACTION
|
710
|
SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
|
711
|
RETURN '0'
|
712
|
|
713
|
END
|
714
|
|
715
|
IF @@error<>0 GOTO ABORT;
|
716
|
FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
|
717
|
@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
|
718
|
END;
|
719
|
CLOSE XmlAutoRecurring;
|
720
|
DEALLOCATE XmlAutoRecurring;
|
721
|
|
722
|
COMMIT TRANSACTION
|
723
|
|
724
|
SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
|
725
|
RETURN '0'
|
726
|
|
727
|
ABORT:
|
728
|
BEGIN
|
729
|
ROLLBACK TRANSACTION
|
730
|
SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Lỗi không xác định' ErrorDesc
|
731
|
RETURN '-1'
|
732
|
End
|
733
|
|
734
|
GO
|
735
|
|
736
|
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_Search]
|
737
|
@p_REQ_PAY_AUTO_ID VARCHAR(20)= NULL,
|
738
|
@p_REQ_PAY_AUTO_CODE VARCHAR(20)= NULL,
|
739
|
@p_REQ_PAY_AUTO_NAME VARCHAR(20)= NULL,
|
740
|
@p_REQ_PAY_AUTO_DT VARCHAR(20)= NULL,
|
741
|
@p_REQ_PAY_AUTO_TYPE VARCHAR(20)= NULL,
|
742
|
@p_REQ_PAY_AUTO_SERVICE_TYPE VARCHAR(20)= NULL,
|
743
|
@p_REQ_PAY_AUTO_STATUS VARCHAR(20)= NULL,
|
744
|
@p_REQ_PAY_AUTO_EFFECTIVE_DT VARCHAR(20)= NULL,
|
745
|
@p_BRANCH_ID VARCHAR(20)= NULL,
|
746
|
@p_BRANCH_CODE VARCHAR(20)= NULL,
|
747
|
@p_BRANCH_NAME VARCHAR(20)= NULL,
|
748
|
@p_DEP_ID VARCHAR(20)= NULL,
|
749
|
@p_DEP_CODE VARCHAR(20)= NULL,
|
750
|
@p_DEP_NAME VARCHAR(20)= NULL,
|
751
|
@p_BRANCH_CREATE VARCHAR(20)= NULL,
|
752
|
@p_BRANCH_CREATE_CODE VARCHAR(20)= NULL,
|
753
|
@p_BRANCH_CREATE_NAME VARCHAR(20)= NULL,
|
754
|
@p_TRANSFER_USER_RECEIVE VARCHAR(20)= NULL,
|
755
|
@p_TRANSFER_USER_RECEIVE_NAME VARCHAR(20)= NULL,
|
756
|
@p_CONFIRM_NOTE VARCHAR(20)= NULL,
|
757
|
@p_CONTRACT_ID VARCHAR(20)= NULL,
|
758
|
@p_CONTRACT_CODE VARCHAR(20)= NULL,
|
759
|
@p_CONTRACT_NAME VARCHAR(20)= NULL,
|
760
|
@p_PROCESS VARCHAR(20)= NULL,
|
761
|
@p_TRANSFER_MAKER VARCHAR(20)= NULL,
|
762
|
@p_TRANSFER_DT VARCHAR(20)= NULL,
|
763
|
@p_MAKER_ID VARCHAR(20)= NULL,
|
764
|
@p_MAKER_NAME VARCHAR(20)= NULL,
|
765
|
@p_CREATE_DT VARCHAR(20)= NULL,
|
766
|
@p_EDITOR_ID VARCHAR(20)= NULL,
|
767
|
@p_EDITOR_NAME VARCHAR(20)= NULL,
|
768
|
@p_EDIT_DT VARCHAR(20)= NULL,
|
769
|
@p_CHECKER_ID VARCHAR(20)= NULL,
|
770
|
@p_CHECKER_NAME VARCHAR(20)= NULL,
|
771
|
@p_APPROVE_DT VARCHAR(20)= NULL,
|
772
|
@p_AUTH_STATUS VARCHAR(20)= NULL,
|
773
|
@p_MAKER_ID_KT VARCHAR(20)= NULL,
|
774
|
@p_MAKER_KT_NAME VARCHAR(20)= NULL,
|
775
|
@p_CREATE_DT_KT VARCHAR(20)= NULL,
|
776
|
@p_CHECKER_ID_KT VARCHAR(20)= NULL,
|
777
|
@p_CHECKER_KT_NAME VARCHAR(20)= NULL,
|
778
|
@p_APPROVE_DT_KT VARCHAR(20)= NULL,
|
779
|
@p_AUTH_STATUS_KT VARCHAR(20)= NULL,
|
780
|
@p_AUTH_STATUS_KT_DESC VARCHAR(20)= NULL,
|
781
|
@p_RECORD_STATUS VARCHAR(20)= NULL,
|
782
|
@p_FRMDATE VARCHAR(20)= NULL,
|
783
|
@p_TODATE VARCHAR(20)= NULL,
|
784
|
@p_LEVEL VARCHAR(20)= NULL,
|
785
|
@p_USER_LOGIN VARCHAR(20)= NULL,
|
786
|
@p_IS_SEND_APPR VARCHAR(20)= NULL,
|
787
|
@p_TYPE_SEARCH VARCHAR(20)= NULL,
|
788
|
@p_BRANCH_LOGIN VARCHAR(20)= NULL,
|
789
|
@p_EXEC_USER_KT nvarchar(20) = NULL,
|
790
|
@p_IS_UPDATE_KT VARCHAR(15) = NULL,
|
791
|
@p_BRANCH_MANAGE_ID VARCHAR(20)= NULL,
|
792
|
@p_TOP INT = NULL
|
793
|
AS
|
794
|
/*
|
795
|
1. Trạng thái chờ duyệt ở DVKD: Sẽ kiếm thấy các phiếu chờ người đó xử lý, hoặc do người đó gửi phê duyệt
|
796
|
- Do người này gửi duyệt(U-0)
|
797
|
- Do người này đề nghị tạm dừng(A-6)
|
798
|
- Do người này đề nghị khôi phục(A-9)
|
799
|
- Do người này đề nghị hủy phiếu(A-15)
|
800
|
|
801
|
*/
|
802
|
BEGIN -- PAGING
|
803
|
-- BEGIN KHAI BÁO
|
804
|
IF(@p_TYPE_SEARCH = 'HC')
|
805
|
BEGIN
|
806
|
SET @p_LEVEL = 'UNIT'
|
807
|
END
|
808
|
IF(ISNULL(@p_BRANCH_ID, '') = '')
|
809
|
BEGIN
|
810
|
SET @p_BRANCH_ID = @p_BRANCH_CREATE
|
811
|
END
|
812
|
IF(@p_BRANCH_LOGIN <> 'DV0001')
|
813
|
BEGIN
|
814
|
SET @p_DEP_ID = NULL
|
815
|
END
|
816
|
-- ĐƠN VỊ YÊU CẦU
|
817
|
DECLARE @tmp_branch TABLE(BRANCH_ID VARCHAR(15))
|
818
|
DECLARE @tmp_dep TABLE(DEP_ID VARCHAR(15))
|
819
|
DECLARE @DEP_ID VARCHAR(15) = NULL
|
820
|
INSERT INTO @tmp_branch SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
|
821
|
DECLARE @BRANCH_TYPE VARCHAR(15)
|
822
|
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_AUTO_ID))
|
823
|
|
824
|
-- ĐƠN VỊ ĐĂNG NHẬP
|
825
|
DECLARE @tmp_branch_login TABLE(BRANCH_ID VARCHAR(15))
|
826
|
DECLARE @tmp_dep_login TABLE(DEP_ID VARCHAR(15))
|
827
|
INSERT INTO @tmp_branch_login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
|
828
|
INSERT INTO @tmp_branch_login VALUES (@p_BRANCH_LOGIN)
|
829
|
INSERT INTO @tmp_branch_login SELECT BRANCH_ID
|
830
|
FROM TL_SYS_ROLE_MAPPING
|
831
|
WHERE TLNAME =@P_USER_LOGIN
|
832
|
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
|
833
|
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='')
|
834
|
AND RECORD_STATUS = '1'
|
835
|
DECLARE @BRANCH_TYPE_LG VARCHAR(15)
|
836
|
SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
|
837
|
-- PHÒNG BAN ĐĂNG NHẬP
|
838
|
DECLARE @DEP_ID_LG VARCHAR(15) = NULL
|
839
|
SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
|
840
|
INSERT INTO @tmp_dep_login VALUES (@DEP_ID_LG)
|
841
|
INSERT INTO @tmp_dep_login SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG
|
842
|
INSERT INTO @tmp_dep_login SELECT DEP_ID
|
843
|
FROM TL_SYS_ROLE_MAPPING
|
844
|
WHERE TLNAME =@P_USER_LOGIN
|
845
|
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
|
846
|
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='')
|
847
|
AND RECORD_STATUS = '1'
|
848
|
-- ĐƠN VỊ ỦY QUYỀN KIÊM NHIỆM
|
849
|
DECLARE @tmp_branch_auth TABLE (BRANCH_ID VARCHAR(15))
|
850
|
INSERT INTO @tmp_branch_auth VALUES (@p_BRANCH_LOGIN)
|
851
|
INSERT INTO @tmp_branch_auth SELECT BRANCH_ID
|
852
|
FROM TL_SYS_ROLE_MAPPING
|
853
|
WHERE TLNAME =@P_USER_LOGIN
|
854
|
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
|
855
|
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='')
|
856
|
AND RECORD_STATUS = '1'
|
857
|
-- PHÒNG BAN ỦY QUYỀN KIÊM NHIỆM
|
858
|
DECLARE @tmp_dep_auth TABLE (DEP_ID VARCHAR(15))
|
859
|
INSERT INTO @tmp_dep_auth VALUES (@DEP_ID_LG)
|
860
|
INSERT INTO @tmp_dep_auth SELECT DEP_ID
|
861
|
FROM TL_SYS_ROLE_MAPPING
|
862
|
WHERE TLNAME =@P_USER_LOGIN
|
863
|
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
|
864
|
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='')
|
865
|
AND RECORD_STATUS = '1'
|
866
|
INSERT INTO @tmp_dep_auth SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG
|
867
|
|
868
|
-- ROLE
|
869
|
DECLARE @ROLE_ID VARCHAR(20)
|
870
|
SET @ROLE_ID = (SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
|
871
|
DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))
|
872
|
INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
|
873
|
INSERT INTO @TABLE_ROLE SELECT ROLE_NEW
|
874
|
FROM TL_SYS_ROLE_MAPPING
|
875
|
WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@P_USER_LOGIN
|
876
|
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
|
877
|
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='')
|
878
|
AND RECORD_STATUS = '1'
|
879
|
|
880
|
-- NEU USER KHONG CHON TU NGAY THI TU NGAY BANG NGAY 1 1 HANG THANG 20211116
|
881
|
DECLARE @DATE DATE
|
882
|
IF ((@p_FRMDATE IS NULL OR @p_FRMDATE ='') AND ISNULL(@p_REQ_PAY_AUTO_ID,'')='' AND @p_AUTH_STATUS ='') -- MỤC ĐÍCH NẾU NHƯ XEM CHI TIẾT 1 PĐN THANH TOÁN DẠNG POPUP THÌ BỎ QUA ĐIỀU KIỆN NÀY, TỪ NGÀY VẪN LÀ NULL
|
883
|
BEGIN
|
884
|
SET @DATE = CONVERT(DATE,GETDATE(),103)
|
885
|
SET @DATE = DATEADD(MONTH,-2,@DATE)
|
886
|
END
|
887
|
ELSE
|
888
|
BEGIN
|
889
|
SET @DATE = CONVERT(DATE,@p_FRMDATE,103)
|
890
|
END
|
891
|
-- CHECK NGUOI DUYET
|
892
|
DECLARE @IS_TDV VARCHAR(1) = 'N'
|
893
|
IF (
|
894
|
( SELECT COUNT(*)
|
895
|
FROM @TABLE_ROLE A
|
896
|
WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
|
897
|
) = 0
|
898
|
)
|
899
|
BEGIN
|
900
|
SET @IS_TDV = 'N'
|
901
|
END
|
902
|
ELSE
|
903
|
BEGIN
|
904
|
SET @IS_TDV = 'Y'
|
905
|
END
|
906
|
-- END KHAI BÁO
|
907
|
IF(@p_TYPE_SEARCH = 'HC')
|
908
|
BEGIN
|
909
|
IF(@p_TOP IS NULL OR @p_TOP=0)
|
910
|
BEGIN
|
911
|
IF(@DEP_ID_LG = 'DEP000000000022')
|
912
|
BEGIN
|
913
|
-- PAGING BEGIN
|
914
|
SELECT A.*,
|
915
|
--B.BRANCH_CODE, B.BRANCH_NAME,
|
916
|
CASE WHEN ( SELECT TOP 1 BRANCH_ID
|
917
|
FROM TR_CONTRACT
|
918
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
919
|
) <> 'DV0001'
|
920
|
THEN B.BRANCH_NAME + ISNULL ( ' - ' + ( SELECT TOP 1 BRANCH_NAME
|
921
|
FROM CM_BRANCH
|
922
|
WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID
|
923
|
FROM TR_CONTRACT
|
924
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
925
|
)
|
926
|
),''
|
927
|
)
|
928
|
ELSE B.BRANCH_NAME
|
929
|
END BRANCH_NAME,
|
930
|
C.DEP_CODE, C.DEP_NAME,
|
931
|
D.CONTRACT_CODE, D.[CONTRACT_NAME],
|
932
|
E.TLFullName AS MAKER_NAME,
|
933
|
F.TLFullName AS MAKER_NAME_KT,
|
934
|
G.TLFullName AS CHECKER_NAME_KT,
|
935
|
H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
|
936
|
--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
|
937
|
CASE
|
938
|
WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
|
939
|
ELSE O.CONTENT
|
940
|
END REQ_PAY_AUTO_TYPE_NAME,
|
941
|
J.CONTENT AS AUTH_STATUS_NAME,
|
942
|
K.CONTENT AS AUTH_STATUS_KT_NAME,
|
943
|
L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
|
944
|
M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
|
945
|
-- SELECT END
|
946
|
FROM TR_REQ_PAYMENT_AUTO A
|
947
|
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
|
948
|
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
|
949
|
LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
|
950
|
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
|
951
|
LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
|
952
|
LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
|
953
|
LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
|
954
|
LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
|
955
|
LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
|
956
|
LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
|
957
|
LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
|
958
|
LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
|
959
|
LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
|
960
|
LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
|
961
|
WHERE 1=1
|
962
|
-- BEGIN FILTER
|
963
|
AND ( A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
|
964
|
AND ( A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
|
965
|
--AND ( A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
|
966
|
AND ( (@p_AUTH_STATUS = A.AUTH_STATUS) -- dùng cho: lưu nháp, phiếu bị hủy
|
967
|
OR (@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
|
968
|
OR (@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
|
969
|
OR (@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
|
970
|
OR (@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
|
971
|
OR (@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
|
972
|
OR (@p_AUTH_STATUS = 'R' AND ISNULL(A.PROCESS, '') IN ('', '7.1', '8.1', '10.1', '11.1', '14.1', '16.1', '17.1', '20.1') AND ISNULL(A.AUTH_STATUS, '') <> 'E') -- từ chối
|
973
|
OR (ISNULL(@p_AUTH_STATUS, '') = '')
|
974
|
)
|
975
|
AND ( A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
|
976
|
AND ( A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
|
977
|
AND ( M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
|
978
|
AND ( A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
|
979
|
AND ( A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
|
980
|
AND ( CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
|
981
|
AND ( CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
|
982
|
AND ( A.BRANCH_ID = @p_BRANCH_ID
|
983
|
OR ISNULL(@p_BRANCH_ID, '') = ''
|
984
|
OR A.BRANCH_ID IN ( SELECT BRANCH_ID
|
985
|
FROM @tmp_branch
|
986
|
)
|
987
|
)
|
988
|
AND ( A.DEP_ID = @p_DEP_ID
|
989
|
OR ISNULL(@p_DEP_ID, '') = ''
|
990
|
)
|
991
|
AND ( A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
|
992
|
AND ( A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
|
993
|
-- END FILTER
|
994
|
ORDER BY A.CREATE_DT DESC
|
995
|
-- PAGING END
|
996
|
END
|
997
|
ELSE
|
998
|
BEGIN-- DVKD Search
|
999
|
-- PAGING BEGIN
|
1000
|
SELECT A.*,
|
1001
|
--B.BRANCH_CODE, B.BRANCH_NAME,
|
1002
|
CASE WHEN ( SELECT TOP 1 BRANCH_ID
|
1003
|
FROM TR_CONTRACT
|
1004
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
1005
|
) <> 'DV0001'
|
1006
|
THEN B.BRANCH_NAME + ISNULL ( ' - ' + ( SELECT TOP 1 BRANCH_NAME
|
1007
|
FROM CM_BRANCH
|
1008
|
WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID
|
1009
|
FROM TR_CONTRACT
|
1010
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
1011
|
)
|
1012
|
),''
|
1013
|
)
|
1014
|
ELSE B.BRANCH_NAME
|
1015
|
END BRANCH_NAME,
|
1016
|
C.DEP_CODE, C.DEP_NAME,
|
1017
|
D.CONTRACT_CODE, D.[CONTRACT_NAME],
|
1018
|
E.TLFullName AS MAKER_NAME,
|
1019
|
F.TLFullName AS MAKER_NAME_KT,
|
1020
|
G.TLFullName AS CHECKER_NAME_KT,
|
1021
|
H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
|
1022
|
--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
|
1023
|
CASE
|
1024
|
WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
|
1025
|
ELSE O.CONTENT
|
1026
|
END REQ_PAY_AUTO_TYPE_NAME,
|
1027
|
J.CONTENT AS AUTH_STATUS_NAME,
|
1028
|
K.CONTENT AS AUTH_STATUS_KT_NAME,
|
1029
|
L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
|
1030
|
M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
|
1031
|
-- SELECT END
|
1032
|
FROM TR_REQ_PAYMENT_AUTO A
|
1033
|
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
|
1034
|
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
|
1035
|
LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
|
1036
|
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
|
1037
|
LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
|
1038
|
LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
|
1039
|
LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
|
1040
|
LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
|
1041
|
LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
|
1042
|
LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
|
1043
|
LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
|
1044
|
LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
|
1045
|
LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
|
1046
|
LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
|
1047
|
WHERE 1=1
|
1048
|
-- BEGIN FILTER
|
1049
|
AND ( A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
|
1050
|
AND ( A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
|
1051
|
--AND ( A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
|
1052
|
AND ( (@p_AUTH_STATUS = A.AUTH_STATUS) -- dùng cho: lưu nháp, phiếu bị hủy
|
1053
|
OR (@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
|
1054
|
OR (@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
|
1055
|
OR (@p_AUTH_STATUS = 'U' AND @IS_TDV = 'N' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
|
1056
|
OR (@p_AUTH_STATUS = 'U' AND @IS_TDV = 'Y' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
|
1057
|
OR (@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
|
1058
|
OR (@p_AUTH_STATUS = 'R' AND ISNULL(A.PROCESS, '') IN ('', '7.1', '8.1', '10.1', '11.1', '14.1', '16.1', '17.1', '20.1') AND ISNULL(A.AUTH_STATUS, '') <> 'E') -- từ chối
|
1059
|
OR (ISNULL(@p_AUTH_STATUS, '') = '')
|
1060
|
)
|
1061
|
AND ( A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
|
1062
|
AND ( A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
|
1063
|
AND ( M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
|
1064
|
AND ( A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
|
1065
|
AND ( A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
|
1066
|
AND( CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
|
1067
|
AND( CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
|
1068
|
AND ( A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
|
1069
|
AND ( A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
|
1070
|
-- END FILTER
|
1071
|
-- BEGIN VALIDATE FLOW
|
1072
|
AND (
|
1073
|
(
|
1074
|
( A.MAKER_ID = @p_USER_LOGIN)
|
1075
|
)-- NGUOI TAO
|
1076
|
OR (
|
1077
|
( A.TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND A.AUTH_STATUS IN ('U', 'R', 'A', 'N') AND PROCESS IN ('0', '6', '9', '15') )
|
1078
|
)-- NGUOI DUYET TRUNG GIAN
|
1079
|
OR (
|
1080
|
( A.AUTH_STATUS IN ('R', 'A', 'N') AND @IS_TDV = 'Y')
|
1081
|
OR ( A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') = '' AND @IS_TDV = 'Y')
|
1082
|
OR ( A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') <> '' AND ISNULL(A.PROCESS, '') = '1' AND @IS_TDV = 'Y')
|
1083
|
)-- TRUONG DON VI
|
1084
|
OR (
|
1085
|
A.AUTH_STATUS = 'A'
|
1086
|
|
1087
|
)-- VA NHUNG PHIEU DA DUYET
|
1088
|
)
|
1089
|
AND ( ( @p_LEVEL='ALL'
|
1090
|
AND ( A.BRANCH_ID IN ( SELECT BRANCH_ID
|
1091
|
FROM @tmp_branch
|
1092
|
) -- PYC cua don vi minh va cac don vi con
|
1093
|
OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
|
1094
|
)
|
1095
|
)
|
1096
|
OR ( @p_LEVEL='UNIT'
|
1097
|
AND ( A.BRANCH_ID = @p_BRANCH_ID -- PYC cua don vi minh
|
1098
|
OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
|
1099
|
)
|
1100
|
)
|
1101
|
)
|
1102
|
AND ( A.DEP_ID = @p_DEP_ID
|
1103
|
OR ISNULL(@p_DEP_ID, '') = ''
|
1104
|
)
|
1105
|
|
1106
|
AND (
|
1107
|
A.DEP_ID IN (
|
1108
|
SELECT *
|
1109
|
FROM @tmp_dep_auth
|
1110
|
)
|
1111
|
OR A.BRANCH_ID <> 'DV0001'
|
1112
|
)
|
1113
|
-- END VALIDATE FLOW
|
1114
|
ORDER BY A.CREATE_DT DESC
|
1115
|
-- PAGING END
|
1116
|
END
|
1117
|
END;
|
1118
|
ELSE -- TOP IS NOT NULL
|
1119
|
BEGIN
|
1120
|
IF(@DEP_ID_LG = 'DEP000000000022')
|
1121
|
BEGIN
|
1122
|
-- PAGING BEGIN
|
1123
|
SELECT A.*,
|
1124
|
--B.BRANCH_CODE, B.BRANCH_NAME,
|
1125
|
CASE WHEN ( SELECT TOP 1 BRANCH_ID
|
1126
|
FROM TR_CONTRACT
|
1127
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
1128
|
) <> 'DV0001'
|
1129
|
THEN B.BRANCH_NAME + ISNULL ( ' - ' + ( SELECT TOP 1 BRANCH_NAME
|
1130
|
FROM CM_BRANCH
|
1131
|
WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID
|
1132
|
FROM TR_CONTRACT
|
1133
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
1134
|
)
|
1135
|
),''
|
1136
|
)
|
1137
|
ELSE B.BRANCH_NAME
|
1138
|
END BRANCH_NAME,
|
1139
|
C.DEP_CODE, C.DEP_NAME,
|
1140
|
D.CONTRACT_CODE, D.[CONTRACT_NAME],
|
1141
|
E.TLFullName AS MAKER_NAME,
|
1142
|
F.TLFullName AS MAKER_NAME_KT,
|
1143
|
G.TLFullName AS CHECKER_NAME_KT,
|
1144
|
H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
|
1145
|
--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
|
1146
|
CASE
|
1147
|
WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
|
1148
|
ELSE O.CONTENT
|
1149
|
END REQ_PAY_AUTO_TYPE_NAME,
|
1150
|
J.CONTENT AS AUTH_STATUS_NAME,
|
1151
|
K.CONTENT AS AUTH_STATUS_KT_NAME,
|
1152
|
L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
|
1153
|
M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
|
1154
|
-- SELECT END
|
1155
|
FROM TR_REQ_PAYMENT_AUTO A
|
1156
|
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
|
1157
|
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
|
1158
|
LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
|
1159
|
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
|
1160
|
LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
|
1161
|
LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
|
1162
|
LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
|
1163
|
LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
|
1164
|
LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
|
1165
|
LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
|
1166
|
LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
|
1167
|
LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
|
1168
|
LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
|
1169
|
LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
|
1170
|
WHERE 1=1
|
1171
|
-- BEGIN FILTER
|
1172
|
AND ( A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
|
1173
|
AND ( A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
|
1174
|
--AND ( A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
|
1175
|
AND ( (@p_AUTH_STATUS = A.AUTH_STATUS) -- dùng cho: lưu nháp, phiếu bị hủy
|
1176
|
OR (@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
|
1177
|
OR (@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
|
1178
|
OR (@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
|
1179
|
OR (@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
|
1180
|
OR (@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
|
1181
|
OR (@p_AUTH_STATUS = 'R' AND ISNULL(A.PROCESS, '') IN ('', '7.1', '8.1', '10.1', '11.1', '14.1', '16.1', '17.1', '20.1') AND ISNULL(A.AUTH_STATUS, '') <> 'E') -- từ chối
|
1182
|
OR (ISNULL(@p_AUTH_STATUS, '') = '')
|
1183
|
)
|
1184
|
AND ( A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
|
1185
|
AND ( A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
|
1186
|
AND ( M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
|
1187
|
AND ( A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
|
1188
|
AND ( A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
|
1189
|
AND ( CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
|
1190
|
AND ( CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
|
1191
|
AND ( A.BRANCH_ID = @p_BRANCH_ID
|
1192
|
OR ISNULL(@p_BRANCH_ID, '') = ''
|
1193
|
OR A.BRANCH_ID IN ( SELECT BRANCH_ID
|
1194
|
FROM @tmp_branch
|
1195
|
)
|
1196
|
)
|
1197
|
AND ( A.DEP_ID = @p_DEP_ID
|
1198
|
OR ISNULL(@p_DEP_ID, '') = ''
|
1199
|
)
|
1200
|
AND ( A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
|
1201
|
AND ( A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
|
1202
|
-- END FILTER
|
1203
|
ORDER BY A.CREATE_DT DESC
|
1204
|
-- PAGING END
|
1205
|
END--END @DEP_ID_LG = 'DEP000000000022'
|
1206
|
ELSE
|
1207
|
BEGIN
|
1208
|
-- PAGING BEGIN
|
1209
|
SELECT A.*,
|
1210
|
--B.BRANCH_CODE, B.BRANCH_NAME,
|
1211
|
CASE WHEN ( SELECT TOP 1 BRANCH_ID
|
1212
|
FROM TR_CONTRACT
|
1213
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
1214
|
) <> 'DV0001'
|
1215
|
THEN B.BRANCH_NAME + ISNULL ( ' - ' + ( SELECT TOP 1 BRANCH_NAME
|
1216
|
FROM CM_BRANCH
|
1217
|
WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID
|
1218
|
FROM TR_CONTRACT
|
1219
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
1220
|
)
|
1221
|
),''
|
1222
|
)
|
1223
|
ELSE B.BRANCH_NAME
|
1224
|
END BRANCH_NAME,
|
1225
|
C.DEP_CODE, C.DEP_NAME,
|
1226
|
D.CONTRACT_CODE, D.[CONTRACT_NAME],
|
1227
|
E.TLFullName AS MAKER_NAME,
|
1228
|
F.TLFullName AS MAKER_NAME_KT,
|
1229
|
G.TLFullName AS CHECKER_NAME_KT,
|
1230
|
H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
|
1231
|
--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
|
1232
|
CASE
|
1233
|
WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
|
1234
|
ELSE O.CONTENT
|
1235
|
END REQ_PAY_AUTO_TYPE_NAME,
|
1236
|
J.CONTENT AS AUTH_STATUS_NAME,
|
1237
|
K.CONTENT AS AUTH_STATUS_KT_NAME,
|
1238
|
L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
|
1239
|
M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
|
1240
|
-- SELECT END
|
1241
|
FROM TR_REQ_PAYMENT_AUTO A
|
1242
|
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
|
1243
|
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
|
1244
|
LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
|
1245
|
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
|
1246
|
LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
|
1247
|
LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
|
1248
|
LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
|
1249
|
LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
|
1250
|
LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
|
1251
|
LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
|
1252
|
LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
|
1253
|
LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
|
1254
|
LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
|
1255
|
LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
|
1256
|
WHERE 1=1
|
1257
|
-- BEGIN FILTER
|
1258
|
AND ( A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
|
1259
|
AND ( A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
|
1260
|
--AND ( A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
|
1261
|
AND ( (@p_AUTH_STATUS = A.AUTH_STATUS) -- dùng cho: lưu nháp, phiếu bị hủy
|
1262
|
OR (@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
|
1263
|
OR (@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
|
1264
|
OR (@p_AUTH_STATUS = 'U' AND @IS_TDV = 'N' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
|
1265
|
OR (@p_AUTH_STATUS = 'U' AND @IS_TDV = 'Y' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
|
1266
|
OR (@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
|
1267
|
OR (@p_AUTH_STATUS = 'R' AND ISNULL(A.PROCESS, '') IN ('', '7.1', '8.1', '10.1', '11.1', '14.1', '16.1', '17.1', '20.1') AND ISNULL(A.AUTH_STATUS, '') <> 'E') -- từ chối
|
1268
|
OR (ISNULL(@p_AUTH_STATUS, '') = '')
|
1269
|
)
|
1270
|
AND ( A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
|
1271
|
AND ( A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
|
1272
|
AND ( M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
|
1273
|
AND ( A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
|
1274
|
AND ( A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
|
1275
|
AND( CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
|
1276
|
AND( CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
|
1277
|
AND ( A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
|
1278
|
AND ( A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
|
1279
|
-- END FILTER
|
1280
|
-- BEGIN VALIDATE FLOW
|
1281
|
AND (
|
1282
|
(
|
1283
|
( A.MAKER_ID = @p_USER_LOGIN)
|
1284
|
)-- NGUOI TAO
|
1285
|
OR (
|
1286
|
( A.TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND A.AUTH_STATUS IN ('U', 'R', 'A', 'N') AND PROCESS IN ('0', '6', '9', '15') )
|
1287
|
)-- NGUOI DUYET TRUNG GIAN
|
1288
|
OR (
|
1289
|
( A.AUTH_STATUS IN ('R', 'A', 'N') AND @IS_TDV = 'Y')
|
1290
|
OR ( A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') = '' AND @IS_TDV = 'Y')
|
1291
|
OR ( A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') <> '' AND ISNULL(A.PROCESS, '') = '1' AND @IS_TDV = 'Y')
|
1292
|
)-- TRUONG DON VI
|
1293
|
OR (
|
1294
|
A.AUTH_STATUS = 'A'
|
1295
|
|
1296
|
)-- VA NHUNG PHIEU DA DUYET
|
1297
|
)
|
1298
|
AND ( ( @p_LEVEL='ALL'
|
1299
|
AND ( A.BRANCH_ID IN ( SELECT BRANCH_ID
|
1300
|
FROM @tmp_branch
|
1301
|
) -- PYC cua don vi minh va cac don vi con
|
1302
|
OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
|
1303
|
)
|
1304
|
)
|
1305
|
OR ( @p_LEVEL='UNIT'
|
1306
|
AND ( A.BRANCH_ID = @p_BRANCH_ID -- PYC cua don vi minh
|
1307
|
OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
|
1308
|
)
|
1309
|
)
|
1310
|
)
|
1311
|
AND ( A.DEP_ID = @p_DEP_ID
|
1312
|
OR ISNULL(@p_DEP_ID, '') = ''
|
1313
|
)
|
1314
|
|
1315
|
AND (
|
1316
|
A.DEP_ID IN (
|
1317
|
SELECT *
|
1318
|
FROM @tmp_dep_auth
|
1319
|
)
|
1320
|
OR A.BRANCH_ID <> 'DV0001'
|
1321
|
)
|
1322
|
-- END VALIDATE FLOW
|
1323
|
ORDER BY A.CREATE_DT DESC
|
1324
|
-- PAGING END
|
1325
|
END
|
1326
|
END;
|
1327
|
END
|
1328
|
ELSE IF(@p_TYPE_SEARCH = 'KT')
|
1329
|
BEGIN
|
1330
|
IF(@p_TOP IS NULL OR @p_TOP = 0)
|
1331
|
BEGIN
|
1332
|
-- PAGING BEGIN
|
1333
|
SELECT A.*,
|
1334
|
--B.BRANCH_CODE, B.BRANCH_NAME,
|
1335
|
CASE WHEN ( SELECT TOP 1 BRANCH_ID
|
1336
|
FROM TR_CONTRACT
|
1337
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
1338
|
) <> 'DV0001'
|
1339
|
THEN B.BRANCH_NAME + ISNULL ( ' - ' + ( SELECT TOP 1 BRANCH_NAME
|
1340
|
FROM CM_BRANCH
|
1341
|
WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID
|
1342
|
FROM TR_CONTRACT
|
1343
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
1344
|
)
|
1345
|
),''
|
1346
|
)
|
1347
|
ELSE B.BRANCH_NAME
|
1348
|
END BRANCH_NAME,
|
1349
|
C.DEP_CODE, C.DEP_NAME,
|
1350
|
D.CONTRACT_CODE, D.[CONTRACT_NAME],
|
1351
|
E.TLFullName AS MAKER_NAME,
|
1352
|
F.TLFullName AS MAKER_NAME_KT,
|
1353
|
G.TLFullName AS CHECKER_NAME_KT,
|
1354
|
H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
|
1355
|
--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
|
1356
|
CASE
|
1357
|
WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
|
1358
|
ELSE O.CONTENT
|
1359
|
END REQ_PAY_AUTO_TYPE_NAME,
|
1360
|
J.CONTENT AS AUTH_STATUS_NAME,
|
1361
|
K.CONTENT AS AUTH_STATUS_KT_NAME,
|
1362
|
L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
|
1363
|
M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
|
1364
|
-- SELECT END
|
1365
|
FROM TR_REQ_PAYMENT_AUTO A
|
1366
|
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
|
1367
|
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
|
1368
|
LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
|
1369
|
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
|
1370
|
LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
|
1371
|
LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
|
1372
|
LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
|
1373
|
LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
|
1374
|
LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
|
1375
|
LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
|
1376
|
LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
|
1377
|
LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
|
1378
|
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_AUTO_ID AND PC3.STATUS_JOB ='C'
|
1379
|
LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
|
1380
|
LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
|
1381
|
WHERE 1=1
|
1382
|
-- BEGIN FILTER
|
1383
|
AND A.AUTH_STATUS IN ('A', 'N', 'D')
|
1384
|
AND ( A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
|
1385
|
AND ( A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
|
1386
|
--AND ( A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
|
1387
|
AND ( (@p_AUTH_STATUS_KT = A.AUTH_STATUS_KT) -- dùng cho từ chối
|
1388
|
OR (@p_AUTH_STATUS_KT = 'U' AND A.PROCESS IN ('3', '12', '18')) -- chờ duyệt
|
1389
|
OR (@p_AUTH_STATUS_KT = 'P' AND A.PROCESS IN ('4', '13', '13.1', '19', '19.1')) -- đang xử lý
|
1390
|
OR (@p_AUTH_STATUS_KT = 'S' AND A.PROCESS IN ('4', '13.1', '19.1')) -- đề xuất từ chối
|
1391
|
OR (@p_AUTH_STATUS_KT = 'A' AND A.PROCESS IN ('5', '14', '20')) -- đã duyệt
|
1392
|
OR (@p_AUTH_STATUS_KT = 'R' AND A.PROCESS IN ('20.2', '14.2')) -- từ chối
|
1393
|
OR (ISNULL(@p_AUTH_STATUS_KT, '') = '' AND A.PROCESS IN ('2', '11', '17')) -- khi KSV chưa điều phối
|
1394
|
OR (ISNULL(@p_AUTH_STATUS_KT, '') = '')
|
1395
|
)
|
1396
|
AND ( A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
|
1397
|
--AND ( A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
|
1398
|
AND ( M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
|
1399
|
AND ( A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
|
1400
|
AND ( A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
|
1401
|
AND( CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
|
1402
|
AND( CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
|
1403
|
AND ( ( @p_LEVEL='ALL'
|
1404
|
AND ( A.BRANCH_ID IN ( SELECT BRANCH_ID
|
1405
|
FROM @tmp_branch
|
1406
|
) -- PYC cua don vi minh
|
1407
|
OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
|
1408
|
)
|
1409
|
)
|
1410
|
OR (
|
1411
|
@p_LEVEL='UNIT'
|
1412
|
AND A.BRANCH_ID = @p_BRANCH_ID
|
1413
|
)
|
1414
|
)
|
1415
|
AND ( A.DEP_ID = @p_DEP_ID
|
1416
|
OR ISNULL(@p_DEP_ID, '') = ''
|
1417
|
)
|
1418
|
AND ( A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
|
1419
|
AND ( A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
|
1420
|
AND( PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL OR PC3.TLNAME = '' OR PC3.TLNAME IS NULL)
|
1421
|
AND (
|
1422
|
(
|
1423
|
EXISTS ( SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE REQ_ID = A.REQ_PAY_AUTO_ID
|
1424
|
AND (
|
1425
|
X.TLNAME= @p_USER_LOGIN
|
1426
|
OR X.TLNAME =@p_EXEC_USER_KT
|
1427
|
)
|
1428
|
)
|
1429
|
)
|
1430
|
OR (A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
|
1431
|
OR (SELECT COUNT(*) FROM @TABLE_ROLE WHERE ROLE_AUTH = 'KSV') > 0
|
1432
|
OR ISNULL(@p_EXEC_USER_KT, '') = ''
|
1433
|
)
|
1434
|
AND ( ( A.MAKER_ID_KT IS NOT NULL
|
1435
|
AND @p_IS_UPDATE_KT='Y'
|
1436
|
)
|
1437
|
OR ( ( A.MAKER_ID_KT IS NULL
|
1438
|
AND @p_IS_UPDATE_KT='N'
|
1439
|
)
|
1440
|
)
|
1441
|
OR @p_IS_UPDATE_KT IS NULL
|
1442
|
OR @p_IS_UPDATE_KT=''
|
1443
|
)
|
1444
|
-- END FILTER
|
1445
|
ORDER BY A.CREATE_DT DESC
|
1446
|
-- PAGING END
|
1447
|
END;
|
1448
|
ELSE
|
1449
|
BEGIN
|
1450
|
-- PAGING BEGIN
|
1451
|
SELECT A.*,
|
1452
|
--B.BRANCH_CODE, B.BRANCH_NAME,
|
1453
|
CASE WHEN ( SELECT TOP 1 BRANCH_ID
|
1454
|
FROM TR_CONTRACT
|
1455
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
1456
|
) <> 'DV0001'
|
1457
|
THEN B.BRANCH_NAME + ISNULL ( ' - ' + ( SELECT TOP 1 BRANCH_NAME
|
1458
|
FROM CM_BRANCH
|
1459
|
WHERE BRANCH_ID = ( SELECT TOP 1 BRANCH_ID
|
1460
|
FROM TR_CONTRACT
|
1461
|
WHERE CONTRACT_ID = A.CONTRACT_ID
|
1462
|
)
|
1463
|
),''
|
1464
|
)
|
1465
|
ELSE B.BRANCH_NAME
|
1466
|
END BRANCH_NAME,
|
1467
|
C.DEP_CODE, C.DEP_NAME,
|
1468
|
D.CONTRACT_CODE, D.[CONTRACT_NAME],
|
1469
|
E.TLFullName AS MAKER_NAME,
|
1470
|
F.TLFullName AS MAKER_NAME_KT,
|
1471
|
G.TLFullName AS CHECKER_NAME_KT,
|
1472
|
H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
|
1473
|
--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
|
1474
|
CASE
|
1475
|
WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
|
1476
|
ELSE O.CONTENT
|
1477
|
END REQ_PAY_AUTO_TYPE_NAME,
|
1478
|
J.CONTENT AS AUTH_STATUS_NAME,
|
1479
|
K.CONTENT AS AUTH_STATUS_KT_NAME,
|
1480
|
L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
|
1481
|
M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
|
1482
|
-- SELECT END
|
1483
|
FROM TR_REQ_PAYMENT_AUTO A
|
1484
|
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
|
1485
|
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
|
1486
|
LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
|
1487
|
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
|
1488
|
LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
|
1489
|
LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
|
1490
|
LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
|
1491
|
LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
|
1492
|
LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
|
1493
|
LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
|
1494
|
LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
|
1495
|
LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
|
1496
|
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_AUTO_ID AND PC3.STATUS_JOB ='C'
|
1497
|
LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
|
1498
|
LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
|
1499
|
WHERE 1=1
|
1500
|
-- BEGIN FILTER
|
1501
|
AND A.AUTH_STATUS IN ('A', 'N', 'D')
|
1502
|
AND ( A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
|
1503
|
AND ( A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
|
1504
|
--AND ( A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
|
1505
|
AND ( (@p_AUTH_STATUS_KT = A.AUTH_STATUS_KT) -- dùng cho từ chối
|
1506
|
OR (@p_AUTH_STATUS_KT = 'U' AND A.PROCESS IN ('3', '12', '18')) -- chờ duyệt
|
1507
|
OR (@p_AUTH_STATUS_KT = 'P' AND A.PROCESS IN ('4', '13', '13.1', '19', '19.1')) -- đang xử lý
|
1508
|
OR (@p_AUTH_STATUS_KT = 'S' AND A.PROCESS IN ('4', '13.1', '19.1')) -- đề xuất từ chối
|
1509
|
OR (@p_AUTH_STATUS_KT = 'A' AND A.PROCESS IN ('5', '14', '20')) -- đã duyệt
|
1510
|
OR (@p_AUTH_STATUS_KT = 'R' AND A.PROCESS IN ('20.2', '14.2')) -- từ chối
|
1511
|
OR (ISNULL(@p_AUTH_STATUS_KT, '') = '' AND A.PROCESS IN ('2', '11', '17')) -- khi KSV chưa điều phối
|
1512
|
OR (ISNULL(@p_AUTH_STATUS_KT, '') = '')
|
1513
|
)
|
1514
|
AND ( A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
|
1515
|
--AND ( A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
|
1516
|
AND ( M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
|
1517
|
AND ( A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
|
1518
|
AND ( A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
|
1519
|
AND( CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
|
1520
|
AND( CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
|
1521
|
AND ( ( @p_LEVEL='ALL'
|
1522
|
AND ( A.BRANCH_ID IN ( SELECT BRANCH_ID
|
1523
|
FROM @tmp_branch
|
1524
|
) -- PYC cua don vi minh
|
1525
|
OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
|
1526
|
)
|
1527
|
)
|
1528
|
OR (
|
1529
|
@p_LEVEL='UNIT'
|
1530
|
AND A.BRANCH_ID = @p_BRANCH_ID
|
1531
|
)
|
1532
|
)
|
1533
|
AND ( A.DEP_ID = @p_DEP_ID
|
1534
|
OR ISNULL(@p_DEP_ID, '') = ''
|
1535
|
)
|
1536
|
AND ( A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
|
1537
|
AND ( A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
|
1538
|
AND( PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL OR PC3.TLNAME = '' OR PC3.TLNAME IS NULL)
|
1539
|
AND (
|
1540
|
(
|
1541
|
EXISTS ( SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE REQ_ID = A.REQ_PAY_AUTO_ID
|
1542
|
AND (
|
1543
|
X.TLNAME= @p_USER_LOGIN
|
1544
|
OR X.TLNAME =@p_EXEC_USER_KT
|
1545
|
)
|
1546
|
)
|
1547
|
)
|
1548
|
OR (A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
|
1549
|
OR (SELECT COUNT(*) FROM @TABLE_ROLE WHERE ROLE_AUTH = 'KSV') > 0
|
1550
|
)
|
1551
|
AND ( ( A.MAKER_ID_KT IS NOT NULL
|
1552
|
AND @p_IS_UPDATE_KT='Y'
|
1553
|
)
|
1554
|
OR ( ( A.MAKER_ID_KT IS NULL
|
1555
|
AND @p_IS_UPDATE_KT='N'
|
1556
|
)
|
1557
|
)
|
1558
|
OR @p_IS_UPDATE_KT IS NULL
|
1559
|
OR @p_IS_UPDATE_KT=''
|
1560
|
)
|
1561
|
|
1562
|
-- END FILTER
|
1563
|
ORDER BY A.CREATE_DT DESC
|
1564
|
-- PAGING END
|
1565
|
END;
|
1566
|
END
|
1567
|
|
1568
|
END -- PAGING
|
1569
|
|
1570
|
GO
|
1571
|
|
1572
|
ALTER PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Upd]
|
1573
|
@p_REQ_PAY_ID varchar(15)= NULL,
|
1574
|
@p_REQ_PAY_CODE varchar(50) = NULL,
|
1575
|
@p_REQ_DT VARCHAR(20)= NULL,
|
1576
|
@p_BRANCH_ID varchar(15) = NULL,
|
1577
|
@p_DEP_ID varchar(15) = NULL,
|
1578
|
@p_REQ_REASON nvarchar(MAX) = NULL,
|
1579
|
@p_REQ_TYPE varchar(15) = NULL,
|
1580
|
@P_REQ_ENTRIES nvarchar(MAX) = NULL,
|
1581
|
@p_REQ_DESCRIPTION nvarchar(MAX) = NULL,
|
1582
|
@p_REF_ID varchar(15) = NULL,
|
1583
|
@p_RECEIVER_PO nvarchar(250) = NULL,
|
1584
|
@p_RECEIVER_DEBIT nvarchar(250) = NULL,
|
1585
|
@p_REQ_PAY_TYPE varchar(15) = NULL,
|
1586
|
@p_REQ_TYPE_CURRENCY nvarchar(50) = NULL,
|
1587
|
@p_REQ_AMT decimal(18, 0) = NULL,
|
1588
|
@p_REQ_TEMP_AMT decimal(18, 0) = NULL,
|
1589
|
@p_MAKER_ID varchar(15) = NULL,
|
1590
|
@p_CREATE_DT varchar(25) = NULL,
|
1591
|
@p_EDITOR_ID varchar(15) = NULL,
|
1592
|
@p_AUTH_STATUS varchar(1) = NULL,
|
1593
|
@p_CHECKER_ID varchar(15) = NULL,
|
1594
|
@p_APPROVE_DT varchar(25) = NULL,
|
1595
|
@p_CREATE_DT_KT varchar(25) = NULL,
|
1596
|
@p_MAKER_ID_KT varchar(15) = NULL,
|
1597
|
@p_AUTH_STATUS_KT varchar(1) = NULL,
|
1598
|
@p_CHECKER_ID_KT varchar(1) = NULL,
|
1599
|
@p_APPROVE_DT_KT varchar(25)= null,
|
1600
|
@p_CONFIRM_NOTE nvarchar(500) = NULL,
|
1601
|
@p_BRANCH_CREATE varchar(15) = NULL,
|
1602
|
@p_NOTES varchar(15) = NULL,
|
1603
|
@p_RECORD_STATUS varchar(1) = NULL,
|
1604
|
@p_TRANSFER_MAKER nvarchar(50) = NULL,
|
1605
|
@p_TRANSFER_DT varchar(25) = NULL,
|
1606
|
@p_TRASFER_USER_RECIVE varchar(15) = NULL,
|
1607
|
@p_PROCESS varchar(15) = NULL,
|
1608
|
@p_PAY_PHASE VARCHAR(15)= NULL,
|
1609
|
@p_DVDM_ID VARCHAR(15)= NULL,
|
1610
|
@p_RATE DECIMAL(18,0) =0,
|
1611
|
@p_RECIVER_MONEY VARCHAR(15)= NULL,
|
1612
|
@p_TYPE_FUNCTION VARCHAR(15) = NULL,
|
1613
|
@p_IS_PERIOD VARCHAR(5) = NULL,
|
1614
|
@p_PAY_AMT DECIMAL(18,0)= NULL,
|
1615
|
--doanptt 19/01/2022
|
1616
|
@p_XMP_TEMP XML = NULL,
|
1617
|
@p_XMP_CUS XML = NULL,
|
1618
|
@p_XMP_PAY_ATTACH XML = NULL,
|
1619
|
@p_XMP_PAY_INVOICE XML = NULL,
|
1620
|
@p_XMP_ADVANCE_DT_2 XML = NULL,
|
1621
|
@p_XMP_PAY_SCHEDULE XML = NULL,
|
1622
|
@p_XMP_PAY_PERIOD XML = NULL,
|
1623
|
@p_XMP_PAY_METHOD XML = NULL,
|
1624
|
@p_XMP_PAY_BUDGET XML = NULL,
|
1625
|
@p_XMP_ADVANCE_DT XML = NULL
|
1626
|
AS
|
1627
|
-- Begin Validation update
|
1628
|
IF(@p_TYPE_FUNCTION <> 'SEND')
|
1629
|
BEGIN
|
1630
|
IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT where MAKER_ID = @p_MAKER_ID ))
|
1631
|
BEGIN
|
1632
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn không được phép cập nhật phiếu đề nghị tạm ứng này. Chỉ người tạo phiếu mới được cập nhật phiếu' ErrorDesc
|
1633
|
RETURN '-1'
|
1634
|
END
|
1635
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT where AUTH_STATUS = 'U' AND REQ_PAY_ID = @p_REQ_PAY_ID ))
|
1636
|
BEGIN
|
1637
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được gửi phê duyệt trước đó! Vui lòng đợi các cấp phê duyệt' ErrorDesc
|
1638
|
RETURN '-1'
|
1639
|
END
|
1640
|
IF (@p_REQ_PAY_CODE IS NULL OR @p_REQ_PAY_CODE ='')
|
1641
|
BEGIN
|
1642
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Mã số phiếu không được để trống' ErrorDesc
|
1643
|
RETURN '-1'
|
1644
|
END
|
1645
|
IF (EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_CODE = @p_REQ_PAY_CODE AND REQ_PAY_ID <> @p_REQ_PAY_ID))
|
1646
|
BEGIN
|
1647
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Mã số phiếu đã tồn tại trong hệ thống' ErrorDesc
|
1648
|
RETURN '-1'
|
1649
|
END
|
1650
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS <> 'E' AND AUTH_STATUS <> 'R' AND ISNULL(AUTH_STATUS, '') <> ''))
|
1651
|
BEGIN
|
1652
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được kí xác nhận từ các cấp. Bạn không được quyền chỉnh sửa' ErrorDesc
|
1653
|
RETURN '-1'
|
1654
|
END
|
1655
|
END
|
1656
|
|
1657
|
-- End Validation update
|
1658
|
|
1659
|
DECLARE @BRANCH_TYPE_CR VARCHAR(15), @ROLE_KI_NHAY VARCHAR(50)
|
1660
|
SET @ROLE_KI_NHAY =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_TRASFER_USER_RECIVE)
|
1661
|
IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <>'' AND @ROLE_KI_NHAY IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC'))
|
1662
|
BEGIN
|
1663
|
PRINT @ROLE_KI_NHAY
|
1664
|
END
|
1665
|
ELSE
|
1666
|
BEGIN
|
1667
|
SET @ROLE_KI_NHAY =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE)
|
1668
|
IF(@ROLE_KI_NHAY IS NULL OR @ROLE_KI_NHAY ='')
|
1669
|
BEGIN
|
1670
|
SET @ROLE_KI_NHAY =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_TRASFER_USER_RECIVE))
|
1671
|
END
|
1672
|
END
|
1673
|
--SET @ROLE_KI_NHAY =(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE)
|
1674
|
IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <> '' AND @ROLE_KI_NHAY IN ('TP','GDDV','KTT','TPTC','TC','TPGD') AND @p_REQ_TYPE <> 'I')
|
1675
|
BEGIN
|
1676
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Bạn không được phép chọn cấp trưởng đơn vị làm cấp phê duyệt trung gian. Vui lòng bỏ qua hoặc chọn cấp phó phòng, trưởng bộ phận' ErrorDesc
|
1677
|
RETURN '-1'
|
1678
|
END
|
1679
|
SET @BRANCH_TYPE_CR =(SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_CREATE)
|
1680
|
DECLARE @ACC_NUM VARCHAR(15)
|
1681
|
SET @ACC_NUM = (SELECT TOP 1 ACC_NUM FROM CM_ACCOUNT_PAY WHERE REF_ID =@p_REF_ID)
|
1682
|
|
1683
|
------------------------------------------------------------------------------------ start validate phần master ------------------------------------------------------------------------------------------------------
|
1684
|
IF(@p_TYPE_FUNCTION = 'SEND')
|
1685
|
BEGIN
|
1686
|
IF (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
|
1687
|
BEGIN
|
1688
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Đơn vị yêu cầu không được để trống' ErrorDesc
|
1689
|
RETURN '-1'
|
1690
|
END
|
1691
|
IF (@p_DEP_ID IS NULL OR @p_DEP_ID ='')
|
1692
|
BEGIN
|
1693
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Phòng ban đề nghị không được để trống' ErrorDesc
|
1694
|
RETURN '-1'
|
1695
|
END
|
1696
|
IF (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE ='')
|
1697
|
BEGIN
|
1698
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Loại phiếu yêu cầu không được để trống' ErrorDesc
|
1699
|
RETURN '-1'
|
1700
|
END
|
1701
|
IF (@p_REQ_REASON IS NULL OR @p_REQ_REASON ='')
|
1702
|
BEGIN
|
1703
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Lý do tạm ứng không được để trống' ErrorDesc
|
1704
|
RETURN '-1'
|
1705
|
END
|
1706
|
IF (@p_REQ_AMT IS NULL OR @p_REQ_AMT = 0)
|
1707
|
BEGIN
|
1708
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Số tiền tạm ứng phải lớn hơn không' ErrorDesc
|
1709
|
RETURN '-1'
|
1710
|
END
|
1711
|
IF (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
|
1712
|
BEGIN
|
1713
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Đơn vị không được để trống' ErrorDesc
|
1714
|
RETURN '-1'
|
1715
|
END
|
1716
|
IF (@p_RECIVER_MONEY IS NOT NULL AND @p_RECIVER_MONEY ='' AND @p_REQ_TYPE = 'D')
|
1717
|
BEGIN
|
1718
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Người nhận tiền tạm ứng không được để trống' ErrorDesc
|
1719
|
RETURN '-1'
|
1720
|
END
|
1721
|
|
1722
|
IF(@p_REQ_TYPE='I')
|
1723
|
BEGIN
|
1724
|
IF((@p_RECEIVER_DEBIT IS NULL OR @p_RECEIVER_DEBIT = ''))
|
1725
|
BEGIN
|
1726
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Tài khoản người đề nghị tạm ứng không được để trống' ErrorDesc
|
1727
|
RETURN '-1'
|
1728
|
END
|
1729
|
IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE ACC_NUM =@p_RECEIVER_DEBIT AND REF_ID = @p_REF_ID))
|
1730
|
BEGIN
|
1731
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Tài khoản tạm ứng số '+ @p_RECEIVER_DEBIT + N' không phải tài khoản của user: '+@p_REF_ID ErrorDesc
|
1732
|
RETURN '-1'
|
1733
|
END
|
1734
|
IF(LEN(ISNULL(@p_RECEIVER_DEBIT,''))>15)
|
1735
|
BEGIN
|
1736
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Tài khoản tạm ứng này không được vượt quá 15 kí tự' ErrorDesc
|
1737
|
RETURN '-1'
|
1738
|
END
|
1739
|
END
|
1740
|
END
|
1741
|
------------------------------------------------------------------------------------ end validate phần master ------------------------------------------------------------------------------------------------------
|
1742
|
|
1743
|
|
1744
|
-- doanptt 19/01/2022 Khai báo lưới danh sách
|
1745
|
DECLARE @hdocCus INT, @hdocPayAtach INT, @hdocPO INT, @hdocSchedule INT, @hdocRecurring INT, @hdocPeriod INT, @hdocPayMethod INT, @hdocPayBudget INT
|
1746
|
|
1747
|
-- THONG TIN KHACH HANG
|
1748
|
EXEC sp_xml_preparedocument @hdocCus OUTPUT, @p_XMP_CUS;
|
1749
|
-- HOP DONG, CHUNG TU DINH KEM
|
1750
|
EXEC sp_xml_preparedocument @hdocPayAtach OUTPUT, @p_XMP_PAY_ATTACH;
|
1751
|
-- THONG TIN PO/ HOP DONG
|
1752
|
EXEC sp_xml_preparedocument @hdocPO OUTPUT, @p_XMP_ADVANCE_DT_2;
|
1753
|
-- DANH SACH CAC DOT THANH TOAN PO/ HOP DONG
|
1754
|
EXEC sp_xml_preparedocument @hdocSchedule OUTPUT, @p_XMP_PAY_SCHEDULE;
|
1755
|
-- THONG TIN HOP DONG DINH KY
|
1756
|
EXEC sp_xml_preparedocument @hdocRecurring OUTPUT, @p_XMP_ADVANCE_DT;
|
1757
|
-- THONG TIN DINH KY TAM UNG
|
1758
|
EXEC sp_xml_preparedocument @hdocPeriod OUTPUT, @p_XMP_PAY_PERIOD;
|
1759
|
-- THONG TIN PHUONG THUC THANH TOAN
|
1760
|
EXEC sp_xml_preparedocument @hdocPayMethod OUTPUT, @p_XMP_PAY_METHOD;
|
1761
|
-- THONG TIN HANG MUC NGAN SACH VA CHI PHI
|
1762
|
EXEC sp_xml_preparedocument @hdocPayBudget OUTPUT, @p_XMP_PAY_BUDGET;
|
1763
|
|
1764
|
-------------------------------------------------------------- start validate các lưới -----------------------------------------------------------------------
|
1765
|
-- BEGIN VALIDATE CAC DANH SACH
|
1766
|
IF(@p_TYPE_FUNCTION = 'SEND')
|
1767
|
BEGIN
|
1768
|
IF(@p_REQ_TYPE = 'P' AND @p_IS_PERIOD='N' AND NOT EXISTS(SELECT * FROM OPENXML(@hdocPO, '/Root/XmlDataPO', 2) WITH(REQ_PAY_ID varchar(15))))
|
1769
|
BEGIN
|
1770
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Danh sách PO/ hợp đồng không được để trống' ErrorDesc
|
1771
|
RETURN '-1'
|
1772
|
END
|
1773
|
IF(@p_REQ_TYPE = 'P' AND @p_IS_PERIOD='N' AND NOT EXISTS(SELECT * FROM OPENXML(@hdocSchedule, '/Root/XmlDataSchedule', 2) WITH(REQ_PAY_ID varchar(15))))
|
1774
|
BEGIN
|
1775
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Danh sách thông tin chi tiết lịch thanh toán PO/ hợp đồng không được để trống' ErrorDesc
|
1776
|
RETURN '-1'
|
1777
|
END
|
1778
|
|
1779
|
IF(@p_REQ_TYPE = 'P' AND (@p_IS_PERIOD='Y' OR @p_IS_PERIOD IS NULL) AND NOT EXISTS(SELECT * FROM OPENXML(@hdocRecurring, '/Root/XmlDataRecurring', 2) WITH(REQ_PAY_ID varchar(15))))
|
1780
|
BEGIN
|
1781
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Danh sách thông tin hợp đồng định kì không được phép để trống' ErrorDesc
|
1782
|
RETURN '-1'
|
1783
|
END
|
1784
|
|
1785
|
IF(@p_REQ_TYPE = 'P' AND (@p_IS_PERIOD='Y' OR @p_IS_PERIOD IS NULL) AND NOT EXISTS(SELECT * FROM OPENXML(@hdocPeriod, '/Root/XmlDataPeriod', 2) WITH(REQ_PAY_ID varchar(15))))
|
1786
|
BEGIN
|
1787
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Danh sách thông tin định kỳ tạm ứng không được phép để trống' ErrorDesc
|
1788
|
RETURN '-1'
|
1789
|
END
|
1790
|
|
1791
|
IF(@p_REQ_TYPE = 'D' AND NOT EXISTS(SELECT * FROM OPENXML(@hdocCus, '/Root/XmlDataCus', 2) WITH(CONTRACT_ID varchar(15))))
|
1792
|
BEGIN
|
1793
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Danh sách khách hàng không được để trống' ErrorDesc
|
1794
|
RETURN '-1'
|
1795
|
END
|
1796
|
END
|
1797
|
|
1798
|
-- END VALIDATE CAC DANH SACH
|
1799
|
-------------------------------------------------------------- end validate các lưới -----------------------------------------------------------------------
|
1800
|
-- SO TIEN THANH TOÁN PHAI LON HON KHONG
|
1801
|
IF(@p_REQ_AMT <=0)
|
1802
|
BEGIN
|
1803
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền tạm ứng phải lớn hơn 0' ErrorDesc
|
1804
|
RETURN '-1'
|
1805
|
END
|
1806
|
BEGIN TRANSACTION
|
1807
|
UPDATE TR_REQ_ADVANCE_PAYMENT SET
|
1808
|
REF_ID = @p_REF_ID,
|
1809
|
DEP_ID= @p_DEP_ID,REQ_REASON = @p_REQ_REASON, REQ_PAY_TYPE = @p_REQ_PAY_TYPE,
|
1810
|
REQ_AMT = @p_REQ_AMT,
|
1811
|
NOTES= @p_NOTES,
|
1812
|
REQ_TYPE= @p_REQ_TYPE,REQ_DESCRIPTION = @p_REQ_DESCRIPTION,RECEIVER_PO =@p_RECEIVER_PO, RECEIVER_DEBIT= @p_RECEIVER_DEBIT,
|
1813
|
REQ_TEMP_AMT=@p_REQ_TEMP_AMT,REQ_ENTRIES = @P_REQ_ENTRIES,BRANCH_ID = @p_BRANCH_ID,REQ_PAY_CODE = @p_REQ_PAY_CODE, PAY_PHASE =@p_PAY_PHASE,
|
1814
|
AUTH_STATUS='E', DVDM_ID=@p_DVDM_ID, RATE =@p_RATE,REQ_TYPE_CURRENCY =@p_REQ_TYPE_CURRENCY, RECIVER_MONEY= @p_RECIVER_MONEY,
|
1815
|
TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE,IS_PERIOD =@p_IS_PERIOD, PAY_AMT = 0
|
1816
|
WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
1817
|
IF @@Error <> 0 GOTO ABORT
|
1818
|
--- INSERT VÀO BẢNG DETAIL NÊU TẠM ỨNG LÀ TẠM ỨNG THANH TOÁN
|
1819
|
-- KIEM TRA NEU TAM UNG THANH TOAN
|
1820
|
IF((@p_REQ_TYPE='P' AND (@p_IS_PERIOD <>'Y' OR @p_IS_PERIOD IS NULL)) OR @p_REQ_TYPE='D')
|
1821
|
BEGIN
|
1822
|
DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID=@p_REQ_PAY_ID
|
1823
|
DELETE FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID=@p_REQ_PAY_ID
|
1824
|
DECLARE @PO_ID varchar(15),@TERM_PAY varchar(15),@AMT_PAY_SCHEDULE decimal(18,0),@REQ_ADV_ID_SCHE VARCHAR(15),@AMT_ADVANCE_SCHEDULE decimal(18,0),@AMT_PAY_DO decimal(18,2),
|
1825
|
@AMT_REMAIN_SCHEDULE decimal(18,0),@REQ_AD_DT varchar(20),@PROCESS varchar(15),@PAY_ID VARCHAR(15),
|
1826
|
@REF_ID VARCHAR(15),@REQ_PAY_DESC NVARCHAR(500), @REQ_PAY_ENTRIES NVARCHAR(250),@CURRENCY VARCHAR(15),@RATE DECIMAL(18,0),@CUST_ID VARCHAR(15),
|
1827
|
@EMP_ID VARCHAR(15),@AMT_PAY_REAL DECIMAL(18,2),@CHECK_IN VARCHAR(15),@IS_CLOSED VARCHAR(1)= NULL,@REASON NVARCHAR(1000),@REF_TYPE VARCHAR(15)
|
1828
|
DECLARE @TYPE_COST VARCHAR(25), @FR_LEVEL INT ,@TO_LEVEL INT
|
1829
|
DECLARE XmlDataPO CURSOR FOR
|
1830
|
SELECT *
|
1831
|
FROM OPENXML(@hdocPO, '/Root/XmlDataPO', 2)--Thông tin PO/ hợp đồng
|
1832
|
WITH(REF_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15))
|
1833
|
OPEN XmlDataPO;
|
1834
|
DECLARE @INDEX_PO INT =0
|
1835
|
SET @INDEX_PO = 0
|
1836
|
FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE
|
1837
|
WHILE @@fetch_status=0
|
1838
|
BEGIN
|
1839
|
SET @INDEX_PO = @INDEX_PO +1
|
1840
|
-- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE
|
1841
|
IF(@p_TYPE_FUNCTION ='SEND')
|
1842
|
BEGIN
|
1843
|
|
1844
|
|
1845
|
-- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
1846
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='C' AND REQ_PAY_ID
|
1847
|
IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL)))
|
1848
|
BEGIN
|
1849
|
ROLLBACK TRANSACTION
|
1850
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO/ hợp đồng số '+
|
1851
|
(SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
1852
|
RETURN '-1'
|
1853
|
END
|
1854
|
-- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
1855
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='C' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID))
|
1856
|
BEGIN
|
1857
|
ROLLBACK TRANSACTION
|
1858
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+
|
1859
|
(SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
1860
|
RETURN '-1'
|
1861
|
END
|
1862
|
-- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
1863
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='P' AND REQ_PAY_ID
|
1864
|
IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL)))
|
1865
|
BEGIN
|
1866
|
ROLLBACK TRANSACTION
|
1867
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+
|
1868
|
(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
1869
|
RETURN '-1'
|
1870
|
END
|
1871
|
-- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
1872
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='P' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID))
|
1873
|
BEGIN
|
1874
|
ROLLBACK TRANSACTION
|
1875
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+
|
1876
|
(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
1877
|
RETURN '-1'
|
1878
|
END
|
1879
|
--- KIEM TRA XEM PO NAY DUOC THANH TOAN HAY CHUA
|
1880
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND TYPE ='P' AND REF_ID IN (SELECT PO_ID FROM TR_PO_MASTER WHERE IS_CLOSED ='Y' )))
|
1881
|
BEGIN
|
1882
|
ROLLBACK TRANSACTION
|
1883
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+
|
1884
|
(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đã được thanh toán. Vui lòng hủy bản nháp!' ErrorDesc
|
1885
|
RETURN '-1'
|
1886
|
END
|
1887
|
END
|
1888
|
DECLARE @REQ_PAYDTID VARCHAR(15);
|
1889
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID OUT;
|
1890
|
IF @REQ_PAYDTID='' OR @REQ_PAYDTID IS NULL GOTO ABORT;
|
1891
|
|
1892
|
IF(LEFT(@REF_ID, 3) = 'TRC')
|
1893
|
BEGIN
|
1894
|
INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES
|
1895
|
(@REQ_PAYDTID,@p_REQ_PAY_ID,@REF_ID,'ADV_PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,'C')
|
1896
|
END
|
1897
|
ELSE
|
1898
|
BEGIN
|
1899
|
INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE) VALUES
|
1900
|
(@REQ_PAYDTID,@p_REQ_PAY_ID,@REF_ID,'ADV_PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,'P')
|
1901
|
END
|
1902
|
IF @@error<>0 GOTO ABORT;
|
1903
|
FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE
|
1904
|
END
|
1905
|
CLOSE XmlDataPO;
|
1906
|
DEALLOCATE XmlDataPO;
|
1907
|
--- CUSOR DANH SACH LICH THANH TOAN PO - HD
|
1908
|
DECLARE XmlDataSchedule CURSOR FOR
|
1909
|
SELECT *
|
1910
|
FROM
|
1911
|
OPENXML(@hdocSchedule, '/Root/XmlDataSchedule',2)
|
1912
|
WITH(PO_ID varchar(15),TERM_PAY varchar(15),AMT_PAY_SCHEDULE decimal(18,0),REQ_ADV_ID varchar(15),AMT_ADVANCE_SCHEDULE decimal(18,0), AMT_PAY_DO decimal(18,2),
|
1913
|
AMT_REMAIN_SCHEDULE decimal(18,0),REQ_AD_DT varchar(20),PROCESS varchar(15), PAY_ID VARCHAR(15),REF_ID VARCHAR(15),
|
1914
|
REQ_PAY_DESC NVARCHAR(500), REQ_PAY_ENTRIES NVARCHAR(250),CURRENCY VARCHAR(15),RATE DECIMAL(18,0),AMT_PAY_REAL DECIMAL(18,2))
|
1915
|
OPEN XmlDataSchedule
|
1916
|
FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@TERM_PAY,@AMT_PAY_SCHEDULE,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE,@AMT_PAY_DO,
|
1917
|
@AMT_REMAIN_SCHEDULE,@REQ_AD_DT,@PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL
|
1918
|
WHILE @@fetch_status=0
|
1919
|
BEGIN
|
1920
|
DECLARE @p_REQ_PAY_SCHEDULE_ID VARCHAR(15);
|
1921
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_SCHEDULE', @p_REQ_PAY_SCHEDULE_ID OUT;
|
1922
|
IF @p_REQ_PAY_SCHEDULE_ID='' OR @p_REQ_PAY_SCHEDULE_ID IS NULL GOTO ABORT;
|
1923
|
INSERT INTO TR_REQ_PAY_SCHEDULE(
|
1924
|
SCHEDULE_ID,REQ_PAY_ID,PAY_ID,AMT_PAY,PAY_PHASE,REQ_ADV_ID,AMT_ADVANCE,AMT_PAY_DO,AMT_REMAIN,REQ_PAY_DT,REQ_AD_DT,PROCESS,MAKER_ID,
|
1925
|
CREATE_DT,AUTH_STATUS_KT,PAYMENT_STATUS,TRN_TYPE,REF_ID,REQ_PAY_DESC,REQ_PAY_ENTRIES,CURRENCY,RATE, AMT_PAY_REAL)
|
1926
|
VALUES (@p_REQ_PAY_SCHEDULE_ID,@p_REQ_PAY_ID,@PAY_ID,@AMT_PAY_SCHEDULE,@TERM_PAY,@p_REQ_PAY_ID,@AMT_ADVANCE_SCHEDULE,@AMT_PAY_DO,@AMT_REMAIN_SCHEDULE,
|
1927
|
GETDATE(),CONVERT(DATETIME,@REQ_AD_DT,103),NULL,@p_MAKER_ID,GETDATE(),'U','','ADV_PAY',@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL)
|
1928
|
--- END KHAI BAO CURSOR
|
1929
|
IF @@error<>0 GOTO ABORT;
|
1930
|
FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@TERM_PAY,@AMT_PAY_SCHEDULE,@REQ_ADV_ID_SCHE,@AMT_ADVANCE_SCHEDULE,@AMT_PAY_DO,
|
1931
|
@AMT_REMAIN_SCHEDULE,@REQ_AD_DT,@PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_REAL
|
1932
|
END
|
1933
|
CLOSE XmlDataSchedule;
|
1934
|
DEALLOCATE XmlDataSchedule;
|
1935
|
END
|
1936
|
--- END TẠM ỨNG THANH TOÁN
|
1937
|
|
1938
|
---- BEGIN TẠM ỨNG HĐ ĐỊNH KÌ
|
1939
|
IF(@p_REQ_TYPE = 'P' AND @p_IS_PERIOD='Y')
|
1940
|
BEGIN
|
1941
|
DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
1942
|
DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
1943
|
DECLARE @END_DT VARCHAR(20)
|
1944
|
DECLARE XmlDataRecurring CURSOR FOR
|
1945
|
SELECT *
|
1946
|
FROM OPENXML(@hdocRecurring, '/Root/XmlDataRecurring', 2)
|
1947
|
WITH(CONTRACT_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15), END_DT VARCHAR(20))
|
1948
|
OPEN XmlDataRecurring;
|
1949
|
SET @INDEX_PO = 0
|
1950
|
FETCH NEXT FROM XmlDataRecurring INTO @REF_ID,@IS_CLOSED,@REF_TYPE, @END_DT
|
1951
|
WHILE @@fetch_status=0
|
1952
|
BEGIN
|
1953
|
SET @INDEX_PO = @INDEX_PO +1
|
1954
|
DECLARE @REQ_PAYDTID_C VARCHAR(15);
|
1955
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_C OUT;
|
1956
|
IF @REQ_PAYDTID_C='' OR @REQ_PAYDTID_C IS NULL GOTO ABORT;
|
1957
|
INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE, END_DT)
|
1958
|
VALUES(@REQ_PAYDTID_C,@p_REQ_PAY_ID,@REF_ID,'ADV_PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED,'C', CONVERT(DATE,@END_DT,103))
|
1959
|
IF @@error<>0 GOTO ABORT;
|
1960
|
FETCH NEXT FROM XmlDataRecurring INTO @REF_ID,@IS_CLOSED,@REF_TYPE, @END_DT
|
1961
|
END
|
1962
|
CLOSE XmlDataRecurring;
|
1963
|
DEALLOCATE XmlDataRecurring;
|
1964
|
--- CUSOR DANH SACH LICH THANH TOAN PO - HD
|
1965
|
----------------------------
|
1966
|
--INSERT FROM PERIOD
|
1967
|
DECLARE XmlDataPeriod CURSOR FOR
|
1968
|
SELECT *
|
1969
|
FROM
|
1970
|
OPENXML(@hdocPeriod, '/Root/XmlDataPeriod', 2)
|
1971
|
WITH(CONTRACT_ID varchar(15),PAY_DT_REAL VARCHAR(20),PAY_TYPE VARCHAR(5),
|
1972
|
OLD_INDEX DECIMAL(18,0),NEW_INDEX DECIMAL(18,0),AMT_PAY DECIMAL(18,2),CURRENCY VARCHAR(5), RATE DECIMAL(18,0), FROM_DATE VARCHAR(20), TO_DATE VARCHAR(20),PAY_PHASE NVARCHAR(250),REASON NVARCHAR(2000), END_DT VARCHAR(20) )
|
1973
|
OPEN XmlDataPeriod;
|
1974
|
DECLARE @CONTRACT_ID varchar(15),@PAY_DT_REAL VARCHAR(20),@PAY_TYPE VARCHAR(5), @OLD_INDEX DECIMAL(18,0),@NEW_INDEX DECIMAL(18,0),
|
1975
|
@AMT_PAY_PERIOD DECIMAL(18,2),@FROM_DATE VARCHAR(20),@TO_DATE VARCHAR(20),@PAY_PHASE NVARCHAR(250), @REASON_TTDK NVARCHAR(2000)
|
1976
|
FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE, @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY, @RATE,@FROM_DATE,@TO_DATE,@PAY_PHASE,@REASON_TTDK, @END_DT
|
1977
|
WHILE @@fetch_status=0
|
1978
|
BEGIN
|
1979
|
-- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE
|
1980
|
IF(@p_TYPE_FUNCTION ='SEND')
|
1981
|
BEGIN
|
1982
|
|
1983
|
--IF(EXISTS(SELECT CONTRACT_ID
|
1984
|
--FROM TR_CONTRACT
|
1985
|
--WHERE CONTRACT_ID = @REF_ID AND CONVERT(DATE,END_DT,103) < CONVERT(DATE,GETDATE(),103) AND END_DT IS NOT NULL AND CONT_TYPE ='DK' AND CONT_TYPE IS NOT NULL AND CONT_TYPE <>''))
|
1986
|
|
1987
|
----AND IS_CLOSED='Y' ))
|
1988
|
--BEGIN
|
1989
|
-- ROLLBACK TRANSACTION
|
1990
|
-- SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tạm ứng hợp đồng định kì đã đóng' ErrorDesc
|
1991
|
-- RETURN '-1'
|
1992
|
--END
|
1993
|
|
1994
|
IF(@NEW_INDEX <=@OLD_INDEX AND @NEW_INDEX >0 AND @OLD_INDEX >0)
|
1995
|
BEGIN
|
1996
|
ROLLBACK TRANSACTION
|
1997
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Chỉ số mới phải lớn hơn chỉ số cũ' ErrorDesc
|
1998
|
RETURN '-1'
|
1999
|
END
|
2000
|
-- NEU LÀ DINH KI THI HD PHAI KHAC NULL
|
2001
|
IF(@CONTRACT_ID IS NULL OR @CONTRACT_ID ='' )
|
2002
|
BEGIN
|
2003
|
ROLLBACK TRANSACTION
|
2004
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì: Cột Số hợp đồng không được phép để trống' ErrorDesc
|
2005
|
RETURN '-1'
|
2006
|
END
|
2007
|
-- KIEM TRA CHI TIET HOP DONG PHAI NAM TRONG DANH SACH CAC HOP DONG
|
2008
|
IF(@CONTRACT_ID IS NOT NULL AND @CONTRACT_ID <> '' )
|
2009
|
BEGIN
|
2010
|
IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND REF_ID =@CONTRACT_ID))
|
2011
|
BEGIN
|
2012
|
ROLLBACK TRANSACTION
|
2013
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin thanh toán hợp đồng định kì - Số hợp đồng phải nằm trong danh sách các hợp đồng được chọn trên lưới Hợp đồng định kì' ErrorDesc
|
2014
|
RETURN '-1'
|
2015
|
END
|
2016
|
END
|
2017
|
END
|
2018
|
DECLARE @PERIOD_ID VARCHAR(15);
|
2019
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT;
|
2020
|
IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT;
|
2021
|
INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID,REQ_PAY_ID,PAY_TYPE, CONTRACT_ID,PAY_DT_REAL,OLD_INDEX,NEW_INDEX,AMT_PAY,AUTH_STATUS_KT,CURRENCY,RATE,FROM_DATE,
|
2022
|
TO_DATE,AD_PAY_ID,PROCESS,PAY_PHASE, REASON)
|
2023
|
VALUES (@PERIOD_ID,@p_REQ_PAY_ID,'ADV_PAY',@CONTRACT_ID,CONVERT(DATE,@PAY_DT_REAL,103), @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,'U',
|
2024
|
@CURRENCY, @RATE,CONVERT(DATE,@FROM_DATE,103),CONVERT(DATE,@TO_DATE,103),@p_REQ_PAY_ID,'0',@PAY_PHASE,@REASON_TTDK)
|
2025
|
IF @@error<>0 GOTO ABORT;
|
2026
|
FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE , @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,@CURRENCY, @RATE,@FROM_DATE, @TO_DATE,@PAY_PHASE,@REASON_TTDK, @END_DT
|
2027
|
END
|
2028
|
CLOSE XmlDataPeriod;
|
2029
|
DEALLOCATE XmlDataPeriod;
|
2030
|
-- VALIDATE SO TIEN
|
2031
|
--IF(@p_REQ_AMT >= @TOTAL_SCHEDULE_AMT)
|
2032
|
--BEGIN
|
2033
|
-- ROLLBACK TRANSACTION
|
2034
|
-- SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền thanh toán phải nhỏ hơn hoặc bằng tổng số tiền còn lại cần thanh toán: '+FORMAT(SUM(@TOTAL_SCHEDULE_AMT),'#,#', 'vi-VN') ErrorDesc
|
2035
|
-- RETURN '-1'
|
2036
|
--END
|
2037
|
----
|
2038
|
END
|
2039
|
---- END TẠM ỨNG HĐ ĐỊNH KÌ
|
2040
|
|
2041
|
--- INSERT PHƯƠNG THỨC THANH TOÁN
|
2042
|
DELETE FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
2043
|
DECLARE @RECEIVE_ID varchar(15),@RECEIVE_NAME nvarchar(100),@REQ_PAY_REASON nvarchar(MAX),@TOTAL_AMT_METHOD decimal(18,2),@REQ_PAY_TYPE varchar(1),
|
2044
|
@ACC_NO VARCHAR(50), @ACC_NAME NVARCHAR(250), @ISSED_BY NVARCHAR(250), @ISSUED_DT VARCHAR(20),
|
2045
|
@TYPE_TRANSFER VARCHAR(15), @BANKCODE_NAPAS VARCHAR(20), @BANKCODE VARCHAR(20), @BANKNAME NVARCHAR(250), @SUB_ISSUED_BY NVARCHAR(250), @RECEIVER_DEBIT VARCHAR(20)
|
2046
|
DECLARE @INDEX_PAY_METHOD DECIMAL(18,0) = 0;
|
2047
|
DECLARE XmlDataMethod CURSOR FOR
|
2048
|
SELECT *
|
2049
|
FROM
|
2050
|
OPENXML(@hdocPayMethod, '/Root/XmlDataMethod',2)
|
2051
|
WITH(RECEIVE_ID varchar(15),RECEIVE_NAME nvarchar(100),REQ_PAY_REASON nvarchar(MAX),TOTAL_AMT decimal(18,2),REQ_PAY_TYPE varchar(1),
|
2052
|
REQ_PAY_DESC nvarchar(MAX),REQ_PAY_ENTRIES nvarchar(MAX),ACC_NO VARCHAR(50), ACC_NAME NVARCHAR(250),
|
2053
|
ISSUED_BY NVARCHAR(250), ISSUED_DT VARCHAR(20),CURRENCY VARCHAR(15),RATE DECIMAL(18,0),CHECK_IN VARCHAR(15),
|
2054
|
TYPE_TRANSFER VARCHAR(15), BANKCODE_NAPAS VARCHAR(20), BANKCODE VARCHAR(20), BANKNAME NVARCHAR(250), SUB_ISSUED_BY NVARCHAR(250), RECEIVER_DEBIT NVARCHAR(20))
|
2055
|
OPEN XmlDataMethod
|
2056
|
FETCH NEXT FROM XmlDataMethod
|
2057
|
INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO,@ACC_NAME,@ISSED_BY,@ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT
|
2058
|
WHILE @@fetch_status=0
|
2059
|
BEGIN
|
2060
|
SET @INDEX_PAY_METHOD = @INDEX_PAY_METHOD + 1;
|
2061
|
---------------------------start validate ------------------------------
|
2062
|
IF(@p_TYPE_FUNCTION ='SEND')
|
2063
|
BEGIN
|
2064
|
IF(@ACC_NO IS NULL OR @ACC_NO = '')
|
2065
|
BEGIN
|
2066
|
ROLLBACK TRANSACTION
|
2067
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Phương thức thanh toán: Dòng ' + CAST(@INDEX_PAY_METHOD AS NVARCHAR(255)) + N': Số tài khoản/ CMND không được để trống' ErrorDesc
|
2068
|
RETURN '-1'
|
2069
|
END
|
2070
|
|
2071
|
IF((@BANKCODE IS NULL OR @BANKCODE = '') AND @CHECK_IN = 'O')
|
2072
|
BEGIN
|
2073
|
ROLLBACK TRANSACTION
|
2074
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_PAY_METHOD)+N': Loại tài khoản là ngoài hệ thống! Vui lòng chọn lại Tên ngân hàng/nơi cấp CMND từ danh sách!' ErrorDesc
|
2075
|
RETURN '-1'
|
2076
|
END
|
2077
|
|
2078
|
IF(@ACC_NAME IS NULL OR @ACC_NAME = '')
|
2079
|
BEGIN
|
2080
|
ROLLBACK TRANSACTION
|
2081
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Phương thức thanh toán: Dòng ' + CAST(@INDEX_PAY_METHOD AS NVARCHAR(255)) + N': Tên tài khoản/ người nhận không được để trống' ErrorDesc
|
2082
|
RETURN '-1'
|
2083
|
END
|
2084
|
IF(@ISSED_BY IS NULL OR @ISSED_BY = '')
|
2085
|
BEGIN
|
2086
|
ROLLBACK TRANSACTION
|
2087
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Phương thức thanh toán: Dòng ' + CAST(@INDEX_PAY_METHOD AS NVARCHAR(255)) + N': Ngân hàng/ nơi cấp CMND không được để trống' ErrorDesc
|
2088
|
RETURN '-1'
|
2089
|
END
|
2090
|
IF(@REQ_PAY_REASON IS NULL OR @REQ_PAY_REASON = '')
|
2091
|
BEGIN
|
2092
|
ROLLBACK TRANSACTION
|
2093
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Phương thức thanh toán: Dòng ' + CAST(@INDEX_PAY_METHOD AS NVARCHAR(255)) + N': Nội dung thanh toán không được để trống' ErrorDesc
|
2094
|
RETURN '-1'
|
2095
|
END
|
2096
|
IF(@TOTAL_AMT_METHOD IS NULL OR @TOTAL_AMT_METHOD = 0)
|
2097
|
BEGIN
|
2098
|
ROLLBACK TRANSACTION
|
2099
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Phương thức thanh toán: Dòng ' + CAST(@INDEX_PAY_METHOD AS NVARCHAR(255)) + N': Số tiền thanh toán phải lớn hơn 0' ErrorDesc
|
2100
|
RETURN '-1'
|
2101
|
END
|
2102
|
IF(@REQ_PAY_TYPE = '1' AND (@ISSUED_DT IS NULL OR @ISSUED_DT = ''))
|
2103
|
BEGIN
|
2104
|
ROLLBACK TRANSACTION
|
2105
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Phương thức thanh toán, dòng ' + CAST(@INDEX_PAY_METHOD AS NVARCHAR(255)) + N': Ngày cấp CMND không được để trống nếu phương thức thanh toán là bằng tiền mặt' ErrorDesc
|
2106
|
RETURN '-1'
|
2107
|
END
|
2108
|
IF(ISNULL(@CHECK_IN, '') = 'O' AND @TYPE_TRANSFER = 'R')
|
2109
|
BEGIN
|
2110
|
ROLLBACK TRANSACTION
|
2111
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_PAY_METHOD)+N': Với hình thức thanh toán là Trích từ tài khoản, Loại tài khoản phải là Trong hệ thống' ErrorDesc
|
2112
|
RETURN '-1'
|
2113
|
END
|
2114
|
|
2115
|
END
|
2116
|
-----------------------------end validate ----------------------------
|
2117
|
IF(@REQ_PAY_TYPE<>'1')
|
2118
|
BEGIN
|
2119
|
SET @ISSUED_DT = NULL
|
2120
|
END
|
2121
|
DECLARE @p_REQ_PAY_METHOD_ID VARCHAR(15);
|
2122
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_METHOD', @p_REQ_PAY_METHOD_ID OUT;
|
2123
|
IF @p_REQ_PAY_METHOD_ID='' OR @p_REQ_PAY_METHOD_ID IS NULL GOTO ABORT;
|
2124
|
INSERT INTO TR_REQ_PAY_METHOD(METHOD_ID,REQ_PAY_ID,EMP_ID,REQ_PAY_REASON,TOTAL_AMT,REQ_PAY_TYPE,REQ_PAY_DESC,REQ_PAY_ENTRIES, TEMP,MAKER_ID,
|
2125
|
CREATE_DT,ACC_NO,ACC_NAME,ISSUED_BY,ISSUED_DT,CURRENCY,RATE,CHECK_IN, TYPE_TRANSFER, BANKCODE_NAPAS, BANKCODE, BANKNAME, SUB_ISSUED_BY, RECEIVER_DEBIT)
|
2126
|
VALUES (@p_REQ_PAY_METHOD_ID,@p_REQ_PAY_ID,@RECEIVE_ID,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,'',
|
2127
|
@p_MAKER_ID,GETDATE(),@ACC_NO,@ACC_NAME,@ISSED_BY, CONVERT(DATE, @ISSUED_DT, 103),@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT)
|
2128
|
IF @@error<>0 GOTO ABORT;
|
2129
|
FETCH NEXT FROM XmlDataMethod
|
2130
|
INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO,@ACC_NAME , @ISSED_BY , @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT
|
2131
|
END
|
2132
|
CLOSE XmlDataMethod;
|
2133
|
DEALLOCATE XmlDataMethod
|
2134
|
----END INSERT PHƯƠNG THỨC THANH TOÁN
|
2135
|
|
2136
|
---- BEGIN INSERT VAO BANG DS KHACH HANG
|
2137
|
DECLARE @INDEX_CUS DECIMAL(18,0) = 0;
|
2138
|
DELETE FROM TR_REQ_ADVANCE_CUS WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
2139
|
DECLARE XmlDataCus CURSOR FOR
|
2140
|
SELECT * FROM
|
2141
|
OPENXML(@hdocCus, '/Root/XmlDataCus', 2)
|
2142
|
WITH(CUST_ID varchar(15), EMP_ID VARCHAR(15), AMT_PAY_DO decimal(18,2),CURRENCY VARCHAR(15),RATE DECIMAL(18,0))
|
2143
|
OPEN XmlDataCus;
|
2144
|
|
2145
|
FETCH NEXT FROM XmlDataCus INTO @CUST_ID, @EMP_ID,@AMT_PAY_DO,@CURRENCY,@RATE
|
2146
|
WHILE @@fetch_status=0
|
2147
|
BEGIN
|
2148
|
SET @INDEX_CUS = @INDEX_CUS + 1;
|
2149
|
IF(@p_TYPE_FUNCTION ='SEND')
|
2150
|
BEGIN
|
2151
|
IF(ISNULL(@CUST_ID, '') = '' OR ISNULL(@EMP_ID, '') = '')
|
2152
|
BEGIN
|
2153
|
ROLLBACK TRANSACTION
|
2154
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Thông tin khách hàng, dòng ' + CAST(@INDEX_CUS AS NVARCHAR(255)) + N': Mã khách hàng không được để trống' ErrorDesc
|
2155
|
RETURN '-1'
|
2156
|
END
|
2157
|
END
|
2158
|
|
2159
|
INSERT INTO TR_REQ_ADVANCE_CUS(REQ_PAY_ID,CUST_ID,EMP_ID,AMT_PAY_DO,CURRENCY,RATE,MAKER_ID,CREATE_DT)
|
2160
|
VALUES (@p_REQ_PAY_ID, @CUST_ID, @EMP_ID,@AMT_PAY_DO,@CURRENCY,@RATE,@p_MAKER_ID,GETDATE())
|
2161
|
--- END KHAI BAO CURSOR
|
2162
|
IF @@error<>0 GOTO ABORT;
|
2163
|
FETCH NEXT FROM XmlDataCus INTO @CUST_ID, @EMP_ID,@AMT_PAY_DO,@CURRENCY,@RATE
|
2164
|
END
|
2165
|
CLOSE XmlDataCus;
|
2166
|
DEALLOCATE XmlDataCus;
|
2167
|
---- END INSERT VAO BANG DS KHACH HANG
|
2168
|
|
2169
|
-- BEGIN HANG MUC NGAN SACH VA CHI PHI
|
2170
|
DELETE FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
2171
|
DECLARE @TRADE_ID varchar(15),@GD_ID varchar(15),@AMT_APP decimal(18,2),@AMT_DO decimal(18,2),@AMT_EXE decimal(18,2),@AMT_REMAIN_GD decimal(18,2), @INDEX_NS INT =0
|
2172
|
DECLARE XmlDataGood CURSOR LOCAL FOR
|
2173
|
SELECT *
|
2174
|
FROM
|
2175
|
OPENXML(@hdocPayBudget, '/Root/XmlDataGood',2)
|
2176
|
WITH(TRADE_ID varchar(15),GD_ID varchar(15),AMT_APP decimal(18,2),AMT_DO decimal(18,2), AMT_EXE decimal(18,2),AMT_REMAIN decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),REASON NVARCHAR(1000),TYPE_COST VARCHAR(25) , FR_LEVEL INT ,TO_LEVEL INT)
|
2177
|
OPEN XmlDataGood
|
2178
|
FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID ,@AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY,@RATE,@REASON,@TYPE_COST , @FR_LEVEL ,@TO_LEVEL
|
2179
|
WHILE @@fetch_status=0
|
2180
|
BEGIN
|
2181
|
--- KIEM TRA NEU NGAN SACH SU DUNG THUC THE LON HON NGAN SACH CON LAI
|
2182
|
SET @INDEX_NS = @INDEX_NS +1
|
2183
|
-- KHI NAO BAM GUI PHE DUYET THI MOI CHECK VALIDATE
|
2184
|
--IF(@p_TYPE_FUNCTION ='SEND')
|
2185
|
--BEGIN
|
2186
|
--IF((@AMT_EXE > @AMT_REMAIN_GD))
|
2187
|
--BEGIN
|
2188
|
-- ROLLBACK TRANSACTION
|
2189
|
-- SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế không được vượt quá ngân sách còn lại.' ErrorDesc
|
2190
|
-- RETURN '-1'
|
2191
|
--END
|
2192
|
--END
|
2193
|
IF(@p_TYPE_FUNCTION ='SEND')
|
2194
|
BEGIN
|
2195
|
IF(ISNULL(@AMT_EXE,0) =0)
|
2196
|
BEGIN
|
2197
|
ROLLBACK TRANSACTION
|
2198
|
CLOSE XmlDataGood;
|
2199
|
DEALLOCATE XmlDataGood;
|
2200
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,@p_REQ_PAY_CODE AS REQ_PAY_CODE, N'Dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế phải lớn hơn 0.' ErrorDesc
|
2201
|
RETURN '-1'
|
2202
|
END
|
2203
|
-- ROLLBACK TRANSACTION
|
2204
|
-- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế không được vượt quá ngân sách còn lại.' ErrorDesc
|
2205
|
-- RETURN '-1'
|
2206
|
--END
|
2207
|
END
|
2208
|
DECLARE @p_BUDGET_ID VARCHAR(15);
|
2209
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_BUDGET', @p_BUDGET_ID OUT;
|
2210
|
IF @p_BUDGET_ID='' OR @p_BUDGET_ID IS NULL GOTO ABORT;
|
2211
|
INSERT INTO TR_REQ_PAY_BUDGET(BUDG_ID,GD_ID,REQ_PAY_ID,TRADE_ID,AMT_APP,AMT_DO,AMT_EXE,AMT_REMAIN,MAKER_ID,CREATE_DT,CURRENCY,RATE,REASON,TYPE_COST , FR_LEVEL ,TO_LEVEL)
|
2212
|
VALUES (@p_BUDGET_ID,@GD_ID,@p_REQ_PAY_ID,@TRADE_ID,@AMT_APP,@AMT_DO,@AMT_EXE,@AMT_REMAIN_GD,@p_MAKER_ID, GETDATE(),@CURRENCY,@RATE,@REASON,@TYPE_COST , @FR_LEVEL ,@TO_LEVEL)
|
2213
|
IF @@error<>0 GOTO ABORT;
|
2214
|
FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID ,@AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY,@RATE,@REASON,@TYPE_COST , @FR_LEVEL ,@TO_LEVEL
|
2215
|
END;
|
2216
|
CLOSE XmlDataGood;
|
2217
|
DEALLOCATE XmlDataGood;
|
2218
|
--- END HANG MUC NGAN SACH VA CHI PHI
|
2219
|
|
2220
|
-- BEGIN INSERT CHUNG TU DINH KEM
|
2221
|
DELETE FROM TR_REQ_PAY_ATTACH WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
2222
|
DECLARE @ATTACH_ID varchar(15),@CON_ID varchar(100),@CONT_CODE VARCHAR(50), @CON_NOTES VARCHAR(1000),@CON_DESC NVARCHAR(1000),@CON_TYPE VARCHAR(15),@AMT_ATT DECIMAL(18,2),@REF_DT VARCHAR(20),@NOTES_ATT NVARCHAR(1000), @LICENSE_DT VARCHAR(20)
|
2223
|
DECLARE XmlAttach CURSOR FOR
|
2224
|
SELECT *
|
2225
|
FROM
|
2226
|
OPENXML(@hdocPayAtach, '/Root/XmlAttach',2)
|
2227
|
WITH(ATTACH_ID varchar(15),CON_ID varchar(100),CONT_CODE VARCHAR(50), CON_NOTES NVARCHAR(1000),CON_DESC NVARCHAR(1000),CON_TYPE VARCHAR(15),AMT_ATT DECIMAL(18,2),REF_DT VARCHAR(20), LICENSE_DT VARCHAR(20))
|
2228
|
OPEN XmlAttach
|
2229
|
FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES_ATT,@CON_DESC,@CON_TYPE,@AMT_ATT,@REF_DT, @LICENSE_DT
|
2230
|
WHILE @@fetch_status=0
|
2231
|
BEGIN
|
2232
|
IF (@REF_DT='')
|
2233
|
BEGIN
|
2234
|
SET @REF_DT = NULL
|
2235
|
END
|
2236
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ATTACH', @ATTACH_ID OUT;
|
2237
|
IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT;
|
2238
|
INSERT INTO TR_REQ_PAY_ATTACH(ATTACH_ID,REQ_PAY_ID,REF_ID,REF_CODE,NOTES,[DESCRIPTION],[TYPE],AMT,REF_DT, LICENSE_DT) VALUES
|
2239
|
(@ATTACH_ID,@p_REQ_PAY_ID,@CON_ID,@CONT_CODE,@NOTES_ATT,@CON_DESC,@CON_TYPE,@AMT_ATT, CONVERT(DATE, @REF_DT,103), CONVERT(DATE, @LICENSE_DT,103))
|
2240
|
IF @@error<>0 GOTO ABORT;
|
2241
|
FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES_ATT,@CON_DESC,@CON_TYPE,@AMT_ATT,@REF_DT, @LICENSE_DT
|
2242
|
END
|
2243
|
CLOSE XmlAttach;
|
2244
|
DEALLOCATE XmlAttach;
|
2245
|
-- BEGIN INSERT CHUNG TU DINH KEM
|
2246
|
|
2247
|
--- BAT DAU VALIDATE
|
2248
|
IF(@p_TYPE_FUNCTION ='SEND')
|
2249
|
BEGIN
|
2250
|
DECLARE @SUM_PTTT DECIMAL(18,0), @SUM_NS DECIMAL(18,0),@SUM_LICH_TT DECIMAL(18,0)
|
2251
|
SET @SUM_PTTT =(SELECT SUM(TOTAL_AMT * ISNULL(RATE,1)) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
2252
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID) AND @p_REQ_TYPE ='D')
|
2253
|
BEGIN
|
2254
|
SET @SUM_LICH_TT =(SELECT SUM(AMT_PAY_REAL* ISNULL(RATE,1)) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
2255
|
IF(@p_REQ_AMT*ISNULL(@p_RATE,1) != ISNULL(@SUM_LICH_TT,0))
|
2256
|
BEGIN
|
2257
|
ROLLBACK TRANSACTION
|
2258
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tổng số tiền lịch thanh toán PO và hợp đồng liên quan đến khách hàng xử lý nợ phải bằng số tiền tạm ứng' ErrorDesc
|
2259
|
RETURN '-1'
|
2260
|
END
|
2261
|
END
|
2262
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID))
|
2263
|
BEGIN
|
2264
|
SET @SUM_NS =(SELECT SUM(AMT_EXE * ISNULL(RATE,1)) FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
2265
|
IF(@p_REQ_AMT*ISNULL(@p_RATE,1) != ISNULL(@SUM_NS,0))
|
2266
|
BEGIN
|
2267
|
ROLLBACK TRANSACTION
|
2268
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tổng số tiền sử dụng ngân sách và chi phí phải bằng số tiền tạm ứng' ErrorDesc
|
2269
|
RETURN '-1'
|
2270
|
END
|
2271
|
END
|
2272
|
ELSE
|
2273
|
IF(@p_REQ_AMT*ISNULL(@p_RATE,1) != ISNULL(@SUM_PTTT,0))
|
2274
|
BEGIN
|
2275
|
ROLLBACK TRANSACTION
|
2276
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Tổng số tiền phương thức thanh toán phải bằng số tiền tạm ứng' ErrorDesc
|
2277
|
RETURN '-1'
|
2278
|
END
|
2279
|
|
2280
|
END
|
2281
|
----END
|
2282
|
IF(@p_REQ_TYPE ='I')
|
2283
|
BEGIN
|
2284
|
DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID
|
2285
|
DECLARE @tmp table(ROLE_ID VARCHAR(25),BRANCH_ID varchar(15),AMT decimal(18,2))
|
2286
|
-- BEGIN SELECT CAC CAP PHE DUYET --
|
2287
|
-- HOI SO
|
2288
|
IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) ='HS')
|
2289
|
BEGIN
|
2290
|
-- KHOI TAI CHINH
|
2291
|
IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE (DEP_CODE LIKE '%06908%' OR DEP_CODE ='0690605') AND DEP_ID =@p_DEP_ID) --- LUCTV 14.10.22 BO SUNG THEM PHONG BAN
|
2292
|
BEGIN
|
2293
|
-- KHOI TAI CHINH SE KHONG CO PTGD NUA MA CHI CO GDK - LUCTV 29032021
|
2294
|
INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <> 'PTGD'
|
2295
|
END
|
2296
|
-- KHOI HO TRO
|
2297
|
ELSE IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE (DEP_CODE LIKE'06906%') AND DEP_ID =@p_DEP_ID) --- DOANPTT 261022 BO SUNG HAN MUC GDK HO TRO, DO GDK HO TRO CO HAN MUC RIENG KHAC VOI CAC GDK KHAC
|
2298
|
BEGIN
|
2299
|
-- KHOI HO TRO SE KHONG CO PTGD NUA MA CHI CO KDK - LUCTV 29032021
|
2300
|
--LUCTV 14062023_secretkey KHOI HO TRO CHI CÒN CÓ PTGD, KHÔNG CÓ GDK NỮA, 15062023_secretkey
|
2301
|
INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID, 1000000000 FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID = 'PTGD'
|
2302
|
END
|
2303
|
-- PHONG TRUYEN THONG VA THUONG HIEU
|
2304
|
ELSE IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE ='0690405XXX' AND DEP_ID =@p_DEP_ID) --- VÔ HIỆU H
|
2305
|
BEGIN
|
2306
|
-- KHOI TAI CHINH SE KHONG CO PTGD NUA MA CHI CO KDK - LUCTV 29032021
|
2307
|
INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK'
|
2308
|
END
|
2309
|
-- KHOI VAN HANH
|
2310
|
ELSE IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06910%' AND DEP_ID =@p_DEP_ID)
|
2311
|
BEGIN
|
2312
|
INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK' ORDER BY LIMIT_VALUE ASC
|
2313
|
END
|
2314
|
-- KHONG CO TGD VA PTGD
|
2315
|
ELSE IF (EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06900%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06901%' AND DEP_ID =@p_DEP_ID)
|
2316
|
OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06902%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06903%' AND DEP_ID =@p_DEP_ID)
|
2317
|
OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06904%' AND DEP_ID =@p_DEP_ID) OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06920%' AND DEP_ID =@p_DEP_ID)
|
2318
|
OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%799%' AND DEP_ID =@p_DEP_ID)
|
2319
|
OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%899%' AND DEP_ID =@p_DEP_ID))
|
2320
|
BEGIN
|
2321
|
INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID NOT IN ('GDK','PTGD') ORDER BY LIMIT_VALUE ASC
|
2322
|
END
|
2323
|
-- KHOI QUAN LY RUI RO, KHOI CNTT,...
|
2324
|
ELSE IF
|
2325
|
(EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06907XX%' AND DEP_ID =@p_DEP_ID) -- KHOI QUAN LY RUI RO
|
2326
|
OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06909XX%' AND DEP_ID =@p_DEP_ID) -- KHOI CNTT
|
2327
|
OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06911%' AND DEP_ID =@p_DEP_ID) -- KHOI THAM DINH TIN DUNG
|
2328
|
OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06921%' AND DEP_ID =@p_DEP_ID) -- KHOI KHCN - KHACH HANG CA NHAN
|
2329
|
OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06922%' AND DEP_ID =@p_DEP_ID)) -- KHOI KHOI KHDN & DINH CHE
|
2330
|
BEGIN
|
2331
|
INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'PTGD' ORDER BY LIMIT_VALUE ASC
|
2332
|
END
|
2333
|
--LUCTV 14062023_secretkey KHOI QLRR, CNTT CHI CÒN CÓ PTGD, KHÔNG CÓ GDK NỮA
|
2334
|
ELSE IF(EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06907%' AND DEP_ID =@p_DEP_ID) -- KHOI QUAN LY RUI RO
|
2335
|
OR EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06909%' AND DEP_ID =@p_DEP_ID)) -- KHOI CNTT
|
2336
|
BEGIN
|
2337
|
INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID ='PTGD' ORDER BY LIMIT_VALUE ASC
|
2338
|
END
|
2339
|
-- CON LAI
|
2340
|
ELSE
|
2341
|
BEGIN
|
2342
|
INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' ORDER BY LIMIT_VALUE ASC
|
2343
|
END
|
2344
|
END
|
2345
|
-- CN & PGD
|
2346
|
ELSE
|
2347
|
BEGIN
|
2348
|
-- ROLE GDDV HOAC KIEM NHIEM GDDV
|
2349
|
IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) ='CN')
|
2350
|
BEGIN
|
2351
|
--- BAO GOM DON VI & 3 CAP DUYET CUA HOI SO
|
2352
|
INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@p_BRANCH_CREATE AND ROLE_ID ='GDDV'
|
2353
|
--INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001'
|
2354
|
END
|
2355
|
-- ROLE TPGD HOAC KIEM NHIEM TPGD
|
2356
|
ELSE IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) ='PGD')
|
2357
|
BEGIN
|
2358
|
INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@p_BRANCH_CREATE AND ROLE_ID ='TPGD'
|
2359
|
--BRANCH_ID =(SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE)
|
2360
|
--INSERT INTO @tmp SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001'
|
2361
|
END
|
2362
|
END
|
2363
|
-- END SELECT CAC CAP PHE DUYET --
|
2364
|
|
2365
|
DECLARE @ROLE_ID VARCHAR(20), @BRANCH_ID VARCHAR(20), @INDEX INT =0, @SL_ROLE INT =0,@LIMIT_VALUE DECIMAL(18,0)
|
2366
|
SET @SL_ROLE = (SELECT COUNT(*) FROM @tmp)
|
2367
|
DECLARE @ISLEAF VARCHAR(1) = 'Y', @PARENT_ID VARCHAR(10) = '', @STATUS VARCHAR(1) = 'C', @NOTES NVARCHAR(500)
|
2368
|
-- BEGIN THEM CAC CAP PHE DUYET VAO TABLE PL_REQUEST_PROCESS --
|
2369
|
DECLARE CUR_PR CURSOR FOR SELECT A.ROLE_ID, A.BRANCH_ID,A.AMT FROM @tmp A ORDER BY A.AMT ASC -- SAP XEP LAI CAC CAP DUYET THEO HAN MUC PHE DUYET
|
2370
|
OPEN CUR_PR
|
2371
|
FETCH NEXT FROM CUR_PR INTO @ROLE_ID,@BRANCH_ID,@LIMIT_VALUE
|
2372
|
WHILE @@FETCH_STATUS =0 --AND @STOP=0
|
2373
|
BEGIN
|
2374
|
-- DOANPTT 261022: DONG NHAT PROCESS GIUA DON VI VA HOI SO
|
2375
|
-- HOI SO
|
2376
|
IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_CREATE) ='HS')
|
2377
|
BEGIN
|
2378
|
SET @INDEX= @INDEX+1
|
2379
|
|
2380
|
IF @INDEX = @SL_ROLE
|
2381
|
SET @ISLEAF = 'Y'
|
2382
|
ELSE
|
2383
|
SET @ISLEAF = 'N'
|
2384
|
SET @NOTES = (SELECT N'Đợi '+ ROLE_DESC + N' phê duyệt' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID)
|
2385
|
|
2386
|
IF(@INDEX=1 )
|
2387
|
BEGIN
|
2388
|
SET @PARENT_ID = NULL
|
2389
|
SET @STATUS = 'C'
|
2390
|
END
|
2391
|
ELSE
|
2392
|
BEGIN
|
2393
|
SET @PARENT_ID = CONVERT(VARCHAR(5),@INDEX -1)
|
2394
|
SET @STATUS = 'U'
|
2395
|
END
|
2396
|
END
|
2397
|
-- CN & PGD
|
2398
|
ELSE
|
2399
|
BEGIN
|
2400
|
SET @INDEX= 0
|
2401
|
IF @INDEX = @SL_ROLE - 1
|
2402
|
SET @ISLEAF = 'Y'
|
2403
|
ELSE
|
2404
|
SET @ISLEAF = 'N'
|
2405
|
SET @NOTES = (SELECT N'Đợi '+ ROLE_DESC + N' phê duyệt' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID)
|
2406
|
|
2407
|
IF(@INDEX = 0 )
|
2408
|
BEGIN
|
2409
|
SET @PARENT_ID = NULL
|
2410
|
SET @STATUS = 'C'
|
2411
|
END
|
2412
|
ELSE
|
2413
|
BEGIN
|
2414
|
SET @PARENT_ID = CONVERT(VARCHAR(5),@INDEX -1)
|
2415
|
SET @STATUS = 'U'
|
2416
|
END
|
2417
|
END
|
2418
|
/*
|
2419
|
IF(@ROLE_ID = 'TKTGD')
|
2420
|
BEGIN
|
2421
|
SET @INDEX = 3
|
2422
|
END
|
2423
|
*/
|
2424
|
IF(@LIMIT_VALUE >= @p_REQ_AMT)
|
2425
|
BEGIN
|
2426
|
INSERT INTO dbo.PL_REQUEST_PROCESS(
|
2427
|
REQ_ID,
|
2428
|
PROCESS_ID,
|
2429
|
STATUS,
|
2430
|
ROLE_USER,
|
2431
|
BRANCH_ID,
|
2432
|
CHECKER_ID,
|
2433
|
APPROVE_DT,
|
2434
|
PARENT_PROCESS_ID,
|
2435
|
IS_LEAF, COST_ID, DVDM_ID, NOTES
|
2436
|
)
|
2437
|
VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),@STATUS,@ROLE_ID,@BRANCH_ID,NULL,NULL, @PARENT_ID,'Y', '',@p_DVDM_ID,@NOTES)
|
2438
|
--INSERT INTO PL_REQUEST_PROCESS VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),@STATUS,@ROLE_ID,@BRANCH_ID,NULL,NULL, @PARENT_ID,'Y','')
|
2439
|
IF(@ROLE_ID <> 'TKTGD' AND @ROLE_ID <> 'TKHDQT')
|
2440
|
BEGIN
|
2441
|
BREAK;
|
2442
|
END
|
2443
|
END
|
2444
|
ELSE
|
2445
|
BEGIN
|
2446
|
INSERT INTO PL_REQUEST_PROCESS (
|
2447
|
REQ_ID,
|
2448
|
PROCESS_ID,
|
2449
|
STATUS,
|
2450
|
ROLE_USER,
|
2451
|
BRANCH_ID,
|
2452
|
CHECKER_ID,
|
2453
|
APPROVE_DT,
|
2454
|
PARENT_PROCESS_ID,
|
2455
|
IS_LEAF, COST_ID, DVDM_ID, NOTES
|
2456
|
)
|
2457
|
VALUES (@p_REQ_PAY_ID,CONVERT(VARCHAR(5), @INDEX),@STATUS,@ROLE_ID,@BRANCH_ID,NULL,NULL, @PARENT_ID,@ISLEAF, '', @p_DVDM_ID, @NOTES)
|
2458
|
END
|
2459
|
|
2460
|
FETCH NEXT FROM CUR_PR INTO @ROLE_ID,@BRANCH_ID,@LIMIT_VALUE
|
2461
|
END
|
2462
|
CLOSE CUR_PR
|
2463
|
DEALLOCATE CUR_PR
|
2464
|
END
|
2465
|
COMMIT TRANSACTION
|
2466
|
-- BEIGN VALIDATE SEND APPROVE
|
2467
|
IF(@p_TYPE_FUNCTION ='SEND')-- BAT DAU GUI PHE DUYET
|
2468
|
BEGIN
|
2469
|
IF(@p_MAKER_ID <> (SELECT TOP 1 MAKER_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID))
|
2470
|
BEGIN
|
2471
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Gửi phê duyệt thất bại! Bạn không được quyền gửi phê duyệt phiếu đề nghị tạm ứng của người khác tạo' ErrorDesc
|
2472
|
RETURN '-1'
|
2473
|
END
|
2474
|
IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT where MAKER_ID = @p_MAKER_ID ))
|
2475
|
BEGIN
|
2476
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn không được phép cập nhật phiếu đề nghị tạm ứng này. Chỉ người tạo phiếu mới được cập nhật phiếu' ErrorDesc
|
2477
|
RETURN '-1'
|
2478
|
END
|
2479
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT where AUTH_STATUS = 'U' AND REQ_PAY_ID = @p_REQ_PAY_ID ))
|
2480
|
BEGIN
|
2481
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được gửi phê duyệt trước đó! Vui lòng đợi các cấp phê duyệt' ErrorDesc
|
2482
|
RETURN '-1'
|
2483
|
END
|
2484
|
IF (@p_REQ_PAY_CODE IS NULL OR @p_REQ_PAY_CODE ='')
|
2485
|
BEGIN
|
2486
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Mã số phiếu không được để trống' ErrorDesc
|
2487
|
RETURN '-1'
|
2488
|
END
|
2489
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS <> 'E' AND ISNULL(AUTH_STATUS, '') <> ''))
|
2490
|
BEGIN
|
2491
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được kí xác nhận từ các cấp. Bạn không được quyền chỉnh sửa' ErrorDesc
|
2492
|
RETURN '-1'
|
2493
|
END
|
2494
|
--ROLLBACK TRANSACTION
|
2495
|
-- CAP NHAT TINH TRANG DUYET KE TOAN LA DANG XU LY
|
2496
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE (TRASFER_USER_RECIVE ='' OR TRASFER_USER_RECIVE IS NULL) AND REQ_PAY_ID =@p_REQ_PAY_ID ) AND @BRANCH_TYPE_CR ='HS' AND @p_REQ_TYPE ='I')
|
2497
|
BEGIN
|
2498
|
DECLARE @USER_TP VARCHAR(15) =''
|
2499
|
--SET @USER_TP =(SELECT TOP 1 TLNANME FROM TL_USER WHERE SECUR_CODE =@p_DEP_ID
|
2500
|
-- AND (RoleName IN ('GDDV','TPTC','TC','KTT') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW ='GDDV')))
|
2501
|
IF(@USER_TP IS NULL OR @USER_TP ='')
|
2502
|
BEGIN
|
2503
|
SET @USER_TP = (SELECT TOP 1 TLNANME FROM TL_USER_V2 WHERE SECUR_CODE =@p_DEP_ID
|
2504
|
AND (RoleName IN ('TBP','PP')))
|
2505
|
END
|
2506
|
--UPDATE TR_REQ_ADVANCE_PAYMENT SET TRASFER_USER_RECIVE =@USER_TP WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
2507
|
END
|
2508
|
DECLARE @SUM_TEMP_PAY DECIMAL, @SUM_PAY DECIMAL
|
2509
|
IF (@p_REQ_TYPE ='I')
|
2510
|
BEGIN
|
2511
|
SET @SUM_TEMP_PAY = (SELECT SUM(REQ_AMT*ISNULL(RATE,1))
|
2512
|
FROM TR_REQ_ADVANCE_PAYMENT WHERE REF_ID =@p_REF_ID AND AUTH_STATUS ='A' AND REQ_TYPE ='I')
|
2513
|
SET @SUM_PAY = (SELECT SUM (ISNULL(PAY_AMT,0)) FROM TR_REQ_ADVANCE_PAYMENT WHERE REF_ID =@p_REF_ID AND AUTH_STATUS_KT ='A' AND REQ_TYPE ='I')
|
2514
|
UPDATE TR_REQ_ADVANCE_PAYMENT SET REQ_TEMP_AMT =ISNULL(@SUM_TEMP_PAY,0) -ISNULL(@SUM_PAY,0) WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
2515
|
END
|
2516
|
DECLARE @SUM_THANH_TOAN DECIMAL(18,0) =0, @SUM_PHUONG_THUC DECIMAL(18,0) =0
|
2517
|
SET @SUM_THANH_TOAN =(SELECT ISNULL(SUM(REQ_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
2518
|
--SET @SUM_PHUONG_THUC =(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
2519
|
SET @SUM_PHUONG_THUC =(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TYPE_TRANSFER ='A') -
|
2520
|
(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TYPE_TRANSFER ='R')
|
2521
|
IF(ROUND(@SUM_THANH_TOAN,0) <> ROUND(@SUM_PHUONG_THUC,0))
|
2522
|
BEGIN
|
2523
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền phương thức thanh toán phải bằng số tiền bạn cần thanh toán là: ' + FORMAT(SUM(@SUM_THANH_TOAN),'#,#', 'vi-VN') ErrorDesc
|
2524
|
RETURN '-1'
|
2525
|
END
|
2526
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE TRASFER_USER_RECIVE <>'' AND TRASFER_USER_RECIVE IS NOT NULL AND REQ_PAY_ID =@p_REQ_PAY_ID) AND @BRANCH_TYPE_CR ='PGD' AND @p_REQ_TYPE <>'I')
|
2527
|
BEGIN
|
2528
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Ở cấp độ phòng giao dịch. Vui lòng không được chọn cấp phê duyệt trung gian' ErrorDesc
|
2529
|
RETURN '-1'
|
2530
|
END
|
2531
|
|
2532
|
|
2533
|
--IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND @p_REQ_TYPE='P' AND (@p_IS_PERIOD IS NULL OR @p_IS_PERIOD ='' OR @p_IS_PERIOD ='N')))
|
2534
|
--BEGIN
|
2535
|
-- SELECT '-1' as Result, '' REQ_PAY_ID, N'Thông tin hạng mục ngân sách và chi phí không được để trống. Vui lòng chọn ngân sách và chi phí' ErrorDesc
|
2536
|
-- RETURN '-1'
|
2537
|
--END
|
2538
|
UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='U',CREATE_DT = GETDATE() WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
2539
|
UPDATE PL_REQUEST_PROCESS SET ROLE_USER ='GDDV' WHERE REQ_ID =@p_REQ_PAY_ID AND ROLE_USER ='PGD'
|
2540
|
UPDATE PL_REQUEST_PROCESS SET ROLE_USER ='TPGD' WHERE REQ_ID =@p_REQ_PAY_ID AND ROLE_USER ='PPGD'
|
2541
|
INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
|
2542
|
VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID,GETDATE(), N'Đơn vị gửi phê duyệt',N'Đơn vị tạo phiếu tạm ứng và gửi phê duyệt')
|
2543
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE (TRASFER_USER_RECIVE <> '' AND TRASFER_USER_RECIVE IS NOT NULL) AND REQ_PAY_ID =@p_REQ_PAY_ID))
|
2544
|
BEGIN
|
2545
|
SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị tạm ứng số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận phiếu' ErrorDesc
|
2546
|
RETURN '4'
|
2547
|
END
|
2548
|
ELSE
|
2549
|
BEGIN
|
2550
|
SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị tạm ứng số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi trưởng đơn vị phê duyệt phiếu' ErrorDesc
|
2551
|
RETURN '4'
|
2552
|
END
|
2553
|
--SELECT '4' as Result, @p_REQ_PAY_ID AS REQ_PAY_ID, N'Gửi phê duyệt thành công' ErrorDesc
|
2554
|
--RETURN '4'
|
2555
|
END
|
2556
|
-- FIX PHONG HO LOI LIEN QUAN DEN VIEC TAI KHOAN TAM UNG BI SAI
|
2557
|
----DECLARE @REQ_PAY_ID varchar(15), @l_REF_ID varchar(15)
|
2558
|
----DECLARE cursorProduct CURSOR LOCAL FOR
|
2559
|
----SELECT REQ_PAY_ID,REF_ID FROM TR_REQ_ADVANCE_PAYMENT A WHERE A.REQ_TYPE ='I'
|
2560
|
----Open cursorProduct
|
2561
|
----FETCH NEXT FROM cursorProduct INTO @REQ_PAY_ID, @l_REF_ID
|
2562
|
----WHILE @@FETCH_STATUS = 0
|
2563
|
----BEGIN
|
2564
|
---- UPDATE TR_REQ_ADVANCE_PAYMENT SET RECEIVER_DEBIT =(SELECT TOP 1 ISNULL(ACC_NUM,'') FROM CM_ACCOUNT_PAY WHERE REF_ID =@l_REF_ID AND ACC_TYPE ='ADV_PAY' ) WHERE REQ_PAY_ID =@REQ_PAY_ID
|
2565
|
----FETCH NEXT FROM cursorProduct INTO @REQ_PAY_ID, @l_REF_ID
|
2566
|
----END
|
2567
|
-- END VALIDATE SEND APPROVE
|
2568
|
|
2569
|
SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' ErrorDesc
|
2570
|
RETURN '0'
|
2571
|
ABORT:
|
2572
|
BEGIN
|
2573
|
ROLLBACK TRANSACTION
|
2574
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
|
2575
|
RETURN '-1'
|
2576
|
End
|
2577
|
|
2578
|
GO
|
2579
|
|
2580
|
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Upd]
|
2581
|
@p_REQ_PAY_ID varchar(15)= NULL,
|
2582
|
@p_REQ_PAY_CODE varchar(50) = NULL,
|
2583
|
@p_REQ_DT VARCHAR(20)= NULL,
|
2584
|
@p_BRANCH_ID varchar(15) = NULL,
|
2585
|
@p_DEP_ID varchar(15) = NULL,
|
2586
|
@p_REQ_REASON nvarchar(MAX) = NULL,
|
2587
|
@p_REQ_TYPE varchar(15) = NULL,
|
2588
|
@P_REQ_ENTRIES nvarchar(MAX) = NULL,
|
2589
|
@p_REQ_DESCRIPTION nvarchar(MAX) = NULL,
|
2590
|
@p_REF_ID varchar(15) = NULL,
|
2591
|
@p_RECEIVER_PO nvarchar(250) = NULL,
|
2592
|
@p_REQ_PAY_TYPE varchar(15) = NULL,
|
2593
|
@p_REQ_TYPE_CURRENCY nvarchar(50) = NULL,
|
2594
|
@p_REQ_AMT decimal(18, 2) = NULL,
|
2595
|
@p_REQ_TEMP_AMT decimal(18, 0) = NULL,
|
2596
|
@p_MAKER_ID varchar(15) = NULL,
|
2597
|
@p_CREATE_DT varchar(25) = NULL,
|
2598
|
@p_EDITOR_ID varchar(15) = NULL,
|
2599
|
@p_AUTH_STATUS varchar(1) = NULL,
|
2600
|
@p_CHECKER_ID varchar(15) = NULL,
|
2601
|
@p_APPROVE_DT varchar(25) = NULL,
|
2602
|
@p_CREATE_DT_KT varchar(25) = NULL,
|
2603
|
@p_MAKER_ID_KT varchar(15) = NULL,
|
2604
|
@p_AUTH_STATUS_KT varchar(1) = NULL,
|
2605
|
@p_CHECKER_ID_KT varchar(1) = NULL,
|
2606
|
@p_APPROVE_DT_KT varchar(25)= null,
|
2607
|
@p_CONFIRM_NOTE nvarchar(500) = NULL,
|
2608
|
@p_BRANCH_CREATE varchar(15) = NULL,
|
2609
|
@p_NOTES varchar(15) = NULL,
|
2610
|
@p_RECORD_STATUS varchar(1) = NULL,
|
2611
|
@p_TRANSFER_MAKER nvarchar(50) = NULL,
|
2612
|
@p_TRANSFER_DT varchar(25) = NULL,
|
2613
|
@p_TRASFER_USER_RECIVE varchar(15) = NULL,
|
2614
|
@p_PROCESS varchar(15) = NULL,
|
2615
|
@p_PAY_PHASE NVARCHAR(255) = NULL,
|
2616
|
@p_RATE DECIMAL(18,2) = 0,
|
2617
|
@p_IS_PERIOD VARCHAR(5) = NULL,
|
2618
|
@p_AMT_PAY decimal(18, 0) = NULL,
|
2619
|
@p_XMP_TEMP XML = NULL,
|
2620
|
@p_XMP_TEMP_2 XML = NULL,
|
2621
|
@p_XMP_TEMP_METHOD XML = NULL,
|
2622
|
@p_XMP_TEMP_BUDGET XML = NULL,
|
2623
|
@p_XMP_TEMP_SERVICE XML = NULL,
|
2624
|
@p_XMP_TEMP_ATTACH XML = NULL,
|
2625
|
@p_XMP_TEMP_INVOICE XML = NULL,
|
2626
|
@p_TYPE_FUNCTION VARCHAR(15) = NULL,
|
2627
|
@p_XMP_TEMP_PO XML = NULL,
|
2628
|
@p_XMP_TEMP_SCHEDULE XML = NULL,
|
2629
|
@p_XMP_TEMP_PERIOD XML = NULL,
|
2630
|
@p_XMP_ADVANCE_DT XML = NULL,
|
2631
|
--doanptt 15/02/2022
|
2632
|
@p_XMP_TEMP_PAY_JOB XML = NULL,
|
2633
|
@p_XMP_TEMP_PAY_JOB_DT XML = NULL,
|
2634
|
--doanptt 17/02/2022
|
2635
|
@p_XMP_TEMP_PAY_DRIVE XML = NULL,
|
2636
|
@p_XMP_TEMP_PAY_DRIVE_DT XML = NULL,
|
2637
|
@p_XMP_TEMP_PAY_REQUEST_CAR XML = NULL,
|
2638
|
@p_XMP_TEMP_TEMPLATE_REQUEST_DOC XML = NULL
|
2639
|
|
2640
|
AS
|
2641
|
-- BEGIN VALIDATE UPDATE
|
2642
|
IF(@p_XMP_TEMP_TEMPLATE_REQUEST_DOC.exist('*') = 0)
|
2643
|
BEGIN
|
2644
|
SET @p_XMP_TEMP_TEMPLATE_REQUEST_DOC = NULL;
|
2645
|
END
|
2646
|
|
2647
|
IF(@p_TYPE_FUNCTION <> 'SEND')
|
2648
|
BEGIN
|
2649
|
IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT where MAKER_ID = @p_MAKER_ID ))
|
2650
|
BEGIN
|
2651
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn không được phép cập nhật phiếu đề nghị thanh toán này. Chỉ người tạo phiếu mới được cập nhật phiếu' ErrorDesc
|
2652
|
RETURN '-1'
|
2653
|
END
|
2654
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS ='U'))
|
2655
|
BEGIN
|
2656
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được gửi phê duyệt thành công trước đó. Bạn không được quyền chỉnh sửa' ErrorDesc
|
2657
|
RETURN '-1'
|
2658
|
END
|
2659
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND PROCESS IS NOT NULL AND PROCESS <>''))
|
2660
|
BEGIN
|
2661
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được kí xác nhận từ các cấp. Bạn không được quyền chỉnh sửa' ErrorDesc
|
2662
|
RETURN '-1'
|
2663
|
END
|
2664
|
IF (@p_REQ_PAY_CODE IS NULL OR @p_REQ_PAY_CODE ='')
|
2665
|
BEGIN
|
2666
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Mã số phiếu không được phép để trống' ErrorDesc
|
2667
|
RETURN '-1'
|
2668
|
END
|
2669
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS <> 'E' AND AUTH_STATUS <> 'R' AND ISNULL(AUTH_STATUS, '') <> ''))
|
2670
|
BEGIN
|
2671
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được kí xác nhận từ các cấp. Bạn không được quyền chỉnh sửa' ErrorDesc
|
2672
|
RETURN '-1'
|
2673
|
END
|
2674
|
END
|
2675
|
IF(@p_TYPE_FUNCTION = 'SEND')
|
2676
|
BEGIN
|
2677
|
IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT where MAKER_ID = @p_MAKER_ID ))
|
2678
|
BEGIN
|
2679
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn không được phép cập nhật phiếu đề nghị tạm ứng này. Chỉ người tạo phiếu mới được cập nhật phiếu' ErrorDesc
|
2680
|
RETURN '-1'
|
2681
|
END
|
2682
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS ='U'))
|
2683
|
BEGIN
|
2684
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được gửi phê duyệt thành công trước đó. Bạn không được quyền chỉnh sửa' ErrorDesc
|
2685
|
RETURN '-1'
|
2686
|
END
|
2687
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS = 'A'))
|
2688
|
BEGIN
|
2689
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được phê duyệt. Bạn không được quyền chỉnh sửa' ErrorDesc
|
2690
|
RETURN '-1'
|
2691
|
END
|
2692
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS_KT = 'A'))
|
2693
|
BEGIN
|
2694
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được kiểm soát viên phê duyệt. Bạn không được quyền chỉnh sửa' ErrorDesc
|
2695
|
RETURN '-1'
|
2696
|
END
|
2697
|
IF (ISNULL(@p_REQ_PAY_CODE, '')='' OR ISNULL(@p_REQ_TYPE, '')='' OR ISNULL(@p_MAKER_ID, '')='' OR ISNULL(@p_BRANCH_ID, '')='' OR ISNULL(@p_DEP_ID, '')='' OR ISNULL(@p_REQ_REASON, '')='')
|
2698
|
BEGIN
|
2699
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Các trường dữ liệu không được phép để trống: mã số phiếu, loại thanh toán, người đề nghị thanh toán, đơn vị đề nghị thanh toán, phòng ban đề nghị, số tiền thanh toán, lý do thanh toán. Vui lòng kiểm tra lại thông tin' ErrorDesc
|
2700
|
RETURN '-1'
|
2701
|
END
|
2702
|
IF(@p_MAKER_ID <> (SELECT TOP 1 MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID))
|
2703
|
BEGIN
|
2704
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Gửi phê duyệt thất bại! Bạn không được quyền gửi phê duyệt phiếu đề nghị thanh toán của người khác' ErrorDesc
|
2705
|
RETURN '-1'
|
2706
|
END
|
2707
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS='U'))
|
2708
|
BEGIN
|
2709
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được gửi phê duyệt trước đó! Vui lòng đợi các cấp phê duyệt' ErrorDesc
|
2710
|
RETURN '-1'
|
2711
|
END
|
2712
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT where AUTH_STATUS <> 'E' AND ISNULL(AUTH_STATUS, '') <> '' AND REQ_PAY_ID = @p_REQ_PAY_ID ))
|
2713
|
BEGIN
|
2714
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được gửi phê duyệt trước đó hoặc đang bị từ chối! Vui lòng kiểm tra lại thông tin' ErrorDesc
|
2715
|
RETURN '-1'
|
2716
|
END
|
2717
|
END
|
2718
|
|
2719
|
-- END VALIDATE UPDATE
|
2720
|
|
2721
|
--IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @p_REQ_PAY_CODE AND REQ_PAY_ID <> @p_REQ_PAY_ID)
|
2722
|
--BEGIN
|
2723
|
-- SELECT '-1' Result, '' REQ_PAY_ID, N'Mã số phiếu đã tồn tại trong hệ thống' ErrorDesc
|
2724
|
-- RETURN '-1'
|
2725
|
--END
|
2726
|
-- doanppt
|
2727
|
IF(@p_REQ_TYPE = 'D')
|
2728
|
BEGIN
|
2729
|
DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
2730
|
DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
2731
|
DELETE FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
2732
|
DELETE FROM TR_REQ_PAYMENT_DT WHERE PAY_ID = @p_REQ_PAY_ID
|
2733
|
END
|
2734
|
IF(@p_REQ_TYPE = 'P' AND @p_IS_PERIOD='Y')
|
2735
|
BEGIN
|
2736
|
DELETE FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
2737
|
DELETE FROM TR_REQ_PAYMENT_DT WHERE PAY_ID = @p_REQ_PAY_ID
|
2738
|
END
|
2739
|
IF(@p_REQ_TYPE = 'P' AND (@p_IS_PERIOD='N' OR @p_IS_PERIOD IS NULL))
|
2740
|
BEGIN
|
2741
|
DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
2742
|
DELETE FROM TR_REQ_PAYMENT_DT WHERE PAY_ID = @p_REQ_PAY_ID
|
2743
|
END
|
2744
|
DECLARE @ROLE_KI_NHAY VARCHAR(50)
|
2745
|
SET @ROLE_KI_NHAY =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_TRASFER_USER_RECIVE)
|
2746
|
IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <>'' AND @ROLE_KI_NHAY IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC'))
|
2747
|
BEGIN
|
2748
|
PRINT @ROLE_KI_NHAY
|
2749
|
END
|
2750
|
ELSE
|
2751
|
BEGIN
|
2752
|
SET @ROLE_KI_NHAY =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE)
|
2753
|
IF(@ROLE_KI_NHAY IS NULL OR @ROLE_KI_NHAY ='')
|
2754
|
BEGIN
|
2755
|
SET @ROLE_KI_NHAY =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_TRASFER_USER_RECIVE))
|
2756
|
END
|
2757
|
END
|
2758
|
--SET @ROLE_KI_NHAY =(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_TRASFER_USER_RECIVE)
|
2759
|
IF(@ROLE_KI_NHAY IS NOT NULL AND @ROLE_KI_NHAY <> '' AND @ROLE_KI_NHAY IN ('TP','GDDV','KTT','TPTC','TC','TPGD'))
|
2760
|
BEGIN
|
2761
|
SELECT '-1' Result, '' REQ_PAY_ID, N'Bạn không được phép chọn cấp trưởng đơn vị làm cấp phê duyệt trung gian. Vui lòng bỏ qua hoặc chọn cấp phó phòng, trưởng bộ phận' ErrorDesc
|
2762
|
RETURN '-1'
|
2763
|
END
|
2764
|
|
2765
|
BEGIN TRANSACTION
|
2766
|
-- DECLARE
|
2767
|
DECLARE @VAT decimal(18, 0) =NULL, @TRANS_NO nvarchar(50)=NULL, @TRANS_DT VARCHAR(20)=NULL,@INVOICE_SIGN nvarchar(50) = NULL,@INVOICE_NO_SIGN nvarchar(50) = NULL,@INVOICE_NO nvarchar(50) = NULL,
|
2768
|
@INVOICE_DT VARCHAR(20) = NULL, @SELLER nvarchar(500) = NULL,@TAX_NO nvarchar(15) = NULL,@GOODS_NAME nvarchar(500) = NULL, @PRICE decimal(18, 0) = NULL,@TAX decimal(18, 0) = NULL,
|
2769
|
@NOTES NVARCHAR(MAX) = NULL,@VAT_RATE DECIMAL(18,0),@ACC_NO VARCHAR(50),@ACC_NAME NVARCHAR(250),@ISSUED_BY NVARCHAR(250), @ISSUED_DT VARCHAR(20),@CURRENCY VARCHAR(15)= NULL,@RATE DECIMAL(18,2),
|
2770
|
@TYPE_VAT VARCHAR(15),@TYPE_FUNC VARCHAR(15), @PAY_ADV_ID VARCHAR(15),@TYPE_TRANSFER VARCHAR(15),@REQ_PAY_ADV_CODE VARCHAR(15),@REASON NVARCHAR(1000),
|
2771
|
@REF_TYPE VARCHAR(15), @TRN_DATE VARCHAR(15), @AMT_ADVANCED DECIMAL(18,0),@AMT_DO DECIMAL(18,0), @AMT_REMAIN DECIMAL(18,0),@AMT_PAY DECIMAL(18,0),@AMT_USE DECIMAL(18,2),@AMT_REVERT DECIMAL(18,2),
|
2772
|
@AMT_ADD DECIMAL(18,2), @TOTAL_SCHEDULE_AMT DECIMAL(18,0) =0
|
2773
|
DECLARE @INDEX_AD INT =0, @INDEX_SV INT =0,@INDEX INT =0, @INDEX_IV INT =0, @INDEX_NS INT =0, @INDEX_INVOICE INT = 0, @INDEX_METHOD INT = 0
|
2774
|
DECLARE @hdoc INT, @hDoc2 INT, @hDocMeThod INT, @hdocBudget INT, @hdocService INT, @hdocAttach INT, @hdocInvoice INT, @hdocPO INT, @hdocSchedule INT, @hdocPeriod INT, @hdocRecurring INT, @hdocJob INT,
|
2775
|
@hdocJobDT INT, @hdocDrive INT, @hdocDriveDT INT, @hdocRequestCar INT, @hdocTemplateRequestDoc INT
|
2776
|
-- EXEC XMP
|
2777
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_TEMP;
|
2778
|
EXEC sp_xml_preparedocument @hDoc2 OUTPUT, @p_XMP_TEMP_2;
|
2779
|
EXEC sp_xml_preparedocument @hDocMeThod OUTPUT, @p_XMP_TEMP_METHOD;
|
2780
|
EXEC sp_xml_preparedocument @hdocBudget OUTPUT, @p_XMP_TEMP_BUDGET;
|
2781
|
EXEC sp_xml_preparedocument @hdocService OUTPUT, @p_XMP_TEMP_SERVICE;
|
2782
|
EXEC sp_xml_preparedocument @hdocAttach OUTPUT, @p_XMP_TEMP_ATTACH;
|
2783
|
EXEC sp_xml_preparedocument @hdocInvoice OUTPUT, @p_XMP_TEMP_INVOICE;
|
2784
|
EXEC sp_xml_preparedocument @hdocPO OUTPUT, @p_XMP_TEMP_PO;
|
2785
|
EXEC sp_xml_preparedocument @hdocSchedule OUTPUT, @p_XMP_TEMP_SCHEDULE;
|
2786
|
EXEC sp_xml_preparedocument @hdocPeriod OUTPUT, @p_XMP_TEMP_PERIOD;
|
2787
|
EXEC sp_xml_preparedocument @hdocRecurring OUTPUT, @p_XMP_ADVANCE_DT;
|
2788
|
--doanptt 15/02/2022
|
2789
|
-- THONG TIN THANH TOAN CHI PHI DI CONG TAC
|
2790
|
EXEC sp_xml_preparedocument @hdocJob OUTPUT, @p_XMP_TEMP_PAY_JOB;
|
2791
|
-- CHI TIET CHI PHI DI CONG TAC
|
2792
|
EXEC sp_xml_preparedocument @hdocJobDT OUTPUT, @p_XMP_TEMP_PAY_JOB_DT;
|
2793
|
--doanptt 17/02/2022
|
2794
|
-- THONG TIN THANH TOAN CHI PHI VAN HANH XE
|
2795
|
EXEC sp_xml_preparedocument @hdocDrive OUTPUT, @p_XMP_TEMP_PAY_DRIVE;
|
2796
|
-- BANG KE CHI PHI SU DUNG NHIEN LIEU
|
2797
|
EXEC sp_xml_preparedocument @hdocDriveDT OUTPUT, @p_XMP_TEMP_PAY_DRIVE_DT;
|
2798
|
-- PHIEU YEU CAU XE
|
2799
|
EXEC sp_xml_preparedocument @hdocRequestCar OUTPUT, @p_XMP_TEMP_PAY_REQUEST_CAR;
|
2800
|
-- TO TRINH NGHIEP VU
|
2801
|
EXEC sp_xml_preparedocument @hdocTemplateRequestDoc OUTPUT, @p_XMP_TEMP_TEMPLATE_REQUEST_DOC;
|
2802
|
|
2803
|
-- BEGIN THONG TIN LUOI MASTER
|
2804
|
UPDATE TR_REQ_PAYMENT
|
2805
|
SET REF_ID = @p_REF_ID, DEP_ID= @p_DEP_ID,REQ_REASON = @p_REQ_REASON, REQ_PAY_TYPE = @p_REQ_PAY_TYPE,REQ_AMT = @p_REQ_AMT, NOTES= @p_NOTES, REQ_TYPE= @p_REQ_TYPE,REQ_DESCRIPTION = @p_REQ_DESCRIPTION,
|
2806
|
RECEIVER_PO = @p_RECEIVER_PO,TRANSFER_MAKER =@p_TRANSFER_MAKER, REQ_TEMP_AMT=@p_REQ_TEMP_AMT,REQ_ENTRIES = @P_REQ_ENTRIES,BRANCH_ID = @p_BRANCH_ID,
|
2807
|
AUTH_STATUS='E', IS_PERIOD =@p_IS_PERIOD, TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE, RATE = @p_RATE, AMT_PAY = @p_AMT_PAY, AUTH_STATUS_KT = NULL, REQ_TYPE_CURRENCY = @p_REQ_TYPE_CURRENCY
|
2808
|
WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
2809
|
-- BUA DOAN NAY DE XU LY LOI KHONG TIM DUOC NHA CUNG CAP
|
2810
|
UPDATE CM_SUPPLIER SET ACC_NUM ='' WHERE ACC_NUM IS NULL
|
2811
|
UPDATE CM_SUPPLIER SET ACC_NUM_OUT ='' WHERE ACC_NUM_OUT IS NULL
|
2812
|
--
|
2813
|
UPDATE TR_REQ_PAY_SERVICE
|
2814
|
SET REQ_PAY_ID= 'XX'+ RIGHT(REQ_PAY_ID,13)
|
2815
|
WHERE REQ_PAY_ID NOT IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE REQ_TYPE IN ('I','D'))
|
2816
|
--
|
2817
|
UPDATE TR_REQ_PAY_SCHEDULE
|
2818
|
SET REQ_PAY_ID= 'XX'+ RIGHT(REQ_PAY_ID,13)
|
2819
|
WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE REQ_TYPE ='P' AND IS_PERIOD IS NOT NULL AND IS_PERIOD <>'' AND IS_PERIOD='Y') AND TRN_TYPE ='PAY' AND REQ_PAY_ID =@p_REQ_PAY_ID
|
2820
|
IF @@Error <> 0 GOTO ABORT
|
2821
|
-- END THONG TIN LUOI MASTER
|
2822
|
|
2823
|
-- BEGIN THONG TIN HOA DON DINH KEM
|
2824
|
DECLARE @PDN_TT_LIST_INVOICE NVARCHAR(1000)
|
2825
|
DELETE FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
2826
|
DECLARE XmlData CURSOR FOR SELECT * FROM OPENXML(@hdocInvoice, '/Root/XmlData', 2)
|
2827
|
WITH(TRANS_NO nvarchar(50),TRANS_DT VARCHAR(20),INVOICE_SIGN nvarchar(50),INVOICE_NO_SIGN nvarchar(50), INVOICE_NO nvarchar(50),INVOICE_DT VARCHAR(20) ,SELLER nvarchar(500),TAX_NO nvarchar(15),
|
2828
|
GOODS_NAME nvarchar(500), PRICE decimal(18,0),TAX decimal(18, 0),VAT decimal(18,0),NOTE NVARCHAR(MAX),VAT_RATE decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),TYPE_VAT VARCHAR(15),TYPE_FUNC VARCHAR(15))
|
2829
|
OPEN XmlData;
|
2830
|
FETCH NEXT FROM XmlData INTO @TRANS_NO , @TRANS_DT ,@INVOICE_SIGN ,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER ,
|
2831
|
@TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@TYPE_VAT,@TYPE_FUNC
|
2832
|
WHILE @@fetch_status=0
|
2833
|
BEGIN
|
2834
|
-- SET
|
2835
|
SET @INDEX_IV = @INDEX_IV +1
|
2836
|
-- BEGIN VALIDATE
|
2837
|
IF(@p_TYPE_FUNCTION ='SEND')
|
2838
|
BEGIN
|
2839
|
IF(LEN(@INVOICE_NO) < 1)
|
2840
|
BEGIN
|
2841
|
ROLLBACK TRANSACTION
|
2842
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Hóa đơn đính kèm, dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' không được để trống' ErrorDesc
|
2843
|
RETURN '-1'
|
2844
|
END
|
2845
|
|
2846
|
IF(LEN(@INVOICE_NO) > 8)
|
2847
|
BEGIN
|
2848
|
ROLLBACK TRANSACTION
|
2849
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Hóa đơn đính kèm, dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' phải bé hơn 9 ký tự' ErrorDesc
|
2850
|
RETURN '-1'
|
2851
|
END
|
2852
|
|
2853
|
SET @PDN_TT_LIST_INVOICE = ( SELECT STUFF ( ( SELECT '; ' + DTA.REQ_PAY_CODE
|
2854
|
FROM TR_REQ_PAYMENT DTA
|
2855
|
WHERE REQ_PAY_ID IN ( SELECT REQ_PAY_ID
|
2856
|
FROM TR_REQ_PAY_INVOICE
|
2857
|
WHERE INVOICE_NO =@INVOICE_NO
|
2858
|
AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN
|
2859
|
AND INVOICE_SIGN = @INVOICE_SIGN
|
2860
|
AND TAX_NO =@TAX_NO
|
2861
|
AND TAX =@TAX
|
2862
|
AND AUTH_STATUS <>'D'
|
2863
|
AND TYPE_FUNC ='HC'
|
2864
|
AND REQ_PAY_ID IN ( SELECT REQ_PAY_ID
|
2865
|
FROM TR_REQ_PAYMENT
|
2866
|
WHERE AUTH_STATUS NOT IN ('E','D')
|
2867
|
AND MAKER_ID NOT IN ( SELECT TLNANME
|
2868
|
FROM TL_USER
|
2869
|
WHERE RoleName ='DISABLE'
|
2870
|
OR AUTH_STATUS ='U'
|
2871
|
)
|
2872
|
)
|
2873
|
)
|
2874
|
FOR XML PATH(''), TYPE
|
2875
|
).value('.[1]', 'nvarchar(max)'), 1, 2, ''
|
2876
|
)
|
2877
|
)
|
2878
|
|
2879
|
IF ( EXISTS ( SELECT *
|
2880
|
FROM TR_REQ_PAY_INVOICE
|
2881
|
WHERE INVOICE_NO = @INVOICE_NO
|
2882
|
AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN
|
2883
|
AND INVOICE_SIGN =@INVOICE_SIGN
|
2884
|
AND TAX_NO = @TAX_NO
|
2885
|
AND TAX =@TAX
|
2886
|
AND TYPE_FUNC ='HC'
|
2887
|
AND AUTH_STATUS <>'D' AND
|
2888
|
REQ_PAY_ID IN ( SELECT REQ_PAY_ID
|
2889
|
FROM TR_REQ_PAYMENT
|
2890
|
WHERE AUTH_STATUS NOT IN ('E','D')
|
2891
|
AND MAKER_ID NOT IN ( SELECT TLNANME
|
2892
|
FROM TL_USER
|
2893
|
WHERE RoleName ='DISABLE'
|
2894
|
OR AUTH_STATUS ='U'
|
2895
|
)
|
2896
|
)
|
2897
|
)
|
2898
|
)
|
2899
|
BEGIN
|
2900
|
ROLLBACK TRANSACTION
|
2901
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' đã tồn tại trong hệ thống. Danh sách những phiếu đề nghị thanh toán đã sử dụng: '+ ISNULL(@PDN_TT_LIST_INVOICE,'') ErrorDesc
|
2902
|
RETURN '-1'
|
2903
|
END
|
2904
|
|
2905
|
IF(@GOODS_NAME IS NULL OR @GOODS_NAME ='')
|
2906
|
BEGIN
|
2907
|
ROLLBACK TRANSACTION
|
2908
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Tên mặt hàng trong lưới hóa đơn không được để trống' ErrorDesc
|
2909
|
RETURN '-1'
|
2910
|
END
|
2911
|
-- TÊN NGƯỜI BÀN
|
2912
|
IF(@SELLER IS NULL OR @SELLER ='')
|
2913
|
BEGIN
|
2914
|
ROLLBACK TRANSACTION
|
2915
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Người bán trong lưới hóa đơn không được để trống' ErrorDesc
|
2916
|
RETURN '-1'
|
2917
|
END
|
2918
|
|
2919
|
IF(@TAX_NO IS NULL OR @TAX_NO ='')
|
2920
|
BEGIN
|
2921
|
ROLLBACK TRANSACTION
|
2922
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Mã số thuế trong lưới hóa đơn không được để trống' ErrorDesc
|
2923
|
RETURN '-1'
|
2924
|
END
|
2925
|
-- NGÀY HÓA ĐƠN
|
2926
|
IF(@INVOICE_DT IS NULL OR @INVOICE_DT ='')
|
2927
|
BEGIN
|
2928
|
ROLLBACK TRANSACTION
|
2929
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Ngày hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc
|
2930
|
RETURN '-1'
|
2931
|
END
|
2932
|
-- SỐ HÓA ĐƠN
|
2933
|
IF(@INVOICE_NO IS NULL OR @INVOICE_NO ='')
|
2934
|
BEGIN
|
2935
|
ROLLBACK TRANSACTION
|
2936
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc
|
2937
|
RETURN '-1'
|
2938
|
END
|
2939
|
-- KÍ HIỆU HÓA ĐƠN
|
2940
|
IF(@INVOICE_NO_SIGN IS NULL OR @INVOICE_NO_SIGN ='')
|
2941
|
BEGIN
|
2942
|
ROLLBACK TRANSACTION
|
2943
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Kí hiệu số hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc
|
2944
|
RETURN '-1'
|
2945
|
END
|
2946
|
-- KÍ HIỆU HÓA ĐƠN
|
2947
|
IF(@PRICE IS NULL OR @PRICE =0)
|
2948
|
BEGIN
|
2949
|
ROLLBACK TRANSACTION
|
2950
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số tiền hóa đơn trong lưới hóa đơn không được để trống' ErrorDesc
|
2951
|
RETURN '-1'
|
2952
|
END
|
2953
|
END
|
2954
|
-- END VALIDATE
|
2955
|
|
2956
|
DECLARE @p_REQ_INV_ID VARCHAR(15);
|
2957
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_INVOICE', @p_REQ_INV_ID OUT;
|
2958
|
IF @p_REQ_INV_ID='' OR @p_REQ_INV_ID IS NULL GOTO ABORT;
|
2959
|
INSERT INTO TR_REQ_PAY_INVOICE(REQ_PAYDT_ID,REQ_PAY_ID,TRANS_NO,TRANS_DT,INVOICE_SIGN,INVOICE_NO,INVOICE_DT,SELLER,TAX_NO,GOODS_NAME,PRICE,TAX,VAT,NOTE, MAKER_ID,CREATE_DT,EDITOR_ID,AUTH_STATUS,
|
2960
|
CHECKER_ID,APPROVE_DT, CREATE_DT_KT,MAKER_ID_KT,AUTH_STATUS_KT,CHECKER_ID_KT,APPROVE_DT_KT,RECORD_STATUS,INVOICE_NO_SIGN,VAT_RATE,CURRENCY,RATE,PRICE_KT,VAT_KT,TOTAL_AMT_KT,TYPE_VAT,TYPE_FUNC)
|
2961
|
VALUES (@p_REQ_INV_ID,@p_REQ_PAY_ID , @TRANS_NO , NULL ,@INVOICE_SIGN ,@INVOICE_NO ,CONVERT(DATE,@INVOICE_DT,103) ,UPPER(([dbo].[RemoveVietNamese](@SELLER))),@TAX_NO ,UPPER(([dbo].[RemoveVietNamese](@GOODS_NAME))) ,
|
2962
|
@PRICE ,@TAX,@VAT,@NOTES, @p_MAKER_ID,GETDATE(),NULL,'U',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'1',@INVOICE_NO_SIGN,@VAT_RATE, 'VND' , 1,@PRICE,@VAT,@PRICE+@VAT,@TYPE_VAT,@TYPE_FUNC)
|
2963
|
IF @@error<>0 GOTO ABORT;
|
2964
|
FETCH NEXT FROM XmlData
|
2965
|
INTO @TRANS_NO , @TRANS_DT,@INVOICE_SIGN,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER ,@TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@TYPE_VAT,@TYPE_FUNC
|
2966
|
END;
|
2967
|
CLOSE XmlData;
|
2968
|
DEALLOCATE XmlData;
|
2969
|
-- END THONG TIN HOA DON DINH KEM
|
2970
|
-- BEGIN THONG TIN HANG MUC NGAN SACH VA CHI PHI
|
2971
|
-- DELETE
|
2972
|
DELETE FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID=@p_REQ_PAY_ID
|
2973
|
DELETE FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL WHERE REQ_PAY_ID=@p_REQ_PAY_ID
|
2974
|
DELETE FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE REQ_PAY_ID=@p_REQ_PAY_ID
|
2975
|
-- DECLARE
|
2976
|
DECLARE @TRADE_ID varchar(15),@GD_ID varchar(15), @GD_CODE varchar(15), @AMT_APP decimal(18,2),@AMT_EXE decimal(18,2), @AMT_REMAIN_GD decimal(18,2),@TYPE_COST VARCHAR(15), @FR_LEVEL INT ,
|
2977
|
@TO_LEVEL INT, @MONTH_RATE VARCHAR(4), @YEAR_RATE VARCHAR(4), @BUDGET_TYPE VARCHAR(20), @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20), @MONTH VARCHAR(20), @YEAR VARCHAR(20),
|
2978
|
@BRANCH_TYPE VARCHAR(20), @KHOI_ID VARCHAR(20), @TLNAME VARCHAR(20), @RoleName VARCHAR(20), @BRANCH_TAKE_COST_ID VARCHAR(20), @DEP_TAKE_COST_ID VARCHAR(20), @KHOI_TAKE_COST_ID VARCHAR(20), @BRANCH_KIND VARCHAR(20)
|
2979
|
-- DECLARE CURSOR
|
2980
|
DECLARE XmlDataGood CURSOR FOR SELECT * FROM OPENXML(@hdocBudget, 'Root/XmlDataGood',2)
|
2981
|
WITH(TRADE_ID varchar(15),GD_ID varchar(15),GD_CODE varchar(15),AMT_APP decimal(18,2),AMT_DO decimal(18,2), AMT_EXE decimal(18,2),AMT_REMAIN decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),
|
2982
|
REASON NVARCHAR(1000),TYPE_COST VARCHAR(15), FR_LEVEL INT ,TO_LEVEL INT, MONTH_RATE VARCHAR(4), YEAR_RATE VARCHAR(4), BUDGET_TYPE VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20), MONTH VARCHAR(20), YEAR VARCHAR(20),
|
2983
|
BRANCH_TYPE VARCHAR(20), KHOI_ID VARCHAR(20), TLNAME VARCHAR(20), RoleName VARCHAR(20), BRANCH_TAKE_COST_ID VARCHAR(20), DEP_TAKE_COST_ID VARCHAR(20), KHOI_TAKE_COST_ID VARCHAR(20), BRANCH_KIND VARCHAR(20))
|
2984
|
-- BEGIN CURSOR THONG TIN HANG MUC NGAN SACH VA CHI PHI
|
2985
|
OPEN XmlDataGood
|
2986
|
FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID , @GD_CODE, @AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY,
|
2987
|
@RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL, @MONTH_RATE, @YEAR_RATE, @BUDGET_TYPE, @BRANCH_ID , @DEP_ID, @MONTH, @YEAR,
|
2988
|
@BRANCH_TYPE, @KHOI_ID, @TLNAME, @RoleName, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @BRANCH_KIND
|
2989
|
WHILE @@fetch_status=0 BEGIN
|
2990
|
-- SET
|
2991
|
SET @INDEX_NS = @INDEX_NS +1
|
2992
|
|
2993
|
DECLARE @p_BUDGET_ID VARCHAR(15);
|
2994
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_BUDGET', @p_BUDGET_ID OUT;
|
2995
|
IF @p_BUDGET_ID='' OR @p_BUDGET_ID IS NULL GOTO ABORT;
|
2996
|
|
2997
|
IF(@BUDGET_TYPE = 'nam')
|
2998
|
BEGIN
|
2999
|
INSERT INTO TR_REQ_PAY_BUDGET(BUDG_ID,GD_ID,REQ_PAY_ID,TRADE_ID,AMT_APP,AMT_DO,AMT_EXE,AMT_REMAIN,MAKER_ID,CREATE_DT,CURRENCY,RATE,REASON,TYPE_COST , FR_LEVEL ,TO_LEVEL, MONTH_RATE, YEAR_RATE, BUDGET_TYPE, BRANCH_ID ,DEP_ID, TLNAME, ROLENAME, BRANCH_TAKE_COST_ID, DEP_TAKE_COST_ID, KHOI_TAKE_COST_ID,BRANCH_KIND)
|
3000
|
VALUES (@p_BUDGET_ID,@GD_ID,@p_REQ_PAY_ID,@TRADE_ID,@AMT_APP,@AMT_DO,@AMT_EXE,@AMT_REMAIN_GD,@p_MAKER_ID, GETDATE(), @p_REQ_TYPE_CURRENCY , @p_RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL, 'M' + CONVERT(VARCHAR(20), MONTH(GETDATE())), CONVERT(VARCHAR(20), YEAR(GETDATE())), @BUDGET_TYPE, @BRANCH_ID, @DEP_ID, @TLNAME, @RoleName, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID,@BRANCH_KIND)
|
3001
|
END
|
3002
|
ELSE
|
3003
|
BEGIN
|
3004
|
INSERT INTO TR_REQ_PAY_BUDGET(BUDG_ID,GD_ID,REQ_PAY_ID,TRADE_ID,AMT_APP,AMT_DO,AMT_EXE,AMT_REMAIN,MAKER_ID,CREATE_DT,CURRENCY,RATE,REASON,TYPE_COST , FR_LEVEL ,TO_LEVEL, MONTH_RATE, YEAR_RATE, BUDGET_TYPE, BRANCH_ID ,DEP_ID, TLNAME, ROLENAME, BRANCH_TAKE_COST_ID, DEP_TAKE_COST_ID, KHOI_TAKE_COST_ID,BRANCH_KIND)
|
3005
|
VALUES (@p_BUDGET_ID,@GD_ID,@p_REQ_PAY_ID,@TRADE_ID,@AMT_APP,@AMT_DO,@AMT_EXE,@AMT_REMAIN_GD,@p_MAKER_ID, GETDATE(), @p_REQ_TYPE_CURRENCY , @p_RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL, @MONTH_RATE, @YEAR_RATE, @BUDGET_TYPE, @BRANCH_ID, @DEP_ID, @TLNAME, @RoleName, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID,@BRANCH_KIND)
|
3006
|
END
|
3007
|
|
3008
|
|
3009
|
|
3010
|
IF @@error<>0 GOTO ABORT;
|
3011
|
-- BEGIN VALIDATE
|
3012
|
IF(@p_TYPE_FUNCTION ='SEND')
|
3013
|
BEGIN
|
3014
|
IF(ISNULL(@AMT_EXE,0) =0)
|
3015
|
BEGIN
|
3016
|
ROLLBACK TRANSACTION
|
3017
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Số tiền sử dụng thực tế phải lớn hơn không.' ErrorDesc
|
3018
|
RETURN '-1'
|
3019
|
END
|
3020
|
/*
|
3021
|
IF((@AMT_EXE > @AMT_REMAIN_GD) AND ((SELECT GD_TYPE_ID FROM CM_GOODS WHERE GD_ID =@GD_ID) ='NS'))
|
3022
|
BEGIN
|
3023
|
ROLLBACK TRANSACTION
|
3024
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng thực tế không được vượt quá ngân sách còn lại.' ErrorDesc
|
3025
|
RETURN '-1'
|
3026
|
END
|
3027
|
*/
|
3028
|
|
3029
|
IF(NOT EXISTS(SELECT * FROM PL_IMPORT_DT WHERE TRADE_ID =@TRADE_ID AND IMP_YEAR =YEAR(GETDATE()))
|
3030
|
AND NOT EXISTS (SELECT * FROM PL_MASTER WHERE PLAN_ID =(SELECT TOP 1 PLAN_ID FROM PL_TRADEDETAIL WHERE TRADE_ID =@TRADE_ID) AND YEAR =YEAR(GETDATE())))
|
3031
|
BEGIN
|
3032
|
ROLLBACK TRANSACTION
|
3033
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(VARCHAR(5),@INDEX_NS)+ N': Ngân sách sử dụng phải chọn lại ngân sách của năm hiện tại. Không được phép sử dụng ngân sách năm cũ.' ErrorDesc
|
3034
|
RETURN '-1'
|
3035
|
END
|
3036
|
|
3037
|
--doanptt 180622 ghi log NSCP
|
3038
|
-- BEGIN CHECK HAN MUC CHI PHI THEO NAM
|
3039
|
IF(@BUDGET_TYPE = 'nam')
|
3040
|
BEGIN
|
3041
|
SET @MONTH_RATE = 'M' + CONVERT(VARCHAR(20), MONTH(GETDATE()));
|
3042
|
|
3043
|
IF(@YEAR_RATE = '' OR @YEAR_RATE IS NULL)
|
3044
|
BEGIN
|
3045
|
ROLLBACK TRANSACTION
|
3046
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Năm định mức không được để trống' ErrorDesc
|
3047
|
RETURN '-1'
|
3048
|
END
|
3049
|
|
3050
|
IF(@BRANCH_TAKE_COST_ID = '' OR @BRANCH_TAKE_COST_ID IS NULL)
|
3051
|
BEGIN
|
3052
|
ROLLBACK TRANSACTION
|
3053
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Đơn vị chịu chi phí không được để trống' ErrorDesc
|
3054
|
RETURN '-1'
|
3055
|
END
|
3056
|
|
3057
|
IF(ISNULL(@YEAR_RATE, '') <> CONVERT(VARCHAR(20), YEAR(GETDATE())))
|
3058
|
BEGIN
|
3059
|
ROLLBACK TRANSACTION
|
3060
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Năm định mức không giống với năm hiện tại' ErrorDesc
|
3061
|
RETURN '-1'
|
3062
|
END
|
3063
|
|
3064
|
DECLARE @l_BUDGET_LIMIT_YEAR_DETAIL_ID VARCHAR(15);
|
3065
|
EXEC SYS_CodeMasters_Gen 'BUDGET_LIMIT_YEAR_DETAIL', @l_BUDGET_LIMIT_YEAR_DETAIL_ID OUT;
|
3066
|
|
3067
|
IF(@MONTH_RATE = 'M1')
|
3068
|
BEGIN
|
3069
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID, DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3070
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, @AMT_EXE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3071
|
END
|
3072
|
IF(@MONTH_RATE = 'M2')
|
3073
|
BEGIN
|
3074
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3075
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, 0, @AMT_EXE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3076
|
END
|
3077
|
IF(@MONTH_RATE = 'M3')
|
3078
|
BEGIN
|
3079
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3080
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, 0, 0, @AMT_EXE, 0, 0, 0, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3081
|
END
|
3082
|
IF(@MONTH_RATE = 'M4')
|
3083
|
BEGIN
|
3084
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3085
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE,0,0,0, @AMT_EXE, 0, 0, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3086
|
END
|
3087
|
IF(@MONTH_RATE = 'M5')
|
3088
|
BEGIN
|
3089
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3090
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, 0, 0, 0, 0, @AMT_EXE, 0, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3091
|
END
|
3092
|
IF(@MONTH_RATE = 'M6')
|
3093
|
BEGIN
|
3094
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID, DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3095
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, 0, 0, 0, 0, 0, @AMT_EXE, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3096
|
END
|
3097
|
IF(@MONTH_RATE = 'M7')
|
3098
|
BEGIN
|
3099
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3100
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, 0, 0, 0, 0, 0, 0, @AMT_EXE, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3101
|
END
|
3102
|
IF(@MONTH_RATE = 'M8')
|
3103
|
BEGIN
|
3104
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3105
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, 0, 0, 0, 0, 0, 0, 0, @AMT_EXE, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3106
|
END
|
3107
|
IF(@MONTH_RATE = 'M9')
|
3108
|
BEGIN
|
3109
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3110
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, 0, 0, 0, 0, 0, 0, 0, 0, @AMT_EXE, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3111
|
END
|
3112
|
IF(@MONTH_RATE = 'M10')
|
3113
|
BEGIN
|
3114
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3115
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, 0, 0, 0, 0, 0, 0, 0, 0, 0, @AMT_EXE,0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3116
|
END
|
3117
|
IF(@MONTH_RATE = 'M11')
|
3118
|
BEGIN
|
3119
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3120
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @AMT_EXE, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3121
|
END
|
3122
|
IF(@MONTH_RATE = 'M12')
|
3123
|
BEGIN
|
3124
|
INSERT INTO TR_REQ_BUDGET_YEAR_LIMIT_DETAIL(BUDGET_YEAR_LIMIT_DETAIL_ID,REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, KHOI_ID, TLNAME, ROLENAME, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3125
|
VALUES(@l_BUDGET_LIMIT_YEAR_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @YEAR_RATE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @AMT_EXE, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3126
|
END
|
3127
|
-- CHECK HẠN MỨC
|
3128
|
|
3129
|
DECLARE @l_HAVE_BUDGET_LIMIT_YEAR decimal(18,0), @l_BUDGET_LIMIT_CURRENT_YEAR decimal(18,0) =0, @l_BUDGET_USED_CURRENT_YEAR decimal(18,0) =0 , @l_BRANCH_TYPE_YEAR VARCHAR(20) = '';
|
3130
|
EXEC TR_BUDGET_CHECK_LIMIT_YEAR_Byid @GD_ID, @GD_CODE ,@BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @TLNAME, @RoleName, @MONTH_RATE, @YEAR_RATE, @BRANCH_KIND, @l_BUDGET_LIMIT_CURRENT_YEAR out, @l_BUDGET_USED_CURRENT_YEAR out
|
3131
|
IF(@l_BUDGET_LIMIT_CURRENT_YEAR < @l_BUDGET_USED_CURRENT_YEAR)
|
3132
|
BEGIN
|
3133
|
ROLLBACK TRANSACTION
|
3134
|
--SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Số tiền sử dụng ngân sách vượt quá định mức ngân sách. Hạn mức hiện tại là ' + FORMAT(@l_BUDGET_LIMIT_CURRENT_YEAR,'#,#', 'vi-VN') + N', số tiền đã sử dụng đến hiện tại là ' + FORMAT(@l_BUDGET_USED_CURRENT_YEAR,'#,#', 'vi-VN') ErrorDesc
|
3135
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Số tiền sử dụng ngân sách vượt quá định mức ngân sách.' ErrorDesc
|
3136
|
RETURN '-1'
|
3137
|
END
|
3138
|
|
3139
|
END-- END CHECK HAN MUC NGAN SACH CHI PHI THEO NAM
|
3140
|
ELSE IF(@BUDGET_TYPE = 'thang')
|
3141
|
BEGIN -- BEGIN CHECK HAN MUC NGAN SACH CHI PHI THEO THANG
|
3142
|
-- BEGIN KIỂM TRA HẠN MỨC
|
3143
|
DECLARE @l_HAVE_BUDGET_LIMIT decimal(18,0), @l_BUDGET_LIMIT_CURRENT decimal(18,0) =0, @l_BUDGET_USED_CURRENT decimal(18,0) =0 , @l_BRANCH_TYPE VARCHAR(20) = '', @l_IS_POTENTIAL VARCHAR(20) = '';
|
3144
|
-- lấy loại đơn vị
|
3145
|
SET @l_BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID)
|
3146
|
SET @l_IS_POTENTIAL = (SELECT IS_POTENTIAL FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID)
|
3147
|
IF(@l_BRANCH_TYPE = 'HS')
|
3148
|
BEGIN
|
3149
|
SET @l_BRANCH_TYPE = 'ho'
|
3150
|
END
|
3151
|
ELSE IF(@l_BRANCH_TYPE = 'CN' OR (@l_IS_POTENTIAL = 'Y' AND @l_BRANCH_TYPE = 'PGD'))
|
3152
|
BEGIN
|
3153
|
SET @l_BRANCH_TYPE = 'dvkd'
|
3154
|
END
|
3155
|
ELSE
|
3156
|
BEGIN
|
3157
|
SET @l_BRANCH_TYPE = 'pgd'
|
3158
|
END
|
3159
|
|
3160
|
DECLARE @l_BUDGET_LIMIT_MONTH_DETAIL_ID VARCHAR(15);
|
3161
|
EXEC SYS_CodeMasters_Gen 'BUDGET_LIMIT_MONTH_DETAIL', @l_BUDGET_LIMIT_MONTH_DETAIL_ID OUT;
|
3162
|
|
3163
|
IF(@MONTH_RATE = '' OR @MONTH_RATE IS NULL)
|
3164
|
BEGIN
|
3165
|
ROLLBACK TRANSACTION
|
3166
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Tháng định mức không được để trống' ErrorDesc
|
3167
|
RETURN '-1'
|
3168
|
END
|
3169
|
IF(@YEAR_RATE = '' OR @YEAR_RATE IS NULL)
|
3170
|
BEGIN
|
3171
|
ROLLBACK TRANSACTION
|
3172
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Năm định mức không được để trống' ErrorDesc
|
3173
|
RETURN '-1'
|
3174
|
END
|
3175
|
IF(@BRANCH_TAKE_COST_ID = '' OR @BRANCH_TAKE_COST_ID IS NULL)
|
3176
|
BEGIN
|
3177
|
ROLLBACK TRANSACTION
|
3178
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Đơn vị chịu chi phí không được để trống' ErrorDesc
|
3179
|
RETURN '-1'
|
3180
|
END
|
3181
|
|
3182
|
IF(ISNULL(@YEAR_RATE, '') <> CONVERT(VARCHAR(20), YEAR(GETDATE())))
|
3183
|
BEGIN
|
3184
|
ROLLBACK TRANSACTION
|
3185
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Năm định mức không giống với năm hiện tại' ErrorDesc
|
3186
|
RETURN '-1'
|
3187
|
END
|
3188
|
|
3189
|
-- END KIỂM TRA HẠN MỨC
|
3190
|
-- BEGIN VALIDATE
|
3191
|
IF(@MONTH_RATE = 'M1')
|
3192
|
BEGIN
|
3193
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND,BUDG_ID)
|
3194
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, @AMT_EXE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3195
|
END
|
3196
|
IF(@MONTH_RATE = 'M2')
|
3197
|
BEGIN
|
3198
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3199
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, 0, @AMT_EXE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3200
|
END
|
3201
|
IF(@MONTH_RATE = 'M3')
|
3202
|
BEGIN
|
3203
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3204
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, 0, 0, @AMT_EXE, 0, 0, 0, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3205
|
END
|
3206
|
IF(@MONTH_RATE = 'M4')
|
3207
|
BEGIN
|
3208
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3209
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE,0,0,0, @AMT_EXE, 0, 0, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3210
|
END
|
3211
|
IF(@MONTH_RATE = 'M5')
|
3212
|
BEGIN
|
3213
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3214
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, 0, 0, 0, 0, @AMT_EXE, 0, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3215
|
END
|
3216
|
IF(@MONTH_RATE = 'M6')
|
3217
|
BEGIN
|
3218
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID, DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3219
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, 0, 0, 0, 0, 0, @AMT_EXE, 0, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3220
|
END
|
3221
|
IF(@MONTH_RATE = 'M7')
|
3222
|
BEGIN
|
3223
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3224
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, 0, 0, 0, 0, 0, 0, @AMT_EXE, 0, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3225
|
END
|
3226
|
IF(@MONTH_RATE = 'M8')
|
3227
|
BEGIN
|
3228
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3229
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, 0, 0, 0, 0, 0, 0, 0, @AMT_EXE, 0, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3230
|
END
|
3231
|
IF(@MONTH_RATE = 'M9')
|
3232
|
BEGIN
|
3233
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3234
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, 0, 0, 0, 0, 0, 0, 0, 0, @AMT_EXE, 0, 0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3235
|
END
|
3236
|
IF(@MONTH_RATE = 'M10')
|
3237
|
BEGIN
|
3238
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3239
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, 0, 0, 0, 0, 0, 0, 0, 0, 0, @AMT_EXE,0, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3240
|
END
|
3241
|
IF(@MONTH_RATE = 'M11')
|
3242
|
BEGIN
|
3243
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3244
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @AMT_EXE, 0, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3245
|
END
|
3246
|
IF(@MONTH_RATE = 'M12')
|
3247
|
BEGIN
|
3248
|
INSERT INTO TR_REQ_BUDGET_MONTH_LIMIT_DETAIL(BUDGET_MONTH_LIMIT_DETAIL_ID, REQ_PAY_ID, GD_ID , BRANCH_ID,DEP_ID, BUDGET_YEAR, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, MAKER_ID, CREATE_DT, RECORD_STATUS, AUTH_STATUS, CHECKER_ID , APPROVE_DT, BRANCH_KIND, BUDG_ID)
|
3249
|
VALUES(@l_BUDGET_LIMIT_MONTH_DETAIL_ID, @p_REQ_PAY_ID, @GD_ID, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @YEAR_RATE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @AMT_EXE, @p_MAKER_ID, GETDATE(), '1', 'A', NULL, NULL, @BRANCH_KIND, @p_BUDGET_ID)
|
3250
|
END
|
3251
|
-- END VALIDATE
|
3252
|
|
3253
|
-- CHECK HẠN MỨC
|
3254
|
print '@GD_ID: ' + @GD_ID;
|
3255
|
print '@GD_CODE: ' + @GD_CODE;
|
3256
|
print '@l_BRANCH_TYPE: ' + @l_BRANCH_TYPE;
|
3257
|
print '@YEAR_RATE: ' + @YEAR_RATE;
|
3258
|
print '@MONTH_RATE: ' + @MONTH_RATE;
|
3259
|
print '@BRANCH_KIND: ' + @BRANCH_KIND;
|
3260
|
print '@BRANCH_TAKE_COST_ID: ' + @BRANCH_TAKE_COST_ID;
|
3261
|
print '@DEP_TAKE_COST_ID: ' + @DEP_TAKE_COST_ID;
|
3262
|
EXEC TR_BUDGET_CHECK_LIMIT_MONTH_Byid @GD_ID, @GD_CODE ,@l_BRANCH_TYPE, @YEAR_RATE , @MONTH_RATE, @BRANCH_KIND, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID , @l_BUDGET_LIMIT_CURRENT out, @l_BUDGET_USED_CURRENT out
|
3263
|
IF(@l_BUDGET_LIMIT_CURRENT < @l_BUDGET_USED_CURRENT)
|
3264
|
BEGIN
|
3265
|
ROLLBACK TRANSACTION
|
3266
|
--SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Số tiền sử dụng ngân sách vượt quá định mức ngân sách. Hạn mức hiện tại là ' + FORMAT(@l_BUDGET_LIMIT_CURRENT,'#,#', 'vi-VN') + N', số tiền đã sử dụng đến hiện tại là ' + FORMAT(@l_BUDGET_USED_CURRENT,'#,#', 'vi-VN') ErrorDesc
|
3267
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin hạng mục ngân sách và chi phí, dòng '+ CONVERT(NVARCHAR(5),@INDEX_NS)+ N': Số tiền sử dụng ngân sách vượt quá định mức ngân sách.' ErrorDesc
|
3268
|
RETURN '-1'
|
3269
|
END
|
3270
|
END
|
3271
|
--END CHECK HAN MUC NGAN SACH CHI PHI THEO THANG
|
3272
|
END
|
3273
|
-- END VALIDATE
|
3274
|
|
3275
|
FETCH NEXT FROM XmlDataGood INTO @TRADE_ID,@GD_ID , @GD_CODE, @AMT_APP ,@AMT_DO,@AMT_EXE ,@AMT_REMAIN_GD,@CURRENCY,
|
3276
|
@RATE,@REASON,@TYPE_COST, @FR_LEVEL,@TO_LEVEL, @MONTH_RATE, @YEAR_RATE, @BUDGET_TYPE, @BRANCH_ID , @DEP_ID, @MONTH, @YEAR, @BRANCH_TYPE, @KHOI_ID, @TLNAME, @RoleName, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @BRANCH_KIND
|
3277
|
END;
|
3278
|
CLOSE XmlDataGood;
|
3279
|
DEALLOCATE XmlDataGood;
|
3280
|
-- END THONG TIN HAMG MUC NGAN SACH VA CHI PHI
|
3281
|
|
3282
|
|
3283
|
-- BEGIN THONG TIN PHUONG THUC THANH TOAN
|
3284
|
-- DELETE
|
3285
|
DELETE FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
3286
|
--DECLARE
|
3287
|
DECLARE @RECEIVE_ID varchar(15),@RECEIVE_NAME nvarchar(100),@REQ_PAY_REASON nvarchar(MAX),@TOTAL_AMT_METHOD decimal(18,2), @REQ_PAY_TYPE varchar(1),@REQ_PAY_DESC nvarchar(MAX),
|
3288
|
@REQ_PAY_ENTRIES nvarchar(MAX),@CHECK_IN VARCHAR(15), @BANKCODE_NAPAS VARCHAR(20), @BANKCODE VARCHAR(20), @BANKNAME VARCHAR(250), @SUB_ISSUED_BY NVARCHAR(250), @RECEIVER_DEBIT VARCHAR(20)
|
3289
|
DECLARE @BRANCH_NAME_REC NVARCHAR(150) = '', @BRANCH_NAME_ISSUED_BY NVARCHAR(150) = '';
|
3290
|
-- SET
|
3291
|
SET @INDEX = 0
|
3292
|
-- DECLARE CURSOR
|
3293
|
DECLARE XmlDataMethod CURSOR FOR SELECT * FROM OPENXML(@hdocMethod, 'Root/XmlDataMethod',2)
|
3294
|
WITH(RECEIVE_ID varchar(15),RECEIVE_NAME nvarchar(100),REQ_PAY_REASON nvarchar(MAX),TOTAL_AMT decimal(18,2), REQ_PAY_TYPE varchar(1),REQ_PAY_DESC nvarchar(MAX),REQ_PAY_ENTRIES nvarchar(MAX),
|
3295
|
ACC_NO VARCHAR(250), ACC_NAME NVARCHAR(250),ISSUED_BY NVARCHAR(250), ISSUED_DT VARCHAR(20),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),CHECK_IN VARCHAR(15),TYPE_TRANSFER VARCHAR(15),
|
3296
|
BANKCODE_NAPAS VARCHAR(20), BANKCODE VARCHAR(20), BANKNAME NVARCHAR(250), SUB_ISSUED_BY NVARCHAR(250), RECEIVER_DEBIT NVARCHAR(20))
|
3297
|
-- BEGIN CURSOR THONG TIN PHUONG THUC THANH TOAN
|
3298
|
OPEN XmlDataMethod
|
3299
|
FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,
|
3300
|
@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO, @ACC_NAME,@ISSUED_BY, @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT
|
3301
|
WHILE @@fetch_status=0
|
3302
|
BEGIN
|
3303
|
-- SET
|
3304
|
SET @INDEX_METHOD = @INDEX_METHOD+1
|
3305
|
-- BEGIN VALIDATE
|
3306
|
IF(@p_TYPE_FUNCTION ='SEND')
|
3307
|
BEGIN
|
3308
|
|
3309
|
IF(@ACC_NO IS NULL OR @ACC_NO = '')
|
3310
|
BEGIN
|
3311
|
ROLLBACK TRANSACTION
|
3312
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_METHOD)+N': số tài khoản '+ N' không được để trống' ErrorDesc
|
3313
|
RETURN '-1'
|
3314
|
END
|
3315
|
|
3316
|
IF(@ISSUED_BY = '' OR @ISSUED_BY IS NULL)
|
3317
|
BEGIN
|
3318
|
ROLLBACK TRANSACTION
|
3319
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_METHOD)+N': Tên ngân hàng/nơi cấp CMND '+ N' không được để trống' ErrorDesc
|
3320
|
RETURN '-1'
|
3321
|
END
|
3322
|
|
3323
|
IF((@BANKCODE IS NULL OR @BANKCODE = '') AND @CHECK_IN = 'O')
|
3324
|
BEGIN
|
3325
|
ROLLBACK TRANSACTION
|
3326
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_METHOD)+N': Loại tài khoản là ngoài hệ thống! Vui lòng chọn lại Tên ngân hàng/nơi cấp CMND từ danh sách!' ErrorDesc
|
3327
|
RETURN '-1'
|
3328
|
END
|
3329
|
|
3330
|
IF((SELECT ISNULL(BANKNAME, '') FROM BANK_OUTSIDE WHERE BANKCODE = @BANKCODE) <> ISNULL(@ISSUED_BY, '') AND @CHECK_IN = 'O')
|
3331
|
BEGIN
|
3332
|
ROLLBACK TRANSACTION
|
3333
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_METHOD)+N': Loại tài khoản là ngoài hệ thống! Tên tài khoản không hợp lệ, vui lòng chọn lại Tên ngân hàng/nơi cấp CMND từ danh sách!' ErrorDesc
|
3334
|
RETURN '-1'
|
3335
|
END
|
3336
|
|
3337
|
IF(@REQ_PAY_TYPE = '1' AND (@ISSUED_DT = '' OR @ISSUED_DT IS NULL))
|
3338
|
BEGIN
|
3339
|
ROLLBACK TRANSACTION
|
3340
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_METHOD)+N': Ngày cấp CMND '+ N' không được để trống nếu phương thức thanh toán là bằng tiền mặt' ErrorDesc
|
3341
|
RETURN '-1'
|
3342
|
END
|
3343
|
|
3344
|
IF(@ACC_NAME = '' OR @ACC_NAME IS NULL)
|
3345
|
BEGIN
|
3346
|
ROLLBACK TRANSACTION
|
3347
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_METHOD)+N': Tên tài khoản/người nhận '+ N' không được để trống' ErrorDesc
|
3348
|
RETURN '-1'
|
3349
|
END
|
3350
|
|
3351
|
IF(ISNULL(@CHECK_IN, '') = 'I' AND (LEFT(@ISSUED_BY, 3) <> 'BVB' OR LEN(@ISSUED_BY) < 7))
|
3352
|
BEGIN
|
3353
|
ROLLBACK TRANSACTION
|
3354
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_METHOD)+N': Tên ngân hàng/nơi cấp CMND '+ N' không hợp lệ! Với loại tài khoản trong hệ thống, vui lòng chọn ngân hàng từ danh sách tại cột "Tên ngân hàng/nơi cấp CMND"' ErrorDesc
|
3355
|
RETURN '-1'
|
3356
|
END
|
3357
|
|
3358
|
SET @BRANCH_NAME_REC = ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_CODE = LEFT(@ACC_NO, 3)), '');
|
3359
|
SET @BRANCH_NAME_ISSUED_BY = ISNULL(STUFF(@ISSUED_BY, 1, 6, ''),'')
|
3360
|
IF(ISNULL(@CHECK_IN, '') = 'I' AND @BRANCH_NAME_REC <> @BRANCH_NAME_ISSUED_BY AND LEN(@ACC_NO) = 13)
|
3361
|
BEGIN
|
3362
|
ROLLBACK TRANSACTION
|
3363
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_METHOD)+N': Tên ngân hàng/nơi cấp CMND '+ N' không hợp lệ! Vui lòng chọn đúng chi nhánh ngân hàng ứng với số tài khoản từ danh sách tại cột "Tên ngân hàng/nơi cấp CMND"' ErrorDesc
|
3364
|
RETURN '-1'
|
3365
|
END
|
3366
|
IF(ISNULL(@CHECK_IN, '') = 'O' AND @TYPE_TRANSFER = 'R')
|
3367
|
BEGIN
|
3368
|
ROLLBACK TRANSACTION
|
3369
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX_METHOD)+N': Với hình thức thanh toán là Trích từ tài khoản, Loại tài khoản phải là Trong hệ thống' ErrorDesc
|
3370
|
RETURN '-1'
|
3371
|
END
|
3372
|
END
|
3373
|
-- END VALIDATE
|
3374
|
IF(@REQ_PAY_TYPE<>'1')
|
3375
|
BEGIN
|
3376
|
SET @ISSUED_DT = NULL
|
3377
|
END
|
3378
|
IF(@TYPE_TRANSFER IS NULL OR @TYPE_TRANSFER ='')
|
3379
|
BEGIN
|
3380
|
SET @TYPE_TRANSFER = 'A'
|
3381
|
END
|
3382
|
|
3383
|
DECLARE @p_REQ_PAY_METHOD_ID VARCHAR(15);
|
3384
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_METHOD', @p_REQ_PAY_METHOD_ID OUT;
|
3385
|
IF @p_REQ_PAY_METHOD_ID='' OR @p_REQ_PAY_METHOD_ID IS NULL GOTO ABORT;
|
3386
|
INSERT INTO TR_REQ_PAY_METHOD(METHOD_ID, REQ_PAY_ID, EMP_ID, REQ_PAY_REASON, TOTAL_AMT, REQ_PAY_TYPE, REQ_PAY_DESC, REQ_PAY_ENTRIES, TEMP, MAKER_ID, CREATE_DT, ACC_NO, ACC_NAME, ISSUED_BY, ISSUED_DT, CURRENCY, RATE, CHECK_IN, TYPE_TRANSFER, BANKCODE_NAPAS, BANKCODE, BANKNAME, SUB_ISSUED_BY, RECEIVER_DEBIT)
|
3387
|
VALUES (@p_REQ_PAY_METHOD_ID,@p_REQ_PAY_ID,@RECEIVE_ID,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,'',@p_MAKER_ID,GETDATE(),@ACC_NO, @ACC_NAME,@ISSUED_BY,CONVERT(DATE,@ISSUED_DT,103), @p_REQ_TYPE_CURRENCY , @p_RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT)
|
3388
|
IF @@error<>0 GOTO ABORT;
|
3389
|
FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,
|
3390
|
@ACC_NO, @ACC_NAME,@ISSUED_BY, @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT
|
3391
|
END
|
3392
|
CLOSE XmlDataMethod;
|
3393
|
DEALLOCATE XmlDataMethod;
|
3394
|
-- END CURSOR THONG TIN PHUONG THUC THANH TOAN
|
3395
|
-- END THONG TIN PHUONG THUC THANH TOAN
|
3396
|
|
3397
|
-- BEGIN THONG TIN HOP DONG DINH KEM & THONG TIN CHUNG TU KHAC DINH KEM
|
3398
|
-- DELETE
|
3399
|
DELETE FROM TR_REQ_PAY_ATTACH WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
3400
|
-- DECLARE
|
3401
|
DECLARE @ATTACH_ID varchar(15),@CON_ID varchar(100),@CONT_CODE VARCHAR(50), @CON_NOTES VARCHAR(1000), @CON_DESC NVARCHAR(1000),@CON_TYPE VARCHAR(15),@AMT_ATT DECIMAL(18,2),@REF_DT VARCHAR(20), @LICENSE_DT VARCHAR(15)
|
3402
|
-- DECLARE CURSOR
|
3403
|
DECLARE XmlAttach CURSOR FOR SELECT * FROM OPENXML(@hdocAttach, 'Root/XmlAttach',2)
|
3404
|
WITH(ATTACH_ID varchar(15),CON_ID varchar(100),CONT_CODE VARCHAR(50), CON_NOTES NVARCHAR(1000), CON_DESC NVARCHAR(1000),CON_TYPE VARCHAR(15),AMT_ATT DECIMAL(18,2),REF_DT VARCHAR(20), LICENSE_DT VARCHAR(15))
|
3405
|
-- BEGIN CURSOR THONG TIN CHUNG TU KHAC DINH KEM
|
3406
|
OPEN XmlAttach
|
3407
|
FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES,@CON_DESC,@CON_TYPE,@AMT_ATT,@REF_DT, @LICENSE_DT
|
3408
|
WHILE @@fetch_status=0
|
3409
|
BEGIN
|
3410
|
|
3411
|
IF (@REF_DT='')
|
3412
|
BEGIN
|
3413
|
SET @REF_DT = NULL
|
3414
|
END
|
3415
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ATTACH', @ATTACH_ID OUT;
|
3416
|
IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT;
|
3417
|
INSERT INTO TR_REQ_PAY_ATTACH(ATTACH_ID,REQ_PAY_ID,REF_ID,REF_CODE,NOTES,[DESCRIPTION],[TYPE],[AMT],REF_DT, LICENSE_DT) VALUES
|
3418
|
(@ATTACH_ID,@p_REQ_PAY_ID,@CON_ID,@CONT_CODE,@NOTES,@CON_DESC,@CON_TYPE,@AMT_ATT,CONVERT(DATE,@REF_DT,103) ,CONVERT(DATE, @LICENSE_DT,103))
|
3419
|
IF @@error<>0 GOTO ABORT;
|
3420
|
FETCH NEXT FROM XmlAttach INTO @ATTACH_ID,@CON_ID,@CONT_CODE,@NOTES,@CON_DESC,@CON_TYPE,@AMT_ATT,@REF_DT, @LICENSE_DT
|
3421
|
END
|
3422
|
CLOSE XmlAttach;
|
3423
|
DEALLOCATE XmlAttach;
|
3424
|
-- END THONG TIN HOP DONG DINH KEM & THONG TIN CHUNG TU KHAC DINH KEM
|
3425
|
|
3426
|
------------------------
|
3427
|
-- NEU LA THANH TOAN HOAN TAM UNG
|
3428
|
IF(@p_REQ_TYPE = 'I')
|
3429
|
BEGIN
|
3430
|
-- DELETE
|
3431
|
DELETE FROM TR_REQ_PAYMENT_DT WHERE PAY_ID = @p_REQ_PAY_ID
|
3432
|
|
3433
|
DECLARE XmlDataPay CURSOR FOR SELECT * FROM OPENXML(@hDoc2, '/Root/XmlDataPay', 2)
|
3434
|
WITH(PAY_ADV_ID nvarchar(50),AMT_ADVANCED decimal(18, 0),AMT_DO decimal(18,2),
|
3435
|
AMT_REMAIN decimal(18,2),AMT_PAY decimal(18,2),AMT_USE decimal(18,2),AMT_REVERT DECIMAL(18,0),AMT_ADD DECIMAL(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2), TRN_DATE VARCHAR(15))
|
3436
|
-- BEGIN CURSOR THONG TIN PHIEU DE NGHI TAM UNG
|
3437
|
OPEN XmlDataPay;
|
3438
|
FETCH NEXT FROM XmlDataPay INTO @PAY_ADV_ID, @AMT_ADVANCED ,@AMT_DO,@AMT_REMAIN,@AMT_PAY ,@AMT_USE ,@AMT_REVERT,@AMT_ADD,@CURRENCY,@RATE, @TRN_DATE
|
3439
|
WHILE @@fetch_status=0
|
3440
|
BEGIN
|
3441
|
SET @INDEX_AD = @INDEX_AD +1
|
3442
|
SET @REQ_PAY_ADV_CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PAY_ADV_ID)
|
3443
|
-- BEGIN VALIDATE
|
3444
|
IF(@p_TYPE_FUNCTION ='SEND')
|
3445
|
BEGIN
|
3446
|
-- KIEM TRA XEM CO PHIEU NAO DANG DUOC THANH TOAN HOAN TAM UNG MA CHUA DUYET HAY CHUA
|
3447
|
--IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_DT WHERE (PAY_ADV_ID =@PAY_ADV_ID AND (AUTH_STATUS_KT <>'A' OR AUTH_STATUS_KT IS NULL)) AND PAY_ID <> @p_REQ_PAY_ID))
|
3448
|
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_DT WHERE (PAY_ADV_ID =@PAY_ADV_ID AND (AUTH_STATUS ='A' AND ISNULL(AUTH_STATUS_KT,'') <> 'A')) AND PAY_ID <> @p_REQ_PAY_ID))
|
3449
|
BEGIN
|
3450
|
ROLLBACK TRANSACTION
|
3451
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_AD)+ N': Phiếu tạm ứng số '+@REQ_PAY_ADV_CODE+ N' đang được thanh toán hoàn tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
3452
|
RETURN '-1'
|
3453
|
END
|
3454
|
|
3455
|
-- KIEM TRA NEU SO TIEN DE NGHI HOAN TAM ƯNG LON HON SO TIEN CON LAI CAN PHAI TAM UNG
|
3456
|
IF(@AMT_REVERT>(@AMT_REMAIN -@AMT_USE) AND @AMT_REVERT >0)
|
3457
|
BEGIN
|
3458
|
ROLLBACK TRANSACTION
|
3459
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_AD)+ N': Số tiền hoàn ứng không được vượt quá '+FORMAT((@AMT_REMAIN -@AMT_USE),'#,#', 'vi-VN') ErrorDesc
|
3460
|
RETURN '-1'
|
3461
|
END
|
3462
|
--KIEM TRA NEU SO PHIEU TAM UNG NAY DA THANH TOAN XONG THI KHONG CHO PHEP DUYET
|
3463
|
IF((SELECT A.REQ_AMT - A.PAY_AMT FROM TR_REQ_ADVANCE_PAYMENT A WHERE A.REQ_PAY_ID = @PAY_ADV_ID)<=0)
|
3464
|
BEGIN
|
3465
|
ROLLBACK TRANSACTION
|
3466
|
SELECT '-1' Result,'' REQ_PAY_ID,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_AD)+ N': Phiếu tạm ứng này đã được hoàn tạm ứng xong. Vui lòng xóa khỏi danh sách hoàn tạm ứng' ErrorDesc
|
3467
|
RETURN '-1'
|
3468
|
END
|
3469
|
|
3470
|
END
|
3471
|
-- END VALIDATE
|
3472
|
DECLARE @p_REQ_PAYDT_ID VARCHAR(15);
|
3473
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT_DT', @p_REQ_PAYDT_ID OUT;
|
3474
|
IF @p_REQ_PAYDT_ID='' OR @p_REQ_PAYDT_ID IS NULL GOTO ABORT;
|
3475
|
INSERT INTO TR_REQ_PAYMENT_DT
|
3476
|
VALUES (@p_REQ_PAYDT_ID,@PAY_ADV_ID,@p_REQ_PAY_ID , ISNULL(@AMT_ADVANCED,0) ,ISNULL(@AMT_DO,0),ISNULL(@AMT_REMAIN,0),
|
3477
|
ISNULL(ISNULL(@AMT_USE,0) + ISNULL(@AMT_REVERT,0) - ISNULL(@AMT_ADD,0),0) ,ISNULL(@AMT_USE,0) ,ISNULL(@AMT_REVERT,0), ISNULL(@AMT_ADD,0), CONVERT(DATE,@TRN_DATE,103) ,@p_MAKER_ID ,GETDATE() ,NULL ,NULL,'U' ,NULL ,NULL ,NULL ,NULL,NULL, @p_REQ_TYPE_CURRENCY , @p_RATE)
|
3478
|
IF @@error<>0 GOTO ABORT;
|
3479
|
FETCH NEXT FROM XmlDataPay INTO @PAY_ADV_ID, @AMT_ADVANCED ,@AMT_DO,@AMT_REMAIN,@AMT_PAY ,@AMT_USE ,@AMT_REVERT,@AMT_ADD,@CURRENCY,@RATE, @TRN_DATE
|
3480
|
END
|
3481
|
CLOSE XmlDataPay;
|
3482
|
DEALLOCATE XmlDataPay;
|
3483
|
--END CURSOR THONG TIN PHIEU DE NGHI TAM UNG
|
3484
|
--------------------------------------------------------------------------------------------------------------------
|
3485
|
--INSERT FROM CatCursor
|
3486
|
--DELETE
|
3487
|
DELETE FROM TR_REQ_PAY_CAT WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
3488
|
--CatCursor
|
3489
|
DECLARE @REQ_ADV_ID varchar(15),@CAT_NAME nvarchar(100),@TOTAL_AMT_CAT decimal(18,2), @DEPT_ID VARCHAR(15)
|
3490
|
DECLARE XmlDataCat CURSOR FOR
|
3491
|
SELECT * FROM OPENXML(@hdoc, 'Root/XmlDataCat',2)
|
3492
|
WITH(REQ_ADV_ID VARCHAR(15),CAT_NAME nvarchar(100),TOTAL_AMT decimal(18,2), DEPT_ID VARCHAR(15),CURRENCY VARCHAR(15), RATE DECIMAL(18,2))
|
3493
|
OPEN XmlDataCat
|
3494
|
FETCH NEXT FROM XmlDataCat INTO @REQ_ADV_ID,@CAT_NAME,@TOTAL_AMT_CAT,@DEPT_ID,@CURRENCY,@RATE
|
3495
|
WHILE @@fetch_status=0
|
3496
|
BEGIN
|
3497
|
SET @INDEX = @INDEX +1
|
3498
|
DECLARE @p_REQ_PAY_CAT_ID VARCHAR(15);
|
3499
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_CAT', @p_REQ_PAY_CAT_ID OUT;
|
3500
|
IF @p_REQ_PAY_CAT_ID='' OR @p_REQ_PAY_CAT_ID IS NULL GOTO ABORT;
|
3501
|
INSERT INTO TR_REQ_PAY_CAT
|
3502
|
VALUES (@p_REQ_PAY_CAT_ID,@p_REQ_PAY_ID,@REQ_ADV_ID,@CAT_NAME,@TOTAL_AMT_CAT,@DEPT_ID,@p_MAKER_ID,GETDATE(), @p_REQ_TYPE_CURRENCY , @p_RATE)
|
3503
|
IF @@error<>0 GOTO ABORT;
|
3504
|
FETCH NEXT FROM XmlDataCat INTO @REQ_ADV_ID,@CAT_NAME,@TOTAL_AMT_CAT,@DEPT_ID,@CURRENCY,@RATE
|
3505
|
END
|
3506
|
CLOSE XmlDataCat;
|
3507
|
DEALLOCATE XmlDataCat;
|
3508
|
END
|
3509
|
-- NEU LA THANH TOAN KHAC
|
3510
|
IF(@p_REQ_TYPE = 'D' OR @p_REQ_TYPE ='I')
|
3511
|
BEGIN
|
3512
|
-- DELETE
|
3513
|
DELETE FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
3514
|
-- DECLARE
|
3515
|
DECLARE @SUM_TTCT_LINK DECIMAL(18,0), @SUM_TT_CT DECIMAL(18,0), @SUM_KUY_KE_TT DECIMAL(18,0),@SUM_PYCMS_LINK DECIMAL(18,0),
|
3516
|
@PYCMS_CODE_LIST VARCHAR(MAX), @PYCMS_CODE_DRAFT_LIST VARCHAR(MAX), @PDNTT_CODE_LIST VARCHAR(MAX), @PDNTT_CODE_DRAFT_LIST VARCHAR(MAX)
|
3517
|
DECLARE @REQ_PAY_SERVICE_NAME nvarchar(100),@RECEIVE_ID_SERVICE varchar(15),@RECEIVE_NAME_SERVICE nvarchar(100),@REQ_PAY_REASON_SERVICE nvarchar(MAX), @TOTAL_AMT_SERVICE decimal(18,2),
|
3518
|
@REQ_PAY_TYPE_SERVICE varchar(1),@REQ_PAY_DESC_SERVICE nvarchar(MAX),@REQ_PAY_ENTRIES_SERVICE nvarchar(MAX),@DEPT_ID_SRV VARCHAR(15)
|
3519
|
-- SET
|
3520
|
SET @SUM_KUY_KE_TT=0
|
3521
|
SET @INDEX = 0
|
3522
|
-- DECLARE CURSOR
|
3523
|
DECLARE XmlDataService CURSOR FOR SELECT * FROM OPENXML(@hdocService, 'Root/XmlDataService',2)
|
3524
|
WITH(REQ_PAY_SERVICE_NAME nvarchar(100),RECEIVE_ID_SERVICE varchar(15),RECEIVE_NAME_SERVICE nvarchar(100),REQ_PAY_REASON_SERVICE nvarchar(MAX),
|
3525
|
TOTAL_AMT_SERVICE decimal(18,2),REQ_PAY_TYPE_SERVICE varchar(1),REQ_PAY_DESC_SERVICE nvarchar(MAX),REQ_PAY_ENTRIES_SERVICE nvarchar(MAX),
|
3526
|
DEPT_ID VARCHAR(15),CURRENCY VARCHAR(15), RATE DECIMAL(18,2))
|
3527
|
-- BEGIN CURSOR THONG TIN CAC DICH VU THANH TOAN
|
3528
|
OPEN XmlDataService
|
3529
|
FETCH NEXT FROM XmlDataService INTO @REQ_PAY_SERVICE_NAME,@RECEIVE_ID_SERVICE,@RECEIVE_NAME_SERVICE,@REQ_PAY_REASON_SERVICE,@TOTAL_AMT_SERVICE,
|
3530
|
@REQ_PAY_TYPE_SERVICE,@REQ_PAY_DESC_SERVICE,@REQ_PAY_ENTRIES_SERVICE,@DEPT_ID_SRV,@CURRENCY,@RATE
|
3531
|
WHILE @@fetch_status=0
|
3532
|
BEGIN
|
3533
|
SET @INDEX = @INDEX +1
|
3534
|
SET @SUM_TTCT_LINK =(SELECT SUM(TOTAL_AMT*ISNULL(RATE,1)) FROM TR_REQ_PAY_SERVICE WHERE
|
3535
|
REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT) AND REQ_PAY_ID <> @p_REQ_PAY_ID AND EMP_ID =@RECEIVE_ID_SERVICE)
|
3536
|
SET @SUM_PYCMS_LINK =ISNULL((SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@RECEIVE_ID_SERVICE),0)
|
3537
|
SET @SUM_TT_CT =(SELECT ISNULL(TOTAL_AMT,0) FROM PL_REQUEST_DOC WHERE REQ_ID =@RECEIVE_ID_SERVICE)
|
3538
|
SET @PYCMS_CODE_LIST = (select STUFF( (select '; ' + DTA.REQ_CODE FROM TR_REQUEST_DOC DTA WHERE PL_REQ_ID =@RECEIVE_ID_SERVICE
|
3539
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
3540
|
SET @PYCMS_CODE_DRAFT_LIST = (select STUFF( (select '; ' + DTA.REQ_CODE FROM TR_REQUEST_DOC DTA WHERE PL_REQ_ID =@RECEIVE_ID_SERVICE AND AUTH_STATUS = 'E'
|
3541
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
3542
|
SET @PDNTT_CODE_LIST = (select STUFF( (select '; ' + DTA.REQ_PAY_CODE FROM TR_REQ_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAY_SERVICE WHERE EMP_ID =@RECEIVE_ID_SERVICE) AND REQ_PAY_ID <> @p_REQ_PAY_ID
|
3543
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
3544
|
SET @PDNTT_CODE_DRAFT_LIST = (select STUFF( (select '; ' + DTA.REQ_PAY_CODE FROM TR_REQ_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAY_SERVICE WHERE EMP_ID =@RECEIVE_ID_SERVICE) AND REQ_PAY_ID <> @p_REQ_PAY_ID AND AUTH_STATUS IN('E', 'R')
|
3545
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
3546
|
--------------- BEGIN VALIDATE --------------
|
3547
|
IF(@p_TYPE_FUNCTION ='SEND')
|
3548
|
BEGIN
|
3549
|
IF(@DEPT_ID_SRV IS NULL OR @DEPT_ID_SRV ='')
|
3550
|
BEGIN
|
3551
|
ROLLBACK TRANSACTION
|
3552
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin các dịch vụ thanh toán, dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N': Phòng ban chịu chi phí không được để trống' ErrorDesc
|
3553
|
RETURN '-1'
|
3554
|
END
|
3555
|
|
3556
|
IF(@TOTAL_AMT_SERVICE IS NULL)
|
3557
|
BEGIN
|
3558
|
ROLLBACK TRANSACTION
|
3559
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin các dịch vụ thanh toán, dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N': Số tiền thanh toán không được để trống' ErrorDesc
|
3560
|
RETURN '-1'
|
3561
|
END
|
3562
|
|
3563
|
IF(@TOTAL_AMT_SERVICE < 0)
|
3564
|
BEGIN
|
3565
|
ROLLBACK TRANSACTION
|
3566
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin các dịch vụ thanh toán, dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N': Số tiền thanh toán không thể nhỏ hơn 0' ErrorDesc
|
3567
|
RETURN '-1'
|
3568
|
END
|
3569
|
|
3570
|
IF(((ISNULL(@SUM_TTCT_LINK,0) +ISNULL(@SUM_PYCMS_LINK,0) + ISNULL(@TOTAL_AMT_SERVICE,0)) > ISNULL(@SUM_TT_CT,0)) AND @RECEIVE_ID_SERVICE IS NOT NULL AND @RECEIVE_ID_SERVICE <> '')
|
3571
|
BEGIN
|
3572
|
ROLLBACK TRANSACTION
|
3573
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE,
|
3574
|
N'Dòng '+ CONVERT(VARCHAR(5),@INDEX)+N': Thông tin chi tiết về hạn mức sử dụng của tờ trình số: '+(SELECT TOP 1 ISNULL(REQ_CODE,'') FROM PL_REQUEST_DOC WHERE REQ_ID =@RECEIVE_ID_SERVICE)+N' như sau:'
|
3575
|
+ CHAR(10) +
|
3576
|
N'</br>* Số tiền các phiếu yêu cầu mua sắm số:'+ISNULL(@PYCMS_CODE_LIST,'')+N' đã sử dụng: '+FORMAT(ISNULL(@SUM_PYCMS_LINK,0),'#,#', 'vi-VN') +' VND'+
|
3577
|
+ CHAR(10) +
|
3578
|
N'</br>* Số tiền ở các phiếu thanh toán số: '+ISNULL(@PDNTT_CODE_LIST,'')+N' đã sử dụng: '+ FORMAT(ISNULL(@SUM_TTCT_LINK,0),'#,#', 'vi-VN') +' VND'
|
3579
|
+ CHAR(10) +
|
3580
|
N'</br>* Bạn đang thanh toán cho phiếu này với số tiền: '+ FORMAT(ISNULL(@TOTAL_AMT_SERVICE,0),'#,#', 'vi-VN') +' VND'
|
3581
|
+ CHAR(10) +
|
3582
|
N'</br>* Số tiền còn lại được phép thanh toán là: '+FORMAT(ISNULL(@SUM_TT_CT,0) -ISNULL(@SUM_TTCT_LINK,0) -ISNULL(@SUM_PYCMS_LINK,0),'#,#', 'vi-VN') +' VND'
|
3583
|
+ CHAR(10) +
|
3584
|
N'</br>* Chú ý những PYCMS sau đang lưu nháp & ăn ngân sách, vui lòng kiểm tra và xóa PYCMS: ' + ISNULL(@PYCMS_CODE_DRAFT_LIST,'')
|
3585
|
+ CHAR(10) +
|
3586
|
N'</br>* Chú ý những PDN thanh toán sau đang lưu nháp hoặc từ chối & ăn ngân sách, vui lòng kiểm tra và xóa PDN thanh toán: ' + ISNULL(@PDNTT_CODE_DRAFT_LIST,'') ErrorDesc
|
3587
|
RETURN '-1'
|
3588
|
END
|
3589
|
END
|
3590
|
--------------- END VALIDATE ----------------
|
3591
|
--IF(@RECEIVE_ID_SERVICE IS NOT NULL AND @RECEIVE_ID_SERVICE <> '')
|
3592
|
--BEGIN
|
3593
|
-- SET @SUM_PYCMS_LINK = @SUM_PYCMS_LINK +@TOTAL_AMT_SERVICE
|
3594
|
--END
|
3595
|
--SET @SUM_KUY_KE_TT = @SUM_KUY_KE_TT + @TOTAL_AMT_SERVICE
|
3596
|
|
3597
|
DECLARE @p_REQ_PAY_SERVICE_ID VARCHAR(15);
|
3598
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_SERVICE', @p_REQ_PAY_SERVICE_ID OUT;
|
3599
|
IF @p_REQ_PAY_SERVICE_ID='' OR @p_REQ_PAY_SERVICE_ID IS NULL GOTO ABORT;
|
3600
|
INSERT INTO TR_REQ_PAY_SERVICE(SERVICE_ID,REQ_PAY_ID,[SERVICE_NAME],EMP_ID,REQ_PAY_REASON,TOTAL_AMT,REQ_PAY_TYPE,REQ_PAY_DESC,REQ_PAY_ENTRIES,MAKER_ID,CREATE_DT,DEPT_ID,CURRENCY,RATE)
|
3601
|
VALUES (@p_REQ_PAY_SERVICE_ID,@p_REQ_PAY_ID,@REQ_PAY_SERVICE_NAME,@RECEIVE_ID_SERVICE,@REQ_PAY_REASON_SERVICE,@TOTAL_AMT_SERVICE,
|
3602
|
@REQ_PAY_TYPE_SERVICE,@REQ_PAY_DESC_SERVICE,@REQ_PAY_ENTRIES_SERVICE,@p_MAKER_ID,GETDATE(),@DEPT_ID_SRV, @p_REQ_TYPE_CURRENCY , @p_RATE)
|
3603
|
IF @@error<>0 GOTO ABORT;
|
3604
|
FETCH NEXT FROM XmlDataService INTO @REQ_PAY_SERVICE_NAME,@RECEIVE_ID_SERVICE,@RECEIVE_NAME_SERVICE,@REQ_PAY_REASON_SERVICE,@TOTAL_AMT_SERVICE,@REQ_PAY_TYPE_SERVICE,
|
3605
|
@REQ_PAY_DESC_SERVICE,@REQ_PAY_ENTRIES_SERVICE,@DEPT_ID_SRV,@CURRENCY,@RATE
|
3606
|
END
|
3607
|
CLOSE XmlDataService;
|
3608
|
DEALLOCATE XmlDataService;
|
3609
|
-- BEGIN CURSOR THONG TIN CAC DICH VU THANH TOAN
|
3610
|
END
|
3611
|
IF((@p_REQ_TYPE = 'P' AND (@p_IS_PERIOD <>'Y' OR @p_IS_PERIOD IS NULL)) OR (@p_REQ_TYPE = 'P' AND @p_IS_PERIOD = 'Y') OR @p_REQ_TYPE ='I')
|
3612
|
BEGIN
|
3613
|
DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
3614
|
END
|
3615
|
-- NEU LA THANH TOAN PO HOP DONG
|
3616
|
IF((@p_REQ_TYPE = 'P' AND (@p_IS_PERIOD <>'Y' OR @p_IS_PERIOD IS NULL)) OR @p_REQ_TYPE ='I')
|
3617
|
BEGIN
|
3618
|
-- DELETE
|
3619
|
--DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
3620
|
/*
|
3621
|
IF(@p_REQ_TYPE = 'P' AND (@p_IS_PERIOD <>'Y' OR @p_IS_PERIOD IS NULL))
|
3622
|
BEGIN
|
3623
|
DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
3624
|
END
|
3625
|
*/
|
3626
|
-- DECLARE
|
3627
|
DECLARE @INDEX_PO INT, @REF_ID VARCHAR(15),@IS_CLOSED VARCHAR(1)
|
3628
|
--SET
|
3629
|
SET @INDEX_PO = 0
|
3630
|
-- DECLARE CURSOR
|
3631
|
DECLARE XmlDataPO CURSOR FOR SELECT * FROM OPENXML(@hdocPO, '/Root/XmlDataPO', 2)
|
3632
|
WITH(REF_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15))
|
3633
|
-- BEGIN CURSOR THÔNG TIN PO/ HOP DONG
|
3634
|
OPEN XmlDataPO;
|
3635
|
FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE
|
3636
|
WHILE @@fetch_status=0
|
3637
|
BEGIN
|
3638
|
-- SET
|
3639
|
SET @INDEX_PO = @INDEX_PO +1
|
3640
|
-- BEGIN VALIDATE
|
3641
|
IF(@p_TYPE_FUNCTION ='SEND')
|
3642
|
BEGIN
|
3643
|
DECLARE @PDN_TAMUNG_LIST VARCHAR(4000) --- LUCTV 19.10.2022
|
3644
|
-- KIEM TRA PO DUOC DUYET HAY CHUA
|
3645
|
--IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE PO_ID =@REF_ID AND AUTH_STATUS <>'A'))
|
3646
|
--BEGIN
|
3647
|
--ROLLBACK TRANSACTION
|
3648
|
-- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin PO/ hợp đồng, dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+
|
3649
|
-- (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' chưa được phê duyệt. Vui lòng phê duyệt PO trước khi tạo phiếu thanh toán' ErrorDesc
|
3650
|
-- RETURN '-1'
|
3651
|
--END
|
3652
|
---- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
3653
|
--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='C'
|
3654
|
--AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL)))
|
3655
|
--BEGIN
|
3656
|
-- ROLLBACK TRANSACTION
|
3657
|
-- SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Thông tin PO/ hợp đồng, dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+
|
3658
|
-- (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
3659
|
-- RETURN '-1'
|
3660
|
--END
|
3661
|
---- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
3662
|
--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='C'
|
3663
|
--AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID))
|
3664
|
--BEGIN
|
3665
|
-- ROLLBACK TRANSACTION
|
3666
|
-- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin PO/ hợp đồng, dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+
|
3667
|
-- (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
3668
|
-- RETURN '-1'
|
3669
|
--END
|
3670
|
---- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
3671
|
--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P'
|
3672
|
--AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT NOT IN ('A','E','R') OR AUTH_STATUS_KT IS NULL)))
|
3673
|
--BEGIN
|
3674
|
-- ROLLBACK TRANSACTION
|
3675
|
-- SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Thông tin PO/ hợp đồng, dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N':PO số '+
|
3676
|
-- (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
3677
|
-- RETURN '-1'
|
3678
|
--END
|
3679
|
---- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
3680
|
--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REF_ID IN (SELECT PO_ID FROM TR_PO_MASTER WHERE IS_CLOSED='Y')))
|
3681
|
--BEGIN
|
3682
|
-- ROLLBACK TRANSACTION
|
3683
|
-- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin PO/ hợp đồng, dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+
|
3684
|
-- (SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đã được thanh toán xong. Vui lòng chọn PO khác để tạm ứng hoặc xóa bản nháp này' ErrorDesc
|
3685
|
-- RETURN '-1'
|
3686
|
--END
|
3687
|
-- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
3688
|
--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='C' AND REQ_PAY_ID
|
3689
|
--IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL)))
|
3690
|
--BEGIN
|
3691
|
-- ROLLBACK TRANSACTION
|
3692
|
-- SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+
|
3693
|
-- (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
3694
|
-- RETURN '-1'
|
3695
|
--END
|
3696
|
---- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
3697
|
--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='C' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID))
|
3698
|
--BEGIN
|
3699
|
-- ROLLBACK TRANSACTION
|
3700
|
-- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+
|
3701
|
-- (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
3702
|
-- RETURN '-1'
|
3703
|
--END
|
3704
|
--IF(EXISTS(SELECT * FROM TR_REQ_PAY_SCHEDULE WHERE REF_ID =@REF_ID AND PAY_ID =@PAY_ID AND
|
3705
|
-- REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT<>'A' OR AUTH_STATUS_KT IS NULL) AND REQ_PAY_ID <>@p_REQ_PAY_ID))
|
3706
|
--BEGIN
|
3707
|
-- ROLLBACK TRANSACTION
|
3708
|
-- SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Hợp đồng số '+
|
3709
|
-- (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @REF_ID)+N' đang được thanh toán. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
3710
|
-- RETURN '-1'
|
3711
|
--END
|
3712
|
-- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
3713
|
SET @PDN_TAMUNG_LIST = (select STUFF( (select '; ' + DTA.REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT DTA WHERE REQ_PAY_ID IN
|
3714
|
(SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P') AND ISNULL(AUTH_STATUS_KT,'') NOT IN ('A','E','R')
|
3715
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
3716
|
--- VALIDATE PO DANG TRONG QUA TRINH TAM UNG
|
3717
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REQ_PAY_ID
|
3718
|
IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT NOT IN ('A','E','R') OR AUTH_STATUS_KT IS NULL)))
|
3719
|
BEGIN
|
3720
|
ROLLBACK TRANSACTION
|
3721
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N':PO số '+
|
3722
|
(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất.Danh sách phiếu tạm ứng đang sử dụng: '+ ISNULL(@PDN_TAMUNG_LIST,'') ErrorDesc
|
3723
|
RETURN '-1'
|
3724
|
END
|
3725
|
-- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
3726
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REF_ID IN (SELECT PO_ID FROM TR_PO_MASTER WHERE IS_CLOSED='Y')))
|
3727
|
BEGIN
|
3728
|
ROLLBACK TRANSACTION
|
3729
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+
|
3730
|
(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đã được thanh toán xong. Vui lòng chọn PO khác để tạm ứng hoặc xóa bản nháp này' ErrorDesc
|
3731
|
RETURN '-1'
|
3732
|
END
|
3733
|
END
|
3734
|
-- END VALIDATE
|
3735
|
DECLARE @REQ_PAYDTID VARCHAR(15);
|
3736
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID OUT;
|
3737
|
IF @REQ_PAYDTID='' OR @REQ_PAYDTID IS NULL GOTO ABORT;
|
3738
|
IF(LEFT(@REF_ID, 3) = 'TRC')
|
3739
|
BEGIN
|
3740
|
INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE)
|
3741
|
VALUES (@REQ_PAYDTID,@p_REQ_PAY_ID,@REF_ID,'PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED, 'C')
|
3742
|
END
|
3743
|
ELSE
|
3744
|
BEGIN
|
3745
|
INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE)
|
3746
|
VALUES (@REQ_PAYDTID,@p_REQ_PAY_ID,@REF_ID,'PAY',@p_MAKER_ID,GETDATE(),@IS_CLOSED, 'P')
|
3747
|
END
|
3748
|
|
3749
|
IF @@error<>0 GOTO ABORT;
|
3750
|
FETCH NEXT FROM XmlDataPO INTO @REF_ID,@IS_CLOSED,@REF_TYPE
|
3751
|
END
|
3752
|
CLOSE XmlDataPO;
|
3753
|
DEALLOCATE XmlDataPO;
|
3754
|
-- END CURSOR THÔNG TIN PO/ HOP DONG
|
3755
|
|
3756
|
-- DELETE
|
3757
|
DELETE FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
3758
|
-- DECLARE
|
3759
|
DECLARE @PO_ID VARCHAR(15), @PAY_PHASE NVARCHAR(250), @AMT_ADVANCE DECIMAL(18,2),
|
3760
|
@REQ_AD_DT VARCHAR(20),@PROCESS VARCHAR(15),@PAY_ID VARCHAR(15),@AMT_PAY_DO DECIMAL(18,2),@AMT_PAY_REAL DECIMAL(18,2)
|
3761
|
-- DECLARE CURSOR THONG TIN CHI TIET LICH THANH TOAN PO/ HOP DONG
|
3762
|
DECLARE XmlDataSchedule CURSOR FOR SELECT * FROM OPENXML(@hdocSchedule, 'Root/XmlDataSchedule',2)
|
3763
|
WITH(PO_ID VARCHAR(15),PAY_PHASE VARCHAR(15),AMT_PAY DECIMAL(18,2),REQ_ADV_ID VARCHAR(15), AMT_ADVANCE DECIMAL(18,2),
|
3764
|
AMT_REMAIN DECIMAL(18,2),REQ_AD_DT VARCHAR(20),PROCESS VARCHAR(15), PAY_ID VARCHAR(15),REF_ID VARCHAR(15),REQ_PAY_DESC NVARCHAR(250),
|
3765
|
REQ_PAY_ENTRIES NVARCHAR(250),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),AMT_PAY_DO DECIMAL(18,2),AMT_PAY_REAL DECIMAL(18,2))
|
3766
|
-- BEGIN CURSOR THONG TIN CHI TIET LICH THANH TOAN PO/ HOP DONG
|
3767
|
OPEN XmlDataSchedule
|
3768
|
SET @INDEX_PO = 0
|
3769
|
FETCH NEXT FROM XmlDataSchedule INTO @PO_ID,@PAY_PHASE,@AMT_PAY, @REQ_ADV_ID,@AMT_ADVANCE,@AMT_REMAIN,@REQ_AD_DT,
|
3770
|
@PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_DO,@AMT_PAY_REAL
|
3771
|
WHILE @@fetch_status=0
|
3772
|
BEGIN
|
3773
|
--IF(@AMT_REMAIN =0)
|
3774
|
--BEGIN
|
3775
|
-- SET @PROCESS ='3'
|
3776
|
--END
|
3777
|
--IF(@PROCESS <>'2')
|
3778
|
--BEGIN
|
3779
|
-- SET @TOTAL_SCHEDULE_AMT = @TOTAL_SCHEDULE_AMT +@AMT_REMAIN
|
3780
|
--END
|
3781
|
SET @INDEX_PO = @INDEX_PO +1
|
3782
|
SET @TOTAL_SCHEDULE_AMT = @TOTAL_SCHEDULE_AMT +(@AMT_PAY - @AMT_ADVANCE -@AMT_PAY_DO)
|
3783
|
-- BEGIN VALIDATE
|
3784
|
IF(@p_TYPE_FUNCTION ='SEND' AND @p_REQ_TYPE ='P')
|
3785
|
BEGIN
|
3786
|
IF(ISNULL(@AMT_PAY_REAL,0) < ISNULL(@AMT_ADVANCE ,0))
|
3787
|
BEGIN
|
3788
|
ROLLBACK TRANSACTION
|
3789
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': Số tiền thanh toán thực tế tối thiểu phải bằng số tiền đã tạm ứng : ' +FORMAT(SUM(@AMT_ADVANCE),'#,#', 'vi-VN') ErrorDesc
|
3790
|
RETURN '-1'
|
3791
|
END
|
3792
|
END
|
3793
|
-- END VALIDATE
|
3794
|
DECLARE @p_REQ_PAY_SCHEDULE_ID VARCHAR(15);
|
3795
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_SCHEDULE', @p_REQ_PAY_SCHEDULE_ID OUT;
|
3796
|
IF @p_REQ_PAY_SCHEDULE_ID='' OR @p_REQ_PAY_SCHEDULE_ID IS NULL GOTO ABORT;
|
3797
|
|
3798
|
INSERT INTO TR_REQ_PAY_SCHEDULE (SCHEDULE_ID,REQ_PAY_ID,PAY_ID,AMT_PAY,PAY_PHASE,REQ_ADV_ID,AMT_ADVANCE,AMT_PAY_DO,AMT_REMAIN,REQ_PAY_DT,REQ_AD_DT,PROCESS,MAKER_ID,
|
3799
|
CREATE_DT,AUTH_STATUS_KT,PAYMENT_STATUS,TRN_TYPE,REF_ID,REQ_PAY_DESC,REQ_PAY_ENTRIES,CURRENCY,RATE, AMT_PAY_REAL)
|
3800
|
VALUES (@p_REQ_PAY_SCHEDULE_ID,@p_REQ_PAY_ID,@PAY_ID, @AMT_PAY, @PAY_PHASE, @REQ_ADV_ID, @AMT_ADVANCE, @AMT_PAY_DO, @AMT_REMAIN,
|
3801
|
--IIF(@PROCESS<>'2',(@AMT_PAY-@AMT_ADVANCE),0),
|
3802
|
GETDATE(),CONVERT(DATETIME,@REQ_AD_DT,103),@PROCESS,@p_MAKER_ID,GETDATE(),'U','','PAY',@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES, @p_REQ_TYPE_CURRENCY , @p_RATE,@AMT_PAY_REAL)
|
3803
|
IF @@error<>0 GOTO ABORT;
|
3804
|
FETCH NEXT FROM XmlDataSchedule INTO @PO_ID, @PAY_PHASE, @AMT_PAY, @REQ_ADV_ID, @AMT_ADVANCE,@AMT_REMAIN,@REQ_AD_DT,
|
3805
|
@PROCESS,@PAY_ID,@REF_ID,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@CURRENCY,@RATE,@AMT_PAY_DO,@AMT_PAY_REAL
|
3806
|
END
|
3807
|
CLOSE XmlDataSchedule;
|
3808
|
DEALLOCATE XmlDataSchedule;
|
3809
|
-- END CURSOR THONG TIN CHI TIET LICH THANH TOAN PO/ HOP DONG
|
3810
|
---- VALIDATE SO TIEN
|
3811
|
--IF(@p_REQ_AMT > ISNULL(@TOTAL_SCHEDULE_AMT,0))
|
3812
|
--BEGIN
|
3813
|
-- ROLLBACK TRANSACTION
|
3814
|
-- SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền thanh toán phải nhỏ hơn hoặc bằng tổng số tiền còn lại cần thanh toán: '+ FORMAT(SUM(@TOTAL_SCHEDULE_AMT),'#,#', 'vi-VN') ErrorDesc
|
3815
|
-- RETURN '-1'
|
3816
|
--END
|
3817
|
------
|
3818
|
END
|
3819
|
-- NEU LA THANH TOAN CAC HOP DONG DINH KY
|
3820
|
IF((@p_REQ_TYPE = 'P' AND @p_IS_PERIOD = 'Y') OR @p_REQ_TYPE='I')
|
3821
|
BEGIN
|
3822
|
-- DELETE
|
3823
|
--DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
3824
|
/*
|
3825
|
IF(@p_REQ_TYPE = 'P' AND @p_IS_PERIOD = 'Y')
|
3826
|
BEGIN
|
3827
|
DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
3828
|
END
|
3829
|
*/
|
3830
|
-- DECLARE
|
3831
|
DECLARE @CONTRACT_PERIOD_ID VARCHAR(15),@IS_PERIOD_CLOSED VARCHAR(1), @DELIVERY_DT VARCHAR(20)
|
3832
|
--DECLARE CURSOR THONG TIN HOP DONG DINH KY
|
3833
|
DECLARE XmlDataRecurring CURSOR FOR SELECT * FROM OPENXML(@hdocRecurring, '/Root/XmlDataRecurring', 2)
|
3834
|
WITH(CONTRACT_ID varchar(15),IS_CLOSED VARCHAR(1),REF_TYPE VARCHAR(15), DELIVERY_DT VARCHAR(20))
|
3835
|
-- BEGIN CURSOR THONG TIN HOP DONG DINH KY
|
3836
|
OPEN XmlDataRecurring;
|
3837
|
FETCH NEXT FROM XmlDataRecurring INTO @CONTRACT_PERIOD_ID,@IS_PERIOD_CLOSED,@REF_TYPE, @DELIVERY_DT
|
3838
|
WHILE @@fetch_status = 0
|
3839
|
BEGIN
|
3840
|
-- SET
|
3841
|
SET @INDEX_PO = @INDEX_PO +1
|
3842
|
-- BEGIN VALIDATE
|
3843
|
IF(@p_TYPE_FUNCTION ='SEND')
|
3844
|
BEGIN
|
3845
|
IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE PO_ID =@REF_ID AND AUTH_STATUS <>'A'))
|
3846
|
BEGIN
|
3847
|
ROLLBACK TRANSACTION
|
3848
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+
|
3849
|
(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' chưa được phê duyệt. Vui lòng phê duyệt PO trước khi tạo phiếu thanh toán' ErrorDesc
|
3850
|
RETURN '-1'
|
3851
|
END
|
3852
|
|
3853
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REQ_PAY_ID
|
3854
|
IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT NOT IN ('A','E','R') OR AUTH_STATUS_KT IS NULL)))
|
3855
|
BEGIN
|
3856
|
ROLLBACK TRANSACTION
|
3857
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N':PO số '+
|
3858
|
(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đang được tạm ứng. Vui lòng đợi giao dịch hoàn tất' ErrorDesc
|
3859
|
RETURN '-1'
|
3860
|
END
|
3861
|
|
3862
|
-- KIEM TRA NEU CO PO NAO DO DANG THUC HIEN THANH TOAN HOAC TAM UNG THI PHAI THONG BAO CHO HOAN TAT GIAO DICH
|
3863
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@REF_ID AND REF_TYPE ='P' AND REF_ID IN (SELECT PO_ID FROM TR_PO_MASTER WHERE IS_CLOSED='Y')))
|
3864
|
BEGIN
|
3865
|
ROLLBACK TRANSACTION
|
3866
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PO)+ N': PO số '+
|
3867
|
(SELECT PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @REF_ID)+N' đã được thanh toán xong. Vui lòng chọn PO khác để tạm ứng hoặc xóa bản nháp này' ErrorDesc
|
3868
|
RETURN '-1'
|
3869
|
END
|
3870
|
END
|
3871
|
-- END VALIDATE
|
3872
|
DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15);
|
3873
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT;
|
3874
|
IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT;
|
3875
|
INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID,REQ_PAY_ID,REF_ID,TYPE,MAKER_ID,CREATE_DT,IS_CLOSED,REF_TYPE, DELIVERY_DT)
|
3876
|
VALUES(@REQ_PAYDTID_PERIOD,@p_REQ_PAY_ID,@CONTRACT_PERIOD_ID,'PAY',@p_MAKER_ID,GETDATE(),@IS_PERIOD_CLOSED,'C', CONVERT(DATE,@DELIVERY_DT,103))
|
3877
|
|
3878
|
IF @@error<>0 GOTO ABORT;
|
3879
|
FETCH NEXT FROM XmlDataRecurring INTO @CONTRACT_PERIOD_ID,@IS_PERIOD_CLOSED,@REF_TYPE, @DELIVERY_DT
|
3880
|
END
|
3881
|
CLOSE XmlDataRecurring;
|
3882
|
DEALLOCATE XmlDataRecurring;
|
3883
|
-- END CURSOR THONG TIN HOP DONG DINH KY
|
3884
|
|
3885
|
-- DECLARE
|
3886
|
DECLARE @INDEX_PERIOD INT
|
3887
|
--SET
|
3888
|
SET @INDEX_PERIOD = 0
|
3889
|
-- DELETE
|
3890
|
DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
3891
|
-- DECLARE
|
3892
|
DECLARE @CONTRACT_ID varchar(15),@PAY_DT_REAL VARCHAR(20),@PAY_TYPE VARCHAR(5), @OLD_INDEX DECIMAL(18,0),@NEW_INDEX DECIMAL(18,0),@AMT_PAY_PERIOD DECIMAL(18,2), @FROM_DATE VARCHAR(20),
|
3893
|
@TO_DATE VARCHAR(20),@AD_PAY_ID VARCHAR(15), @_PROCESS VARCHAR(15),@PARENT_ID VARCHAR(15),@REASON_TTDK NVARCHAR(2000)
|
3894
|
-- DECLARE CURSOR
|
3895
|
DECLARE XmlDataPeriod CURSOR FOR SELECT * FROM OPENXML(@hdocPeriod, '/Root/XmlDataPeriod', 2)
|
3896
|
WITH(CONTRACT_ID varchar(15),PAY_DT_REAL VARCHAR(20),PAY_TYPE VARCHAR(5), OLD_INDEX DECIMAL(18,0),NEW_INDEX DECIMAL(18,0),AMT_PAY DECIMAL(18,2),CURRENCY VARCHAR(5),
|
3897
|
RATE DECIMAL(18,0),FROM_DATE VARCHAR(20), TO_DATE VARCHAR(20), AD_PAY_ID VARCHAR(15), PROCESS VARCHAR(5),PARENT_ID VARCHAR(15),PAY_PHASE NVARCHAR(250),REASON NVARCHAR(2000))
|
3898
|
-- BEGIN CURSOR THONG TIN THANH TOAN HOP DONG DINH KY
|
3899
|
OPEN XmlDataPeriod;
|
3900
|
FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE, @OLD_INDEX , @NEW_INDEX , @AMT_PAY_PERIOD, @CURRENCY, @RATE, @FROM_DATE, @TO_DATE, @AD_PAY_ID, @_PROCESS, @PARENT_ID,
|
3901
|
@PAY_PHASE, @REASON_TTDK
|
3902
|
WHILE @@fetch_status=0
|
3903
|
BEGIN
|
3904
|
-- SET
|
3905
|
SET @INDEX_PERIOD = @INDEX_PERIOD +1
|
3906
|
-- BEGIN VALIDATE
|
3907
|
IF(@p_TYPE_FUNCTION ='SEND')
|
3908
|
BEGIN
|
3909
|
IF(@NEW_INDEX <=@OLD_INDEX AND (@NEW_INDEX >0 AND @OLD_INDEX >0) )
|
3910
|
BEGIN
|
3911
|
ROLLBACK TRANSACTION
|
3912
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PERIOD)+ N' lưới thông tin thanh toán hợp đồng định kì: Chỉ số mới phải lớn hơn chỉ số cũ' ErrorDesc
|
3913
|
RETURN '-1'
|
3914
|
END
|
3915
|
-- NEU LÀ DINH KI THI HD PHAI KHAC NULL
|
3916
|
IF(@CONTRACT_ID IS NULL OR @CONTRACT_ID ='' )
|
3917
|
BEGIN
|
3918
|
ROLLBACK TRANSACTION
|
3919
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PERIOD)+ N' lưới thông tin thanh toán hợp đồng định kì: Cột Số hợp đồng không được phép để trống' ErrorDesc
|
3920
|
RETURN '-1'
|
3921
|
END
|
3922
|
-- KIEM TRA CHI TIET HOP DONG PHAI NAM TRONG DANH SACH CAC HOP DONG
|
3923
|
IF(@CONTRACT_ID IS NOT NULL AND @CONTRACT_ID <> '' )
|
3924
|
BEGIN
|
3925
|
IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND REF_ID =@CONTRACT_ID))
|
3926
|
BEGIN
|
3927
|
ROLLBACK TRANSACTION
|
3928
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PERIOD)+ N' lưới thông tin thanh toán hợp đồng định kì - Số hợp đồng phải nằm trong danh sách các hợp đồng được chọn trên lưới Hợp đồng định kì' ErrorDesc
|
3929
|
RETURN '-1'
|
3930
|
END
|
3931
|
END
|
3932
|
|
3933
|
IF(ISNULL(@PARENT_ID, '') = '' AND @_PROCESS = '2')
|
3934
|
BEGIN
|
3935
|
ROLLBACK TRANSACTION
|
3936
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID,'' AS REQ_PAY_CODE,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX_PERIOD)+ N' lưới thông tin thanh toán hợp đồng định kì: Không được để trống cột số phiếu tạm ứng.'
|
3937
|
+ CHAR(10) +
|
3938
|
N'</br> Nếu hợp đồng định kỳ này có kỳ tạm ứng, vui lòng làm như sau để hoàn ứng: '
|
3939
|
+ CHAR(10) +
|
3940
|
N'</br> Bước 1: Tại lưới thông tin hợp đồng định kỳ, xóa dòng hợp động kịnh kỳ cần hoàn ứng( hợp đồng có ID hợp đồng(hệ thống): ' + @CONTRACT_ID +
|
3941
|
+ CHAR(10) +
|
3942
|
N'</br> Bước2: Tại lưới thông tin hợp đồng định kỳ, chọn lại hợp đồng cần hoàn ứng( hợp đồng có ID hợp đồng(hệ thống): ' + @CONTRACT_ID
|
3943
|
ErrorDesc
|
3944
|
RETURN '-1'
|
3945
|
END
|
3946
|
END
|
3947
|
-- END VALIDATE
|
3948
|
DECLARE @PERIOD_ID VARCHAR(15);
|
3949
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT;
|
3950
|
IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT;
|
3951
|
INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID,REQ_PAY_ID,PAY_TYPE, CONTRACT_ID,PAY_DT_REAL,OLD_INDEX,NEW_INDEX,AMT_PAY,AUTH_STATUS_KT,CURRENCY,RATE,FROM_DATE,
|
3952
|
TO_DATE,AD_PAY_ID,PROCESS,PARENT_ID,PAY_PHASE,REASON)
|
3953
|
VALUES (@PERIOD_ID,@p_REQ_PAY_ID,'PAY',@CONTRACT_ID,CONVERT(DATE,@PAY_DT_REAL,103), @OLD_INDEX ,@NEW_INDEX ,@AMT_PAY_PERIOD,'U', @p_REQ_TYPE_CURRENCY , @p_RATE,
|
3954
|
CONVERT(DATE,@FROM_DATE,103),CONVERT(DATE,@TO_DATE,103),@AD_PAY_ID, @_PROCESS,@PARENT_ID,@PAY_PHASE,@REASON_TTDK)
|
3955
|
IF @@error<>0 GOTO ABORT;
|
3956
|
FETCH NEXT FROM XmlDataPeriod INTO @CONTRACT_ID ,@PAY_DT_REAL ,@PAY_TYPE, @OLD_INDEX , @NEW_INDEX , @AMT_PAY_PERIOD, @CURRENCY, @RATE, @FROM_DATE, @TO_DATE, @AD_PAY_ID, @_PROCESS, @PARENT_ID,
|
3957
|
@PAY_PHASE, @REASON_TTDK
|
3958
|
END
|
3959
|
CLOSE XmlDataPeriod;
|
3960
|
DEALLOCATE XmlDataPeriod;
|
3961
|
END
|
3962
|
-- END CURSOR THONG TIN THANH TOAN HOP DONG DINH KY
|
3963
|
|
3964
|
--doanptt 15/02/2022
|
3965
|
-- INSERT JOB
|
3966
|
-- DS PHIEU YEU CAU CONG TAC
|
3967
|
DELETE FROM TR_REQ_PAY_JOB WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
3968
|
DECLARE @INDEX_PYCCT INT = 0
|
3969
|
DECLARE @REQ_PAY_JOB_ID varchar(15) ,@REQ_PAY_ID varchar(15),@REQ_ID varchar(15), @REQ_CODE varchar(15), @MAKER_ID varchar(15),
|
3970
|
@CREATE_DT varchar(15), @PAY_TYPE_J VARCHAR(5), @PAY_PHASE_J NVARCHAR(250), @PAY_AMT DECIMAL(18,0), @PAY_DESC NVARCHAR(1000)
|
3971
|
, @AUTH_STATUS VARCHAR(1), @AUTH_STATUS_KT VARCHAR(1),
|
3972
|
@REQ_PAY_JOB_DVKD_CODE VARCHAR(20), @REQ_PAY_JOB_HO_ID VARCHAR(20), @BRANCH_CREATE_JOB VARCHAR(20), @DEP_CREATE_JOB VARCHAR(20)
|
3973
|
DECLARE XmlDataJob CURSOR LOCAL FOR
|
3974
|
SELECT * FROM OPENXML(@hdocJob, 'Root/XmlDataJob',2)
|
3975
|
WITH(REQ_PAY_JOB_ID varchar(15) ,REQ_PAY_ID varchar(15),REQ_ID varchar(15), REQ_CODE varchar(15), MAKER_ID varchar(15),CREATE_DT varchar(15), PAY_TYPE VARCHAR(5),
|
3976
|
PAY_PHASE NVARCHAR(250), PAY_AMT DECIMAL(18,0), PAY_DESC NVARCHAR(1000), AUTH_STATUS VARCHAR(1), AUTH_STATUS_KT VARCHAR(1))
|
3977
|
OPEN XmlDataJob
|
3978
|
--- INSERT PHIEU YEU CAU CONG TAC
|
3979
|
FETCH NEXT FROM XmlDataJob INTO @REQ_PAY_JOB_ID ,@REQ_PAY_ID ,@REQ_ID , @REQ_CODE, @MAKER_ID , @CREATE_DT , @PAY_TYPE_J , @PAY_PHASE_J ,
|
3980
|
@PAY_AMT , @PAY_DESC, @AUTH_STATUS , @AUTH_STATUS_KT
|
3981
|
WHILE @@fetch_status=0
|
3982
|
BEGIN
|
3983
|
SET @INDEX_PYCCT = @INDEX_PYCCT +1
|
3984
|
/*
|
3985
|
SET @BRANCH_CREATE_JOB = (SELECT TOP 1 B.BRANCH_CODE FROM TR_REQUEST_JOB_FORM A LEFT JOIN CM_BRANCH B ON A.BRANCH_CREATE = B.BRANCH_ID WHERE A.REQ_ID = @REQ_ID)
|
3986
|
SET @DEP_CREATE_JOB = (SELECT B.DEP_CODE FROM TR_REQUEST_JOB_FORM A LEFT JOIN CM_DEPARTMENT B ON A.DEP_CREATE = B.DEP_ID WHERE A.REQ_ID = @REQ_ID)
|
3987
|
IF(@BRANCH_CREATE_JOB = 'DV0001')
|
3988
|
BEGIN
|
3989
|
SET @REQ_PAY_JOB_DVKD_CODE = 'AFT-' + @BRANCH_CREATE_JOB + '-' + @DEP_CREATE_JOB;
|
3990
|
END
|
3991
|
ELSE
|
3992
|
BEGIN
|
3993
|
SET @REQ_PAY_JOB_DVKD_CODE = 'AFT-' + @BRANCH_CREATE_JOB + '-000000';
|
3994
|
END
|
3995
|
*/
|
3996
|
IF(@p_TYPE_FUNCTION ='SEND')
|
3997
|
BEGIN
|
3998
|
IF(ISNULL(@REQ_CODE, '') = '' OR ISNULL(@REQ_ID, '') = '')
|
3999
|
BEGIN
|
4000
|
ROLLBACK TRANSACTION
|
4001
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới thông tin thanh toán chi phí đi công tác, dòng '+ CONVERT(VARCHAR(5),@INDEX_PYCCT) + N': Số phiếu yêu cầu công tác không được để trống' ErrorDesc
|
4002
|
RETURN '-1'
|
4003
|
END
|
4004
|
IF(ISNULL(@PAY_TYPE_J, '') = '')
|
4005
|
BEGIN
|
4006
|
ROLLBACK TRANSACTION
|
4007
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới thông tin thanh toán chi phí đi công tác, dòng '+ CONVERT(VARCHAR(5),@INDEX_PYCCT) + N': Loại chi phí không được để trống' ErrorDesc
|
4008
|
RETURN '-1'
|
4009
|
END
|
4010
|
IF(ISNULL(@PAY_PHASE_J, '') = '')
|
4011
|
BEGIN
|
4012
|
ROLLBACK TRANSACTION
|
4013
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới thông tin thanh toán chi phí đi công tác, dòng '+ CONVERT(VARCHAR(5),@INDEX_PYCCT) + N': Kỳ thanh toán không được để trống' ErrorDesc
|
4014
|
RETURN '-1'
|
4015
|
END
|
4016
|
/*
|
4017
|
IF(EXISTS(SELECT REQ_PAY_JOB_ID FROM TR_REQ_PAY_JOB WHERE REQ_ID = @REQ_ID AND PAY_TYPE = @PAY_TYPE_J AND @REQ_CODE <> @REQ_PAY_JOB_DVKD_CODE))
|
4018
|
BEGIN
|
4019
|
ROLLBACK TRANSACTION
|
4020
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới thông tin thanh toán chi phí đi công tác, dòng '+ CONVERT(VARCHAR(5),@INDEX_PYCCT) + N': Loại chi phí này đã được thanh toán. Vui lòng thanh toán chi phí khác hoặc chọn phiếu yêu cầu công tác khác' ErrorDesc
|
4021
|
RETURN '-1'
|
4022
|
END
|
4023
|
*/
|
4024
|
END
|
4025
|
DECLARE @p_REQ_JOB_ID VARCHAR(15);
|
4026
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_JOB', @p_REQ_JOB_ID OUT;
|
4027
|
IF @p_REQ_JOB_ID='' OR @p_REQ_JOB_ID IS NULL GOTO ABORT;
|
4028
|
INSERT INTO TR_REQ_PAY_JOB(REQ_PAY_JOB_ID ,REQ_PAY_ID ,REQ_ID , REQ_CODE, MAKER_ID, CREATE_DT , PAY_TYPE , PAY_PHASE , PAY_AMT , PAY_DESC, AUTH_STATUS , AUTH_STATUS_KT)
|
4029
|
VALUES (@p_REQ_JOB_ID ,@p_REQ_PAY_ID ,@REQ_ID , @REQ_CODE, @MAKER_ID , GETDATE() , @PAY_TYPE_J , @PAY_PHASE_J , @PAY_AMT , @PAY_DESC, @AUTH_STATUS , @AUTH_STATUS_KT)
|
4030
|
IF @@error<>0 GOTO ABORT;
|
4031
|
FETCH NEXT FROM XmlDataJob INTO @REQ_PAY_JOB_ID ,@REQ_PAY_ID ,@REQ_ID , @REQ_CODE, @MAKER_ID , @CREATE_DT , @PAY_TYPE_J , @PAY_PHASE_J, @PAY_AMT , @PAY_DESC, @AUTH_STATUS , @AUTH_STATUS_KT
|
4032
|
END;
|
4033
|
CLOSE XmlDataJob;
|
4034
|
DEALLOCATE XmlDataJob;
|
4035
|
--- END INSERT PHIEU YEU CAU CONG TAC
|
4036
|
|
4037
|
-- INSERT JOB DT
|
4038
|
-- DS CHI TIET PHIEU YEU CAU CONG TAC
|
4039
|
DELETE FROM TR_REQ_PAY_JOB_DT WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
4040
|
DECLARE @INDEX_PYCCT_DETAIL INT = 0
|
4041
|
DECLARE @REQ_PAY_JOB_DT_ID varchar(15) , @REQ_PAY_ID_DT varchar(15), @REQ_ID_DT varchar(15), @REQ_CODE_DT varchar(15), @MAKER_ID_DT varchar(15),
|
4042
|
@CREATE_DT_DT varchar(15), @FULLNAME_DT NVARCHAR(250), @TLNAME_DT VARCHAR(15), @JOB_PLACE_DT NVARCHAR(MAX), @FRMDATE_DT VARCHAR(15), @TODATE_DT VARCHAR(15),
|
4043
|
@NUMBER_DAY_DT decimal(18,0), @DAY_RATE_DT decimal(18,0), @JOB_COST_DT decimal(18,0), @TYPE_TRANS_DT varchar(250), @COST_MOVE_DT decimal(18,0),
|
4044
|
@COST_RESIDENCE_DT decimal(18,0), @COST_OTHER_DT decimal(18,0), @COST_AMT_DT decimal(18,0), @AUTH_STATUS_DT VARCHAR(1), @AUTH_STATUS_KT_DT VARCHAR(1)
|
4045
|
DECLARE XmlDataJobDT CURSOR LOCAL FOR
|
4046
|
SELECT * FROM OPENXML(@hdocJobDT, 'Root/XmlDataJobDT',2)
|
4047
|
WITH(REQ_PAY_JOB_DT_ID varchar(15), REQ_PAY_ID varchar(15), REQ_ID varchar(15), REQ_CODE varchar(15), MAKER_ID varchar(15), CREATE_DT varchar(15),
|
4048
|
FULLNAME nvarchar(250), TLNAME_DT VARCHAR(15), JOB_PLACE NVARCHAR(MAX), FRMDATE varchar(15), TODATE varchar(15),NUMBER_DAY decimal(18,0), DAY_RATE decimal(18,0),
|
4049
|
JOB_COST decimal(18,0), TYPE_TRANS varchar(15), COST_MOVE decimal(18,0), COST_RESIDENCE decimal(18,0), COST_OTHER decimal(18,0), COST_AMT decimal(18,0) ,
|
4050
|
AUTH_STATUS varchar(1), AUTH_STATUS_KT varchar(1))
|
4051
|
OPEN XmlDataJobDT
|
4052
|
|
4053
|
--- INSERT CHI TIÊT PHIEU YEU CAU CONG TAC
|
4054
|
FETCH NEXT FROM XmlDataJobDT INTO @REQ_PAY_JOB_DT_ID , @REQ_PAY_ID_DT, @REQ_ID_DT, @REQ_CODE_DT, @MAKER_ID_DT,
|
4055
|
@CREATE_DT_DT , @FULLNAME_DT , @TLNAME_DT, @JOB_PLACE_DT , @FRMDATE_DT , @TODATE_DT ,
|
4056
|
@NUMBER_DAY_DT, @DAY_RATE_DT , @JOB_COST_DT , @TYPE_TRANS_DT , @COST_MOVE_DT,
|
4057
|
@COST_RESIDENCE_DT, @COST_OTHER_DT , @COST_AMT_DT , @AUTH_STATUS_DT, @AUTH_STATUS_KT_DT
|
4058
|
WHILE @@fetch_status=0
|
4059
|
BEGIN
|
4060
|
SET @INDEX_PYCCT_DETAIL = @INDEX_PYCCT_DETAIL + 1
|
4061
|
IF(@p_TYPE_FUNCTION ='SEND')
|
4062
|
BEGIN
|
4063
|
IF(ISNULL(@REQ_ID, '') = '')
|
4064
|
BEGIN
|
4065
|
ROLLBACK TRANSACTION
|
4066
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới Chi tiết chi phí đi công tác, dòng '+ CONVERT(VARCHAR(5),@INDEX_PYCCT_DETAIL) + N': Số phiếu yêu cầu công tác không được để trống' ErrorDesc
|
4067
|
RETURN '-1'
|
4068
|
END
|
4069
|
END
|
4070
|
|
4071
|
DECLARE @p_REQ_JOB_DT_ID VARCHAR(15);
|
4072
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_JOB_DT', @p_REQ_JOB_DT_ID OUT;
|
4073
|
IF @p_REQ_JOB_DT_ID='' OR @p_REQ_JOB_DT_ID IS NULL GOTO ABORT;
|
4074
|
INSERT INTO TR_REQ_PAY_JOB_DT(REQ_PAY_JOB_DT_ID , REQ_PAY_ID , REQ_ID , REQ_CODE, MAKER_ID , CREATE_DT , FULLNAME, TLNAME, JOB_PLACE , FRMDATE , TODATE ,NUMBER_DAY , DAY_RATE ,
|
4075
|
JOB_COST , TYPE_TRANS , COST_MOVE , COST_RESIDENCE , COST_OTHER , COST_AMT , AUTH_STATUS, AUTH_STATUS_KT)
|
4076
|
VALUES (@p_REQ_JOB_DT_ID , @p_REQ_PAY_ID, @REQ_ID_DT, @REQ_CODE_DT, @MAKER_ID_DT,
|
4077
|
GETDATE() , @FULLNAME_DT ,@TLNAME_DT, @JOB_PLACE_DT , CONVERT(DATE,@FRMDATE_DT,103) , CONVERT(DATE,@TODATE_DT,103) ,
|
4078
|
@NUMBER_DAY_DT, @DAY_RATE_DT , @JOB_COST_DT , @TYPE_TRANS_DT , @COST_MOVE_DT,
|
4079
|
@COST_RESIDENCE_DT, @COST_OTHER_DT ,
|
4080
|
ISNULL(@JOB_COST_DT, 0) + ISNULL(@COST_MOVE_DT, 0) + ISNULL(@COST_RESIDENCE_DT, 0) + ISNULL(@COST_OTHER_DT, 0),
|
4081
|
@AUTH_STATUS_DT, @AUTH_STATUS_KT_DT)
|
4082
|
IF @@error<>0 GOTO ABORT;
|
4083
|
FETCH NEXT FROM XmlDataJobDT INTO @REQ_PAY_JOB_DT_ID , @REQ_PAY_ID_DT, @REQ_ID_DT, @REQ_CODE_DT, @MAKER_ID_DT,
|
4084
|
@CREATE_DT_DT , @FULLNAME_DT , @TLNAME_DT, @JOB_PLACE_DT , @FRMDATE_DT , @TODATE_DT ,
|
4085
|
@NUMBER_DAY_DT, @DAY_RATE_DT , @JOB_COST_DT , @TYPE_TRANS_DT , @COST_MOVE_DT,
|
4086
|
@COST_RESIDENCE_DT, @COST_OTHER_DT , @COST_AMT_DT , @AUTH_STATUS_DT, @AUTH_STATUS_KT_DT
|
4087
|
END;
|
4088
|
CLOSE XmlDataJobDT;
|
4089
|
DEALLOCATE XmlDataJobDT;
|
4090
|
--- END INSERT CHI TIET PHIEU YEU CAU CONG TAC
|
4091
|
|
4092
|
|
4093
|
--doanptt 17/02/2022
|
4094
|
-- INSERT DRIVE
|
4095
|
-- DS PHIEU YEU CAU CONG TAC
|
4096
|
DELETE FROM TR_REQ_PAY_DRIVE WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
4097
|
DECLARE @INDEX_DRIVE INT = 0
|
4098
|
DECLARE @REQ_PAY_DRIVE_ID varchar(15), @CAR_ID varchar(15), @CAR_PLATE varchar(15), @RATE_GAS_100KM decimal(18,0), @CAR_TYPE NVARCHAR(150)
|
4099
|
DECLARE XmlDataDrive CURSOR LOCAL FOR
|
4100
|
SELECT * FROM OPENXML(@hdocDrive, 'Root/XmlDataDrive',2)
|
4101
|
WITH(REQ_PAY_DRIVE_ID varchar(15) ,REQ_PAY_ID varchar(15), CAR_ID varchar(15), CAR_PLATE varchar(15), MAKER_ID varchar(15),CREATE_DT varchar(15), PAY_TYPE VARCHAR(5),
|
4102
|
PAY_PHASE NVARCHAR(250), PAY_AMT DECIMAL(18,0), PAY_DESC NVARCHAR(1000), AUTH_STATUS VARCHAR(1), AUTH_STATUS_KT VARCHAR(1),
|
4103
|
RATE_GAS_100KM decimal(18,0), CAR_TYPE NVARCHAR(150))
|
4104
|
OPEN XmlDataDrive
|
4105
|
|
4106
|
--- INSERT PHIEU YEU CAU CONG TAC
|
4107
|
FETCH NEXT FROM XmlDataDrive INTO @REQ_PAY_DRIVE_ID ,@REQ_PAY_ID ,@CAR_ID , @CAR_PLATE, @MAKER_ID , @CREATE_DT , @PAY_TYPE , @PAY_PHASE,
|
4108
|
@PAY_AMT , @PAY_DESC, @AUTH_STATUS , @AUTH_STATUS_KT, @RATE_GAS_100KM, @CAR_TYPE
|
4109
|
WHILE @@fetch_status=0
|
4110
|
BEGIN
|
4111
|
SET @INDEX_DRIVE = @INDEX_DRIVE + 1;
|
4112
|
IF(@p_TYPE_FUNCTION ='SEND')
|
4113
|
BEGIN
|
4114
|
IF(ISNULL(@CAR_PLATE, '') = '')
|
4115
|
BEGIN
|
4116
|
ROLLBACK TRANSACTION
|
4117
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới thông tin thanh toán chi phí vận hành xe, dòng '+ CONVERT(VARCHAR(5),@INDEX_DRIVE)+ N': Số xe không được phép để trống' ErrorDesc
|
4118
|
RETURN '-1'
|
4119
|
END
|
4120
|
IF(ISNULL(@PAY_TYPE, '') = '')
|
4121
|
BEGIN
|
4122
|
ROLLBACK TRANSACTION
|
4123
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới thông tin thanh toán chi phí vận hành xe, dòng '+ CONVERT(VARCHAR(5),@INDEX_DRIVE)+ N': Loại chi phí không được phép để trống' ErrorDesc
|
4124
|
RETURN '-1'
|
4125
|
END
|
4126
|
IF(ISNULL(@PAY_PHASE, '') = '')
|
4127
|
BEGIN
|
4128
|
ROLLBACK TRANSACTION
|
4129
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới thông tin thanh toán chi phí vận hành xe, dòng '+ CONVERT(VARCHAR(5),@INDEX_DRIVE)+ N': Kỳ thanh toán không được phép để trống' ErrorDesc
|
4130
|
RETURN '-1'
|
4131
|
END
|
4132
|
END
|
4133
|
DECLARE @p_REQ_DRIVE_ID VARCHAR(15);
|
4134
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_DRIVE', @p_REQ_DRIVE_ID OUT;
|
4135
|
IF @p_REQ_DRIVE_ID='' OR @p_REQ_DRIVE_ID IS NULL GOTO ABORT;
|
4136
|
INSERT INTO TR_REQ_PAY_DRIVE(REQ_PAY_DRIVE_ID ,REQ_PAY_ID ,CAR_ID , CAR_PLATE , MAKER_ID, CREATE_DT , PAY_TYPE , PAY_PHASE , PAY_AMT , PAY_DESC, AUTH_STATUS , AUTH_STATUS_KT, RATE_GAS_100KM, CAR_TYPE)
|
4137
|
VALUES (@p_REQ_DRIVE_ID ,@p_REQ_PAY_ID ,@CAR_ID , @CAR_PLATE, @MAKER_ID , GETDATE() , @PAY_TYPE , @PAY_PHASE , @PAY_AMT , @PAY_DESC, @AUTH_STATUS , @AUTH_STATUS_KT, @RATE_GAS_100KM, @CAR_TYPE)
|
4138
|
IF @@error<>0 GOTO ABORT;
|
4139
|
FETCH NEXT FROM XmlDataDrive INTO @REQ_PAY_DRIVE_ID ,@REQ_PAY_ID ,@CAR_ID , @CAR_PLATE, @MAKER_ID , @CREATE_DT , @PAY_TYPE , @PAY_PHASE,
|
4140
|
@PAY_AMT , @PAY_DESC, @AUTH_STATUS , @AUTH_STATUS_KT, @RATE_GAS_100KM, @CAR_TYPE
|
4141
|
END;
|
4142
|
CLOSE XmlDataDrive;
|
4143
|
DEALLOCATE XmlDataDrive;
|
4144
|
--- END INSERT PHIEU YEU CAU CONG TAC
|
4145
|
|
4146
|
-- INSERT DRIVE DT
|
4147
|
-- DS CHI TIET PHIEU YEU CAU CONG TAC
|
4148
|
DELETE FROM TR_REQ_PAY_DRIVE_DT WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
4149
|
DECLARE @REQ_PAY_DRIVE_DT_ID varchar(15), @FULLNAME NVARCHAR(250), @BRANCH_REQ VARCHAR(15),
|
4150
|
@KM_START decimal(18,2), @KM_END varchar(250), @KM_USED decimal(18,2),
|
4151
|
@RATE_GAS decimal(18,2), @REAL_GAS decimal(18,2), @REDUNDANCY_GAS decimal(18,2), @INVENTORY_GAS decimal(18,2), @COST_INCURRED decimal(18,2),
|
4152
|
@CREATE_SCHEDULE NVARCHAR(250), @TRUONGDONVI VARCHAR(15), @INVENTORY_GAS_START decimal(18,2)
|
4153
|
DECLARE XmlDataDriveDT CURSOR LOCAL FOR
|
4154
|
SELECT * FROM OPENXML(@hdocDriveDT, 'Root/XmlDataDriveDT',2)
|
4155
|
WITH(REQ_PAY_DRIVE_ID varchar(15), REQ_PAY_ID varchar(15), CAR_ID varchar(15), MAKER_ID varchar(15), CREATE_DT varchar(15),
|
4156
|
BRANCH_REQ varchar(15), PAY_PHASE NVARCHAR(250), CAR_TYPE Nvarchar(250), CAR_PLATE varchar(15),RATE_GAS_100KM decimal(18,2), KM_START decimal(18,2),
|
4157
|
KM_END decimal(18,2), KM_USED varchar(15), RATE_GAS decimal(18,2), REAL_GAS decimal(18,2), REDUNDANCY_GAS decimal(18,2), INVENTORY_GAS decimal(18,2),
|
4158
|
NOTES NVARCHAR(MAX), COST_INCURRED decimal(18,2), CREATE_SCHEDULE NVARCHAR(250), TRUONGDONVI VARCHAR(15) ,
|
4159
|
AUTH_STATUS varchar(1), AUTH_STATUS_KT varchar(1), INVENTORY_GAS_START decimal(18,2))
|
4160
|
OPEN XmlDataDriveDT
|
4161
|
|
4162
|
DECLARE @INDEX_DRIVEDT INT = 0
|
4163
|
|
4164
|
--- INSERT CHI TIÊT PHIEU YEU CAU CONG TAC
|
4165
|
FETCH NEXT FROM XmlDataDriveDT INTO @REQ_PAY_DRIVE_ID , @REQ_PAY_ID, @CAR_ID, @MAKER_ID, @CREATE_DT, @BRANCH_REQ, @PAY_PHASE, @CAR_TYPE, @CAR_PLATE,
|
4166
|
@RATE_GAS_100KM, @KM_START, @KM_END, @KM_USED, @RATE_GAS, @REAL_GAS, @REDUNDANCY_GAS, @INVENTORY_GAS, @NOTES, @COST_INCURRED, @CREATE_SCHEDULE,
|
4167
|
@TRUONGDONVI, @AUTH_STATUS, @AUTH_STATUS_KT, @INVENTORY_GAS_START
|
4168
|
WHILE @@fetch_status=0
|
4169
|
BEGIN
|
4170
|
SET @INDEX_DRIVEDT = @INDEX_DRIVEDT + 1;
|
4171
|
IF(@p_TYPE_FUNCTION ='SEND')
|
4172
|
BEGIN
|
4173
|
IF(ISNULL(@CAR_PLATE, '') = '')
|
4174
|
BEGIN
|
4175
|
ROLLBACK TRANSACTION
|
4176
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lưới bảng kê chi phí sử dụng nhiên liệu, dòng '+ CONVERT(VARCHAR(5),@INDEX_DRIVE)+ N': Biển số không được phép để trống' ErrorDesc
|
4177
|
RETURN '-1'
|
4178
|
END
|
4179
|
END
|
4180
|
DECLARE @p_REQ_DRIVE_DT_ID VARCHAR(15);
|
4181
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_DRIVE_DT', @p_REQ_DRIVE_DT_ID OUT;
|
4182
|
IF @p_REQ_DRIVE_DT_ID='' OR @p_REQ_DRIVE_DT_ID IS NULL GOTO ABORT;
|
4183
|
|
4184
|
INSERT INTO TR_REQ_PAY_DRIVE_DT(REQ_PAY_DRIVE_DT_ID, REQ_PAY_ID, CAR_ID, MAKER_ID, CREATE_DT, BRANCH_REQ, PAY_PHASE, CAR_TYPE, CAR_PLATE,
|
4185
|
RATE_GAS_100KM, KM_START, KM_END, KM_USED, RATE_GAS, REAL_GAS, REDUNDANCY_GAS, INVENTORY_GAS, COST_INCURRED, NOTES, CREATE_SCHEDULE, TRUONGDONVI,
|
4186
|
AUTH_STATUS, AUTH_STATUS_KT, INVENTORY_GAS_START)
|
4187
|
VALUES (@p_REQ_DRIVE_DT_ID , @p_REQ_PAY_ID, @CAR_ID, @MAKER_ID, @CREATE_DT, @BRANCH_REQ, @PAY_PHASE, @CAR_TYPE, @CAR_PLATE,
|
4188
|
@RATE_GAS_100KM, @KM_START, @KM_END, @KM_USED, @RATE_GAS, @REAL_GAS, @REDUNDANCY_GAS, @INVENTORY_GAS, @COST_INCURRED, @NOTES,
|
4189
|
@CREATE_SCHEDULE, @TRUONGDONVI, @AUTH_STATUS, @AUTH_STATUS_KT, @INVENTORY_GAS_START)
|
4190
|
IF @@error<>0 GOTO ABORT;
|
4191
|
|
4192
|
FETCH NEXT FROM XmlDataDriveDT INTO @REQ_PAY_DRIVE_ID , @REQ_PAY_ID, @CAR_ID, @MAKER_ID, @CREATE_DT, @BRANCH_REQ, @PAY_PHASE, @CAR_TYPE, @CAR_PLATE,
|
4193
|
@RATE_GAS_100KM, @KM_START, @KM_END, @KM_USED, @RATE_GAS, @REAL_GAS, @REDUNDANCY_GAS, @INVENTORY_GAS, @NOTES, @COST_INCURRED, @CREATE_SCHEDULE,
|
4194
|
@TRUONGDONVI, @AUTH_STATUS, @AUTH_STATUS_KT, @INVENTORY_GAS_START
|
4195
|
END;
|
4196
|
CLOSE XmlDataDriveDT;
|
4197
|
DEALLOCATE XmlDataDriveDT;
|
4198
|
--- END INSERT CHI TIET PHIEU YEU CAU CONG TAC
|
4199
|
|
4200
|
-- INSERT REQUEST CAR
|
4201
|
-- DS PHIEU YEU CAU XE
|
4202
|
DELETE FROM TR_REQ_PAY_REQUEST_CAR WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
4203
|
DECLARE @REQ_PAY_REQUEST_CAR_ID varchar(15), @REQ_CAR_REQ_PAY_ID VARCHAR(15), @REQ_CAR_REQ_ID VARCHAR(15),
|
4204
|
@REQ_CAR_REQ_CODE varchar(25), @BRANCH_CREATE_FULLNAME nvarchar(1000), @DEP_CREATE_FULLNAME nvarchar(100),
|
4205
|
@REQ_CAR_NOTES NVARCHAR(1000), @REQ_CAR_MAKER_ID varchar(25), @REQ_CAR_CREATE_DT varchar(50), @REQ_CAR_CHECKER_ID varchar(25), @REQ_CAR_APPROVE_DT varchar(50)
|
4206
|
|
4207
|
DECLARE XmlDataRequestCar CURSOR LOCAL FOR
|
4208
|
SELECT * FROM OPENXML(@hdocRequestCar, 'Root/XmlDataReqCar',2)
|
4209
|
WITH(REQ_PAY_REQUEST_CAR_ID varchar(15), REQ_PAY_ID varchar(15), REQ_ID varchar(15), REQ_CODE varchar(25), MAKER_ID varchar(15), CREATE_DT varchar(50),
|
4210
|
CHECKER_ID varchar(15), APPROVE_DT varchar(50), BRANCH_CREATE_FULLNAME nvarchar(1000), DEP_CREATE_FULLNAME nvarchar(1000), NOTES nvarchar(1000))
|
4211
|
OPEN XmlDataRequestCar
|
4212
|
|
4213
|
--- INSERT PHIEU YEU CAU XE
|
4214
|
FETCH NEXT FROM XmlDataRequestCar INTO @REQ_PAY_REQUEST_CAR_ID, @REQ_CAR_REQ_PAY_ID, @REQ_CAR_REQ_ID, @REQ_CAR_REQ_CODE, @REQ_CAR_MAKER_ID, @REQ_CAR_CREATE_DT,
|
4215
|
@REQ_CAR_CHECKER_ID, @REQ_CAR_APPROVE_DT, @BRANCH_CREATE_FULLNAME, @DEP_CREATE_FULLNAME, @REQ_CAR_NOTES
|
4216
|
WHILE @@fetch_status=0
|
4217
|
BEGIN
|
4218
|
DECLARE @p_REQUEST_CAR_ID VARCHAR(15);
|
4219
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_REQUEST_CAR', @p_REQUEST_CAR_ID OUT;
|
4220
|
IF @p_REQUEST_CAR_ID='' OR @p_REQUEST_CAR_ID IS NULL GOTO ABORT;
|
4221
|
|
4222
|
|
4223
|
INSERT INTO [dbo].[TR_REQ_PAY_REQUEST_CAR]
|
4224
|
([REQ_PAY_REQUEST_CAR_ID]
|
4225
|
,[REQ_PAY_ID]
|
4226
|
,[REQ_ID]
|
4227
|
,[REQ_CODE]
|
4228
|
,[MAKER_ID]
|
4229
|
,[CREATE_DT]
|
4230
|
,[CHECKER_ID]
|
4231
|
,[APPROVE_DT]
|
4232
|
,[BRANCH_CREATE_FULLNAME]
|
4233
|
,[DEP_CREATE_FULLNAME]
|
4234
|
,[NOTES])
|
4235
|
VALUES
|
4236
|
(@p_REQUEST_CAR_ID
|
4237
|
,@p_REQ_PAY_ID
|
4238
|
,@REQ_CAR_REQ_ID
|
4239
|
,@REQ_CAR_REQ_CODE
|
4240
|
,@REQ_CAR_MAKER_ID
|
4241
|
,CONVERT(DATETIME, @REQ_CAR_CREATE_DT, 103)
|
4242
|
,@REQ_CAR_CHECKER_ID
|
4243
|
,CONVERT(DATETIME, @REQ_CAR_APPROVE_DT, 103)
|
4244
|
,@BRANCH_CREATE_FULLNAME
|
4245
|
,@DEP_CREATE_FULLNAME
|
4246
|
,@REQ_CAR_NOTES)
|
4247
|
|
4248
|
IF @@error<>0 GOTO ABORT;
|
4249
|
FETCH NEXT FROM XmlDataRequestCar INTO @REQ_PAY_REQUEST_CAR_ID, @REQ_CAR_REQ_PAY_ID, @REQ_CAR_REQ_ID, @REQ_CAR_REQ_CODE, @REQ_CAR_MAKER_ID, @REQ_CAR_CREATE_DT,
|
4250
|
@REQ_CAR_CHECKER_ID, @REQ_CAR_APPROVE_DT, @BRANCH_CREATE_FULLNAME, @DEP_CREATE_FULLNAME, @REQ_CAR_NOTES
|
4251
|
END;
|
4252
|
CLOSE XmlDataRequestCar;
|
4253
|
DEALLOCATE XmlDataRequestCar;
|
4254
|
--- END INSERT PHIEU YEU CAU XE
|
4255
|
|
4256
|
-- INSERT TEMPLATE_REQUEST
|
4257
|
-- DS TO TRINH NGHIEP VU
|
4258
|
DELETE FROM CM_TEMPLATE_REQUEST_DOC WHERE TRN_ID = @p_REQ_PAY_ID
|
4259
|
DECLARE @REQUEST_TEMPLATE_ID VARCHAR(20), @REQUEST_TEMPLATE_CODE VARCHAR(20), @REQUEST_TEMPLATE_NAME NVARCHAR(500),
|
4260
|
@TYPE_TEMPLATE_NAME NVARCHAR(500), @REPORT_NO NVARCHAR(500), @BRANCH_NAME NVARCHAR(100), @REPORT_DT VARCHAR(25), @APPROVE_DT VARCHAR(25)
|
4261
|
|
4262
|
DECLARE XmlDataTemplateRequestDoc CURSOR LOCAL FOR
|
4263
|
SELECT * FROM OPENXML(@hdocTemplateRequestDoc, 'Root/XmlDataTemplateRequestDoc',2)
|
4264
|
WITH(REQUEST_TEMPLATE_ID VARCHAR(20), REQUEST_TEMPLATE_CODE VARCHAR(20), REQUEST_TEMPLATE_NAME NVARCHAR(500),
|
4265
|
TYPE_TEMPLATE_NAME NVARCHAR(500), REPORT_NO NVARCHAR(500), BRANCH_NAME NVARCHAR(100), REPORT_DT VARCHAR(25), APPROVE_DT VARCHAR(25))
|
4266
|
OPEN XmlDataTemplateRequestDoc
|
4267
|
|
4268
|
--- INSERT TO TRINH NGHIEP VU
|
4269
|
FETCH NEXT FROM XmlDataTemplateRequestDoc INTO @REQUEST_TEMPLATE_ID, @REQUEST_TEMPLATE_CODE, @REQUEST_TEMPLATE_NAME,
|
4270
|
@TYPE_TEMPLATE_NAME, @REPORT_NO, @BRANCH_NAME, @REPORT_DT, @APPROVE_DT
|
4271
|
WHILE @@fetch_status=0
|
4272
|
BEGIN
|
4273
|
DECLARE @l_CM_TEMPLATE_REQUEST_DOC_ID VARCHAR(15);
|
4274
|
EXEC SYS_CodeMasters_Gen 'CM_TEMPLATE_REQUEST_DOC', @l_CM_TEMPLATE_REQUEST_DOC_ID OUT;
|
4275
|
IF @l_CM_TEMPLATE_REQUEST_DOC_ID='' OR @l_CM_TEMPLATE_REQUEST_DOC_ID IS NULL GOTO ABORT;
|
4276
|
|
4277
|
|
4278
|
INSERT INTO [dbo].[CM_TEMPLATE_REQUEST_DOC]
|
4279
|
([CM_TEMPLATE_REQUEST_DOC_ID] ,[TRN_ID] ,[REQUEST_TEMPLATE_ID] ,[MAKER_ID] ,[CREATE_DT] )
|
4280
|
VALUES (@l_CM_TEMPLATE_REQUEST_DOC_ID ,@p_REQ_PAY_ID ,@REQUEST_TEMPLATE_ID ,@p_MAKER_ID , GETDATE())
|
4281
|
|
4282
|
IF @@error<>0 GOTO ABORT;
|
4283
|
FETCH NEXT FROM XmlDataTemplateRequestDoc INTO @REQUEST_TEMPLATE_ID, @REQUEST_TEMPLATE_CODE, @REQUEST_TEMPLATE_NAME,
|
4284
|
@TYPE_TEMPLATE_NAME, @REPORT_NO, @BRANCH_NAME, @REPORT_DT, @APPROVE_DT
|
4285
|
END;
|
4286
|
CLOSE XmlDataTemplateRequestDoc;
|
4287
|
DEALLOCATE XmlDataTemplateRequestDoc;
|
4288
|
--- END INSERT TO TRINH NGHIEP VU
|
4289
|
|
4290
|
COMMIT TRANSACTION
|
4291
|
-- BEIGN VALIDATE SEND APPROVE
|
4292
|
IF(@p_TYPE_FUNCTION ='SEND') -- KIEM TRA NEU 2 BIEN XML KHAC NULL TUC LA DANG TRONG QUA TRINH LUU NHAP
|
4293
|
BEGIN
|
4294
|
-- VALIDATE CAC LUOI THANH TOAN
|
4295
|
IF((SELECT COUNT(*) FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID = @p_REQ_PAY_ID) = 0 AND @p_REQ_TYPE = 'D')
|
4296
|
BEGIN
|
4297
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới thông tin các dịch vụ thanh toán không được để trống' ErrorDesc
|
4298
|
RETURN '-1'
|
4299
|
END
|
4300
|
/*
|
4301
|
*/
|
4302
|
ELSE IF((SELECT COUNT(*) FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) = 0 AND @p_REQ_TYPE = 'P' AND @p_IS_PERIOD <> 'Y')
|
4303
|
BEGIN
|
4304
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới thông tin PO/ hợp đồng không được để trống' ErrorDesc
|
4305
|
RETURN '-1'
|
4306
|
END
|
4307
|
ELSE IF((SELECT COUNT(*) FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) = 0 AND @p_REQ_TYPE = 'P' AND @p_IS_PERIOD = 'Y')
|
4308
|
BEGIN
|
4309
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới thông tin hợp đồng định kỳ không được để trống' ErrorDesc
|
4310
|
RETURN '-1'
|
4311
|
END
|
4312
|
|
4313
|
-- DECLARE
|
4314
|
DECLARE @BRANCH_TYPE_CR VARCHAR(15)
|
4315
|
DECLARE @SUM_THANH_TOAN DECIMAL(18,0) =0, @SUM_PHUONG_THUC DECIMAL(18,0) =0, @SUM_NGAN_SACH DECIMAL(18,2) =0, @SUM_USE_REAL DECIMAL(18,2), @SUM_SERVICE DECIMAL(18,0),
|
4316
|
@SUM_SCHEDULE DECIMAL(18,0), @SUM_PERIOD DECIMAL(18,0), @SUM_PAY_BACK DECIMAL(18,0) =0, @SUM_ADD DECIMAL(18,0), @SUM_USE_I DECIMAL(18,0)
|
4317
|
-- SET
|
4318
|
SET @BRANCH_TYPE_CR =(SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_CREATE)
|
4319
|
SET @SUM_THANH_TOAN =(SELECT ISNULL(SUM(REQ_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4320
|
SET @SUM_PHUONG_THUC =ABS((SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
4321
|
AND (TYPE_TRANSFER ='A' OR TYPE_TRANSFER IS NULL OR TYPE_TRANSFER ='')) - (SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
4322
|
AND TYPE_TRANSFER ='R'))
|
4323
|
SET @SUM_NGAN_SACH =(SELECT ISNULL(SUM(AMT_EXE * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4324
|
SET @SUM_SERVICE =(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4325
|
SET @SUM_PERIOD =(SELECT ISNULL(SUM(AMT_PAY * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4326
|
SET @SUM_SCHEDULE =(SELECT ISNULL(SUM(AMT_PAY_REAL * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4327
|
|
4328
|
PRINT '@SUM_THANH_TOAN: ' + CONVERT(VARCHAR(20),@SUM_THANH_TOAN);
|
4329
|
PRINT '@SUM_PHUONG_THUC: ' + CONVERT(VARCHAR(20),@SUM_PHUONG_THUC);
|
4330
|
PRINT '@SUM_NGAN_SACH: ' + CONVERT(VARCHAR(20),@SUM_NGAN_SACH);
|
4331
|
PRINT '@SUM_SERVICE: ' + CONVERT(VARCHAR(20),@SUM_SERVICE);
|
4332
|
PRINT '@SUM_PERIOD: ' + CONVERT(VARCHAR(20),@SUM_PERIOD);
|
4333
|
PRINT '@SUM_SCHEDULE: ' + CONVERT(VARCHAR(20),@SUM_SCHEDULE);
|
4334
|
|
4335
|
IF(@p_REQ_TYPE ='I')
|
4336
|
BEGIN
|
4337
|
/*SET @SUM_USE_I = (SELECT ISNULL(SUM(TOTAL_AMT*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4338
|
+ (SELECT ISNULL(SUM(AMT_PAY*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4339
|
+ (SELECT ISNULL(SUM(AMT_PAY_REAL*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID)*/
|
4340
|
SET @SUM_USE_REAL =(SELECT ISNULL(SUM(AMT_USE*ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT_DT WHERE PAY_ID =@p_REQ_PAY_ID)
|
4341
|
SET @SUM_PAY_BACK =(SELECT ISNULL(SUM(AMT_REVERT*ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT_DT WHERE PAY_ID =@p_REQ_PAY_ID)
|
4342
|
SET @SUM_ADD =(SELECT ISNULL(SUM(AMT_ADD*ISNULL(RATE,1)),0) FROM TR_REQ_PAYMENT_DT WHERE PAY_ID =@p_REQ_PAY_ID)
|
4343
|
SET @SUM_PHUONG_THUC =(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TYPE_TRANSFER ='A') -
|
4344
|
(SELECT ISNULL(SUM(TOTAL_AMT * ISNULL(RATE,1)),0) FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TYPE_TRANSFER ='R')
|
4345
|
END
|
4346
|
IF(@p_REQ_TYPE ='P' AND @p_IS_PERIOD ='Y' AND @p_IS_PERIOD <>'' AND @p_IS_PERIOD IS NOT NULL)
|
4347
|
BEGIN
|
4348
|
SET @SUM_USE_REAL =(SELECT ISNULL(SUM(AMT_PAY*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4349
|
--SET @SUM_PAY_BACK =(SELECT ISNULL(SUM(AMT_PAY*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND PROCESS <> '0')
|
4350
|
|
4351
|
END
|
4352
|
IF(@p_REQ_TYPE ='P' AND (@p_IS_PERIOD ='N' OR (@p_IS_PERIOD ='' OR @p_IS_PERIOD IS NULL)))
|
4353
|
BEGIN
|
4354
|
SET @SUM_USE_REAL =(SELECT ISNULL(SUM(AMT_PAY_REAL*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4355
|
SET @SUM_PAY_BACK =(SELECT ISNULL(SUM(AMT_ADVANCE*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4356
|
END
|
4357
|
IF(@p_REQ_TYPE ='D')
|
4358
|
BEGIN
|
4359
|
SET @SUM_USE_REAL =(SELECT ISNULL(SUM(TOTAL_AMT*ISNULL(RATE,1)),0) FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
4360
|
END
|
4361
|
IF(@p_REQ_TYPE = 'D' AND ROUND(@SUM_NGAN_SACH,0) <> ROUND(@SUM_THANH_TOAN,0))
|
4362
|
BEGIN
|
4363
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền sử dụng ngân sách và chi phí phải bằng số tiền bạn cần thanh toán là: ' + FORMAT(SUM(@SUM_THANH_TOAN),'#,#', 'vi-VN') ErrorDesc
|
4364
|
RETURN '-1'
|
4365
|
END
|
4366
|
PRINT '@SUM_USE_REAL: ' + CONVERT(VARCHAR(20),@SUM_USE_REAL);
|
4367
|
PRINT '@@SUM_NGAN_SACH: ' + CONVERT(VARCHAR(20),ROUND(@SUM_NGAN_SACH,0));
|
4368
|
PRINT '@@SUM_USE_REAL: ' + CONVERT(VARCHAR(20),ROUND(@SUM_USE_REAL,0));
|
4369
|
IF(ROUND(@SUM_NGAN_SACH,0) <> ROUND(@SUM_USE_REAL,0))
|
4370
|
BEGIN
|
4371
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền sử dụng ngân sách và chi phí phải bằng số tiền bạn sử dụng thực tế là: ' + FORMAT(SUM(@SUM_USE_REAL),'#,#', 'vi-VN') ErrorDesc
|
4372
|
RETURN '-1'
|
4373
|
END
|
4374
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE TRASFER_USER_RECIVE <> '' AND TRASFER_USER_RECIVE IS NOT NULL AND REQ_PAY_ID =@p_REQ_PAY_ID) AND @BRANCH_TYPE_CR ='PGD')
|
4375
|
BEGIN
|
4376
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Cấp độ phòng giao dịch vui lòng không được chọn cấp phê duyệt trung gian' ErrorDesc
|
4377
|
RETURN '-1'
|
4378
|
END
|
4379
|
IF(@p_REQ_TYPE <> 'I')
|
4380
|
BEGIN
|
4381
|
IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID))
|
4382
|
BEGIN
|
4383
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Thông tin hạng mục ngân sách và chi phí không được để trống. Vui lòng chọn ngân sách và chi phí' ErrorDesc
|
4384
|
RETURN '-1'
|
4385
|
END
|
4386
|
IF(ROUND(@SUM_THANH_TOAN,0) <> ROUND(@SUM_PHUONG_THUC,0))
|
4387
|
BEGIN
|
4388
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền phương thức thanh toán phải bằng số tiền bạn cần thanh toán là: ' + FORMAT(ISNULL(@SUM_THANH_TOAN, 0),'#,#', 'vi-VN') ErrorDesc
|
4389
|
RETURN '-1'
|
4390
|
END
|
4391
|
END
|
4392
|
ELSE
|
4393
|
BEGIN
|
4394
|
print 'START thanh toan hoan tam ung'
|
4395
|
IF(ISNULL(@SUM_USE_REAL,0) >0)
|
4396
|
BEGIN
|
4397
|
IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID =@p_REQ_PAY_ID))
|
4398
|
BEGIN
|
4399
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Thông tin hạng mục ngân sách và chi phí không được để trống. Vui lòng chọn ngân sách và chi phí' ErrorDesc
|
4400
|
RETURN '-1'
|
4401
|
END
|
4402
|
IF(ROUND(@SUM_NGAN_SACH,0) <> ROUND(@SUM_USE_REAL,0))
|
4403
|
BEGIN
|
4404
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền sử dụng ngân sách và chi phí phải bằng số tiền sử dụng thực tế trên lưới hoàn tạm ứng: ' + FORMAT(SUM(@SUM_USE_REAL),'#,#', 'vi-VN') ErrorDesc
|
4405
|
RETURN '-1'
|
4406
|
END
|
4407
|
IF(ISNULL(@SUM_USE_REAL,0) <> (ISNULL(@SUM_SERVICE,0) + ISNULL(@SUM_PERIOD,0) + ISNULL(@SUM_SCHEDULE,0)))
|
4408
|
BEGIN
|
4409
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Tổng số tiền thanh toán dịch vụ, thanh toán nhà cung cấp, thanh toán định kì phải bằng số tiền sử dụng thực tế trên lưới hoàn tạm ứng: ' + FORMAT(SUM(@SUM_USE_REAL),'#,#', 'vi-VN') ErrorDesc
|
4410
|
RETURN '-1'
|
4411
|
END
|
4412
|
END
|
4413
|
--IF(ABS((ISNULL(@SUM_ADD,0) - ISNULL(@SUM_PAY_BACK,0))) <> @SUM_PHUONG_THUC)
|
4414
|
IF(((ISNULL(@SUM_ADD,0) - ISNULL(@SUM_PAY_BACK,0))) <> @SUM_PHUONG_THUC)
|
4415
|
BEGIN
|
4416
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Số tiền phương thức thanh toán (hiệu số thanh toán và trích từ tai khoản) tương ứng với số tiền chi bổ sung trừ số tiền hoàn tạm ứng: ' + FORMAT(ABS((ISNULL(@SUM_ADD,0) - ISNULL(@SUM_PAY_BACK,0))),'#,#', 'vi-VN') + ' ' + CAST(@SUM_PHUONG_THUC as nvarchar) ErrorDesc
|
4417
|
RETURN '-1'
|
4418
|
END
|
4419
|
END
|
4420
|
-- CAP NHAT TINH TRANG DUYET KE TOAN LA DANG XU LY
|
4421
|
IF(ISNULL(@p_TRASFER_USER_RECIVE, '') <> '')
|
4422
|
BEGIN
|
4423
|
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='W', PROCESS = NULL WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
4424
|
END
|
4425
|
ELSE
|
4426
|
BEGIN
|
4427
|
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='U', PROCESS = NULL WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
4428
|
END
|
4429
|
|
4430
|
INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
|
4431
|
|
4432
|
VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID,GETDATE(), N'Đơn vị gửi phê duyệt',N'Đơn vị tạo phiếu thanh toán và gửi phê duyệt')
|
4433
|
--- Luu log chinh sua
|
4434
|
INSERT INTO TR_REQ_PAY_INVOICE_LOG SELECT * FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
4435
|
-----
|
4436
|
UPDATE TR_REQ_PAY_SCHEDULE SET AMT_REMAIN =0.00 WHERE AMT_REMAIN <0
|
4437
|
UPDATE TR_REQ_PAY_BUDGET SET AMT_APP= ROUND(AMT_APP,0), AMT_REMAIN = ROUND(AMT_REMAIN,0)
|
4438
|
|
4439
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE (TRASFER_USER_RECIVE <> '' AND TRASFER_USER_RECIVE IS NOT NULL) AND REQ_PAY_ID =@p_REQ_PAY_ID))
|
4440
|
BEGIN
|
4441
|
SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị thanh toán số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận phiếu' ErrorDesc
|
4442
|
RETURN '4'
|
4443
|
END
|
4444
|
ELSE
|
4445
|
BEGIN
|
4446
|
SELECT '4' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Đơn vị gửi phiếu phê duyệt phiếu đề nghị thanh toán số: ' + ISNULL(@p_REQ_PAY_CODE,'') + N' thành công. Vui lòng đợi trưởng đơn vị phê duyệt phiếu' ErrorDesc
|
4447
|
RETURN '4'
|
4448
|
END
|
4449
|
END
|
4450
|
-- END VALIDATE SEND APPROVE
|
4451
|
|
4452
|
|
4453
|
SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' ErrorDesc
|
4454
|
RETURN '0'
|
4455
|
ABORT:
|
4456
|
BEGIN
|
4457
|
ROLLBACK TRANSACTION
|
4458
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
|
4459
|
RETURN '-1'
|
4460
|
End
|
4461
|
|
4462
|
GO
|
4463
|
|
4464
|
--08082023_secretkey
|