Project

General

Profile

RET_MASTER.txt

Luc Tran Van, 11/28/2022 05:24 PM

 
1

    
2
ALTER PROCEDURE [dbo].[RET_MASTER_Search]
3
@p_RET_ID	varchar(15)  = NULL,
4
@p_ASSET_ID VARCHAR(15) = NULL,
5
@P_ASSET_CODE VARCHAR(15) = NULL,
6
@P_DIV_ID VARCHAR(15) = NULL,
7
@P_DIV_CODE VARCHAR(15) = NULL,
8
@P_OWNER VARCHAR(50) = NULL,
9
@p_LENGTH	DECIMAL(18,2) = NULL,
10
@p_WIDTH	DECIMAL(18,2) = 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(100)  = 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(100)  = NULL,
26
@p_NOTES	nvarchar(100)  = NULL,
27
@p_RECORD_STATUS	varchar(1)  = NULL,
28
@p_AUTH_STATUS	varchar(1)  = NULL,
29
@p_MAKER_ID	varchar(15)  = NULL,
30
@p_CREATE_DT	VARCHAR(20) = NULL,
31
@p_CHECKER_ID	varchar(15)  = NULL,
32
@p_APPROVE_DT	VARCHAR(20) = NULL,
33
@p_TOP	INT = 300,
34
------------------BAODNQ 16/2/2022: Thêm tham số------------
35
@p_USER_LOGIN VARCHAR(15),
36
@p_BRANCH_ID VARCHAR(15) = NULL,
37
@p_RET_FORM VARCHAR(15) = NULL,
38
@p_ASSET_STATUS VARCHAR(15) = NULL,
39
@p_ADDR NVARCHAR(1000) = NULL,
40
@p_RET_SEARCH_TYPE VARCHAR(20) = NULL 
41
AS
42
	--Validation is here
43
/*
44
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
45
	IF ( [NOT] EXISTS ( SELECT * FROM [TABLE] WHERE  [CONDITION] ))
46
		 SET @ERRORSYS = ''
47
	IF @ERRORSYS <> '' 
48
	BEGIN
49
		SELECT ErrorCode Result, ''  CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
50
		RETURN '0'
51
	END */
52

    
53
BEGIN -- PAGING
54

    
55
--DECLARE @p_USER_LOGIN_ROLE VARCHAR(50) = (SELECT RoleName FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
56
DECLARE @t_USER_LOGIN_ROLE_TABLE TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15), ROLE_ID VARCHAR(20))
57

    
58
INSERT INTO @t_USER_LOGIN_ROLE_TABLE(BRANCH_ID, DEPT_ID, ROLE_ID)
59
	SELECT * FROM [dbo].[TL_USER_GET_ROLES](@p_USER_LOGIN)
60

    
61
DECLARE @p_BRANCH_LOGIN VARCHAR(15) = (SELECT TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN), 
62
		@p_DEP_LOGIN VARCHAR(15) = (SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
63

    
64
IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
65
-- PAGING BEGIN
66
SELECT A.*,(CASE WHEN USE_PERIOD = 0 THEN N'Lâu dài' ELSE convert(varchar(100),USE_PERIOD_DT, 103) END) AS USE_PERIOD_NAME, B.AUTH_STATUS_NAME, C.CONTENT, 
67
--CASE 
68
--	WHEN BRU.BRANCH_TYPE = 'HS' THEN DP.DEP_NAME 
69
--	ELSE BRU.BRANCH_NAME 
70
--END AS BRANCH_NAME, -- ĐV sử dụng
71
BRU.BRANCH_NAME AS BRANCH_USE_NAME, -- ĐV sử dụng
72
G.ADDR as ASS_ADDR,
73
G.DIV_ID,G.DIV_CODE,G.DIV_NAME,E.CONTENT AS RET_STATUS, AST.TYPE_NAME AS ASSET_TYPE, ASG.GROUP_NAME AS ASS_GROUP,
74
AAS.STATUS_NAME AS ASSET_STATUS_NAME,
75
D.BRANCH_ID,
76
BRC.BRANCH_NAME AS BRANCH_CREATE_NAME, -- ĐV quản lý
77
TUM.TLFullName AS MAKER_NAME,
78
-----------BAODNQ 15/3/2022 Lấy thông tin xuất excel
79
C.CONTENT AS RET_TYPE_NAME, --loại BDS
80
UF.CONTENT AS USE_FORM_NAME, -- hình thức sử dụng
81
US.CONTENT AS USE_STATUS_NAME, --tình trạng sử dụng đất
82
CS.CONTENT AS CONST_STATUS_NAME, --tình trạng xây dựng
83
E.CONTENT AS RET_STATUS_NAME, --hiện trạng pháp lý gắn liền vs đất
84
OT.CONTENT AS OWNER_TYPE_NAME, -- loại sỡ hữu
85
----------BAODNQ 18/4/2022: Check điều kiện khi lấy thông tin tài sản-----
86
CASE
87
	WHEN A.ASSET_ID IS NULL OR A.ASSET_ID = '' THEN A.ASS_NAME
88
	ELSE D.ASSET_NAME
89
END AS ASSET_NAME,
90
CASE
91
	WHEN A.ASSET_ID IS NULL OR A.ASSET_ID = '' THEN A.DESCRIPTION
92
	ELSE D.ASSET_DESC
93
END AS ASSET_DESC,
94
CASE
95
	WHEN A.ASSET_ID IS NULL OR A.ASSET_ID = '' THEN A.ASSET_PRICE
96
	ELSE D.BUY_PRICE
97
END AS BUY_PRICE
98
-------------------------END BAODNQ---------------
99
-- SELECT END
100

    
101
FROM RET_MASTER A 
102
INNER JOIN CM_AUTH_STATUS B ON B.AUTH_STATUS = A.AUTH_STATUS
103
--INNER JOIN CM_ALLCODE C ON C.CDVAL = A.RET_TYPE AND C.CDNAME = 'RET_TYPE'AND C.CDTYPE = 'RET'
104
INNER JOIN CM_ALLCODE C ON C.CDVAL = A.RET_TYPE AND C.CDNAME = 'RET_TYPE_2'AND C.CDTYPE = 'RET'
105
INNER JOIN CM_ALLCODE E ON E.CDVAL = A.[STATUS] AND E.CDNAME = 'RET_STATUS' AND E.CDTYPE = 'RET'
106
LEFT JOIN ASS_MASTER D ON D.ASSET_ID = A.ASSET_ID
107
LEFT JOIN CM_DIVISION G ON G.DIV_ID=D.DIVISION_ID
108
LEFT JOIN CM_BRANCH BRC ON D.BRANCH_CREATE = BRC.BRANCH_ID -- ĐV quản lý
109
--LEFT JOIN CM_BRANCH BRU ON D.BRANCH_ID = BRU.BRANCH_ID -- ĐV sử dụng
110
LEFT JOIN CM_BRANCH BRU ON A.BRANCH_USE_ID = BRU.BRANCH_ID -- ĐV sử dụng
111
LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = D.DEPT_ID
112
--LEFT JOIN ASS_MASTER AMS ON A.ASSET_ID = AMS.ASSET_ID
113
LEFT JOIN ASS_TYPE AST ON D.TYPE_ID = AST.TYPE_ID
114
LEFT JOIN ASS_GROUP ASG ON D.GROUP_ID = ASG.GROUP_ID
115
LEFT JOIN ASS_AMORT_STATUS AAS ON D.AMORT_STATUS = AAS.STATUS_CODE
116
LEFT JOIN TL_USER TUM ON A.MAKER_ID = TUM.TLNANME
117
----------------------BAODNQ 15/3/2022: Lấy thông tin xuất excel-----
118
LEFT JOIN CM_ALLCODE UF ON A.USE_FORM = UF.CDVAL AND UF.CDNAME = 'USE_FORM' AND UF.CDTYPE = 'RET'
119
LEFT JOIN CM_ALLCODE US ON A.USE_STATUS = US.CDVAL AND US.CDNAME = 'USE_STATUS' AND US.CDTYPE = 'RET'
120
LEFT JOIN CM_ALLCODE CS ON A.CONST_STATUS = CS.CDVAL AND CS.CDNAME = 'CONST_STATUS' AND CS.CDTYPE = 'RET'
121
LEFT JOIN CM_ALLCODE OT ON A.OWNER_TYPE = OT.CDVAL AND OT.CDNAME = 'OWNER_TYPE' AND OT.CDTYPE = 'RET'
122

    
123

    
124
 WHERE 1 = 1
125
	AND (A.RET_ID LIKE '%' + @p_RET_ID + '%' OR  @p_RET_ID IS NULL OR @p_RET_ID = '')
126
	AND (A.ASSET_ID LIKE '%' + @p_ASSET_ID + '%' OR  @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
127
	--AND (A.ASSET_CODE LIKE '%' + @P_ASSET_CODE + '%' OR  @P_ASSET_CODE IS NULL OR @P_ASSET_CODE = '')
128
	AND (D.ASSET_CODE LIKE '%' + @P_ASSET_CODE + '%' OR  @P_ASSET_CODE IS NULL OR @P_ASSET_CODE = '')
129
	AND (A.OWNER LIKE '%' + @P_OWNER + '%' OR  @P_OWNER IS NULL OR @P_OWNER = '')
130
	AND (A.LENGTH = @p_LENGTH OR  @p_LENGTH IS NULL)
131
	AND (A.WIDTH = @p_WIDTH OR  @p_WIDTH IS NULL)
132
	AND (A.CURRENT_STATE LIKE '%' + @p_CURRENT_STATE + '%' OR  @p_CURRENT_STATE IS NULL OR @p_CURRENT_STATE = '')
133
	AND (A.RET_TYPE LIKE '%' + @p_RET_TYPE + '%' OR  @p_RET_TYPE IS NULL OR @p_RET_TYPE = '')
134
	AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR  @p_STATUS IS NULL OR @p_STATUS = '')
135
	AND (A.LAND_SQUARE = @p_LAND_SQUARE OR  @p_LAND_SQUARE IS NULL)
136
	AND (A.CONSTRUCT_SQUARE = @p_CONSTRUCT_SQUARE OR  @p_CONSTRUCT_SQUARE IS NULL)
137
	AND (A.TOTAL_SQUARE = @p_TOTAL_SQUARE OR  @p_TOTAL_SQUARE IS NULL)
138
	AND (A.BOUNDARY LIKE '%' + @p_BOUNDARY + '%' OR  @p_BOUNDARY IS NULL OR @p_BOUNDARY = '')
139
	AND (A.HOUSEDES LIKE '%' + @p_HOUSEDES + '%' OR  @p_HOUSEDES IS NULL OR @p_HOUSEDES = '')
140
	AND (A.PURPOSE_IN_USE LIKE '%' + @p_PURPOSE_IN_USE + '%' OR  @p_PURPOSE_IN_USE IS NULL OR @p_PURPOSE_IN_USE = '')
141
	AND (A.W_USE_CON LIKE '%' + @P_W_USE_CON + '%' OR  @P_W_USE_CON IS NULL OR @P_W_USE_CON = '')
142
	AND (A.USE_STATUS LIKE '%' + @p_USE_STATUS + '%' OR  @p_USE_STATUS IS NULL OR @p_USE_STATUS = '')
143
	AND (A.CONST_STATUS LIKE '%' + @p_CONST_STATUS + '%' OR  @p_CONST_STATUS IS NULL OR @p_CONST_STATUS = '')
144
	AND (A.OWNER_TYPE LIKE '%' + @p_OWNER_TYPE + '%' OR  @p_OWNER_TYPE IS NULL OR @p_OWNER_TYPE = '')
145
	AND (A.USE_PERIOD = @p_USE_PERIOD OR  @p_USE_PERIOD IS NULL)
146
	AND (A.PERSON_HOLDER LIKE '%' + @p_PERSON_HOLDER + '%' OR  @p_PERSON_HOLDER IS NULL OR @p_PERSON_HOLDER = '')
147
	AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
148
	AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
149
	AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
150
	AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
151
	AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
152
	AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
153
	AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
154
	AND (A.RECORD_STATUS = '1')
155
	AND (G.DIV_ID LIKE '%' + @P_DIV_ID + '%' OR @P_DIV_ID = '' OR @P_DIV_ID IS NULL)
156
	AND (G.DIV_CODE LIKE '%' + @P_DIV_CODE + '%' OR @P_DIV_CODE = '' OR @P_DIV_CODE IS NULL)
157
	AND (
158
			D.BRANCH_CREATE = @p_BRANCH_ID 
159
			OR A.BRANCH_CREATE = @p_BRANCH_ID
160
			OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = ''
161
		)
162
	--AND (A.BRANCH_CREATE = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
163
	AND (A.RET_FORM LIKE '%' + @p_RET_FORM + '%' OR @p_RET_FORM IS NULL OR @p_RET_FORM = '')
164
	AND (A.ADDR LIKE '%' + @p_ADDR + '%' OR @p_ADDR IS NULL OR @p_ADDR = '')
165
	AND (
166
			(@p_ASSET_STATUS = 'DTL' AND D.AMORT_STATUS LIKE '%' + @p_ASSET_STATUS + '%') 
167
			OR (@p_ASSET_STATUS = 'BT' AND D.AMORT_STATUS NOT LIKE '%DTL%')
168
			OR (@p_ASSET_STATUS IS NULL OR @p_ASSET_STATUS = '')
169
		)
170
	AND (
171
			(@p_RET_SEARCH_TYPE = 'IS_ASSET' AND A.ASSET_ID IS NOT NULL) -- Tìm kiếm BDS đã là tài sản NH
172
			OR (@p_RET_SEARCH_TYPE = 'NOT_ASSET' AND A.ASSET_ID IS NULL) -- Tìm kiếm BDS chưa là tài sản NH (đang hoàn thiện pháp lý)
173
			OR (@p_RET_SEARCH_TYPE IS NULL) -- Tìm toàn bộ
174
		)
175
	-------BAODNQ 16/2/2022: Thêm điều kiện search-------
176
		--AND	(A.MAKER_ID = @p_USER_LOGIN		---- user login là ng tạo
177
		--	OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- user login là cấp duyệt trung gian và đã gửi YC phê duyệt
178
		--	OR	(	
179
		--			--user login là trưởng ĐV và đã gửi YC phê duyệt
180
		--			(
181
		--				------user login là trưởng ĐV ở hội sở--------
182
		--				(
183
		--					EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE AND BRANCH_TYPE = 'HS')
184
		--					AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
185
		--						= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
186
		--				)
187
		--				------user login là trưởng ĐV ở CN/PGD
188
		--				OR
189
		--				(
190
		--					NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE AND BRANCH_TYPE = 'HS')
191
		--					AND A.BRANCH_CREATE = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
192
		--				)
193
		--			)
194
		--			AND A.IS_SEND_APPR = 'Y'
195
		--			AND	(
196
		--					ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
197
		--				)
198
			
199
		--		)
200
		--)
201

    
202
		-----------BAODNQ: NẾU Ở HỘI SỞ TÌM THẤY NHỮNG PHIẾU THEO PHÒNG BAN------------------
203
		----------------NẾU Ở DVKD TÌM THẤY PHIẾU THEO ĐƠN VỊ--------------------
204
		AND(
205
			A.BRANCH_CREATE = @p_BRANCH_LOGIN
206
			AND(
207
				(SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) = (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE)
208
					OR (SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_LOGIN) <> 'HS'
209
			)
210
		)
211

    
212
		ORDER BY A.CREATE_DT DESC
213
	
214
-- PAGING END
215
ELSE
216
-- PAGING BEGIN
217
SELECT TOP(CONVERT(INT,@P_TOP)) A.*, (CASE WHEN USE_PERIOD = 0 THEN N'Lâu dài' ELSE convert(varchar(100),USE_PERIOD_DT, 103) END) AS USE_PERIOD_NAME,
218
B.AUTH_STATUS_NAME, C.CONTENT, 
219
--CASE 
220
--	WHEN BRU.BRANCH_TYPE = 'HS' THEN DP.DEP_NAME 
221
--	ELSE BRU.BRANCH_NAME 
222
--END AS BRANCH_NAME, -- ĐV sử dụng
223
BRU.BRANCH_NAME AS BRANCH_USE_NAME, -- ĐV sử dụng
224
G.DIV_ID,G.DIV_CODE,G.DIV_NAME, E.CONTENT AS RET_STATUS,
225
 AAS.STATUS_NAME AS ASSET_STATUS_NAME,
226
D.BRANCH_ID,
227
BRC.BRANCH_NAME AS BRANCH_CREATE_NAME, -- ĐV quản lý
228
TUM.TLFullName AS MAKER_NAME,
229
 -----------BAODNQ 15/3/2022 Lấy thông tin xuất excel
230
C.CONTENT AS RET_TYPE_NAME, --loại BDS
231
UF.CONTENT AS USE_FORM_NAME, -- hình thức sử dụng
232
US.CONTENT AS USE_STATUS_NAME, --tình trạng sử dụng đất
233
CS.CONTENT AS CONST_STATUS_NAME, --tình trạng xây dựng
234
E.CONTENT AS RET_STATUS_NAME, --hiện trạng pháp lý gắn liền vs đất
235
OT.CONTENT AS OWNER_TYPE_NAME, -- loại sỡ hữu
236
----------BAODNQ 18/4/2022: Check điều kiện khi lấy thông tin tài sản-----
237
CASE
238
	WHEN A.ASSET_ID IS NULL OR A.ASSET_ID = '' THEN A.ASS_NAME
239
	ELSE D.ASSET_NAME
240
END AS ASSET_NAME,
241
CASE
242
	WHEN A.ASSET_ID IS NULL OR A.ASSET_ID = '' THEN A.DESCRIPTION
243
	ELSE D.ASSET_DESC
244
END AS ASSET_DESC,
245
CASE
246
	WHEN A.ASSET_ID IS NULL OR A.ASSET_ID = '' THEN A.ASSET_PRICE
247
	ELSE D.BUY_PRICE
248
END AS BUY_PRICE
249
-------------------------END BAODNQ---------------
250
 -- SELECT END
251
FROM RET_MASTER A 
252
INNER JOIN CM_AUTH_STATUS B ON B.AUTH_STATUS = A.AUTH_STATUS
253
--INNER JOIN CM_ALLCODE C ON C.CDVAL = A.RET_TYPE AND C.CDNAME = 'RET_TYPE'AND C.CDTYPE = 'RET'
254
INNER JOIN CM_ALLCODE C ON C.CDVAL = A.RET_TYPE AND C.CDNAME = 'RET_TYPE_2'AND C.CDTYPE = 'RET'
255
INNER JOIN CM_ALLCODE E ON E.CDVAL = A.[STATUS] AND E.CDNAME = 'RET_STATUS' AND E.CDTYPE = 'RET'
256
LEFT JOIN ASS_MASTER D ON D.ASSET_ID = A.ASSET_ID
257
LEFT JOIN CM_DIVISION G ON G.DIV_ID=D.DIVISION_ID
258
LEFT JOIN CM_BRANCH BRC ON D.BRANCH_CREATE = BRC.BRANCH_ID -- ĐV quản lý
259
--LEFT JOIN CM_BRANCH BRU ON D.BRANCH_ID = BRU.BRANCH_ID -- ĐV sử dụng
260
LEFT JOIN CM_BRANCH BRU ON A.BRANCH_USE_ID = BRU.BRANCH_ID -- ĐV sử dụng
261
LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = D.DEPT_ID
262
LEFT JOIN ASS_AMORT_STATUS AAS ON D.AMORT_STATUS = AAS.STATUS_CODE
263
LEFT JOIN TL_USER TUM ON A.MAKER_ID = TUM.TLNANME
264
----------------------BAODNQ 15/3/2022: Lấy thông tin xuất excel-----
265
LEFT JOIN CM_ALLCODE UF ON A.USE_FORM = UF.CDVAL AND UF.CDNAME = 'USE_FORM' AND UF.CDTYPE = 'RET'
266
LEFT JOIN CM_ALLCODE US ON A.USE_STATUS = US.CDVAL AND US.CDNAME = 'USE_STATUS' AND US.CDTYPE = 'RET'
267
LEFT JOIN CM_ALLCODE CS ON A.CONST_STATUS = CS.CDVAL AND CS.CDNAME = 'CONST_STATUS' AND CS.CDTYPE = 'RET'
268
LEFT JOIN CM_ALLCODE OT ON A.OWNER_TYPE = OT.CDVAL AND OT.CDNAME = 'OWNER_TYPE' AND OT.CDTYPE = 'RET'
269

    
270
 WHERE 1 = 1
271
	AND (A.RET_ID LIKE '%' + @p_RET_ID + '%' OR  @p_RET_ID IS NULL OR @p_RET_ID = '')
272
	AND (A.ASSET_ID LIKE '%' + @p_ASSET_ID + '%' OR  @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
273
	--AND (A.ASSET_CODE LIKE '%' + @P_ASSET_CODE + '%' OR  @P_ASSET_CODE IS NULL OR @P_ASSET_CODE = '')
274
	AND (D.ASSET_CODE LIKE '%' + @P_ASSET_CODE + '%' OR  @P_ASSET_CODE IS NULL OR @P_ASSET_CODE = '')
275
	AND (A.OWNER LIKE '%' + @P_OWNER + '%' OR  @P_OWNER IS NULL OR @P_OWNER = '')
276
	AND (A.LENGTH = @p_LENGTH OR  @p_LENGTH IS NULL)
277
	AND (A.WIDTH = @p_WIDTH OR  @p_WIDTH IS NULL)
278
	AND (A.CURRENT_STATE LIKE '%' + @p_CURRENT_STATE + '%' OR  @p_CURRENT_STATE IS NULL OR @p_CURRENT_STATE = '')
279
	AND (A.RET_TYPE LIKE '%' + @p_RET_TYPE + '%' OR  @p_RET_TYPE IS NULL OR @p_RET_TYPE = '')
280
	AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR  @p_STATUS IS NULL OR @p_STATUS = '')
281
	AND (A.LAND_SQUARE = @p_LAND_SQUARE OR  @p_LAND_SQUARE IS NULL)
282
	AND (A.CONSTRUCT_SQUARE = @p_CONSTRUCT_SQUARE OR  @p_CONSTRUCT_SQUARE IS NULL)
283
	AND (A.TOTAL_SQUARE = @p_TOTAL_SQUARE OR  @p_TOTAL_SQUARE IS NULL)
284
	AND (A.BOUNDARY LIKE '%' + @p_BOUNDARY + '%' OR  @p_BOUNDARY IS NULL OR @p_BOUNDARY = '')
285
	AND (A.HOUSEDES LIKE '%' + @p_HOUSEDES + '%' OR  @p_HOUSEDES IS NULL OR @p_HOUSEDES = '')
286
	AND (A.PURPOSE_IN_USE LIKE '%' + @p_PURPOSE_IN_USE + '%' OR  @p_PURPOSE_IN_USE IS NULL OR @p_PURPOSE_IN_USE = '')
287
	AND (A.W_USE_CON LIKE '%' + @P_W_USE_CON + '%' OR  @P_W_USE_CON IS NULL OR @P_W_USE_CON = '')
288
	AND (A.USE_STATUS LIKE '%' + @p_USE_STATUS + '%' OR  @p_USE_STATUS IS NULL OR @p_USE_STATUS = '')
289
	AND (A.CONST_STATUS LIKE '%' + @p_CONST_STATUS + '%' OR  @p_CONST_STATUS IS NULL OR @p_CONST_STATUS = '')
290
	AND (A.OWNER_TYPE LIKE '%' + @p_OWNER_TYPE + '%' OR  @p_OWNER_TYPE IS NULL OR @p_OWNER_TYPE = '')
291
	AND (A.USE_PERIOD = @p_USE_PERIOD OR  @p_USE_PERIOD IS NULL)
292
	AND (A.PERSON_HOLDER LIKE '%' + @p_PERSON_HOLDER + '%' OR  @p_PERSON_HOLDER IS NULL OR @p_PERSON_HOLDER = '')
293
	AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
294
	AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
295
	AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
296
	AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
297
	AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
298
	AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
299
	AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
300
	AND (A.RECORD_STATUS = '1')
301
	AND (G.DIV_ID LIKE '%' + @P_DIV_ID + '%' OR @P_DIV_ID = '' OR @P_DIV_ID IS NULL)
302
	AND (G.DIV_CODE LIKE '%' + @P_DIV_CODE + '%' OR @P_DIV_CODE = '' OR @P_DIV_CODE IS NULL)
303
	AND (
304
			D.BRANCH_CREATE = @p_BRANCH_ID 
305
			OR A.BRANCH_CREATE = @p_BRANCH_ID
306
			OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = ''
307
		)
308
	--AND (A.BRANCH_CREATE = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
309
	AND (A.RET_FORM LIKE '%' + @p_RET_FORM + '%' OR @p_RET_FORM IS NULL OR @p_RET_FORM = '')
310
	AND (A.ADDR LIKE '%' + @p_ADDR + '%' OR @p_ADDR IS NULL OR @p_ADDR = '')
311
	AND (
312
			(@p_ASSET_STATUS = 'DTL' AND D.AMORT_STATUS LIKE '%' + @p_ASSET_STATUS + '%') 
313
			OR (@p_ASSET_STATUS = 'BT' AND D.AMORT_STATUS NOT LIKE '%DTL%')
314
			OR (@p_ASSET_STATUS IS NULL OR @p_ASSET_STATUS = '')
315
		)
316
	AND (
317
			(@p_RET_SEARCH_TYPE = 'IS_ASSET' AND A.ASSET_ID IS NOT NULL) -- Tìm kiếm BDS đã là tài sản NH
318
			OR (@p_RET_SEARCH_TYPE = 'NOT_ASSET' AND A.ASSET_ID IS NULL) -- Tìm kiếm BDS chưa là tài sản NH (đang hoàn thiện pháp lý)
319
			OR (@p_RET_SEARCH_TYPE IS NULL) -- Tìm toàn bộ
320
		)
321
	-------BAODNQ 16/2/2022: Thêm điều kiện search-------
322
		--AND	(A.MAKER_ID = @p_USER_LOGIN		---- user login là ng tạo
323
		--	OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- user login là cấp duyệt trung gian và đã gửi YC phê duyệt
324
		--	OR	(
325
		--			((SELECT ROLE_NAME FROM @t_USER_LOGIN_ROLE_TABLE) IN('GDDV','PGD', 'TP', 'PP','TPGD','PPGD', 'TBP')) --- user login là trưởng ĐV và đã gửi YC phê duyệt
326
		--			AND A.IS_SEND_APPR = 'Y'
327
		--			AND	(
328
		--					ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
329
		--				)
330
			
331
		--		)
332
		--	)
333
		--AND	(A.MAKER_ID = @p_USER_LOGIN		---- user login là ng tạo
334
		--	OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- user login là cấp duyệt trung gian và đã gửi YC phê duyệt
335
		--	OR	(	
336
		--			--user login là trưởng ĐV và đã gửi YC phê duyệt
337
		--			(
338
		--				------user login là trưởng ĐV ở hội sở--------
339
		--				(
340
		--					EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE AND BRANCH_TYPE = 'HS')
341
		--					AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
342
		--						= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
343
		--				)
344
		--				------user login là trưởng ĐV ở CN/PGD
345
		--				OR 
346
		--				(
347
		--					NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE AND BRANCH_TYPE = 'HS')
348
		--					AND A.BRANCH_CREATE = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
349
		--				)
350
		--			)
351
		--			AND A.IS_SEND_APPR = 'Y'
352
		--			AND	(
353
		--					ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
354
		--				)
355
			
356
		--		)
357
		--)
358

    
359
		-----------BAODNQ: NẾU Ở HỘI SỞ TÌM THẤY NHỮNG PHIẾU THEO PHÒNG BAN------------------
360
		----------------NẾU Ở DVKD TÌM THẤY PHIẾU THEO ĐƠN VỊ--------------------
361
		AND(
362
			A.BRANCH_CREATE = @p_BRANCH_LOGIN
363
			AND(
364
				(SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) = (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE)
365
					OR (SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_LOGIN) <> 'HS'
366
			)
367
		)
368

    
369
		ORDER BY A.CREATE_DT DESC
370
-- PAGING END
371
END -- PAGING
372

    
373
GO
374

    
375

    
376
ALTER PROCEDURE [dbo].[RET_MASTER_SendAppr]
377
@p_RET_ID VARCHAR(15),
378
@p_USER_LOGIN VARCHAR(15),
379
@p_SEND_APPR_DT VARCHAR(20) = NULL
380

    
381
AS
382

    
383
IF(EXISTS (SELECT * FROM RET_MASTER WHERE RET_ID = @p_RET_ID AND IS_SEND_APPR = 'Y'))
384
BEGIN
385
	SELECT '-1' as Result, '' RET_ID, '' IS_SEND_APPR,
386
		N'Gửi phê duyệt thất bại. Thông tin bất động sản đã được gửi yêu cầu phê duyệt trước đó' ErrorDesc
387
	RETURN '-1'
388
END
389

    
390
BEGIN TRANSACTION
391
	
392
	UPDATE RET_MASTER SET 
393
		IS_SEND_APPR = 'Y', 
394
		SEND_APPR_DT = CONVERT(DATETIME, @p_SEND_APPR_DT, 103),
395
		SIGN_DT = NULL,
396
		AUTH_STATUS = 'U'
397
	WHERE RET_ID = @p_RET_ID
398
	IF @@ERROR <> 0 GOTO ABORT
399

    
400
	DECLARE @p_IS_SEND_APPR VARCHAR(15) = (SELECT IS_SEND_APPR FROM RET_MASTER WHERE RET_ID = @p_RET_ID)
401
	DECLARE @p_MESSAGE NVARCHAR(500)
402
	DECLARE @p_RET_NAME NVARCHAR(1000) = (
403
		SELECT
404
		CASE
405
			WHEN RM.ASSET_ID IS NULL OR RM.ASSET_ID = '' THEN RM.ASS_NAME
406
			ELSE AM.ASSET_NAME
407
		END
408
		FROM RET_MASTER RM
409
		LEFT JOIN ASS_MASTER AM ON RM.ASSET_ID = AM.ASSET_ID
410
		WHERE RM.RET_ID = @p_RET_ID
411
	)
412

    
413
	--------------------------TH gửi phê duyệt có cấp phê duyệt trung gian---------------
414
	IF(EXISTS(SELECT * FROM RET_MASTER WHERE RET_ID = @p_RET_ID AND SIGN_USER IS NOT NULL))
415
	BEGIN
416
		SET @p_MESSAGE = N'Thông tin bất động sản: '+@p_RET_NAME+
417
			N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.'
418
	END
419
	------------------TH gửi phê duyệt ko có cấp phê duyệt trung gian(gửi thẳng trưởng DV)--------------
420
	ELSE
421
	BEGIN
422
		SET @p_MESSAGE = N'Thông tin bất động sản: '+@p_RET_NAME+
423
			N' đã được gửi phê duyệt thành công. Vui lòng đợi trưởng đơn vị phê duyệt.'
424
	END
425

    
426
	--------BAODNQ 16/02/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
427
		INSERT INTO dbo.PL_PROCESS
428
				(
429
					REQ_ID,
430
					PROCESS_ID,
431
					CHECKER_ID,
432
					APPROVE_DT,
433
					PROCESS_DESC,
434
					NOTES
435
				)
436
				VALUES
437
				(	@p_RET_ID,       
438
					'SEND',
439
					@p_USER_LOGIN,        
440
					GETDATE(), 
441
					N'Người tạo gửi phê duyệt thành công' ,      
442
					N'Người tạo gửi phê duyệt'       
443
				)
444
		IF @@ERROR <> 0 GOTO ABORT
445

    
446
COMMIT TRANSACTION
447

    
448
SELECT '0' as Result, @p_RET_ID RET_ID,  @p_IS_SEND_APPR IS_SEND_APPR ,@p_MESSAGE ErrorDesc
449
RETURN '0'
450
ABORT:
451
BEGIN
452
		ROLLBACK TRANSACTION
453
		SELECT '-1' as Result, '' RET_ID, '' IS_SEND_APPR,'' ErrorDesc
454
		RETURN '-1'
455
End
456

    
457
GO
458

    
459

    
460
ALTER PROCEDURE [dbo].[RET_MASTER_Confirm]
461
@p_RET_ID VARCHAR(15),
462
@p_SIGN_USER VARCHAR(15),
463
@p_SIGN_DT VARCHAR(20) = NULL
464

    
465
AS
466

    
467
IF(EXISTS (SELECT * FROM RET_MASTER WHERE RET_ID = @p_RET_ID AND IS_SEND_APPR = 'Y' AND (SIGN_DT IS NOT NULL OR SIGN_DT <> '')))
468
BEGIN
469
	SELECT '-1' as Result, '' RET_ID,
470
		N'Xác nhận thất bại. Thông tin bất động sản đã được cấp trung gian xác nhận trước đó' ErrorDesc
471
	RETURN '-1'
472
END
473

    
474
IF(EXISTS (SELECT * FROM RET_MASTER WHERE RET_ID = @p_RET_ID AND AUTH_STATUS = 'R'))
475
BEGIN
476
	SELECT '-1' as Result, '' RET_ID,
477
		N'Xác nhận thất bại. Thông tin bất động sản đang bị trả về' ErrorDesc
478
	RETURN '-1'
479
END
480
IF(EXISTS(SELECT RET_ID FROM RET_MASTER WHERE RET_ID = @p_RET_ID AND AUTH_STATUS = 'E' AND IS_SEND_APPR = 'N'))
481
BEGIN
482
	SELECT '-1' as Result, '' RET_ID,
483
		N'Xác nhận thất bại. Thông tin bất động sản đang ở trạng thái lưu nháp. Vui lòng đợi người tạo gửi yêu cầu phê duyệt' ErrorDesc
484
	RETURN '-1'
485
END
486

    
487
BEGIN TRANSACTION
488

    
489
	--------------------------
490
	UPDATE RET_MASTER SET 
491
		AUTH_STATUS = 'U', 
492
		SIGN_DT = CONVERT(DATETIME, @p_SIGN_DT, 103)
493
	WHERE RET_ID = @p_RET_ID
494
	IF @@ERROR <> 0 GOTO ABORT
495

    
496

    
497
	DECLARE @p_RET_NAME NVARCHAR(1000) = (
498
		SELECT
499
		CASE
500
			WHEN RM.ASSET_ID IS NULL OR RM.ASSET_ID = '' THEN RM.ASS_NAME
501
			ELSE AM.ASSET_NAME
502
		END
503
		FROM RET_MASTER RM
504
		LEFT JOIN ASS_MASTER AM ON RM.ASSET_ID = AM.ASSET_ID
505
		WHERE RM.RET_ID = @p_RET_ID
506
	)
507

    
508
	DECLARE @p_MESSAGE NVARCHAR(500) = N' Thông tin bất động sản: ' +@p_RET_NAME+
509
			N' đã được xác nhận thành công. Vui lòng đợi trưởng đơn vị phê duyệt.'
510

    
511
	--------BAODNQ 16/02/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
512
		INSERT INTO dbo.PL_PROCESS
513
				(
514
					REQ_ID,
515
					PROCESS_ID,
516
					CHECKER_ID,
517
					APPROVE_DT,
518
					PROCESS_DESC,
519
					NOTES
520
				)
521
				VALUES
522
				(	@p_RET_ID,       
523
					'APPROVE',
524
					@p_SIGN_USER,        
525
					GETDATE(), 
526
					N'Cấp trung gian xác nhận thành công' ,      
527
					N'Cấp trung gian xác nhận'       
528
				)
529
		IF @@ERROR <> 0 GOTO ABORT
530

    
531
COMMIT TRANSACTION
532

    
533
SELECT '0' as Result, @p_RET_ID RET_ID, @p_MESSAGE ErrorDesc
534
RETURN '0'
535
ABORT:
536
BEGIN
537
		ROLLBACK TRANSACTION
538
		SELECT '-1' as Result, '' RET_ID,'' ErrorDesc
539
		RETURN '-1'
540
End
541

    
542

    
543
GO
544

    
545

    
546
ALTER PROCEDURE [dbo].[RET_MASTER_App]
547
@P_RET_ID VARCHAR(15),
548
@P_AUTH_STATUS VARCHAR(1),
549
@P_CHECKER_ID VARCHAR(12),
550
@p_APPROVE_DT VARCHAR(20) = NULL
551

    
552
AS
553
--Validation is here
554
DECLARE @ERRORSYS NVARCHAR(15) = '' 
555
IF ( NOT EXISTS ( SELECT * FROM RET_MASTER R WHERE R.RET_ID = @P_RET_ID))
556
	SET @ERRORSYS = 'RETM-00001'
557
IF @ERRORSYS <> '' 
558
	BEGIN
559
		SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
560
	RETURN '-1'
561
END
562

    
563
IF(EXISTS (SELECT * FROM RET_MASTER WHERE RET_ID = @P_RET_ID AND AUTH_STATUS = 'R'))
564
BEGIN
565
	SELECT '-1' as Result, 
566
		N'Phê duyệt thất bại. Thông tin bất động sản đang bị trả về' ErrorDesc
567
	RETURN '-1'
568
END
569

    
570
IF(EXISTS (SELECT * FROM RET_MASTER WHERE RET_ID = @P_RET_ID AND AUTH_STATUS = 'A'))
571
BEGIN
572
	SELECT '-1' as Result, 
573
		N'Phê duyệt thất bại. Thông tin bất động sản đã được phê duyệt' ErrorDesc
574
	RETURN '-1'
575
END
576
IF(EXISTS(SELECT RET_ID FROM RET_MASTER WHERE RET_ID = @P_RET_ID AND AUTH_STATUS = 'E' AND IS_SEND_APPR = 'N'))
577
BEGIN
578
	SELECT '-1' as Result, '' RET_ID,
579
		N'Phê duyệt thất bại. Thông tin bất động sản đang ở trạng thái lưu nháp. Vui lòng đợi người tạo gửi yêu cầu phê duyệt' ErrorDesc
580
	RETURN '-1'
581
END
582
IF(EXISTS(
583
	SELECT RET_ID FROM RET_MASTER WHERE RET_ID = @P_RET_ID AND IS_SEND_APPR = 'Y' AND AUTH_STATUS = 'U'
584
	AND (SIGN_USER IS NOT NULL AND SIGN_USER <> '') AND (SIGN_DT IS NULL OR SIGN_DT = '')
585
))
586
BEGIN
587
	SELECT '-1' as Result, '' RET_ID,
588
		N'Phê duyệt thất bại. Thông tin bất động sản đang chờ cấp phê duyệt trung gian xác nhận. Vui lòng đợi cấp phê duyệt trung gian xác nhận' ErrorDesc
589
	RETURN '-1'
590
END
591

    
592
BEGIN TRANSACTION
593
	DECLARE @p_ASSET_ID VARCHAR(15)
594
	SET @p_ASSET_ID = (SELECT ASSET_ID FROM RET_MASTER WHERE RET_ID = @P_RET_ID)
595

    
596
	UPDATE RET_MASTER SET AUTH_STATUS = @P_AUTH_STATUS, CHECKER_ID = @P_CHECKER_ID,
597
	APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
598
	WHERE RET_ID = @P_RET_ID	
599
	--THAY DOI LOAI TAI SAN LA 2
600
	UPDATE ASS_MASTER SET ASS_TYPE = '3' WHERE ASSET_ID = @p_ASSET_ID
601
	IF @@Error <> 0 GOTO ABORT
602

    
603
	--------BAODNQ 16/02/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
604
		INSERT INTO dbo.PL_PROCESS
605
				(
606
					REQ_ID,
607
					PROCESS_ID,
608
					CHECKER_ID,
609
					APPROVE_DT,
610
					PROCESS_DESC,
611
					NOTES
612
				)
613
				VALUES
614
				(	@p_RET_ID,       
615
					'APPROVE',
616
					@P_CHECKER_ID,        
617
					GETDATE(), 
618
					N'Trưởng đơn vị phê duyệt thành công' ,      
619
					N'Trưởng đơn vị phê duyệt'       
620
				)
621
		IF @@ERROR <> 0 GOTO ABORT
622

    
623
COMMIT TRANSACTION
624
SELECT '0' as Result, '' ErrorDesc
625
RETURN '0'
626
ABORT:
627
BEGIN
628
		ROLLBACK TRANSACTION
629
		SELECT '-1' as Result, '' ErrorDesc
630
		RETURN '-1'
631
End
632

    
633
GO
634

    
635

    
636
ALTER PROCEDURE [dbo].[RET_MASTER_Upd]
637
@p_RET_ID	varchar(15) = null ,
638
@p_ASSET_ID VARCHAR(100) = NULL,
639
@P_ASSET_CODE VARCHAR(100) = NULL,
640
@P_OWNER NVARCHAR(500) = NULL,
641
@p_LENGTH	DECIMAL(18,2) = NULL,
642
@p_WIDTH	DECIMAL(18,2) = NULL,
643
@p_FLOORS int = NULL,
644
@p_CURRENT_STATE	nvarchar(100)  = NULL,
645
@p_RET_TYPE	varchar(15)  = NULL,
646
@p_STATUS	varchar(15)  = NULL,
647
@p_LAND_SQUARE	DECIMAL(18,2)  = NULL,
648
@p_ADDR nvarchar(1000) = NULL, -- hungdv hieu chinh yeu cau anh toi 250520
649
@p_CONSTRUCT_SQUARE	DECIMAL(18,2)  = NULL,
650
@p_TOTAL_SQUARE	DECIMAL(18,2)  = NULL,
651
@p_BOUNDARY	nvarchar(100)  = NULL,
652
@p_HOUSEDES	nvarchar(100)  = NULL,
653
@p_PURPOSE_IN_USE	nvarchar(500)  = NULL,
654
@P_W_USE_CON NVARCHAR(100) = NULL,
655
@p_USE_STATUS	varchar(15)  = NULL,
656
@p_CONST_STATUS	varchar(15)  = NULL,
657
@p_OWNER_TYPE	varchar(15)  = NULL,
658
@p_USE_PERIOD	int  = NULL,
659
@p_PERSON_HOLDER	nvarchar(1000)  = NULL,
660
@p_REASON nvarchar(1000) = NULL,
661
@p_NOTES	nvarchar(1000)  = NULL,
662
@p_RECORD_STATUS	varchar(1)  = NULL,
663
@p_AUTH_STATUS	varchar(1)  = NULL,
664
@p_MAKER_ID	varchar(15)  = NULL,
665
@p_CREATE_DT	VARCHAR(20) = NULL,
666
@p_CHECKER_ID	varchar(15)  = NULL,
667
@p_APPROVE_DT	VARCHAR(20) = NULL,
668
@P_BUY_DT VARCHAR(20) = NULL,
669
@p_USE_FORM VARCHAR(1),
670
@p_USE_FORM_DETAIL nvarchar(MAX),
671
@p_USE_SOURCE nvarchar(MAX),
672
@p_USE_PERIOD_DT VARCHAR(20),
673
@p_OWNER_TYPE_DETAIL NVARCHAR(MAX),
674
@p_RET_SAVE_CODE VARCHAR(100),
675
@p_BRANCH_USE nvarchar(500),
676
@p_RET_TAX_SCHEDULE XML = NULL,
677
@p_RET_REPAIR_SUGGEST XML = NULL,
678
@p_RET_REPAIR_REAL XML = NULL,
679
@p_FLUCTUATING_DT varchar(20) = null,
680
@p_REASON_FLUCTUATING nvarchar(max) = null,
681
----------------BAODNQ 16/2/2022: Thêm cột vào bảng RET_MASTER---------
682
@p_IS_SEND_APPR VARCHAR(15) = NULL,
683
@p_SEND_APPR_DT VARCHAR(20) = NULL,
684
@p_SIGN_USER VARCHAR(15) = NULL,
685
@p_SIGN_DT VARCHAR(20) = NULL,
686
@p_RET_FORM VARCHAR(15) = NULL,
687
@p_BRANCH_USE_ID VARCHAR(15) = NULL,
688
@p_ASSET_NAME NVARCHAR(1000) = NULL,
689
@p_ASSET_DESC NVARCHAR(MAX) = NULL,
690
@p_BUY_PRICE DECIMAL(18,2) = NULL,
691
@p_BRANCH_CREATE VARCHAR(15) = NULL
692

    
693
AS
694
--Validation is here
695
	DECLARE @ERRORSYS NVARCHAR(15) = ''
696
 
697
	IF ( NOT EXISTS ( SELECT * FROM RET_MASTER WHERE RET_ID = @p_RET_ID))
698
		SET @ERRORSYS = 'RETM-00001'
699
	IF @ERRORSYS <> '' 
700
	BEGIN
701
		SELECT ErrorCode Result, ''  RET_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
702
		RETURN '0'
703
	END
704

    
705
	IF(EXISTS(SELECT * FROM RET_MASTER WHERE RET_ID = @p_RET_ID AND IS_SEND_APPR = 'Y' AND AUTH_STATUS = 'U'))
706
	BEGIN
707
		SELECT '-1' AS Result, ''  RET_ID, N'Không thể chỉnh sửa. Thông tin bất động sản đã được gửi yêu cầu phê duyệt' ErrorDesc 
708
		RETURN '-1'
709
	END
710

    
711
	DECLARE @p_RET_TAX_ROW_NO INT = 0,
712
			@p_RET_REPAIR_SUG_ROW_NO INT = 0,
713
			@p_RET_REPAIR_REAL_ROW_NO INT = 0
714

    
715
	Declare @hdoc INT
716
	Exec sp_xml_preparedocument @hdoc Output,@p_RET_TAX_SCHEDULE
717
	DECLARE RetTaxSchedule CURSOR FOR
718
	SELECT *
719
	FROM OPENXML(@hDoc,'/Root/RetTaxSchedule',2)
720
	WITH 
721
	(
722
				TAX_SCHEDULE_ID VARCHAR(15),
723
				REQ_PAY_ID VARCHAR(15),
724
				FRM_DATE varchar(30),
725
				TO_DATE varchar(30),
726
				TOTAL_AMT decimal
727
	)
728
	OPEN RetTaxSchedule
729

    
730
	Exec sp_xml_preparedocument @hdoc Output,@p_RET_REPAIR_SUGGEST
731
	DECLARE RetRepairSuggest CURSOR FOR
732
	SELECT *
733
	FROM OPENXML(@hDoc,'/Root/RetRepairSuggest',2)
734
	WITH 
735
	(
736
		RET_SUG_REPAIR_ID VARCHAR(15),
737
		REQ_ID	varchar(15),
738
		REPAIR_SUG_DT	varchar(30) ,		
739
		BRANCH_ID varchar(15) ,
740
		BRANCH_SUGGEST nvarchar(4000),
741
		TOTAL_AMT_REPAIR decimal(18,2),
742
		TOTAL_AMT_CONSTRUCT DECIMAL(18,2),
743
		USER_SUGGEST varchar(15),
744
		REPAIR_REASON nvarchar(4000),
745
		REPAIR_CONTENT	nvarchar(4000) 
746
	)
747
	OPEN RetRepairSuggest
748

    
749
	Exec sp_xml_preparedocument @hdoc Output,@p_RET_REPAIR_REAL
750
	DECLARE RetRepairReal CURSOR FOR
751
	SELECT *
752
	FROM OPENXML(@hDoc,'/Root/RetRepairReal',2)
753
	WITH 
754
	(
755
		RET_REPAIR_REAL_ID varchar(15),
756
		REQ_PAY_ID	varchar(15),
757
		REPAIR_DT	varchar(30) ,		
758
		BRANCH_REPAIR nvarchar(4000),
759
		TOTAL_AMT_REPAIR decimal(18,2),
760
		TOTAL_AMT_CONSTRUCT DECIMAL(18,2),
761
		REPAIR_CONTENT_REAL nvarchar(4000),
762
		NOTES	nvarchar(4000) 
763
	)
764
	OPEN RetRepairReal
765
BEGIN TRANSACTION
766

    
767
	IF(EXISTS (SELECT * FROM RET_MASTER WHERE RET_ID = @p_RET_ID AND AUTH_STATUS = 'A'))
768
	BEGIN
769
		--------------------CẬP NHẬT LẠI SAU KHI ĐÃ DUYỆT----------------
770
		SET @p_CHECKER_ID = NULL
771
		SET @p_APPROVE_DT = NULL
772
		SET @p_SEND_APPR_DT = NULL
773
		SET @p_SIGN_DT = NULL
774
	END
775

    
776
	UPDATE RET_MASTER
777
	SET [BUY_DT] = CONVERT(DATETIME, @P_BUY_DT, 103),
778
		[ASSET_ID] = @p_ASSET_ID,
779
		[ASSET_CODE] = @P_ASSET_CODE,
780
		[OWNER] = @P_OWNER,
781
		[LENGTH] = @p_LENGTH,
782
		[WIDTH] = @p_WIDTH,
783
		[FLOORS] = @p_FLOORS,
784
		[CURRENT_STATE] = @p_CURRENT_STATE,
785
		[RET_TYPE] = @p_RET_TYPE,
786
		[STATUS] = @p_STATUS,
787
		[LAND_SQUARE] = @p_LAND_SQUARE,
788
		[CONSTRUCT_SQUARE] = @p_CONSTRUCT_SQUARE,
789
		[TOTAL_SQUARE] = @p_TOTAL_SQUARE,
790
		[BOUNDARY] = @p_BOUNDARY,
791
		[HOUSEDES] = @p_HOUSEDES,
792
		[PURPOSE_IN_USE] = @p_PURPOSE_IN_USE,
793
		[W_USE_CON] = @P_W_USE_CON,
794
		[USE_STATUS] = @p_USE_STATUS,
795
		[CONST_STATUS] = @p_CONST_STATUS,
796
		[OWNER_TYPE] = @p_OWNER_TYPE,
797
		[USE_PERIOD] = @p_USE_PERIOD,
798
		[PERSON_HOLDER] = @p_PERSON_HOLDER,
799
		[NOTES] = @p_NOTES,
800
		[REASON] = @p_REASON,
801
		[RECORD_STATUS] = @p_RECORD_STATUS,
802
		[AUTH_STATUS] = @p_AUTH_STATUS,
803
		[MAKER_ID] = @p_MAKER_ID,
804
		[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),
805
		[CHECKER_ID] = @p_CHECKER_ID,
806
		[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),
807
		[USE_FORM] = @p_USE_FORM,
808
		[USE_FORM_DETAIL] = @p_USE_FORM_DETAIL,
809
		[USE_SOURCE] = @p_USE_SOURCE,
810
		[USE_PERIOD_DT] = CONVERT(DATETIME, @p_USE_PERIOD_DT, 103),
811
		[OWNER_TYPE_DETAIL] = @p_OWNER_TYPE_DETAIL,
812
		[RET_SAVE_CODE] = @p_RET_SAVE_CODE,
813
		[BRANCH_USE] = @p_BRANCH_USE,
814
		ADDR = @p_ADDR, -- hungdv hieu chinh yeu cau anh toi 250520
815
		[FLUCTUATING_DT] = CONVERT(DATETIME, @p_FLUCTUATING_DT, 103),
816
		[REASON_FLUCTUATING] = @p_REASON_FLUCTUATING,
817
		----------------BAODNQ 16/2/2022: Thêm cột vào bảng RET_MASTER---------
818
		[IS_SEND_APPR] = @p_IS_SEND_APPR,
819
		[SEND_APPR_DT] = CONVERT(DATETIME, @p_SEND_APPR_DT, 103),
820
		[SIGN_USER] = @p_SIGN_USER,
821
		[SIGN_DT] = CONVERT(DATETIME, @p_SIGN_DT, 103),
822
		[RET_FORM] = @p_RET_FORM,
823
		[BRANCH_USE_ID] = @p_BRANCH_USE_ID,
824
		[ASS_NAME] = @p_ASSET_NAME,
825
		[DESCRIPTION] = @p_ASSET_DESC,
826
		[ASSET_PRICE] = @p_BUY_PRICE,
827
		[BRANCH_CREATE] = @p_BRANCH_CREATE
828

    
829
	WHERE RET_ID = @p_RET_ID;
830
	IF @@Error <> 0 GOTO ABORT
831
		--UPDATE DETAIL 
832
		DECLARE
833
				@TAX_SCHEDULE_ID VARCHAR(15),
834
				@RET_SUG_REPAIR_ID VARCHAR(15), 
835
				@RET_REPAIR_REAL_ID varchar(15),
836
				@d_REQ_PAY_ID VARCHAR(15),
837
				@d_FRM_DATE varchar(30),
838
				@d_TO_DATE varchar(30),
839
				@d_TOTAL_AMT decimal,
840
				@RET_ID	varchar(15),
841
				@REQ_ID varchar(15),
842
				@REPAIR_SUG_DT varchar(30),
843
				@BRANCH_ID varchar(15),
844
				@REPAIR_DT varchar(20),
845
				@BRANCH_REPAIR nvarchar(4000),
846
				@REPAIR_CONTENT_REAL nvarchar(4000),
847
				@NOTES nvarchar(4000),
848
				@BRANCH_SUGGEST nvarchar(4000),
849
				@TOTAL_AMT decimal,
850
				@USER_SUGGEST varchar(15),
851
				@REPAIR_REASON nvarchar(4000),
852
				@REPAIR_CONTENT nvarchar(4000),
853
				@d_TOTAL_AMT_REPAIR DECIMAL(18,2),
854
				@d_TOTAL_AMT_CONSTRUCT DECIMAL(18,2)
855

    
856
		--UPDATE ACCESSORY DETAIL
857
		DELETE FROM RET_TAX_SCHEDULE WHERE RET_ID = @p_RET_ID
858
		FETCH NEXT FROM RetTaxSchedule INTO @TAX_SCHEDULE_ID, @d_REQ_PAY_ID,@d_FRM_DATE,@d_TO_DATE,@d_TOTAL_AMT
859
		WHILE @@FETCH_STATUS = 0
860
		BEGIN
861
			print LEN(@TAX_SCHEDULE_ID)
862
			SET @p_RET_TAX_ROW_NO = @p_RET_TAX_ROW_NO + 1
863

    
864
			---------------PDN thanh toán chặn---------------
865
			------TH KO CÓ PDN thanh toán------
866
			IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @d_REQ_PAY_ID))
867
			BEGIN
868
				ROLLBACK TRANSACTION
869
				SELECT '-1' as Result, '' RET_ID, 
870
				N'Lưới thông tin quản lý định kỳ thuế nhà đất, dòng ' + CONVERT(VARCHAR, @p_RET_TAX_ROW_NO) + 
871
				N'Phiếu đề nghị thanh toán không tồn tại trong hệ thống' ErrorDesc
872
				RETURN '-1'
873
			END
874
			---------TH PDN thanh toán CHƯA ĐƯỢC DUYỆT---------
875
			IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @d_REQ_PAY_ID AND AUTH_STATUS_KT = 'A'))
876
			BEGIN
877
				ROLLBACK TRANSACTION
878
				SELECT '-1' as Result, '' RET_ID, 
879
				N'Lưới thông tin quản lý định kỳ thuế nhà đất, dòng ' + CONVERT(VARCHAR, @p_RET_TAX_ROW_NO) +
880
				N'Phiếu đề nghị thanh toán chưa được duyệt' ErrorDesc
881
				RETURN '-1'
882
			END
883

    
884
			IF(CONVERT(DATETIME, @d_TO_DATE,103) <= CONVERT(DATETIME, @d_FRM_DATE, 103))
885
			BEGIN
886
				ROLLBACK TRANSACTION
887
				SELECT '-1' as Result, '' RET_ID, 
888
					N'Lưới thông tin quản lý định kỳ thuế nhà đất, dòng ' + CONVERT(VARCHAR, @p_RET_TAX_ROW_NO) + 
889
					N': Thời gian kết thúc đóng thuế phải lớn hơn thời gian bắt đầu đóng thuế' ErrorDesc
890
				RETURN '-1'
891
			END
892

    
893
			IF(LEN(@TAX_SCHEDULE_ID)  = 0)
894
			BEGIN
895
				EXEC SYS_CodeMasters_Gen 'RET_TAX_SCHEDULE', @TAX_SCHEDULE_ID out
896
				IF @TAX_SCHEDULE_ID ='' OR @TAX_SCHEDULE_ID IS NULL GOTO ABORT
897
			END
898
			PRINT @TAX_SCHEDULE_ID
899
			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])
900
			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  )
901
			IF @@ERROR <> '' GOTO ABORT
902
			FETCH NEXT FROM RetTaxSchedule INTO @TAX_SCHEDULE_ID, @d_REQ_PAY_ID,@d_FRM_DATE,@d_TO_DATE,@d_TOTAL_AMT
903
		END
904

    
905
		PRINT 'RetTaxSchedule'
906
		--UPDATE RetRepairSuggest
907
		DELETE FROM RET_REPAIR_SUGGEST WHERE RET_ID = @p_RET_ID
908
		FETCH NEXT FROM RetRepairSuggest INTO 
909
			@RET_SUG_REPAIR_ID,   
910
			@REQ_ID,@REPAIR_SUG_DT,
911
			@BRANCH_ID,
912
			@BRANCH_SUGGEST,
913
			@d_TOTAL_AMT_REPAIR,
914
			@d_TOTAL_AMT_CONSTRUCT,
915
			@USER_SUGGEST,
916
			@REPAIR_REASON,
917
			@REPAIR_CONTENT
918
		WHILE @@FETCH_STATUS = 0
919
		BEGIN
920
			SET @p_RET_REPAIR_SUG_ROW_NO = @p_RET_REPAIR_SUG_ROW_NO + 1
921

    
922
			---------------TTCT chặn---------------
923
			------TH KO CÓ TTCT------
924
			IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID = @REQ_ID))
925
			BEGIN
926
				ROLLBACK TRANSACTION
927
				SELECT '-1' as Result, '' RET_ID, 
928
				N'Lưới thông tin sửa chữa dự kiến, dòng ' +CONVERT(VARCHAR, @p_RET_REPAIR_SUG_ROW_NO)+
929
				N'Tờ trình chủ trương không tồn tại trong hệ thống' ErrorDesc
930
				RETURN '-1'
931
			END
932
			---------TH TTCT CHƯA ĐƯỢC DUYỆT---------
933
			IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID = @REQ_ID AND PROCESS_ID = 'APPROVE'))
934
			BEGIN
935
				ROLLBACK TRANSACTION
936
				SELECT '-1' as Result, '' RET_ID, 
937
				N'Lưới thông tin sửa chữa dự kiến, dòng ' +CONVERT(VARCHAR, @p_RET_REPAIR_SUG_ROW_NO)+
938
				N'Tờ trình chủ trương chưa được duyệt' ErrorDesc
939
				RETURN '-1'
940
			END
941

    
942

    
943
			DECLARE @l_RET_SUG_REPAIR_ID  VARCHAR(15)
944
			IF LEN(@RET_SUG_REPAIR_ID ) = 0
945
			BEGIN
946
				EXEC SYS_CodeMasters_Gen 'RET_REPAIR_SUGGEST', @RET_SUG_REPAIR_ID out
947
				PRINT @RET_SUG_REPAIR_ID
948
				IF @RET_SUG_REPAIR_ID ='' OR @RET_SUG_REPAIR_ID IS NULL GOTO ABORT
949
			END
950
			
951
			INSERT INTO RET_REPAIR_SUGGEST
952
				([RET_SUG_REPAIR_ID],[RET_ID],[REQ_ID],[REPAIR_SUG_DT],[BRANCH_ID],[BRANCH_SUGGEST],
953
				[TOTAL_AMT_REPAIR],[TOTAL_AMT_CONSTRUCT],[USER_SUGGEST],[REPAIR_REASON],[REPAIR_CONTENT],[AUTH_STATUS],[RECORD_STATUS],
954
				[MAKER_ID])
955
			VALUES
956
				(@RET_SUG_REPAIR_ID,@p_RET_ID ,@REQ_ID ,CONVERT(DATETIME, @REPAIR_SUG_DT, 103) ,@BRANCH_ID  ,
957
				@BRANCH_SUGGEST,@d_TOTAL_AMT_REPAIR,@d_TOTAL_AMT_CONSTRUCT,@USER_SUGGEST,@REPAIR_REASON,@REPAIR_CONTENT ,@p_AUTH_STATUS  ,
958
				@p_RECORD_STATUS ,@p_MAKER_ID  )
959
			IF @@ERROR <> '' GOTO ABORT
960
			FETCH NEXT FROM RetRepairSuggest INTO 
961
				@RET_SUG_REPAIR_ID, 
962
				@REQ_ID,
963
				@REPAIR_SUG_DT,
964
				@BRANCH_ID,
965
				@BRANCH_SUGGEST,
966
				@d_TOTAL_AMT_REPAIR,
967
				@d_TOTAL_AMT_CONSTRUCT,
968
				@USER_SUGGEST,
969
				@REPAIR_REASON,
970
				@REPAIR_CONTENT
971
		END
972
		
973
		--UPDATE RetRepairReal
974
		DELETE FROM RET_REPAIR_REAL WHERE RET_ID = @p_RET_ID
975
		FETCH NEXT FROM RetRepairReal INTO 
976
			@RET_REPAIR_REAL_ID, 
977
			@d_REQ_PAY_ID,
978
			@REPAIR_DT,
979
			@BRANCH_REPAIR,
980
			@d_TOTAL_AMT_REPAIR,
981
			@d_TOTAL_AMT_CONSTRUCT,
982
			@REPAIR_CONTENT_REAL,
983
			@NOTES
984
		WHILE @@FETCH_STATUS = 0
985
		BEGIN
986
			SET @p_RET_REPAIR_REAL_ROW_NO = @p_RET_REPAIR_REAL_ROW_NO + 1
987

    
988
			---------------PDN thanh toán chặn---------------
989
			------TH KO CÓ PDN thanh toán------
990
			IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @d_REQ_PAY_ID))
991
			BEGIN
992
				ROLLBACK TRANSACTION
993
				SELECT '-1' as Result, '' RET_ID, 
994
				N'Lưới thông tin sửa chữa thực tế, dòng ' +CONVERT(VARCHAR, @p_RET_REPAIR_REAL_ROW_NO)+
995
				N'Phiếu đề nghị thanh toán không tồn tại trong hệ thống' ErrorDesc
996
				RETURN '-1'
997
			END
998
			---------TH PDN thanh toán CHƯA ĐƯỢC DUYỆT---------
999
			IF(NOT EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @d_REQ_PAY_ID AND AUTH_STATUS_KT = 'A'))
1000
			BEGIN
1001
				ROLLBACK TRANSACTION
1002
				SELECT '-1' as Result, '' RET_ID, 
1003
				N'Lưới thông tin sửa chữa thực tế, dòng ' +CONVERT(VARCHAR, @p_RET_REPAIR_REAL_ROW_NO)+
1004
				N'Phiếu đề nghị thanh toán chưa được duyệt' ErrorDesc
1005
				RETURN '-1'
1006
			END
1007

    
1008
			DECLARE @l_RET_REPAIR_REAL_ID  VARCHAR(15)
1009
			IF LEN(@RET_REPAIR_REAL_ID ) = 0
1010
			BEGIN
1011
				EXEC SYS_CodeMasters_Gen 'RET_REPAIR_REAL', @RET_REPAIR_REAL_ID out
1012
				PRINT @RET_REPAIR_REAL_ID
1013
				IF @RET_REPAIR_REAL_ID ='' OR @RET_REPAIR_REAL_ID IS NULL GOTO ABORT
1014
			END
1015
			
1016
			INSERT INTO RET_REPAIR_REAL
1017
				([RET_REPAIR_REAL_ID],[RET_ID],[REQ_PAY_ID],[REPAIR_DT],[BRANCH_REPAIR],[TOTAL_AMT_REPAIR],
1018
				[TOTAL_AMT_CONSTRUCT],[REPAIR_CONTENT_REAL],[NOTES] ,  [AUTH_STATUS],[RECORD_STATUS],[MAKER_ID])
1019
			VALUES
1020
				(@RET_REPAIR_REAL_ID,@p_RET_ID,@d_REQ_PAY_ID  ,CONVERT(DATETIME, @REPAIR_DT, 103) ,
1021
				@BRANCH_REPAIR ,@d_TOTAL_AMT_REPAIR,@d_TOTAL_AMT_CONSTRUCT,@REPAIR_CONTENT_REAL,@NOTES ,@p_AUTH_STATUS  ,@p_RECORD_STATUS ,
1022
				@p_MAKER_ID  )
1023
			IF @@ERROR <> '' GOTO ABORT
1024
			FETCH NEXT FROM RetRepairReal INTO 
1025
				@RET_REPAIR_REAL_ID, 
1026
				@d_REQ_PAY_ID,
1027
				@REPAIR_DT,
1028
				@BRANCH_REPAIR,
1029
				@d_TOTAL_AMT_REPAIR,
1030
				@d_TOTAL_AMT_CONSTRUCT,
1031
				@REPAIR_CONTENT_REAL,
1032
				@NOTES
1033
		END
1034

    
1035
		CLOSE RetTaxSchedule
1036
		DEALLOCATE RetTaxSchedule
1037
		CLOSE RetRepairSuggest
1038
		DEALLOCATE RetRepairSuggest
1039
		CLOSE RetRepairReal
1040
		DEALLOCATE RetRepairReal
1041

    
1042

    
1043
		---------------BAODNQ : TH NGƯỜI TẠO CẬP NHẬT NHIỀU LẦN THÌ CHỈ LƯU LỊCH SỬ XỬ LÝ CẬP NHẬT GẦN NHẤT----------------
1044
		IF((SELECT TOP 1 PROCESS_ID FROM PL_PROCESS WHERE REQ_ID = @p_RET_ID ORDER BY APPROVE_DT DESC) = 'UPDATE')
1045
		BEGIN
1046
			WITH RESULT AS(
1047
				SELECT TOP 1 * FROM PL_PROCESS WHERE REQ_ID = @p_RET_ID
1048
				ORDER BY APPROVE_DT DESC
1049
			)
1050
			DELETE FROM RESULT
1051
		END
1052

    
1053
		--------BAODNQ 16/02/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
1054
		INSERT INTO dbo.PL_PROCESS
1055
				(
1056
					REQ_ID,
1057
					PROCESS_ID,
1058
					CHECKER_ID,
1059
					APPROVE_DT,
1060
					PROCESS_DESC,
1061
					NOTES
1062
				)
1063
				VALUES
1064
				(	@p_RET_ID,       
1065
					'UPDATE',
1066
					@p_MAKER_ID,        
1067
					GETDATE(), 
1068
					N'Cập nhật thông tin bất động sản thành công' ,      
1069
					N'Cập nhật thông tin bất động sản'       
1070
				)
1071
		IF @@ERROR <> 0 GOTO ABORT
1072

    
1073
		---------BAODNQ 15/3/2022: Lấy tên BDS-----
1074
		DECLARE @p_RET_NAME NVARCHAR(MAX) =(
1075
			SELECT  B.ASSET_NAME
1076
			FROM RET_MASTER A
1077
			LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
1078
			WHERE A.RET_ID = @p_RET_ID
1079
		)
1080

    
1081
COMMIT TRANSACTION
1082
		SELECT '0' as Result, @p_RET_ID  RET_ID, @p_RET_NAME RET_NAME,'' ErrorDesc
1083
		RETURN '0'
1084
ABORT:
1085
BEGIN
1086
		CLOSE RetTaxSchedule
1087
		DEALLOCATE RetTaxSchedule
1088
		CLOSE RetRepairSuggest
1089
		DEALLOCATE RetRepairSuggest
1090
		CLOSE RetRepairReal
1091
		DEALLOCATE RetRepairReal
1092
		ROLLBACK TRANSACTION
1093
		SELECT '-1' as Result, '' RET_ID, '' RET_NAME,'' ErrorDesc
1094
		RETURN '-1'
1095
End
1096

    
1097

    
1098