Project

General

Profile

UP_PL_MASTER_SEARCH_NEW.txt

Truong Nguyen Vu, 08/26/2020 01:25 PM

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[PL_MASTER_Search_New]
4
@P_PLAN_CODE nvarchar(15) = NULL,
5
@p_PLAN_NAME NVARCHAR(200) = NULL,
6
@P_YEAR NVARCHAR(4) = NULL,
7
@P_COST_ID nvarchar(15) = NULL,
8
@P_BRANCH_ID nvarchar(15) = NULL,
9
@P_BRANCHLOGIN NVARCHAR(15) = NULL,
10
@P_PLAN_TYPE_ID NVARCHAR(15) = NULL,
11
@p_DEP_ID NVARCHAR(15) = NULL,
12
@p_GOOD_NAME NVARCHAR(200) = NULL,
13
@p_USER_LOGIN VARCHAR(200) = NULL,
14
@P_TOP INT = 10,
15
@P_LEVEL varchar(10) = NULL
16
AS
17
BEGIN	
18
	SET @P_TOP = NULL
19
	declare @tmp table(BRANCH_ID varchar(15))
20
	insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@P_BRANCHLOGIN)
21

    
22
	DECLARE @BRANCH_TYPE VARCHAR(15),@DEPLOGIN VARCHAR(20),@ROLE_USER VARCHAR(15),@IS_ALL BIT
23

    
24
	
25
	SET @IS_ALL=0
26
	DECLARE @DVDM_ID TABLE( DVDM_ID VARCHAR(20))
27
	
28
	SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@P_BRANCHLOGIN)
29
	SET @DEPLOGIN =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN)
30
	
31

    
32

    
33
	IF(EXISTS(SELECT ID FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_MASTER' AND BRANCH_ID=@P_BRANCHLOGIN AND DEP_ID=@DEPLOGIN) OR EXISTS(SELECT ID FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='HANHCHINH' AND BRANCH_ID=@P_BRANCHLOGIN AND DEP_ID=@DEPLOGIN))
34
		SET @IS_ALL=1
35
	SET @ROLE_USER = (SELECT RoleName FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN)
36

    
37

    
38
	IF(@IS_ALL=1 OR @ROLE_USER='TGD')
39
	BEGIN
40
	 INSERT INTO @DVDM_ID
41
	 SELECT  DVDM_ID FROM dbo.CM_DVDM WHERE IS_DVDM=1
42
	END
43
	ELSE
44
	BEGIN
45
	 INSERT INTO @DVDM_ID
46
	 SELECT  PC.DVDM_ID FROM 
47
									dbo.PL_COSTCENTER PC 
48
									LEFT JOIN dbo.PL_COSTCENTER_DT PT ON PT.COST_ID=PC.COST_ID
49
									WHERE PT.DEP_ID=@DEPLOGIN AND PT.BRANCH_ID=@P_BRANCHLOGIN AND EXISTS(SELECT DVDM_ID FROM dbo.CM_DVDM WHERE IS_DVDM=1)
50
		
51
	END
52
		IF (@P_TOP = 0 OR @P_TOP IS NULL)
53
		BEGIN
54
		SELECT L.*, D.BRANCH_CODE,LDT.QUANTITY_APP,LDT.QUANTITY_USE, LDT.QUANTITY_REMAIN,
55
		LDT.QUANTITY_ETM,LDT.QUANTITY_REMAIN_ETM,LDT.AMT_APPROVE,LDT.AMT_EXE,LDT.AMT_REMAIN,LDT.AMT_ETM,LDT.AMT_REMAIN_ETM	,LDT.AMT_TRANSFER,LDT.AMT_RECEIVE_TRANSFER,
56
		
57
		D.BRANCH_NAME PGD, E.DEP_CODE, E.DEP_NAME,CC.DVDM_CODE  AS COST_CODE,CC.DVDM_NAME AS COST_NAME,PT.PLAN_TYPE_CODE,PT.PLAN_TYPE_NAME,
58
		CASE WHEN @BRANCH_TYPE='HS' THEN D.BRANCH_NAME + '-' + E.DEP_NAME
59
		ELSE D.BRANCH_NAME END AS DVCP_NAME
60
		FROM PL_MASTER L 
61
		INNER JOIN (
62
			SELECT DT.PLAN_ID,
63
			SUM(ISNULL(DT.QUANTITY,0)) AS QUANTITY_APP,SUM(ISNULL(DT.QUANTITY_EXE,0)) AS  QUANTITY_USE,
64
			SUM(ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_EXE,0)) AS QUANTITY_REMAIN,SUM(ISNULL(DT.QUANTITY_ETM,0)) AS  QUANTITY_ETM,
65
			SUM(ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0)) AS QUANTITY_REMAIN_ETM,
66

    
67
			SUM(ISNULL(DT.AMT_APP,0)) AS AMT_APPROVE,SUM(ISNULL(DT.AMT_EXE,0)) AS  AMT_EXE,
68
			SUM(ISNULL(DT.AMT_TF,0)) AS AMT_TRANSFER,SUM(ISNULL(DT.AMT_RECEIVE_TF,0)) AS AMT_RECEIVE_TRANSFER,
69
			SUM(ISNULL(DT.AMT_APP,0)+ISNULL(DT.AMT_RECEIVE_TF,0)-ISNULL(DT.AMT_TF,0)-ISNULL(DT.AMT_EXE,0)) AS AMT_REMAIN,
70
			SUM(ISNULL(DT.AMT_ETM,0)) AS  AMT_ETM,
71
			SUM(ISNULL(DT.AMT_APP,0) +ISNULL(DT.AMT_RECEIVE_TF,0)-ISNULL(DT.AMT_TF,0)-ISNULL(DT.AMT_ETM,0)) AS AMT_REMAIN_ETM 
72
			FROM dbo.PL_TRADEDETAIL DT 
73
			LEFT JOIN dbo.CM_GOODS CG ON DT.GOODS_ID=CG.GD_ID
74
			WHERE ( CG.GD_NAME LIKE '%' + @p_GOOD_NAME +'%' OR @p_GOOD_NAME IS NULL OR @p_GOOD_NAME='')
75
			GROUP BY DT.PLAN_ID
76
		) LDT ON LDT.PLAN_ID = L.PLAN_ID
77
		LEFT JOIN CM_BRANCH D ON  D.BRANCH_ID = L.BRANCH_ID
78
		LEFT JOIN CM_DEPARTMENT E ON E.DEP_ID = L.DEPT_ID
79
		LEFT JOIN dbo.CM_DVDM CC ON CC.DVDM_ID=L.COST_ID
80
		LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=L.PLAN_TYPE_ID
81
		WHERE 1=1
82
			AND (L.PLAN_CODE LIKE '%' + @P_PLAN_CODE + '%' OR @P_PLAN_CODE IS NULL OR @P_PLAN_CODE = '')
83
			AND (L.PLAN_NAME LIKE '%' + @p_PLAN_NAME + '%' OR @p_PLAN_NAME = '' OR @p_PLAN_NAME IS NULL)
84
			AND (L.[YEAR] LIKE '%' + @P_YEAR + '%' OR @P_YEAR IS NULL OR @P_YEAR = '')
85
			AND (L.PLAN_TYPE_ID = @P_PLAN_TYPE_ID OR @P_PLAN_TYPE_ID IS NULL OR @P_PLAN_TYPE_ID = '')
86
			AND (L.COST_ID = @P_COST_ID OR @P_COST_ID IS NULL OR @P_COST_ID = '')
87
			AND (L.DEPT_ID = @P_DEP_ID OR @P_DEP_ID IS NULL OR @P_DEP_ID = '')
88
			AND (L.BRANCH_ID = @P_BRANCH_ID OR @P_BRANCH_ID IS NULL OR @P_BRANCH_ID = '')
89
			AND ((@BRANCH_TYPE='HS' AND((L.BRANCH_ID=@P_BRANCHLOGIN AND  L.DEPT_ID=@DEPLOGIN ) OR L.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID))) OR (@BRANCH_TYPE <>'HS' AND L.BRANCH_ID=@P_BRANCHLOGIN))
90
			
91
			AND L.RECORD_STATUS = '1'	
92
		END
93
		ELSE 
94
		BEGIN
95

    
96
				IF (@P_TOP <> 0 AND @P_TOP IS NOT NULL )
97
				BEGIN
98
				
99
			SELECT L.*, D.BRANCH_CODE,LDT.QUANTITY_APP,LDT.QUANTITY_USE, LDT.QUANTITY_REMAIN,
100
LDT.QUANTITY_ETM,LDT.QUANTITY_REMAIN_ETM,LDT.AMT_APPROVE,LDT.AMT_EXE,LDT.AMT_REMAIN,LDT.AMT_ETM,LDT.AMT_REMAIN_ETM	,LDT.AMT_TRANSFER,LDT.AMT_RECEIVE_TRANSFER,
101
		
102
		D.BRANCH_NAME PGD, E.DEP_CODE, E.DEP_NAME,CC.DVDM_CODE  AS COST_CODE,CC.DVDM_NAME AS COST_NAME,PT.PLAN_TYPE_CODE,PT.PLAN_TYPE_NAME,
103
		CASE WHEN @BRANCH_TYPE='HS' THEN D.BRANCH_NAME + '-' + E.DEP_NAME
104
		ELSE D.BRANCH_NAME END AS DVCP_NAME
105
		FROM PL_MASTER L 
106
		INNER JOIN (
107
			SELECT DT.PLAN_ID,
108
			SUM(ISNULL(DT.QUANTITY,0)) AS QUANTITY_APP,SUM(ISNULL(DT.QUANTITY_EXE,0)) AS  QUANTITY_USE,
109
			SUM(ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_EXE,0)) AS QUANTITY_REMAIN,SUM(ISNULL(DT.QUANTITY_ETM,0)) AS  QUANTITY_ETM,
110
			SUM(ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0)) AS QUANTITY_REMAIN_ETM,
111

    
112
			SUM(ISNULL(DT.AMT_APP,0)) AS AMT_APPROVE,SUM(ISNULL(DT.AMT_EXE,0)) AS  AMT_EXE,
113
			SUM(ISNULL(DT.AMT_TF,0)) AS AMT_TRANSFER,SUM(ISNULL(DT.AMT_RECEIVE_TF,0)) AS AMT_RECEIVE_TRANSFER,
114
			SUM(ISNULL(DT.AMT_APP,0)+ISNULL(DT.AMT_RECEIVE_TF,0)-ISNULL(DT.AMT_TF,0)-ISNULL(DT.AMT_EXE,0)) AS AMT_REMAIN,
115
			SUM(ISNULL(DT.AMT_ETM,0)) AS  AMT_ETM,
116
			SUM(ISNULL(DT.AMT_APP,0) +ISNULL(DT.AMT_RECEIVE_TF,0)-ISNULL(DT.AMT_TF,0)-ISNULL(DT.AMT_ETM,0)) AS AMT_REMAIN_ETM 
117
			FROM dbo.PL_TRADEDETAIL DT 
118
			LEFT JOIN dbo.CM_GOODS CG ON DT.GOODS_ID=CG.GD_ID
119
			WHERE ( CG.GD_NAME LIKE '%' + @p_GOOD_NAME +'%' OR @p_GOOD_NAME IS NULL OR @p_GOOD_NAME='')
120
			GROUP BY DT.PLAN_ID
121
		) LDT ON LDT.PLAN_ID = L.PLAN_ID
122
		LEFT JOIN CM_BRANCH D ON  D.BRANCH_ID = L.BRANCH_ID
123
		LEFT JOIN CM_DEPARTMENT E ON E.DEP_ID = L.DEPT_ID
124
		LEFT JOIN dbo.CM_DVDM CC ON CC.DVDM_ID=L.COST_ID
125
		LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=L.PLAN_TYPE_ID
126
		WHERE 1=1
127
			AND (L.PLAN_CODE LIKE '%' + @P_PLAN_CODE + '%' OR @P_PLAN_CODE IS NULL OR @P_PLAN_CODE = '')
128
			AND (L.PLAN_NAME LIKE '%' + @p_PLAN_NAME + '%' OR @p_PLAN_NAME = '' OR @p_PLAN_NAME IS NULL)
129
			AND (L.[YEAR] LIKE '%' + @P_YEAR + '%' OR @P_YEAR IS NULL OR @P_YEAR = '')
130
			AND (L.PLAN_TYPE_ID = @P_PLAN_TYPE_ID OR @P_PLAN_TYPE_ID IS NULL OR @P_PLAN_TYPE_ID = '')
131
			AND (L.COST_ID = @P_COST_ID OR @P_COST_ID IS NULL OR @P_COST_ID = '')
132
			AND (L.DEPT_ID = @P_DEP_ID OR @P_DEP_ID IS NULL OR @P_DEP_ID = '')
133
				AND (L.BRANCH_ID = @P_BRANCH_ID OR @P_BRANCH_ID IS NULL OR @P_BRANCH_ID = '')
134
			AND ((@BRANCH_TYPE='HS' AND((L.BRANCH_ID=@P_BRANCHLOGIN AND  L.DEPT_ID=@DEPLOGIN ) OR L.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID))) OR (@BRANCH_TYPE <>'HS' AND L.BRANCH_ID=@P_BRANCHLOGIN))
135
			AND L.RECORD_STATUS = '1'	
136
				
137
			END
138
			
139
		END
140
END
141

    
142

    
143

    
144

    
145

    
146

    
147

    
148

    
149

    
150