Project

General

Profile

PO UPD.txt

Luc Tran Van, 02/04/2021 02:23 PM

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[TR_PO_MASTER_Upd]
4
@p_PO_ID	varchar(15) = NULL,
5
@P_PO_TYPE INT = NULL,
6
@p_PO_CODE	varchar(15)  = NULL,
7
@p_PO_NAME	nvarchar(200)  = NULL,
8
@p_CONTRACT_ID	varchar(15)  = NULL,
9
@p_SUP_ID	varchar(15)  = NULL,
10
@p_SUP_NAME	nvarchar(200)  = NULL,
11
@p_SUP_ADDR	nvarchar(200)  = NULL,
12
@p_INPUT_DT	VARCHAR(20) = NULL,
13
@p_PAYMENT_DT	VARCHAR(20) = NULL,
14
@p_TOTAL_AMT	decimal(18)  = NULL,
15
@p_REQ_DOC_ID	varchar(15)  = NULL,
16
@p_DELIVERY_DT	VARCHAR(20) = NULL,
17
@p_PAYAPP_DT	VARCHAR(20) = NULL,
18
@p_NOTES	nvarchar(1000)  = NULL,
19
@p_RECORD_STATUS	varchar(1)  = NULL,
20
@p_MAKER_ID	varchar(15)  = NULL,
21
@p_CREATE_DT	VARCHAR(20) = NULL,
22
@p_AUTH_STATUS	varchar(50)  = NULL,
23
@p_CHECKER_ID	varchar(15)  = NULL,
24
@p_APPROVE_DT	VARCHAR(20) = NULL,
25
@p_TR_REQ_ID VARCHAR(20) = NULL,
26
@p_TR_REQ_CODE VARCHAR(20)= NULL,
27
@P_LISTASSET XML = NULL,
28
@P_LISTPAYMENT XML = NULL,
29
@P_LISTROLE XML = NULL,
30
@p_BRANCH_ID varchar(15) = null,
31
@p_IS_CLOSED VARCHAR(1) = NULL
32
AS
33
	DECLARE @REF_CODE VARCHAR(15) = NULL, @PDN_TT VARCHAR(15) = NULL
34
	SET @REF_CODE =
35
	(	SELECT TOP 1 B.REQ_PAY_CODE
36
		FROM TR_REQ_ADVANCE_DT A
37
		INNER JOIN TR_REQ_ADVANCE_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
38
		WHERE A.REF_ID =@p_PO_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
39
	)
40
	--- TIM KIEM XEM PO NAY CO DUOC PHEP THANH TOAN HAY KHONG
41
	SET @PDN_TT =
42
	(	SELECT TOP 1 B.REQ_PAY_CODE
43
		FROM TR_REQ_ADVANCE_DT A
44
		INNER JOIN TR_REQ_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
45
		WHERE A.REF_ID =@p_CONTRACT_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
46
	)
47
	IF(@p_IS_CLOSED ='Y' AND @REF_CODE IS NOT NULL)
48
	BEGIN
49
		ROLLBACK TRANSACTION
50
			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 
51
			RETURN '-1'
52
	END
53
	IF(@p_IS_CLOSED ='Y' AND @PDN_TT IS NOT NULL)
54
	BEGIN
55
		ROLLBACK TRANSACTION
56
			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 
57
			RETURN '-1'
58
	END
59
	IF EXISTS(SELECT * FROM TR_PO_MASTER WHERE [PO_CODE] = @p_PO_CODE AND [PO_ID] <> @p_PO_ID)
60
	BEGIN
61
		SELECT ErrorCode Result, '' PO_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'PO-00002'
62
		RETURN '0'
63
	END
64
	--- 21052020 KIEM TRA XEM NEU PYCMS DA TON TAI HAY CHUA
65
	IF((SELECT COUNT(*) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_DOC_ID)=1)
66
	BEGIN
67
			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))
68
			BEGIN
69
				ROLLBACK TRANSACTION
70
				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 ErrorDesc 
71
				RETURN '-1'
72
			END
73
	END
74
	------
75
	Declare @hdoc INT
76
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET
77
	DECLARE AssetDetail CURSOR FOR
78
	SELECT *
79
	FROM OPENXML(@hDoc,'/Root/AssetDetail',2)
80
	WITH 
81
	(
82
		PD_ID VARCHAR(15),
83
		PLAN_ID	varchar(15)  ,
84
		TRADE_ID	varchar(15)  ,
85
		REQ_DT_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,2),
129
		[AMOUNT]	decimal(18,2),
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
		@REQ_DT_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,2)  = NULL,
195
		@AMOUNT	decimal(18,2)  = 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,@REQ_DT_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
		    EXEC SYS_CodeMasters_Gen 'TR_PO_DETAIL', @PD_ID out
242
			IF @PD_ID ='' OR @PD_ID IS NULL GOTO ABORT
243
			
244
			IF(@DELIVERY_DT = '')
245
				SET @DELIVERY_DT = NULL
246
			IF(@PAID_DT = '')
247
				SET @PAID_DT = NULL
248
			IF(@INVOICE_DT = '')
249
				SET @INVOICE_DT = NULL				
250
			IF @EXP_DELIVERY_DT = '' SET @EXP_DELIVERY_DT = NULL
251

    
252
			/***THIEUVQ THEM KIEM TRA VA LUU THONG TIN LOAI HANG HOA THUC TE***/
253
			--BEGIN
254
			--CHUA CO LOAI HANG HOA THI THEM MOI
255
			IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = ''
256
			BEGIN
257
				--NEU TON TAI THI LAY RA ID
258
				SET @GOODSTYPE_REAL = (SELECT TOP 1 GD_RETYPE_ID FROM CM_GOODSTYPE_REAL WHERE [TYPE_NAME] = @GOODSTYPE_REAL_NAME)
259
				--NEU CHUA CO THI THEM MOI
260
				IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = ''
261
				BEGIN
262
					EXEC SYS_CodeMasters_Gen 'CM_GOODSTYPE_REAL', @l_GOODSTYPE_ID OUT
263
					IF @l_GOODSTYPE_ID='' OR @l_GOODSTYPE_ID IS NULL GOTO ABORT
264

    
265
					INSERT INTO CM_GOODSTYPE_REAL VALUES (@l_GOODSTYPE_ID, @l_GOODSTYPE_ID, @GOODSTYPE_REAL_NAME, '', '1',
266
					@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),'A',@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103))
267
					IF @@ERROR <> 0 GOTO ABORT
268

    
269
					SET @GOODSTYPE_REAL = @l_GOODSTYPE_ID
270
				END
271
			END			
272
			--END
273

    
274
			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],
275
			[PAYMENT_STATUS],[AMOUNT_PAID],[PAID_DT],[INVOICENO],[NOTES], RECEIVE_BRANCH, RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL,[RECORD_STATUS],[MAKER_ID],[CREATE_DT],
276
			[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)
277
			VALUES(@PD_ID ,@p_PO_ID ,@PLAN_ID ,@TRADE_ID,@REQ_DT_ID ,@GOODS_ID,@DESCRIPTION ,@UNIT_ID ,@QUANTITY ,@PRICE ,@TOTAL_AMT ,
278
			@IS_DELIVERY ,CONVERT(DATETIME, @DELIVERY_DT, 103) ,@PAYMENT_STATUS ,@AMOUNT_PAID ,
279
			CONVERT(DATETIME, @PAID_DT, 103) ,@INVOICENO ,@NOTES , @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,
280
			@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),
281
			@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) )
282
			IF @@ERROR <> 0 GOTO ABORT
283

    
284
		-- next Group_Id
285
			FETCH NEXT FROM AssetDetail INTO @PD_ID,@PLAN_ID,@TRADE_ID,@REQ_DT_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
286
			@PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT,
287
			@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL, @EXP_DELIVERY_DT,@GOODS_NAME,@INVOICE_DT,
288
			@GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT,@CURRENCY,@RATE,@TOTAL_AMT_FN
289
		END
290
		
291
		--insert payment detail
292
		
293
		DELETE FROM TR_PO_PAYMENT WHERE PO_ID = @p_PO_ID
294

    
295
		FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES,@CURRENCY,@RATE,@TOTAL_AMT_FN
296
		WHILE @@FETCH_STATUS = 0
297
		BEGIN
298
			 EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @PAY_ID out
299
			 IF @PAY_ID ='' OR @PAY_ID IS NULL GOTO ABORT
300
			--PRINT @PAY_ID
301
			--IF(LEN(@PAY_ID) = 0)
302
			--BEGIN
303
					--EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @PAY_ID out
304
					--IF @PAY_ID ='' OR @PAY_ID IS NULL GOTO ABORT
305
			--END
306
			IF @EXPECTED_DT = ''
307
				SET @EXPECTED_DT = NULL
308
			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)
309
			VALUES(@PAY_ID ,@p_PO_ID ,@PAY_PHASE ,CONVERT(DATETIME, @EXPECTED_DT, 103) ,@PERCENT ,@TOTAL_AMT_FN / ISNULL(@RATE,1),@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))
310
			UPDATE TR_PO_PAYMENT SET TOTAL_AMT = AMOUNT* ISNULL(RATE, 1) WHERE PAY_ID =@PAY_ID
311
			FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES,@CURRENCY,@RATE,@TOTAL_AMT_FN 
312
		END
313

    
314
		CLOSE AssetDetail
315
		DEALLOCATE AssetDetail
316
		CLOSE PaymentDetail
317
		DEALLOCATE PaymentDetail
318

    
319
		---INSERT NHOM QUYEN USER THONG BAO (DAO-EDIT)
320
		DELETE FROM TL_ROLE_NOTIFICATION WHERE PO_ID=@p_PO_ID
321

    
322
	   FETCH NEXT FROM LISTROLE INTO
323
		@NOTIFI_ID,
324
		@TL_NAME,
325
		@EDITOR_DT,
326
		@EDITOR_ID,
327
		@NOTES_ROLE
328
		WHILE @@FETCH_STATUS = 0
329
		BEGIN
330
			IF(LEN(@NOTIFI_ID)=0)
331
			EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID out
332
			IF @NOTIFI_ID='' OR @NOTIFI_ID IS NULL GOTO ABORT
333

    
334
			INSERT INTO [dbo].[TL_ROLE_NOTIFICATION]
335
           ([NOTIFI_ID]
336
           ,[NOTIFI_CODE]
337
           ,[NOTIFI_NAME]
338
           ,[TYPE]
339
           ,[PO_ID]
340
           ,[TL_NAME]
341
           ,[BRANCH_ID]
342
           ,[RECORD_STATUS]
343
           ,[AUTH_STATUS]
344
           ,[EDITOR_ID]
345
           ,[EDIT_DT]
346
           ,[NOTES])
347
			 VALUES
348
           (@NOTIFI_ID
349
           ,''
350
           ,''
351
           ,'PO'
352
           ,@p_PO_ID
353
           ,@TL_NAME
354
           ,@p_BRANCH_ID
355
           ,'1'
356
           ,'U'
357
           ,@EDITOR_ID
358
           ,CONVERT(DATETIME, @EDITOR_DT, 103)
359
           ,@NOTES_ROLE)
360
			
361
			IF @@ERROR <> 0 GOTO ABORT
362
			
363
			FETCH NEXT FROM LISTROLE INTO
364
			@NOTIFI_ID,
365
			@TL_NAME,
366
			@EDITOR_DT,
367
			@EDITOR_ID,
368
			@NOTES_ROLE
369
		END
370
		
371
		CLOSE LISTROLE
372
		DEALLOCATE LISTROLE
373
		--- BAT DAU CAP NHAT AUTH_STATUS ='U' NEU BAM GUI PHE DUYET
374
		IF(@p_RECORD_STATUS ='U')
375
		BEGIN
376
			UPDATE TR_PO_MASTER SET AUTH_STATUS ='U' WHERE PO_ID =@p_PO_ID
377
		END
378
COMMIT TRANSACTION
379
IF(@p_RECORD_STATUS ='U')
380
BEGIN
381
	-- INSERT VAO LOG
382
	INSERT INTO dbo.PL_PROCESS
383
	(
384
						REQ_ID,
385
						PROCESS_ID,
386
						CHECKER_ID,
387
						APPROVE_DT,
388
						PROCESS_DESC,NOTES
389
					)
390
					VALUES
391
					(   @p_PO_ID,        -- REQ_ID - varchar(15)
392
						'SEND',        -- PROCESS_ID - varchar(10)
393
						@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
394
						GETDATE(), -- APPROVE_DT - datetime
395
					   N'Nhân viên gửi phê duyệt phiếu thành công' ,N'Gửi phê duyệt')
396
	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
397
	RETURN '2'
398
	
399
END
400
ELSE
401
BEGIN
402
	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
403
	RETURN '0'
404
END
405
ABORT:
406
BEGIN
407
		CLOSE AssetDetail
408
		DEALLOCATE AssetDetail
409
		CLOSE PaymentDetail
410
		DEALLOCATE PaymentDetail
411
		CLOSE LISTROLE
412
		DEALLOCATE LISTROLE
413
		ROLLBACK TRANSACTION
414
		SELECT '-1' AS RESULT
415
		RETURN '-1'
416
End
417

    
418

    
419
--SELECT * FROM TR_CONTRACT_DT
420

    
421
--SELECT * FROM TR_CONTRACT_PAYMENT
422

    
423
--SELECT * FROM TR_CONTRACT
424

    
425