Project

General

Profile

rpt_TSCD_BC08_2_Excel_BanViet.txt

Luc Tran Van, 01/04/2023 03:10 PM

 
1

    
2
ALTER PROCEDURE [dbo].[rpt_TSCD_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.* FROM 
23
	(
24
	SELECT 
25
	Row_number() OVER(ORDER BY A.ASSET_ID) AS STT,
26
	--[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS NHOMTS, --EM GOM NHOM THEO 3 CAI THUOC TINH NAY NHA
27
	--[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'2') AS NHOM_TS2,
28
	--[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'3') AS NHOM_TS3,
29
	BBR.BRANCH_CODE +' - ' +BBR.BRANCH_NAME AS DVSD,
30
	DEP.DEP_CODE +' - '+DEP.DEP_NAME AS PBSD,
31
	[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS NHOM_TS4,	
32
	A.ASSET_CODE AS MS_TS, -- MÃ SỐ TÀI SẢN
33
	A.ASSET_NAME AS TEN_TS, --TEN TAI SAN
34

    
35
	--NEU BRANCH_CODE LA NULL THI DO LA HOI SO, KHI DO LAY RA MA PHONG BAN
36
	CASE WHEN D.BRANCH_CODE IS NULL OR (C.BRANCH_TYPE <> 'PGD' AND C.IS_POTENTIAL = 'N') THEN ''''+SUBSTRING(C.BRANCH_CODE, LEN(C.BRANCH_CODE) - 3,LEN(C.BRANCH_CODE))
37
		 ELSE ''''+SUBSTRING(D.BRANCH_CODE, LEN(D.BRANCH_CODE) - 3,LEN(D.BRANCH_CODE)) END AS MA_CN,
38
	CASE WHEN D.BRANCH_CODE IS NULL THEN '''00'+F.DAO_CODE ELSE '''' +SUBSTRING(C.BRANCH_CODE, LEN(C.BRANCH_CODE) - 3,LEN(C.BRANCH_CODE)) END AS MA_PGD,
39
	
40
	E.EMP_CODE AS MANV, -- MÃ NHÂN VIÊN
41
	A.BUY_DATE_KT AS NGAYNHAP, -- NGAY NHAP TÀI SẢN
42
	A.USE_DATE_KT AS NGAY_DIEU_CHINH, --NGAY DIEU CHINH CUOI CUNG
43
	A.AMORT_START_DATE AS NGAY_BD_KH, --NGÀY BAT DAU KHAU HAO
44
	A.AMORT_END_DATE AS NGAY_KT_KH, -- NGAY HET KHAU HAO	
45
	A.AMORT_START_DATE_OLD AS BD_KH_CU,-- NGAY BAT DAU KHAO HAU CU
46
	A.AMORT_END_DATE_OLD AS KT_KH_CU,-- NGAY HET KHAO HAU CU
47
	A.AMORT_RATE AS TY_LE_KHAU_HAO, -- TY LE KHAU HAO
48
	ISNULL(CC.PHAT_SINH_DAU,0) AS NGUYEN_GIA_FROM,
49
	ISNULL(BB.TONG_KH_DAU,0) AS KHAU_HAO_LK_FROM,	
50
	(ISNULL(CC.PHAT_SINH_DAU,0) - ISNULL(BB.TONG_KH_DAU,0)) AS GIA_TRI_CL_FROM,
51
	ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) AS NGUYEN_GIA_PHAT_SINH_TANG,
52
	ISNULL(AA.TONG_KH_TRONG_KHOANG,0) AS KH_PHAT_SINH_TANG,
53
	ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0) AS NGUYEN_GIA_PHAT_SINH_GIAM,
54
	ISNULL(DR.TONG_KH_TRONG_KHOANG,0) AS KH_PHAT_SINH_GIAM,
55
	--ISNULL(DD.PHAT_SINH_CUOI,0) AS NGUYEN_GIA_TO,
56
	(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,
57
	(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,
58
	--(ISNULL(DD.PHAT_SINH_CUOI,0)-ISNULL(DR.TONG_KH_TRONG_KHOANG,0) -ISNULL(BB.TONG_KH_DAU,0)) AS GIA_TRI_CL_TO,
59
	(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,
60
	A.ASSET_DESC AS GHI_CHU,---GHI CHU
61
	A.REF_AMORTIZED_AMT AS GIA_TRI_KH_CU,---GIA TRI KHAU HAO CU
62
	A.AMORT_MONTH SOTHANG_KHAUHAO,--LUCTV BEGIN 17-10- 2018
63
	--(ISNULL(AA.TONG_KH_TRONG_KHOANG,0) + ISNULL(BB.TONG_KH_DAU,0) - ISNULL(DR.TONG_KH_TRONG_KHOANG,0)* 
64
	--ISNULL(A.AMORT_MONTH,0)/(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))) DA_KH,
65
	A.AMORTIZED_MONTH -ISNULL(AMT.ST_KH_PD_TAM,0) DA_KH,
66
	--(A.AMORT_MONTH - A.AMORTIZED_MONTH )TG_KH_CONLAI,
67
	(A.AMORT_MONTH -(A.AMORTIZED_MONTH -ISNULL(AMT.ST_KH_PD_TAM,0))) TG_KH_CONLAI, -- LUCTV: 300519. SO THANG KHAU HAO CON LAI PHAI TINH DUA THEO THOI DIEM SAO KE. KHONG LAY THOI DIEM HIEN TAI.
68
	(ISNULL(CC.PHAT_SINH_DAU,0) - ISNULL(BB.TONG_KH_DAU,0)) SODU_DAUKY,
69
	ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) TANG_TRONGKY,
70
	ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0) GIAM_TRONGKY,
71
	ISNULL(CC.PHAT_SINH_DAU,0) + ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) - ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0) SODU_CUOIKY,
72
    ISNULL(BB.TONG_KH_DAU,0) KH_SD_DAUKY,
73
	ISNULL(AA.TONG_KH_TRONG_KHOANG,0) KH_TANG_TRONGKY,
74
	ISNULL(DR.TONG_KH_TRONG_KHOANG,0) KH_GIAM_TRONGKY,
75
	(ISNULL(BB.TONG_KH_DAU,0) + ISNULL(AA.TONG_KH_TRONG_KHOANG,0) - ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) KH_SD_CUOIKY,
76
	(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,
77
	'' LYDO_TANG,
78
	'' LYDO_GIAM
79
	--END LƯCTV 17-10-2018
80
	FROM ASS_MASTER  A
81
	LEFT JOIN 
82
	(
83
		SELECT A.ASSET_ID,		
84
			ISNULL(TR.BRANCH_ID, TRN.BRANCH_ID) AS BRANCH_ID,
85
			CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.DEPT_ID ELSE TR.DEPT_ID END AS DEPT_ID,
86
			CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.EMP_ID ELSE TR.EMP_ID END AS EMP_ID				
87
		FROM ASS_MASTER A
88
		LEFT JOIN --LAY DON VI MOI NHAT 
89
		(
90
			SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID		
91
			FROM ASS_LOCATION_HIST A		
92
			INNER JOIN
93
			(
94
				SELECT MAX(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
95
				FROM ASS_LOCATION_HIST B 
96
				WHERE B.USE_START_DT <= CONVERT(DATE,@p_Todate,103)
97
				GROUP BY B.ASSET_ID
98
			) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID		
99
		) AS TR ON TR.ASSET_ID = A.ASSET_ID
100
		LEFT JOIN --LAY DON VI CU NHAT
101
		(
102
			SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID		
103
			FROM ASS_LOCATION_HIST A		
104
			INNER JOIN
105
			(
106
				SELECT MIN(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
107
				FROM ASS_LOCATION_HIST B 
108
				WHERE B.USE_START_DT > CONVERT(DATE,@p_Todate,103)
109
				GROUP BY B.ASSET_ID
110
			) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID		
111
		) AS TRN ON TRN.ASSET_ID = A.ASSET_ID		
112
	) AS BRN_HIST ON BRN_HIST.ASSET_ID = A.ASSET_ID
113
	INNER JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
114
	--LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
115
	LEFT JOIN CM_BRANCH C ON BRN_HIST.BRANCH_ID = C.BRANCH_ID	
116
	LEFT JOIN CM_BRANCH D ON D.BRANCH_ID = C.FATHER_ID
117
	LEFT JOIN CM_EMPLOYEE E ON BRN_HIST.EMP_ID = E.EMP_ID
118
	LEFT JOIN CM_DEPARTMENT F ON BRN_HIST.DEPT_ID = F.DEP_ID
119
	LEFT JOIN CM_BRANCH BBR ON A.BRANCH_ID = BBR.BRANCH_ID
120
	LEFT JOIN CM_DEPARTMENT DEP ON A.DEPT_ID= DEP.DEP_ID
121
	-- GIÁ TRỊ KHAU HAO TAI NGÀY FROM
122
	-- SELECT * FROM ASS_AMORT_DT A INNER JOIN ASS_AMORT B ON A.AMORT_ID = B.AMORT_ID
123
	-- SELECT * FROM ASS_VALUES
124
	-- SELECT * FROM ASS_AMORT_DT WHERE 
125
	-- GIÁ TRỊ CÒN LAI CỦA TÀI SẢN TẠI THỜI ĐIỂM ĐÍCH
126
	LEFT JOIN
127
	(
128
		SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
129
		FROM ASS_AMORT_DT X
130
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
131
		WHERE 
132
		(X.AMORT_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
133
		AND (X.AMORT_DT <= CONVERT(DATE,@p_Todate,103)OR @p_Todate IS NULL OR @p_Todate = '')
134
		AND CRDR = 'C'
135
		GROUP BY X.ASSET_ID
136
	) AA ON A.ASSET_ID = AA.ASSET_ID
137
	LEFT JOIN
138
	(
139
		SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
140
		FROM ASS_AMORT_DT X
141
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
142
		WHERE 
143
		(X.AMORT_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
144
		AND (X.AMORT_DT <= CONVERT(DATE,@p_Todate,103)OR @p_Todate IS NULL OR @p_Todate = '')
145
		AND CRDR = 'D'
146
		GROUP BY X.ASSET_ID
147
	) DR ON A.ASSET_ID = DR.ASSET_ID
148
	-- SELECT * FROM ASS_AMORT_DT
149
	LEFT JOIN
150
	(
151
		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
152
		FROM ASS_AMORT_DT X
153
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
154
		INNER JOIN ASS_MASTER Z ON X.ASSET_ID = Z.ASSET_ID
155
		WHERE 
156
		(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 = '')
157
		AND (X.AMORT_DT < CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
158
		GROUP BY X.ASSET_ID
159
	) BB ON A.ASSET_ID = BB.ASSET_ID
160
	-- SELECT TOP 200 * FROM ASS_MASTER
161
	-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU BAT DAU KHAU HAO DEN THOI DIEM FROM
162
	LEFT JOIN
163
	(
164
		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 
165
		FROM ASS_VALUES X
166
		INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
167
		WHERE (X.TRN_DT < CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
168
		--(X.CREATE_DT >= Y.CREATE_DT) 
169
		--AND (X.CREATE_DT <= CONVERT(DATETIME,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
170
		GROUP BY X.ASSET_ID
171
	) CC ON A.ASSET_ID = CC.ASSET_ID
172
	-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM BAT DAU ĐẾN THỜI ĐIỂM TO
173
	-- SELECT * FROM ASS_MASTER
174
	LEFT JOIN
175
	(
176
		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
177
		FROM ASS_VALUES X
178
		INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
179
		WHERE --X.CREATE_DT >= Y.CREATE_DT 
180
			 (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
181
		GROUP BY X.ASSET_ID
182
	) DD ON A.ASSET_ID = DD.ASSET_ID
183
	-- PHAT SINH TANG TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
184
	-- select * from ass_values where trn_type = 'ass_use'
185
	LEFT JOIN
186
	(
187
		SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_TANG_TRONG_KHOANG
188
		FROM ASS_VALUES X
189
		--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
190
		WHERE (X.CREATE_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
191
		AND (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
192
		AND X.CRDR = 'C'
193
		GROUP BY X.ASSET_ID
194
	) EE ON A.ASSET_ID = EE.ASSET_ID
195
	-- PHAT SINH GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
196
	LEFT JOIN
197
	(
198
		SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_GIAM_TRONG_KHOANG
199
		FROM ASS_VALUES X
200
		--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
201
		WHERE (X.CREATE_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
202
		AND (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
203
		AND X.CRDR = 'D'
204
		GROUP BY X.ASSET_ID
205
	) FF ON A.ASSET_ID = FF.ASSET_ID
206
	-- TINH SO THANG DA KHAU HAO = AMORTED_MONTH - SỐ THÁNG ĐÃ KHẤU HAO : AMORT_DT > TO_DATE
207
		LEFT JOIN 
208
		(
209
			--SELECT AM_DT.ASSET_ID, ISNULL(SUM(ISNULL(AM_DT.AMORT_AMT,0)),0) AS ST_DA_PB FROM ASS_AMORT_DT AM_DT 
210
			SELECT AM_DT.ASSET_ID, ISNULL(COUNT (*),0) AS ST_KH_PD_TAM FROM ASS_AMORT_DT AM_DT 
211
			WHERE CONVERT(DATE,AM_DT.AMORT_DT) > CONVERT(DATE,@p_Todate,103)
212
			AND AM_DT.CRDR='C'
213
			GROUP BY AM_DT.ASSET_ID
214
		) AMT ON AMT.ASSET_ID = A.ASSET_ID 
215
	-- END
216
	-- SELECT * FROM ASS_VALUES
217
	WHERE  A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A'
218
	--AND A.USE_DATE < CONVERT(DATETIME,@P_DATE,103) 
219
	--AND	(A.USE_DATE >= CONVERT(datetime, @p_Fromdate, 103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
220
	--AND	(A.USE_DATE <= CONVERT(datetime, @p_Todate, 103) OR @p_Todate IS NULL OR @p_Todate = '')
221
	--AND A.AMORT_STATUS <> 'VNM'
222
	AND A.ENTRY_BOOKED = 'Y'
223
		-- NHOM TAI SAN
224
	AND (A.GROUP_ID = @p_Group_id OR @p_Group_id IS NULL OR @p_Group_id = '')
225
	-- NSD
226
	AND (A.EMP_ID = @p_User_ID OR @p_User_ID IS NULL OR @p_User_ID = '')
227
	-- NHA CUNG CAP
228
	AND (A.SUP_ID = @p_Supplier_ID OR @p_Supplier_ID IS NULL OR @p_Supplier_ID = '')
229
	-- NGUYEN GIA
230
	AND (A.BUY_PRICE >= CONVERT(decimal(18), @p_FromPrice) OR @p_FromPrice IS NULL OR @p_FromPrice = '0' )
231
	AND (A.BUY_PRICE <= CONVERT(decimal(18), @p_ToPrice)  OR @p_ToPrice IS NULL OR @p_ToPrice = '0' )
232
	AND ((@P_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) OR (A.BRANCH_ID='' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp)))
233
	OR (@P_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @p_BRANCH_ID OR (A.BRANCH_ID='' AND A.BRANCH_CREATE = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL OR BRN_HIST.BRANCH_ID IS NULL OR BRN_HIST.BRANCH_ID ='')
234
	--AND ((@P_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_login)  OR (A.BRANCH_ID='' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login)))
235
	--OR (@P_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @p_BRANCH_LOGIN OR (A.BRANCH_ID ='' and A.BRANCH_CREATE =@p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL 
236
	AND ((BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_login)  OR (A.BRANCH_ID='' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login)))
237
	OR @p_BRANCH_ID IS NOT NULL OR @p_BRANCH_ID <> '')
238
	--AND (A.USE_DATE_KT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '') --THEM 15/04 THIEUVQ
239
	--AND (A.USE_DATE >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') --THEM 15/04 THIEUVQ
240
	AND (A.USE_DATE_KT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '' OR A.USE_DATE_KT IS NULL OR A.USE_DATE_KT ='') -- 04-01-19 LUCTV BO SUNG CHO PHEP LOC TAI SAN CHUA XUAT SU DUNG
241
	AND A.TYPE_ID = 'TSCD' --THEM 15/04 THIEUVQ
242
	AND (CONVERT(DATE,A.LIQUIDATION_DT) >= CONVERT(DATE,@p_Fromdate,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT = '')
243
	
244
	UNION
245
	SELECT 
246
	0 AS STT,
247
	--[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS NHOMTS, --EM GOM NHOM THEO 3 CAI THUOC TINH NAY NHA
248
	--[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'2') AS NHOM_TS2,
249
	--[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'3') AS NHOM_TS3,
250
	[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'1') + ' - '+ [dbo].[FN_GET_ASSET_ACCTNO] (A.GROUP_ID) AS DVSD,
251
	'' PBSD,
252
	--''NHOM_TS4,
253
	[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS NHOM_TS4,	
254
	--[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'4') AS MS_TS, -- MÃ SỐ TÀI SẢN
255
	'' AS MS_TS, -- MÃ SỐ TÀI SẢN
256
	 '' AS TEN_TS, --TEN TAI SAN
257

    
258
	--NEU BRANCH_CODE LA NULL THI DO LA HOI SO, KHI DO LAY RA MA PHONG BAN
259
	'' MA_CN,
260
	'' MA_PGD,
261
	
262
	'' AS MANV, -- MÃ NHÂN VIÊN
263
	NULL AS NGAYNHAP, -- NGAY NHAP TÀI SẢN
264
	NULL AS NGAY_DIEU_CHINH, --NGAY DIEU CHINH CUOI CUNG
265
	NULL AS NGAY_BD_KH, --NGÀY BAT DAU KHAU HAO
266
	NULL AS NGAY_KT_KH, -- NGAY HET KHAU HAO	
267
	NULL AS BD_KH_CU,-- NGAY BAT DAU KHAO HAU CU
268
	NULL AS KT_KH_CU,-- NGAY HET KHAO HAU CU
269
	SUM(A.AMORT_RATE) AS TY_LE_KHAU_HAO, -- TY LE KHAU HAO
270
	SUM(ISNULL(CC.PHAT_SINH_DAU,0)) AS NGUYEN_GIA_FROM,
271
	SUM(ISNULL(BB.TONG_KH_DAU,0)) AS KHAU_HAO_LK_FROM,	
272
	SUM((ISNULL(CC.PHAT_SINH_DAU,0) - ISNULL(BB.TONG_KH_DAU,0))) AS GIA_TRI_CL_FROM,
273
	SUM(ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0)) AS NGUYEN_GIA_PHAT_SINH_TANG,
274
	SUM(ISNULL(AA.TONG_KH_TRONG_KHOANG,0)) AS KH_PHAT_SINH_TANG,
275
	SUM(ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0)) AS NGUYEN_GIA_PHAT_SINH_GIAM,
276
	SUM(ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) AS KH_PHAT_SINH_GIAM,
277
	--ISNULL(DD.PHAT_SINH_CUOI,0) AS NGUYEN_GIA_TO,
278
	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,
279
	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,
280
	--(ISNULL(DD.PHAT_SINH_CUOI,0)-ISNULL(DR.TONG_KH_TRONG_KHOANG,0) -ISNULL(BB.TONG_KH_DAU,0)) AS GIA_TRI_CL_TO,
281
	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,
282
	NULL  AS GHI_CHU,---GHI CHU
283
	SUM(A.REF_AMORTIZED_AMT) AS GIA_TRI_KH_CU,---GIA TRI KHAU HAO CU
284
	NULL SOTHANG_KHAUHAO,
285
	--SUM(A.AMORT_MONTH) SOTHANG_KHAUHAO,--LUCTV BEGIN 17-10- 2018
286
	--SUM(ISNULL(AA.TONG_KH_TRONG_KHOANG,0) + ISNULL(BB.TONG_KH_DAU,0) - ISNULL(DR.TONG_KH_TRONG_KHOANG,0)* 
287
	--ISNULL(A.AMORT_MONTH,0)/(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))) DA_KH,
288
	--SUM(A.AMORTIZED_MONTH)  DA_KH,
289
	NULL DA_KH,
290
	NULL TG_KH_CONLAI,
291
	--SUM(A.AMORT_MONTH-A.AMORTIZED_MONTH) TG_KH_CONLAI,
292
	SUM(ISNULL(CC.PHAT_SINH_DAU,0))SODU_DAUKY,
293
	SUM(ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0)) TANG_TRONGKY,
294
	SUM(ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0)) GIAM_TRONGKY,
295
	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,
296
    SUM(ISNULL(BB.TONG_KH_DAU,0)) KH_SD_DAUKY,
297
	SUM(ISNULL(AA.TONG_KH_TRONG_KHOANG,0)) KH_TANG_TRONGKY,
298
	SUM(ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) KH_GIAM_TRONGKY,
299
	SUM(ISNULL(BB.TONG_KH_DAU,0) + ISNULL(AA.TONG_KH_TRONG_KHOANG,0) - ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) KH_SD_CUOIKY,
300
	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,
301
	'' LYDO_TANG,
302
	'' LYDO_GIAM
303
	--END LƯCTV 17-10-2018
304
	FROM ASS_MASTER  A
305
	LEFT JOIN 
306
	(
307
		SELECT A.ASSET_ID,		
308
			ISNULL(TR.BRANCH_ID, TRN.BRANCH_ID) AS BRANCH_ID,
309
			CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.DEPT_ID ELSE TR.DEPT_ID END AS DEPT_ID,
310
			CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.EMP_ID ELSE TR.EMP_ID END AS EMP_ID				
311
		FROM ASS_MASTER A
312
		LEFT JOIN --LAY DON VI MOI NHAT 
313
		(
314
			SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID		
315
			FROM ASS_LOCATION_HIST A		
316
			INNER JOIN
317
			(
318
				SELECT MAX(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
319
				FROM ASS_LOCATION_HIST B 
320
				WHERE B.USE_START_DT <= CONVERT(DATE,@p_Todate,103)
321
				GROUP BY B.ASSET_ID
322
			) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID		
323
		) AS TR ON TR.ASSET_ID = A.ASSET_ID
324
		LEFT JOIN --LAY DON VI CU NHAT
325
		(
326
			SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID		
327
			FROM ASS_LOCATION_HIST A		
328
			INNER JOIN
329
			(
330
				SELECT MIN(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
331
				FROM ASS_LOCATION_HIST B 
332
				WHERE B.USE_START_DT > CONVERT(DATE,@p_Todate,103)
333
				GROUP BY B.ASSET_ID
334
			) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID		
335
		) AS TRN ON TRN.ASSET_ID = A.ASSET_ID		
336
	) AS BRN_HIST ON BRN_HIST.ASSET_ID = A.ASSET_ID
337
	INNER JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
338
	--LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
339
	LEFT JOIN CM_BRANCH C ON BRN_HIST.BRANCH_ID = C.BRANCH_ID	
340
	LEFT JOIN CM_BRANCH D ON D.BRANCH_ID = C.FATHER_ID
341
	LEFT JOIN CM_EMPLOYEE E ON BRN_HIST.EMP_ID = E.EMP_ID
342
	LEFT JOIN CM_DEPARTMENT F ON BRN_HIST.DEPT_ID = F.DEP_ID
343

    
344
	-- GIÁ TRỊ KHAU HAO TAI NGÀY FROM
345
	-- SELECT * FROM ASS_AMORT_DT A INNER JOIN ASS_AMORT B ON A.AMORT_ID = B.AMORT_ID
346
	-- SELECT * FROM ASS_VALUES
347
	-- SELECT * FROM ASS_AMORT_DT WHERE 
348
	-- GIÁ TRỊ CÒN LAI CỦA TÀI SẢN TẠI THỜI ĐIỂM ĐÍCH
349
	LEFT JOIN
350
	(
351
		SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
352
		FROM ASS_AMORT_DT X
353
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
354
		WHERE 
355
		(X.AMORT_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
356
		AND (X.AMORT_DT <= CONVERT(DATE,@p_Todate,103)OR @p_Todate IS NULL OR @p_Todate = '')
357
		AND CRDR = 'C'
358
		GROUP BY X.ASSET_ID
359
	) AA ON A.ASSET_ID = AA.ASSET_ID
360
	LEFT JOIN
361
	(
362
		SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
363
		FROM ASS_AMORT_DT X
364
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
365
		WHERE 
366
		(X.AMORT_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
367
		AND (X.AMORT_DT <= CONVERT(DATE,@p_Todate,103)OR @p_Todate IS NULL OR @p_Todate = '')
368
		AND CRDR = 'D'
369
		GROUP BY X.ASSET_ID
370
	) DR ON A.ASSET_ID = DR.ASSET_ID
371
	-- SELECT * FROM ASS_AMORT_DT
372
	LEFT JOIN
373
	(
374
		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
375
		FROM ASS_AMORT_DT X
376
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
377
		INNER JOIN ASS_MASTER Z ON X.ASSET_ID = Z.ASSET_ID
378
		WHERE 
379
		(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 = '')
380
		AND (X.AMORT_DT < CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
381
		GROUP BY X.ASSET_ID
382
	) BB ON A.ASSET_ID = BB.ASSET_ID
383
	-- SELECT TOP 200 * FROM ASS_MASTER
384
	-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU BAT DAU KHAU HAO DEN THOI DIEM FROM
385
	LEFT JOIN
386
	(
387
		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 
388
		FROM ASS_VALUES X
389
		INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
390
		WHERE (X.TRN_DT < CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
391
		--(X.CREATE_DT >= Y.CREATE_DT) 
392
		--AND (X.CREATE_DT <= CONVERT(DATETIME,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
393
		GROUP BY X.ASSET_ID
394
	) CC ON A.ASSET_ID = CC.ASSET_ID
395
	-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM BAT DAU ĐẾN THỜI ĐIỂM TO
396
	-- SELECT * FROM ASS_MASTER
397
	LEFT JOIN
398
	(
399
		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
400
		FROM ASS_VALUES X
401
		INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
402
		WHERE --X.CREATE_DT >= Y.CREATE_DT 
403
			 (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
404
		GROUP BY X.ASSET_ID
405
	) DD ON A.ASSET_ID = DD.ASSET_ID
406
	-- PHAT SINH TANG TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
407
	-- select * from ass_values where trn_type = 'ass_use'
408
	LEFT JOIN
409
	(
410
		SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_TANG_TRONG_KHOANG
411
		FROM ASS_VALUES X
412
		--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
413
		WHERE (X.CREATE_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
414
		AND (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
415
		AND X.CRDR = 'C'
416
		GROUP BY X.ASSET_ID
417
	) EE ON A.ASSET_ID = EE.ASSET_ID
418
	-- PHAT SINH GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
419
	LEFT JOIN
420
	(
421
		SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_GIAM_TRONG_KHOANG
422
		FROM ASS_VALUES X
423
		--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
424
		WHERE (X.CREATE_DT >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') 
425
		AND (X.CREATE_DT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '')
426
		AND X.CRDR = 'D'
427
		GROUP BY X.ASSET_ID
428
	) FF ON A.ASSET_ID = FF.ASSET_ID
429

    
430
	-- SELECT * FROM ASS_VALUES
431
	WHERE  A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A'
432
	--AND A.USE_DATE < CONVERT(DATETIME,@P_DATE,103) 
433
	--AND	(A.USE_DATE >= CONVERT(datetime, @p_Fromdate, 103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
434
	--AND	(A.USE_DATE <= CONVERT(datetime, @p_Todate, 103) OR @p_Todate IS NULL OR @p_Todate = '')
435
	--AND A.AMORT_STATUS <> 'VNM'
436
	AND A.ENTRY_BOOKED = 'Y'
437
		-- NHOM TAI SAN
438
	AND (A.GROUP_ID = @p_Group_id OR @p_Group_id IS NULL OR @p_Group_id = '')
439
	-- NSD
440
	AND (A.EMP_ID = @p_User_ID OR @p_User_ID IS NULL OR @p_User_ID = '')
441
	-- NHA CUNG CAP
442
	AND (A.SUP_ID = @p_Supplier_ID OR @p_Supplier_ID IS NULL OR @p_Supplier_ID = '')
443
	-- NGUYEN GIA
444
	AND (A.BUY_PRICE >= CONVERT(decimal(18), @p_FromPrice) OR @p_FromPrice IS NULL OR @p_FromPrice = '0' )
445
	AND (A.BUY_PRICE <= CONVERT(decimal(18), @p_ToPrice)  OR @p_ToPrice IS NULL OR @p_ToPrice = '0' )
446
		AND ((@P_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) OR (A.BRANCH_ID='' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp)))
447
	OR (@P_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @p_BRANCH_ID OR (A.BRANCH_ID='' AND A.BRANCH_CREATE = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL OR BRN_HIST.BRANCH_ID IS NULL OR BRN_HIST.BRANCH_ID ='')
448
	--AND ((@P_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_login)  OR (A.BRANCH_ID='' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login)))
449
	--OR (@P_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @p_BRANCH_LOGIN OR (A.BRANCH_ID ='' and A.BRANCH_CREATE =@p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL 
450
	--OR @p_BRANCH_ID IS NOT NULL OR @p_BRANCH_ID <> '')
451
	AND ((BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_login)  OR (A.BRANCH_ID='' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login)))
452
	OR @p_BRANCH_ID IS NOT NULL OR @p_BRANCH_ID <> '')
453
	--AND (A.USE_DATE_KT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '') --THEM 15/04 THIEUVQ
454
	--AND (A.USE_DATE >= CONVERT(DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate = '') --THEM 15/04 THIEUVQ
455
	AND (A.USE_DATE_KT <= CONVERT(DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate = '' OR A.USE_DATE_KT IS NULL OR A.USE_DATE_KT ='') -- 04-01-19 LUCTV BO SUNG CHO PHEP LOC TAI SAN CHUA XUAT SU DUNG
456
	AND A.TYPE_ID = 'TSCD' --THEM 15/04 THIEUVQ
457
	AND (CONVERT(DATE,A.LIQUIDATION_DT) >= CONVERT(DATE,@p_Fromdate,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT = '')
458

    
459
	GROUP BY [dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1'), [dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'1'),[dbo].[FN_GET_ASSET_ACCTNO] (A.GROUP_ID)
460
	) GR
461
ORDER BY GR.NHOM_TS4, GR.DVSD DESC
462
END