Project

General

Profile

TR_PO_UP.txt

Luc Tran Van, 12/29/2020 10:16 AM

 
1
ALTER 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
AS
31
	DECLARE @REF_CODE VARCHAR(15) = NULL, @PDN_TT VARCHAR(15) = NULL
32
	SET @REF_CODE =
33
	(	SELECT TOP 1 B.REQ_PAY_CODE
34
		FROM TR_REQ_ADVANCE_DT A
35
		INNER JOIN TR_REQ_ADVANCE_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
36
		WHERE A.REF_ID =@p_PO_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
37
	)
38
	--- TIM KIEM XEM PO NAY CO DUOC PHEP THANH TOAN HAY KHONG
39
	SET @PDN_TT =
40
	(	SELECT TOP 1 B.REQ_PAY_CODE
41
		FROM TR_REQ_ADVANCE_DT A
42
		INNER JOIN TR_REQ_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
43
		WHERE A.REF_ID =@p_CONTRACT_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
44
	)
45
	IF(@p_IS_CLOSED ='Y' AND @REF_CODE IS NOT NULL)
46
	BEGIN
47
		ROLLBACK TRANSACTION
48
			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 
49
			RETURN '-1'
50
	END
51
	IF(@p_IS_CLOSED ='Y' AND @PDN_TT IS NOT NULL)
52
	BEGIN
53
		ROLLBACK TRANSACTION
54
			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 
55
			RETURN '-1'
56
	END
57
	IF EXISTS(SELECT * FROM TR_PO_MASTER WHERE [PO_CODE] = @p_PO_CODE AND [PO_ID] <> @p_PO_ID)
58
	BEGIN
59
		SELECT ErrorCode Result, '' PO_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'PO-00002'
60
		RETURN '0'
61
	END
62
	--- 21052020 KIEM TRA XEM NEU PYCMS DA TON TAI HAY CHUA
63
	IF((SELECT COUNT(*) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_DOC_ID)=1)
64
	BEGIN
65
			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))
66
			BEGIN
67
				ROLLBACK TRANSACTION
68
				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 
69
				RETURN '-1'
70
			END
71
	END
72
	------
73
	Declare @hdoc INT
74
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET
75
	DECLARE AssetDetail CURSOR FOR
76
	SELECT *
77
	FROM OPENXML(@hDoc,'/Root/AssetDetail',2)
78
	WITH 
79
	(
80
		PD_ID VARCHAR(15),
81
		PLAN_ID	varchar(15)  ,
82
		TRADE_ID	varchar(15)  ,
83
		REQ_DT_ID VARCHAR(15),
84
		GOODS_ID	varchar(15)  ,
85
		[DESCRIPTION] nvarchar(500),
86
		UNIT_ID	varchar(15)  ,
87
		QUANTITY	decimal(18)  ,
88
		PRICE	decimal(18,2)  ,
89
		TOTAL_AMT	decimal(18,2),
90
		IS_DELIVERY	varchar(1) ,
91
		DELIVERY_DT	VARCHAR(20),
92
		PAYMENT_STATUS	varchar(4),
93
		AMOUNT_PAID	decimal(18)  ,
94
		PAID_DT	VARCHAR(20) ,
95
		INVOICENO	varchar(1000),
96
		NOTES	nvarchar(1000),
97
		RECEIVE_BRANCH	varchar(15),
98
		RECEIVE_ADDR	nvarchar(1000),
99
		RECEIVE_PERSON	nvarchar(500),
100
		RECEIVE_TEL	varchar(100),
101
		EXP_DELIVERY_DT varchar(20),
102
		GOODS_NAME NVARCHAR(500),
103
		INVOICE_DT	VARCHAR(20),
104
		--THIEUVQ 100415 THEM LOAI HANG HOA THUC TE
105
		GOODSTYPE_REAL	VARCHAR(15),
106
		GOODSTYPE_REAL_NAME	VARCHAR(15),
107
		--THIEUVQ 13092016 THEM VAT, CONTRACT_DT
108
		VAT DECIMAL(18,2),
109
		PRICE_VAT DECIMAL(18,0),
110
		CONTRACT_DT VARCHAR(15),
111
		CURRENCY VARCHAR(15),
112
		RATE INT,
113
		TOTAL_AMT_FN  DECIMAL(18,2)
114
		)
115
	OPEN AssetDetail
116

    
117
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTPAYMENT
118
	DECLARE PaymentDetail CURSOR FOR
119
	SELECT *
120
	FROM OPENXML(@hDoc,'/Root/PaymentDetail',2)
121
	WITH 
122
	(
123
		PAY_ID	VARCHAR(15),
124
		PAY_PHASE	varchar(15),
125
		EXPECTED_DT	VARCHAR(20),
126
		[PERCENT]	decimal(18,2),
127
		[AMOUNT]	decimal(18,2),
128
		NOTES	nvarchar(1000),
129
		CURRENCY VARCHAR(15),
130
		RATE INT,
131
		TOTAL_AMT DECIMAL(18,2)
132
	)
133
	OPEN PaymentDetail
134
	PRINT 'PASS KHOI TAO'
135

    
136
	--Nhom user gui mail (DAO EDIT)
137
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTROLE
138
	DECLARE LISTROLE CURSOR FOR
139
	SELECT *
140
	FROM OPENXML(@hDoc,'/Root/LISTROLE',2)
141
	WITH 
142
	(
143
		NOTIFI_ID	VARCHAR(15),
144
		TL_NAME	varchar(15),
145
		EDITOR_DT VARCHAR(20),
146
		EDITOR_ID VARCHAR(15),
147
		NOTES nvarchar(1000)
148
	)
149
	OPEN LISTROLE
150

    
151
BEGIN TRANSACTION
152
		IF @p_DELIVERY_DT = ''
153
			SET @p_DELIVERY_DT = NULL
154
		IF @p_PAYAPP_DT	= ''
155
			SET @p_PAYAPP_DT = NULL
156
		--insert master
157
		UPDATE TR_PO_MASTER SET [PO_TYPE] = @P_PO_TYPE, [PO_CODE] = @p_PO_CODE,[PO_NAME] = @p_PO_NAME,
158
		[CONTRACT_ID] = @p_CONTRACT_ID,[SUP_ID] = @p_SUP_ID,[SUP_NAME] = @p_SUP_NAME,[SUP_ADDR] = @p_SUP_ADDR,
159
		[INPUT_DT] = CONVERT(DATETIME, @p_INPUT_DT, 103),[PAYMENT_DT] = CONVERT(DATETIME, @p_PAYMENT_DT, 103),
160
		[TOTAL_AMT] = @p_TOTAL_AMT,[REQ_DOC_ID] = @p_TR_REQ_ID,[DELIVERY_DT] = CONVERT(DATETIME, @p_DELIVERY_DT, 103),
161
		[PAYAPP_DT] = CONVERT(DATETIME, @p_PAYAPP_DT, 103),[NOTES] = @p_NOTES,[RECORD_STATUS] = '1',
162
		[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = 'E',
163
		[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), BRANCH_ID = @p_BRANCH_ID
164
		WHERE  PO_ID= @p_PO_ID
165
		IF @@Error <> 0 GOTO ABORT
166
		PRINT 'INSERT MASTER SUCCESS'
167
		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
168

    
169
		--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
170
		Declare 
171
		@PAY_ID VARCHAR(15),
172
		@PD_ID VARCHAR(15),
173
		@PLAN_ID	varchar(15),
174
		@TRADE_ID	varchar(15),
175
		@REQ_DT_ID VARCHAR(15),
176
		@GOODS_ID	varchar(15),
177
		@DESCRIPTION nvarchar(500),
178
		@UNIT_ID	varchar(15),
179
		@QUANTITY	decimal(18),
180
		@PRICE	decimal(18,2),
181
		@TOTAL_AMT	decimal(18,2),
182
		@IS_DELIVERY	varchar(1),
183
		@DELIVERY_DT	VARCHAR(20),
184
		@PAYMENT_STATUS	varchar(4),
185
		@AMOUNT_PAID	decimal(18),
186
		@PAID_DT	VARCHAR(20),
187
		@INVOICENO	varchar(20),
188
		@NOTES	nvarchar(1000),
189
		@PO_ID	varchar(15)  = NULL,
190
		@PAY_PHASE	VARCHAR(20) = NULL,
191
		@EXPECTED_DT	VARCHAR(20) = NULL,
192
		@PERCENT	decimal(18,2)  = NULL,
193
		@AMOUNT	decimal(18,2)  = NULL,
194
		@RECEIVE_BRANCH	varchar(15)=NULL,
195
		@RECEIVE_ADDR	nvarchar(1000)=NULL,
196
		@RECEIVE_PERSON	nvarchar(500)=NULL,
197
		@RECEIVE_TEL	varchar(100)=NULL,
198
		@EXP_DELIVERY_DT varchar(20) = NULL,
199
		@GOODS_NAME NVARCHAR(500) = NULL,
200
		@INVOICE_DT	VARCHAR(20),
201
		@GOODSTYPE_REAL	VARCHAR(15) = NULL,
202
		@GOODSTYPE_REAL_NAME	VARCHAR(15) = NULL,
203
		@VAT DECIMAL(18,2),
204
		@PRICE_VAT DECIMAL(18,0),
205
		@CONTRACT_DT VARCHAR(15),
206
		--DAO MOI THEM
207
		@NOTIFI_ID VARCHAR(15),
208
		@TL_NAME VARCHAR(15),
209
		@EDITOR_DT VARCHAR(20),
210
		@EDITOR_ID VARCHAR(15),
211
		@NOTES_ROLE nvarchar(1000),
212

    
213
		@CURRENCY VARCHAR(15),
214
		@RATE INT,
215
		@TOTAL_AMT_FN DECIMAL(18,2)
216

    
217
		DECLARE @l_GOODSTYPE_ID VARCHAR(15)
218

    
219
		DELETE FROM TR_PO_DETAIL WHERE PO_ID = @P_PO_ID 
220

    
221
		FETCH NEXT FROM AssetDetail INTO @PD_ID,@PLAN_ID,@TRADE_ID,@REQ_DT_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
222
		@PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT,
223
		@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@EXP_DELIVERY_DT,@GOODS_NAME, @INVOICE_DT,
224
		@GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT,@CURRENCY,@RATE,@TOTAL_AMT_FN
225
		WHILE @@FETCH_STATUS = 0
226
		BEGIN
227
			--if( NOT EXISTS (SELECT * FROM PL_MASTER A WHERE A.PLAN_ID = @PLAN_ID))
228
			--BEGIN
229
			--	SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'TR-00002'
230
			--	GOTO ABORT
231
			--END
232

    
233
			IF(LEN(@PD_ID) = 0)
234

    
235
			BEGIN
236
				EXEC SYS_CodeMasters_Gen 'TR_PO_DETAIL', @PD_ID out
237
				IF @PD_ID ='' OR @PD_ID IS NULL GOTO ABORT
238
			END
239
			
240
			IF(@DELIVERY_DT = '')
241
				SET @DELIVERY_DT = NULL
242
			IF(@PAID_DT = '')
243
				SET @PAID_DT = NULL
244
			IF(@INVOICE_DT = '')
245
				SET @INVOICE_DT = NULL				
246
			IF @EXP_DELIVERY_DT = '' SET @EXP_DELIVERY_DT = NULL
247

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

    
261
					INSERT INTO CM_GOODSTYPE_REAL VALUES (@l_GOODSTYPE_ID, @l_GOODSTYPE_ID, @GOODSTYPE_REAL_NAME, '', '1',
262
					@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),'A',@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103))
263
					IF @@ERROR <> 0 GOTO ABORT
264

    
265
					SET @GOODSTYPE_REAL = @l_GOODSTYPE_ID
266
				END
267
			END			
268
			--END
269

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

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

    
291
		FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES,@CURRENCY,@RATE,@TOTAL_AMT_FN
292
		WHILE @@FETCH_STATUS = 0
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
			--PRINT @PAY_ID
297
			--IF(LEN(@PAY_ID) = 0)
298
			--BEGIN
299
			--		EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @PAY_ID out
300
			--		IF @PAY_ID ='' OR @PAY_ID IS NULL GOTO ABORT
301
			--END
302
			IF @EXPECTED_DT = ''
303
				SET @EXPECTED_DT = NULL
304
			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)
305
			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))
306
			UPDATE TR_PO_PAYMENT SET TOTAL_AMT = AMOUNT* ISNULL(RATE, 1) WHERE PAY_ID =@PAY_ID
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
--SELECT * FROM TR_CONTRACT_DT
416

    
417
--SELECT * FROM TR_CONTRACT_PAYMENT
418

    
419
--SELECT * FROM TR_CONTRACT
420

    
421