Project

General

Profile

BDS_hot_fix_2.txt

Luc Tran Van, 03/10/2022 12:01 PM

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[RET_MASTER_Upd]
4
@p_RET_ID	varchar(15) = null ,
5
@p_ASSET_ID VARCHAR(15) = NULL,
6
@P_ASSET_CODE VARCHAR(15) = NULL,
7
@P_OWNER VARCHAR(500) = NULL,
8
@p_LENGTH	DECIMAL(18,2) = NULL,
9
@p_WIDTH	DECIMAL(18,2) = NULL,
10
@p_FLOORS int = NULL,
11
@p_CURRENT_STATE	nvarchar(100)  = NULL,
12
@p_RET_TYPE	varchar(15)  = NULL,
13
@p_STATUS	varchar(15)  = NULL,
14
@p_LAND_SQUARE	DECIMAL(18,2)  = NULL,
15
@p_ADDR nvarchar(1000) = NULL, -- hungdv hieu chinh yeu cau anh toi 250520
16
@p_CONSTRUCT_SQUARE	DECIMAL(18,2)  = NULL,
17
@p_TOTAL_SQUARE	DECIMAL(18,2)  = NULL,
18
@p_BOUNDARY	nvarchar(100)  = NULL,
19
@p_HOUSEDES	nvarchar(100)  = NULL,
20
@p_PURPOSE_IN_USE	nvarchar(500)  = NULL,
21
@P_W_USE_CON NVARCHAR(100) = NULL,
22
@p_USE_STATUS	varchar(15)  = NULL,
23
@p_CONST_STATUS	varchar(15)  = NULL,
24
@p_OWNER_TYPE	varchar(15)  = NULL,
25
@p_USE_PERIOD	int  = NULL,
26
@p_PERSON_HOLDER	nvarchar(1000)  = NULL,
27
@p_REASON nvarchar(1000) = NULL,
28
@p_NOTES	nvarchar(1000)  = NULL,
29
@p_RECORD_STATUS	varchar(1)  = NULL,
30
@p_AUTH_STATUS	varchar(1)  = NULL,
31
@p_MAKER_ID	varchar(15)  = NULL,
32
@p_CREATE_DT	VARCHAR(20) = NULL,
33
@p_CHECKER_ID	varchar(15)  = NULL,
34
@p_APPROVE_DT	VARCHAR(20) = NULL,
35
@P_BUY_DT VARCHAR(20) = NULL,
36
@p_USE_FORM VARCHAR(1),
37
@p_USE_FORM_DETAIL nvarchar(MAX),
38
@p_USE_SOURCE nvarchar(MAX),
39
@p_USE_PERIOD_DT VARCHAR(20),
40
@p_OWNER_TYPE_DETAIL NVARCHAR(MAX),
41
@p_RET_SAVE_CODE VARCHAR(100),
42
@p_BRANCH_USE nvarchar(500),
43
@p_RET_TAX_SCHEDULE XML = NULL,
44
@p_RET_REPAIR_SUGGEST XML = NULL,
45
@p_RET_REPAIR_REAL XML = NULL,
46
@p_FLUCTUATING_DT varchar(20) = null,
47
@p_REASON_FLUCTUATING nvarchar(max) = null,
48
----------------BAODNQ 16/2/2022: Thêm cột vào bảng RET_MASTER---------
49
@p_IS_SEND_APPR VARCHAR(15) = NULL,
50
@p_SEND_APPR_DT VARCHAR(20) = NULL,
51
@p_SIGN_USER VARCHAR(15) = NULL,
52
@p_SIGN_DT VARCHAR(20) = NULL
53

    
54
AS
55
--Validation is here
56
	DECLARE @ERRORSYS NVARCHAR(15) = ''
57
 
58
	IF ( NOT EXISTS ( SELECT * FROM RET_MASTER WHERE RET_ID = @p_RET_ID))
59
		SET @ERRORSYS = 'RETM-00001'
60
	IF @ERRORSYS <> '' 
61
	BEGIN
62
		SELECT ErrorCode Result, ''  RET_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
63
		RETURN '0'
64
	END
65
	Declare @hdoc INT
66
	Exec sp_xml_preparedocument @hdoc Output,@p_RET_TAX_SCHEDULE
67
	DECLARE RetTaxSchedule CURSOR FOR
68
	SELECT *
69
	FROM OPENXML(@hDoc,'/Root/RetTaxSchedule',2)
70
	WITH 
71
	(
72
				TAX_SCHEDULE_ID VARCHAR(15),
73
				----HOTFIX------
74
				--REQ_PAY_ID VARCHAR(15),
75
				REQ_PAY_ID VARCHAR(100),
76
				---------------
77
				FRM_DATE varchar(30),
78
				TO_DATE varchar(30),
79
				TOTAL_AMT decimal
80
	)
81
	OPEN RetTaxSchedule
82

    
83
	Exec sp_xml_preparedocument @hdoc Output,@p_RET_REPAIR_SUGGEST
84
	DECLARE RetRepairSuggest CURSOR FOR
85
	SELECT *
86
	FROM OPENXML(@hDoc,'/Root/RetRepairSuggest',2)
87
	WITH 
88
	(
89
		RET_SUG_REPAIR_ID VARCHAR(15),
90
		------HOTFIX--------
91
		--REQ_ID	varchar(15),
92
		REQ_ID	varchar(100),
93
		-------------------
94
		REPAIR_SUG_DT	varchar(30) ,		
95
		BRANCH_ID varchar(15) ,
96
		BRANCH_SUGGEST nvarchar(4000),
97
		TOTAL_AMT decimal,
98
		USER_SUGGEST varchar(15),
99
		REPAIR_REASON nvarchar(4000),
100
		REPAIR_CONTENT	nvarchar(4000) 
101
	)
102
	OPEN RetRepairSuggest
103

    
104
	Exec sp_xml_preparedocument @hdoc Output,@p_RET_REPAIR_REAL
105
	DECLARE RetRepairReal CURSOR FOR
106
	SELECT *
107
	FROM OPENXML(@hDoc,'/Root/RetRepairReal',2)
108
	WITH 
109
	(
110
		RET_REPAIR_REAL_ID varchar(15),
111
		---HOTFIX---------
112
		--REQ_PAY_ID	varchar(15),
113
		REQ_PAY_ID	varchar(100),
114
		----------------------
115
		REPAIR_DT	varchar(30) ,		
116
		BRANCH_REPAIR nvarchar(4000),
117
		TOTAL_AMT decimal,
118
		REPAIR_CONTENT_REAL nvarchar(4000),
119
		NOTES	nvarchar(4000) 
120
	)
121
	OPEN RetRepairReal
122
BEGIN TRANSACTION
123
	UPDATE RET_MASTER
124
SET [BUY_DT] = CONVERT(DATETIME, @P_BUY_DT, 103),
125
    [ASSET_ID] = @p_ASSET_ID,
126
    [ASSET_CODE] = @P_ASSET_CODE,
127
    [OWNER] = @P_OWNER,
128
    [LENGTH] = @p_LENGTH,
129
    [WIDTH] = @p_WIDTH,
130
    [FLOORS] = @p_FLOORS,
131
    [CURRENT_STATE] = @p_CURRENT_STATE,
132
    [RET_TYPE] = @p_RET_TYPE,
133
    [STATUS] = @p_STATUS,
134
    [LAND_SQUARE] = @p_LAND_SQUARE,
135
    [CONSTRUCT_SQUARE] = @p_CONSTRUCT_SQUARE,
136
    [TOTAL_SQUARE] = @p_TOTAL_SQUARE,
137
    [BOUNDARY] = @p_BOUNDARY,
138
    [HOUSEDES] = @p_HOUSEDES,
139
    [PURPOSE_IN_USE] = @p_PURPOSE_IN_USE,
140
    [W_USE_CON] = @P_W_USE_CON,
141
    [USE_STATUS] = @p_USE_STATUS,
142
    [CONST_STATUS] = @p_CONST_STATUS,
143
    [OWNER_TYPE] = @p_OWNER_TYPE,
144
    [USE_PERIOD] = @p_USE_PERIOD,
145
    [PERSON_HOLDER] = @p_PERSON_HOLDER,
146
    [NOTES] = @p_NOTES,
147
    [REASON] = @p_REASON,
148
    [RECORD_STATUS] = @p_RECORD_STATUS,
149
    [AUTH_STATUS] = @p_AUTH_STATUS,
150
    [MAKER_ID] = @p_MAKER_ID,
151
    [CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),
152
    [CHECKER_ID] = @p_CHECKER_ID,
153
    [APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),
154
	[USE_FORM] = @p_USE_FORM,
155
	[USE_FORM_DETAIL] = @p_USE_FORM_DETAIL,
156
	[USE_SOURCE] = @p_USE_SOURCE,
157
	[USE_PERIOD_DT] = CONVERT(DATETIME, @p_USE_PERIOD_DT, 103),
158
	[OWNER_TYPE_DETAIL] = @p_OWNER_TYPE_DETAIL,
159
	[RET_SAVE_CODE] = @p_RET_SAVE_CODE,
160
	[BRANCH_USE] = @p_BRANCH_USE,
161
	ADDR = @p_ADDR, -- hungdv hieu chinh yeu cau anh toi 250520
162
	[FLUCTUATING_DT] = CONVERT(DATETIME, @p_FLUCTUATING_DT, 103),
163
	[REASON_FLUCTUATING] = @p_REASON_FLUCTUATING,
164
	----------------BAODNQ 16/2/2022: Thêm cột vào bảng RET_MASTER---------
165
	[IS_SEND_APPR] = @p_IS_SEND_APPR,
166
	[SEND_APPR_DT] = CONVERT(DATETIME, @p_SEND_APPR_DT, 103),
167
	[SIGN_USER] = @p_SIGN_USER,
168
	[SIGN_DT] = CONVERT(DATETIME, @p_SIGN_DT, 103)
169

    
170
WHERE RET_ID = @p_RET_ID;
171
		IF @@Error <> 0 GOTO ABORT
172
		--UPDATE DETAIL 
173
		DECLARE
174
				@TAX_SCHEDULE_ID VARCHAR(15),
175
				@RET_SUG_REPAIR_ID VARCHAR(15), 
176
				@RET_REPAIR_REAL_ID varchar(15),
177
				----HOTFIX--------
178
				--@d_REQ_PAY_ID VARCHAR(15),
179
				@d_REQ_PAY_ID VARCHAR(100),
180
				-------------------
181
				@d_FRM_DATE varchar(30),
182
				@d_TO_DATE varchar(30),
183
				@d_TOTAL_AMT decimal,
184
				@RET_ID	varchar(15),
185
				----HOTFIX------
186
				--@REQ_ID varchar(15),
187
				@REQ_ID varchar(100),
188
				------------------
189
				@REPAIR_SUG_DT varchar(30),
190
				@BRANCH_ID varchar(15),
191
				@REPAIR_DT varchar(20),
192
				@BRANCH_REPAIR nvarchar(4000),
193
				@REPAIR_CONTENT_REAL nvarchar(4000),
194
				@NOTES nvarchar(4000),
195
				@BRANCH_SUGGEST nvarchar(4000),
196
				@TOTAL_AMT decimal,
197
				@USER_SUGGEST varchar(15),
198
				@REPAIR_REASON nvarchar(4000),
199
				@REPAIR_CONTENT nvarchar(4000)
200

    
201
		--UPDATE ACCESSORY DETAIL
202
		DELETE FROM RET_TAX_SCHEDULE WHERE RET_ID = @p_RET_ID
203
		FETCH NEXT FROM RetTaxSchedule INTO @TAX_SCHEDULE_ID, @d_REQ_PAY_ID,@d_FRM_DATE,@d_TO_DATE,@d_TOTAL_AMT
204
		WHILE @@FETCH_STATUS = 0
205
		BEGIN
206
			print LEN(@TAX_SCHEDULE_ID)
207

    
208
			---------------PDN thanh toán chặn---------------
209
			------TH KO CÓ PDN thanh toán------
210
			IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @d_REQ_PAY_ID))
211
			BEGIN
212
				ROLLBACK TRANSACTION
213
				SELECT '-1' as Result, '' RET_ID, N'Phiếu đề nghị thanh toán không tồn tại trong hệ thống' ErrorDesc
214
				RETURN '-1'
215
			END
216
			---------TH PDN thanh toán CHƯA ĐƯỢC DUYỆT---------
217
			IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @d_REQ_PAY_ID AND AUTH_STATUS_KT = 'A'))
218
			BEGIN
219
				ROLLBACK TRANSACTION
220
				SELECT '-1' as Result, '' RET_ID, N'Phiếu đề nghị thanh toán chưa được duyệt' ErrorDesc
221
				RETURN '-1'
222
			END
223

    
224
			IF(LEN(@TAX_SCHEDULE_ID)  = 0)
225
			BEGIN
226
				EXEC SYS_CodeMasters_Gen 'RET_TAX_SCHEDULE', @TAX_SCHEDULE_ID out
227
				IF @TAX_SCHEDULE_ID ='' OR @TAX_SCHEDULE_ID IS NULL GOTO ABORT
228
			END
229
			PRINT @TAX_SCHEDULE_ID
230
			INSERT INTO RET_TAX_SCHEDULE([TAX_SCHEDULE_ID],[RET_ID],[REQ_PAY_ID],[FRM_DATE],[TO_DATE],[TOTAL_AMT],[AUTH_STATUS],[RECORD_STATUS],[MAKER_ID])
231
			VALUES(@TAX_SCHEDULE_ID,@p_RET_ID ,@d_REQ_PAY_ID , CONVERT(DATETIME, @d_FRM_DATE, 103) ,CONVERT(DATETIME, @d_TO_DATE, 103) ,@d_TOTAL_AMT ,@p_AUTH_STATUS,@p_RECORD_STATUS  ,@p_MAKER_ID  )
232
			IF @@ERROR <> '' GOTO ABORT
233
			FETCH NEXT FROM RetTaxSchedule INTO @TAX_SCHEDULE_ID, @d_REQ_PAY_ID,@d_FRM_DATE,@d_TO_DATE,@d_TOTAL_AMT
234
		END
235

    
236
		PRINT 'RetTaxSchedule'
237
		--UPDATE RetRepairSuggest
238
		DELETE FROM RET_REPAIR_SUGGEST WHERE RET_ID = @p_RET_ID
239
		FETCH NEXT FROM RetRepairSuggest INTO @RET_SUG_REPAIR_ID,   @REQ_ID,@REPAIR_SUG_DT,@BRANCH_ID,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT
240
		WHILE @@FETCH_STATUS = 0
241
		BEGIN
242
			PRINT @REQ_ID
243
			---------------TTCT chặn---------------
244
			------TH KO CÓ TTCT------
245
			IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_CODE = @REQ_ID))
246
			BEGIN
247
				ROLLBACK TRANSACTION
248
				SELECT '-1' as Result, '' RET_ID, N'Tờ trình chủ trương không tồn tại trong hệ thống' ErrorDesc
249
				RETURN '-1'
250
			END
251
			---------TH TTCT CHƯA ĐƯỢC DUYỆT---------
252
			IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_CODE = @REQ_ID AND PROCESS_ID = 'APPROVE'))
253
			BEGIN
254
				ROLLBACK TRANSACTION
255
				SELECT '-1' as Result, '' RET_ID, N'Tờ trình chủ trương chưa được duyệt' ErrorDesc
256
				RETURN '-1'
257
			END
258

    
259

    
260
			DECLARE @l_RET_SUG_REPAIR_ID  VARCHAR(15)
261
			IF LEN(@RET_SUG_REPAIR_ID ) = 0
262
			BEGIN
263
				EXEC SYS_CodeMasters_Gen 'RET_REPAIR_SUGGEST', @RET_SUG_REPAIR_ID out
264
				PRINT @RET_SUG_REPAIR_ID
265
				IF @RET_SUG_REPAIR_ID ='' OR @RET_SUG_REPAIR_ID IS NULL GOTO ABORT
266
			END
267
			
268
			INSERT INTO RET_REPAIR_SUGGEST([RET_SUG_REPAIR_ID],[RET_ID],[REQ_ID],[REPAIR_SUG_DT],[BRANCH_ID],[BRANCH_SUGGEST],[TOTAL_AMT],[USER_SUGGEST],[REPAIR_REASON],[REPAIR_CONTENT],[AUTH_STATUS],[RECORD_STATUS],[MAKER_ID])
269
			VALUES(@RET_SUG_REPAIR_ID,@p_RET_ID ,@REQ_ID ,CONVERT(DATETIME, @REPAIR_SUG_DT, 103) ,@BRANCH_ID  ,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT ,@p_AUTH_STATUS  ,@p_RECORD_STATUS ,@p_MAKER_ID  )
270
			IF @@ERROR <> '' GOTO ABORT
271
			FETCH NEXT FROM RetRepairSuggest INTO @RET_SUG_REPAIR_ID, @REQ_ID,@REPAIR_SUG_DT,@BRANCH_ID,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT
272
		END
273
		
274
		--UPDATE RetRepairReal
275
		DELETE FROM RET_REPAIR_REAL WHERE RET_ID = @p_RET_ID
276
		FETCH NEXT FROM RetRepairReal INTO @RET_REPAIR_REAL_ID, @d_REQ_PAY_ID,@REPAIR_DT,@BRANCH_REPAIR,@TOTAL_AMT,@REPAIR_CONTENT_REAL,@NOTES
277
		WHILE @@FETCH_STATUS = 0
278
		BEGIN
279

    
280
			---------------PDN thanh toán chặn---------------
281
			------TH KO CÓ PDN thanh toán------
282
			IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @d_REQ_PAY_ID))
283
			BEGIN
284
				ROLLBACK TRANSACTION
285
				SELECT '-1' as Result, '' RET_ID, N'Phiếu đề nghị thanh toán không tồn tại trong hệ thống' ErrorDesc
286
				RETURN '-1'
287
			END
288
			---------TH PDN thanh toán CHƯA ĐƯỢC DUYỆT---------
289
			IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @d_REQ_PAY_ID AND AUTH_STATUS_KT = 'A'))
290
			BEGIN
291
				ROLLBACK TRANSACTION
292
				SELECT '-1' as Result, '' RET_ID, N'Phiếu đề nghị thanh toán chưa được duyệt' ErrorDesc
293
				RETURN '-1'
294
			END
295

    
296
			DECLARE @l_RET_REPAIR_REAL_ID  VARCHAR(15)
297
			IF LEN(@RET_REPAIR_REAL_ID ) = 0
298
			BEGIN
299
				EXEC SYS_CodeMasters_Gen 'RET_REPAIR_REAL', @RET_REPAIR_REAL_ID out
300
				PRINT @RET_REPAIR_REAL_ID
301
				IF @RET_REPAIR_REAL_ID ='' OR @RET_REPAIR_REAL_ID IS NULL GOTO ABORT
302
			END
303
			
304
			INSERT INTO RET_REPAIR_REAL([RET_REPAIR_REAL_ID],[RET_ID],[REQ_PAY_ID],[REPAIR_DT],[BRANCH_REPAIR],[TOTAL_AMT],[REPAIR_CONTENT_REAL],[NOTES] ,  [AUTH_STATUS],[RECORD_STATUS],[MAKER_ID])
305
			VALUES(@RET_REPAIR_REAL_ID,@p_RET_ID,@d_REQ_PAY_ID  ,CONVERT(DATETIME, @REPAIR_DT, 103) ,@BRANCH_REPAIR ,@TOTAL_AMT,@REPAIR_CONTENT_REAL,@NOTES ,@p_AUTH_STATUS  ,@p_RECORD_STATUS ,@p_MAKER_ID  )
306
			IF @@ERROR <> '' GOTO ABORT
307
			FETCH NEXT FROM RetRepairReal INTO @RET_REPAIR_REAL_ID, @d_REQ_PAY_ID,@REPAIR_DT,@BRANCH_REPAIR,@TOTAL_AMT,@REPAIR_CONTENT_REAL,@NOTES
308
		END
309

    
310
		CLOSE RetTaxSchedule
311
		DEALLOCATE RetTaxSchedule
312
		CLOSE RetRepairSuggest
313
		DEALLOCATE RetRepairSuggest
314
		CLOSE RetRepairReal
315
		DEALLOCATE RetRepairReal
316

    
317
		--------BAODNQ 16/02/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
318
		INSERT INTO dbo.PL_PROCESS
319
				(
320
					REQ_ID,
321
					PROCESS_ID,
322
					CHECKER_ID,
323
					APPROVE_DT,
324
					PROCESS_DESC,
325
					NOTES
326
				)
327
				VALUES
328
				(	@p_RET_ID,       
329
					'UPDATE',
330
					@p_MAKER_ID,        
331
					GETDATE(), 
332
					N'Cập nhật thông tin bất động sản thành công' ,      
333
					N'Cập nhật thông tin bất động sản'       
334
				)
335
		IF @@ERROR <> 0 GOTO ABORT
336

    
337
COMMIT TRANSACTION
338
		SELECT '0' as Result, @p_RET_ID  RET_ID, '' ErrorDesc
339
		RETURN '0'
340
ABORT:
341
BEGIN
342
		CLOSE RetTaxSchedule
343
		DEALLOCATE RetTaxSchedule
344
		CLOSE RetRepairSuggest
345
		DEALLOCATE RetRepairSuggest
346
		CLOSE RetRepairReal
347
		DEALLOCATE RetRepairReal
348
		ROLLBACK TRANSACTION
349
		SELECT '-1' as Result, '' RET_ID, '' ErrorDesc
350
		RETURN '-1'
351
End