Project

General

Profile

rpt_TSCD_BC08_2_Excel_BanViet.txt

Luc Tran Van, 03/20/2023 02:50 PM

 
1
USE gAMSPro_BVB_v3_FINAL
2
GO
3

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

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

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

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

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

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

    
461
	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)
462
	) GR
463
ORDER BY GR.NHOM_TS4, GR.DVSD DESC
464
END
465

    
466
GO