Project

General

Profile

BUD_CONTRACT_MASTER_App.txt

Sửa câu thông báo lỗi Quản lý hợp đồng khách thuê - Luc Tran Van, 03/11/2022 02:24 PM

 
1

    
2
ALTER PROCEDURE [dbo].[BUD_CONTRACT_MASTER_App]
3
@p_CONTRACT_ID varchar(15),
4
@p_VERSION_NO varchar(15),
5
@P_AUTH_STATUS VARCHAR(1),
6
@P_CHECKER_ID VARCHAR(12),
7
@P_APPROVE_DT VARCHAR(25),
8
@P_TYPE_CONTRACT VARCHAR(1),
9
@P_XML_TEMP XML
10
AS
11
BEGIN TRANSACTION 
12
		DECLARE @_BUILDING_UTIL_LOG VARCHAR(15)
13
		DECLARE @p_VALUE_ID VARCHAR(15)
14
		DECLARE @p_MONTH DECIMAL(18,0)
15
		DECLARE @VALUE_ERROR DECIMAL(18,0)
16
		DECLARE @p_RENT_PRICE DECIMAL(18,0)
17
		DECLARE @TOATAL_INTERNAL DECIMAL(18,0)
18
		DECLARE @STT INT
19
		SET @STT =0
20
		DECLARE @_BUILDING_ID VARCHAR(15)
21
		DECLARE @_BUILDING_AREA_ID VARCHAR(15)
22
		DECLARE @_RENT_AREA DECIMAL(18,0)
23
		DECLARE @_RENT_PRICE_OLD DECIMAL(18,0)
24
		DECLARE @tmp table(CONTRACT_DTID VARCHAR(15), BUILDING_AREA_ID varchar(15),RENT_AREA DECIMAL(18,2),RENT_PRICE DECIMAL(18,2))
25
		insert into @tmp  SELECT CONTRACT_DTID, BUILDING_AREA_ID,RENT_AREA,RENT_PRICE  FROM BUD_CONTRACT_DT
26
												   WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO =@p_VERSION_NO-1
27

    
28

    
29
		-----*** INSERT VERSION -1 VAO TRONG BANG LOG
30
		IF @@Error <> 0 GOTO ABORT
31
		Declare @hdoc1 INT
32
		DECLARE 
33
				@d_CONTRACT_DTID   VARCHAR(15),	
34
				@d_BUILD_ID VARCHAR(15),
35
				@d_VERSION_NO INT,
36
				@d_BUILDING_AREA_ID VARCHAR(15),
37
				@d_RENT_AREA DECIMAL,
38
				@d_RENT_AREA_APP DECIMAL,
39
				@d_AREA_REMAIN DECIMAL,
40
				@d_RENT_PRICE DECIMAL,
41
				@d_DIEN_TICH_TANG DECIMAL,
42
				@d_DIEN_TICH_SD_NOI_BO DECIMAL,
43
				@d_DIEN_TICH_DA_CHO_THUE DECIMAL,
44
				@d_DIEN_TICH_CON_LAI DECIMAL,
45
				@d_DIEN_TICH_CAN_SD DECIMAL,
46
				@d_REASON NVARCHAR(MAX),
47
				@d_PRICE DECIMAL,
48
				@d_TOTAL_AMT DECIMAL,
49
				@d_DIEN_TICH_CON_LAI_FINAL DECIMAL,
50
				@d_BRANCH_ID NVARCHAR(15),
51
				@d_DEP_ID NVARCHAR(15)
52
		Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP
53
		DECLARE XmlDataDoc CURSOR FOR
54
		SELECT *
55
		FROM OPENXML(@hdoc1,'/Root/XmlData1',2)
56
		WITH 
57
		(	
58
		----BAODNQ-21/12/2021: Thêm các cột vào cursor XML-----
59

    
60
				CONTRACT_DTID   VARCHAR(15),
61
				BUILD_ID VARCHAR(15),
62
				VERSION_NO INT,
63
				BUILDING_AREA_ID VARCHAR(15),
64
				RENT_AREA DECIMAL,
65
				RENT_AREA_APP DECIMAL,
66
				AREA_REMAIN DECIMAL,
67
				RENT_PRICE DECIMAL,
68
				DIEN_TICH_TANG DECIMAL,
69
				DIEN_TICH_SD_NOI_BO DECIMAL,
70
				DIEN_TICH_DA_CHO_THUE DECIMAL,
71
				DIEN_TICH_CON_LAI DECIMAL,
72
				DIEN_TICH_CAN_SD DECIMAL,
73
				REASON NVARCHAR(MAX),
74
				PRICE DECIMAL,
75
				TOTAL_AMT DECIMAL,
76
				DIEN_TICH_CON_LAI_FINAL DECIMAL,
77
				BRANCH_ID NVARCHAR(15),
78
				DEP_ID NVARCHAR(15)
79
		)
80
		OPEN XmlDataDoc			
81
		FETCH NEXT FROM XmlDataDoc INTO 
82
									@d_CONTRACT_DTID,	
83
									@d_BUILD_ID,
84
									@d_VERSION_NO,
85
									@d_BUILDING_AREA_ID,
86
									@d_RENT_AREA,
87
									@d_RENT_AREA_APP,
88
									@d_AREA_REMAIN,
89
									@d_RENT_PRICE,
90
									@d_DIEN_TICH_TANG,
91
									@d_DIEN_TICH_SD_NOI_BO,
92
									@d_DIEN_TICH_DA_CHO_THUE,
93
									@d_DIEN_TICH_CON_LAI,
94
									@d_DIEN_TICH_CAN_SD,
95
									@d_REASON,
96
									@d_PRICE,
97
									@d_TOTAL_AMT,
98
									@d_DIEN_TICH_CON_LAI_FINAL,
99
									@d_BRANCH_ID,
100
									@d_DEP_ID
101
		WHILE @@FETCH_STATUS = 0
102
		BEGIN	
103
		SET @STT= @STT+1
104
		SET @VALUE_ERROR = (SELECT FLOOR_AREA - (UTILZED_AREA + INTERNAL_AREA) 
105
							FROM BUD_AREA_DT 
106
							WHERE  BUILDING_AREA_ID = @d_BUILDING_AREA_ID 
107
							 ) 
108
							  --+(SELECT SUM(RENT_AREA) FROM BUD_CONTRACT_DT
109
								 --WHERE CONTRACT_ID =@p_CONTRACT_ID AND CONTRACT_ID IN(SELECT CONTRACT_ID FROM
110
								 --BUD_CONTRACT_MASTER WHERE AUTH_STATUS='A'))
111
		--DIEN TICH CHO THUE PHAI LON HON DIEN TICH CON LAI+ DIEN TICH VERSION CŨ TRONG TRUONG
112
		--HOP TAO PHU LUC HOP DONG
113

    
114
		----BAODNQ-21/12/2021: Đổi @d_RENT_AREA thành @d_DIEN_TICH_CAN_SD-------
115
		
116
		IF ( @d_DIEN_TICH_CAN_SD > (@VALUE_ERROR + @d_RENT_AREA_APP))
117
				BEGIN
118
					DECLARE @ERRORSYS NVARCHAR(200) =''
119
					SET @ERRORSYS = N'Dòng '+ convert(nvarchar(2),@stt) +N': Cột DT cần sử dụng phải nhỏ hơn hoặc bằng cột DT trống: '+ convert(nvarchar(20),@VALUE_ERROR)
120
				END
121
				IF @ERRORSYS <> '' 
122
				BEGIN
123
					CLOSE XmlDataDoc
124
					DEALLOCATE XmlDataDoc
125
					ROLLBACK TRANSACTION
126
					SELECT '-1' as Result, '' CONTRACT_ID, @ERRORSYS ErrorDesc
127
					RETURN '-1'
128
				END 
129
		----**** INSERT VERSION CURRENT -1-------------------------------------------------------------------------
130
		--IF(@p_VERSION_NO>1)
131
		--BEGIN
132
		--	SET @_BUILDING_AREA_ID= (SELECT TOP(1) BUILDING_AREA_ID FROM @tmp)
133
		--	SET @_RENT_AREA= (SELECT TOP(1) RENT_AREA FROM @tmp)
134
		--	SET @p_RENT_PRICE= (SELECT TOP(1) RENT_PRICE FROM @tmp)
135
		--	EXEC SYS_CodeMasters_Gen 'BUD_UTIL_LOG', @_BUILDING_UTIL_LOG out
136
		--	IF @_BUILDING_UTIL_LOG='' OR @_BUILDING_UTIL_LOG IS NULL GOTO ABORT
137
		--	INSERT INTO BUD_UTIL_LOG([UTIL_ID],[BUILDING_AREA_ID],[UTIL_TYPE],[UTIL_RELEASE],[CONTRACT_ID],[VERSION_NO],[UTIL_DT],[AREA],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT])
138
		--	VALUES(@_BUILDING_UTIL_LOG ,@_BUILDING_AREA_ID ,@P_TYPE_CONTRACT ,'R' ,@p_CONTRACT_ID ,@p_VERSION_NO-1 ,CONVERT(DATETIME, GETDATE(), 103) ,@_RENT_AREA ,'1' ,'A' ,@P_CHECKER_ID ,CONVERT(DATETIME, GETDATE(), 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, GETDATE(), 103) )
139
		--	------**** INSERT INTO CONTRACT_VALUES ---------------------------------------------------------------
140
		--	EXEC SYS_CodeMasters_Gen 'CONTRACT_VALUES', @p_VALUE_ID out
141
		--	IF @p_VALUE_ID='' OR @p_VALUE_ID IS NULL GOTO ABORT
142
		--	INSERT INTO BUD_CONTRACT_VALUES VALUES (@p_VALUE_ID,@p_CONTRACT_ID,@p_VERSION_NO-1,@_BUILDING_AREA_ID,@P_TYPE_CONTRACT,'R',@p_RENT_PRICE*@_RENT_AREA,NULL,@d_REASON,
143
		--										'1','A',@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103),@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103))
144
		--	DELETE @tmp WHERE CONTRACT_DTID = (SELECT TOP(1) CONTRACT_DTID FROM @tmp)
145
		--END
146
		-----***INSERT VERSION CURRENT------------------------------------------------------------------
147
		DECLARE @l_UTIL_ID VARCHAR(15)
148
		EXEC SYS_CodeMasters_Gen 'BUD_UTIL_LOG', @l_UTIL_ID out
149
		IF @l_UTIL_ID='' OR @l_UTIL_ID IS NULL GOTO ABORT
150

    
151
		----BAODNQ-21/12/2021: Đổi biến insert vào cột [AREA] thành @d_DIEN_TICH_CAN_SD + thêm cột vào bảng BUD_UTIL_LOG-------
152

    
153
		-----BAODNQ 17/1/2022: Thêm cột vào bảng BUD_UTIL_LOG
154
		DECLARE @p_IS_FIRST_TIME VARCHAR(1)
155
		IF(NOT EXISTS 
156
			(SELECT * FROM BUD_UTIL_LOG 
157
				WHERE CONTRACT_ID = @p_CONTRACT_ID 
158
				AND BUILDING_AREA_ID = @d_BUILDING_AREA_ID
159
				AND CUSTOMER_ID = @d_BRANCH_ID
160
				AND IS_FIRST_TIME = 'Y'))
161
		BEGIN
162
			SET @p_IS_FIRST_TIME = 'Y'
163
		END
164
		ELSE
165
		BEGIN
166
			SET @p_IS_FIRST_TIME = 'N'
167
		END
168

    
169
		INSERT INTO BUD_UTIL_LOG([UTIL_ID],[BUILDING_AREA_ID],[UTIL_TYPE],[UTIL_RELEASE],[CONTRACT_ID],
170
					[VERSION_NO],[UTIL_DT],[AREA],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],
171
					[APPROVE_DT], [TOTAL_AMT_INIT], [VAT_INIT], [IS_FIRST_TIME], [CUSTOMER_ID])
172
			VALUES(@l_UTIL_ID ,@d_BUILDING_AREA_ID ,@P_TYPE_CONTRACT ,'U' ,@p_CONTRACT_ID ,@p_VERSION_NO ,
173
					CONVERT(DATETIME, GETDATE(), 103) ,@d_DIEN_TICH_CAN_SD ,'1' ,'A' ,@P_CHECKER_ID ,
174
					CONVERT(DATETIME, GETDATE(), 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, GETDATE(), 103), @d_TOTAL_AMT,
175
					0, @p_IS_FIRST_TIME, @d_BRANCH_ID)
176
		
177
		---*** UPDATE CONTRACT_VALUES-------------------------------------------------------
178
		EXEC SYS_CodeMasters_Gen 'CONTRACT_VALUES', @p_VALUE_ID out
179
			IF @p_VALUE_ID='' OR @p_VALUE_ID IS NULL GOTO ABORT
180

    
181
			----BAODNQ-21/12/2021: Đổi biến insert vào cột [RENT_AMT] thành @d_TOTAL_AMT-------
182

    
183
			INSERT INTO BUD_CONTRACT_VALUES VALUES (@p_VALUE_ID,@p_CONTRACT_ID,@p_VERSION_NO,@d_BUILDING_AREA_ID,@P_TYPE_CONTRACT,'U',@d_TOTAL_AMT,NULL,@d_REASON,
184
												'1','A',@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103),@P_CHECKER_ID,CONVERT(DATETIME,GETDATE(),103))
185
		
186
		-----***UPDATE DIEN TICH NOI BO SU DUNG NEU TYPE = I:INTERNAL ------------------------------------------------------------------
187
		IF(@P_TYPE_CONTRACT='I')
188
		BEGIN
189
		UPDATE BUD_AREA_DT
190
		--SET INTERNAL_AREA =(
191
		--	(SELECT ISNULL(SUM(AREA),0) FROM BUD_UTIL_LOG WHERE BUILDING_AREA_ID=@d_BUILDING_AREA_ID AND UTIL_RELEASE='U' AND UTIL_TYPE=@P_TYPE_CONTRACT)
192
		--	  -
193
		--	(SELECT ISNULL(SUM(AREA),0) FROM BUD_UTIL_LOG WHERE BUILDING_AREA_ID=@d_BUILDING_AREA_ID AND UTIL_RELEASE='R' AND UTIL_TYPE =@P_TYPE_CONTRACT)
194
		
195
		--	)
196
		SET INTERNAL_AREA = INTERNAL_AREA + @d_DIEN_TICH_CAN_SD
197
		WHERE BUILDING_AREA_ID =@d_BUILDING_AREA_ID
198
		---****** UPDATE BUD_CONTRACT_DT ******************************************---------
199
		----BAODNQ-21/12/2021: Đổi biến insert vào cột [RENT_AREA_APP] thành @@d_DIEN_TICH_CAN_SD-------
200
		UPDATE BUD_CONTRACT_DT
201
		SET RENT_AREA_APP =RENT_AREA_APP + @d_DIEN_TICH_CAN_SD,
202
			DIEN_TICH_CON_LAI_FINAL = DIEN_TICH_CON_LAI - @d_DIEN_TICH_CAN_SD
203
		WHERE CONTRACT_DTID = @d_CONTRACT_DTID
204
		END
205
		------------------------------------------------------------------------------------------
206
		IF @@Error <> 0 GOTO ABORT	
207

    
208
		-----BAODNQ 17/1/2022: Insert vào bảng BUD_CONTRACT_LOG khi trưởng dv duyệt thành công
209
		--DECLARE @p_IS_FIRST_TIME VARCHAR(1)
210

    
211
		--IF(NOT EXISTS(SELECT*FROM BUD_CONTRACT_LOG WHERE CONTRACT_ID = @d_CONTRACT_DTID AND @p_IS_FIRST_TIME = 'Y'))
212
		--BEGIN
213
		--	SET @p_IS_FIRST_TIME = 'Y'
214
		--END
215
		--ELSE
216
		--BEGIN
217
		--	SET @p_IS_FIRST_TIME = 'N'
218
		--END
219
		--INSERT INTO BUD_CONTRACT_LOG 
220
		--	VALUES (@d_CONTRACT_DTID, @d_BRANCH_ID, @d_TOTAL_AMT, 0,@p_IS_FIRST_TIME, CONVERT(DATETIME,@P_APPROVE_DT,103))
221
		--IF @@ERROR <> 0 GOTO ABORT
222
		-------------------------------------
223

    
224
		FETCH NEXT FROM XmlDataDoc INTO 
225
									@d_CONTRACT_DTID,	
226
									@d_BUILD_ID,
227
									@d_VERSION_NO,
228
									@d_BUILDING_AREA_ID,
229
									@d_RENT_AREA,
230
									@d_RENT_AREA_APP,
231
									@d_AREA_REMAIN,
232
									@d_RENT_PRICE,
233
									@d_DIEN_TICH_TANG,
234
									@d_DIEN_TICH_SD_NOI_BO,
235
									@d_DIEN_TICH_DA_CHO_THUE,
236
									@d_DIEN_TICH_CON_LAI,
237
									@d_DIEN_TICH_CAN_SD,
238
									@d_REASON,
239
									@d_PRICE,
240
									@d_TOTAL_AMT,
241
									@d_DIEN_TICH_CON_LAI_FINAL,
242
									@d_BRANCH_ID,
243
									@d_DEP_ID
244
		END
245
		CLOSE XmlDataDoc
246
		DEALLOCATE XmlDataDoc
247
		--**** UPDATE BUD_CONTRACT_MASTER*************
248
		----BAODNQ-21/12/2021: Đổi cột thực hiện SUM thành TOTAL_AMT-------
249
		SET @p_RENT_PRICE = (SELECT SUM(TOTAL_AMT) FROM BUD_CONTRACT_DT 
250
														WHERE CONTRACT_ID =@p_CONTRACT_ID
251
														AND VERSION_NO=@p_VERSION_NO)
252
		SET @p_MONTH= (SELECT MONTHS FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID=@p_CONTRACT_ID 
253
															 AND   VERSION_NO=@p_VERSION_NO)												
254
		UPDATE BUD_CONTRACT_MASTER
255
		--SET RENT_PRICE=@p_RENT_PRICE *@p_MONTH
256
		SET RENT_PRICE=@p_RENT_PRICE
257
		WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO
258
		---*** UPDATE BUD_MASTER-------------------------------
259
		SET @_BUILDING_ID =(SELECT BUILDING_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID =@p_CONTRACT_ID AND VERSION_NO =@p_VERSION_NO)
260
		--UPDATE BUD_MASTER
261
		--SET UTILZED_AREA = (SELECT ISNULL(SUM(UTILZED_AREA),0) FROM BUD_AREA_DT WHERE BUILD_ID =@_BUILDING_ID)
262
		--WHERE BUILDING_ID=@_BUILDING_ID
263
		---***UPDATE DIEN TICH CHO THUE TOAN BO TOA NHA
264
		SET @TOATAL_INTERNAL  =  (SELECT ISNULL(SUM(INTERNAL_AREA),0) FROM BUD_AREA_DT WHERE BUILD_ID =@_BUILDING_ID)
265
		UPDATE BUD_MASTER
266
		SET RENT_TOTAL_AREA = TOTAL_AREA -@TOATAL_INTERNAL
267
		WHERE BUILDING_ID = @_BUILDING_ID
268

    
269
		UPDATE BUD_CONTRACT_MASTER SET AUTH_STATUS = 'A', CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
270
		WHERE VERSION_NO=@p_VERSION_NO AND CONTRACT_ID =@p_CONTRACT_ID
271

    
272
		---BAODNQ 29/12/2021: Insert vào PL_PROCESS lưu lịch sử xử lý
273
			INSERT INTO dbo.PL_PROCESS
274
					(
275
					    REQ_ID,
276
					    PROCESS_ID,
277
					    CHECKER_ID,
278
					    APPROVE_DT,
279
					    PROCESS_DESC,
280
					    NOTES
281
					)
282
					VALUES
283
					(   @p_CONTRACT_ID,       
284
						'APPROVE',
285
					    @P_CHECKER_ID,        
286
					    GETDATE(), 
287
					    N'Trưởng đơn vị duyệt thông tin khai báo DTSD nội bộ thành công' ,      
288
					    N'Trưởng đơn vị duyệt thông tin khai báo DTSD nội bộ'       
289
					 )
290

    
291

    
292
COMMIT TRANSACTION
293
SELECT '0' as Result, @p_VERSION_NO  VERSION_NO, '' ErrorDesc
294
RETURN '0'
295
ABORT:
296
BEGIN
297
		ROLLBACK TRANSACTION
298
		SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc
299
		RETURN '-1'
300
End
301

    
302

    
303

    
304