Project

General

Profile

serach_HD.txt

Luc Tran Van, 02/03/2023 02:14 PM

 
1
-- PROCEDURE NAME: TR_CONTRACT_Search
2

    
3
DECLARE @p_CONSTRACT_CODE varchar(50) = NULL,
4
@p_CONTRACT_ID varchar(15) = NULL,
5
@p_CONSTRACT_TYPE varchar(1) = NULL,
6
@p_CONSTRACT_NAME nvarchar(200) = NULL,
7
@p_BID_ID varchar(15) = NULL,
8
@p_BID_CODE varchar(15) = NULL,
9
@p_SUP_ID varchar(15) = NULL,
10
@p_SUP_CODE varchar(15) = NULL,
11
@P_SIGN_DT varchar(20) = NULL,
12
@P_CREATE_DT varchar(50) = NULL,
13
@p_AUTH_STATUS varchar(1) = N'A',
14
@P_CONSTRUCT_ID varchar(15) = NULL,
15
@P_CONSTRUCT_CODE varchar(15) = NULL,
16
@P_START_DT varchar(20) = NULL,
17
@P_END_DT varchar(20) = NULL,
18
@P_CONTRACT_PARENT varchar(15) = NULL,
19
@p_REQUEST_ID varchar(15) = NULL,
20
@P_TOP int = NULL,
21
@p_PYC_CODE varchar(125) = NULL,
22
@p_PYC_NAME nvarchar(250) = NULL,
23
@p_TTCT_CODE varchar(25) = NULL,
24
@p_TTCT_NAME nvarchar(250) = NULL,
25
@p_HH_TYPE_CODE varchar(25) = NULL,
26
@p_HH_TYPE_NAME nvarchar(250) = NULL,
27
@p_CUST_ID varchar(15) = NULL,
28
@p_CONT_TYPE varchar(150) = N'NT,MS',
29
@p_BRANCH_ID varchar(15) = NULL,
30
@p_BRANCH_LOGIN varchar(15) = N'DV0001',
31
@p_LEVEL varchar(15) = N'UNIT',
32
@p_MAKER_ID varchar(15) = NULL,
33
@p_CONTRACT_STATUS varchar(1) = NULL,
34
@p_REQ_DOC_ID varchar(15) = NULL,
35
@p_USER_LOGIN varchar(15) = NULL,
36
@p_DEP_LOGIN varchar(15) = N'DEP000000000014'
37

    
38
	--set @p_MAKER_ID = TRIM(@p_MAKER_ID)
39
	--SET @p_LEVEL='ALL'
40

    
41
	IF(@p_LEVEL IS NULL OR @p_LEVEL = '')
42
	BEGIN
43
		SET @p_LEVEL = 'ALL'
44
	END
45

    
46
	-----------BAODNQ 13/9/2022 : Nếu phòng ban đăng nhập là phòng KT, set LEVEL = ALL------
47
	IF(@p_DEP_LOGIN = 'DEP000000000022')
48
	BEGIN
49
		SET @p_LEVEL = 'ALL'
50
	END
51

    
52
	----------BAODNQ 20/10/2022 : HOT FIX TẠM THỜI-----------------
53
	IF(@P_CONSTRUCT_CODE = 'Y')
54
	BEGIN
55
		SET @p_LEVEL = 'ALL'
56
	END
57

    
58
	SET @P_TOP =2000
59
	declare @tmp table(BRANCH_ID varchar(15))
60
	insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
61
	--- KHAI BAO TABLE SPLIT CHUOI 
62
	DECLARE @l_LST_CONTYPE TABLE ([ID] [int] IDENTITY(1,1) NOT NULL,[VALUE] [NVARCHAR](MAX) NULL)
63
	INSERT INTO @l_LST_CONTYPE SELECT VALUE FROM WSISPLIT(@p_CONT_TYPE,',')
64
	--- LUCTV 7.11.2022 BO SUNG AUTO TIM THAY HĐ DVMS
65
	INSERT INTO @l_LST_CONTYPE VALUES ('MS_DV')
66
	--- END LUCTV 7.11.2022
67

    
68
	DECLARE @t_CONTRACT_PAYMENT TABLE(
69
	REF_ID VARCHAR(15), TOTAL_AMT_PAY DECIMAL(18,0), TRN_TYPE VARCHAR(20))
70

    
71
INSERT INTO @t_CONTRACT_PAYMENT
72
	SELECT REF_ID, ISNULL(SUM(AMT_PAY_REAL),0) AS TOTAL_AMT_PAY, TRN_TYPE
73
	FROM TR_REQ_PAY_SCHEDULE
74
	WHERE AUTH_STATUS_KT = 'A'
75
	GROUP BY TRN_TYPE, REF_ID
76

    
77
DECLARE @t_USER_LOGIN_ROLE_TABLE TABLE 
78
	(BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15), ROLE_ID VARCHAR(20))
79
INSERT INTO @t_USER_LOGIN_ROLE_TABLE(BRANCH_ID, DEPT_ID, ROLE_ID)
80
	SELECT * FROM [dbo].[TL_USER_GET_ROLES](@p_USER_LOGIN)
81

    
82
IF(@p_CONSTRACT_TYPE = '2')
83
	IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
84
	-- PAGING BEGIN
85
BEGIN
86
SELECT COUNT(*) -- SELECT END
87
		FROM TR_CONTRACT A
88
		LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID
89
		LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID
90
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
91
		LEFT JOIN BID_MASTER E ON E.BID_ID = A.BID_ID
92
		LEFT JOIN CON_MASTER F ON F.CONSTRUCT_ID = E.PROJECT_ID
93
		LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT'
94
		LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID
95
		LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID
96
		LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID
97
		LEFT JOIN TL_USER TU ON A.MAKER_ID = TU.TLNANME
98
		LEFT JOIN TL_USER TA ON A.CHECKER_ID = TA.TLNANME
99

    
100
		WHERE 1=1
101
		AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '')
102
		AND (F.CONSTRUCT_ID like '%'+@P_CONSTRUCT_ID+'%' OR @P_CONSTRUCT_ID IS NULL OR @P_CONSTRUCT_ID like '')
103
	    AND (F.CONSTRUCT_CODE like '%'+@P_CONSTRUCT_CODE+'%' OR @P_CONSTRUCT_CODE IS NULL OR @P_CONSTRUCT_CODE like '')
104
		AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '')
105
		AND (A.CONTRACT_ID like '%'+@p_CONTRACT_ID+'%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID like '')
106
		AND (A.[CONTRACT_NAME] like '%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '')
107
		AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '')
108
		AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '')
109
		AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '')
110
		AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '')
111
		AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '')
112
		AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='')
113
		AND (DATEDIFF(DAY,A.START_DT,CONVERT(DATETIME, @P_START_DT, 103)) = 0 OR @P_START_DT IS NULL OR @P_START_DT='')
114
		AND (DATEDIFF(DAY,A.END_DT,CONVERT(DATETIME, @P_END_DT, 103)) = 0 OR @P_END_DT IS NULL OR @P_END_DT='')
115
		AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '')
116
		AND (A.CONTRACT_TYPE like '%'+@p_CONSTRACT_TYPE +'%' OR @p_CONSTRACT_TYPE IS NULL OR @p_CONSTRACT_TYPE like '')
117
		AND (A.CONTRACT_PARENT like '%'+@P_CONTRACT_PARENT+'%' OR @P_CONTRACT_PARENT IS NULL OR @P_CONTRACT_PARENT like '')
118
		AND A.RECORD_STATUS = '1'
119
		AND (A.REQUEST_ID LIKE '%' + @p_REQUEST_ID + '%' OR  @p_REQUEST_ID IS NULL OR @p_REQUEST_ID = '')
120
		AND(EXISTS(SELECT HH_ID FROM CM_HANGHOA HH LEFT JOIN CM_HANGHOA_TYPE HT ON HH.HH_TYPE_ID=HT.HH_TYPE_ID WHERE 
121
		 (HT.HH_TYPE_CODE LIKE '%' + @p_HH_TYPE_CODE + '%' OR @p_HH_TYPE_CODE = '' OR @p_HH_TYPE_CODE IS NULL)
122
		AND (HT.HH_TYPE_NAME LIKE N'%' + @p_HH_TYPE_NAME + '%' OR @p_HH_TYPE_NAME = '' OR @p_HH_TYPE_NAME IS NULL) AND HH.HH_ID=PT.GOODS_ID))
123
		AND (A.CUST_ID =@p_CUST_ID OR @p_CUST_ID IS NULL OR @p_CUST_ID ='')
124
		AND (A.CONT_TYPE IN (SELECT VALUE FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL)
125
		AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
126
		OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL
127
		--AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID)
128
		AND (A.BRANCH_ID =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
129
		--------------BAODNQ 13/9/2022 : TẠM THỜI COMMENT PHẦN USER_LOGIN-----------
130
		--AND(
131
		--	A.MAKER_ID = @p_USER_LOGIN
132
		--	OR(
133
		--		------user login là trưởng ĐV ở hội sở--------
134
		--			(
135
		--				EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
136
		--				AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
137
		--					= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
138
		--			)
139
		--			------user login là trưởng ĐV ở CN/PGD
140
		--			OR
141
		--			(
142
		--				NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
143
		--				AND A.BRANCH_ID = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
144
		--			)
145
		--			AND (A.AUTH_STATUS <> 'E' AND A.AUTH_STATUS <> 'R')
146
		--	)
147
		--	OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''
148
		--)
149
	)
150
	
151
	;WITH QUERY_DATA AS ( 
152
		SELECT A.*,B.SUP_CODE,C.BID_CODE, B.SUP_NAME, B.TEL AS SUP_TEL, B.CONTACT_PERSON AS SUP_CONTACT_PERSON,
153
		 D.AUTH_STATUS_NAME,F.CONSTRUCT_CODE,F.CONSTRUCT_ID,
154
		ISNULL((SELECT SUM(TR_PO.TOTAL_AMT) FROM TR_PO_MASTER TR_PO WHERE TR_PO.CONTRACT_ID = A.CONTRACT_ID),0) AS DONE_AMT,'' AS SO_PYC, '' AS TEN_PYC,
155
		'' AS SO_TT_CT, '' AS TEN_TT_CT, A.CREATE_DT   AS NGAY_NHAN_TT, A.CREATE_DT  AS NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME,
156
		'' AS NCC_ADDR, B.TAX_NO,'' AS HH_TYPE_CODE,'' AS HH_TYPE_NAME,CA.CONTENT AS CONT_TYPE_NAME, LS.CUSTOMER_NAME AS  CUST_NAME, LS.CUSTOMER_CODE AS CUST_CODE,
157
		BR.BRANCH_CODE, BR.BRANCH_NAME, '' AS TO_TRINH_ID,B.ACC_NUM,B.ACC_NAME,B.BANK_NAME,B.ACC_NAME_OUT,B.ACC_NUM_OUT,B.BANK_NAME_OUT,
158
		0.0 AS TOTAL_ADV_AMT, ---Số tiền đã tạm ứng
159
		0.0 AS TOTAL_PAY_AMT, --Số tiền đã thanh toán,
160
		0.0 AS TOTAL_REMAIN_AMT,
161
		'' AS IS_FLAG_END, TU.TLFullName AS MAKER_NAME, TA.TLFullName AS CHECKER_NAME,
162
		---------BAODNQ 16/5/2022: Lấy thêm cột-------
163
		CASE
164
			WHEN A.ADDRESS IS NOT NULL OR A.ADDRESS <> '' THEN A.ADDRESS
165
			ELSE B.ADDR
166
		END
167
		AS ADDR
168
		--A.ADDRESS AS ADDR
169
		, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
170
) AS __ROWNUM-- SELECT END
171
		FROM TR_CONTRACT A
172
		LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID
173
		LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID
174
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
175
		LEFT JOIN BID_MASTER E ON E.BID_ID = A.BID_ID
176
		LEFT JOIN CON_MASTER F ON F.CONSTRUCT_ID = E.PROJECT_ID
177
		LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT'
178
		LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID
179
		LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID
180
		LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID
181
		LEFT JOIN TL_USER TU ON A.MAKER_ID = TU.TLNANME
182
		LEFT JOIN TL_USER TA ON A.CHECKER_ID = TA.TLNANME
183

    
184
		WHERE 1=1
185
		AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '')
186
		AND (F.CONSTRUCT_ID like '%'+@P_CONSTRUCT_ID+'%' OR @P_CONSTRUCT_ID IS NULL OR @P_CONSTRUCT_ID like '')
187
	    AND (F.CONSTRUCT_CODE like '%'+@P_CONSTRUCT_CODE+'%' OR @P_CONSTRUCT_CODE IS NULL OR @P_CONSTRUCT_CODE like '')
188
		AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '')
189
		AND (A.CONTRACT_ID like '%'+@p_CONTRACT_ID+'%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID like '')
190
		AND (A.[CONTRACT_NAME] like '%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '')
191
		AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '')
192
		AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '')
193
		AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '')
194
		AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '')
195
		AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '')
196
		AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='')
197
		AND (DATEDIFF(DAY,A.START_DT,CONVERT(DATETIME, @P_START_DT, 103)) = 0 OR @P_START_DT IS NULL OR @P_START_DT='')
198
		AND (DATEDIFF(DAY,A.END_DT,CONVERT(DATETIME, @P_END_DT, 103)) = 0 OR @P_END_DT IS NULL OR @P_END_DT='')
199
		AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '')
200
		AND (A.CONTRACT_TYPE like '%'+@p_CONSTRACT_TYPE +'%' OR @p_CONSTRACT_TYPE IS NULL OR @p_CONSTRACT_TYPE like '')
201
		AND (A.CONTRACT_PARENT like '%'+@P_CONTRACT_PARENT+'%' OR @P_CONTRACT_PARENT IS NULL OR @P_CONTRACT_PARENT like '')
202
		AND A.RECORD_STATUS = '1'
203
		AND (A.REQUEST_ID LIKE '%' + @p_REQUEST_ID + '%' OR  @p_REQUEST_ID IS NULL OR @p_REQUEST_ID = '')
204
		AND(EXISTS(SELECT HH_ID FROM CM_HANGHOA HH LEFT JOIN CM_HANGHOA_TYPE HT ON HH.HH_TYPE_ID=HT.HH_TYPE_ID WHERE 
205
		 (HT.HH_TYPE_CODE LIKE '%' + @p_HH_TYPE_CODE + '%' OR @p_HH_TYPE_CODE = '' OR @p_HH_TYPE_CODE IS NULL)
206
		AND (HT.HH_TYPE_NAME LIKE N'%' + @p_HH_TYPE_NAME + '%' OR @p_HH_TYPE_NAME = '' OR @p_HH_TYPE_NAME IS NULL) AND HH.HH_ID=PT.GOODS_ID))
207
		AND (A.CUST_ID =@p_CUST_ID OR @p_CUST_ID IS NULL OR @p_CUST_ID ='')
208
		AND (A.CONT_TYPE IN (SELECT VALUE FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL)
209
		AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
210
		OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL
211
		--AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID)
212
		AND (A.BRANCH_ID =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
213
		--------------BAODNQ 13/9/2022 : TẠM THỜI COMMENT PHẦN USER_LOGIN-----------
214
		--AND(
215
		--	A.MAKER_ID = @p_USER_LOGIN
216
		--	OR(
217
		--		------user login là trưởng ĐV ở hội sở--------
218
		--			(
219
		--				EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
220
		--				AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
221
		--					= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
222
		--			)
223
		--			------user login là trưởng ĐV ở CN/PGD
224
		--			OR
225
		--			(
226
		--				NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
227
		--				AND A.BRANCH_ID = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
228
		--			)
229
		--			AND (A.AUTH_STATUS <> 'E' AND A.AUTH_STATUS <> 'R')
230
		--	)
231
		--	OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''
232
		--)
233
	)
234
	
235
	) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
236
END-- PAGING END
237
   ELSE
238
    -- PAGING BEGIN
239
BEGIN
240
SELECT COUNT(*) FROM(
241
		SELECT TOP(CONVERT(INT,@P_TOP)) A.*,B.SUP_CODE,C.BID_CODE, B.SUP_NAME, B.TEL AS SUP_TEL,
242
		 B.CONTACT_PERSON AS SUP_CONTACT_PERSON, D.AUTH_STATUS_NAME,F.CONSTRUCT_CODE,F.CONSTRUCT_ID,
243
		ISNULL((SELECT SUM(TR_PO.TOTAL_AMT) FROM TR_PO_MASTER TR_PO WHERE TR_PO.CONTRACT_ID = A.CONTRACT_ID),0) AS DONE_AMT,'' AS TEN_PYC,
244
		'' AS SO_TT_CT, A.CREATE_DT   AS NGAY_NHAN_TT, '' AS TEN_TT_CT, A.CREATE_DT  AS NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,B.TAX_NO,
245
		CA.CONTENT AS CONT_TYPE_NAME,'' AS HH_TYPE_CODE,'' AS HH_TYPE_NAME, LS.CUSTOMER_NAME AS CUST_NAME, LS.CUSTOMER_CODE AS CUST_CODE,BR.BRANCH_CODE, BR.BRANCH_NAME,'' AS TO_TRINH_ID,
246
		B.ACC_NUM,B.ACC_NAME,B.BANK_NAME,B.ACC_NAME_OUT,B.ACC_NUM_OUT,B.BANK_NAME_OUT,0.0 AS TOTAL_ADV_AMT, 0.0 AS TOTAL_PAY_AMT,'' AS IS_FLAG_END,
247
		TU.TLFullName AS MAKER_NAME, TA.TLFullName AS CHECKER_NAME,
248
		---------BAODNQ 16/5/2022: Lấy thêm cột-------
249
		CASE
250
			WHEN A.ADDRESS IS NOT NULL OR A.ADDRESS <> '' THEN A.ADDRESS
251
			ELSE B.ADDR
252
		END
253
		AS ADDR
254
		--A.ADDRESS AS ADDR
255
		-- SELECT END
256
		FROM TR_CONTRACT A
257
		LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID
258
		LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID
259
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
260
		LEFT JOIN BID_MASTER E ON E.BID_ID = A.BID_ID
261
		LEFT JOIN CON_MASTER F ON F.CONSTRUCT_ID = E.PROJECT_ID
262
		LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT'
263
		LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID
264
		LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID
265
		LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID
266
		LEFT JOIN TL_USER TU ON A.MAKER_ID = TU.TLNANME
267
		LEFT JOIN TL_USER TA ON A.CHECKER_ID = TA.TLNANME
268

    
269
		WHERE 1=1
270
		AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '')
271
		AND (F.CONSTRUCT_ID like '%'+@P_CONSTRUCT_ID+'%' OR @P_CONSTRUCT_ID IS NULL OR @P_CONSTRUCT_ID like '')
272
	    AND (F.CONSTRUCT_CODE like '%'+@P_CONSTRUCT_CODE+'%' OR @P_CONSTRUCT_CODE IS NULL OR @P_CONSTRUCT_CODE like '')
273
		AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '')
274
		AND (A.CONTRACT_ID like '%'+@p_CONTRACT_ID+'%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID like '')
275
		AND (A.[CONTRACT_NAME] like '%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '')
276
		AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '')
277
		AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '')
278
		AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '')
279
		AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '')
280
		AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '')
281
		AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='')
282
		AND (DATEDIFF(DAY,A.START_DT,CONVERT(DATETIME, @P_START_DT, 103)) = 0 OR @P_START_DT IS NULL OR @P_START_DT='')
283
		AND (DATEDIFF(DAY,A.END_DT,CONVERT(DATETIME, @P_END_DT, 103)) = 0 OR @P_END_DT IS NULL OR @P_END_DT='')
284
		AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '')
285
		AND (A.CONTRACT_TYPE like '%'+@p_CONSTRACT_TYPE +'%' OR @p_CONSTRACT_TYPE IS NULL OR @p_CONSTRACT_TYPE like '')
286
		AND (A.CONTRACT_PARENT like '%'+@P_CONTRACT_PARENT+'%' OR @P_CONTRACT_PARENT IS NULL OR @P_CONTRACT_PARENT like '')
287
		AND A.RECORD_STATUS = '1'
288
		AND (A.REQUEST_ID LIKE '%' + @p_REQUEST_ID + '%' OR  @p_REQUEST_ID IS NULL OR @p_REQUEST_ID = '')
289
		AND(EXISTS(SELECT HH_ID FROM CM_HANGHOA HH LEFT JOIN CM_HANGHOA_TYPE HT ON HH.HH_TYPE_ID=HT.HH_TYPE_ID WHERE 
290
		 (HT.HH_TYPE_CODE LIKE '%' + @p_HH_TYPE_CODE + '%' OR @p_HH_TYPE_CODE = '' OR @p_HH_TYPE_CODE IS NULL)
291
		AND (HT.HH_TYPE_NAME LIKE N'%' + @p_HH_TYPE_NAME + '%' OR @p_HH_TYPE_NAME = '' OR @p_HH_TYPE_NAME IS NULL) AND HH.HH_ID=PT.GOODS_ID))
292
		AND (A.CUST_ID =@p_CUST_ID OR @p_CUST_ID IS NULL OR @p_CUST_ID ='')
293
		--AND (A.CONT_TYPE =@p_CONT_TYPE OR (@p_CONT_TYPE IS NULL OR @p_CONT_TYPE =''))
294
		AND (A.CONT_TYPE IN (SELECT VALUE FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL)
295
		AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
296
		OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL)
297
		--AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID)
298
		AND (A.BRANCH_ID =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
299
		--------------BAODNQ 13/9/2022 : TẠM THỜI COMMENT PHẦN USER_LOGIN-----------
300
		--AND(
301
		--	A.MAKER_ID = @p_USER_LOGIN
302
		--	OR(
303
		--		------user login là trưởng ĐV ở hội sở--------
304
		--			(
305
		--				EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
306
		--				AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
307
		--					= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
308
		--			)
309
		--			------user login là trưởng ĐV ở CN/PGD
310
		--			OR
311
		--			(
312
		--				NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
313
		--				AND A.BRANCH_ID = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
314
		--			)
315
		--			AND (A.AUTH_STATUS <> 'E' AND A.AUTH_STATUS <> 'R')
316
		--	)
317
		--	OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''
318
		--)
319
		ORDER BY  A.CREATE_DT DESC
320
		) COUNTER_TOP;WITH QUERY_DATA AS ( 
321
		SELECT TOP(CONVERT(INT,@P_TOP)) A.*,B.SUP_CODE,C.BID_CODE, B.SUP_NAME, B.TEL AS SUP_TEL,
322
		 B.CONTACT_PERSON AS SUP_CONTACT_PERSON, D.AUTH_STATUS_NAME,F.CONSTRUCT_CODE,F.CONSTRUCT_ID,
323
		ISNULL((SELECT SUM(TR_PO.TOTAL_AMT) FROM TR_PO_MASTER TR_PO WHERE TR_PO.CONTRACT_ID = A.CONTRACT_ID),0) AS DONE_AMT,'' AS TEN_PYC,
324
		'' AS SO_TT_CT, A.CREATE_DT   AS NGAY_NHAN_TT, '' AS TEN_TT_CT, A.CREATE_DT  AS NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,B.TAX_NO,
325
		CA.CONTENT AS CONT_TYPE_NAME,'' AS HH_TYPE_CODE,'' AS HH_TYPE_NAME, LS.CUSTOMER_NAME AS CUST_NAME, LS.CUSTOMER_CODE AS CUST_CODE,BR.BRANCH_CODE, BR.BRANCH_NAME,'' AS TO_TRINH_ID,
326
		B.ACC_NUM,B.ACC_NAME,B.BANK_NAME,B.ACC_NAME_OUT,B.ACC_NUM_OUT,B.BANK_NAME_OUT,0.0 AS TOTAL_ADV_AMT, 0.0 AS TOTAL_PAY_AMT,'' AS IS_FLAG_END,
327
		TU.TLFullName AS MAKER_NAME, TA.TLFullName AS CHECKER_NAME,
328
		---------BAODNQ 16/5/2022: Lấy thêm cột-------
329
		CASE
330
			WHEN A.ADDRESS IS NOT NULL OR A.ADDRESS <> '' THEN A.ADDRESS
331
			ELSE B.ADDR
332
		END
333
		AS ADDR
334
		--A.ADDRESS AS ADDR
335
		, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
336
) AS __ROWNUM-- SELECT END
337
		FROM TR_CONTRACT A
338
		LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID
339
		LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID
340
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
341
		LEFT JOIN BID_MASTER E ON E.BID_ID = A.BID_ID
342
		LEFT JOIN CON_MASTER F ON F.CONSTRUCT_ID = E.PROJECT_ID
343
		LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT'
344
		LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID
345
		LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID
346
		LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID
347
		LEFT JOIN TL_USER TU ON A.MAKER_ID = TU.TLNANME
348
		LEFT JOIN TL_USER TA ON A.CHECKER_ID = TA.TLNANME
349

    
350
		WHERE 1=1
351
		AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '')
352
		AND (F.CONSTRUCT_ID like '%'+@P_CONSTRUCT_ID+'%' OR @P_CONSTRUCT_ID IS NULL OR @P_CONSTRUCT_ID like '')
353
	    AND (F.CONSTRUCT_CODE like '%'+@P_CONSTRUCT_CODE+'%' OR @P_CONSTRUCT_CODE IS NULL OR @P_CONSTRUCT_CODE like '')
354
		AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '')
355
		AND (A.CONTRACT_ID like '%'+@p_CONTRACT_ID+'%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID like '')
356
		AND (A.[CONTRACT_NAME] like '%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '')
357
		AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '')
358
		AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '')
359
		AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '')
360
		AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '')
361
		AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '')
362
		AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='')
363
		AND (DATEDIFF(DAY,A.START_DT,CONVERT(DATETIME, @P_START_DT, 103)) = 0 OR @P_START_DT IS NULL OR @P_START_DT='')
364
		AND (DATEDIFF(DAY,A.END_DT,CONVERT(DATETIME, @P_END_DT, 103)) = 0 OR @P_END_DT IS NULL OR @P_END_DT='')
365
		AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '')
366
		AND (A.CONTRACT_TYPE like '%'+@p_CONSTRACT_TYPE +'%' OR @p_CONSTRACT_TYPE IS NULL OR @p_CONSTRACT_TYPE like '')
367
		AND (A.CONTRACT_PARENT like '%'+@P_CONTRACT_PARENT+'%' OR @P_CONTRACT_PARENT IS NULL OR @P_CONTRACT_PARENT like '')
368
		AND A.RECORD_STATUS = '1'
369
		AND (A.REQUEST_ID LIKE '%' + @p_REQUEST_ID + '%' OR  @p_REQUEST_ID IS NULL OR @p_REQUEST_ID = '')
370
		AND(EXISTS(SELECT HH_ID FROM CM_HANGHOA HH LEFT JOIN CM_HANGHOA_TYPE HT ON HH.HH_TYPE_ID=HT.HH_TYPE_ID WHERE 
371
		 (HT.HH_TYPE_CODE LIKE '%' + @p_HH_TYPE_CODE + '%' OR @p_HH_TYPE_CODE = '' OR @p_HH_TYPE_CODE IS NULL)
372
		AND (HT.HH_TYPE_NAME LIKE N'%' + @p_HH_TYPE_NAME + '%' OR @p_HH_TYPE_NAME = '' OR @p_HH_TYPE_NAME IS NULL) AND HH.HH_ID=PT.GOODS_ID))
373
		AND (A.CUST_ID =@p_CUST_ID OR @p_CUST_ID IS NULL OR @p_CUST_ID ='')
374
		--AND (A.CONT_TYPE =@p_CONT_TYPE OR (@p_CONT_TYPE IS NULL OR @p_CONT_TYPE =''))
375
		AND (A.CONT_TYPE IN (SELECT VALUE FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL)
376
		AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
377
		OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL)
378
		--AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID)
379
		AND (A.BRANCH_ID =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
380
		--------------BAODNQ 13/9/2022 : TẠM THỜI COMMENT PHẦN USER_LOGIN-----------
381
		--AND(
382
		--	A.MAKER_ID = @p_USER_LOGIN
383
		--	OR(
384
		--		------user login là trưởng ĐV ở hội sở--------
385
		--			(
386
		--				EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
387
		--				AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
388
		--					= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
389
		--			)
390
		--			------user login là trưởng ĐV ở CN/PGD
391
		--			OR
392
		--			(
393
		--				NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
394
		--				AND A.BRANCH_ID = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
395
		--			)
396
		--			AND (A.AUTH_STATUS <> 'E' AND A.AUTH_STATUS <> 'R')
397
		--	)
398
		--	OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''
399
		--)
400
		ORDER BY  A.CREATE_DT DESC
401
		) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
402
END-- PAGING END
403
ELSE
404
	IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
405
	-- PAGING BEGIN
406
BEGIN
407
SELECT COUNT(*) -- SELECT END
408
		FROM TR_CONTRACT A
409
		LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID
410
		LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID
411
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
412
		LEFT JOIN TR_REQUEST_DOC DC ON A.REQ_DOC_ID = DC.REQ_ID
413
		LEFT JOIN PL_REQUEST_DOC T ON DC.PL_REQ_ID = T.REQ_ID
414
		LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT'
415
		--LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID
416
		LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID
417
		LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID
418
		-------------BAODNQ 12/7/2022------------------
419
		LEFT JOIN(
420
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
421
			dbo.CM_DMMS 
422
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
423
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
424
			UNION ALL
425
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
426
			FROM dbo.CM_DVDM
427
		)CMS ON CMS.DMMS_ID = DC.DMMS_ID
428
		LEFT JOIN @t_CONTRACT_PAYMENT ADV ON ADV.REF_ID = A.CONTRACT_ID AND ADV.TRN_TYPE = 'ADV_PAY'
429
		LEFT JOIN @t_CONTRACT_PAYMENT PA ON PA.REF_ID = A.CONTRACT_ID AND PA.TRN_TYPE = 'PAY'
430
		LEFT JOIN TL_USER TU ON A.MAKER_ID = TU.TLNANME
431
		LEFT JOIN TL_USER TA ON A.CHECKER_ID = TA.TLNANME
432
		
433
		WHERE 1=1
434
		AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '')
435
		AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '')
436
		AND (A.CONTRACT_ID =@p_CONTRACT_ID  OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID like '')
437
		AND (A.[CONTRACT_NAME] like N'%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '')
438
		AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '')
439
		AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '')
440
		AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '')
441
		AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '')
442
		AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '')
443
		AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='')
444
		AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '')
445
		AND (A.CONTRACT_TYPE like '%'+@p_CONSTRACT_TYPE +'%' OR @p_CONSTRACT_TYPE IS NULL OR @p_CONSTRACT_TYPE like '')
446
		AND (A.CONT_TYPE IN (SELECT VALUE FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL)
447
		AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
448
		OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL OR A.CONT_TYPE ='DK')
449
		--AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID)
450
		AND (A.BRANCH_ID =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
451
		AND (DC.REQ_CODE =@p_PYC_CODE OR @p_PYC_CODE IS NULL OR @p_PYC_CODE ='' OR DC.REQ_ID =@p_PYC_CODE)
452
		AND (T.REQ_CODE =@p_TTCT_CODE OR @p_TTCT_CODE IS NULL OR @p_TTCT_CODE ='' OR T.REQ_ID =@p_TTCT_CODE)
453
		AND ( (LEN(@p_CUST_ID)=1 AND 
454
									((@p_CUST_ID ='Y' AND (CONVERT(DATE, GETDATE(),103) <= CONVERT(DATE, A.END_DT,103) OR A.END_DT IS NULL))
455
									OR (@p_CUST_ID ='N' AND (CONVERT(DATE, GETDATE(),103) > CONVERT(DATE, A.END_DT,103)))
456
									))
457
				OR (LEN(@p_CUST_ID) >1 AND A.CUST_ID =@p_CUST_ID)
458
				OR (@p_CUST_ID IS NULL OR @p_CUST_ID ='')
459
			)
460
		----------------------BAODNQ 23/2/2022-----------Thêm điều kiện tìm kiếm-----------------
461
		AND(
462
			--------Còn hiệu lực------
463
			--------------BAODNQ 19/10/2022 : Nếu k nhập ngày hết hiệu lực thì tình trạng là còn hiệu lực-----
464
			((@p_CONTRACT_STATUS = 'C') 
465
				AND (CONVERT(DATE, A.END_DT, 103) >= CONVERT(DATE, GETDATE(), 103))
466
				OR(A.END_DT IS NULL OR A.END_DT = '')
467
			)
468
			OR
469
			--------Hết hiệu lực------
470
			((@p_CONTRACT_STATUS = 'H') AND (CONVERT(DATE, A.END_DT, 103) < CONVERT(DATE, GETDATE(), 103)))
471
			OR (@p_CONTRACT_STATUS IS NULL OR @p_CONTRACT_STATUS = '')
472
		)
473
		AND (A.REQ_DOC_ID = @p_REQ_DOC_ID OR @p_REQ_DOC_ID IS NULL OR @p_REQ_DOC_ID = '')
474
		--------------BAODNQ 13/9/2022 : TẠM THỜI COMMENT PHẦN USER_LOGIN-----------
475
		--AND(
476
		--	A.MAKER_ID = @p_USER_LOGIN
477
		--	OR(
478
		--		------user login là trưởng ĐV ở hội sở--------
479
		--			(
480
		--				EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
481
		--				AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
482
		--					= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
483
		--			)
484
		--			------user login là trưởng ĐV ở CN/PGD
485
		--			OR
486
		--			(
487
		--				NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
488
		--				AND A.BRANCH_ID = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
489
		--			)
490
		--			AND (A.AUTH_STATUS <> 'E' AND A.AUTH_STATUS <> 'R')
491
		--	)
492
		--	OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''
493
		--)
494
		
495
	;WITH QUERY_DATA AS ( 
496
		SELECT A.*,B.SUP_CODE,C.BID_CODE, B.SUP_NAME, B.TEL AS SUP_TEL, B.CONTACT_PERSON AS SUP_CONTACT_PERSON,
497
		 D.AUTH_STATUS_NAME,
498
		ISNULL((SELECT SUM(TR_PO.TOTAL_AMT) FROM TR_PO_MASTER TR_PO WHERE TR_PO.CONTRACT_ID = A.CONTRACT_ID),0) AS DONE_AMT,
499
		DC.REQ_CODE AS SO_PYC, DC.REQ_NAME AS TEN_PYC, DC.REQ_ID AS PYC_ID, DC.REQ_ID AS TR_REQ_ID,
500
		T.REQ_CODE AS SO_TT_CT, T.REQ_NAME AS TEN_TT_CT, T.CREATE_DT   AS NGAY_NHAN_TT, T.APPROVE_DT  AS NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR, B.TAX_NO,
501
		CA.CONTENT AS CONT_TYPE_NAME,'' AS HH_TYPE_CODE,'' AS HH_TYPE_NAME, LS.CUSTOMER_NAME AS CUST_NAME, LS.CUSTOMER_CODE AS CUST_CODE,BR.BRANCH_CODE, BR.BRANCH_NAME,T.REQ_ID AS TO_TRINH_ID,
502
		B.ACC_NUM,B.ACC_NAME,B.BANK_NAME,B.ACC_NAME_OUT,B.ACC_NUM_OUT,B.BANK_NAME_OUT,
503
		ISNULL(ADV.TOTAL_AMT_PAY,0) AS TOTAL_ADV_AMT, ---Số tiền đã tạm ứng
504
		ISNULL(PA.TOTAL_AMT_PAY,0) AS TOTAL_PAY_AMT, --Số tiền đã thanh toán,
505
		A.TOTAL_AMT - ISNULL((PA.TOTAL_AMT_PAY),0) AS TOTAL_REMAIN_AMT,
506
		CASE
507
			WHEN ISNULL(ADV.TOTAL_AMT_PAY,0) > 0 AND ISNULL(PA.TOTAL_AMT_PAY,0) = 0
508
				THEN N'Đang tạm ứng'
509
			WHEN ISNULL(ADV.TOTAL_AMT_PAY,0) > 0 AND (A.TOTAL_AMT - ISNULL((ADV.TOTAL_AMT_PAY + PA.TOTAL_AMT_PAY),0)) <> 0
510
				THEN N'Thanh toán 1 phần'
511
			WHEN (A.TOTAL_AMT - (ADV.TOTAL_AMT_PAY - PA.TOTAL_AMT_PAY)) = 0
512
				THEN N'Thanh toán xong'
513
			WHEN ISNULL(ADV.TOTAL_AMT_PAY, 0) = 0 AND ISNULL(PA.TOTAL_AMT_PAY,0) = 0
514
				THEN N'Chưa thanh toán'
515
		END
516
		AS STATUS,
517
		'' AS IS_FLAG_END, TU.TLFullName AS MAKER_NAME, TA.TLFullName AS CHECKER_NAME,
518
		---------BAODNQ 16/5/2022: Lấy thêm cột-------
519
		CASE
520
			WHEN A.ADDRESS IS NOT NULL OR A.ADDRESS <> '' THEN A.ADDRESS
521
			ELSE B.ADDR
522
		END
523
		AS ADDR,
524
		--------------BAODNQ 12/7/2022----------
525
		CMS.DMMS_NAME
526
		--A.ADDRESS AS ADDR
527
		, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
528
) AS __ROWNUM-- SELECT END
529
		FROM TR_CONTRACT A
530
		LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID
531
		LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID
532
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
533
		LEFT JOIN TR_REQUEST_DOC DC ON A.REQ_DOC_ID = DC.REQ_ID
534
		LEFT JOIN PL_REQUEST_DOC T ON DC.PL_REQ_ID = T.REQ_ID
535
		LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT'
536
		--LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID
537
		LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID
538
		LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID
539
		-------------BAODNQ 12/7/2022------------------
540
		LEFT JOIN(
541
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
542
			dbo.CM_DMMS 
543
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
544
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
545
			UNION ALL
546
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
547
			FROM dbo.CM_DVDM
548
		)CMS ON CMS.DMMS_ID = DC.DMMS_ID
549
		LEFT JOIN @t_CONTRACT_PAYMENT ADV ON ADV.REF_ID = A.CONTRACT_ID AND ADV.TRN_TYPE = 'ADV_PAY'
550
		LEFT JOIN @t_CONTRACT_PAYMENT PA ON PA.REF_ID = A.CONTRACT_ID AND PA.TRN_TYPE = 'PAY'
551
		LEFT JOIN TL_USER TU ON A.MAKER_ID = TU.TLNANME
552
		LEFT JOIN TL_USER TA ON A.CHECKER_ID = TA.TLNANME
553
		
554
		WHERE 1=1
555
		AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '')
556
		AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '')
557
		AND (A.CONTRACT_ID =@p_CONTRACT_ID  OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID like '')
558
		AND (A.[CONTRACT_NAME] like N'%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '')
559
		AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '')
560
		AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '')
561
		AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '')
562
		AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '')
563
		AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '')
564
		AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='')
565
		AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '')
566
		AND (A.CONTRACT_TYPE like '%'+@p_CONSTRACT_TYPE +'%' OR @p_CONSTRACT_TYPE IS NULL OR @p_CONSTRACT_TYPE like '')
567
		AND (A.CONT_TYPE IN (SELECT VALUE FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL)
568
		AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
569
		OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL OR A.CONT_TYPE ='DK')
570
		--AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID)
571
		AND (A.BRANCH_ID =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
572
		AND (DC.REQ_CODE =@p_PYC_CODE OR @p_PYC_CODE IS NULL OR @p_PYC_CODE ='' OR DC.REQ_ID =@p_PYC_CODE)
573
		AND (T.REQ_CODE =@p_TTCT_CODE OR @p_TTCT_CODE IS NULL OR @p_TTCT_CODE ='' OR T.REQ_ID =@p_TTCT_CODE)
574
		AND ( (LEN(@p_CUST_ID)=1 AND 
575
									((@p_CUST_ID ='Y' AND (CONVERT(DATE, GETDATE(),103) <= CONVERT(DATE, A.END_DT,103) OR A.END_DT IS NULL))
576
									OR (@p_CUST_ID ='N' AND (CONVERT(DATE, GETDATE(),103) > CONVERT(DATE, A.END_DT,103)))
577
									))
578
				OR (LEN(@p_CUST_ID) >1 AND A.CUST_ID =@p_CUST_ID)
579
				OR (@p_CUST_ID IS NULL OR @p_CUST_ID ='')
580
			)
581
		----------------------BAODNQ 23/2/2022-----------Thêm điều kiện tìm kiếm-----------------
582
		AND(
583
			--------Còn hiệu lực------
584
			--------------BAODNQ 19/10/2022 : Nếu k nhập ngày hết hiệu lực thì tình trạng là còn hiệu lực-----
585
			((@p_CONTRACT_STATUS = 'C') 
586
				AND (CONVERT(DATE, A.END_DT, 103) >= CONVERT(DATE, GETDATE(), 103))
587
				OR(A.END_DT IS NULL OR A.END_DT = '')
588
			)
589
			OR
590
			--------Hết hiệu lực------
591
			((@p_CONTRACT_STATUS = 'H') AND (CONVERT(DATE, A.END_DT, 103) < CONVERT(DATE, GETDATE(), 103)))
592
			OR (@p_CONTRACT_STATUS IS NULL OR @p_CONTRACT_STATUS = '')
593
		)
594
		AND (A.REQ_DOC_ID = @p_REQ_DOC_ID OR @p_REQ_DOC_ID IS NULL OR @p_REQ_DOC_ID = '')
595
		--------------BAODNQ 13/9/2022 : TẠM THỜI COMMENT PHẦN USER_LOGIN-----------
596
		--AND(
597
		--	A.MAKER_ID = @p_USER_LOGIN
598
		--	OR(
599
		--		------user login là trưởng ĐV ở hội sở--------
600
		--			(
601
		--				EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
602
		--				AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
603
		--					= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
604
		--			)
605
		--			------user login là trưởng ĐV ở CN/PGD
606
		--			OR
607
		--			(
608
		--				NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
609
		--				AND A.BRANCH_ID = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
610
		--			)
611
		--			AND (A.AUTH_STATUS <> 'E' AND A.AUTH_STATUS <> 'R')
612
		--	)
613
		--	OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''
614
		--)
615
		
616
	) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
617
END-- PAGING END
618
   ELSE
619
    -- PAGING BEGIN
620
BEGIN
621
SELECT COUNT(*) FROM(
622
		SELECT TOP(CONVERT(INT,@P_TOP)) A.*,B.SUP_CODE,C.BID_CODE, B.SUP_NAME, B.TEL AS SUP_TEL, B.CONTACT_PERSON AS SUP_CONTACT_PERSON,
623
		 D.AUTH_STATUS_NAME,
624
		ISNULL((SELECT SUM(TR_PO.TOTAL_AMT) FROM TR_PO_MASTER TR_PO WHERE TR_PO.CONTRACT_ID = A.CONTRACT_ID),0) AS DONE_AMT,
625
		DC.REQ_CODE AS SO_PYC, DC.REQ_NAME AS TEN_PYC, DC.REQ_ID AS PYC_ID, DC.REQ_ID AS TR_REQ_ID,
626
		T.REQ_CODE AS SO_TT_CT, T.REQ_NAME AS TEN_TT_CT, T.CREATE_DT   AS NGAY_NHAN_TT, T.APPROVE_DT  AS NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, N'Họp đồng số: '+ A.CONTRACT_ID +N' đã hết hiệu lực' NCC_ADDR, B.TAX_NO,
627
		CA.CONTENT AS CONT_TYPE_NAME,'' AS HH_TYPE_CODE,'' AS HH_TYPE_NAME, LS.CUSTOMER_NAME AS CUST_NAME, LS.CUSTOMER_CODE AS CUST_CODE,BR.BRANCH_CODE, BR.BRANCH_NAME, T.REQ_ID AS TO_TRINH_ID,
628
		B.ACC_NUM,B.ACC_NAME,B.BANK_NAME,B.ACC_NAME_OUT,B.ACC_NUM_OUT,B.BANK_NAME_OUT,
629
		ISNULL(ADV.TOTAL_AMT_PAY,0) AS TOTAL_ADV_AMT, ---Số tiền đã tạm ứng
630
		ISNULL(PA.TOTAL_AMT_PAY,0) AS TOTAL_PAY_AMT, --Số tiền đã thanh toán,
631
		A.TOTAL_AMT - ISNULL((PA.TOTAL_AMT_PAY),0) AS TOTAL_REMAIN_AMT,
632
		CASE
633
			WHEN ISNULL(ADV.TOTAL_AMT_PAY,0) > 0 AND ISNULL(PA.TOTAL_AMT_PAY,0) = 0
634
				THEN N'Đang tạm ứng'
635
			WHEN ISNULL(ADV.TOTAL_AMT_PAY,0) > 0 AND (A.TOTAL_AMT - ISNULL((ADV.TOTAL_AMT_PAY + PA.TOTAL_AMT_PAY),0)) <> 0
636
				THEN N'Thanh toán 1 phần'
637
			WHEN (A.TOTAL_AMT - (ADV.TOTAL_AMT_PAY - PA.TOTAL_AMT_PAY)) = 0
638
				THEN N'Thanh toán xong'
639
			WHEN ISNULL(ADV.TOTAL_AMT_PAY, 0) = 0 AND ISNULL(PA.TOTAL_AMT_PAY,0) = 0
640
				THEN N'Chưa thanh toán'
641
		END
642
		AS STATUS,
643
		CASE WHEN CONVERT(DATE, A.END_DT, 103) < CONVERT(DATE, GETDATE(), 103) AND A.END_DT IS NOT NULL AND A.END_DT <> '' 
644
		THEN N'Hợp đồng số :' + A.CONTRACT_ID + N' đã hết hiệu lực kể từ ngày ' + FORMAT(DATEADD(DAY,1,A.END_DT),'dd/MM/yyyy') ELSE '' END AS IS_FLAG_END,
645
		TU.TLFullName AS MAKER_NAME, TA.TLFullName AS CHECKER_NAME,
646
		---------BAODNQ 16/5/2022: Lấy thêm cột-------
647
		CASE
648
			WHEN A.ADDRESS IS NOT NULL OR A.ADDRESS <> '' THEN A.ADDRESS
649
			ELSE B.ADDR
650
		END
651
		AS ADDR,
652
		CMS.DMMS_NAME
653
		--A.ADDRESS AS ADDR
654
		-- SELECT END
655
		FROM TR_CONTRACT A
656
		LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID
657
		LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID
658
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
659
		LEFT JOIN TR_REQUEST_DOC DC ON A.REQ_DOC_ID = DC.REQ_ID
660
		LEFT JOIN PL_REQUEST_DOC T ON DC.PL_REQ_ID = T.REQ_ID
661
		LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT'
662
		--LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID
663
		LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID
664
		LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID
665
		-------------BAODNQ 12/7/2022------------------
666
		LEFT JOIN(
667
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
668
			dbo.CM_DMMS 
669
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
670
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
671
			UNION ALL
672
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
673
			FROM dbo.CM_DVDM
674
		)CMS ON CMS.DMMS_ID = DC.DMMS_ID
675
		LEFT JOIN @t_CONTRACT_PAYMENT ADV ON ADV.REF_ID = A.CONTRACT_ID AND ADV.TRN_TYPE = 'ADV_PAY'
676
		LEFT JOIN @t_CONTRACT_PAYMENT PA ON PA.REF_ID = A.CONTRACT_ID AND PA.TRN_TYPE = 'PAY'
677
		LEFT JOIN TL_USER TU ON A.MAKER_ID = TU.TLNANME
678
		LEFT JOIN TL_USER TA ON A.CHECKER_ID = TA.TLNANME
679

    
680
		WHERE 1=1
681
		AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '')
682
		AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '')
683
		AND (A.CONTRACT_ID =@p_CONTRACT_ID OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID like '')
684
		AND (A.[CONTRACT_NAME] like N'%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '')
685
		AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '')
686
		AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '')
687
		AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '')
688
		AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '')
689
		AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '')
690
		AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='')
691
		AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '')
692
		AND( DC.REQ_CODE like '%'+@p_PYC_CODE +'%' OR @p_PYC_CODE IS NULL OR @p_PYC_CODE like '' )
693
		AND( T.REQ_CODE like '%'+@p_TTCT_CODE +'%' OR @p_TTCT_CODE IS NULL OR @p_TTCT_CODE like '' )
694
		AND( T.REQ_NAME like N'%'+@p_TTCT_NAME +'%' OR @p_TTCT_NAME IS NULL OR @p_TTCT_NAME like '' )
695
		AND A.RECORD_STATUS = '1'
696
		AND ((LEN(@p_CUST_ID)=1 AND 
697
									((@p_CUST_ID ='Y' AND (CONVERT(DATE, GETDATE(),103) <= CONVERT(DATE, A.END_DT,103) OR A.END_DT IS NULL))
698
									OR (@p_CUST_ID ='N' AND (CONVERT(DATE, GETDATE(),103) > CONVERT(DATE, A.END_DT,103)))
699
									))
700
				OR (LEN(@p_CUST_ID) >1 AND A.CUST_ID =@p_CUST_ID)
701
				OR (@p_CUST_ID IS NULL OR @p_CUST_ID ='')
702
			)
703
		AND (A.CONT_TYPE IN (SELECT [VALUE] FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL)
704
		AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
705
		OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL  OR A.CONT_TYPE ='NT')
706
		--AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID)
707
		AND (A.BRANCH_ID =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
708
		AND (DC.REQ_CODE =@p_PYC_CODE OR @p_PYC_CODE IS NULL OR @p_PYC_CODE ='' OR DC.REQ_ID =@p_PYC_CODE)
709
		--AND (T.REQ_CODE =@p_TTCT_CODE OR @p_TTCT_CODE IS NULL OR @p_TTCT_CODE ='' OR T.REQ_ID =@p_TTCT_CODE)
710
		----------------------BAODNQ 23/2/2022-----------Thêm điều kiện tìm kiếm-----------------
711
		AND(
712
			--------Còn hiệu lực------
713
			((@p_CONTRACT_STATUS = 'C') 
714
				AND (CONVERT(DATE, A.END_DT, 103) >= CONVERT(DATE, GETDATE(), 103))
715
				OR(A.END_DT IS NULL OR A.END_DT = '')
716
			)
717
			OR
718
			--------Hết hiệu lực------
719
			((@p_CONTRACT_STATUS = 'H') AND (CONVERT(DATE, A.END_DT, 103) < CONVERT(DATE, GETDATE(), 103)))
720
			OR (@p_CONTRACT_STATUS IS NULL OR @p_CONTRACT_STATUS = '')
721
		)
722
		--------------BAODNQ 13/9/2022 : TẠM THỜI COMMENT PHẦN USER_LOGIN-----------
723
		--AND(
724
		--	A.MAKER_ID = @p_USER_LOGIN
725
		--	OR(
726
		--		------user login là trưởng ĐV ở hội sở--------
727
		--			(
728
		--				EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
729
		--				AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
730
		--					= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
731
		--			)
732
		--			------user login là trưởng ĐV ở CN/PGD
733
		--			OR
734
		--			(
735
		--				NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
736
		--				AND A.BRANCH_ID = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
737
		--			)
738
		--			AND (A.AUTH_STATUS <> 'E' AND A.AUTH_STATUS <> 'R')
739
		--	)
740
		--	OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''
741
		--)
742
		AND (A.REQ_DOC_ID = @p_REQ_DOC_ID OR @p_REQ_DOC_ID IS NULL OR @p_REQ_DOC_ID = '')
743

    
744
		ORDER BY  A.CREATE_DT DESC
745
	) COUNTER_TOP;WITH QUERY_DATA AS ( 
746
		SELECT TOP(CONVERT(INT,@P_TOP)) A.*,B.SUP_CODE,C.BID_CODE, B.SUP_NAME, B.TEL AS SUP_TEL, B.CONTACT_PERSON AS SUP_CONTACT_PERSON,
747
		 D.AUTH_STATUS_NAME,
748
		ISNULL((SELECT SUM(TR_PO.TOTAL_AMT) FROM TR_PO_MASTER TR_PO WHERE TR_PO.CONTRACT_ID = A.CONTRACT_ID),0) AS DONE_AMT,
749
		DC.REQ_CODE AS SO_PYC, DC.REQ_NAME AS TEN_PYC, DC.REQ_ID AS PYC_ID, DC.REQ_ID AS TR_REQ_ID,
750
		T.REQ_CODE AS SO_TT_CT, T.REQ_NAME AS TEN_TT_CT, T.CREATE_DT   AS NGAY_NHAN_TT, T.APPROVE_DT  AS NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, N'Họp đồng số: '+ A.CONTRACT_ID +N' đã hết hiệu lực' NCC_ADDR, B.TAX_NO,
751
		CA.CONTENT AS CONT_TYPE_NAME,'' AS HH_TYPE_CODE,'' AS HH_TYPE_NAME, LS.CUSTOMER_NAME AS CUST_NAME, LS.CUSTOMER_CODE AS CUST_CODE,BR.BRANCH_CODE, BR.BRANCH_NAME, T.REQ_ID AS TO_TRINH_ID,
752
		B.ACC_NUM,B.ACC_NAME,B.BANK_NAME,B.ACC_NAME_OUT,B.ACC_NUM_OUT,B.BANK_NAME_OUT,
753
		ISNULL(ADV.TOTAL_AMT_PAY,0) AS TOTAL_ADV_AMT, ---Số tiền đã tạm ứng
754
		ISNULL(PA.TOTAL_AMT_PAY,0) AS TOTAL_PAY_AMT, --Số tiền đã thanh toán,
755
		A.TOTAL_AMT - ISNULL((PA.TOTAL_AMT_PAY),0) AS TOTAL_REMAIN_AMT,
756
		CASE
757
			WHEN ISNULL(ADV.TOTAL_AMT_PAY,0) > 0 AND ISNULL(PA.TOTAL_AMT_PAY,0) = 0
758
				THEN N'Đang tạm ứng'
759
			WHEN ISNULL(ADV.TOTAL_AMT_PAY,0) > 0 AND (A.TOTAL_AMT - ISNULL((ADV.TOTAL_AMT_PAY + PA.TOTAL_AMT_PAY),0)) <> 0
760
				THEN N'Thanh toán 1 phần'
761
			WHEN (A.TOTAL_AMT - (ADV.TOTAL_AMT_PAY - PA.TOTAL_AMT_PAY)) = 0
762
				THEN N'Thanh toán xong'
763
			WHEN ISNULL(ADV.TOTAL_AMT_PAY, 0) = 0 AND ISNULL(PA.TOTAL_AMT_PAY,0) = 0
764
				THEN N'Chưa thanh toán'
765
		END
766
		AS STATUS,
767
		CASE WHEN CONVERT(DATE, A.END_DT, 103) < CONVERT(DATE, GETDATE(), 103) AND A.END_DT IS NOT NULL AND A.END_DT <> '' 
768
		THEN N'Hợp đồng số :' + A.CONTRACT_ID + N' đã hết hiệu lực kể từ ngày ' + FORMAT(DATEADD(DAY,1,A.END_DT),'dd/MM/yyyy') ELSE '' END AS IS_FLAG_END,
769
		TU.TLFullName AS MAKER_NAME, TA.TLFullName AS CHECKER_NAME,
770
		---------BAODNQ 16/5/2022: Lấy thêm cột-------
771
		CASE
772
			WHEN A.ADDRESS IS NOT NULL OR A.ADDRESS <> '' THEN A.ADDRESS
773
			ELSE B.ADDR
774
		END
775
		AS ADDR,
776
		CMS.DMMS_NAME
777
		--A.ADDRESS AS ADDR
778
		, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
779
) AS __ROWNUM-- SELECT END
780
		FROM TR_CONTRACT A
781
		LEFT JOIN CM_SUPPLIER B ON A.SUP_ID=B.SUP_ID
782
		LEFT JOIN BID_MASTER C ON A.BID_ID=C.BID_ID
783
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
784
		LEFT JOIN TR_REQUEST_DOC DC ON A.REQ_DOC_ID = DC.REQ_ID
785
		LEFT JOIN PL_REQUEST_DOC T ON DC.PL_REQ_ID = T.REQ_ID
786
		LEFT JOIN dbo.CM_ALLCODE CA ON CA.CDVAL=A.CONT_TYPE AND CA.CDNAME='TR_CONT_TYPE' AND CA.CDTYPE='TR_CONT'
787
		--LEFT JOIN TR_CONTRACT_DT PT ON A.CONTRACT_ID = PT.CONTRACT_ID
788
		LEFT JOIN LS_CUSTOMER LS ON A.CUST_ID = LS.CUSTOMER_ID
789
		LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID= BR.BRANCH_ID
790
		-------------BAODNQ 12/7/2022------------------
791
		LEFT JOIN(
792
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
793
			dbo.CM_DMMS 
794
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
795
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
796
			UNION ALL
797
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
798
			FROM dbo.CM_DVDM
799
		)CMS ON CMS.DMMS_ID = DC.DMMS_ID
800
		LEFT JOIN @t_CONTRACT_PAYMENT ADV ON ADV.REF_ID = A.CONTRACT_ID AND ADV.TRN_TYPE = 'ADV_PAY'
801
		LEFT JOIN @t_CONTRACT_PAYMENT PA ON PA.REF_ID = A.CONTRACT_ID AND PA.TRN_TYPE = 'PAY'
802
		LEFT JOIN TL_USER TU ON A.MAKER_ID = TU.TLNANME
803
		LEFT JOIN TL_USER TA ON A.CHECKER_ID = TA.TLNANME
804

    
805
		WHERE 1=1
806
		AND (A.MAKER_ID like '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID like '')
807
		AND (A.CONTRACT_CODE like '%'+@p_CONSTRACT_CODE+'%' OR @p_CONSTRACT_CODE IS NULL OR @p_CONSTRACT_CODE like '')
808
		AND (A.CONTRACT_ID =@p_CONTRACT_ID OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID like '')
809
		AND (A.[CONTRACT_NAME] like N'%'+ @p_CONSTRACT_NAME +'%' OR @p_CONSTRACT_NAME IS NULL OR @p_CONSTRACT_NAME like '')
810
		AND (A.BID_ID like '%'+@p_BID_ID +'%' OR @p_BID_ID IS NULL OR @p_BID_ID like '')
811
		AND (C.BID_CODE like '%'+@p_BID_CODE +'%' OR @p_BID_CODE IS NULL OR @p_BID_CODE like '')
812
		AND (A.SUP_ID like '%'+@p_SUP_ID +'%' OR @p_SUP_ID IS NULL OR @p_SUP_ID like '')
813
		AND (B.SUP_CODE like '%'+@p_SUP_CODE +'%' OR @p_SUP_CODE IS NULL OR @p_SUP_CODE like '')
814
		AND (DATEDIFF(DAY,A.SIGN_DT,CONVERT(DATETIME,@P_SIGN_DT,103)) = 0 OR @P_SIGN_DT IS NULL OR @P_SIGN_DT like '')
815
		AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @P_CREATE_DT, 103)) = 0 OR @P_CREATE_DT IS NULL OR @P_CREATE_DT='')
816
		AND (A.AUTH_STATUS like '%'+@p_AUTH_STATUS +'%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS like '')
817
		AND( DC.REQ_CODE like '%'+@p_PYC_CODE +'%' OR @p_PYC_CODE IS NULL OR @p_PYC_CODE like '' )
818
		AND( T.REQ_CODE like '%'+@p_TTCT_CODE +'%' OR @p_TTCT_CODE IS NULL OR @p_TTCT_CODE like '' )
819
		AND( T.REQ_NAME like N'%'+@p_TTCT_NAME +'%' OR @p_TTCT_NAME IS NULL OR @p_TTCT_NAME like '' )
820
		AND A.RECORD_STATUS = '1'
821
		AND ((LEN(@p_CUST_ID)=1 AND 
822
									((@p_CUST_ID ='Y' AND (CONVERT(DATE, GETDATE(),103) <= CONVERT(DATE, A.END_DT,103) OR A.END_DT IS NULL))
823
									OR (@p_CUST_ID ='N' AND (CONVERT(DATE, GETDATE(),103) > CONVERT(DATE, A.END_DT,103)))
824
									))
825
				OR (LEN(@p_CUST_ID) >1 AND A.CUST_ID =@p_CUST_ID)
826
				OR (@p_CUST_ID IS NULL OR @p_CUST_ID ='')
827
			)
828
		AND (A.CONT_TYPE IN (SELECT [VALUE] FROM @l_LST_CONTYPE) OR @p_CONT_TYPE ='' OR @p_CONT_TYPE IS NULL)
829
		AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
830
		OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL  OR A.CONT_TYPE ='NT')
831
		--AND (BR.BRANCH_CODE =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR BR.BRANCH_ID =@p_BRANCH_ID)
832
		AND (A.BRANCH_ID =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
833
		AND (DC.REQ_CODE =@p_PYC_CODE OR @p_PYC_CODE IS NULL OR @p_PYC_CODE ='' OR DC.REQ_ID =@p_PYC_CODE)
834
		--AND (T.REQ_CODE =@p_TTCT_CODE OR @p_TTCT_CODE IS NULL OR @p_TTCT_CODE ='' OR T.REQ_ID =@p_TTCT_CODE)
835
		----------------------BAODNQ 23/2/2022-----------Thêm điều kiện tìm kiếm-----------------
836
		AND(
837
			--------Còn hiệu lực------
838
			((@p_CONTRACT_STATUS = 'C') 
839
				AND (CONVERT(DATE, A.END_DT, 103) >= CONVERT(DATE, GETDATE(), 103))
840
				OR(A.END_DT IS NULL OR A.END_DT = '')
841
			)
842
			OR
843
			--------Hết hiệu lực------
844
			((@p_CONTRACT_STATUS = 'H') AND (CONVERT(DATE, A.END_DT, 103) < CONVERT(DATE, GETDATE(), 103)))
845
			OR (@p_CONTRACT_STATUS IS NULL OR @p_CONTRACT_STATUS = '')
846
		)
847
		--------------BAODNQ 13/9/2022 : TẠM THỜI COMMENT PHẦN USER_LOGIN-----------
848
		--AND(
849
		--	A.MAKER_ID = @p_USER_LOGIN
850
		--	OR(
851
		--		------user login là trưởng ĐV ở hội sở--------
852
		--			(
853
		--				EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
854
		--				AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
855
		--					= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
856
		--			)
857
		--			------user login là trưởng ĐV ở CN/PGD
858
		--			OR
859
		--			(
860
		--				NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE = 'HS')
861
		--				AND A.BRANCH_ID = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
862
		--			)
863
		--			AND (A.AUTH_STATUS <> 'E' AND A.AUTH_STATUS <> 'R')
864
		--	)
865
		--	OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''
866
		--)
867
		AND (A.REQ_DOC_ID = @p_REQ_DOC_ID OR @p_REQ_DOC_ID IS NULL OR @p_REQ_DOC_ID = '')
868

    
869
		ORDER BY  A.CREATE_DT DESC
870
	) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
871
END-- PAGING END
872
	
873
go