Project

General

Profile

UPDATE_SEARCH_GD.txt

Truong Nguyen Vu, 08/17/2020 03:07 PM

 
1
USE [gAMSPro_VietcapitalBank_v2]
2
GO
3
/****** Object:  StoredProcedure [dbo].[PL_REQ_GOOD_Search]    Script Date: 17-Aug-20 14:59:29 ******/
4
SET ANSI_NULLS ON
5
GO
6
SET QUOTED_IDENTIFIER ON
7
GO
8

    
9
/*
10
SELECT * FROM PL_TRADEDETAIL WHERE PLAN_ID = 'PLM000000000143'
11
select * from TR_CONTRACT_DT WHERE CONTRACT_ID = 'TRC000000000039'
12
	[TR_PO_GOODS_Search] 0,'','','','','',NULL,'','PLM000000000143','TRC000000000039','','',''
13
	exec [TR_PO_GOODS_Search] 1,'','','','','',NULL,'','PLM000000000003','','','',''
14
	exec [TR_PO_GOODS_Search] 0,'','','','','',NULL,'','PLM000000000003','','','',''
15
	SELECT * FROM TR_CONTRACT WHERE CONTRACT_TYPE = '1'
16
	SELECT * FROM PL_MASTER 
17
*/
18

    
19
ALTER PROCEDURE [dbo].[PL_REQ_GOOD_Search]
20
	@P_REQDT_TYPE  varchar(1)= NULL,
21
	@p_GD_ID VARCHAR(15) = NULL,
22
	@p_GD_CODE	varchar(15)  = NULL,
23
	@p_GD_NAME	nvarchar(200)  = NULL,
24
	@p_BRANCH_CODE	varchar(15)  = NULL,
25
	@p_BRANCH_ID VARCHAR(20) = NULL,
26
	@p_DEP_ID VARCHAR(20) = NULL,	
27
	@p_BRANCH_LOGIN varchar(15)  = NULL,
28
	@p_USER_LOGIN VARCHAR(20) = NULL,
29
	@P_PLAN_ID NVARCHAR(15) = NULL,
30
	@P_HH_ID VARCHAR(15),
31
	@p_GD_TYPE_ID VARCHAR(20) = NULL,
32
	@p_GD_TYPE_CODE VARCHAR(20)= NULL,
33
	@p_GD_TYPE_NAME NVARCHAR(500)= NULL,
34
	@P_TOP	INT = null
35
AS
36
BEGIN
37
DECLARE	
38
	 @l_QUANTITY numeric(18,0)=0, @l_QUANTITY_EXE decimal(18,0)=0, @l_QUANTITY_REMAIN decimal(18,0)=0,
39
	 @l_AMT numeric(18,0)=0, @l_AMT_EXE decimal(18,0)=0, @l_AMT_REMAIN decimal(18,0)=0,@GD_CODE VARCHAR(50),
40
	 @BRANCH_TYPE VARCHAR(20),@BRANCH_LOGIN VARCHAR(20),@DEP_LOGIN VARCHAR(20),@ROLE_USER VARCHAR(20),@IS_ALL BIT,@IS_CHUNG BIT
41
	 DECLARE @IS_HANHCHINH BIT
42
	 SET @IS_HANHCHINH=0
43
	
44
	SET @IS_ALL=0
45
	 
46
	 DECLARE @DVDM_ID TABLE( DVDM_ID VARCHAR(20))
47

    
48
	 SET @BRANCH_TYPE= (SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_ID)
49
	 SELECT @BRANCH_LOGIN=TLSUBBRID,@DEP_LOGIN=SECUR_CODE ,@ROLE_USER=RoleName FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN
50
	 IF(EXISTS(SELECT ID FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_MASTER' AND BRANCH_ID=@BRANCH_LOGIN AND DEP_ID=@DEP_LOGIN))
51
		SET @IS_ALL=1
52

    
53
	 SET @IS_CHUNG=0
54

    
55
	 IF(EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE BRANCH_ID=@p_BRANCH_ID AND DEP_ID=@p_DEP_ID AND ROLE_TYPE='TRADE_USER_ALL'))
56
	 BEGIN
57

    
58
		
59

    
60
		IF(EXISTS(
61
		SELECT CC.DVDM_ID FROM dbo.CM_DVDM DM
62
		LEFT JOIN dbo.PL_COSTCENTER CC ON DM.DVDM_ID=CC.DVDM_ID
63
		LEFT JOIN dbo.PL_COSTCENTER_DT CT ON CT.COST_ID=CC.COST_ID
64
		WHERE CT.DEP_ID=@DEP_LOGIN AND CT.BRANCH_ID=@p_BRANCH_ID AND DM.IS_KHOI=1 AND CC.DVDM_ID IN (SELECT CC.DVDM_ID FROM dbo.CM_DVDM DM
65
		LEFT JOIN dbo.PL_COSTCENTER CC ON DM.DVDM_ID=CC.DVDM_ID
66
		LEFT JOIN dbo.PL_COSTCENTER_DT CT ON CT.COST_ID=CC.COST_ID
67
		WHERE CT.DEP_ID=@p_DEP_ID AND CT.BRANCH_ID=@p_BRANCH_ID AND DM.IS_KHOI=1
68
		)))
69
			SET @IS_CHUNG=1
70
		END
71

    
72
		 IF(EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE BRANCH_ID=@p_BRANCH_ID AND DEP_ID=@p_DEP_ID AND ROLE_TYPE='HANHCHINH'))
73
		BEGIN
74

    
75
		
76

    
77
			SET @IS_HANHCHINH=1
78
		END
79

    
80

    
81
	---PRINT @IS_CHUNG
82

    
83
	IF(@IS_ALL=1 OR @ROLE_USER='TGD')
84
	BEGIN
85
	 INSERT INTO @DVDM_ID
86
	 SELECT  DVDM_ID FROM dbo.CM_DVDM WHERE IS_DVDM=1
87
	END
88
	ELSE
89
	BEGIN
90
	 INSERT INTO @DVDM_ID
91
	 SELECT  PC.DVDM_ID FROM 
92
									dbo.PL_COSTCENTER PC 
93
									LEFT JOIN dbo.PL_COSTCENTER_DT PT ON PT.COST_ID=PC.COST_ID
94
									WHERE PT.DEP_ID=@DEP_LOGIN AND PT.BRANCH_ID=@BRANCH_LOGIN AND EXISTS(SELECT DVDM_ID FROM dbo.CM_DVDM WHERE IS_DVDM=1)
95
		
96
	END
97

    
98

    
99

    
100

    
101
	DECLARE @lstGD TABLE (
102
	GD_ID VARCHAR(20)
103
	)
104

    
105
	DECLARE @lstGD_CODE TABLE (
106
	GD_CODE VARCHAR(20)
107
	)
108
	INSERT INTO @lstGD
109
	SELECT GD_ID  FROM dbo.CM_HANGHOA_GOODS WHERE HH_ID=@P_HH_ID
110
	
111

    
112
	IF(@P_HH_ID IS NOT NULL AND @P_HH_ID <>'')
113
	BEGIN	
114
		IF(NOT EXISTS(SELECT PM.PLAN_ID FROM dbo.PL_MASTER PM 
115
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.PLAN_ID=PM.PLAN_ID
116
		WHERE (PT.GOODS_ID =@p_GD_ID OR EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=PT.GOODS_ID)) 
117
		AND PM.YEAR = YEAR(GETDATE()) 
118
		AND     ( 
119
						(
120
							@BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID 
121
							AND(  @IS_CHUNG=1 OR ((@p_DEP_ID = @DEP_LOGIN) OR (@p_DEP_ID <> @DEP_LOGIN AND (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)))))
122
						) 
123
					OR 
124
					(@BRANCH_TYPE='CN' AND PM.BRANCH_ID =@p_BRANCH_ID  AND ((@p_BRANCH_ID=@BRANCH_LOGIN) OR (@p_BRANCH_ID <> @BRANCH_LOGIN AND PM.BRANCH_ID IN (SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_LOGIN) ))   ))
125
					OR
126
					(@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID      )
127
				)
128
			)
129
			
130
		)
131
		BEGIN
132
			SET @P_REQDT_TYPE='O'
133
			INSERT INTO @lstGD_CODE			
134
			SELECT REPLACE(GD_CODE,'.I.','.O.') FROM dbo.CM_GOODS WHERE GD_ID IN (SELECT GD_ID FROM @lstGD)				
135
		END                                                         
136
	END
137

    
138

    
139

    
140

    
141
	IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
142
	BEGIN	
143
		IF(@P_REQDT_TYPE='I')
144
		BEGIN
145
			IF(@P_PLAN_ID IS NOT NULL AND @P_PLAN_ID <>'')
146
			BEGIN
147
		
148
				SELECT PM.PLAN_ID,PM.PLAN_CODE,DT.TRADE_ID,DT.GOODS_ID,CG.GD_CODE,CG.GD_NAME,PM.BRANCH_ID,PM.DEPT_ID,
149
			ISNULL(DT.QUANTITY,0) AS QUANTITY,
150
			ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_EXE,
151
			ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_ETM,
152
			ISNULL(DT.QUANTITY,0)-	ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_REMAIN,
153
			ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_REMAIN_ETM, 
154
			ISNULL( DT.AMT_APP,0) AS AMT_APP,
155
			ISNULL( DT.AMT_EXE,0) AS AMT_EXE,
156
			ISNULL( DT.AMT_ETM,0) AS AMT_ETM, 
157
			ISNULL( DT.AMT_TF,0) AS AMT_TF, 
158
			ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,	
159
			ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)- ISNULL(DT.AMT_EXE,0) AS AMT_REMAIN, 
160
			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,
161
			CB.BRANCH_CODE,CB.BRANCH_NAME,'I' AS REQDT_TYPE,
162
			DT.NOTES,PT.PLAN_TYPE_CODE,PT.PLAN_TYPE_NAME,CM.DVDM_ID AS COST_ID,CM.DVDM_CODE AS COST_CODE,CM.DVDM_NAME AS COST_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_ID AS KHOI_ID,CK.DVDM_NAME AS KHOI_NAME,
163
			DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,CD.DEP_CODE,CD.DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID
164
			FROM dbo.PL_MASTER PM
165
			LEFT JOIN dbo.PL_TRADEDETAIL DT ON DT.PLAN_ID=PM.PLAN_ID
166
			LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID
167
			
168
			LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=DT.GOODS_ID
169
			LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID
170
			LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
171
			LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID
172
			LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID
173
			
174
			LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID
175
			LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID
176
			LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID
177
			WHERE (1=1)
178
			AND (CG.GD_NAME LIKE '%' +  @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')
179
			AND (CG.GD_CODE LIKE '%' +  @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')
180
			AND (CB.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE +'%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE ='')
181
			--AND (PM.BRANCH_ID IN (SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)))
182
			--AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')
183
			AND (PM.PLAN_ID LIKE '%' + @P_PLAN_ID+'%' OR @P_PLAN_ID IS NULL OR @P_PLAN_ID='' )
184
			AND (DT.GOODS_ID = @p_GD_ID    OR @p_GD_ID IS NULL OR @p_GD_ID ='')
185
			AND  (EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=DT.GOODS_ID) OR @P_HH_ID ='' OR @P_HH_ID IS NULL)
186
			AND (@IS_HANHCHINH=1)
187
			AND PM.YEAR = YEAR(GETDATE())
188

    
189
			AND (GT.GD_TYPE_ID LIKE '%' +  @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')
190
			AND (GT.GD_TYPE_CODE LIKE '%' +  @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')
191
			AND (GT.GD_TYPE_NAME LIKE N'%' +  @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')
192
				END
193
			ELSE
194
			BEGIN
195
				SELECT PM.PLAN_ID,PM.PLAN_CODE,DT.TRADE_ID,DT.GOODS_ID,CG.GD_CODE,CG.GD_NAME,PM.BRANCH_ID,PM.DEPT_ID,
196
			ISNULL(DT.QUANTITY,0) AS QUANTITY,
197
			ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_EXE,
198
			ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_ETM,
199
			ISNULL(DT.QUANTITY,0)-	ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_REMAIN,
200
			ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_REMAIN_ETM, 
201
			ISNULL( DT.AMT_APP,0) AS AMT_APP,
202
			ISNULL( DT.AMT_EXE,0) AS AMT_EXE,
203
			ISNULL( DT.AMT_ETM,0) AS AMT_ETM, 
204
			ISNULL( DT.AMT_TF,0) AS AMT_TF, 
205
			ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,	
206
			ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)- ISNULL(DT.AMT_EXE,0) AS AMT_REMAIN, 
207
			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,
208
			CB.BRANCH_CODE,CB.BRANCH_NAME,'I' AS REQDT_TYPE,
209
			DT.NOTES,PT.PLAN_TYPE_CODE,PT.PLAN_TYPE_NAME,CM.DVDM_ID AS COST_ID,CM.DVDM_CODE AS COST_CODE,CM.DVDM_NAME AS COST_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_ID AS KHOI_ID,CK.DVDM_NAME AS KHOI_NAME,
210
			DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,CD.DEP_CODE,CD.DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID
211
			FROM dbo.PL_MASTER PM
212
			LEFT JOIN dbo.PL_TRADEDETAIL DT ON DT.PLAN_ID=PM.PLAN_ID
213
			LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID
214
			
215
			LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=DT.GOODS_ID
216
			LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID
217
			LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
218
			LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID
219
			LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID
220
			
221
			LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID
222
			LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID
223
			LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID
224
			WHERE (1=1)
225
			AND (CG.GD_NAME LIKE '%' +  @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')
226
			AND (CG.GD_CODE LIKE '%' +  @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')
227
			AND (CB.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE +'%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE ='')
228
			--AND (PM.BRANCH_ID IN (SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)))
229
			--AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')
230
			AND (PM.PLAN_ID LIKE '%' + @P_PLAN_ID+'%' OR @P_PLAN_ID IS NULL OR @P_PLAN_ID='' )
231
			AND (DT.GOODS_ID = @p_GD_ID    OR @p_GD_ID IS NULL OR @p_GD_ID ='')
232
			AND  (EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=DT.GOODS_ID) OR @P_HH_ID ='' OR @P_HH_ID IS NULL)
233
			AND     ( 
234
						(
235
							@BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID 
236

    
237
							AND(  @IS_CHUNG=1 OR ((@p_DEP_ID = @DEP_LOGIN) OR (@p_DEP_ID <> @DEP_LOGIN AND (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)))))
238
						) 
239
					OR 
240
					(@BRANCH_TYPE='CN' AND PM.BRANCH_ID =@p_BRANCH_ID  AND ((@p_BRANCH_ID=@BRANCH_LOGIN) OR (@p_BRANCH_ID <> @BRANCH_LOGIN AND PM.BRANCH_ID IN (SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_LOGIN) ))   ))
241
					OR
242
					(@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID      )
243
				)
244
			AND PM.YEAR = YEAR(GETDATE())
245

    
246
			AND (GT.GD_TYPE_ID LIKE '%' +  @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')
247
			AND (GT.GD_TYPE_CODE LIKE '%' +  @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')
248
			AND (GT.GD_TYPE_NAME LIKE N'%' +  @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')
249
			END
250
			
251
		END
252
		ELSE
253
        BEGIN
254
			SELECT '' AS PLAN_ID,'' AS PLAN_CODE,'' AS TRADE_ID, CG.GD_ID AS GOODS_ID, CG.GD_CODE ,CG.GD_NAME ,'' AS BRANCH_ID,'' AS DEPT_ID,
255
			@l_QUANTITY AS QUANTITY,
256
			@l_QUANTITY_EXE AS QUANTITY_EXE,
257
			@l_QUANTITY_EXE AS QUANTITY_ETM,
258
			@l_QUANTITY_REMAIN AS QUANTITY_REMAIN,
259
			@l_QUANTITY_REMAIN AS QUANTITY_REMAIN_ETM,
260
			@l_AMT AS AMT_APP,
261
			@l_AMT_EXE AS AMT_EXE,
262
			@l_AMT_EXE AS AMT_ETM,
263
			@l_AMT_EXE AS AMT_TF,
264
			@l_AMT_EXE AS AMT_RECEIVE_TF,
265
			@l_AMT_REMAIN AS AMT_REMAIN,
266
			@l_AMT_REMAIN AS AMT_REMAIN_ETM,
267
			'' AS BRANCH_CODE,
268
			N'Ngoài kế hoạch' AS BRANCH_NAME,
269
			'O' AS REQDT_TYPE,
270
			'' AS NOTES
271
			,'' AS PLAN_TYPE_CODE,'' AS PLAN_TYPE_NAME,CM.DVDM_ID AS COST_ID,CM.DVDM_CODE AS COST_CODE,CM.DVDM_NAME AS COST_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_ID AS KHOI_ID,CK.DVDM_NAME AS KHOI_NAME,
272
			DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,'' DEP_CODE,'' DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID
273
			FROM  dbo.CM_GOODS CG 
274
			LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
275
			LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID
276
			LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID
277
			LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID
278
			LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID
279

    
280

    
281
		
282
			WHERE (1=1)
283
			AND (CG.GD_NAME LIKE '%' +  @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')
284
			AND (CG.GD_CODE LIKE '%' +  @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')
285
			AND CG.GD_CODE LIKE '%.O.%'
286
			AND (EXISTS(SELECT GD_CODE FROM @lstGD_CODE WHERE [@lstGD_CODE].GD_CODE=CG.GD_CODE ) OR @P_HH_ID ='' OR @P_HH_ID IS NULL)
287
			AND (GT.GD_TYPE_ID LIKE '%' +  @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')
288
			AND (GT.GD_TYPE_CODE LIKE '%' +  @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')
289
			AND (GT.GD_TYPE_NAME LIKE N'%' +  @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')
290
		END
291
	END
292
	ELSE
293
	BEGIN	
294
		IF(@P_REQDT_TYPE='I')
295
		BEGIN
296
			IF(@P_PLAN_ID IS NOT NULL AND @P_PLAN_ID <>'')
297
			BEGIN
298
		
299
				SELECT PM.PLAN_ID,PM.PLAN_CODE,DT.TRADE_ID,DT.GOODS_ID,CG.GD_CODE,CG.GD_NAME,PM.BRANCH_ID,PM.DEPT_ID,
300
			ISNULL(DT.QUANTITY,0) AS QUANTITY,
301
			ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_EXE,
302
			ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_ETM,
303
			ISNULL(DT.QUANTITY,0)-	ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_REMAIN,
304
			ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_REMAIN_ETM, 
305
			ISNULL( DT.AMT_APP,0) AS AMT_APP,
306
			ISNULL( DT.AMT_EXE,0) AS AMT_EXE,
307
			ISNULL( DT.AMT_ETM,0) AS AMT_ETM, 
308
			ISNULL( DT.AMT_TF,0) AS AMT_TF, 
309
			ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,	
310
			ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)- ISNULL(DT.AMT_EXE,0) AS AMT_REMAIN, 
311
			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,
312
			CB.BRANCH_CODE,CB.BRANCH_NAME,'I' AS REQDT_TYPE,
313
			DT.NOTES,PT.PLAN_TYPE_CODE,PT.PLAN_TYPE_NAME,CM.DVDM_ID AS COST_ID,CM.DVDM_CODE AS COST_CODE,CM.DVDM_NAME AS COST_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_ID AS KHOI_ID,CK.DVDM_NAME AS KHOI_NAME,
314
			DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,CD.DEP_CODE,CD.DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID
315
			FROM dbo.PL_MASTER PM
316
			LEFT JOIN dbo.PL_TRADEDETAIL DT ON DT.PLAN_ID=PM.PLAN_ID
317
			LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID
318
			
319
			LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=DT.GOODS_ID
320
			LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID
321
			LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
322
			LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID
323
			LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID
324
			
325
			LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID
326
			LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID
327
			LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID
328
			WHERE (1=1)
329
			AND (CG.GD_NAME LIKE '%' +  @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')
330
			AND (CG.GD_CODE LIKE '%' +  @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')
331
			AND (CB.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE +'%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE ='')
332
			--AND (PM.BRANCH_ID IN (SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)))
333
			--AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')
334
			AND (PM.PLAN_ID LIKE '%' + @P_PLAN_ID+'%' OR @P_PLAN_ID IS NULL OR @P_PLAN_ID='' )
335
			AND (DT.GOODS_ID = @p_GD_ID    OR @p_GD_ID IS NULL OR @p_GD_ID ='')
336
			AND  (EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=DT.GOODS_ID) OR @P_HH_ID ='' OR @P_HH_ID IS NULL)
337
			AND (@IS_HANHCHINH=1)
338
			AND PM.YEAR = YEAR(GETDATE())
339

    
340
			AND (GT.GD_TYPE_ID LIKE '%' +  @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')
341
			AND (GT.GD_TYPE_CODE LIKE '%' +  @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')
342
			AND (GT.GD_TYPE_NAME LIKE N'%' +  @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')
343
				END
344
			ELSE
345
			BEGIN
346
				SELECT PM.PLAN_ID,PM.PLAN_CODE,DT.TRADE_ID,DT.GOODS_ID,CG.GD_CODE,CG.GD_NAME,PM.BRANCH_ID,PM.DEPT_ID,
347
			ISNULL(DT.QUANTITY,0) AS QUANTITY,
348
			ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_EXE,
349
			ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_ETM,
350
			ISNULL(DT.QUANTITY,0)-	ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_REMAIN,
351
			ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_REMAIN_ETM, 
352
			ISNULL( DT.AMT_APP,0) AS AMT_APP,
353
			ISNULL( DT.AMT_EXE,0) AS AMT_EXE,
354
			ISNULL( DT.AMT_ETM,0) AS AMT_ETM, 
355
			ISNULL( DT.AMT_TF,0) AS AMT_TF, 
356
			ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,	
357
			ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)- ISNULL(DT.AMT_EXE,0) AS AMT_REMAIN, 
358
			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,
359
			CB.BRANCH_CODE,CB.BRANCH_NAME,'I' AS REQDT_TYPE,
360
			DT.NOTES,PT.PLAN_TYPE_CODE,PT.PLAN_TYPE_NAME,CM.DVDM_ID AS COST_ID,CM.DVDM_CODE AS COST_CODE,CM.DVDM_NAME AS COST_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_ID AS KHOI_ID,CK.DVDM_NAME AS KHOI_NAME,
361
			DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,CD.DEP_CODE,CD.DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID
362
			FROM dbo.PL_MASTER PM
363
			LEFT JOIN dbo.PL_TRADEDETAIL DT ON DT.PLAN_ID=PM.PLAN_ID
364
			LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID
365
			
366
			LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=DT.GOODS_ID
367
			LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID
368
			LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
369
			LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID
370
			LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID
371
			
372
			LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID
373
			LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID
374
			LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID
375
			WHERE (1=1)
376
			AND (CG.GD_NAME LIKE '%' +  @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')
377
			AND (CG.GD_CODE LIKE '%' +  @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')
378
			AND (CB.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE +'%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE ='')
379
			--AND (PM.BRANCH_ID IN (SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)))
380
			--AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')
381
			AND (PM.PLAN_ID LIKE '%' + @P_PLAN_ID+'%' OR @P_PLAN_ID IS NULL OR @P_PLAN_ID='' )
382
			AND (DT.GOODS_ID = @p_GD_ID    OR @p_GD_ID IS NULL OR @p_GD_ID ='')
383
			AND  (EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=DT.GOODS_ID) OR @P_HH_ID ='' OR @P_HH_ID IS NULL)
384
			AND     ( 
385
						(
386
							@BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID 
387

    
388
							AND(  @IS_CHUNG=1 OR ((@p_DEP_ID = @DEP_LOGIN) OR (@p_DEP_ID <> @DEP_LOGIN AND (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)))))
389
						) 
390
					OR 
391
					(@BRANCH_TYPE='CN' AND PM.BRANCH_ID =@p_BRANCH_ID  AND ((@p_BRANCH_ID=@BRANCH_LOGIN) OR (@p_BRANCH_ID <> @BRANCH_LOGIN AND PM.BRANCH_ID IN (SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_LOGIN) ))   ))
392
					OR
393
					(@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID      )
394
				)
395
			AND PM.YEAR = YEAR(GETDATE())
396

    
397
			AND (GT.GD_TYPE_ID LIKE '%' +  @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')
398
			AND (GT.GD_TYPE_CODE LIKE '%' +  @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')
399
			AND (GT.GD_TYPE_NAME LIKE N'%' +  @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')
400
			END
401
		END
402
		ELSE
403
        BEGIN
404
			SELECT '' AS PLAN_ID,'' AS PLAN_CODE,'' AS TRADE_ID, CG.GD_ID AS GOODS_ID, CG.GD_CODE ,CG.GD_NAME ,'' AS BRANCH_ID,'' AS DEPT_ID,
405
			@l_QUANTITY AS QUANTITY,
406
			@l_QUANTITY_EXE AS QUANTITY_EXE,
407
			@l_QUANTITY_EXE AS QUANTITY_ETM,
408
			@l_QUANTITY_REMAIN AS QUANTITY_REMAIN,
409
			@l_QUANTITY_REMAIN AS QUANTITY_REMAIN_ETM,
410
			@l_AMT AS AMT_APP,
411
			@l_AMT_EXE AS AMT_EXE,
412
			@l_AMT_EXE AS AMT_ETM,
413
			@l_AMT_EXE AS AMT_TF,
414
			@l_AMT_EXE AS AMT_RECEIVE_TF,
415
			@l_AMT_REMAIN AS AMT_REMAIN,
416
			@l_AMT_REMAIN AS AMT_REMAIN_ETM,
417
			'' AS BRANCH_CODE,
418
			N'Ngoài kế hoạch' AS BRANCH_NAME,
419
			'O' AS REQDT_TYPE,
420
			'' AS NOTES
421
			,'' AS PLAN_TYPE_CODE,'' AS PLAN_TYPE_NAME,CM.DVDM_ID AS COST_ID,CM.DVDM_CODE AS COST_CODE,CM.DVDM_NAME AS COST_NAME,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_ID AS KHOI_ID,
422
			DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,'' DEP_CODE,'' DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID
423
			FROM  dbo.CM_GOODS CG 
424
			LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
425
			LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID
426
			LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID
427
			LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID
428
			LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID
429
			WHERE (1=1)
430
			AND (CG.GD_NAME LIKE '%' +  @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')
431
			AND (CG.GD_CODE LIKE '%' +  @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')
432
			AND CG.GD_CODE LIKE '%.O.%'
433
			AND (EXISTS(SELECT GD_CODE FROM @lstGD_CODE WHERE [@lstGD_CODE].GD_CODE=CG.GD_CODE ) OR @P_HH_ID ='' OR @P_HH_ID IS NULL)
434
			AND (GT.GD_TYPE_ID LIKE '%' +  @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')
435
			AND (GT.GD_TYPE_CODE LIKE '%' +  @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')
436
			AND (GT.GD_TYPE_NAME LIKE N'%' +  @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')
437
		END
438
	END
439
END
440
--EXEC CM_GOODS_Search '','','','','',0,'','','','','','','','',100s
441

    
442

    
443

    
444

    
445