Project

General

Profile

PO_UP_MASTER_V2.txt

Luc Tran Van, 11/23/2020 11:38 AM

 
1
 
2
 
3

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

    
415