Project

General

Profile

rpt_CCLD_BC08_2_Excel_BanViet.txt

Luc Tran Van, 12/06/2022 02:26 PM

 
1

    
2
ALTER PROCEDURE [dbo].[rpt_CCLD_BC08_2_Excel_BanViet]
3
	@p_Fromdate varchar(20) = null,
4
	@p_Todate varchar(20) = null,
5
	@p_BRANCH_LOGIN VARCHAR(15) = NULL,
6
	@p_BRANCH_ID VARCHAR(15) = NULL,
7
	@p_LEVEL VARCHAR(15) = NULL,
8
	@p_Group_id varchar(15) = null,
9
	@p_Supplier_id varchar(15) = null,
10
	@p_FromPrice varchar(18) = null,
11
	@p_ToPrice varchar(18) = null,
12
	@p_User_ID VARCHAR(15) = NULL-- NGUOI SU DUNG
13
AS
14
BEGIN
15
--thieuvq 24/8/2017 - DOC DU LIEU BO QUA COMMIT TRANSACTION 
16
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
17

    
18
declare @tmp table(BRANCH_ID varchar(15))
19
insert into @tmp  SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
20
declare @tmp_login table(BRANCH_ID varchar(15))
21
insert into @tmp_login  SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
22
SELECT GR.*,Row_number() OVER(ORDER BY GR.NHOM_TS4) AS STT
23
FROM 
24
(
25
	SELECT 
26
	--Row_number() OVER(ORDER BY A.ASSET_ID) AS STT,
27
	
28
	[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS NHOM_TS4,	
29
	A.ASSET_CODE AS MS_TS, -- MÃ SỐ TÀI SẢN
30
	A.ASSET_NAME AS TEN_TS, --TEN TAI SAN
31

    
32
	A.USE_DATE_KT AS NGAY_TANG_TS,
33
	
34
	A.AMORT_START_DATE AS NGAY_BD_KH, --NGÀY BAT DAU KHAU HAO
35
	A.ASSET_SERIAL_NO AS SERIAL,
36
	CE.EMP_NAME,
37
	C.BRANCH_NAME AS BRANCH_USE,
38
	CD.DEP_NAME AS DEP_USE,
39
	ISNULL(CC.PHAT_SINH_DAU,0) AS NGUYEN_GIA_FROM,
40
	ISNULL(BB.TONG_KH_DAU,0) AS KHAU_HAO_LK_FROM,	
41
	(ISNULL(CC.PHAT_SINH_DAU,0) - ISNULL(BB.TONG_KH_DAU,0)) AS GIA_TRI_CL_FROM,
42
	ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) AS NGUYEN_GIA_PHAT_SINH_TANG,
43
	ISNULL(AA.TONG_KH_TRONG_KHOANG,0) AS KH_PHAT_SINH_TANG,
44
	ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0) AS NGUYEN_GIA_PHAT_SINH_GIAM,
45
	ISNULL(DR.TONG_KH_TRONG_KHOANG,0) AS KH_PHAT_SINH_GIAM,
46
	--ISNULL(DD.PHAT_SINH_CUOI,0) AS NGUYEN_GIA_TO,
47
	(ISNULL(CC.PHAT_SINH_DAU,0) + ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) - ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0)) AS NGUYEN_GIA_TO,
48
	(ISNULL(AA.TONG_KH_TRONG_KHOANG,0) + ISNULL(BB.TONG_KH_DAU,0) - ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) AS KHAU_HAO_LK_TO,
49
	--(ISNULL(DD.PHAT_SINH_CUOI,0)-ISNULL(DR.TONG_KH_TRONG_KHOANG,0) -ISNULL(BB.TONG_KH_DAU,0)) AS GIA_TRI_CL_TO,
50
	(ISNULL(DD.PHAT_SINH_CUOI,0) - ISNULL(AA.TONG_KH_TRONG_KHOANG,0) - ISNULL(BB.TONG_KH_DAU,0) + ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) AS GIA_TRI_CL_TO,
51
	A.ASSET_DESC AS GHI_CHU,---GHI CHU
52
	A.REF_AMORTIZED_AMT AS GIA_TRI_KH_CU,---GIA TRI KHAU HAO CU
53
	A.AMORT_MONTH SOTHANG_KHAUHAO,--LUCTV BEGIN 17-10- 2018
54
	A.AMORTIZED_MONTH DA_KH,
55
	(A.AMORT_MONTH - ISNULL(A.AMORTIZED_MONTH,0)) TG_KH_CONLAI,
56
	(ISNULL(CC.PHAT_SINH_DAU,0) - ISNULL(BB.TONG_KH_DAU,0)) SODU_DAUKY,
57
	ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) TANG_TRONGKY,
58
	ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0) GIAM_TRONGKY,
59
	ISNULL(CC.PHAT_SINH_DAU,0) + ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) - ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0) SODU_CUOIKY,
60
    ISNULL(BB.TONG_KH_DAU,0) KH_SD_DAUKY,
61
	ISNULL(AA.TONG_KH_TRONG_KHOANG,0) KH_TANG_TRONGKY,
62
	ISNULL(DR.TONG_KH_TRONG_KHOANG,0) KH_GIAM_TRONGKY,
63
	(ISNULL(BB.TONG_KH_DAU,0) + ISNULL(AA.TONG_KH_TRONG_KHOANG,0) - ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) KH_SD_CUOIKY,
64
	(ISNULL(DD.PHAT_SINH_CUOI,0) - ISNULL(AA.TONG_KH_TRONG_KHOANG,0) - ISNULL(BB.TONG_KH_DAU,0) + ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) GT_CON_LAI
65

    
66
	FROM ASS_MASTER  A
67
	LEFT JOIN 
68
	(
69
		SELECT A.ASSET_ID,		
70
			ISNULL(TR.BRANCH_ID, TRN.BRANCH_ID) AS BRANCH_ID,
71
			CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.DEPT_ID ELSE TR.DEPT_ID END AS DEPT_ID,
72
			CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.EMP_ID ELSE TR.EMP_ID END AS EMP_ID				
73
		FROM ASS_MASTER A
74
		LEFT JOIN --LAY DON VI MOI NHAT 
75
		(
76
			SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID		
77
			FROM ASS_LOCATION_HIST A		
78
			INNER JOIN
79
			(
80
				SELECT MAX(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
81
				FROM ASS_LOCATION_HIST B 
82
				WHERE B.USE_START_DT <= CONVERT(DATE,@p_Todate,103)
83
				GROUP BY B.ASSET_ID
84
			) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID		
85
		) AS TR ON TR.ASSET_ID = A.ASSET_ID
86
		LEFT JOIN --LAY DON VI CU NHAT
87
		(
88
			SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID		
89
			FROM ASS_LOCATION_HIST A		
90
			INNER JOIN
91
			(
92
				SELECT MIN(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
93
				FROM ASS_LOCATION_HIST B 
94
				WHERE B.USE_START_DT > CONVERT(DATE,@p_Todate,103)
95
				GROUP BY B.ASSET_ID
96
			) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID		
97
		) AS TRN ON TRN.ASSET_ID = A.ASSET_ID		
98
	) AS BRN_HIST ON BRN_HIST.ASSET_ID = A.ASSET_ID
99
	INNER JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
100
	LEFT JOIN CM_EMPLOYEE CE ON A.EMP_ID = CE.EMP_ID
101
	LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
102
	LEFT JOIN CM_DEPARTMENT CD ON A.DEPT_ID = CD.DEP_ID
103
	--LEFT JOIN CM_BRANCH C ON BRN_HIST.BRANCH_ID = C.BRANCH_ID	
104
	--LEFT JOIN CM_BRANCH D ON D.BRANCH_ID = C.FATHER_ID
105
	--LEFT JOIN CM_EMPLOYEE E ON BRN_HIST.EMP_ID = E.EMP_ID
106
	--LEFT JOIN CM_DEPARTMENT F ON BRN_HIST.DEPT_ID = F.DEP_ID
107

    
108
	-- GIÁ TRỊ KHAU HAO TAI NGÀY FROM
109
	-- SELECT * FROM ASS_AMORT_DT A INNER JOIN ASS_AMORT B ON A.AMORT_ID = B.AMORT_ID
110
	-- SELECT * FROM ASS_VALUES
111
	-- SELECT * FROM ASS_AMORT_DT WHERE 
112
	-- GIÁ TRỊ CÒN LAI CỦA TÀI SẢN TẠI THỜI ĐIỂM ĐÍCH
113
	LEFT JOIN
114
	(
115
		SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
116
		FROM ASS_AMORT_DT X
117
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
118
		WHERE 
119
		(X.AMORT_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
120
		AND (X.AMORT_DT <= CONVERT(DATE,@p_Todate,103)OR @p_Todate IS NULL OR @p_Todate = '')
121
		AND CRDR = 'C'
122
		GROUP BY X.ASSET_ID
123
	) AA ON A.ASSET_ID = AA.ASSET_ID
124
	LEFT JOIN
125
	(
126
		SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
127
		FROM ASS_AMORT_DT X
128
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
129
		WHERE 
130
		(X.AMORT_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
131
		AND (X.AMORT_DT <= CONVERT(DATE,@p_Todate,103)OR @p_Todate IS NULL OR @p_Todate = '')
132
		AND CRDR = 'D'
133
		GROUP BY X.ASSET_ID
134
	) DR ON A.ASSET_ID = DR.ASSET_ID
135
	-- SELECT * FROM ASS_AMORT_DT
136
	LEFT JOIN
137
	(
138
		SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR  WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS TONG_KH_DAU
139
		FROM ASS_AMORT_DT X
140
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
141
		INNER JOIN ASS_MASTER Z ON X.ASSET_ID = Z.ASSET_ID
142
		WHERE 
143
		(X.AMORT_DT >= CONVERT(DATE,Z.AMORT_START_DATE)) AND (CONVERT(DATE,Z.LIQUIDATION_DT) >= CONVERT(DATE,@p_Fromdate,103) OR Z.LIQUIDATION_DT IS NULL OR Z.LIQUIDATION_DT = '')
144
		AND (X.AMORT_DT < CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
145
		GROUP BY X.ASSET_ID
146
	) BB ON A.ASSET_ID = BB.ASSET_ID
147
	-- SELECT TOP 200 * FROM ASS_MASTER
148
	-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU BAT DAU KHAU HAO DEN THOI DIEM FROM
149
	LEFT JOIN
150
	(
151
		SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR  WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS PHAT_SINH_DAU 
152
		FROM ASS_VALUES X
153
		INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
154
		WHERE (X.TRN_DT < CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
155
		--(X.CREATE_DT >= Y.CREATE_DT) 
156
		--AND (X.CREATE_DT <= CONVERT(DATETIME,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
157
		GROUP BY X.ASSET_ID
158
	) CC ON A.ASSET_ID = CC.ASSET_ID
159
	-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM BAT DAU ĐẾN THỜI ĐIỂM TO
160
	-- SELECT * FROM ASS_MASTER
161
	LEFT JOIN
162
	(
163
		SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR  WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS PHAT_SINH_CUOI
164
		FROM ASS_VALUES X
165
		INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
166
		WHERE --X.CREATE_DT >= Y.CREATE_DT 
167
			 (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
168
		GROUP BY X.ASSET_ID
169
	) DD ON A.ASSET_ID = DD.ASSET_ID
170
	-- PHAT SINH TANG TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
171
	-- select * from ass_values where trn_type = 'ass_use'
172
	LEFT JOIN
173
	(
174
		SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_TANG_TRONG_KHOANG
175
		FROM ASS_VALUES X
176
		--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
177
		WHERE (X.CREATE_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
178
		AND (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
179
		AND X.CRDR = 'C'
180
		GROUP BY X.ASSET_ID
181
	) EE ON A.ASSET_ID = EE.ASSET_ID
182
	-- PHAT SINH GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
183
	LEFT JOIN
184
	(
185
		SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_GIAM_TRONG_KHOANG
186
		FROM ASS_VALUES X
187
		--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
188
		WHERE (X.CREATE_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
189
		AND (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
190
		AND X.CRDR = 'D'
191
		GROUP BY X.ASSET_ID
192
	) FF ON A.ASSET_ID = FF.ASSET_ID
193
	WHERE  A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A'	
194
	AND A.ENTRY_BOOKED = 'Y'
195
		-- NHOM TAI SAN
196
	AND (A.GROUP_ID = @p_Group_id OR @p_Group_id IS NULL OR @p_Group_id = '')
197
	-- NSD
198
	AND (A.EMP_ID = @p_User_ID OR @p_User_ID IS NULL OR @p_User_ID = '')
199
	-- NHA CUNG CAP
200
	AND (A.SUP_ID = @p_Supplier_ID OR @p_Supplier_ID IS NULL OR @p_Supplier_ID = '')
201
	-- NGUYEN GIA
202
	AND (A.BUY_PRICE >= CONVERT(decimal(18), @p_FromPrice) OR @p_FromPrice IS NULL OR @p_FromPrice = '0' )
203
	AND (A.BUY_PRICE <= CONVERT(decimal(18), @p_ToPrice)  OR @p_ToPrice IS NULL OR @p_ToPrice = '0' )
204
	AND ((@P_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
205
	OR (@P_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @p_BRANCH_ID) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL)
206
	AND ((@P_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_login))
207
	OR (@P_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @p_BRANCH_LOGIN) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL 
208
	OR @p_BRANCH_ID IS NOT NULL OR @p_BRANCH_ID <> '')
209
	AND (A.USE_DATE_KT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '') --THEM 15/04 THIEUVQ
210
	--AND (A.USE_DATE >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') --THEM 15/04 THIEUVQ
211
	AND A.TYPE_ID = 'CCLD' --THEM 15/04 THIEUVQ
212
	AND (CONVERT(DATE,A.LIQUIDATION_DT) > CONVERT(DATE,@p_Fromdate,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT = '')
213
	AND A.AMORT_STATUS <> 'VNM'
214
	UNION
215
	SELECT 
216

    
217
	--0 AS STT,
218
	
219
	[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS NHOM_TS4,	
220
	[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'1') AS MS_TS, -- MÃ SỐ TÀI SẢN
221
	'' AS TEN_TS, --TEN TAI SAN
222

    
223
	NULL AS NGAY_TANG_TS,
224
	
225
	NULL AS NGAY_BD_KH, --NGÀY BAT DAU KHAU HAO
226
	NULL AS SERIAL,
227
	NULL AS EMPNAME,
228
	NULL AS BRANCH_USE,
229
	NULL AS DEP_USE,
230
	SUM(ISNULL(CC.PHAT_SINH_DAU,0)) AS NGUYEN_GIA_FROM,
231
	SUM(ISNULL(BB.TONG_KH_DAU,0)) AS KHAU_HAO_LK_FROM,	
232
	SUM((ISNULL(CC.PHAT_SINH_DAU,0) - ISNULL(BB.TONG_KH_DAU,0))) AS GIA_TRI_CL_FROM,
233
	SUM(ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0)) AS NGUYEN_GIA_PHAT_SINH_TANG,
234
	SUM(ISNULL(AA.TONG_KH_TRONG_KHOANG,0)) AS KH_PHAT_SINH_TANG,
235
	SUM(ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0)) AS NGUYEN_GIA_PHAT_SINH_GIAM,
236
	SUM(ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) AS KH_PHAT_SINH_GIAM,
237
	--ISNULL(DD.PHAT_SINH_CUOI,0) AS NGUYEN_GIA_TO,
238
	SUM((ISNULL(CC.PHAT_SINH_DAU,0) + ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) - ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0))) AS NGUYEN_GIA_TO,
239
	SUM((ISNULL(AA.TONG_KH_TRONG_KHOANG,0) + ISNULL(BB.TONG_KH_DAU,0) - ISNULL(DR.TONG_KH_TRONG_KHOANG,0))) AS KHAU_HAO_LK_TO,
240
	--(ISNULL(DD.PHAT_SINH_CUOI,0)-ISNULL(DR.TONG_KH_TRONG_KHOANG,0) -ISNULL(BB.TONG_KH_DAU,0)) AS GIA_TRI_CL_TO,
241
	SUM((ISNULL(DD.PHAT_SINH_CUOI,0) - ISNULL(AA.TONG_KH_TRONG_KHOANG,0) - ISNULL(BB.TONG_KH_DAU,0) + ISNULL(DR.TONG_KH_TRONG_KHOANG,0))) AS GIA_TRI_CL_TO,
242
	'' AS GHI_CHU,---GHI CHU
243
	NULL AS GIA_TRI_KH_CU,---GIA TRI KHAU HAO CU
244
	NULL SOTHANG_KHAUHAO,--LUCTV BEGIN 17-10- 2018
245
	NULL DA_KH,
246
	NULL TG_KH_CONLAI,
247
	SUM((ISNULL(CC.PHAT_SINH_DAU,0) - ISNULL(BB.TONG_KH_DAU,0))) SODU_DAUKY,
248
	SUM(ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0)) TANG_TRONGKY,
249
	SUM(ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0)) GIAM_TRONGKY,
250
	SUM(ISNULL(CC.PHAT_SINH_DAU,0) + ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) - ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0)) SODU_CUOIKY,
251
    SUM(ISNULL(BB.TONG_KH_DAU,0)) KH_SD_DAUKY,
252
	SUM(ISNULL(AA.TONG_KH_TRONG_KHOANG,0)) KH_TANG_TRONGKY,
253
	SUM(ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) KH_GIAM_TRONGKY,
254
	SUM((ISNULL(BB.TONG_KH_DAU,0) + ISNULL(AA.TONG_KH_TRONG_KHOANG,0) - ISNULL(DR.TONG_KH_TRONG_KHOANG,0))) KH_SD_CUOIKY,
255
	SUM((ISNULL(DD.PHAT_SINH_CUOI,0) - ISNULL(AA.TONG_KH_TRONG_KHOANG,0) - ISNULL(BB.TONG_KH_DAU,0) + ISNULL(DR.TONG_KH_TRONG_KHOANG,0))) GT_CON_LAI
256

    
257
	FROM ASS_MASTER  A
258
	LEFT JOIN 
259
	(
260
		SELECT A.ASSET_ID,		
261
			ISNULL(TR.BRANCH_ID, TRN.BRANCH_ID) AS BRANCH_ID,
262
			CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.DEPT_ID ELSE TR.DEPT_ID END AS DEPT_ID,
263
			CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.EMP_ID ELSE TR.EMP_ID END AS EMP_ID				
264
		FROM ASS_MASTER A
265
		LEFT JOIN --LAY DON VI MOI NHAT 
266
		(
267
			SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID		
268
			FROM ASS_LOCATION_HIST A		
269
			INNER JOIN
270
			(
271
				SELECT MAX(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
272
				FROM ASS_LOCATION_HIST B 
273
				WHERE B.USE_START_DT <= CONVERT(DATE,@p_Todate,103)
274
				GROUP BY B.ASSET_ID
275
			) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID		
276
		) AS TR ON TR.ASSET_ID = A.ASSET_ID
277
		LEFT JOIN --LAY DON VI CU NHAT
278
		(
279
			SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID		
280
			FROM ASS_LOCATION_HIST A		
281
			INNER JOIN
282
			(
283
				SELECT MIN(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
284
				FROM ASS_LOCATION_HIST B 
285
				WHERE B.USE_START_DT > CONVERT(DATE,@p_Todate,103)
286
				GROUP BY B.ASSET_ID
287
			) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID		
288
		) AS TRN ON TRN.ASSET_ID = A.ASSET_ID		
289
	) AS BRN_HIST ON BRN_HIST.ASSET_ID = A.ASSET_ID
290
	INNER JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
291
	--LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
292
	--LEFT JOIN CM_BRANCH C ON BRN_HIST.BRANCH_ID = C.BRANCH_ID	
293
	--LEFT JOIN CM_BRANCH D ON D.BRANCH_ID = C.FATHER_ID
294
	--LEFT JOIN CM_EMPLOYEE E ON BRN_HIST.EMP_ID = E.EMP_ID
295
	--LEFT JOIN CM_DEPARTMENT F ON BRN_HIST.DEPT_ID = F.DEP_ID
296

    
297
	-- GIÁ TRỊ KHAU HAO TAI NGÀY FROM
298
	-- SELECT * FROM ASS_AMORT_DT A INNER JOIN ASS_AMORT B ON A.AMORT_ID = B.AMORT_ID
299
	-- SELECT * FROM ASS_VALUES
300
	-- SELECT * FROM ASS_AMORT_DT WHERE 
301
	-- GIÁ TRỊ CÒN LAI CỦA TÀI SẢN TẠI THỜI ĐIỂM ĐÍCH
302
	LEFT JOIN
303
	(
304
		SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
305
		FROM ASS_AMORT_DT X
306
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
307
		WHERE 
308
		(X.AMORT_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
309
		AND (X.AMORT_DT <= CONVERT(DATE,@p_Todate,103)OR @p_Todate IS NULL OR @p_Todate = '')
310
		AND CRDR = 'C'
311
		GROUP BY X.ASSET_ID
312
	) AA ON A.ASSET_ID = AA.ASSET_ID
313
	LEFT JOIN
314
	(
315
		SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
316
		FROM ASS_AMORT_DT X
317
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
318
		WHERE 
319
		(X.AMORT_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
320
		AND (X.AMORT_DT <= CONVERT(DATE,@p_Todate,103)OR @p_Todate IS NULL OR @p_Todate = '')
321
		AND CRDR = 'D'
322
		GROUP BY X.ASSET_ID
323
	) DR ON A.ASSET_ID = DR.ASSET_ID
324
	-- SELECT * FROM ASS_AMORT_DT
325
	LEFT JOIN
326
	(
327
		SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR  WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS TONG_KH_DAU
328
		FROM ASS_AMORT_DT X
329
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
330
		INNER JOIN ASS_MASTER Z ON X.ASSET_ID = Z.ASSET_ID
331
		WHERE 
332
		(X.AMORT_DT >= CONVERT(DATE,Z.AMORT_START_DATE)) AND (CONVERT(DATE,Z.LIQUIDATION_DT) >= CONVERT(DATE,@p_Fromdate,103) OR Z.LIQUIDATION_DT IS NULL OR Z.LIQUIDATION_DT = '')
333
		AND (X.AMORT_DT < CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
334
		GROUP BY X.ASSET_ID
335
	) BB ON A.ASSET_ID = BB.ASSET_ID
336
	-- SELECT TOP 200 * FROM ASS_MASTER
337
	-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU BAT DAU KHAU HAO DEN THOI DIEM FROM
338
	LEFT JOIN
339
	(
340
		SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR  WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS PHAT_SINH_DAU 
341
		FROM ASS_VALUES X
342
		INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
343
		WHERE (X.TRN_DT < CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
344
		--(X.CREATE_DT >= Y.CREATE_DT) 
345
		--AND (X.CREATE_DT <= CONVERT(DATETIME,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
346
		GROUP BY X.ASSET_ID
347
	) CC ON A.ASSET_ID = CC.ASSET_ID
348
	-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM BAT DAU ĐẾN THỜI ĐIỂM TO
349
	-- SELECT * FROM ASS_MASTER
350
	LEFT JOIN
351
	(
352
		SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR  WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS PHAT_SINH_CUOI
353
		FROM ASS_VALUES X
354
		INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
355
		WHERE --X.CREATE_DT >= Y.CREATE_DT 
356
			 (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
357
		GROUP BY X.ASSET_ID
358
	) DD ON A.ASSET_ID = DD.ASSET_ID
359
	-- PHAT SINH TANG TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
360
	-- select * from ass_values where trn_type = 'ass_use'
361
	LEFT JOIN
362
	(
363
		SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_TANG_TRONG_KHOANG
364
		FROM ASS_VALUES X
365
		--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
366
		WHERE (X.CREATE_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
367
		AND (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
368
		AND X.CRDR = 'C'
369
		GROUP BY X.ASSET_ID
370
	) EE ON A.ASSET_ID = EE.ASSET_ID
371
	-- PHAT SINH GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
372
	LEFT JOIN
373
	(
374
		SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_GIAM_TRONG_KHOANG
375
		FROM ASS_VALUES X
376
		--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
377
		WHERE (X.CREATE_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
378
		AND (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
379
		AND X.CRDR = 'D'
380
		GROUP BY X.ASSET_ID
381
	) FF ON A.ASSET_ID = FF.ASSET_ID
382
	--LEFT JOIN CM_EMPLOYEE CE ON A.EMP_ID = CE.EMP_ID
383
	WHERE  A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A'	
384
	AND A.ENTRY_BOOKED = 'Y'
385
		-- NHOM TAI SAN
386
	AND (A.GROUP_ID = @p_Group_id OR @p_Group_id IS NULL OR @p_Group_id = '')
387
	-- NSD
388
	AND (A.EMP_ID = @p_User_ID OR @p_User_ID IS NULL OR @p_User_ID = '')
389
	-- NHA CUNG CAP
390
	AND (A.SUP_ID = @p_Supplier_ID OR @p_Supplier_ID IS NULL OR @p_Supplier_ID = '')
391
	-- NGUYEN GIA
392
	AND (A.BUY_PRICE >= CONVERT(decimal(18), @p_FromPrice) OR @p_FromPrice IS NULL OR @p_FromPrice = '0' )
393
	AND (A.BUY_PRICE <= CONVERT(decimal(18), @p_ToPrice)  OR @p_ToPrice IS NULL OR @p_ToPrice = '0' )
394
	AND ((@P_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
395
	OR (@P_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @p_BRANCH_ID) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL)
396
	AND ((@P_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_login))
397
	OR (@P_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @p_BRANCH_LOGIN) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL 
398
	OR @p_BRANCH_ID IS NOT NULL OR @p_BRANCH_ID <> '')
399
	AND (A.USE_DATE_KT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '') --THEM 15/04 THIEUVQ
400
	--AND (A.USE_DATE >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') --THEM 15/04 THIEUVQ
401
	AND A.TYPE_ID = 'CCLD' --THEM 15/04 THIEUVQ
402
	AND (CONVERT(DATE,A.LIQUIDATION_DT) > CONVERT(DATE,@p_Fromdate,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT = '')
403
	AND A.AMORT_STATUS <> 'VNM'
404
	GROUP BY [dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1'), [dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'1')
405
	) GR
406
ORDER BY GR.NHOM_TS4
407
END
408

    
409

    
410

    
411

    
412