Project

General

Profile

1.0 TIM KIEM BĐS.txt

Luc Tran Van, 04/02/2022 09:16 AM

 
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 = 10,
34
------------------BAODNQ 16/2/2022: Thêm tham số------------
35
@p_USER_LOGIN VARCHAR(15)
36

    
37
AS
38
	--Validation is here
39
/*
40
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
41
	IF ( [NOT] EXISTS ( SELECT * FROM [TABLE] WHERE  [CONDITION] ))
42
		 SET @ERRORSYS = ''
43
	IF @ERRORSYS <> '' 
44
	BEGIN
45
		SELECT ErrorCode Result, ''  CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
46
		RETURN '0'
47
	END */
48

    
49
BEGIN -- PAGING
50

    
51
DECLARE @p_USER_LOGIN_ROLE VARCHAR(50) = (SELECT RoleName FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
52

    
53
IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
54
-- PAGING BEGIN
55
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, D.ASSET_NAME, D.BRANCH_ID, 
56
CASE WHEN BR.BRANCH_TYPE = 'HS' THEN DP.DEP_NAME ELSE BR.BRANCH_NAME END AS BRANCH_NAME, 
57
G.ADDR as ASS_ADDR,
58
D.BUY_PRICE,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,
59
-----------BAODNQ 15/3/2022 Lấy thông tin xuất excel
60
C.CONTENT AS RET_TYPE_NAME, --loại BDS
61
UF.CONTENT AS USE_FORM_NAME, -- hình thức sử dụng
62
US.CONTENT AS USE_STATUS_NAME, --tình trạng sử dụng đất
63
CS.CONTENT AS CONST_STATUS_NAME, --tình trạng xây dựng
64
E.CONTENT AS RET_STATUS_NAME, --hiện trạng pháp lý gắn liền vs đất
65
OT.CONTENT AS OWNER_TYPE_NAME -- loại sỡ hữu
66
-- SELECT END
67

    
68
FROM RET_MASTER A 
69
INNER JOIN CM_AUTH_STATUS B ON B.AUTH_STATUS = A.AUTH_STATUS
70
INNER JOIN CM_ALLCODE C ON C.CDVAL = A.RET_TYPE AND C.CDNAME = 'RET_TYPE'AND C.CDTYPE = 'RET'
71
INNER JOIN CM_ALLCODE E ON E.CDVAL = A.[STATUS] AND E.CDNAME = 'RET_STATUS' AND E.CDTYPE = 'RET'
72
INNER JOIN ASS_MASTER D ON D.ASSET_ID = A.ASSET_ID
73
LEFT JOIN CM_DIVISION G ON G.DIV_ID=D.DIVISION_ID
74
--LEFT JOIN CM_BRANCH BR ON D.BRANCH_CREATE = BR.BRANCH_ID
75
LEFT JOIN CM_BRANCH BR ON D.BRANCH_ID = BR.BRANCH_ID
76
LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = D.DEPT_ID
77
LEFT JOIN ASS_MASTER AMS ON A.ASSET_ID = AMS.ASSET_ID
78
LEFT JOIN ASS_TYPE AST ON AMS.TYPE_ID = AST.TYPE_ID
79
LEFT JOIN ASS_GROUP ASG ON AMS.GROUP_ID = ASG.GROUP_ID
80
----------------------BAODNQ 15/3/2022: Lấy thông tin xuất excel-----
81
LEFT JOIN CM_ALLCODE UF ON A.USE_FORM = UF.CDVAL AND UF.CDNAME = 'USE_FORM' AND UF.CDTYPE = 'RET'
82
LEFT JOIN CM_ALLCODE US ON A.USE_STATUS = US.CDVAL AND US.CDNAME = 'USE_STATUS' AND US.CDTYPE = 'RET'
83
LEFT JOIN CM_ALLCODE CS ON A.CONST_STATUS = CS.CDVAL AND CS.CDNAME = 'CONST_STATUS' AND CS.CDTYPE = 'RET'
84
LEFT JOIN CM_ALLCODE OT ON A.OWNER_TYPE = OT.CDVAL AND OT.CDNAME = 'OWNER_TYPE' AND OT.CDTYPE = 'RET'
85

    
86

    
87
 WHERE 1 = 1
88
	AND (A.RET_ID LIKE '%' + @p_RET_ID + '%' OR  @p_RET_ID IS NULL OR @p_RET_ID = '')
89
	AND (A.ASSET_ID LIKE '%' + @p_ASSET_ID + '%' OR  @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
90
	AND (A.ASSET_CODE LIKE '%' + @P_ASSET_CODE + '%' OR  @P_ASSET_CODE IS NULL OR @P_ASSET_CODE = '')
91
	AND (A.OWNER LIKE '%' + @P_OWNER + '%' OR  @P_OWNER IS NULL OR @P_OWNER = '')
92
	AND (A.LENGTH = @p_LENGTH OR  @p_LENGTH IS NULL)
93
	AND (A.WIDTH = @p_WIDTH OR  @p_WIDTH IS NULL)
94
	AND (A.CURRENT_STATE LIKE '%' + @p_CURRENT_STATE + '%' OR  @p_CURRENT_STATE IS NULL OR @p_CURRENT_STATE = '')
95
	AND (A.RET_TYPE LIKE '%' + @p_RET_TYPE + '%' OR  @p_RET_TYPE IS NULL OR @p_RET_TYPE = '')
96
	AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR  @p_STATUS IS NULL OR @p_STATUS = '')
97
	AND (A.LAND_SQUARE = @p_LAND_SQUARE OR  @p_LAND_SQUARE IS NULL)
98
	AND (A.CONSTRUCT_SQUARE = @p_CONSTRUCT_SQUARE OR  @p_CONSTRUCT_SQUARE IS NULL)
99
	AND (A.TOTAL_SQUARE = @p_TOTAL_SQUARE OR  @p_TOTAL_SQUARE IS NULL)
100
	AND (A.BOUNDARY LIKE '%' + @p_BOUNDARY + '%' OR  @p_BOUNDARY IS NULL OR @p_BOUNDARY = '')
101
	AND (A.HOUSEDES LIKE '%' + @p_HOUSEDES + '%' OR  @p_HOUSEDES IS NULL OR @p_HOUSEDES = '')
102
	AND (A.PURPOSE_IN_USE LIKE '%' + @p_PURPOSE_IN_USE + '%' OR  @p_PURPOSE_IN_USE IS NULL OR @p_PURPOSE_IN_USE = '')
103
	AND (A.W_USE_CON LIKE '%' + @P_W_USE_CON + '%' OR  @P_W_USE_CON IS NULL OR @P_W_USE_CON = '')
104
	AND (A.USE_STATUS LIKE '%' + @p_USE_STATUS + '%' OR  @p_USE_STATUS IS NULL OR @p_USE_STATUS = '')
105
	AND (A.CONST_STATUS LIKE '%' + @p_CONST_STATUS + '%' OR  @p_CONST_STATUS IS NULL OR @p_CONST_STATUS = '')
106
	AND (A.OWNER_TYPE LIKE '%' + @p_OWNER_TYPE + '%' OR  @p_OWNER_TYPE IS NULL OR @p_OWNER_TYPE = '')
107
	AND (A.USE_PERIOD = @p_USE_PERIOD OR  @p_USE_PERIOD IS NULL)
108
	AND (A.PERSON_HOLDER LIKE '%' + @p_PERSON_HOLDER + '%' OR  @p_PERSON_HOLDER IS NULL OR @p_PERSON_HOLDER = '')
109
	AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
110
	AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
111
	AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
112
	AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
113
	AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
114
	AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
115
	AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
116
	AND (A.RECORD_STATUS = '1')
117
	AND (G.DIV_ID LIKE '%' + @P_DIV_ID + '%' OR @P_DIV_ID = '' OR @P_DIV_ID IS NULL)
118
	AND (G.DIV_CODE LIKE '%' + @P_DIV_CODE + '%' OR @P_DIV_CODE = '' OR @P_DIV_CODE IS NULL)
119
	-------BAODNQ 16/2/2022: Thêm điều kiện search-------
120
		AND	(A.MAKER_ID = @p_USER_LOGIN		---- user login là ng tạo
121
			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
122
			OR	((@p_USER_LOGIN_ROLE IN('GDDV','PGD', 'TP', 'PP','TPGD','PPGD', 'TBP','PP')) --- user login là trưởng ĐV và đã gửi YC phê duyệt
123
				AND A.IS_SEND_APPR = 'Y'
124
				AND	(
125
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
126
					)
127
			
128
				)
129
			)
130
	
131
-- PAGING END
132
ELSE
133
-- PAGING BEGIN
134
SELECT TOP(CONVERT(INT,@P_TOP)) A.*, B.AUTH_STATUS_NAME, C.CONTENT, D.ASSET_NAME, D.BRANCH_ID, 
135
CASE WHEN BR.BRANCH_TYPE = 'HS' THEN DP.DEP_NAME ELSE BR.BRANCH_NAME END AS BRANCH_NAME, 
136
 D.BUY_PRICE,G.DIV_ID,G.DIV_CODE,G.DIV_NAME, E.CONTENT AS RET_STATUS,
137
 -----------BAODNQ 15/3/2022 Lấy thông tin xuất excel
138
C.CONTENT AS RET_TYPE_NAME, --loại BDS
139
UF.CONTENT AS USE_FORM_NAME, -- hình thức sử dụng
140
US.CONTENT AS USE_STATUS_NAME, --tình trạng sử dụng đất
141
CS.CONTENT AS CONST_STATUS_NAME, --tình trạng xây dựng
142
E.CONTENT AS RET_STATUS_NAME, --hiện trạng pháp lý gắn liền vs đất
143
OT.CONTENT AS OWNER_TYPE_NAME -- loại sỡ hữu
144
 -- SELECT END
145
FROM RET_MASTER A 
146
INNER JOIN CM_AUTH_STATUS B ON B.AUTH_STATUS = A.AUTH_STATUS
147
INNER JOIN CM_ALLCODE C ON C.CDVAL = A.RET_TYPE AND C.CDNAME = 'RET_TYPE'AND C.CDTYPE = 'RET'
148
INNER JOIN CM_ALLCODE E ON E.CDVAL = A.[STATUS] AND E.CDNAME = 'RET_STATUS' AND E.CDTYPE = 'RET'
149
INNER JOIN ASS_MASTER D ON D.ASSET_ID = A.ASSET_ID
150
LEFT JOIN CM_DIVISION G ON G.DIV_ID=D.DIVISION_ID
151
--LEFT JOIN CM_BRANCH BR ON D.BRANCH_CREATE = BR.BRANCH_ID
152
LEFT JOIN CM_BRANCH BR ON D.BRANCH_ID = BR.BRANCH_ID
153
LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = D.DEPT_ID
154
----------------------BAODNQ 15/3/2022: Lấy thông tin xuất excel-----
155
LEFT JOIN CM_ALLCODE UF ON A.USE_FORM = UF.CDVAL AND UF.CDNAME = 'USE_FORM' AND UF.CDTYPE = 'RET'
156
LEFT JOIN CM_ALLCODE US ON A.USE_STATUS = US.CDVAL AND US.CDNAME = 'USE_STATUS' AND US.CDTYPE = 'RET'
157
LEFT JOIN CM_ALLCODE CS ON A.CONST_STATUS = CS.CDVAL AND CS.CDNAME = 'CONST_STATUS' AND CS.CDTYPE = 'RET'
158
LEFT JOIN CM_ALLCODE OT ON A.OWNER_TYPE = OT.CDVAL AND OT.CDNAME = 'OWNER_TYPE' AND OT.CDTYPE = 'RET'
159

    
160
 WHERE 1 = 1
161
	AND (A.RET_ID LIKE '%' + @p_RET_ID + '%' OR  @p_RET_ID IS NULL OR @p_RET_ID = '')
162
	AND (A.ASSET_ID LIKE '%' + @p_ASSET_ID + '%' OR  @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
163
	AND (A.ASSET_CODE LIKE '%' + @P_ASSET_CODE + '%' OR  @P_ASSET_CODE IS NULL OR @P_ASSET_CODE = '')
164
	AND (A.OWNER LIKE '%' + @P_OWNER + '%' OR  @P_OWNER IS NULL OR @P_OWNER = '')
165
	AND (A.LENGTH = @p_LENGTH OR  @p_LENGTH IS NULL)
166
	AND (A.WIDTH = @p_WIDTH OR  @p_WIDTH IS NULL)
167
	AND (A.CURRENT_STATE LIKE '%' + @p_CURRENT_STATE + '%' OR  @p_CURRENT_STATE IS NULL OR @p_CURRENT_STATE = '')
168
	AND (A.RET_TYPE LIKE '%' + @p_RET_TYPE + '%' OR  @p_RET_TYPE IS NULL OR @p_RET_TYPE = '')
169
	AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR  @p_STATUS IS NULL OR @p_STATUS = '')
170
	AND (A.LAND_SQUARE = @p_LAND_SQUARE OR  @p_LAND_SQUARE IS NULL)
171
	AND (A.CONSTRUCT_SQUARE = @p_CONSTRUCT_SQUARE OR  @p_CONSTRUCT_SQUARE IS NULL)
172
	AND (A.TOTAL_SQUARE = @p_TOTAL_SQUARE OR  @p_TOTAL_SQUARE IS NULL)
173
	AND (A.BOUNDARY LIKE '%' + @p_BOUNDARY + '%' OR  @p_BOUNDARY IS NULL OR @p_BOUNDARY = '')
174
	AND (A.HOUSEDES LIKE '%' + @p_HOUSEDES + '%' OR  @p_HOUSEDES IS NULL OR @p_HOUSEDES = '')
175
	AND (A.PURPOSE_IN_USE LIKE '%' + @p_PURPOSE_IN_USE + '%' OR  @p_PURPOSE_IN_USE IS NULL OR @p_PURPOSE_IN_USE = '')
176
	AND (A.W_USE_CON LIKE '%' + @P_W_USE_CON + '%' OR  @P_W_USE_CON IS NULL OR @P_W_USE_CON = '')
177
	AND (A.USE_STATUS LIKE '%' + @p_USE_STATUS + '%' OR  @p_USE_STATUS IS NULL OR @p_USE_STATUS = '')
178
	AND (A.CONST_STATUS LIKE '%' + @p_CONST_STATUS + '%' OR  @p_CONST_STATUS IS NULL OR @p_CONST_STATUS = '')
179
	AND (A.OWNER_TYPE LIKE '%' + @p_OWNER_TYPE + '%' OR  @p_OWNER_TYPE IS NULL OR @p_OWNER_TYPE = '')
180
	AND (A.USE_PERIOD = @p_USE_PERIOD OR  @p_USE_PERIOD IS NULL)
181
	AND (A.PERSON_HOLDER LIKE '%' + @p_PERSON_HOLDER + '%' OR  @p_PERSON_HOLDER IS NULL OR @p_PERSON_HOLDER = '')
182
	AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
183
	AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
184
	AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
185
	AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
186
	AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
187
	AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
188
	AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
189
	AND (A.RECORD_STATUS = '1')
190
	AND (G.DIV_ID LIKE '%' + @P_DIV_ID + '%' OR @P_DIV_ID = '' OR @P_DIV_ID IS NULL)
191
	AND (G.DIV_CODE LIKE '%' + @P_DIV_CODE + '%' OR @P_DIV_CODE = '' OR @P_DIV_CODE IS NULL)
192
	-------BAODNQ 16/2/2022: Thêm điều kiện search-------
193
		AND	(A.MAKER_ID = @p_USER_LOGIN		---- user login là ng tạo
194
			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
195
			OR	((@p_USER_LOGIN_ROLE IN('GDDV','PGD', 'TP', 'PP','TPGD','PPGD', 'TBP','PP')) --- user login là trưởng ĐV và đã gửi YC phê duyệt
196
				AND A.IS_SEND_APPR = 'Y'
197
				AND	(
198
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
199
					)
200
			
201
				)
202
			)
203
-- PAGING END
204
END -- PAGING
205