Project

General

Profile

rpt_TSCD_BC08_2_Excel_BanViet.txt

Luc Tran Van, 03/07/2023 03:46 PM

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

    
17
declare @tmp table(BRANCH_ID varchar(15))
18
insert into @tmp  SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
19
declare @tmp_login table(BRANCH_ID varchar(15))
20
insert into @tmp_login  SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
21
	SELECT GR.* FROM 
22
	(
23
	SELECT 
24
	Row_number() OVER(ORDER BY A.ASSET_ID) AS STT,
25
	--[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS NHOMTS, --EM GOM NHOM THEO 3 CAI THUOC TINH NAY NHA
26
	--[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'2') AS NHOM_TS2,
27
	--[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'3') AS NHOM_TS3,
28
	BBR.BRANCH_CODE +' - ' +BBR.BRANCH_NAME AS DVSD,
29
	DEP.DEP_CODE +' - '+DEP.DEP_NAME AS PBSD,
30
	[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS NHOM_TS4,	
31
	A.ASSET_CODE AS MS_TS, -- MÃ SỐ TÀI SẢN
32
	A.ASSET_NAME AS TEN_TS, --TEN TAI SAN
33

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

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

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

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

    
458
	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)
459
	) GR
460
ORDER BY GR.NHOM_TS4, GR.DVSD DESC
461
END