1
|
|
2
|
|
3
|
-- BIEU DO O1 NGAN SACH
|
4
|
ALTER PROC [dbo].[DB_VALUE_ASSET_PIE]
|
5
|
@p_USER_LOGIN VARCHAR(250) = NULL,
|
6
|
@p_TYPE_ID VARCHAR(5) = NULL, -- TSCD, CCLD, ALL=''
|
7
|
@p_GROUP_ID VARCHAR(15) = NULL, -- ALL=''
|
8
|
@p_BRANCH_ID VARCHAR(15) = NULL, -- ALL=''
|
9
|
@p_YEAR VARCHAR(4) = NULL
|
10
|
AS
|
11
|
BEGIN
|
12
|
DECLARE @BRANCH_LOGIN varchar(15) ='', @DEP_LOGIN varchar(15) =''
|
13
|
SELECT @DEP_LOGIN = SECUR_CODE, @BRANCH_LOGIN = TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN
|
14
|
|
15
|
IF(NOT EXISTS(SELECT * FROM CM_DEPARTMENT cd WHERE cd.BRANCH_ID = @BRANCH_LOGIN AND cd.DEP_ID = @DEP_LOGIN AND (cd.DEP_CODE = '0690604' OR cd.DEP_CODE = '0690802' OR cd.DEP_CODE = '0690803')))
|
16
|
BEGIN
|
17
|
IF(@BRANCH_LOGIN = 'DV0001') SET @p_BRANCH_ID = @DEP_LOGIN
|
18
|
ELSE SET @p_BRANCH_ID = @BRANCH_LOGIN
|
19
|
END
|
20
|
|
21
|
|
22
|
SELECT ISNULL(ROUND(SUM(VL.BUY_PRICE)/1000000000,2),0) AS AMORT_AMT,
|
23
|
ISNULL(ROUND((SUM(VL.BUY_PRICE) - SUM(ISNULL(AM.AMORTIZED_AMT,0)))/1000000000,2),0) AS SUMARY_GTCL,
|
24
|
ISNULL(ROUND((SUM(ISNULL(AM.AMORTIZED_AMT,0)))/1000000000,2),0) AS SUMARY_GTKH
|
25
|
FROM ASS_MASTER A
|
26
|
LEFT JOIN
|
27
|
(
|
28
|
SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS BUY_PRICE
|
29
|
FROM ASS_VALUES X
|
30
|
INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
|
31
|
WHERE --X.CREATE_DT >= Y.CREATE_DT
|
32
|
(YEAR (X.CREATE_DT) <= CAST(@p_YEAR AS INT) OR CAST(@p_YEAR AS INT) IS NULL OR CAST(@p_YEAR AS INT) = '')
|
33
|
GROUP BY X.ASSET_ID
|
34
|
) VL ON A.ASSET_ID = VL.ASSET_ID
|
35
|
LEFT JOIN
|
36
|
(
|
37
|
SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS AMORTIZED_AMT
|
38
|
FROM ASS_AMORT_DT X
|
39
|
INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
|
40
|
WHERE --X.CREATE_DT >= Y.CREATE_DT
|
41
|
(YEAR (X.AMORT_DT) <= CAST(@p_YEAR AS INT) OR CAST(@p_YEAR AS INT) IS NULL OR CAST(@p_YEAR AS INT) = '')
|
42
|
GROUP BY X.ASSET_ID
|
43
|
) AM ON A.ASSET_ID = AM.ASSET_ID
|
44
|
WHERE 1=1
|
45
|
AND (A.TYPE_ID=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
46
|
--AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
47
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID)
|
48
|
OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID))
|
49
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID OR (A.TYPE_ID ='TSCD' AND ISNULL(A.BRANCH_CREATE,'') =@p_BRANCH_ID))
|
50
|
AND (YEAR(A.BUY_DATE_KT) <= CAST(@p_YEAR AS INT) OR CAST(@p_YEAR AS INT) IS NULL OR CAST(@p_YEAR AS INT) = '' OR (A.[TYPE_ID] ='TSCD' AND A.BUY_DATE_KT IS NULL OR BUY_DATE_KT ='') )
|
51
|
--AND ((A.[TYPE_ID] = 'TSCD' AND YEAR(A.LIQUIDATION_DT) >= CAST(@p_YEAR AS INT) OR CAST(@p_YEAR AS INT) IS NULL OR CAST(@p_YEAR AS INT) ='' OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='')
|
52
|
AND (A.[TYPE_ID] ='CCLD' AND A.AMORT_STATUS <> 'VNM' OR A.[TYPE_ID] ='TSCD')
|
53
|
------------------------
|
54
|
END
|
55
|
|