Project

General

Profile

Lấy số lượng tài sản chart2.txt

Luc Tran Van, 03/16/2023 09:14 AM

 
1
declare	@p_USER_LOGIN VARCHAR(250) = NULL,
2
@p_BRANCH_ID VARCHAR(15) = NULL,
3
@p_YEAR VARCHAR(15) = NULL
4
	
5
	DECLARE @RESULT TABLE (
6
		AMORT_STATUS VARCHAR(15),
7
		TOTAL_COUNT FLOAT
8
	)
9
	DECLARE @BRANCH_LOGIN varchar(15) ='', @DEP_LOGIN varchar(15) =''
10
	SELECT @DEP_LOGIN = SECUR_CODE, @BRANCH_LOGIN = TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN
11

    
12
  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')))
13
  BEGIN
14
    IF(@BRANCH_LOGIN = 'DV0001') SET @p_BRANCH_ID = @DEP_LOGIN
15
    ELSE SET @p_BRANCH_ID = @BRANCH_LOGIN
16
  END
17

    
18
	IF(EXISTS(	SELECT A.AMORT_STATUS AS AMORT_STATUS, COUNT(A.AMORT_STATUS) AS TOTAL_COUNT
19
				FROM ASS_MASTER A
20
				WHERE 1=1
21
				--AND (A.AMORT_STATUS = 'DKH' OR A.AMORT_STATUS = 'CKH' OR A.AMORT_STATUS = 'VNM' 
22
				--OR (A.AMORT_STATUS <> 'DKH' OR A.AMORT_STATUS <> 'CKH' OR A.AMORT_STATUS <> 'VNM'))
23
				AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.DEPT_ID = @p_BRANCH_ID)
24
				--AND (YEAR(A.BUY_DATE_KT) <= CONVERT(INT,@p_YEAR) OR @p_YEAR IS NULL OR @p_YEAR = '' )
25
				GROUP BY A.AMORT_STATUS)
26
		)
27
		BEGIN
28
				
29

    
30
				INSERT INTO @RESULT
31
				SELECT A.AMORT_STATUS AS AMORT_STATUS, COUNT(A.AMORT_STATUS) AS TOTAL_COUNT
32
				FROM ASS_MASTER A
33
				WHERE 1=1
34
				--AND (A.AMORT_STATUS = 'DKH' OR A.AMORT_STATUS = 'CKH' OR A.AMORT_STATUS = 'VNM' 
35
				--OR (A.AMORT_STATUS <> 'DKH' OR A.AMORT_STATUS <> 'CKH' OR A.AMORT_STATUS <> 'VNM'))
36
				AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.DEPT_ID = @p_BRANCH_ID)
37
				--AND (YEAR(A.BUY_DATE_KT) <= CONVERT(INT,@p_YEAR) OR @p_YEAR IS NULL OR @p_YEAR = '' )
38
				GROUP BY A.AMORT_STATUS
39

    
40
			------------- Tài sản chờ thu hồi-----------------------------
41
				DECLARE @TOTAL_COUNT_CTH INT = 0
42

    
43
				SELECT @TOTAL_COUNT_CTH = COUNT(*) FROM ASS_MASTER A 
44
				INNER JOIN ASS_COLLECT_MULTI_DT B ON A.ASSET_ID = B.ASSET_ID 
45
				INNER JOIN ASS_COLLECT_MULTI_MASTER C ON B.COL_MULTI_MASTER_ID = C.COL_MULTI_MASTER_ID 
46
				WHERE C.AUTH_STATUS_KT <> 'A' AND (C.AUTH_STATUS) ='A' -- LUCTV 05-03-23 BO SUNG THEM DIEU KIEN 
47
				AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.DEPT_ID = @p_BRANCH_ID)
48
				--AND (YEAR(A.BUY_DATE_KT) <= CONVERT(INT,@p_YEAR) OR @p_YEAR IS NULL OR @p_YEAR = '' )
49
				------------- Tài sản chờ thu hồi-----------------------------
50

    
51
				------------- Tài sản đang sử dụng-----------------------------
52
				DECLARE @TOTAL_COUNT_DSD INT = 0
53

    
54
				SELECT @TOTAL_COUNT_DSD = SUM(TOTAL_COUNT) FROM @RESULT WHERE AMORT_STATUS IN ('KHX','DKH','CKH','NKH','KKH','DPB')
55
				------------- Tài sản đang sử dụng-----------------------------
56

    
57
				------------- Tài sản tồn kho-----------------------------
58
				DECLARE @TOTAL_COUNT_TK INT = 0
59

    
60
				SELECT @TOTAL_COUNT_TK = SUM(TOTAL_COUNT) FROM @RESULT WHERE AMORT_STATUS IN ('VNM')
61
				------------- Tài sản tồn kho-----------------------------
62
				DELETE FROM @RESULT
63
				INSERT INTO @RESULT( AMORT_STATUS, TOTAL_COUNT) VALUES('CTH', @TOTAL_COUNT_CTH)
64
				INSERT INTO @RESULT( AMORT_STATUS, TOTAL_COUNT) VALUES('DSD', @TOTAL_COUNT_DSD)
65
				INSERT INTO @RESULT( AMORT_STATUS, TOTAL_COUNT) VALUES('TK', @TOTAL_COUNT_TK)
66

    
67
				-------Chuyển từ số lượng sang % -------------
68
				--DECLARE @SUM_TOTAL_COUNT INT = 0
69
				--SELECT @SUM_TOTAL_COUNT = SUM(TOTAL_COUNT) FROM @RESULT
70
				--UPDATE @RESULT SET TOTAL_COUNT = ROUND(TOTAL_COUNT * 100 / @SUM_TOTAL_COUNT, 2)
71
				-------Chuyển từ số lượng sang % -------------
72
		END
73
		ELSE
74
		BEGIN
75
			INSERT INTO @RESULT( AMORT_STATUS, TOTAL_COUNT) VALUES('CTH', 0)
76
			INSERT INTO @RESULT( AMORT_STATUS, TOTAL_COUNT) VALUES('DSD', 0)
77
			INSERT INTO @RESULT( AMORT_STATUS, TOTAL_COUNT) VALUES('TK', 0)
78
		END
79
	SELECT * FROM @RESULT