Project

General

Profile

PO_UP_MASTER.txt

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

    
417