Project

General

Profile

STORE_TR_PO_MASTER_Upd.txt

Luc Tran Van, 11/09/2022 08:44 AM

 
1
CREATE PROCEDURE [dbo].[TR_PO_MASTER_Upd]
2
@p_PO_ID varchar(15) = NULL,
3
@P_PO_TYPE INT = NULL,
4
@p_PO_CODE varchar(15) = NULL,
5
@p_PO_NAME nvarchar(200) = NULL,
6
@p_CONTRACT_ID varchar(15) = NULL,
7
@p_SUP_ID varchar(15) = NULL,
8
@p_SUP_NAME nvarchar(200) = NULL,
9
@p_SUP_ADDR nvarchar(200) = NULL,
10
@p_INPUT_DT VARCHAR(20) = NULL,
11
@p_PAYMENT_DT VARCHAR(20) = NULL,
12
@p_TOTAL_AMT decimal(18) = NULL,
13
@p_REQ_DOC_ID varchar(15) = NULL,
14
@p_DELIVERY_DT VARCHAR(20) = NULL,
15
@p_PAYAPP_DT VARCHAR(20) = NULL,
16
@p_NOTES nvarchar(1000) = NULL,
17
@p_RECORD_STATUS varchar(1) = NULL,
18
@p_MAKER_ID varchar(15) = NULL,
19
@p_CREATE_DT VARCHAR(20) = NULL,
20
@p_AUTH_STATUS varchar(50) = NULL,
21
@p_CHECKER_ID varchar(15) = NULL,
22
@p_APPROVE_DT VARCHAR(20) = NULL,
23
@p_TR_REQ_ID VARCHAR(20) = NULL,
24
@p_TR_REQ_CODE VARCHAR(20)= NULL,
25
@P_LISTASSET XML = NULL,
26
@P_LISTPAYMENT XML = NULL,
27
@P_LISTROLE XML = NULL,
28
@p_BRANCH_ID varchar(15) = null,
29
@p_IS_CLOSED VARCHAR(1) = NULL,
30
-----------------------BAODNQ 2/3/2022 : Thêm tham số----------------------
31
@p_IS_SEND_APPR VARCHAR(1) = NULL,
32
@p_SEND_APPR_DT VARCHAR(20) = NULL
33
AS
34
IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE PO_ID = @p_PO_ID AND AUTH_STATUS = 'U'))
35
BEGIN
36
SELECT '-1' Result, @p_PO_ID AS PO_ID,
37
N'Không thể chỉnh sửa. PO ' +@p_PO_CODE+ N' đã được gửi yêu cầu phê duyệt' AS ErrorDesc
38
RETURN '-1'
39
END
40
DECLARE @REF_CODE VARCHAR(15) = NULL, @PDN_TT VARCHAR(15) = NULL
41
SET @REF_CODE =
42
( SELECT TOP 1 B.REQ_PAY_CODE
43
FROM TR_REQ_ADVANCE_DT A
44
INNER JOIN TR_REQ_ADVANCE_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
45
WHERE A.REF_ID =@p_PO_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
46
)
47
--- TIM KIEM XEM PO NAY CO DUOC PHEP THANH TOAN HAY KHONG
48
SET @PDN_TT =
49
( SELECT TOP 1 B.REQ_PAY_CODE
50
FROM TR_REQ_ADVANCE_DT A
51
INNER JOIN TR_REQ_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
52
WHERE A.REF_ID =@p_CONTRACT_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
53
)
54
IF(@p_IS_CLOSED ='Y' AND @REF_CODE IS NOT NULL)
55
BEGIN
56
--ROLLBACK TRANSACTION
57
SELECT '-1' Result, @p_PO_ID AS PO_ID, N'PO đang được thực hiện tạm ứng với số phiếu: '+@REF_CODE AS ErrorDesc
58
RETURN '-1'
59
END
60
IF(@p_IS_CLOSED ='Y' AND @PDN_TT IS NOT NULL)
61
BEGIN
62
--ROLLBACK TRANSACTION
63
SELECT '-1' Result, @p_PO_ID AS PO_ID, N'PO đang được thực hiện thanh toán với số phiếu: '+@PDN_TT AS ErrorDesc
64
RETURN '-1'
65
END
66
IF EXISTS(SELECT * FROM TR_PO_MASTER WHERE [PO_CODE] = @p_PO_CODE AND [PO_ID] <> @p_PO_ID)
67
BEGIN
68
SELECT ErrorCode Result, '' PO_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'PO-00002'
69
RETURN '0'
70
END
71
--- 21052020 KIEM TRA XEM NEU PYCMS DA TON TAI HAY CHUA
72
IF((SELECT COUNT(*) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_DOC_ID)=1)
73
BEGIN
74
IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE REQ_DOC_ID =@p_REQ_DOC_ID AND AUTH_STATUS IN ('E','U','A') AND PO_ID <>@p_PO_ID))
75
BEGIN
76
--ROLLBACK TRANSACTION
77
SELECT '-1' Result, @p_PO_ID AS PO_ID, N'Phiếu yêu cầu mua sắm số :'+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_DOC_ID)+
78
N' đã được link tới PO có số: '+(SELECT TOP 1 PO_CODE FROM TR_PO_MASTER WHERE REQ_DOC_ID =@p_REQ_DOC_ID AND PO_ID <> @p_PO_ID) AS ErrorDesc
79
RETURN '-1'
80
END
81
END
82
------
83
Declare @hdoc INT
84
Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET
85
DECLARE AssetDetail CURSOR FOR
86
SELECT *
87
FROM OPENXML(@hDoc,'/Root/AssetDetail',2)
88
WITH
89
(
90
PD_ID VARCHAR(15),
91
PLAN_ID varchar(15) ,
92
TRADE_ID varchar(15) ,
93
REQ_DT_ID VARCHAR(15),
94
GOODS_ID varchar(15) ,
95
[DESCRIPTION] nvarchar(500),
96
UNIT_ID varchar(15) ,
97
QUANTITY decimal(18) ,
98
PRICE decimal(18,2) ,
99
TOTAL_AMT decimal(18,2),
100
IS_DELIVERY varchar(1) ,
101
DELIVERY_DT VARCHAR(20),
102
PAYMENT_STATUS varchar(4),
103
AMOUNT_PAID decimal(18) ,
104
PAID_DT VARCHAR(20) ,
105
INVOICENO varchar(1000),
106
NOTES nvarchar(1000),
107
RECEIVE_BRANCH varchar(15),
108
RECEIVE_ADDR nvarchar(1000),
109
RECEIVE_PERSON nvarchar(500),
110
RECEIVE_TEL varchar(100),
111
EXP_DELIVERY_DT varchar(20),
112
GOODS_NAME NVARCHAR(500),
113
INVOICE_DT VARCHAR(20),
114
--THIEUVQ 100415 THEM LOAI HANG HOA THUC TE
115
GOODSTYPE_REAL VARCHAR(15),
116
GOODSTYPE_REAL_NAME VARCHAR(15),
117
--THIEUVQ 13092016 THEM VAT, CONTRACT_DT
118
VAT DECIMAL(18,2),
119
PRICE_VAT DECIMAL(18,0),
120
CONTRACT_DT VARCHAR(15),
121
CURRENCY VARCHAR(15),
122
RATE INT,
123
TOTAL_AMT_FN DECIMAL(18,2)
124
)
125
OPEN AssetDetail
126
Exec sp_xml_preparedocument @hdoc Output,@P_LISTPAYMENT
127
DECLARE PaymentDetail CURSOR FOR
128
SELECT *
129
FROM OPENXML(@hDoc,'/Root/PaymentDetail',2)
130
WITH
131
(
132
PAY_ID VARCHAR(15),
133
PAY_PHASE varchar(15),
134
EXPECTED_DT VARCHAR(20),
135
[PERCENT] decimal(18,2),
136
[AMOUNT] decimal(18,2),
137
NOTES nvarchar(1000),
138
CURRENCY VARCHAR(15),
139
RATE INT,
140
TOTAL_AMT DECIMAL(18,2)
141
)
142
OPEN PaymentDetail
143
PRINT 'PASS KHOI TAO'
144
--Nhom user gui mail (DAO EDIT)
145
Exec sp_xml_preparedocument @hdoc Output,@P_LISTROLE
146
DECLARE LISTROLE CURSOR FOR
147
SELECT *
148
FROM OPENXML(@hDoc,'/Root/LISTROLE',2)
149
WITH
150
(
151
NOTIFI_ID VARCHAR(15),
152
TL_NAME varchar(15),
153
EDITOR_DT VARCHAR(20),
154
EDITOR_ID VARCHAR(15),
155
NOTES nvarchar(1000)
156
)
157
OPEN LISTROLE
158
BEGIN TRANSACTION
159
IF @p_DELIVERY_DT = ''
160
SET @p_DELIVERY_DT = NULL
161
IF @p_PAYAPP_DT = ''
162
SET @p_PAYAPP_DT = NULL
163
--insert master
164
UPDATE TR_PO_MASTER SET [PO_TYPE] = @P_PO_TYPE, [PO_CODE] = @p_PO_CODE,[PO_NAME] = @p_PO_NAME,
165
[CONTRACT_ID] = @p_CONTRACT_ID,[SUP_ID] = @p_SUP_ID,[SUP_NAME] = @p_SUP_NAME,[SUP_ADDR] = @p_SUP_ADDR,
166
[INPUT_DT] = CONVERT(DATETIME, @p_INPUT_DT, 103),[PAYMENT_DT] = CONVERT(DATETIME, @p_PAYMENT_DT, 103),
167
[TOTAL_AMT] = @p_TOTAL_AMT,[REQ_DOC_ID] = @p_TR_REQ_ID,[DELIVERY_DT] = CONVERT(DATETIME, @p_DELIVERY_DT, 103),
168
[PAYAPP_DT] = CONVERT(DATETIME, @p_PAYAPP_DT, 103),[NOTES] = @p_NOTES,[RECORD_STATUS] = '1',
169
[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = 'E',
170
[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), BRANCH_ID = @p_BRANCH_ID,
171
-----------------------BAODNQ 2/3/2022 : Thêm cột IS_SEND_APPR, SEND_APPR_DT----------------------
172
[IS_SEND_APPR] = @p_IS_SEND_APPR,
173
[SEND_APPR_DT] = CONVERT(DATETIME, @p_SEND_APPR_DT, 103),
174
IS_CLOSED = @p_IS_CLOSED
175
WHERE PO_ID= @p_PO_ID
176
IF @@Error <> 0 GOTO ABORT
177
PRINT 'INSERT MASTER SUCCESS'
178
UPDATE dbo.TR_PO_MASTER_TEMP SET TR_REQ_ID=@p_TR_REQ_ID,TR_REQ_CODE=@p_TR_REQ_CODE WHERE PO_ID=@p_PO_ID
179
--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
180
Declare
181
@PAY_ID VARCHAR(15),
182
@PD_ID VARCHAR(15),
183
@PLAN_ID varchar(15),
184
@TRADE_ID varchar(15),
185
@REQ_DT_ID VARCHAR(15),
186
@GOODS_ID varchar(15),
187
@DESCRIPTION nvarchar(500),
188
@UNIT_ID varchar(15),
189
@QUANTITY decimal(18),
190
@PRICE decimal(18,2),
191
@TOTAL_AMT decimal(18,2),
192
@IS_DELIVERY varchar(1),
193
@DELIVERY_DT VARCHAR(20),
194
@PAYMENT_STATUS varchar(4),
195
@AMOUNT_PAID decimal(18),
196
@PAID_DT VARCHAR(20),
197
@INVOICENO varchar(20),
198
@NOTES nvarchar(1000),
199
@PO_ID varchar(15) = NULL,
200
@PAY_PHASE VARCHAR(20) = NULL,
201
@EXPECTED_DT VARCHAR(20) = NULL,
202
@PERCENT decimal(18,2) = NULL,
203
@AMOUNT decimal(18,2) = NULL,
204
@RECEIVE_BRANCH varchar(15)=NULL,
205
@RECEIVE_ADDR nvarchar(1000)=NULL,
206
@RECEIVE_PERSON nvarchar(500)=NULL,
207
@RECEIVE_TEL varchar(100)=NULL,
208
@EXP_DELIVERY_DT varchar(20) = NULL,
209
@GOODS_NAME NVARCHAR(500) = NULL,
210
@INVOICE_DT VARCHAR(20),
211
@GOODSTYPE_REAL VARCHAR(15) = NULL,
212
@GOODSTYPE_REAL_NAME VARCHAR(15) = NULL,
213
@VAT DECIMAL(18,2),
214
@PRICE_VAT DECIMAL(18,0),
215
@CONTRACT_DT VARCHAR(15),
216
--DAO MOI THEM
217
@NOTIFI_ID VARCHAR(15),
218
@TL_NAME VARCHAR(15),
219
@EDITOR_DT VARCHAR(20),
220
@EDITOR_ID VARCHAR(15),
221
@NOTES_ROLE nvarchar(1000),
222
@CURRENCY VARCHAR(15),
223
@RATE INT,
224
@TOTAL_AMT_FN DECIMAL(18,2)
225
DECLARE @l_GOODSTYPE_ID VARCHAR(15)
226
DELETE FROM TR_PO_DETAIL WHERE PO_ID = @P_PO_ID
227
FETCH NEXT FROM AssetDetail INTO @PD_ID,@PLAN_ID,@TRADE_ID,@REQ_DT_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
228
@PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT,
229
@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@EXP_DELIVERY_DT,@GOODS_NAME, @INVOICE_DT,
230
@GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT,@CURRENCY,@RATE,@TOTAL_AMT_FN
231
WHILE @@FETCH_STATUS = 0
232
BEGIN
233
--if( NOT EXISTS (SELECT * FROM PL_MASTER A WHERE A.PLAN_ID = @PLAN_ID))
234
--BEGIN
235
-- SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'TR-00002'
236
-- GOTO ABORT
237
--END
238
IF(LEN(@PD_ID) = 0)
239
BEGIN
240
EXEC SYS_CodeMasters_Gen 'TR_PO_DETAIL', @PD_ID out
241
IF @PD_ID ='' OR @PD_ID IS NULL GOTO ABORT
242
END
243
IF(@DELIVERY_DT = '')
244
SET @DELIVERY_DT = NULL
245
IF(@PAID_DT = '')
246
SET @PAID_DT = NULL
247
IF(@INVOICE_DT = '')
248
SET @INVOICE_DT = NULL
249
IF @EXP_DELIVERY_DT = '' SET @EXP_DELIVERY_DT = NULL
250
/***THIEUVQ THEM KIEM TRA VA LUU THONG TIN LOAI HANG HOA THUC TE***/
251
--BEGIN
252
--CHUA CO LOAI HANG HOA THI THEM MOI
253
IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = ''
254
BEGIN
255
--NEU TON TAI THI LAY RA ID
256
SET @GOODSTYPE_REAL = (SELECT TOP 1 GD_RETYPE_ID FROM CM_GOODSTYPE_REAL WHERE [TYPE_NAME] = @GOODSTYPE_REAL_NAME)
257
--NEU CHUA CO THI THEM MOI
258
IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = ''
259
BEGIN
260
EXEC SYS_CodeMasters_Gen 'CM_GOODSTYPE_REAL', @l_GOODSTYPE_ID OUT
261
IF @l_GOODSTYPE_ID='' OR @l_GOODSTYPE_ID IS NULL GOTO ABORT
262
INSERT INTO CM_GOODSTYPE_REAL VALUES (@l_GOODSTYPE_ID, @l_GOODSTYPE_ID, @GOODSTYPE_REAL_NAME, '', '1',
263
@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),'A',@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103))
264
IF @@ERROR <> 0 GOTO ABORT
265
SET @GOODSTYPE_REAL = @l_GOODSTYPE_ID
266
END
267
END
268
--END
269
INSERT INTO TR_PO_DETAIL([PD_ID],[PO_ID],[PLAN_ID],[TRADE_ID],[REQ_DT_ID],[GOODS_ID],[DESCRIPTION],[UNIT_ID],[QUANTITY],[PRICE],[TOTAL_AMT],[IS_DELIVERY],[DELIVERY_DT],
270
[PAYMENT_STATUS],[AMOUNT_PAID],[PAID_DT],[INVOICENO],[NOTES], RECEIVE_BRANCH, RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL,[RECORD_STATUS],[MAKER_ID],[CREATE_DT],
271
[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],EXP_DELIVERY_DT,GOODS_NAME,INVOICE_DT,GOODSTYPE_REAL,VAT,PRICE_VAT,CONTRACT_DT,CURRENCY,RATE,TOTAL_AMT_FN)
272
VALUES(@PD_ID ,@p_PO_ID ,@PLAN_ID ,@TRADE_ID,@REQ_DT_ID ,@GOODS_ID,@DESCRIPTION ,@UNIT_ID ,@QUANTITY ,@PRICE ,@TOTAL_AMT ,
273
@IS_DELIVERY ,CONVERT(DATETIME, @DELIVERY_DT, 103) ,@PAYMENT_STATUS ,@AMOUNT_PAID ,
274
CONVERT(DATETIME, @PAID_DT, 103) ,@INVOICENO ,@NOTES , @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,
275
@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),CONVERT(DATETIME, @EXP_DELIVERY_DT, 103),
276
@GOODS_NAME, CONVERT(DATETIME, @INVOICE_DT, 103),@GOODSTYPE_REAL,@VAT,@PRICE_VAT,@CONTRACT_DT,ISNULL(@CURRENCY,'VND'),ISNULL(@RATE,1) ,@TOTAL_AMT*ISNULL(@RATE,1) )
277
IF @@ERROR <> 0 GOTO ABORT
278
-- next Group_Id
279
FETCH NEXT FROM AssetDetail INTO @PD_ID,@PLAN_ID,@TRADE_ID,@REQ_DT_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
280
@PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT,
281
@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL, @EXP_DELIVERY_DT,@GOODS_NAME,@INVOICE_DT,
282
@GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT,@CURRENCY,@RATE,@TOTAL_AMT_FN
283
END
284
--insert payment detail
285
DELETE FROM TR_PO_PAYMENT WHERE PO_ID = @p_PO_ID
286
FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES,@CURRENCY,@RATE,@TOTAL_AMT_FN
287
WHILE @@FETCH_STATUS = 0
288
BEGIN
289
--EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @PAY_ID out
290
--IF @PAY_ID ='' OR @PAY_ID IS NULL GOTO ABORT
291
--PRINT @PAY_ID
292
IF(LEN(@PAY_ID) = 0 OR @PAY_ID IS NULL OR @PAY_ID = '')
293
BEGIN
294
EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @PAY_ID out
295
IF @PAY_ID ='' OR @PAY_ID IS NULL GOTO ABORT
296
END
297
IF @EXPECTED_DT = ''
298
SET @EXPECTED_DT = NULL
299
--INSERT INTO TR_PO_PAYMENT([PAY_ID],[PO_ID],[PAY_PHASE],[EXP_DT],[PERCENT],[AMOUNT],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],CURRENCY,RATE,TOTAL_AMT)
300
--VALUES(@PAY_ID ,@p_PO_ID ,@PAY_PHASE ,CONVERT(DATETIME, @EXPECTED_DT, 103) ,@PERCENT ,@AMOUNT,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),ISNULL(@CU
301
RRENCY,'VND'),ISNULL(@RATE,1) ,@AMOUNT*ISNULL(@RATE,1))
302
-------------BAODNQ 15/9/2022: Fix lại theo BVB_v2_PROD-----------
303
-------------Nếu @PAY_ID ko tồn tại trong TR_PO_PAYMENT, INSERT mới---------
304
IF(NOT EXISTS(SELECT * FROM TR_PO_PAYMENT WHERE PAY_ID = @PAY_ID))
305
BEGIN
306
INSERT INTO TR_PO_PAYMENT([PAY_ID],[PO_ID],[PAY_PHASE],[EXP_DT],[PERCENT],[AMOUNT],[NOTES],
307
[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],
308
CURRENCY,RATE,TOTAL_AMT)
309
VALUES(@PAY_ID ,@p_PO_ID ,@PAY_PHASE ,CONVERT(DATETIME, @EXPECTED_DT, 103) ,@PERCENT ,
310
@AMOUNT,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,
311
@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),
312
ISNULL(@CURRENCY,'VND'),ISNULL(@RATE,1) ,@AMOUNT*ISNULL(@RATE,1))
313
END
314
ELSE
315
-------------Nếu @PAY_ID đã tồn tại trong TR_PO_PAYMENT, UPDATE---------
316
BEGIN
317
UPDATE TR_PO_PAYMENT SET
318
PO_ID =@p_PO_ID,
319
PAY_PHASE =@PAY_PHASE,
320
EXP_DT =CONVERT(DATETIME, @EXPECTED_DT, 103),
321
[PERCENT] =@PERCENT,
322
AMOUNT =@TOTAL_AMT_FN / ISNULL(@RATE,1),
323
RECORD_STATUS =1,
324
AUTH_STATUS ='A',
325
CURRENCY =ISNULL(@CURRENCY,'VND'),
326
RATE =ISNULL(@RATE,1) ,
327
TOTAL_AMT =@AMOUNT*ISNULL(@RATE,1),
328
NOTES =@NOTES,
329
MAKER_ID =@p_MAKER_ID,
330
CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103)
331
WHERE PAY_ID =@PAY_ID --- XU LY TRONG TRUONG HOP TRUNG KEY THI CAP NHAT KY THANH TOAN 202297
332
END
333
UPDATE TR_PO_PAYMENT SET TOTAL_AMT = AMOUNT* ISNULL(RATE, 1) WHERE PAY_ID =@PAY_ID
334
FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES,@CURRENCY,@RATE,@TOTAL_AMT_FN
335
END
336
CLOSE AssetDetail
337
DEALLOCATE AssetDetail
338
CLOSE PaymentDetail
339
DEALLOCATE PaymentDetail
340
---INSERT NHOM QUYEN USER THONG BAO (DAO-EDIT)
341
DELETE FROM TL_ROLE_NOTIFICATION WHERE PO_ID=@p_PO_ID
342
FETCH NEXT FROM LISTROLE INTO
343
@NOTIFI_ID,
344
@TL_NAME,
345
@EDITOR_DT,
346
@EDITOR_ID,
347
@NOTES_ROLE
348
WHILE @@FETCH_STATUS = 0
349
BEGIN
350
IF(LEN(@NOTIFI_ID)=0)
351
EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID out
352
IF @NOTIFI_ID='' OR @NOTIFI_ID IS NULL GOTO ABORT
353
INSERT INTO [dbo].[TL_ROLE_NOTIFICATION]
354
([NOTIFI_ID]
355
,[NOTIFI_CODE]
356
,[NOTIFI_NAME]
357
,[TYPE]
358
,[PO_ID]
359
,[TL_NAME]
360
,[BRANCH_ID]
361
,[RECORD_STATUS]
362
,[AUTH_STATUS]
363
,[EDITOR_ID]
364
,[EDIT_DT]
365
,[NOTES])
366
VALUES
367
(@NOTIFI_ID
368
,''
369
,''
370
,'PO'
371
,@p_PO_ID
372
,@TL_NAME
373
,@p_BRANCH_ID
374
,'1'
375
,'U'
376
,@EDITOR_ID
377
,CONVERT(DATETIME, @EDITOR_DT, 103)
378
,@NOTES_ROLE)
379
IF @@ERROR <> 0 GOTO ABORT
380
FETCH NEXT FROM LISTROLE INTO
381
@NOTIFI_ID,
382
@TL_NAME,
383
@EDITOR_DT,
384
@EDITOR_ID,
385
@NOTES_ROLE
386
END
387
CLOSE LISTROLE
388
DEALLOCATE LISTROLE
389
--- BAT DAU CAP NHAT AUTH_STATUS ='U' NEU BAM GUI PHE DUYET
390
IF(@p_RECORD_STATUS ='U')
391
BEGIN
392
UPDATE TR_PO_MASTER SET AUTH_STATUS ='U' WHERE PO_ID =@p_PO_ID
393
END
394
------------------------BAODNQ 1/3/2022: Insert lưu lịch sử xử lý----------------
395
INSERT INTO dbo.PL_PROCESS
396
(
397
REQ_ID,
398
PROCESS_ID,
399
CHECKER_ID,
400
APPROVE_DT,
401
PROCESS_DESC,
402
NOTES
403
)
404
VALUES
405
( @p_PO_ID, -- REQ_ID - varchar(15)
406
'UPDATE', -- PROCESS_ID - varchar(10)
407
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
408
GETDATE(), -- APPROVE_DT - datetime
409
N'Cập nhật phiếu gọi hàng thành công' ,
410
N'Cập nhật phiếu gọi hàng' -- PROCESS_DESC - nvarchar(1000)
411
)
412
COMMIT TRANSACTION
413
IF(@p_RECORD_STATUS ='U')
414
BEGIN
415
IF(NOT EXISTS(SELECT * FROM TR_PO_DETAIL WHERE PO_ID =@p_PO_ID))
416
BEGIN
417
SELECT '-1' as Result, @p_PO_ID PO_ID, N'PO số: '+ @p_PO_CODE +N' Vui lòng nhập thông tin hàng hóa gọi hàng' ErrorDesc
418
RETURN '-1'
419
END
420
IF(NOT EXISTS(SELECT * FROM TR_PO_PAYMENT WHERE PO_ID =@p_PO_ID))
421
BEGIN
422
SELECT '-1' as Result, @p_PO_ID PO_ID, N'PO số: '+ @p_PO_CODE +N' Vui lòng nhập thông tin lịch thanh toán' ErrorDesc
423
RETURN '-1'
424
END
425
-- INSERT VAO LOG
426
INSERT INTO dbo.PL_PROCESS
427
(
428
REQ_ID,
429
PROCESS_ID,
430
CHECKER_ID,
431
APPROVE_DT,
432
PROCESS_DESC,NOTES
433
)
434
VALUES
435
( @p_PO_ID, -- REQ_ID - varchar(15)
436
'SEND', -- PROCESS_ID - varchar(10)
437
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
438
GETDATE(), -- APPROVE_DT - datetime
439
N'Nhân viên gửi phê duyệt phiếu thành công' ,N'Gửi phê duyệt')
440
SELECT '2' as Result, @p_PO_ID PO_ID, N'PO số: '+ @p_PO_CODE +N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp có thẩm quyền phê duyệt' ErrorDesc
441
RETURN '2'
442
END
443
ELSE
444
BEGIN
445
SELECT '0' as Result, @p_PO_ID PO_ID, N'PO số: '+ @p_PO_CODE +N' đã được cập nhật dữ liệu thành công. Bạn có thể bấm gửi phê duyệt' ErrorDesc
446
RETURN '0'
447
END
448
ABORT:
449
BEGIN
450
CLOSE AssetDetail
451
DEALLOCATE AssetDetail
452
CLOSE PaymentDetail
453
DEALLOCATE PaymentDetail
454
CLOSE LISTROLE
455
DEALLOCATE LISTROLE
456
ROLLBACK TRANSACTION
457
SELECT '-1' AS RESULT
458
RETURN '-1'
459
End
460
--SELECT * FROM TR_CONTRACT_DT
461
--SELECT * FROM TR_CONTRACT_PAYMENT
462
--SELECT * FROM TR_CONTRACT