Project

General

Profile

1.0.03.03.2025 BVBANK CAP NHAT HOP DONG.txt

Luc Tran Van, 03/04/2025 08:47 AM

 
1
SET QUOTED_IDENTIFIER ON
2
SET ANSI_NULLS ON
3
GO
4
ALTER PROCEDURE [dbo].[TR_CONTRACT_Upd]
5
@p_CONTRACT_ID VARCHAR(15),
6
@p_CONTRACT_CODE	varchar(150)  = NULL,
7
@p_CONTRACT_NAME	nvarchar(200)  = NULL,
8
@p_CONTRACT_TYPE varchar(1) = NULL,
9
@p_BID_ID	varchar(15)  = NULL,
10
@p_SUP_ID	varchar(15)  = NULL,
11
@p_TOTAL_AMT	decimal(18)  = NULL,
12
@p_DELIVERY_DT	VARCHAR(20) = NULL,
13
@p_FORM1	varchar(4)  = NULL,
14
@p_VOUCHER_ID1	varchar(20)  = NULL,
15
@p_BANK1	varchar(4)  = NULL,
16
@p_AMOUNT1	decimal(18)  = NULL,
17
@p_EXP_DT1	VARCHAR(20) = NULL,
18
@p_RATE1	decimal(18,2)  = NULL,
19
@p_FORM2	varchar(4)  = NULL,
20
@p_VOUCHER_ID2	varchar(20)  = NULL,
21
@p_BANK2	varchar(4)  = NULL,
22
@p_AMOUNT2	decimal(18)  = NULL,
23
@p_EXP_DT2	VARCHAR(20) = NULL,
24
@p_RATE2	decimal(18,2)  = NULL,
25
@p_REQ_DOC_ID	nvarchar(50)  = NULL,
26
@p_REQ_DOC_CONTENT	nvarchar(1000)  = NULL,
27
@p_APPROVE_VALUE	decimal(18)  = NULL,
28
@p_SIGN_DT	VARCHAR(20) = NULL,
29
@p_CONSTRUCT_PROGRESS	decimal(18,2)  = NULL,
30
@p_NOTES	nvarchar(1000)  = NULL,
31
@p_RECORD_STATUS	varchar(1)  = NULL,
32
@p_MAKER_ID	varchar(12)  = NULL,
33
@p_CREATE_DT	VARCHAR(20) = NULL,
34
@p_AUTH_STATUS	varchar(50)  = NULL,
35
@p_CHECKER_ID	varchar(12)  = NULL,
36
@p_APPROVE_DT	VARCHAR(20) = NULL,
37
@P_START_DT NVARCHAR(20) = NULL,
38
@P_END_DT NVARCHAR(20) = NULL,
39
@P_LISTASSET XML = NULL,
40
@P_LISTPAYMENT XML = NULL,
41
@P_CON_TRACK XML = NULL,
42
@p_ListTrREQFile XML,
43
@p_IS_CLOSED VARCHAR(1) = NULL,
44
@p_CONT_TYPE VARCHAR(10) = NULL,
45
@p_CUST_ID VARCHAR(15) = NULL,
46
@p_BRANCH_ID VARCHAR(15) = NULL,
47
@p_EXP_CONTRACT INT = NULL, 
48
@p_DEPOSIT_AMT DECIMAL(18,0) = NULL,
49
@p_TYPE_PERIOD VARCHAR(15) = NULL,
50
@p_DEPOSIT_NOTE NVARCHAR(1000) = NULL,
51
-----------------------BAODNQ 25/2/2022 : Thêm cột vào bảng TR_CONTRACT-------------
52
@p_IS_SEND_APPR VARCHAR(1) = NULL,
53
@p_SEND_APPR_DT VARCHAR(20) = NULL,
54
@p_ADDR NVARCHAR(1000) = NULL,
55
@p_SUP_CODE VARCHAR(20) = NULL
56
AS
57
---- 15.04.2023 LUCTV DIEU CHỈNH KIỂM TRA CÁC THÔNG TIN VỀ NGÀY HIỆU LỰC / NGÀY HẾT HIỆU LỰC / GIÁ TRỊ HỢP ĐỒNG NẾU CÓ ĐIỀU CHỈNH THÌ MỚI GHI NHẬN LOG, NGƯỢC LẠI NẾU KHÔNG THAY ĐỔI THÌ KHÔNG CẦN GHI LOG
58
		DECLARE @START_DATE_EXEC_OLD DATE, @END_DATE_EXEC_OLD DATE, @TOTAL_AMT_CONTRACT_OLD DECIMAL(18,0), @SUPPLIER_ID_OLD NVARCHAR(1000),@SUPPLIER_NAME_OLD NVARCHAR(1000), 
59
		@SUPPLIER_NAME NVARCHAR(1000)
60
		SET @START_DATE_EXEC_OLD = ISNULL((SELECT START_DT FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID),'')
61
		SET @END_DATE_EXEC_OLD = ISNULL((SELECT END_DT FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID),'')
62
		SET @TOTAL_AMT_CONTRACT_OLD = ISNULL((SELECT TOTAL_AMT FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID),0)
63
		SET @SUPPLIER_ID_OLD = ISNULL((SELECT SUP_ID FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID),'')
64
		SET @SUPPLIER_NAME_OLD =ISNULL((SELECT SUP_NAME FROM CM_SUPPLIER WHERE SUP_ID=@SUPPLIER_ID_OLD),'')
65
		SET @SUPPLIER_NAME =ISNULL((SELECT SUP_NAME FROM CM_SUPPLIER WHERE SUP_ID=@p_SUP_ID),'')
66
---- END LUCTV 15.04.2023
67
	IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID = @p_CONTRACT_ID AND AUTH_STATUS = 'U'))
68
	BEGIN
69
		SELECT '-1' as Result, @P_CONTRACT_ID  CONTRACT_ID, 
70
			N'Không thể chỉnh sửa. Hợp đồng ' + @p_CONTRACT_CODE + 
71
				N' đã được gửi yêu cầu phê duyệt' ErrorDesc
72
		RETURN '-1'
73
	END
74
	DECLARE @sErrorCode VARCHAR(20)
75
	DECLARE @TEMP TABLE
76
			(
77
				[KEY] varchar(15),
78
				[REF_ID] varchar(15),
79
				[TYPE] varchar(50)
80
			)
81
	--IF (@p_CONTRACT_CODE IS NOT NULL AND @p_CONTRACT_CODE <> '')
82
	--BEGIN
83
	--	IF EXISTS(SELECT * FROM TR_CONTRACT A WHERE A.CONTRACT_CODE = @p_CONTRACT_CODE AND A.CONTRACT_ID != @p_CONTRACT_ID )
84
	--	BEGIN
85
	--		SET @sErrorCode = 'TR-00001'
86
	--	END
87
	--END
88
	
89
	----------------BAODNQ 8/11/2022 : BỎ RÀNG BUỘC TRÙNG SỐ HỢP ĐỒNG------------
90
	--IF(@p_CONTRACT_CODE IS NOT NULL AND @p_CONTRACT_CODE <> '')
91
	--BEGIN
92
	--	IF(EXISTS (SELECT * FROM TR_CONTRACT WHERE CONTRACT_CODE = @p_CONTRACT_CODE AND CONTRACT_ID <> @p_CONTRACT_ID))
93
	--	BEGIN
94
	--		DECLARE @p_EXISTS_CONTRACT_ID VARCHAR(15) = (
95
	--			SELECT TOP 1 CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_CODE = @p_CONTRACT_CODE AND CONTRACT_ID <> @p_CONTRACT_ID
96
	--		)
97
	--		SELECT '-1' AS Result, '' CONTRACT_ID,
98
	--			N'Số hợp đồng: ' + @p_CONTRACT_CODE + N' đã tồn tại trên hệ thống ứng với ID hợp đồng: ' 
99
	--			+ @p_EXISTS_CONTRACT_ID + N'. Vui lòng nhập số hợp đồng khác' ErrorDesc
100
	--		RETURN '-1'
101
	--	END
102
	--END
103

    
104
	IF 	@sErrorCode <> ''
105
	BEGIN
106
		SELECT '-1' as Result, ''  CONTRACT_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode
107
		RETURN '-1'
108
	END
109
	
110
	DECLARE @REF_CODE VARCHAR(15) = NULL, @PDN_TT VARCHAR(15) = NULL
111
	SET @REF_CODE =
112
	(	SELECT TOP 1 B.REQ_PAY_CODE
113
		FROM TR_REQ_ADVANCE_DT A
114
		INNER JOIN TR_REQ_ADVANCE_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
115
		WHERE A.REF_ID =@p_CONTRACT_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
116
	)
117
	--- TIM KIEM XEM PO NAY CO DUOC PHEP THANH TOAN HAY KHONG
118
	SET @PDN_TT =
119
	(	SELECT TOP 1 B.REQ_PAY_CODE
120
		FROM TR_REQ_ADVANCE_DT A
121
		INNER JOIN TR_REQ_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
122
		WHERE A.REF_ID =@p_CONTRACT_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
123
	)
124
	IF(@p_IS_CLOSED ='Y' AND @REF_CODE IS NOT NULL)
125
	BEGIN
126
			--ROLLBACK TRANSACTION
127
			SELECT '-1' Result, @p_CONTRACT_ID AS PO_ID, N'Hợp đồng đang được thực hiện tạm ứng với số phiếu: '+@REF_CODE AS ErrorDesc 
128
			RETURN '-1'
129
	END
130
	IF(@p_IS_CLOSED ='Y' AND @PDN_TT IS NOT NULL)
131
	BEGIN
132
		--ROLLBACK TRANSACTION
133
			SELECT '-1' Result, @p_CONTRACT_ID AS PO_ID, N'Hợp đồng đang được thực hiện thanh toán với số phiếu: '+@PDN_TT AS ErrorDesc 
134
			RETURN '-1'
135
	END
136

    
137
	----------------BAODNQ 14/11/2022 : NẾU LOẠI HỢP ĐỒNG = DK, KO BẮT BUỘC NHẬP LƯỚI DANH SÁCH HÀNG HÓA------------------
138
	---------------NGƯỢC LẠI NẾU LÀ (MS, NT), BẮT BUỘC NHẬP LƯỚI DANH SÁCH HÀNG HÓA----------------
139
	DECLARE @p_TR_CONTRACT_DT_XML_COUNT INT
140
	SET @p_TR_CONTRACT_DT_XML_COUNT = (
141
		SELECT @p_LISTASSET.value('count(/Root/AssetDetail/GOODS_ID)', 'INT') AS 'COUNT'
142
	)
143
	PRINT @p_TR_CONTRACT_DT_XML_COUNT
144
	IF(@p_CONT_TYPE <> 'DK' AND @p_TR_CONTRACT_DT_XML_COUNT <= 0)
145
	BEGIN
146
		SELECT '-1' Result, '' AS CONTRACT_ID, N'Đối với hợp đồng không phải là hợp đồng định kỳ, lưới danh sách hàng hóa bắt buộc nhập' AS ErrorDesc 
147
		RETURN '-1'
148
	END
149
	-----------------ENDBAODNQ-------------------
150

    
151
	Declare @hdoc INT
152
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET
153
	DECLARE AssetDetail CURSOR FOR
154
	SELECT *
155
	FROM OPENXML(@hDoc,'/Root/AssetDetail',2)
156
	WITH 
157
	(
158
		CD_ID VARCHAR(15),
159
		GOODS_ID	varchar(15),
160
		UNIT_ID	varchar(15),
161
		QUANTITY	decimal(18),
162
		PRICE	decimal(18),
163
		NOTES	nvarchar(1000),
164
		GD_NAME_REAL NVARCHAR(500),
165
		RECURRING VARCHAR(5),
166
		UNIT_NAME_REAL NVARCHAR(100),
167
		-------------------BAODNQ 23/2/2022: Thêm cột vào bảng TR_CONTRACT_DT-------------
168
		RENT_PRICE DECIMAL(18,0),
169
		BUILDING_ID VARCHAR(15)
170
	)
171
	OPEN AssetDetail
172

    
173
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTPAYMENT
174
	DECLARE PaymentDetail CURSOR FOR
175
	SELECT *
176
	FROM OPENXML(@hDoc,'/Root/PaymentDetail',2)
177
	WITH 
178
	(
179
		PAY_ID	VARCHAR(15),
180
		PAY_PHASE	NVARCHAR(1000),
181
		EXPECTED_DT	VARCHAR(20),
182
		[PERCENT]	decimal(18,2),
183
		[AMOUNT]	decimal(18),
184
		PAY_STATUS VARCHAR(1),
185
		PAY_AMOUNT DECIMAL(18),
186
		PAY_DT VARCHAR(20),
187
		NOTES	nvarchar(1000)
188
	)
189
	OPEN PaymentDetail
190
	---- LUCTV 02082023_SECRETKEY XÓA NHỮNG LỊCH THANH TOÁN KHÔNG NẰM TRONG XML
191
	DELETE FROM TR_CONTRACT_PAYMENT WHERE CONTRACT_ID =@p_CONTRACT_ID AND PAY_ID NOT IN (SELECT ISNULL(PAY_ID,'') FROM OPENXML(@hDoc,'/Root/PaymentDetail',2)
192
	WITH 
193
	(
194
		PAY_ID	VARCHAR(15),
195
		PAY_PHASE	NVARCHAR(1000),
196
		EXPECTED_DT	VARCHAR(20),
197
		[PERCENT]	decimal(18,2),
198
		[AMOUNT]	decimal(18),
199
		PAY_STATUS VARCHAR(1),
200
		PAY_AMOUNT DECIMAL(18),
201
		PAY_DT VARCHAR(20),
202
		NOTES	nvarchar(1000)
203
	))
204
	Exec sp_xml_preparedocument @hdoc Output,@P_CON_TRACK
205
	DECLARE ConTrack CURSOR FOR
206
	SELECT *
207
	FROM OPENXML(@hDoc,'/Root/ConTrack',2)
208
	WITH 
209
	(
210
		CONS_TRACK_ID	VARCHAR(15),
211
		FIX_DESCRIPTION	varchar(200),
212
		EXPECTED_DT	VARCHAR(20),
213
		FINISH_DT	VARCHAR(20),
214
		[STATUS]	VARCHAR(1),
215
		NOTES	nvarchar(1000)
216
	)
217
	OPEN ConTrack
218

    
219
	PRINT 'PASS KHOI TAO'
220
BEGIN TRANSACTION
221
			--- 03.04.2023 KIỂM TRA NẾU NHÀ CUNG CẤP HIỆN HÀNH ĐANG TRỎ TỚI PO THÌ PHẢI CẢNH BÁO XEM XÉT LẠI & XÓA PO LƯU NHÁP ĐI
222
		IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE REQ_DOC_ID=@p_REQ_DOC_ID AND SUP_ID =@p_SUP_ID))
223
		BEGIN
224
				ROLLBACK TRANSACTION
225
				SELECT '-1' Result, '' AS CONTRACT_ID, N'Cập nhật hợp đồng thất bại. Hiện phiếu yêu cầu mua sắm này đang có PO số: ' +
226
							(SELECT TOP 1 ISNULL(PO_CODE,'') FROM TR_PO_MASTER WHERE REQ_DOC_ID=@p_REQ_DOC_ID AND SUP_ID =@p_SUP_ID)+
227
								N' sử dụng. Vui lòng kiểm tra lại PO và xóa PO này khỏi hệ thống' AS ErrorDesc 
228
				RETURN '-1'
229
		END
230
		--- END 03.04.2023
231
		---------------BAODNQ 12/12/2022 : HOT_FIX TẠM THỜI-------------------
232
		--------------NẾU KO TRUYỀN SUP_ID THÌ TỪ SUP_CODE TÌM KIẾM RA SUP_ID---------
233
		IF((@p_SUP_ID IS NULL OR @p_SUP_ID = '') AND @p_SUP_CODE IS NOT NULL AND @p_SUP_CODE <> '')
234
		BEGIN
235
			SET @p_SUP_ID = (SELECT TOP 1 SUP_ID FROM CM_SUPPLIER WHERE SUP_CODE = @p_SUP_CODE)
236
		END
237
		--------------ENDBAODNQ 12/12/2022----------------------------
238

    
239
		IF(@p_CONTRACT_NAME ='' OR @p_CONTRACT_NAME IS  NULL)
240
		BEGIN
241
			ROLLBACK TRANSACTION
242
				SELECT '-1' Result, @p_CONTRACT_ID AS PO_ID, N'Tên hợp đồng không được để trống' AS ErrorDesc 
243
				RETURN '-1'
244
		END
245
		-- 03.01.2025 BẮT BUỘC NHẬP NGÀY HIỆU LỰC/ NGÀY HẾT HIỆU LỰC/NGÀY GIAO HÀNG
246
		
247
        DECLARE @CONT_TYPE_NAME NVARCHAR(150)
248
		IF(@p_CONT_TYPE IN ('MS','NT','K') AND ((@p_SIGN_DT IS NULL OR @p_SIGN_DT = '') OR (@P_START_DT IS NULL OR @P_START_DT = '') OR (@P_END_DT IS NULL OR @P_END_DT = '') ) )
249
		BEGIN
250
			SELECT TOP 1 @CONT_TYPE_NAME = CONTENT FROM CM_ALLCODE  WHERE CDTYPE = 'CONTRACT' AND CDNAME = 'CONTRACT_TYPE' AND CDVAL = @p_CONT_TYPE
251
    			ROLLBACK TRANSACTION
252
					SELECT '-1' Result, '' AS PO_ID, N'Đối với hợp đồng ' + @CONT_TYPE_NAME + N': bắt buộc nhập Ngày ký hợp đồng/ngày hiệu lực/ngày hết hiệu lực!' AS ErrorDesc 
253
					RETURN '-1'
254
		END
255
		IF(@p_CONT_TYPE IN ('MS') AND( @p_REQ_DOC_ID IS NULL OR @p_REQ_DOC_ID = ''))
256
		BEGIN
257
			SELECT TOP 1 @CONT_TYPE_NAME = CONTENT FROM CM_ALLCODE  WHERE CDTYPE = 'CONTRACT' AND CDNAME = 'CONTRACT_TYPE' AND CDVAL = @p_CONT_TYPE
258
    			ROLLBACK TRANSACTION
259
					SELECT '-1' Result, '' AS PO_ID, N'Đối với hợp đồng ' + @CONT_TYPE_NAME + N': bắt buộc chọn phiếu yêu cầu mua sắm' AS ErrorDesc 
260
					RETURN '-1'
261
		END
262
		--insert master
263
		IF @p_DELIVERY_DT = ''  
264
			SET @p_DELIVERY_DT = NULL 
265
		IF @p_EXP_DT1 = ''
266
			SET @p_EXP_DT1 = NULL
267
		IF @p_EXP_DT2 = ''
268
			SET @p_EXP_DT2 = NULL
269
		IF @p_SIGN_DT = ''
270
			SET @p_SIGN_DT = NULL
271
		IF @p_CREATE_DT = ''
272
			SET @p_CREATE_DT = NULL
273
		IF @p_APPROVE_DT = ''
274
			SET @p_APPROVE_DT = NULL
275
		IF @P_START_DT = ''
276
			SET @P_START_DT = NULL
277
		IF @P_END_DT = ''
278
			SET @P_END_DT = NULL
279
		DECLARE @EXP_DT_OLD DATEtime, @TOTAL_AMT_OLD DECIMAL(18,0), @FROM_EXP_DATE_OLD DATEtime
280
		SET @FROM_EXP_DATE_OLD = (SELECT START_DT FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID)
281
		SET @EXP_DT_OLD = (SELECT END_DT FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID)
282
		SET @TOTAL_AMT_OLD = (SELECT TOTAL_AMT FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID)
283
		
284
		IF(EXISTS (SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID = @p_CONTRACT_ID AND AUTH_STATUS = 'A'))
285
		BEGIN
286
			SET @p_CHECKER_ID = NULL
287
			SET @p_APPROVE_DT = NULL
288
			SET @p_SEND_APPR_DT = NULL
289
		END
290
		
291
		UPDATE TR_CONTRACT SET [START_DT] = (CASE WHEN @P_START_DT IS NOT NULL AND @P_START_DT <> '' then CONVERT(DATETIME,@P_START_DT,103) ELSE NULL END), 
292
		[END_DT] = (CASE WHEN @P_END_DT IS NOT NULL AND @P_END_DT <> '' THEN CONVERT(DATETIME,@P_END_DT,103) ELSE NULL END), [CONTRACT_CODE] = @p_CONTRACT_CODE,
293
		[CONTRACT_NAME] = @p_CONTRACT_NAME, [CONTRACT_TYPE] = @p_CONTRACT_TYPE ,
294
		[BID_ID] = @p_BID_ID,[SUP_ID] = @p_SUP_ID,[TOTAL_AMT] = @p_TOTAL_AMT,
295
		[DELIVERY_DT] = (CASE WHEN @p_DELIVERY_DT IS NOT NULL AND @p_DELIVERY_DT <> '' then CONVERT(DATETIME, @p_DELIVERY_DT, 103) ELSE NULL END),
296
		[FORM1] = @p_FORM1,[VOUCHER_ID1] = @p_VOUCHER_ID1,[BANK1] = @p_BANK1,
297
		[AMOUNT1] = @p_AMOUNT1,[EXP_DT1] = (CASE WHEN @p_EXP_DT1 IS NOT NULL AND @p_EXP_DT1 <> '' then CONVERT(DATETIME, @p_EXP_DT1, 103) ELSE NULL END),
298
		[RATE1] = @p_RATE1,[FORM2] = @p_FORM2,[VOUCHER_ID2] = @p_VOUCHER_ID2,
299
		[BANK2] = @p_BANK2,[AMOUNT2] = @p_AMOUNT2,[EXP_DT2] = (CASE WHEN @p_EXP_DT2 IS NOT NULL AND @p_EXP_DT2 <> '' then CONVERT(DATETIME, @p_EXP_DT2, 103) ELSE NULL END),
300
		[RATE2] = @p_RATE2,[REQ_DOC_ID] = @p_REQ_DOC_ID,[REQ_DOC_CONTENT] = @p_REQ_DOC_CONTENT,
301
		[APPROVE_VALUE] = @p_APPROVE_VALUE,
302
		[SIGN_DT] =  (CASE WHEN @p_SIGN_DT IS NOT NULL AND @p_SIGN_DT <> '' then CONVERT(DATETIME, @p_SIGN_DT, 103) ELSE NULL END),
303
		[CONSTRUCT_PROGRESS] = @p_CONSTRUCT_PROGRESS,[NOTES] = @p_NOTES,[RECORD_STATUS] = '1',
304
		[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = 'E',
305
		[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = (CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END),
306
		[CONT_TYPE]=@p_CONT_TYPE, CUST_ID = @p_CUST_ID,
307
		[IS_CLOSED] = @p_IS_CLOSED,
308
		BRANCH_ID=@p_BRANCH_ID,EXP_CONTRACT=@p_EXP_CONTRACT,DEPOSIT_AMT =@p_DEPOSIT_AMT,TYPE_PERIOD =@p_TYPE_PERIOD, DEPOSIT_NOTE = @p_DEPOSIT_NOTE,
309
		IS_SEND_APPR = @p_IS_SEND_APPR,
310
		SEND_APPR_DT = CONVERT(DATE, @p_SEND_APPR_DT, 103),
311
		[ADDRESS] = @p_ADDR
312
		
313
		WHERE  CONTRACT_ID= @p_CONTRACT_ID
314
		-- INSERT VAO LOG
315
		DECLARE @START_DATE_OLD_CONTENT NVARCHAR(100), @P_START_DT_CONTENT NVARCHAR(100),@END_DATE_EXEC_OLD_CONTENT NVARCHAR(100),@P_END_DT_CONTENT NVARCHAR(100),
316
		@TOTAL_PAYMENT_AMT_OLD DECIMAL(18,0),@TOTAL_PAYMENT_AMT_NEW DECIMAL(18,0)
317
		SET @TOTAL_PAYMENT_AMT_OLD =(SELECT SUM(AMOUNT) FROM TR_CONTRACT_PAYMENT WHERE CONTRACT_ID =@p_CONTRACT_ID)
318
		IF(@START_DATE_EXEC_OLD IS NULL OR @START_DATE_EXEC_OLD ='')
319
		BEGIN
320
			SET @START_DATE_OLD_CONTENT =N'vô thời hạn'
321
		END
322
		ELSE
323
		BEGIN
324
			SET @START_DATE_OLD_CONTENT =FORMAT (CONVERT(DATE,@START_DATE_EXEC_OLD,103), 'dd/MM/yyyy')
325
		END
326
		IF(@P_START_DT IS NULL OR @P_START_DT ='')
327
		BEGIN
328
			SET @P_START_DT_CONTENT =N'vô thời hạn'
329
		END
330
		ELSE
331
		BEGIN
332
			SET @P_START_DT_CONTENT =FORMAT (CONVERT(DATE,@P_START_DT,103), 'dd/MM/yyyy')
333
		END
334
		--- NGÀY HẾT HẠN
335
		IF(@END_DATE_EXEC_OLD IS NULL OR @END_DATE_EXEC_OLD ='')
336
		BEGIN
337
			SET @END_DATE_EXEC_OLD_CONTENT =N'vô thời hạn'
338
		END
339
		ELSE
340
		BEGIN
341
			SET @END_DATE_EXEC_OLD_CONTENT =FORMAT (CONVERT(DATE,@END_DATE_EXEC_OLD,103), 'dd/MM/yyyy')
342
		END
343
		IF(@P_END_DT IS NULL OR @P_END_DT ='')
344
		BEGIN
345
			SET @P_END_DT_CONTENT =N'vô thời hạn'
346
		END
347
		ELSE
348
		BEGIN
349
			SET @P_END_DT_CONTENT =FORMAT (CONVERT(DATE,@P_END_DT,103), 'dd/MM/yyyy')
350
		END
351
		IF @@Error <> 0 GOTO ABORT
352
		PRINT 'UPDATE MASTER SUCCESS'
353

    
354
		--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
355
		Declare
356
		@CONS_TRACK_ID VARCHAR(15),
357
		@FIX_DESCRIPTION VARCHAR(200),
358
		@FINISH_DT VARCHAR(20),
359
		@STATUS  VARCHAR(1),
360
		@CD_ID VARCHAR(15),
361
		@PAY_ID VARCHAR(15),
362
		@GOODS_ID	varchar(15),
363
		@UNIT_ID	varchar(15),
364
		@QUANTITY	decimal(18),
365
		@PRICE	decimal(18),
366
		@NOTES	nvarchar(1000),
367
		@PAY_PHASE	NVARCHAR(1000),
368
		@EXPECTED_DT	VARCHAR(20),
369
		@PERCENT	decimal(18),
370
		@AMOUNT	decimal(18),
371
		@PAY_STATUS VARCHAR(1),
372
		@PAY_AMOUNT DECIMAL(18),
373
		@PAY_DT VARCHAR(20),
374
		@GD_NAME_REAL NVARCHAR(500),
375
		@RECURRING VARCHAR(5),
376
		@UNIT_NAME_REAL NVARCHAR(100),
377
		-------------------BAODNQ 23/2/2022: Thêm cột vào bảng TR_CONTRACT_DT-------------
378
		@RENT_PRICE DECIMAL(18,0),
379
		@BUILDING_ID VARCHAR(15)
380
		
381
		DELETE FROM TR_CONTRACT_DT WHERE CONTRACT_ID = @P_CONTRACT_ID
382
		FETCH NEXT FROM AssetDetail INTO @CD_ID,@GOODS_ID,@UNIT_ID,@QUANTITY,@PRICE,@NOTES,@GD_NAME_REAL,@RECURRING,@UNIT_NAME_REAL, @RENT_PRICE, @BUILDING_ID
383
		WHILE @@FETCH_STATUS = 0	
384
		BEGIN
385
			--IF(LEN(@CD_ID) = 0)
386
			--BEGIN
387
			--	EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_DT', @CD_ID out
388
			--	IF @CD_ID='' OR @CD_ID IS NULL GOTO ABORT
389
			--END
390

    
391
			EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_DT', @CD_ID out
392
			IF @CD_ID='' OR @CD_ID IS NULL GOTO ABORT
393
			--EXEC TR_CONTRACT_DT_Ins @P_CONTRACT_ID,@GOODS_ID,@UNIT_ID,@QUANTITY,@PRICE,@NOTES,@p_RECORD_STATUS,
394
			--@p_MAKER_ID,@p_CREATE_DT,@p_AUTH_STATUS,@p_CHECKER_ID,@p_APPROVE_DT
395
			--ELSE
396
			INSERT INTO TR_CONTRACT_DT([CD_ID],[CONTRACT_ID],[GOODS_ID],[UNIT_ID],[QUANTITY],[PRICE],[NOTES],
397
			[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[GD_NAME_REAL],RECURRING,UNIT_NAME_REAL, RENT_PRICE,BUILDING_ID)
398
			VALUES(@CD_ID ,@P_CONTRACT_ID,
399
			@GOODS_ID ,
400
			@UNIT_ID ,
401
			@QUANTITY ,
402
			@PRICE ,
403
			@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,(CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END),@GD_NAME_REAL,@RECURRING,@UNIT_NAME_REAL, @RENT_PRICE, @BUILDING_ID)
404
		
405
			FETCH NEXT FROM AssetDetail INTO @CD_ID,@GOODS_ID,@UNIT_ID,@QUANTITY,@PRICE,@NOTES,@GD_NAME_REAL,@RECURRING,@UNIT_NAME_REAL, @RENT_PRICE, @BUILDING_ID
406
		END
407

    
408
		DELETE FROM CON_TRACK WHERE CONTRACT_ID = @P_CONTRACT_ID
409
		FETCH NEXT FROM ConTrack INTO @CONS_TRACK_ID,@FIX_DESCRIPTION,@EXPECTED_DT,@FINISH_DT,@STATUS,@NOTES
410
		WHILE @@FETCH_STATUS = 0	
411
		BEGIN
412
			--IF(LEN(@CONS_TRACK_ID) = 0)
413
			--BEGIN
414
			--	EXEC SYS_CodeMasters_Gen 'CONS_TRACK_ID', @CONS_TRACK_ID out
415
			--	IF @CONS_TRACK_ID ='' OR @CONS_TRACK_ID IS NULL GOTO ABORT
416
			--END
417
			EXEC SYS_CodeMasters_Gen 'CONS_TRACK_ID', @CONS_TRACK_ID out
418
			IF @CONS_TRACK_ID ='' OR @CONS_TRACK_ID IS NULL GOTO ABORT
419
			INSERT INTO CON_TRACK([CONS_TRACK_ID],[CONTRACT_ID],[FIX_DESCRIPTION],[EXPECTED_DT],[STATUS],[FINISH_DT],[NOTES],[CREATED_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[RECORD_STATUS])
420
			VALUES(@CONS_TRACK_ID ,@p_CONTRACT_ID ,@FIX_DESCRIPTION ,CONVERT(DATETIME, @EXPECTED_DT, 103) ,
421
			@STATUS ,CONVERT(DATETIME, @FINISH_DT, 103) ,@NOTES ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,(CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END) ,@p_RECORD_STATUS )
422
		
423
			FETCH NEXT FROM ConTrack INTO @CONS_TRACK_ID,@FIX_DESCRIPTION,@EXPECTED_DT,@FINISH_DT,@STATUS,@NOTES
424
		END
425
	--insert payment detail
426

    
427
	--UPDATE  TR_CONTRACT_PAYMENT SET PAY_ID = RIGHT WHERE CONTRACT_ID = @P_CONTRACT_ID
428
	FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@PAY_STATUS,@PAY_AMOUNT,@PAY_DT,@NOTES
429

    
430
	WHILE @@FETCH_STATUS = 0
431
	BEGIN
432
		IF(LEN(ISNULL(@PAY_ID,'')) = 0 OR @PAY_ID IS NULL OR @PAY_ID = '')
433
		BEGIN
434
			EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_PAYMENT', @PAY_ID out
435
			IF @PAY_ID='' OR @PAY_ID IS NULL GOTO ABORT
436
		END
437
		--IF(EXISTS(SELECT * FROM TR_CONTRACT_PAYMENT WHERE PAY_ID =@PAY_ID))
438
		--BEGIN
439
		--	UPDATE TR_CONTRACT_PAYMENT SET PAY_ID ='X' WHERE PAY_ID =@PAY_ID
440
		--END
441
		--EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_PAYMENT', @PAY_ID out
442
		IF @PAY_ID='' OR @PAY_ID IS NULL GOTO ABORT
443
		--EXEC TR_CONTRACT_PAYMENT_Ins @p_CONTRACT_ID,@PAY_PHASE,@EXPECTED_DT,
444
		--@PERCENT,@AMOUNT,@NOTES,@p_RECORD_STATUS,@p_MAKER_ID,@p_CREATE_DT,@p_AUTH_STATUS,@p_CHECKER_ID,@p_APPROVE_DT
445
		--ELSE
446
		--INSERT INTO TR_CONTRACT_PAYMENT([PAY_AMOUNT],PAY_DT, [PAY_ID],[CONTRACT_ID],[PAY_PHASE],[EXPECTED_DT],[PERCENT],[AMOUNT],[PAY_STATUS],
447
		--[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT])
448
		--VALUES(@PAY_AMOUNT,(CASE WHEN @PAY_DT IS NOT NULL AND @PAY_DT <> '' then CONVERT(DATETIME, @PAY_DT, 103) ELSE NULL END),@PAY_ID ,@p_CONTRACT_ID ,@PAY_PHASE ,CONVERT(DATETIME, @EXPECTED_DT, 103) ,
449
		--@PERCENT ,@AMOUNT,@PAY_STATUS,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103),
450
		--@p_AUTH_STATUS ,@p_CHECKER_ID ,(CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END))
451

    
452
		-------------BAODNQ 15/9/2022: Fix lại theo BVB_v2_PROD-----------
453
		-------------Nếu @PAY_ID ko tồn tại trong TR_CONTRACT_PAYMENT, INSERT mới---------
454
		IF(NOT EXISTS(SELECT * FROM TR_CONTRACT_PAYMENT WHERE PAY_ID = @PAY_ID))
455
		BEGIN
456
			INSERT INTO TR_CONTRACT_PAYMENT
457
				([PAY_AMOUNT],PAY_DT, [PAY_ID],[CONTRACT_ID],[PAY_PHASE],[EXPECTED_DT],[PERCENT],[AMOUNT],[PAY_STATUS],
458
				[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT])
459
			VALUES(@PAY_AMOUNT,(CASE WHEN @PAY_DT IS NOT NULL AND @PAY_DT <> '' then CONVERT(DATETIME, @PAY_DT, 103) ELSE NULL END),@PAY_ID ,
460
					@p_CONTRACT_ID ,@PAY_PHASE ,CONVERT(DATETIME, @EXPECTED_DT, 103) , @PERCENT ,@AMOUNT,@PAY_STATUS,@NOTES ,@p_RECORD_STATUS ,
461
					@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103), @p_AUTH_STATUS ,@p_CHECKER_ID ,
462
					(CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END))
463
		END
464
		ELSE
465
		-------------Nếu @PAY_ID đã tồn tại trong TR_CONTRACT_PAYMENT, UPDATE---------
466
		BEGIN
467
			UPDATE TR_CONTRACT_PAYMENT SET
468
				PAY_AMOUNT = @PAY_AMOUNT,
469
				PAY_DT =(CASE WHEN @PAY_DT IS NOT NULL AND @PAY_DT <> '' then CONVERT(DATETIME, @PAY_DT, 103) ELSE NULL END),
470
				CONTRACT_ID = @p_CONTRACT_ID,
471
				PAY_PHASE = @PAY_PHASE,
472
				EXPECTED_DT = CONVERT(DATETIME, @EXPECTED_DT, 103),
473
				[PERCENT] = @PERCENT,
474
				[AMOUNT] = @AMOUNT,
475
				PAY_STATUS = @PAY_STATUS,
476
				NOTES = @NOTES,
477
				RECORD_STATUS = @p_RECORD_STATUS,
478
				MAKER_ID = @p_MAKER_ID,
479
				CREATE_DT = CONVERT(DATETIME, @p_CREATE_DT, 103),
480
				AUTH_STATUS = @p_AUTH_STATUS,
481
				CHECKER_ID = @p_CHECKER_ID,
482
				APPROVE_DT = (CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END)
483
			WHERE PAY_ID = @PAY_ID
484
		END
485

    
486
	FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@PAY_STATUS,@PAY_AMOUNT,@PAY_DT,@NOTES
487
	END
488
		
489
	CLOSE ConTrack
490
	DEALLOCATE ConTrack
491
	CLOSE AssetDetail
492
	DEALLOCATE AssetDetail
493
	CLOSE PaymentDetail
494
	DEALLOCATE PaymentDetail
495
	--- VỊ TRÍ NÀY BẮT ĐẦU GHI LOG
496
	SET @TOTAL_PAYMENT_AMT_NEW =(SELECT SUM(AMOUNT) FROM TR_CONTRACT_PAYMENT WHERE CONTRACT_ID =@p_CONTRACT_ID)
497
	DECLARE @p_CONTENT_LOG NVARCHAR(MAX)
498
	IF(ISNULL(CONVERT(DATE,@START_DATE_EXEC_OLD,103),'') <> ISNULL(CONVERT(DATE,@P_START_DT,103),'')
499
				OR ISNULL(CONVERT(DATE,@END_DATE_EXEC_OLD,103),'') <> ISNULL(CONVERT(DATE,@P_END_DT,103),'') OR ISNULL(@TOTAL_AMT_CONTRACT_OLD,0) <> ISNULL(@p_TOTAL_AMT,0)
500
				OR ISNULL(@TOTAL_PAYMENT_AMT_OLD,0) <> ISNULL(@TOTAL_PAYMENT_AMT_NEW,0) OR ISNULL(@p_SUP_ID,0) <> ISNULL(@SUPPLIER_ID_OLD,0) )
501
				BEGIN
502
					SET @p_CONTENT_LOG =N' thực hiện chỉnh sửa hợp đồng. Thông tin chỉnh sửa bao gồm: '+
503
					   CASE WHEN ISNULL(CONVERT(DATE,@START_DATE_EXEC_OLD,103),'') <> ISNULL(CONVERT(DATE,@P_START_DT,103),'') THEN 
504
					   CHAR(10) +  N'Thông tin ngày hiệu lực hợp đồng. Điều chỉnh từ ngày: ' 
505
						+ @START_DATE_OLD_CONTENT + N' thành '+ @P_START_DT_CONTENT
506
					   ELSE  '' END
507
					  + CASE WHEN CONVERT(DATE,@END_DATE_EXEC_OLD,103) <> CONVERT(DATE,@P_END_DT,103) THEN  CHAR(10) +
508
					  + N'Thông tin ngày hết hiệu lực hợp đồng. Điều chỉnh từ ngày: ' +  @END_DATE_EXEC_OLD_CONTENT + N' thành ngày: ' + @P_END_DT_CONTENT ELSE '' END
509
					  + CASE WHEN ISNULL(@TOTAL_AMT_CONTRACT_OLD,0) <> ISNULL(@p_TOTAL_AMT,0) THEN
510
					  CHAR(10)+ N'Tổng giá trị hợp đồng điều chỉnh từ: '+ ISNULL(FORMAT(@TOTAL_AMT_OLD,'#,###'),'0') + ' VND' + N' thành: '+ ISNULL(FORMAT(@p_TOTAL_AMT,'#,###'),'0') +' VND'
511
					  ELSE '' END
512
					  + CASE WHEN ISNULL(@TOTAL_PAYMENT_AMT_OLD,0) <> ISNULL(@TOTAL_PAYMENT_AMT_NEW,0) THEN
513
					  CHAR(10)+ N'Tổng giá trị lịch thanh toán điều chỉnh từ: '+ ISNULL(FORMAT(@TOTAL_PAYMENT_AMT_OLD,'#,###'),'0') + ' VND' + N' thành: '+ ISNULL(FORMAT(@TOTAL_PAYMENT_AMT_NEW,'#,###'),'0') +' VND'
514
					  ELSE '' END
515
					  + CASE WHEN ISNULL(@p_SUP_ID,0) <> ISNULL(@SUPPLIER_ID_OLD,0) THEN
516
					  CHAR(10)+ N'Nhà cung cấp điều chỉnh từ: '+ ISNULL(@SUPPLIER_NAME_OLD,N'Chưa chọn nhà cung cấp') + ' VND' + N' thành: '+ ISNULL(@SUPPLIER_NAME,N'Chưa chọn nhà cung cấp')
517
					  ELSE '' END
518
				END
519
				ELSE
520
				BEGIN
521
					SET @p_CONTENT_LOG =N' thực hiện chỉnh sửa hợp đồng. Tuy nhiên nội dung điều chỉnh không làm thay đổi những thông tin: Ngày hiệu lực hợp đồng, Ngày hết hiệu lực hợp đồng, Tổng giá trị hợp đồng, Tổng giá trị lịch thanh toán, Thông tin nhà cung cấp'
522
				END
523
	INSERT INTO dbo.PL_PROCESS
524
		(
525
						REQ_ID,
526
						PROCESS_ID,
527
						CHECKER_ID,
528
						APPROVE_DT,
529
						PROCESS_DESC,NOTES
530
		)
531
		VALUES
532
		(				@p_CONTRACT_ID,        -- REQ_ID - varchar(15)
533
						'UPDATE',        -- PROCESS_ID - varchar(10)
534
						@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
535
						GETDATE(), -- APPROVE_DT - datetime
536
					   N'User: '+ @p_MAKER_ID +@p_CONTENT_LOG
537
					  ,N'Chỉnh sửa thông tin hợp đồng'
538
		)
539
	--- KẾT THÚC GHI LOG
540
	IF(@p_RECORD_STATUS ='U')
541
	BEGIN
542
		UPDATE TR_CONTRACT SET AUTH_STATUS ='U' WHERE CONTRACT_ID =@p_CONTRACT_ID
543
	END
544
	--Insert into TABLE TR_REQUEST_DOC_FILE
545

    
546
		DECLARE @tableTrREQFile TABLE(
547
			TR_REQUEST_DOC_FILE_ID	varchar(20)  ,
548
			REQ_ID varchar(20),
549
			NOTES  nvarchar(200)
550
		)
551

    
552

    
553
		Declare @fdoc INT
554
		Exec sp_xml_preparedocument @fdoc Output,@p_ListTrREQFile
555

    
556
		INSERT INTO @tableTrREQFile
557
		SELECT *
558
		FROM OPENXML(@fDoc,'/Root/ListTrREQ',2)
559
		WITH 
560
		(
561
			TR_REQUEST_DOC_FILE_ID	varchar(20)  ,
562
			REQ_ID varchar(20),
563
			NOTES  nvarchar(200)
564
		)
565

    
566
		--delete TR_REQUEST_DOC_FILE where TR_REQUEST_DOC_FILE_ID not in (select TR_REQUEST_DOC_FILE_ID from @tableTrREQFile) and REQ_ID = @p_CONTRACT_ID
567
		------------BAODNQ 11/11/2022 : DELETE TR_REQUEST_DOC_FILE----------
568
		DELETE FROM TR_REQUEST_DOC_FILE WHERE REQ_ID = @p_CONTRACT_ID
569
		DECLARE ListTrREQFile  CURSOR FOR
570
		SELECT * FROM @tableTrREQFile
571
		OPEN ListTrREQFile
572

    
573
		Declare 
574
		@TR_REQUEST_DOC_FILE_ID	varchar(20)  ,
575
		@IS_VIEW	bit,
576
		@REQ_ID varchar(20),
577
		@_NOTES nvarchar(200)
578

    
579
		FETCH NEXT FROM ListTrREQFile INTO @TR_REQUEST_DOC_FILE_ID,@REQ_ID,@_NOTES
580
		WHILE @@FETCH_STATUS = 0	
581
		BEGIN
582
			DECLARE @l_REQFile_ID VARCHAR(15)
583
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_FILE', @l_REQFile_ID out
584
			--select @l_REQFile_ID
585
			--select * from TR_REQUEST_DOC_FILE where [TR_REQUEST_DOC_FILE_ID]= 'TRC000000529764'
586
			IF @l_REQFile_ID='' OR @l_REQFile_ID IS NULL GOTO ABORT
587
			INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@l_REQFile_ID, 'TR_CONTRACT')
588
			IF(select count(*) from TR_REQUEST_DOC_FILE where TR_REQUEST_DOC_FILE_ID = @TR_REQUEST_DOC_FILE_ID ) > 0
589
			begin
590
				update TR_REQUEST_DOC_FILE set IS_VIEW=isnull(@IS_VIEW,0),REQ_ID = @p_CONTRACT_ID,NOTES=@_NOTES where TR_REQUEST_DOC_FILE_ID = @TR_REQUEST_DOC_FILE_ID 
591
			end
592
			else
593
			begin
594
				INSERT INTO dbo.TR_REQUEST_DOC_FILE
595
				(
596
					 [TR_REQUEST_DOC_FILE_ID]
597
					,[REQ_ID]
598
					,[NOTES]
599
				)	
600
				VALUES
601
				(   
602
					@l_REQFile_ID
603
					,@p_CONTRACT_ID,
604
					@_NOTES
605
				)
606
			end
607
			
608
			FETCH NEXT FROM ListTrREQFile INTO @TR_REQUEST_DOC_FILE_ID,@REQ_ID,@_NOTES
609
		END
610
		CLOSE ListTrREQFile
611
		DEALLOCATE ListTrREQFile
612
		IF @@Error <> 0 GOTO ABORT
613

    
614
		if(select count(*) from @TEMP) = 0
615
		begin
616
			INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@l_REQFile_ID, 'TR_CONTRACT')
617
		end
618
COMMIT TRANSACTION
619
IF(@p_RECORD_STATUS ='U')
620
BEGIN
621
-- INSERT VAO LOG
622
	INSERT INTO dbo.PL_PROCESS
623
	(
624
						REQ_ID,
625
						PROCESS_ID,
626
						CHECKER_ID,
627
						APPROVE_DT,
628
						PROCESS_DESC,NOTES
629
					)
630
					VALUES
631
					(   @p_CONTRACT_ID,        -- REQ_ID - varchar(15)
632
						'SEND',        -- PROCESS_ID - varchar(10)
633
						@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
634
						GETDATE(), -- APPROVE_DT - datetime
635
					   N'Nhân viên gửi phê duyệt phiếu thành công' ,N'Gửi phê duyệt')
636
	--IF(@p_CONT_TYPE ='DK')
637
	--BEGIN
638
	--	UPDATE TR_CONTRACT SET AUTH_STATUS ='A' WHERE CONTRACT_ID =@p_CONTRACT_ID
639
	--END
640
	SELECT '2' as Result, @P_CONTRACT_ID  CONTRACT_ID, N'Hợp đồng có ID: '+ @P_CONTRACT_ID +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
641
	RETURN '2'
642
	--- 
643
	--IF(@p_CONT_TYPE ='DK' AND CONVERT(DATE, GETDATE(),103) <='2020-08-30')
644
	
645
	
646
END
647
ELSE
648
BEGIN
649
	SELECT '0' as Result, @P_CONTRACT_ID  CONTRACT_ID, N'Hợp đồng có ID: '+ @P_CONTRACT_ID +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,[REF_ID], [TYPE]  from @TEMP
650
	RETURN '0'
651
END
652
ABORT:
653
BEGIN
654
		
655
		CLOSE ConTrack
656
		DEALLOCATE ConTrack
657
		CLOSE AssetDetail
658
		DEALLOCATE AssetDetail
659
		CLOSE PaymentDetail
660
		DEALLOCATE PaymentDetail
661
		ROLLBACK TRANSACTION
662
		SELECT '-1' AS RESULT, ''  CONTRACT_ID,'' ErrorDesc
663
		RETURN '-1'
664
End
665
--03032025_SECRETKEY
666