1
|
|
2
|
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_KT_Upd]
|
3
|
@p_REQ_PAY_AUTO_ID VARCHAR(20)= NULL,
|
4
|
@p_REQ_PAY_AUTO_CODE VARCHAR(20)= NULL,
|
5
|
@p_REQ_PAY_AUTO_DT VARCHAR(20)= NULL,
|
6
|
@p_REQ_PAY_AUTO_TYPE VARCHAR(20)= NULL,
|
7
|
@p_REQ_PAY_AUTO_SERVICE_TYPE VARCHAR(20)= NULL,
|
8
|
@p_REQ_PAY_AUTO_STATUS VARCHAR(20)= NULL,
|
9
|
@p_REQ_PAY_AUTO_EFFECTIVE_DT VARCHAR(20)= NULL,
|
10
|
@p_BRANCH_ID VARCHAR(20)= NULL,
|
11
|
@p_DEP_ID VARCHAR(20)= NULL,
|
12
|
@p_BRANCH_CREATE VARCHAR(20)= NULL,
|
13
|
@p_TRANSFER_USER_RECEIVE VARCHAR(20)= NULL,
|
14
|
@p_CONFIRM_NOTE NVARCHAR(500)= NULL,
|
15
|
@p_CONTRACT_ID VARCHAR(20)= NULL,
|
16
|
@p_PROCESS VARCHAR(20)= NULL,
|
17
|
@p_TRANSFER_MAKER VARCHAR(20)= NULL,
|
18
|
@p_TRANSFER_DT VARCHAR(20)= NULL,
|
19
|
@p_MAKER_ID VARCHAR(20)= NULL,
|
20
|
@p_CREATE_DT VARCHAR(20)= NULL,
|
21
|
@p_EDITOR_ID VARCHAR(20)= NULL,
|
22
|
@p_EDIT_DT VARCHAR(20)= NULL,
|
23
|
@p_CHECKER_ID VARCHAR(20)= NULL,
|
24
|
@p_APPROVE_DT VARCHAR(20)= NULL,
|
25
|
@p_AUTH_STATUS VARCHAR(20)= NULL,
|
26
|
@p_MAKER_ID_KT VARCHAR(20)= NULL,
|
27
|
@p_CREATE_DT_KT VARCHAR(20)= NULL,
|
28
|
@p_CHECKER_ID_KT VARCHAR(20)= NULL,
|
29
|
@p_APPROVE_DT_KT VARCHAR(20)= NULL,
|
30
|
@p_AUTH_STATUS_KT VARCHAR(20)= NULL,
|
31
|
@p_RECORD_STATUS VARCHAR(20)= NULL,
|
32
|
@p_FRMDATE VARCHAR(20)= NULL,
|
33
|
@p_TODATE VARCHAR(20)= NULL,
|
34
|
@p_LEVEL VARCHAR(20)= NULL,
|
35
|
@p_USER_LOGIN VARCHAR(20)= NULL,
|
36
|
@p_IS_SEND_APPR VARCHAR(20)= NULL,
|
37
|
@p_TYPE_SEARCH VARCHAR(20)= NULL,
|
38
|
@p_BRANCH_LOGIN VARCHAR(20)= NULL,
|
39
|
@p_XMP_BUDGET_ALLOCATION XML = NULL,
|
40
|
@p_XMP_ENTRIES XML = NULL,
|
41
|
@p_XMP_TRANSFER_OUTSIDE_TRANS XML = NULL,
|
42
|
@p_XMP_TRANSFER_OUTSIDE_REC XML = NULL
|
43
|
AS
|
44
|
-- BEGIN VALIDATE
|
45
|
-- END VALIDATE
|
46
|
-- BEGIN VALIDATE FLOW
|
47
|
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(AUTH_STATUS, '') <> 'A' AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID AND ISNULL(REQUEST_STATUS, '') = ''))
|
48
|
BEGIN
|
49
|
SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động chưa được chuyển đến phòng kế toán' ErrorDesc
|
50
|
RETURN '-1'
|
51
|
END
|
52
|
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS_KT = 'A' AND ISNULL(PROCESS, '') = '5' AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID))
|
53
|
BEGIN
|
54
|
SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động đã được kiếm sát viên phê duyệt' ErrorDesc
|
55
|
RETURN '-1'
|
56
|
END
|
57
|
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS_KT = 'P' AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID))
|
58
|
BEGIN
|
59
|
SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động đã được gửi phê duyệt trước đó' ErrorDesc
|
60
|
RETURN '-1'
|
61
|
END
|
62
|
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE AUTH_STATUS_KT = 'S' AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID))
|
63
|
BEGIN
|
64
|
SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động đã được đề xuất từ chối trước đó' ErrorDesc
|
65
|
RETURN '-1'
|
66
|
END
|
67
|
IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_REQ_PAY_AUTO_ID))
|
68
|
BEGIN
|
69
|
SELECT '-1' as Result, '' REQ_PAY_AUTO_ID, N'Cập nhật thất bại! Phiếu yêu cầu thanh toán tự động chưa được KSV điều phối' ErrorDesc
|
70
|
RETURN '-1'
|
71
|
END
|
72
|
-- END VALIDATE FLOW
|
73
|
BEGIN TRANSACTION
|
74
|
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(PROCESS, '') NOT IN ('12', '18') AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) -- NEU KHONG PHAI XAC NHAN TAM DUNG HOAC HUY PHIEU
|
75
|
BEGIN
|
76
|
UPDATE TR_REQ_PAYMENT_AUTO
|
77
|
SET AUTH_STATUS_KT = 'U', CONFIRM_NOTE = @p_CONFIRM_NOTE, CREATE_DT_KT = GETDATE(), MAKER_ID_KT = @p_USER_LOGIN, CHECKER_ID_KT=NULL, APPROVE_DT_KT = NULL
|
78
|
WHERE 1 = 1
|
79
|
AND REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID
|
80
|
IF @@Error <> 0 GOTO ABORT
|
81
|
|
82
|
DECLARE @ENTRY_PAIR varchar(20),@DR_CR varchar(20),@ACCT VARCHAR(50), @ACCT_NAME VARCHAR(500), @AMT decimal(18,2),@CURRENCY VARCHAR(15), @EXC_RATE DECIMAL(18,0),
|
83
|
@BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15),@TRN_DESC nvarchar(255),@GL_CODE VARCHAR(100),@GL_CODE_ACCNO VARCHAR(20), @BRANCH_CODE VARCHAR(15), @DEP_CODE VARCHAR(15)
|
84
|
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,
|
85
|
@INVOICE_NO nvarchar(50) = NULL,@INVOICE_DT VARCHAR(20) = NULL,@SELLER nvarchar(250) = NULL,@TAX_NO nvarchar(15) = NULL,@GOODS_NAME nvarchar(250) = NULL,
|
86
|
@PRICE decimal(18, 0) = NULL,@TAX decimal(18, 0) = NULL,@NOTES NVARCHAR(MAX) = NULL,@VAT_RATE decimal(18,2),
|
87
|
@ACC_NO VARCHAR(25),@ACC_NAME NVARCHAR(250),@ISSUED_BY NVARCHAR(250),@ISSUED_DT VARCHAR(20),@RATE DECIMAL(18,2),@PRICE_KT DECIMAL(18,2) =0,@TOTAL_AMT_KT DECIMAL(18,2) =0,@VAT_KT DECIMAL(18,2) =0,
|
88
|
@TYPE_VAT VARCHAR(15),@TYPE_FUNC VARCHAR(15), @IS_TRANSFER_EXTERNAL VARCHAR(15)
|
89
|
------------------------------------------------------------------------- BEGIN LUOI HACH TOAN -----------------------------------------------------------------------
|
90
|
DECLARE @hdoc INT;
|
91
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_ENTRIES;
|
92
|
DECLARE XmlDataEntries CURSOR FOR SELECT * FROM OPENXML(@hdoc, '/Root/XmlDataEntries', 2)
|
93
|
WITH(ENTRY_PAIR varchar(20),DR_CR varchar(20),ACCT VARCHAR(50), ACCT_NAME VARCHAR(500), AMT decimal(18,2),CURRENCY VARCHAR(15), EXC_RATE DECIMAL(18,0),
|
94
|
BRANCH_ID VARCHAR(15), DEP_ID VARCHAR(15),TRN_DESC nvarchar(1000),GL_CODE VARCHAR(100),GL_CODE_ACCNO VARCHAR(20), IS_TRANSFER_EXTERNAL VARCHAR(15))
|
95
|
OPEN XmlDataEntries;
|
96
|
|
97
|
DELETE FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID
|
98
|
DECLARE @INDEX INT = 0;
|
99
|
IF @@Error <> 0 GOTO ABORT
|
100
|
DECLARE @DR_CR_NAME NVARCHAR(50),@ACC_NAME_FN NVARCHAR(500)
|
101
|
FETCH NEXT FROM XmlDataEntries INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE, @GL_CODE_ACCNO, @IS_TRANSFER_EXTERNAL
|
102
|
WHILE @@fetch_status=0
|
103
|
BEGIN
|
104
|
IF(@EXC_RATE IS NULL)
|
105
|
BEGIN
|
106
|
SET @EXC_RATE = 1
|
107
|
END
|
108
|
|
109
|
SET @INDEX = @INDEX +1
|
110
|
SET @ACC_NAME =UPPER(dbo.fChuyenCoDauThanhKhongDau(@ACCT_NAME))
|
111
|
|
112
|
-- NEU TEN TAI KHOAN RONG, THI LAY TEN TU CHECK CASA
|
113
|
IF(ISNULL(@GL_CODE, '') <> '')
|
114
|
BEGIN
|
115
|
SET @ACC_NAME = STUFF(@GL_CODE, LEN(@GL_CODE)-8, 9, '')
|
116
|
SET @ACCT_NAME = STUFF(@GL_CODE, LEN(@GL_CODE)-8, 9, '')
|
117
|
END
|
118
|
-- NEU SO TAI KHOAN RONG, THI LAY SO TAI KHOAN TU CHECK CASA
|
119
|
SET @GL_CODE = RIGHT(@GL_CODE,9)
|
120
|
IF(ISNULL(@ACCT, '') = '' AND ISNULL(@GL_CODE_ACCNO, '') <> '')
|
121
|
BEGIN
|
122
|
SET @ACCT = @GL_CODE_ACCNO
|
123
|
END
|
124
|
|
125
|
IF(@DR_CR='D')
|
126
|
BEGIN
|
127
|
SET @DR_CR_NAME =N'Nợ'
|
128
|
END
|
129
|
ELSE
|
130
|
BEGIN
|
131
|
SET @DR_CR_NAME =N'Có'
|
132
|
END
|
133
|
|
134
|
SET @BRANCH_CODE =(SELECT TOP 1 BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_ID)
|
135
|
SET @DEP_CODE =(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_ID)
|
136
|
|
137
|
IF(@p_IS_SEND_APPR = 'SEND')
|
138
|
BEGIN
|
139
|
IF(@ENTRY_PAIR IS NULL OR @ENTRY_PAIR ='')
|
140
|
BEGIN
|
141
|
ROLLBACK TRANSACTION
|
142
|
CLOSE XmlDataEntries;
|
143
|
DEALLOCATE XmlDataEntries;
|
144
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Mã bút toán không được phép để trống' ErrorDesc
|
145
|
RETURN '-1'
|
146
|
END
|
147
|
|
148
|
IF(@DR_CR IS NULL OR @DR_CR ='')
|
149
|
BEGIN
|
150
|
ROLLBACK TRANSACTION
|
151
|
CLOSE XmlDataEntries;
|
152
|
DEALLOCATE XmlDataEntries;
|
153
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Nợ/có không được phép để trống' ErrorDesc
|
154
|
RETURN '-1'
|
155
|
END
|
156
|
|
157
|
IF(@ACCT IS NULL OR @ACCT ='')
|
158
|
BEGIN
|
159
|
ROLLBACK TRANSACTION
|
160
|
CLOSE XmlDataEntries;
|
161
|
DEALLOCATE XmlDataEntries;
|
162
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Số tài khoản không được phép để trống' ErrorDesc
|
163
|
RETURN '-1'
|
164
|
END
|
165
|
|
166
|
IF(@ACCT_NAME IS NULL OR @ACCT_NAME ='')
|
167
|
BEGIN
|
168
|
ROLLBACK TRANSACTION
|
169
|
CLOSE XmlDataEntries;
|
170
|
DEALLOCATE XmlDataEntries;
|
171
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Tên tài khoản hạch toán chưa đúng. Vui lòng bấm vào nút Check GL & Check CASA để đồng bộ tài khoản từ Core' ErrorDesc
|
172
|
RETURN '-1'
|
173
|
END
|
174
|
|
175
|
IF(@BRANCH_ID IS NULL OR @BRANCH_ID ='')
|
176
|
BEGIN
|
177
|
ROLLBACK TRANSACTION
|
178
|
CLOSE XmlDataEntries;
|
179
|
DEALLOCATE XmlDataEntries;
|
180
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Đơn vị nhận không được phép để trống' ErrorDesc
|
181
|
RETURN '-1'
|
182
|
END
|
183
|
|
184
|
IF(@ACCT IS NOT NULL AND @ACCT <> '' AND LEFT(@ACCT,1) IN ('7','8') AND (@DEP_ID IS NULL OR @DEP_ID ='') AND LEN(@ACCT) < 13)
|
185
|
BEGIN
|
186
|
ROLLBACK TRANSACTION
|
187
|
CLOSE XmlDataEntries;
|
188
|
DEALLOCATE XmlDataEntries;
|
189
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Tài khoản hạch toán đầu số 7 & 8 vui lòng chọn mã phòng ban' ErrorDesc
|
190
|
RETURN '-1'
|
191
|
END
|
192
|
|
193
|
IF(@GL_CODE IS NULL OR @GL_CODE ='')
|
194
|
BEGIN
|
195
|
IF (LEN(@ACCT) >9 AND ((SELECT ISNULL(TK_GL,'') FROM CM_ACCOUNT WHERE ACC_NO =@ACCT) ='' OR (SELECT ISNULL(TK_GL_NAME,'') FROM CM_ACCOUNT WHERE ACC_NO =@ACCT) =''))
|
196
|
BEGIN
|
197
|
ROLLBACK TRANSACTION
|
198
|
CLOSE XmlDataEntries;
|
199
|
DEALLOCATE XmlDataEntries;
|
200
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Tài khoản CASA chưa có thông tin GL Mapping. Vui lòng bấm vào nút Kiểm tra tài khoản để đồng bộ tài khoản từ Core' ErrorDesc
|
201
|
RETURN '-1'
|
202
|
END
|
203
|
END
|
204
|
|
205
|
IF(@ACCT IS NOT NULL AND @ACCT <> '' AND LEFT(@ACCT,1) IN ('7','8') AND (@DEP_ID IS NULL OR @DEP_ID ='') AND LEN(@ACCT) < 13)
|
206
|
BEGIN
|
207
|
ROLLBACK TRANSACTION
|
208
|
CLOSE XmlDataEntries;
|
209
|
DEALLOCATE XmlDataEntries;
|
210
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Tài khoản hạch toán đầu số 7 & 8 vui lòng chọn mã phòng ban' ErrorDesc
|
211
|
RETURN '-1'
|
212
|
END
|
213
|
|
214
|
IF(@DEP_ID IS NOT NULL AND @DEP_ID <> '' AND (LEFT(@DEP_CODE,3) <> @BRANCH_CODE))
|
215
|
BEGIN
|
216
|
ROLLBACK TRANSACTION
|
217
|
CLOSE XmlDataEntries;
|
218
|
DEALLOCATE XmlDataEntries;
|
219
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Vui lòng chọn mã phòng ban khớp với mã đơn vị tương ứng với 3 kí tự đầu của tài khoản CASA' ErrorDesc
|
220
|
RETURN '-1'
|
221
|
END
|
222
|
|
223
|
-- NEU HACH TOAN CASA THI 3 KI TU DAU PHAI KHOP VOI BRANCH CODE CUA DON VI CHIU CHI PHI
|
224
|
IF(LEN(@ACCT) >9 AND (SUBSTRING(@ACCT,1,3) <> (SELECT ISNULL(BRANCH_CODE,'') FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID)))
|
225
|
BEGIN
|
226
|
ROLLBACK TRANSACTION
|
227
|
CLOSE XmlDataEntries;
|
228
|
DEALLOCATE XmlDataEntries;
|
229
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới hạch toán, dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Nếu bạn đang hạch toán CASA trong hệ thống. Vui lòng chọn mã đơn vị khớp với mã đơn vị tương ứng với 3 kí tự đầu của tài khoản CASA' ErrorDesc
|
230
|
RETURN '-1'
|
231
|
END
|
232
|
END -- END IF VALIDATE
|
233
|
|
234
|
DECLARE @p_ET_ID VARCHAR(15);
|
235
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_AUTO_ENTRIES', @p_ET_ID OUT;
|
236
|
IF @p_ET_ID='' OR @p_ET_ID IS NULL GOTO ABORT;
|
237
|
|
238
|
|
239
|
INSERT INTO TR_REQ_PAY_AUTO_ENTRIES (REQ_PAY_AUTO_DT_ID,REQ_PAY_AUTO_ID,ENTRY_PAIR,DR_CR,DR_CR_NAME,ACCT,ACCT_NAME,AMT,BRANCH_ID,DEP_ID,TRN_DESC,TRN_DATE,MAKER_ID_KT, TRN_TYPE, CURRENCY, EXC_RATE, IS_TRANSFER_EXTERNAL)
|
240
|
VALUES (@p_ET_ID,@p_REQ_PAY_AUTO_ID,@ENTRY_PAIR,@DR_CR,@DR_CR_NAME,@ACCT,@ACCT_NAME, @AMT, @BRANCH_ID, @DEP_ID,@TRN_DESC,GETDATE(), @p_USER_LOGIN, 'PAYMENT', 'VND', 1, @IS_TRANSFER_EXTERNAL)
|
241
|
|
242
|
-- NEU CHUA CO TAI KHOAN THI THEM VO CM_ACCOUNT
|
243
|
IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@ACCT))
|
244
|
BEGIN
|
245
|
INSERT INTO CM_ACCOUNT (ACC_NO, ACC_NAME, TK_GL, TK_GL_NAME, MAKER_ID, CHECKER_ID,CREATE_DT) VALUES
|
246
|
(@ACCT,@ACCT_NAME,@GL_CODE,(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE),'admin','admin',GETDATE())
|
247
|
END
|
248
|
ELSE
|
249
|
BEGIN
|
250
|
IF(@GL_CODE IS NOT NULL AND @GL_CODE <> '' AND @GL_CODE <> '0')
|
251
|
BEGIN
|
252
|
UPDATE CM_ACCOUNT SET ACC_NAME =@ACCT_NAME, TK_GL =@GL_CODE, TK_GL_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE), EDITOR_DT = GETDATE()
|
253
|
WHERE ACC_NO=@ACCT
|
254
|
END
|
255
|
END
|
256
|
IF @@error<>0 GOTO ABORT;
|
257
|
FETCH NEXT FROM XmlDataEntries INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE, @GL_CODE_ACCNO, @IS_TRANSFER_EXTERNAL
|
258
|
END;--END WHILE
|
259
|
CLOSE XmlDataEntries;
|
260
|
DEALLOCATE XmlDataEntries;
|
261
|
------------------------------------------------------------------------------------------ END LUOI HACH TOAN --------------------------------------------------------------------
|
262
|
|
263
|
-- BEGIN INSERT đơn vị chuyển
|
264
|
DECLARE @hdocOutsideTrans INT
|
265
|
EXEC sp_xml_preparedocument @hdocOutsideTrans OUTPUT, @p_XMP_TRANSFER_OUTSIDE_TRANS;
|
266
|
DECLARE @MAKER_ID_KT VARCHAR(15), @TYPE_TRANSFER_ID VARCHAR(15), @PRODUCT_ID VARCHAR(15), @OBJECT_TRANSFER_ID VARCHAR(15),
|
267
|
@ACC_NO_TRANSFER VARCHAR(255), @BRANCH_TRANSFER_ID VARCHAR(15), @BRANCH_TRANFSER_NAME NVARCHAR(255)
|
268
|
DECLARE XmlDataOutsideTrans CURSOR LOCAL FOR
|
269
|
SELECT * FROM OPENXML(@hdocOutsideTrans, 'Root/XmlDataTransferOutside',2)
|
270
|
WITH(MAKER_ID VARCHAR(15), TYPE_TRANSFER_ID VARCHAR(15), PRODUCT_ID VARCHAR(15), OBJECT_TRANSFER_ID VARCHAR(15), BRANCH_ID VARCHAR(15),
|
271
|
ACC_NO_TRANSFER VARCHAR(255), BRANCH_TRANSFER_ID VARCHAR(15), CURRENCY VARCHAR(15), BRANCH_TRANFSER_NAME NVARCHAR(255))
|
272
|
|
273
|
OPEN XmlDataOutsideTrans
|
274
|
DELETE FROM TR_REQ_PAY_AUTO_TRANS_OUTSIDE_TRANS WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID
|
275
|
FETCH NEXT FROM XmlDataOutsideTrans INTO @MAKER_ID_KT , @TYPE_TRANSFER_ID, @PRODUCT_ID, @OBJECT_TRANSFER_ID, @BRANCH_ID,
|
276
|
@ACC_NO_TRANSFER, @BRANCH_TRANSFER_ID, @CURRENCY, @BRANCH_TRANFSER_NAME
|
277
|
WHILE @@fetch_status=0
|
278
|
BEGIN
|
279
|
DECLARE @p_TR_REQ_TRANS_OUTSIDE_ID VARCHAR(15);
|
280
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_AUTO_OUTSIDE_TRANS', @p_TR_REQ_TRANS_OUTSIDE_ID OUT;
|
281
|
IF @p_TR_REQ_TRANS_OUTSIDE_ID='' OR @p_TR_REQ_TRANS_OUTSIDE_ID IS NULL GOTO ABORT;
|
282
|
|
283
|
INSERT INTO TR_REQ_PAY_AUTO_TRANS_OUTSIDE_TRANS(TR_REQ_TRANS_OUTSIDE_ID ,REQ_PAY_AUTO_ID ,MAKER_ID , CREATE_DT , AUTH_STATUS, AUTH_STATUS_KT ,
|
284
|
BRANCH_TRANFSER_NAME,TYPE_TRANSFER_ID , PRODUCT_ID , OBJECT_TRANSFER_ID , BRANCH_ID, ACC_NO_TRANSFER , BRANCH_TRANSFER_ID)
|
285
|
VALUES (@p_TR_REQ_TRANS_OUTSIDE_ID ,@p_REQ_PAY_AUTO_ID ,@p_MAKER_ID_KT , GETDATE(), NULL , NULL,
|
286
|
@BRANCH_TRANFSER_NAME, @TYPE_TRANSFER_ID , @PRODUCT_ID , @OBJECT_TRANSFER_ID , @BRANCH_ID, @ACC_NO_TRANSFER , @BRANCH_TRANSFER_ID)
|
287
|
|
288
|
IF @@error<>0 GOTO ABORT;
|
289
|
FETCH NEXT FROM XmlDataOutsideTrans INTO @MAKER_ID_KT , @TYPE_TRANSFER_ID, @PRODUCT_ID, @OBJECT_TRANSFER_ID, @BRANCH_ID,
|
290
|
@ACC_NO_TRANSFER, @BRANCH_TRANSFER_ID, @CURRENCY, @BRANCH_TRANFSER_NAME
|
291
|
END;
|
292
|
CLOSE XmlDataOutsideTrans;
|
293
|
DEALLOCATE XmlDataOutsideTrans;
|
294
|
--- END INSERT đơn vị chuyển
|
295
|
|
296
|
-- BEGIN INSERT đơn vị nhận
|
297
|
DECLARE @hdocOutsideRec INT
|
298
|
EXEC sp_xml_preparedocument @hdocOutsideRec OUTPUT, @p_XMP_TRANSFER_OUTSIDE_REC;
|
299
|
|
300
|
DECLARE @CHANEL_PAYMENT_ID VARCHAR(15), @CITAD1_ID VARCHAR(15), @BANK_RECEIVE_ID VARCHAR(250), @OBJECT_RECEIVE_ID VARCHAR(15),
|
301
|
@BRANCH_RECEIVE_ID VARCHAR(15), @BRANCH_RECEIVE_NAME NVARCHAR(255), @ACC_NO_RECEIVE VARCHAR(255), @TRADE_AMT DECIMAL(18, 0), @TRADE_DESC NVARCHAR(120), @SUB_BANK_RECEIVE_NAME nvarchar(MAX), @REF_NO VARCHAR(50)
|
302
|
-- INSERT đơn vị nhận
|
303
|
DECLARE XmlDataOutsideRec CURSOR LOCAL FOR
|
304
|
SELECT * FROM OPENXML(@hdocOutsideRec, 'Root/XmlDataTransferOutside',2)
|
305
|
WITH(MAKER_ID VARCHAR(15), CHANEL_PAYMENT_ID VARCHAR(15), CITAD1_ID VARCHAR(15), BANK_RECEIVE_ID VARCHAR(250), OBJECT_RECEIVE_ID VARCHAR(15),
|
306
|
BRANCH_RECEIVE_ID VARCHAR(15), BRANCH_RECEIVE_NAME NVARCHAR(255), ACC_NO_RECEIVE VARCHAR(255), TRADE_AMT DECIMAL(18, 0), TRADE_DESC NVARCHAR(120), SUB_BANK_RECEIVE_NAME nvarchar(MAX),
|
307
|
ENTRY_PAIR varchar(20), REF_NO varchar(20))
|
308
|
|
309
|
OPEN XmlDataOutsideRec
|
310
|
DECLARE @INDEX_REC INT
|
311
|
DELETE FROM TR_REQ_PAY_AUTO_TRANS_OUTSIDE_REC WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID
|
312
|
FETCH NEXT FROM XmlDataOutsideRec INTO @MAKER_ID_KT, @CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID,
|
313
|
@BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @TRADE_AMT, @TRADE_DESC, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO
|
314
|
WHILE @@fetch_status=0
|
315
|
BEGIN
|
316
|
IF(@p_IS_SEND_APPR = 'SEND')
|
317
|
BEGIN
|
318
|
SET @INDEX_REC = @INDEX_REC+1
|
319
|
IF(ISNULL(@ACC_NO_RECEIVE, '') = '')
|
320
|
BEGIN
|
321
|
ROLLBACK TRANSACTION
|
322
|
CLOSE XmlDataOutsideRec;
|
323
|
DEALLOCATE XmlDataOutsideRec;
|
324
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Số tài khoản không được để trống' ErrorDesc
|
325
|
RETURN '-1'
|
326
|
END
|
327
|
IF(ISNULL(@BRANCH_RECEIVE_NAME, '') = '')
|
328
|
BEGIN
|
329
|
ROLLBACK TRANSACTION
|
330
|
CLOSE XmlDataOutsideRec;
|
331
|
DEALLOCATE XmlDataOutsideRec;
|
332
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Tên đơn vị nhận không được để trống' ErrorDesc
|
333
|
RETURN '-1'
|
334
|
END
|
335
|
IF(ISNULL(@OBJECT_RECEIVE_ID, '') = '')
|
336
|
BEGIN
|
337
|
ROLLBACK TRANSACTION
|
338
|
CLOSE XmlDataOutsideRec;
|
339
|
DEALLOCATE XmlDataOutsideRec;
|
340
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Đối tượng nhận không được để trống' ErrorDesc
|
341
|
RETURN '-1'
|
342
|
END
|
343
|
IF(ISNULL(@BANK_RECEIVE_ID, '') = '' OR ISNULL(@BRANCH_RECEIVE_NAME, '') = '')
|
344
|
BEGIN
|
345
|
ROLLBACK TRANSACTION
|
346
|
CLOSE XmlDataOutsideRec;
|
347
|
DEALLOCATE XmlDataOutsideRec;
|
348
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Tên ngân hàng hưởng trực tiếp không được để trống' ErrorDesc
|
349
|
RETURN '-1'
|
350
|
END
|
351
|
IF(ISNULL(@CITAD1_ID, '') = '')
|
352
|
BEGIN
|
353
|
ROLLBACK TRANSACTION
|
354
|
CLOSE XmlDataOutsideRec;
|
355
|
DEALLOCATE XmlDataOutsideRec;
|
356
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Mã CITAD không được để trống' ErrorDesc
|
357
|
RETURN '-1'
|
358
|
END
|
359
|
IF(ISNULL(@CHANEL_PAYMENT_ID, '') = '')
|
360
|
BEGIN
|
361
|
ROLLBACK TRANSACTION
|
362
|
CLOSE XmlDataOutsideRec;
|
363
|
DEALLOCATE XmlDataOutsideRec;
|
364
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Lưới đơn vị nhận, dòng '+ CONVERT(VARCHAR(5),@INDEX_REC) + N': Kênh thanh toán không được để trống' ErrorDesc
|
365
|
RETURN '-1'
|
366
|
END
|
367
|
END
|
368
|
|
369
|
DECLARE @p_REQ_TRANS_OUTSIDE_REC_ID VARCHAR(15);
|
370
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_AUTO_OUTSIDE_REC', @p_REQ_TRANS_OUTSIDE_REC_ID OUT;
|
371
|
IF @p_REQ_TRANS_OUTSIDE_REC_ID='' OR @p_REQ_TRANS_OUTSIDE_REC_ID IS NULL GOTO ABORT;
|
372
|
|
373
|
INSERT INTO TR_REQ_PAY_AUTO_TRANS_OUTSIDE_REC(REQ_TRANS_OUTSIDE_REC_ID, REQ_PAY_AUTO_ID, MAKER_ID, CREATE_DT, AUTH_STATUS, AUTH_STATUS_KT,
|
374
|
CHANEL_PAYMENT_ID, CITAD1_ID, BANK_RECEIVE_ID, OBJECT_RECEIVE_ID, BRANCH_RECEIVE_ID, BRANCH_RECEIVE_NAME, ACC_NO_RECEIVE, TRADE_AMT, TRADE_DESC, SUB_BANK_RECEIVE_NAME, ENTRY_PAIR, REF_NO)
|
375
|
VALUES (@p_REQ_TRANS_OUTSIDE_REC_ID, @p_REQ_PAY_AUTO_ID, @p_USER_LOGIN, GETDATE(), NULL, NULL,
|
376
|
@CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID, @BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @TRADE_AMT, @TRADE_DESC, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO)
|
377
|
|
378
|
IF @@error<>0 GOTO ABORT;
|
379
|
FETCH NEXT FROM XmlDataOutsideRec INTO @MAKER_ID_KT, @CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID,
|
380
|
@BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @TRADE_AMT, @TRADE_DESC, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO
|
381
|
END;
|
382
|
CLOSE XmlDataOutsideRec;
|
383
|
DEALLOCATE XmlDataOutsideRec;
|
384
|
--- END INSERT đơn vị nhận
|
385
|
|
386
|
--- INSERT PHÂN CHIA
|
387
|
DECLARE @hDocBudgetAllocation INT
|
388
|
EXEC sp_xml_preparedocument @hDocBudgetAllocation OUTPUT, @p_XMP_BUDGET_ALLOCATION;
|
389
|
|
390
|
DECLARE @TYPE_BUDGET_ALLOCAITON VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON DECIMAL(18,2), @REQ_PAY_AUTO_MANUFACTURER_ID VARCHAR(20)
|
391
|
|
392
|
DECLARE XmlDataBudgetAllocation CURSOR FOR SELECT * FROM OPENXML(@hDocBudgetAllocation, 'Root/XmlDataBudgetAllocation',2)
|
393
|
WITH(REQ_PAY_AUTO_MANUFACTURER_ID VARCHAR(20), ACC_NO VARCHAR(20), ACC_NAME NVARCHAR(255), BRANCH_ID VARCHAR(20), DEP_ID NVARCHAR(255), TYPE_BUDGET_ALLOCAITON VARCHAR(20), PERCENT_BUDGET_ALLOCAITON DECIMAL(18,2), AMT_BUDGET_ALLOCAITON DECIMAL(18,2))
|
394
|
OPEN XmlDataBudgetAllocation
|
395
|
|
396
|
DELETE FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID
|
397
|
FETCH NEXT FROM XmlDataBudgetAllocation INTO @REQ_PAY_AUTO_MANUFACTURER_ID, @ACC_NO, @ACC_NAME, @BRANCH_ID, @DEP_ID, @TYPE_BUDGET_ALLOCAITON, @PERCENT_BUDGET_ALLOCAITON, @AMT_BUDGET_ALLOCAITON
|
398
|
WHILE @@fetch_status=0
|
399
|
BEGIN
|
400
|
DECLARE @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID VARCHAR(20)
|
401
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_AUTO_ALLCOTION', @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID OUT;
|
402
|
IF @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID = '' OR @REQ_PAY_AUTO_BUDGET_ALLOCATION_ID IS NULL GOTO ABORT;
|
403
|
|
404
|
INSERT INTO TR_REQ_PAY_AUTO_BUDGET_ALLOCATION(REQ_PAY_AUTO_BUDGET_ALLOCATION_ID, REQ_PAY_AUTO_MANUFACTURER_ID, REQ_PAY_AUTO_ID, ACC_NO, ACC_NAME, BRANCH_ID, DEP_ID, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON, MAKER_ID, CREATE_DT, RECORD_STATUS)
|
405
|
VALUES (@REQ_PAY_AUTO_BUDGET_ALLOCATION_ID, @REQ_PAY_AUTO_MANUFACTURER_ID, @p_REQ_PAY_AUTO_ID, @ACC_NO, @ACC_NAME, @BRANCH_ID, @DEP_ID, @TYPE_BUDGET_ALLOCAITON, @PERCENT_BUDGET_ALLOCAITON, @AMT_BUDGET_ALLOCAITON, @p_MAKER_ID, GETDATE(), '1')
|
406
|
|
407
|
IF @@error<>0 GOTO ABORT;
|
408
|
FETCH NEXT FROM XmlDataBudgetAllocation INTO @REQ_PAY_AUTO_MANUFACTURER_ID, @ACC_NO, @ACC_NAME, @BRANCH_ID, @DEP_ID, @TYPE_BUDGET_ALLOCAITON, @PERCENT_BUDGET_ALLOCAITON, @AMT_BUDGET_ALLOCAITON
|
409
|
END
|
410
|
CLOSE XmlDataBudgetAllocation;
|
411
|
DEALLOCATE XmlDataBudgetAllocation;
|
412
|
|
413
|
END -- END XAC NHAN TAM DUNG HOAC HUY PHIEU
|
414
|
|
415
|
COMMIT TRANSACTION
|
416
|
IF(@p_IS_SEND_APPR ='SEND')
|
417
|
BEGIN
|
418
|
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(PROCESS, '') NOT IN ('12', '18', '14.2', '20.2') AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)) -- NEU KHONG PHAI XAC NHAN TAM DUNG HOAC HUY PHIEU
|
419
|
BEGIN
|
420
|
UPDATE TR_REQ_PAYMENT_AUTO
|
421
|
SET AUTH_STATUS_KT = 'P', CREATE_DT_KT = GETDATE(), MAKER_ID_KT = @p_USER_LOGIN, CONFIRM_NOTE = @p_CONFIRM_NOTE, PROCESS = '4'
|
422
|
WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID
|
423
|
-- UPDATE FLOW KE TOAN
|
424
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND TLNAME= @p_USER_LOGIN AND TYPE_JOB = 'XL'
|
425
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND TYPE_JOB = 'KS'
|
426
|
-- INSERT VAO PL_PROCESS
|
427
|
INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
|
428
|
VALUES(@p_REQ_PAY_AUTO_ID,'SEND_GDV',@p_USER_LOGIN,GETDATE(), N'Giao dịch viên gửi phê duyệt',N'Giao dịch viên cập nhật thông tin')
|
429
|
SELECT '1' as Result, '' REQ_PAY_ID, N'Phiếu yêu cầu thanh toán tự động số: '+(SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)+N' đã được gửi phê duyệt thành công! Vui lòng đợi kiểm soát viên phê duyệt phiếu' ErrorDesc
|
430
|
RETURN '1'
|
431
|
END
|
432
|
ELSE IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(PROCESS, '') IN ('12', '14.2') AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID))
|
433
|
BEGIN
|
434
|
UPDATE TR_REQ_PAYMENT_AUTO
|
435
|
SET CREATE_DT_KT = GETDATE(), MAKER_ID_KT = @p_USER_LOGIN, CONFIRM_NOTE = @p_CONFIRM_NOTE, PROCESS = '13'
|
436
|
WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID
|
437
|
-- UPDATE FLOW KE TOAN
|
438
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND TLNAME= @p_USER_LOGIN AND TYPE_JOB = 'XL'
|
439
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND TYPE_JOB = 'KS'
|
440
|
-- INSERT VAO PL_PROCESS
|
441
|
INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
|
442
|
VALUES(@p_REQ_PAY_AUTO_ID,'GDV_UNSUS',@p_USER_LOGIN,GETDATE(), N'Giao dịch viên gửi phê duyệt',N'Giao dịch viên xác nhận yêu cầu khôi phục phiếu')
|
443
|
SELECT '1' as Result, '' REQ_PAY_ID, N'Phiếu yêu cầu thanh toán tự động số: '+(SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)+N' đã được gửi phê duyệt thành công! Vui lòng đợi kiểm soát viên phê duyệt phiếu' ErrorDesc
|
444
|
RETURN '1'
|
445
|
END
|
446
|
ELSE IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE ISNULL(PROCESS, '') IN ('18', '20.2') AND REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID))
|
447
|
BEGIN
|
448
|
UPDATE TR_REQ_PAYMENT_AUTO
|
449
|
SET PROCESS = '19', CREATE_DT_KT = GETDATE(), MAKER_ID_KT = @p_USER_LOGIN, CONFIRM_NOTE = @p_CONFIRM_NOTE
|
450
|
WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID
|
451
|
-- UPDATE FLOW KE TOAN
|
452
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND TLNAME= @p_USER_LOGIN AND TYPE_JOB = 'XL'
|
453
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_AUTO_ID AND TYPE_JOB = 'KS'
|
454
|
-- INSERT VAO PL_PROCESS
|
455
|
INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
|
456
|
VALUES(@p_REQ_PAY_AUTO_ID,'GDV_DEL',@p_USER_LOGIN,GETDATE(), N'Giao dịch viên gửi phê duyệt',N'Giao dịch viên xác nhận yêu cầu hủy phiếu')
|
457
|
SELECT '1' as Result, '' REQ_PAY_ID, N'Phiếu yêu cầu thanh toán tự động số: '+(SELECT REQ_PAY_AUTO_CODE FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID =@p_REQ_PAY_AUTO_ID)+N' đã được gửi phê duyệt thành công! Vui lòng đợi kiểm soát viên phê duyệt phiếu' ErrorDesc
|
458
|
RETURN '1'
|
459
|
END
|
460
|
ELSE
|
461
|
BEGIN
|
462
|
PRINT '1'
|
463
|
END
|
464
|
|
465
|
|
466
|
END
|
467
|
|
468
|
SELECT '0' as Result, @p_REQ_PAY_AUTO_ID REQ_PAY_ID, @p_REQ_PAY_AUTO_CODE AS REQ_PAY_CODE, N'Thêm mới thành công' ErrorDesc
|
469
|
RETURN '0'
|
470
|
|
471
|
ABORT:
|
472
|
BEGIN
|
473
|
ROLLBACK TRANSACTION
|
474
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Lỗi không xác định' ErrorDesc
|
475
|
RETURN '-1'
|
476
|
End
|
477
|
|
478
|
GO
|
479
|
|
480
|
|
481
|
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_TRANSFER_Search]
|
482
|
@p_REQ_PAY_AUTO_ID VARCHAR(20)= NULL,
|
483
|
@p_REQ_PAY_AUTO_CODE VARCHAR(20)= NULL,
|
484
|
@p_REQ_PAY_AUTO_NAME VARCHAR(20)= NULL,
|
485
|
@p_REQ_PAY_AUTO_DT VARCHAR(20)= NULL,
|
486
|
@p_REQ_PAY_AUTO_TYPE VARCHAR(20)= NULL,
|
487
|
@p_REQ_PAY_AUTO_SERVICE_TYPE VARCHAR(20)= NULL,
|
488
|
@p_REQ_PAY_AUTO_STATUS VARCHAR(20)= NULL,
|
489
|
@p_REQ_PAY_AUTO_EFFECTIVE_DT VARCHAR(20)= NULL,
|
490
|
@p_BRANCH_ID VARCHAR(20)= NULL,
|
491
|
@p_BRANCH_CODE VARCHAR(20)= NULL,
|
492
|
@p_BRANCH_NAME VARCHAR(20)= NULL,
|
493
|
@p_DEP_ID VARCHAR(20)= NULL,
|
494
|
@p_DEP_CODE VARCHAR(20)= NULL,
|
495
|
@p_DEP_NAME VARCHAR(20)= NULL,
|
496
|
@p_BRANCH_CREATE VARCHAR(20)= NULL,
|
497
|
@p_BRANCH_CREATE_CODE VARCHAR(20)= NULL,
|
498
|
@p_BRANCH_CREATE_NAME VARCHAR(20)= NULL,
|
499
|
@p_TRANSFER_USER_RECEIVE VARCHAR(20)= NULL,
|
500
|
@p_TRANSFER_USER_RECEIVE_NAME VARCHAR(20)= NULL,
|
501
|
@p_CONFIRM_NOTE VARCHAR(20)= NULL,
|
502
|
@p_CONTRACT_ID VARCHAR(20)= NULL,
|
503
|
@p_CONTRACT_CODE VARCHAR(20)= NULL,
|
504
|
@p_CONTRACT_NAME VARCHAR(20)= NULL,
|
505
|
@p_PROCESS VARCHAR(20)= NULL,
|
506
|
@p_TRANSFER_MAKER VARCHAR(20)= NULL,
|
507
|
@p_TRANSFER_DT VARCHAR(20)= NULL,
|
508
|
@p_MAKER_ID VARCHAR(20)= NULL,
|
509
|
@p_MAKER_NAME VARCHAR(20)= NULL,
|
510
|
@p_CREATE_DT VARCHAR(20)= NULL,
|
511
|
@p_EDITOR_ID VARCHAR(20)= NULL,
|
512
|
@p_EDITOR_NAME VARCHAR(20)= NULL,
|
513
|
@p_EDIT_DT VARCHAR(20)= NULL,
|
514
|
@p_CHECKER_ID VARCHAR(20)= NULL,
|
515
|
@p_CHECKER_NAME VARCHAR(20)= NULL,
|
516
|
@p_APPROVE_DT VARCHAR(20)= NULL,
|
517
|
@p_AUTH_STATUS VARCHAR(20)= NULL,
|
518
|
@p_MAKER_ID_KT VARCHAR(20)= NULL,
|
519
|
@p_MAKER_KT_NAME VARCHAR(20)= NULL,
|
520
|
@p_CREATE_DT_KT VARCHAR(20)= NULL,
|
521
|
@p_CHECKER_ID_KT VARCHAR(20)= NULL,
|
522
|
@p_CHECKER_KT_NAME VARCHAR(20)= NULL,
|
523
|
@p_APPROVE_DT_KT VARCHAR(20)= NULL,
|
524
|
@p_AUTH_STATUS_KT VARCHAR(20)= NULL,
|
525
|
@p_AUTH_STATUS_KT_DESC VARCHAR(20)= NULL,
|
526
|
@p_RECORD_STATUS VARCHAR(20)= NULL,
|
527
|
@p_FRMDATE VARCHAR(20)= NULL,
|
528
|
@p_TODATE VARCHAR(20)= NULL,
|
529
|
@p_LEVEL VARCHAR(20)= NULL,
|
530
|
@p_USER_LOGIN VARCHAR(20)= NULL,
|
531
|
@p_IS_SEND_APPR VARCHAR(20)= NULL,
|
532
|
@p_TYPE_SEARCH VARCHAR(20)= NULL,
|
533
|
@p_BRANCH_LOGIN VARCHAR(20)= NULL,
|
534
|
@p_IS_TRANSFER VARCHAR(20)= NULL,
|
535
|
@p_TOP INT = NULL
|
536
|
AS
|
537
|
BEGIN -- PAGING
|
538
|
-- BEGIN KHAI BÁO
|
539
|
-- ĐƠN VỊ YÊU CẦU
|
540
|
DECLARE @tmp_branch TABLE(BRANCH_ID VARCHAR(15))
|
541
|
DECLARE @tmp_dep TABLE(DEP_ID VARCHAR(15))
|
542
|
DECLARE @DEP_ID VARCHAR(15) = NULL
|
543
|
INSERT INTO @tmp_branch SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
|
544
|
DECLARE @BRANCH_TYPE VARCHAR(15)
|
545
|
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))
|
546
|
|
547
|
-- ĐƠN VỊ ĐĂNG NHẬP
|
548
|
DECLARE @tmp_branch_login TABLE(BRANCH_ID VARCHAR(15))
|
549
|
DECLARE @tmp_dep_login TABLE(DEP_ID VARCHAR(15))
|
550
|
INSERT INTO @tmp_branch_login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
|
551
|
INSERT INTO @tmp_branch_login VALUES (@p_BRANCH_LOGIN)
|
552
|
INSERT INTO @tmp_branch_login SELECT BRANCH_ID
|
553
|
FROM TL_SYS_ROLE_MAPPING
|
554
|
WHERE TLNAME =@P_USER_LOGIN
|
555
|
AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103)
|
556
|
AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)
|
557
|
DECLARE @BRANCH_TYPE_LG VARCHAR(15)
|
558
|
SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
|
559
|
-- PHÒNG BAN ĐĂNG NHẬP
|
560
|
DECLARE @DEP_ID_LG VARCHAR(15) = NULL
|
561
|
SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
|
562
|
INSERT INTO @tmp_dep_login VALUES (@DEP_ID_LG)
|
563
|
INSERT INTO @tmp_dep_login SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG
|
564
|
INSERT INTO @tmp_dep_login SELECT DEP_ID
|
565
|
FROM TL_SYS_ROLE_MAPPING
|
566
|
WHERE TLNAME =@P_USER_LOGIN
|
567
|
AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103)
|
568
|
AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)
|
569
|
|
570
|
-- ROLE
|
571
|
DECLARE @ROLE_ID VARCHAR(20)
|
572
|
SET @ROLE_ID = (SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
|
573
|
DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))
|
574
|
INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
|
575
|
INSERT INTO @TABLE_ROLE SELECT ROLE_NEW
|
576
|
FROM TL_SYS_ROLE_MAPPING
|
577
|
WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@P_USER_LOGIN
|
578
|
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
|
579
|
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='')
|
580
|
|
581
|
-- NEU USER KHONG CHON TU NGAY THI TU NGAY BANG NGAY 1 1 HANG THANG 20211116
|
582
|
DECLARE @DATE DATE
|
583
|
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
|
584
|
BEGIN
|
585
|
SET @DATE = CONVERT(DATE,GETDATE(),103)
|
586
|
SET @DATE = DATEADD(MONTH,-2,@DATE)
|
587
|
END
|
588
|
ELSE
|
589
|
BEGIN
|
590
|
SET @DATE = CONVERT(DATE,@p_FRMDATE,103)
|
591
|
END
|
592
|
-- END KHAI BÁO
|
593
|
|
594
|
IF(@p_TOP IS NULL OR @p_TOP=0)
|
595
|
BEGIN
|
596
|
-- PAGING BEGIN
|
597
|
SELECT A.*, B.TLNAME AS TRANSFER_USER_RECEIVE,
|
598
|
C.BRANCH_NAME, D.DEP_NAME, E.TLFullName AS MAKER_NAME, F.CONTENT AS REQ_PAY_AUTO_TYPE_NAME, G.CONTENT AS AUTH_STATUS_NAME, H.CONTENT AS AUTH_STATUS_KT_NAME
|
599
|
-- SELECT END
|
600
|
FROM TR_REQ_PAYMENT_AUTO A
|
601
|
LEFT JOIN PL_REQUEST_PROCESS_CHILD B ON A.REQ_PAY_AUTO_ID = B.REQ_ID AND B.TYPE_JOB = 'XL'
|
602
|
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
|
603
|
LEFT JOIN CM_DEPARTMENT D ON A.DEP_ID = D.DEP_ID
|
604
|
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
|
605
|
LEFT JOIN CM_ALLCODE F ON A.REQ_PAY_AUTO_TYPE = F.CDVAL AND F.CDNAME = 'PAY_TYPE_AUTO' AND F.CDTYPE = 'REQ_AUTO'
|
606
|
LEFT JOIN CM_ALLCODE G ON A.AUTH_STATUS = G.CDVAL AND G.CDNAME = 'AUTH_STATUS' AND G.CDTYPE = 'TR_REQ_PAYMENT'
|
607
|
LEFT JOIN CM_ALLCODE H ON A.AUTH_STATUS_KT = H.CDVAL AND H.CDNAME = 'AUTH_STATUS_KT' AND H.CDTYPE = 'TR_REQ_PAYMENT'
|
608
|
WHERE 1=1
|
609
|
AND ( A.AUTH_STATUS = 'A' OR A.AUTH_STATUS = 'N')
|
610
|
AND A.PROCESS IN ('2', '11', '17')
|
611
|
-- BEGIN FILTER
|
612
|
AND ( A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
|
613
|
AND ( A.PROCESS = @p_PROCESS OR ISNULL(@p_PROCESS, '') = '')
|
614
|
AND ( A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
|
615
|
AND ( A.REQ_PAY_AUTO_SERVICE_TYPE = @p_REQ_PAY_AUTO_SERVICE_TYPE OR ISNULL(@p_REQ_PAY_AUTO_SERVICE_TYPE, '') = '')
|
616
|
AND ( A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
|
617
|
AND ( ( @p_IS_TRANSFER = 'Y'
|
618
|
AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID)
|
619
|
|
620
|
)
|
621
|
OR ( @p_IS_TRANSFER='N'
|
622
|
AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID )
|
623
|
)
|
624
|
OR @p_IS_TRANSFER IS NULL
|
625
|
OR @p_IS_TRANSFER=''
|
626
|
)
|
627
|
AND (CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR @p_FRMDATE IS NULL OR @p_FRMDATE = '' OR A.CREATE_DT IS NULL)
|
628
|
AND (CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE = '' OR A.CREATE_DT IS NULL)
|
629
|
--AND ( A.BRANCH_ID = @p_BRANCH_ID OR ISNULL(@p_BRANCH_ID, '') = '')
|
630
|
AND ( A.DEP_ID = @p_DEP_ID OR ISNULL(@p_DEP_ID, '') = '')
|
631
|
AND ( A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
|
632
|
AND ( B.TLNAME = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
|
633
|
-- END FILTER
|
634
|
ORDER BY A.CREATE_DT DESC
|
635
|
-- PAGING END
|
636
|
END;
|
637
|
ELSE
|
638
|
BEGIN
|
639
|
-- PAGING BEGIN
|
640
|
SELECT A.*, B.TLNAME AS TRANSFER_USER_RECEIVE,
|
641
|
C.BRANCH_NAME, D.DEP_NAME, E.TLFullName AS MAKER_NAME, F.CONTENT AS REQ_PAY_AUTO_TYPE_NAME, G.CONTENT AS AUTH_STATUS_NAME, H.CONTENT AS AUTH_STATUS_KT_NAME
|
642
|
-- SELECT END
|
643
|
FROM TR_REQ_PAYMENT_AUTO A
|
644
|
LEFT JOIN PL_REQUEST_PROCESS_CHILD B ON A.REQ_PAY_AUTO_ID = B.REQ_ID AND B.TYPE_JOB = 'XL'
|
645
|
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
|
646
|
LEFT JOIN CM_DEPARTMENT D ON A.DEP_ID = D.DEP_ID
|
647
|
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
|
648
|
LEFT JOIN CM_ALLCODE F ON A.REQ_PAY_AUTO_TYPE = F.CDVAL AND F.CDNAME = 'PAY_TYPE_AUTO' AND F.CDTYPE = 'REQ_AUTO'
|
649
|
LEFT JOIN CM_ALLCODE G ON A.AUTH_STATUS = G.CDVAL AND G.CDNAME = 'AUTH_STATUS' AND G.CDTYPE = 'TR_REQ_PAYMENT'
|
650
|
LEFT JOIN CM_ALLCODE H ON A.AUTH_STATUS_KT = H.CDVAL AND H.CDNAME = 'AUTH_STATUS_KT' AND H.CDTYPE = 'TR_REQ_PAYMENT'
|
651
|
WHERE 1=1
|
652
|
AND ( A.AUTH_STATUS = 'A' OR A.AUTH_STATUS = 'N')
|
653
|
AND A.PROCESS IN ('2', '11', '17')
|
654
|
-- BEGIN FILTER
|
655
|
AND ( A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
|
656
|
AND ( A.PROCESS = @p_PROCESS OR ISNULL(@p_PROCESS, '') = '')
|
657
|
AND ( A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
|
658
|
AND ( A.REQ_PAY_AUTO_SERVICE_TYPE = @p_REQ_PAY_AUTO_SERVICE_TYPE OR ISNULL(@p_REQ_PAY_AUTO_SERVICE_TYPE, '') = '')
|
659
|
AND ( A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
|
660
|
AND ( ( @p_IS_TRANSFER = 'Y'
|
661
|
AND ( EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID)
|
662
|
)
|
663
|
)
|
664
|
OR ( @p_IS_TRANSFER='N'
|
665
|
AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID )
|
666
|
)
|
667
|
OR @p_IS_TRANSFER IS NULL
|
668
|
OR @p_IS_TRANSFER=''
|
669
|
)
|
670
|
AND (CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR @p_FRMDATE IS NULL OR @p_FRMDATE = '' OR A.CREATE_DT IS NULL)
|
671
|
AND (CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE = '' OR A.CREATE_DT IS NULL)
|
672
|
--AND ( A.BRANCH_ID = @p_BRANCH_ID OR ISNULL(@p_BRANCH_ID, '') = '')
|
673
|
AND ( A.DEP_ID = @p_DEP_ID OR ISNULL(@p_DEP_ID, '') = '')
|
674
|
AND ( A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
|
675
|
AND ( B.TLNAME = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
|
676
|
-- END FILTER
|
677
|
ORDER BY A.CREATE_DT DESC
|
678
|
-- PAGING END
|
679
|
END;
|
680
|
END -- PAGING
|