Project

General

Profile

BDS_hot_fix_1.txt

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

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[RET_MASTER_Ins]
4
@p_ASSET_ID VARCHAR(15) = NULL,
5
@P_ASSET_CODE VARCHAR(15) = NULL,
6
@P_OWNER VARCHAR(500) = NULL,
7
@p_LENGTH	DECIMAL(18,2) = NULL,
8
@p_ADDR nvarchar(1000) = NULL, -- hungdv hieu chinh yeu cau anh toi 250520
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_CONSTRUCT_SQUARE	DECIMAL(18,2)  = NULL,
16
@p_TOTAL_SQUARE	DECIMAL(18,2)  = NULL,
17
@p_BOUNDARY	nvarchar(100)  = NULL,
18
@p_HOUSEDES	nvarchar(100)  = NULL,
19
@p_PURPOSE_IN_USE	nvarchar(500)  = NULL,
20
@P_W_USE_CON NVARCHAR(100) = NULL,
21
@p_USE_STATUS	varchar(15)  = NULL,
22
@p_CONST_STATUS	varchar(15)  = NULL,
23
@p_OWNER_TYPE	varchar(15)  = NULL,
24
@p_USE_PERIOD	int  = NULL,
25
@p_PERSON_HOLDER	nvarchar(1000)  = NULL,
26
@p_REASON nvarchar(1000) = NULL,
27
@p_NOTES	nvarchar(1000)  = NULL,
28
@p_RECORD_STATUS	varchar(1)  = NULL,
29
@p_AUTH_STATUS	varchar(1)  = NULL,
30
@p_MAKER_ID	varchar(15)  = NULL,
31
@p_CREATE_DT	VARCHAR(20) = NULL,
32
@p_CHECKER_ID	varchar(15)  = NULL,
33
@p_APPROVE_DT	VARCHAR(20) = NULL,
34
@P_BUY_DT VARCHAR(20) = NULL,
35
@p_USE_FORM VARCHAR(1),
36
@p_USE_FORM_DETAIL nvarchar(MAX),
37
@p_USE_SOURCE nvarchar(MAX),
38
@p_USE_PERIOD_DT VARCHAR(20),
39
@p_OWNER_TYPE_DETAIL NVARCHAR(MAX),
40
@p_RET_SAVE_CODE VARCHAR(100),
41
@p_XML_TEMP XML = NULL,
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

    
57
----INSERT SYS_PREFIX---
58
	--INSERT INTO SYS_PREFIX VALUES('RET_TAX_SCHEDULE', 'RETX', N'Bảng thông tin quản lý định kỳ thuế nhà đất')
59
	--INSERT INTO SYS_PREFIX VALUES('RET_REPAIR_SUGGEST', 'RETRS', N'Bảng thông tin sửa chữa dự kiến')
60
	--INSERT INTO SYS_PREFIX VALUES('RET_REPAIR_REAL', 'RETRR', N'Bảng thông tin sửa chữa thực tế')
61
----------------------------
62

    
63
DECLARE @ERRORSYS NVARCHAR(15) = '' 
64
IF ( EXISTS ( SELECT * FROM RET_MASTER WHERE ASSET_ID = @P_ASSET_ID ))
65
	SET @ERRORSYS = 'RETM-00002'
66
IF @ERRORSYS <> '' 
67
	BEGIN
68
		SELECT ErrorCode Result, ''  RET_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
69
		RETURN '0'
70
	END 
71

    
72
	Declare @hdoc INT
73
	Exec sp_xml_preparedocument @hdoc Output,@p_RET_TAX_SCHEDULE
74
	DECLARE RetTaxSchedule CURSOR FOR
75
	SELECT *
76
	FROM OPENXML(@hDoc,'/Root/RetTaxSchedule',2)
77
	WITH 
78
	(
79
				----HOTFIX---
80
				--REQ_PAY_ID VARCHAR(15),
81
				REQ_PAY_ID VARCHAR(100),
82
				-------------------------
83
				FRM_DATE varchar(30),
84
				TO_DATE varchar(30),
85
				TOTAL_AMT decimal
86
	)
87
	OPEN RetTaxSchedule
88

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

    
109
	Exec sp_xml_preparedocument @hdoc Output,@p_RET_REPAIR_REAL
110
	DECLARE RetRepairReal CURSOR FOR
111
	SELECT *
112
	FROM OPENXML(@hDoc,'/Root/RetRepairReal',2)
113
	WITH 
114
	(
115
		-----HOTFIX------------
116
		--REQ_PAY_ID	varchar(15),
117
		REQ_PAY_ID	varchar(100),
118
		------------------------
119
		REPAIR_DT	varchar(30) ,		
120
		BRANCH_REPAIR nvarchar(4000),
121
		TOTAL_AMT decimal,
122
		REPAIR_CONTENT_REAL nvarchar(4000),
123
		NOTES	nvarchar(4000) 
124
	)
125
	OPEN RetRepairReal
126
BEGIN TRANSACTION
127
DECLARE @l_RET_ID VARCHAR(15)
128
		EXEC SYS_CodeMasters_Gen 'RET_MASTER', @l_RET_ID out
129
		IF @l_RET_ID='' OR @l_RET_ID IS NULL GOTO ABORT
130

    
131

    
132
		INSERT INTO RET_MASTER
133
		(
134
			[BUY_DT],
135
			[RET_ID],
136
			[ASSET_ID],
137
			[ASSET_CODE],
138
			[OWNER],
139
			[LENGTH],
140
			[WIDTH],
141
			[FLOORS],
142
			[CURRENT_STATE],
143
			[RET_TYPE],
144
			[STATUS],
145
			[LAND_SQUARE],
146
			[CONSTRUCT_SQUARE],
147
			[TOTAL_SQUARE],
148
			[BOUNDARY],
149
			[HOUSEDES],
150
			[PURPOSE_IN_USE],
151
			[W_USE_CON],
152
			[USE_STATUS],
153
			[CONST_STATUS],
154
			[OWNER_TYPE],
155
			[USE_PERIOD],
156
			[PERSON_HOLDER],
157
			[REASON],
158
			[NOTES],
159
			[RECORD_STATUS],
160
			[AUTH_STATUS],
161
			[MAKER_ID],
162
			[CREATE_DT],
163
			[CHECKER_ID],
164
			[APPROVE_DT],
165
			[USE_FORM],
166
			[USE_FORM_DETAIL],
167
			[USE_SOURCE],
168
			[USE_PERIOD_DT],
169
			[OWNER_TYPE_DETAIL],
170
			[RET_SAVE_CODE],
171
			BRANCH_USE,
172
			[FLUCTUATING_DT],
173
			[REASON_FLUCTUATING],
174
			ADDR, -- hungdv hieu chinh yeu cau anh toi 250520
175
			----------------BAODNQ 16/2/2022: Thêm cột vào bảng RET_MASTER---------
176
			[IS_SEND_APPR],
177
			[SEND_APPR_DT],
178
			[SIGN_USER],
179
			[SIGN_DT]
180
		)
181
		VALUES
182
		(CONVERT(DATETIME, @P_BUY_DT, 103), @l_RET_ID, @p_ASSET_ID, @P_ASSET_CODE, @P_OWNER, @p_LENGTH, @p_WIDTH, @p_FLOORS,
183
		 @p_CURRENT_STATE, @p_RET_TYPE, @p_STATUS, @p_LAND_SQUARE, @p_CONSTRUCT_SQUARE, @p_TOTAL_SQUARE, @p_BOUNDARY,
184
		 @p_HOUSEDES, @p_PURPOSE_IN_USE, @P_W_USE_CON, @p_USE_STATUS, @p_CONST_STATUS, @p_OWNER_TYPE, @p_USE_PERIOD,
185
		 @p_PERSON_HOLDER, @p_REASON, @p_NOTES, @p_RECORD_STATUS, @p_AUTH_STATUS, @p_MAKER_ID,
186
		 CONVERT(DATETIME, @p_CREATE_DT, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103), @p_USE_FORM,
187
		 @p_USE_FORM_DETAIL, @p_USE_SOURCE, CONVERT(DATETIME, @p_USE_PERIOD_DT, 103), @p_OWNER_TYPE_DETAIL, 
188
		 @p_RET_SAVE_CODE, @p_BRANCH_USE,CONVERT(DATETIME, @p_FLUCTUATING_DT, 103),@p_REASON_FLUCTUATING ,@p_ADDR,
189
		 @p_IS_SEND_APPR, CONVERT(DATETIME, @p_SEND_APPR_DT, 103), @p_SIGN_USER, CONVERT(DATETIME, @p_SIGN_DT, 103))
190
		IF @@Error <> 0 GOTO ABORT
191
		--KHAI BAO TOAN BO BIEN TRUOC KHI FETCH DATA
192
		DECLARE 
193
				--@d_REQ_PAY_ID VARCHAR(15),
194
				---HOTFIX---
195
				@d_REQ_PAY_ID VARCHAR(100),
196
				------------
197
				@d_FRM_DATE varchar(30),
198
				@d_TO_DATE varchar(30),
199
				@d_TOTAL_AMT decimal,
200
				@RET_ID	varchar(15),
201
				---HOTFIX----
202
				--@REQ_ID varchar(15),
203
				@REQ_ID varchar(100),
204
				---------------
205
				@REPAIR_SUG_DT varchar(30),
206
				@REPAIR_DT varchar(30),
207
				@BRANCH_ID varchar(15),
208
				@BRANCH_SUGGEST nvarchar(4000),
209
				@BRANCH_REPAIR nvarchar(4000),
210
				@REPAIR_CONTENT_REAL nvarchar(4000),
211
				@NOTES nvarchar(4000),
212
				@TOTAL_AMT decimal,
213
				@USER_SUGGEST varchar(15),
214
				@REPAIR_REASON nvarchar(4000),
215
				@REPAIR_CONTENT nvarchar(4000)
216
		--INSERT RetTaxSchedule
217
		FETCH NEXT FROM RetTaxSchedule INTO  @d_REQ_PAY_ID,@d_FRM_DATE,@d_TO_DATE,@d_TOTAL_AMT
218
		WHILE @@FETCH_STATUS = 0
219
		BEGIN
220

    
221
			---------------PDN thanh toán chặn---------------
222
			------TH KO CÓ PDN thanh toán------
223
			IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @d_REQ_PAY_ID))
224
			BEGIN
225
				ROLLBACK TRANSACTION
226
				SELECT '-1' as Result, '' RET_ID, N'Phiếu đề nghị thanh toán không tồn tại trong hệ thống' ErrorDesc
227
				RETURN '-1'
228
			END
229
			---------TH PDN thanh toán CHƯA ĐƯỢC DUYỆT---------
230
			IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @d_REQ_PAY_ID AND AUTH_STATUS_KT = 'A'))
231
			BEGIN
232
				ROLLBACK TRANSACTION
233
				SELECT '-1' as Result, '' RET_ID, N'Phiếu đề nghị thanh toán chưa được duyệt' ErrorDesc
234
				RETURN '-1'
235
			END
236

    
237
			
238

    
239
			DECLARE @l_TAX_SCHEDULE_ID  VARCHAR(15)
240
			EXEC SYS_CodeMasters_Gen 'RET_TAX_SCHEDULE', @l_TAX_SCHEDULE_ID out
241
			IF @l_TAX_SCHEDULE_ID='' OR @l_TAX_SCHEDULE_ID IS NULL GOTO ABORT
242
			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])
243
			VALUES(@l_TAX_SCHEDULE_ID,@l_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  )
244
			
245
			IF @@ERROR <> '' GOTO ABORT
246
			FETCH NEXT FROM RetTaxSchedule INTO  @d_REQ_PAY_ID,@d_FRM_DATE,@d_TO_DATE,@d_TOTAL_AMT
247
		END
248

    
249

    
250
		--INSERT RepairSuggest
251
		FETCH NEXT FROM RetRepairSuggest INTO  @REQ_ID,@REPAIR_SUG_DT,@BRANCH_ID,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT
252
		WHILE @@FETCH_STATUS = 0
253
		BEGIN
254

    
255
			---------------TTCT chặn---------------
256
			------TH KO CÓ TTCT------
257
			IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_CODE = @REQ_ID))
258
			BEGIN
259
				ROLLBACK TRANSACTION
260
				SELECT '-1' as Result, '' RET_ID, N'Tờ trình chủ trương không tồn tại trong hệ thống' ErrorDesc
261
				RETURN '-1'
262
			END
263
			---------TH TTCT CHƯA ĐƯỢC DUYỆT---------
264
			IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_CODE = @REQ_ID AND PROCESS_ID = 'APPROVE'))
265
			BEGIN
266
				ROLLBACK TRANSACTION
267
				SELECT '-1' as Result, '' RET_ID, N'Tờ trình chủ trương chưa được duyệt' ErrorDesc
268
				RETURN '-1'
269
			END
270

    
271
			DECLARE @l_RET_SUG_REPAIR_ID VARCHAR(15)
272
			EXEC SYS_CodeMasters_Gen 'RET_REPAIR_SUGGEST', @l_RET_SUG_REPAIR_ID out
273
			IF @l_RET_SUG_REPAIR_ID='' OR @l_RET_SUG_REPAIR_ID IS NULL GOTO ABORT
274
			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])
275
			VALUES(@l_RET_SUG_REPAIR_ID,@l_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  )
276
			IF @@ERROR <> '' GOTO ABORT
277
			FETCH NEXT FROM RetRepairSuggest INTO @REQ_ID,@REPAIR_SUG_DT,@BRANCH_ID,@BRANCH_SUGGEST,@TOTAL_AMT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT
278
		END
279

    
280
		--INSERT RepairReal
281
		FETCH NEXT FROM RetRepairReal INTO  @d_REQ_PAY_ID,@REPAIR_DT,@BRANCH_REPAIR,@TOTAL_AMT,@REPAIR_CONTENT_REAL,@NOTES
282
		WHILE @@FETCH_STATUS = 0
283
		BEGIN
284

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

    
301
			DECLARE @l_RET_REPAIR_REAL_ID VARCHAR(15)
302
			EXEC SYS_CodeMasters_Gen 'RET_REPAIR_REAL', @l_RET_REPAIR_REAL_ID out
303
			IF @l_RET_REPAIR_REAL_ID='' OR @l_RET_REPAIR_REAL_ID IS NULL GOTO ABORT
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(@l_RET_REPAIR_REAL_ID,@l_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  @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
				(	@l_RET_ID,       
329
					'INSERT',
330
					@p_MAKER_ID,        
331
					GETDATE(), 
332
					N'Thêm mới thông tin bất động sản thành công' ,      
333
					N'Thêm mới thông tin bất động sản'       
334
				)
335
		IF @@ERROR <> 0 GOTO ABORT
336

    
337
COMMIT TRANSACTION
338
SELECT '0' as Result, @l_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
352