1
|
|
2
|
ALTER PROCEDURE [dbo].[TR_CONTRACT_Upd]
|
3
|
@p_CONTRACT_ID VARCHAR(15),
|
4
|
@p_CONTRACT_CODE varchar(150) = NULL,
|
5
|
@p_CONTRACT_NAME nvarchar(200) = NULL,
|
6
|
@p_CONTRACT_TYPE varchar(1) = NULL,
|
7
|
@p_BID_ID varchar(15) = NULL,
|
8
|
@p_SUP_ID varchar(15) = NULL,
|
9
|
@p_TOTAL_AMT decimal(18) = NULL,
|
10
|
@p_DELIVERY_DT VARCHAR(20) = NULL,
|
11
|
@p_FORM1 varchar(4) = NULL,
|
12
|
@p_VOUCHER_ID1 varchar(20) = NULL,
|
13
|
@p_BANK1 varchar(4) = NULL,
|
14
|
@p_AMOUNT1 decimal(18) = NULL,
|
15
|
@p_EXP_DT1 VARCHAR(20) = NULL,
|
16
|
@p_RATE1 decimal(18,2) = NULL,
|
17
|
@p_FORM2 varchar(4) = NULL,
|
18
|
@p_VOUCHER_ID2 varchar(20) = NULL,
|
19
|
@p_BANK2 varchar(4) = NULL,
|
20
|
@p_AMOUNT2 decimal(18) = NULL,
|
21
|
@p_EXP_DT2 VARCHAR(20) = NULL,
|
22
|
@p_RATE2 decimal(18,2) = NULL,
|
23
|
@p_REQ_DOC_ID nvarchar(50) = NULL,
|
24
|
@p_REQ_DOC_CONTENT nvarchar(1000) = NULL,
|
25
|
@p_APPROVE_VALUE decimal(18) = NULL,
|
26
|
@p_SIGN_DT VARCHAR(20) = NULL,
|
27
|
@p_CONSTRUCT_PROGRESS decimal(18,2) = NULL,
|
28
|
@p_NOTES nvarchar(1000) = NULL,
|
29
|
@p_RECORD_STATUS varchar(1) = NULL,
|
30
|
@p_MAKER_ID varchar(12) = NULL,
|
31
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
32
|
@p_AUTH_STATUS varchar(50) = NULL,
|
33
|
@p_CHECKER_ID varchar(12) = NULL,
|
34
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
35
|
@P_START_DT VARCHAR(20) = NULL,
|
36
|
@P_END_DT VARCHAR(20) = NULL,
|
37
|
@P_LISTASSET XML = NULL,
|
38
|
@P_LISTPAYMENT XML = NULL,
|
39
|
@P_CON_TRACK XML = NULL,
|
40
|
@p_ListTrREQFile XML,
|
41
|
@p_IS_CLOSED VARCHAR(1) = NULL,
|
42
|
@p_CONT_TYPE VARCHAR(10) = NULL,
|
43
|
@p_CUST_ID VARCHAR(15) = NULL,
|
44
|
@p_BRANCH_ID VARCHAR(15) = NULL,
|
45
|
@p_EXP_CONTRACT INT = NULL,
|
46
|
@p_DEPOSIT_AMT DECIMAL(18,0) = NULL,
|
47
|
@p_TYPE_PERIOD VARCHAR(15) = NULL,
|
48
|
@p_DEPOSIT_NOTE NVARCHAR(1000) = NULL,
|
49
|
-----------------------BAODNQ 25/2/2022 : Thêm cột vào bảng TR_CONTRACT-------------
|
50
|
@p_IS_SEND_APPR VARCHAR(1) = NULL,
|
51
|
@p_SEND_APPR_DT VARCHAR(20) = NULL,
|
52
|
@p_ADDR NVARCHAR(1000) = NULL
|
53
|
AS
|
54
|
|
55
|
IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID = @p_CONTRACT_ID AND AUTH_STATUS = 'U'))
|
56
|
BEGIN
|
57
|
SELECT '-1' as Result, @P_CONTRACT_ID CONTRACT_ID,
|
58
|
N'Không thể chỉnh sửa. Hợp đồng ' + @p_CONTRACT_CODE +
|
59
|
N' đã được gửi yêu cầu phê duyệt' ErrorDesc
|
60
|
RETURN '-1'
|
61
|
END
|
62
|
|
63
|
DECLARE @sErrorCode VARCHAR(20)
|
64
|
DECLARE @TEMP TABLE
|
65
|
(
|
66
|
[KEY] varchar(15),
|
67
|
[REF_ID] varchar(15),
|
68
|
[TYPE] varchar(50)
|
69
|
)
|
70
|
--IF (@p_CONTRACT_CODE IS NOT NULL AND @p_CONTRACT_CODE <> '')
|
71
|
--BEGIN
|
72
|
-- IF EXISTS(SELECT * FROM TR_CONTRACT A WHERE A.CONTRACT_CODE = @p_CONTRACT_CODE AND A.CONTRACT_ID != @p_CONTRACT_ID )
|
73
|
-- BEGIN
|
74
|
-- SET @sErrorCode = 'TR-00001'
|
75
|
-- END
|
76
|
--END
|
77
|
|
78
|
----------------BAODNQ 8/11/2022 : BỎ RÀNG BUỘC TRÙNG SỐ HỢP ĐỒNG------------
|
79
|
--IF(@p_CONTRACT_CODE IS NOT NULL AND @p_CONTRACT_CODE <> '')
|
80
|
--BEGIN
|
81
|
-- IF(EXISTS (SELECT * FROM TR_CONTRACT WHERE CONTRACT_CODE = @p_CONTRACT_CODE AND CONTRACT_ID <> @p_CONTRACT_ID))
|
82
|
-- BEGIN
|
83
|
-- DECLARE @p_EXISTS_CONTRACT_ID VARCHAR(15) = (
|
84
|
-- SELECT TOP 1 CONTRACT_ID FROM TR_CONTRACT WHERE CONTRACT_CODE = @p_CONTRACT_CODE AND CONTRACT_ID <> @p_CONTRACT_ID
|
85
|
-- )
|
86
|
-- SELECT '-1' AS Result, '' CONTRACT_ID,
|
87
|
-- 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: '
|
88
|
-- + @p_EXISTS_CONTRACT_ID + N'. Vui lòng nhập số hợp đồng khác' ErrorDesc
|
89
|
-- RETURN '-1'
|
90
|
-- END
|
91
|
--END
|
92
|
|
93
|
IF @sErrorCode <> ''
|
94
|
BEGIN
|
95
|
SELECT '-1' as Result, '' CONTRACT_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode
|
96
|
RETURN '-1'
|
97
|
END
|
98
|
|
99
|
DECLARE @REF_CODE VARCHAR(15) = NULL, @PDN_TT VARCHAR(15) = NULL
|
100
|
SET @REF_CODE =
|
101
|
( SELECT TOP 1 B.REQ_PAY_CODE
|
102
|
FROM TR_REQ_ADVANCE_DT A
|
103
|
INNER JOIN TR_REQ_ADVANCE_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
|
104
|
WHERE A.REF_ID =@p_CONTRACT_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
|
105
|
)
|
106
|
--- TIM KIEM XEM PO NAY CO DUOC PHEP THANH TOAN HAY KHONG
|
107
|
SET @PDN_TT =
|
108
|
( SELECT TOP 1 B.REQ_PAY_CODE
|
109
|
FROM TR_REQ_ADVANCE_DT A
|
110
|
INNER JOIN TR_REQ_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
|
111
|
WHERE A.REF_ID =@p_CONTRACT_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
|
112
|
)
|
113
|
IF(@p_IS_CLOSED ='Y' AND @REF_CODE IS NOT NULL)
|
114
|
BEGIN
|
115
|
--ROLLBACK TRANSACTION
|
116
|
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
|
117
|
RETURN '-1'
|
118
|
END
|
119
|
IF(@p_IS_CLOSED ='Y' AND @PDN_TT IS NOT NULL)
|
120
|
BEGIN
|
121
|
--ROLLBACK TRANSACTION
|
122
|
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
|
123
|
RETURN '-1'
|
124
|
END
|
125
|
Declare @hdoc INT
|
126
|
Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET
|
127
|
DECLARE AssetDetail CURSOR FOR
|
128
|
SELECT *
|
129
|
FROM OPENXML(@hDoc,'/Root/AssetDetail',2)
|
130
|
WITH
|
131
|
(
|
132
|
CD_ID VARCHAR(15),
|
133
|
GOODS_ID varchar(15),
|
134
|
UNIT_ID varchar(15),
|
135
|
QUANTITY decimal(18),
|
136
|
PRICE decimal(18),
|
137
|
NOTES nvarchar(1000),
|
138
|
GD_NAME_REAL NVARCHAR(500),
|
139
|
RECURRING VARCHAR(5),
|
140
|
UNIT_NAME_REAL NVARCHAR(100),
|
141
|
-------------------BAODNQ 23/2/2022: Thêm cột vào bảng TR_CONTRACT_DT-------------
|
142
|
RENT_PRICE DECIMAL(18,0),
|
143
|
BUILDING_ID VARCHAR(15)
|
144
|
)
|
145
|
OPEN AssetDetail
|
146
|
|
147
|
Exec sp_xml_preparedocument @hdoc Output,@P_LISTPAYMENT
|
148
|
DECLARE PaymentDetail CURSOR FOR
|
149
|
SELECT *
|
150
|
FROM OPENXML(@hDoc,'/Root/PaymentDetail',2)
|
151
|
WITH
|
152
|
(
|
153
|
PAY_ID VARCHAR(15),
|
154
|
PAY_PHASE NVARCHAR(1000),
|
155
|
EXPECTED_DT VARCHAR(20),
|
156
|
[PERCENT] decimal(18,2),
|
157
|
[AMOUNT] decimal(18),
|
158
|
PAY_STATUS VARCHAR(1),
|
159
|
PAY_AMOUNT DECIMAL(18),
|
160
|
PAY_DT VARCHAR(20),
|
161
|
NOTES nvarchar(1000)
|
162
|
)
|
163
|
OPEN PaymentDetail
|
164
|
|
165
|
Exec sp_xml_preparedocument @hdoc Output,@P_CON_TRACK
|
166
|
DECLARE ConTrack CURSOR FOR
|
167
|
SELECT *
|
168
|
FROM OPENXML(@hDoc,'/Root/ConTrack',2)
|
169
|
WITH
|
170
|
(
|
171
|
CONS_TRACK_ID VARCHAR(15),
|
172
|
FIX_DESCRIPTION varchar(200),
|
173
|
EXPECTED_DT VARCHAR(20),
|
174
|
FINISH_DT VARCHAR(20),
|
175
|
[STATUS] VARCHAR(1),
|
176
|
NOTES nvarchar(1000)
|
177
|
)
|
178
|
OPEN ConTrack
|
179
|
|
180
|
PRINT 'PASS KHOI TAO'
|
181
|
BEGIN TRANSACTION
|
182
|
IF(@p_CONTRACT_NAME ='' OR @p_CONTRACT_NAME IS NULL)
|
183
|
BEGIN
|
184
|
ROLLBACK TRANSACTION
|
185
|
SELECT '-1' Result, @p_CONTRACT_ID AS PO_ID, N'Tên hợp đồng không được để trống' AS ErrorDesc
|
186
|
RETURN '-1'
|
187
|
END
|
188
|
--insert master
|
189
|
IF @p_DELIVERY_DT = ''
|
190
|
SET @p_DELIVERY_DT = NULL
|
191
|
IF @p_EXP_DT1 = ''
|
192
|
SET @p_EXP_DT1 = NULL
|
193
|
IF @p_EXP_DT2 = ''
|
194
|
SET @p_EXP_DT2 = NULL
|
195
|
IF @p_SIGN_DT = ''
|
196
|
SET @p_SIGN_DT = NULL
|
197
|
IF @p_CREATE_DT = ''
|
198
|
SET @p_CREATE_DT = NULL
|
199
|
IF @p_APPROVE_DT = ''
|
200
|
SET @p_APPROVE_DT = NULL
|
201
|
IF @P_START_DT = ''
|
202
|
SET @P_START_DT = NULL
|
203
|
IF @P_END_DT = ''
|
204
|
SET @P_END_DT = NULL
|
205
|
DECLARE @EXP_DT_OLD DATEtime, @TOTAL_AMT_OLD DECIMAL(18,0), @FROM_EXP_DATE_OLD DATEtime
|
206
|
SET @FROM_EXP_DATE_OLD = (SELECT START_DT FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID)
|
207
|
SET @EXP_DT_OLD = (SELECT END_DT FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID)
|
208
|
SET @TOTAL_AMT_OLD = (SELECT TOTAL_AMT FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID)
|
209
|
|
210
|
IF(EXISTS (SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID = @p_CONTRACT_ID AND AUTH_STATUS = 'A'))
|
211
|
BEGIN
|
212
|
SET @p_CHECKER_ID = NULL
|
213
|
SET @p_APPROVE_DT = NULL
|
214
|
SET @p_SEND_APPR_DT = NULL
|
215
|
END
|
216
|
|
217
|
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),
|
218
|
[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,
|
219
|
[CONTRACT_NAME] = @p_CONTRACT_NAME, [CONTRACT_TYPE] = @p_CONTRACT_TYPE ,
|
220
|
[BID_ID] = @p_BID_ID,[SUP_ID] = @p_SUP_ID,[TOTAL_AMT] = @p_TOTAL_AMT,
|
221
|
[DELIVERY_DT] = (CASE WHEN @p_DELIVERY_DT IS NOT NULL AND @p_DELIVERY_DT <> '' then CONVERT(DATETIME, @p_DELIVERY_DT, 103) ELSE NULL END),
|
222
|
[FORM1] = @p_FORM1,[VOUCHER_ID1] = @p_VOUCHER_ID1,[BANK1] = @p_BANK1,
|
223
|
[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),
|
224
|
[RATE1] = @p_RATE1,[FORM2] = @p_FORM2,[VOUCHER_ID2] = @p_VOUCHER_ID2,
|
225
|
[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),
|
226
|
[RATE2] = @p_RATE2,[REQ_DOC_ID] = @p_REQ_DOC_ID,[REQ_DOC_CONTENT] = @p_REQ_DOC_CONTENT,
|
227
|
[APPROVE_VALUE] = @p_APPROVE_VALUE,
|
228
|
[SIGN_DT] = (CASE WHEN @p_SIGN_DT IS NOT NULL AND @p_SIGN_DT <> '' then CONVERT(DATETIME, @p_SIGN_DT, 103) ELSE NULL END),
|
229
|
[CONSTRUCT_PROGRESS] = @p_CONSTRUCT_PROGRESS,[NOTES] = @p_NOTES,[RECORD_STATUS] = '1',
|
230
|
[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = 'E',
|
231
|
[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),
|
232
|
[CONT_TYPE]=@p_CONT_TYPE, CUST_ID = @p_CUST_ID,
|
233
|
[IS_CLOSED] = @p_IS_CLOSED,
|
234
|
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,
|
235
|
IS_SEND_APPR = @p_IS_SEND_APPR,
|
236
|
SEND_APPR_DT = CONVERT(DATE, @p_SEND_APPR_DT, 103),
|
237
|
[ADDRESS] = @p_ADDR
|
238
|
|
239
|
WHERE CONTRACT_ID= @p_CONTRACT_ID
|
240
|
-- INSERT VAO LOG
|
241
|
INSERT INTO dbo.PL_PROCESS
|
242
|
(
|
243
|
REQ_ID,
|
244
|
PROCESS_ID,
|
245
|
CHECKER_ID,
|
246
|
APPROVE_DT,
|
247
|
PROCESS_DESC,NOTES
|
248
|
)
|
249
|
VALUES
|
250
|
( @p_CONTRACT_ID, -- REQ_ID - varchar(15)
|
251
|
'UPDATE', -- PROCESS_ID - varchar(10)
|
252
|
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
|
253
|
GETDATE(), -- APPROVE_DT - datetime
|
254
|
N'User: '+ @p_MAKER_ID +N' thực hiện chỉnh sửa hợp đồng. Thông tin chỉnh sửa bao gồm: '+ CHAR(10)
|
255
|
+ N'Thông tin ngày hiệu lực hợp đồng. Điều chỉnh từ ngày : ' + ISNULL((SELECT FORMAT (@FROM_EXP_DATE_OLD, 'dd/MM/yyyy ')),N'vô thời hạn ') + N' thành ngày : '+ ISNULL(@P_START_DT,N'vô thời hạn')
|
256
|
+CHAR(10)+
|
257
|
+ N'Thông tin ngày hết hiệu lực hợp đồng. Điều chỉnh từ ngày : ' + ISNULL((SELECT FORMAT (@EXP_DT_OLD, 'dd/MM/yyyy ')),N'vô thời hạn ') + N' thành ngày : '+ ISNULL(@P_END_DT,N'vô thời hạn')
|
258
|
+CHAR(10)+
|
259
|
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'
|
260
|
,N'Chỉnh sửa thông tin hợp đồng'
|
261
|
)
|
262
|
IF @@Error <> 0 GOTO ABORT
|
263
|
PRINT 'UPDATE MASTER SUCCESS'
|
264
|
|
265
|
--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
|
266
|
Declare
|
267
|
@CONS_TRACK_ID VARCHAR(15),
|
268
|
@FIX_DESCRIPTION VARCHAR(200),
|
269
|
@FINISH_DT VARCHAR(20),
|
270
|
@STATUS VARCHAR(1),
|
271
|
@CD_ID VARCHAR(15),
|
272
|
@PAY_ID VARCHAR(15),
|
273
|
@GOODS_ID varchar(15),
|
274
|
@UNIT_ID varchar(15),
|
275
|
@QUANTITY decimal(18),
|
276
|
@PRICE decimal(18),
|
277
|
@NOTES nvarchar(1000),
|
278
|
@PAY_PHASE NVARCHAR(1000),
|
279
|
@EXPECTED_DT VARCHAR(20),
|
280
|
@PERCENT decimal(18),
|
281
|
@AMOUNT decimal(18),
|
282
|
@PAY_STATUS VARCHAR(1),
|
283
|
@PAY_AMOUNT DECIMAL(18),
|
284
|
@PAY_DT VARCHAR(20),
|
285
|
@GD_NAME_REAL NVARCHAR(500),
|
286
|
@RECURRING VARCHAR(5),
|
287
|
@UNIT_NAME_REAL NVARCHAR(100),
|
288
|
-------------------BAODNQ 23/2/2022: Thêm cột vào bảng TR_CONTRACT_DT-------------
|
289
|
@RENT_PRICE DECIMAL(18,0),
|
290
|
@BUILDING_ID VARCHAR(15)
|
291
|
|
292
|
DELETE FROM TR_CONTRACT_DT WHERE CONTRACT_ID = @P_CONTRACT_ID
|
293
|
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
|
294
|
WHILE @@FETCH_STATUS = 0
|
295
|
BEGIN
|
296
|
--IF(LEN(@CD_ID) = 0)
|
297
|
--BEGIN
|
298
|
-- EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_DT', @CD_ID out
|
299
|
-- IF @CD_ID='' OR @CD_ID IS NULL GOTO ABORT
|
300
|
--END
|
301
|
|
302
|
EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_DT', @CD_ID out
|
303
|
IF @CD_ID='' OR @CD_ID IS NULL GOTO ABORT
|
304
|
--EXEC TR_CONTRACT_DT_Ins @P_CONTRACT_ID,@GOODS_ID,@UNIT_ID,@QUANTITY,@PRICE,@NOTES,@p_RECORD_STATUS,
|
305
|
--@p_MAKER_ID,@p_CREATE_DT,@p_AUTH_STATUS,@p_CHECKER_ID,@p_APPROVE_DT
|
306
|
--ELSE
|
307
|
INSERT INTO TR_CONTRACT_DT([CD_ID],[CONTRACT_ID],[GOODS_ID],[UNIT_ID],[QUANTITY],[PRICE],[NOTES],
|
308
|
[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[GD_NAME_REAL],RECURRING,UNIT_NAME_REAL, RENT_PRICE,BUILDING_ID)
|
309
|
VALUES(@CD_ID ,@P_CONTRACT_ID,
|
310
|
@GOODS_ID ,
|
311
|
@UNIT_ID ,
|
312
|
@QUANTITY ,
|
313
|
@PRICE ,
|
314
|
@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)
|
315
|
|
316
|
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
|
317
|
END
|
318
|
|
319
|
DELETE FROM CON_TRACK WHERE CONTRACT_ID = @P_CONTRACT_ID
|
320
|
FETCH NEXT FROM ConTrack INTO @CONS_TRACK_ID,@FIX_DESCRIPTION,@EXPECTED_DT,@FINISH_DT,@STATUS,@NOTES
|
321
|
WHILE @@FETCH_STATUS = 0
|
322
|
BEGIN
|
323
|
--IF(LEN(@CONS_TRACK_ID) = 0)
|
324
|
--BEGIN
|
325
|
-- EXEC SYS_CodeMasters_Gen 'CONS_TRACK_ID', @CONS_TRACK_ID out
|
326
|
-- IF @CONS_TRACK_ID ='' OR @CONS_TRACK_ID IS NULL GOTO ABORT
|
327
|
--END
|
328
|
EXEC SYS_CodeMasters_Gen 'CONS_TRACK_ID', @CONS_TRACK_ID out
|
329
|
IF @CONS_TRACK_ID ='' OR @CONS_TRACK_ID IS NULL GOTO ABORT
|
330
|
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])
|
331
|
VALUES(@CONS_TRACK_ID ,@p_CONTRACT_ID ,@FIX_DESCRIPTION ,CONVERT(DATETIME, @EXPECTED_DT, 103) ,
|
332
|
@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 )
|
333
|
|
334
|
FETCH NEXT FROM ConTrack INTO @CONS_TRACK_ID,@FIX_DESCRIPTION,@EXPECTED_DT,@FINISH_DT,@STATUS,@NOTES
|
335
|
END
|
336
|
--insert payment detail
|
337
|
|
338
|
DELETE FROM TR_CONTRACT_PAYMENT WHERE CONTRACT_ID = @P_CONTRACT_ID
|
339
|
FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@PAY_STATUS,@PAY_AMOUNT,@PAY_DT,@NOTES
|
340
|
|
341
|
WHILE @@FETCH_STATUS = 0
|
342
|
BEGIN
|
343
|
IF(LEN(ISNULL(@PAY_ID,'')) = 0 OR @PAY_ID IS NULL OR @PAY_ID = '')
|
344
|
BEGIN
|
345
|
EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_PAYMENT', @PAY_ID out
|
346
|
IF @PAY_ID='' OR @PAY_ID IS NULL GOTO ABORT
|
347
|
END
|
348
|
--IF(EXISTS(SELECT * FROM TR_CONTRACT_PAYMENT WHERE PAY_ID =@PAY_ID))
|
349
|
--BEGIN
|
350
|
-- UPDATE TR_CONTRACT_PAYMENT SET PAY_ID ='X' WHERE PAY_ID =@PAY_ID
|
351
|
--END
|
352
|
--EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_PAYMENT', @PAY_ID out
|
353
|
IF @PAY_ID='' OR @PAY_ID IS NULL GOTO ABORT
|
354
|
--EXEC TR_CONTRACT_PAYMENT_Ins @p_CONTRACT_ID,@PAY_PHASE,@EXPECTED_DT,
|
355
|
--@PERCENT,@AMOUNT,@NOTES,@p_RECORD_STATUS,@p_MAKER_ID,@p_CREATE_DT,@p_AUTH_STATUS,@p_CHECKER_ID,@p_APPROVE_DT
|
356
|
--ELSE
|
357
|
--INSERT INTO TR_CONTRACT_PAYMENT([PAY_AMOUNT],PAY_DT, [PAY_ID],[CONTRACT_ID],[PAY_PHASE],[EXPECTED_DT],[PERCENT],[AMOUNT],[PAY_STATUS],
|
358
|
--[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT])
|
359
|
--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) ,
|
360
|
--@PERCENT ,@AMOUNT,@PAY_STATUS,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103),
|
361
|
--@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))
|
362
|
|
363
|
-------------BAODNQ 15/9/2022: Fix lại theo BVB_v2_PROD-----------
|
364
|
-------------Nếu @PAY_ID ko tồn tại trong TR_CONTRACT_PAYMENT, INSERT mới---------
|
365
|
IF(NOT EXISTS(SELECT * FROM TR_CONTRACT_PAYMENT WHERE PAY_ID = @PAY_ID))
|
366
|
BEGIN
|
367
|
INSERT INTO TR_CONTRACT_PAYMENT
|
368
|
([PAY_AMOUNT],PAY_DT, [PAY_ID],[CONTRACT_ID],[PAY_PHASE],[EXPECTED_DT],[PERCENT],[AMOUNT],[PAY_STATUS],
|
369
|
[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT])
|
370
|
VALUES(@PAY_AMOUNT,(CASE WHEN @PAY_DT IS NOT NULL AND @PAY_DT <> '' then CONVERT(DATETIME, @PAY_DT, 103) ELSE NULL END),@PAY_ID ,
|
371
|
@p_CONTRACT_ID ,@PAY_PHASE ,CONVERT(DATETIME, @EXPECTED_DT, 103) , @PERCENT ,@AMOUNT,@PAY_STATUS,@NOTES ,@p_RECORD_STATUS ,
|
372
|
@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103), @p_AUTH_STATUS ,@p_CHECKER_ID ,
|
373
|
(CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END))
|
374
|
END
|
375
|
ELSE
|
376
|
-------------Nếu @PAY_ID đã tồn tại trong TR_CONTRACT_PAYMENT, UPDATE---------
|
377
|
BEGIN
|
378
|
UPDATE TR_CONTRACT_PAYMENT SET
|
379
|
PAY_AMOUNT = @PAY_AMOUNT,
|
380
|
PAY_DT =(CASE WHEN @PAY_DT IS NOT NULL AND @PAY_DT <> '' then CONVERT(DATETIME, @PAY_DT, 103) ELSE NULL END),
|
381
|
CONTRACT_ID = @p_CONTRACT_ID,
|
382
|
PAY_PHASE = @PAY_PHASE,
|
383
|
EXPECTED_DT = CONVERT(DATETIME, @EXPECTED_DT, 103),
|
384
|
[PERCENT] = @PERCENT,
|
385
|
[AMOUNT] = @AMOUNT,
|
386
|
PAY_STATUS = @PAY_STATUS,
|
387
|
NOTES = @NOTES,
|
388
|
RECORD_STATUS = @p_RECORD_STATUS,
|
389
|
MAKER_ID = @p_MAKER_ID,
|
390
|
CREATE_DT = CONVERT(DATETIME, @p_CREATE_DT, 103),
|
391
|
AUTH_STATUS = @p_AUTH_STATUS,
|
392
|
CHECKER_ID = @p_CHECKER_ID,
|
393
|
APPROVE_DT = (CASE WHEN @p_APPROVE_DT IS NOT NULL AND @p_APPROVE_DT <> '' then CONVERT(DATETIME, @p_APPROVE_DT, 103) ELSE NULL END)
|
394
|
WHERE PAY_ID = @PAY_ID
|
395
|
END
|
396
|
|
397
|
FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@PAY_STATUS,@PAY_AMOUNT,@PAY_DT,@NOTES
|
398
|
END
|
399
|
|
400
|
CLOSE ConTrack
|
401
|
DEALLOCATE ConTrack
|
402
|
CLOSE AssetDetail
|
403
|
DEALLOCATE AssetDetail
|
404
|
CLOSE PaymentDetail
|
405
|
DEALLOCATE PaymentDetail
|
406
|
IF(@p_RECORD_STATUS ='U')
|
407
|
BEGIN
|
408
|
UPDATE TR_CONTRACT SET AUTH_STATUS ='U' WHERE CONTRACT_ID =@p_CONTRACT_ID
|
409
|
END
|
410
|
--Insert into TABLE TR_REQUEST_DOC_FILE
|
411
|
|
412
|
DECLARE @tableTrREQFile TABLE(
|
413
|
TR_REQUEST_DOC_FILE_ID varchar(20) ,
|
414
|
REQ_ID varchar(20),
|
415
|
NOTES nvarchar(200)
|
416
|
)
|
417
|
|
418
|
|
419
|
Declare @fdoc INT
|
420
|
Exec sp_xml_preparedocument @fdoc Output,@p_ListTrREQFile
|
421
|
|
422
|
INSERT INTO @tableTrREQFile
|
423
|
SELECT *
|
424
|
FROM OPENXML(@fDoc,'/Root/ListTrREQ',2)
|
425
|
WITH
|
426
|
(
|
427
|
TR_REQUEST_DOC_FILE_ID varchar(20) ,
|
428
|
REQ_ID varchar(20),
|
429
|
NOTES nvarchar(200)
|
430
|
)
|
431
|
|
432
|
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
|
433
|
DECLARE ListTrREQFile CURSOR FOR
|
434
|
SELECT * FROM @tableTrREQFile
|
435
|
OPEN ListTrREQFile
|
436
|
|
437
|
Declare
|
438
|
@TR_REQUEST_DOC_FILE_ID varchar(20) ,
|
439
|
@IS_VIEW bit,
|
440
|
@REQ_ID varchar(20),
|
441
|
@_NOTES nvarchar(200)
|
442
|
|
443
|
FETCH NEXT FROM ListTrREQFile INTO @TR_REQUEST_DOC_FILE_ID,@REQ_ID,@_NOTES
|
444
|
WHILE @@FETCH_STATUS = 0
|
445
|
BEGIN
|
446
|
DECLARE @l_REQFile_ID VARCHAR(15)
|
447
|
EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_FILE', @l_REQFile_ID out
|
448
|
--select @l_REQFile_ID
|
449
|
--select * from TR_REQUEST_DOC_FILE where [TR_REQUEST_DOC_FILE_ID]= 'TRC000000529764'
|
450
|
IF @l_REQFile_ID='' OR @l_REQFile_ID IS NULL GOTO ABORT
|
451
|
INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@l_REQFile_ID, 'TR_CONTRACT')
|
452
|
IF(select count(*) from TR_REQUEST_DOC_FILE where TR_REQUEST_DOC_FILE_ID = @TR_REQUEST_DOC_FILE_ID ) > 0
|
453
|
begin
|
454
|
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
|
455
|
end
|
456
|
else
|
457
|
begin
|
458
|
INSERT INTO dbo.TR_REQUEST_DOC_FILE
|
459
|
(
|
460
|
[TR_REQUEST_DOC_FILE_ID]
|
461
|
,[REQ_ID]
|
462
|
,[NOTES]
|
463
|
)
|
464
|
VALUES
|
465
|
(
|
466
|
@l_REQFile_ID
|
467
|
,@p_CONTRACT_ID,
|
468
|
@_NOTES
|
469
|
)
|
470
|
end
|
471
|
|
472
|
FETCH NEXT FROM ListTrREQFile INTO @TR_REQUEST_DOC_FILE_ID,@REQ_ID,@_NOTES
|
473
|
END
|
474
|
CLOSE ListTrREQFile
|
475
|
DEALLOCATE ListTrREQFile
|
476
|
IF @@Error <> 0 GOTO ABORT
|
477
|
|
478
|
if(select count(*) from @TEMP) = 0
|
479
|
begin
|
480
|
INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@l_REQFile_ID, 'TR_CONTRACT')
|
481
|
end
|
482
|
COMMIT TRANSACTION
|
483
|
IF(@p_RECORD_STATUS ='U')
|
484
|
BEGIN
|
485
|
-- INSERT VAO LOG
|
486
|
INSERT INTO dbo.PL_PROCESS
|
487
|
(
|
488
|
REQ_ID,
|
489
|
PROCESS_ID,
|
490
|
CHECKER_ID,
|
491
|
APPROVE_DT,
|
492
|
PROCESS_DESC,NOTES
|
493
|
)
|
494
|
VALUES
|
495
|
( @p_CONTRACT_ID, -- REQ_ID - varchar(15)
|
496
|
'SEND', -- PROCESS_ID - varchar(10)
|
497
|
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
|
498
|
GETDATE(), -- APPROVE_DT - datetime
|
499
|
N'Nhân viên gửi phê duyệt phiếu thành công' ,N'Gửi phê duyệt')
|
500
|
--IF(@p_CONT_TYPE ='DK')
|
501
|
--BEGIN
|
502
|
-- UPDATE TR_CONTRACT SET AUTH_STATUS ='A' WHERE CONTRACT_ID =@p_CONTRACT_ID
|
503
|
--END
|
504
|
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
|
505
|
RETURN '2'
|
506
|
---
|
507
|
--IF(@p_CONT_TYPE ='DK' AND CONVERT(DATE, GETDATE(),103) <='2020-08-30')
|
508
|
|
509
|
|
510
|
END
|
511
|
ELSE
|
512
|
BEGIN
|
513
|
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
|
514
|
RETURN '0'
|
515
|
END
|
516
|
ABORT:
|
517
|
BEGIN
|
518
|
|
519
|
CLOSE ConTrack
|
520
|
DEALLOCATE ConTrack
|
521
|
CLOSE AssetDetail
|
522
|
DEALLOCATE AssetDetail
|
523
|
CLOSE PaymentDetail
|
524
|
DEALLOCATE PaymentDetail
|
525
|
ROLLBACK TRANSACTION
|
526
|
SELECT '-1' AS RESULT, '' CONTRACT_ID,'' ErrorDesc
|
527
|
RETURN '-1'
|
528
|
End
|
529
|
|
530
|
|
531
|
--SELECT * FROM TR_CONTRACT_DT
|
532
|
|
533
|
--SELECT * FROM TR_CONTRACT_PAYMENT
|
534
|
|
535
|
--SELECT * FROM TR_CONTRACT
|