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
|
|