Project

General

Profile

PL_GD_SEACRT.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 07:50:47 ******/
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

    
42
	
43
	SET @IS_ALL=0
44
	 
45
	 DECLARE @DVDM_ID TABLE( DVDM_ID VARCHAR(20))
46

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

    
52
	 SET @IS_CHUNG=0
53

    
54
	 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'))
55
	 BEGIN
56

    
57
		
58

    
59
		IF(EXISTS(
60
		SELECT CC.DVDM_ID FROM dbo.CM_DVDM DM
61
		LEFT JOIN dbo.PL_COSTCENTER CC ON DM.DVDM_ID=CC.DVDM_ID
62
		LEFT JOIN dbo.PL_COSTCENTER_DT CT ON CT.COST_ID=CC.COST_ID
63
		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
64
		LEFT JOIN dbo.PL_COSTCENTER CC ON DM.DVDM_ID=CC.DVDM_ID
65
		LEFT JOIN dbo.PL_COSTCENTER_DT CT ON CT.COST_ID=CC.COST_ID
66
		WHERE CT.DEP_ID=@p_DEP_ID AND CT.BRANCH_ID=@p_BRANCH_ID AND DM.IS_KHOI=1
67
		)))
68
			SET @IS_CHUNG=1
69
	END
70

    
71
	---PRINT @IS_CHUNG
72

    
73
	IF(@IS_ALL=1 OR @ROLE_USER='TGD')
74
	BEGIN
75
	 INSERT INTO @DVDM_ID
76
	 SELECT  DVDM_ID FROM dbo.CM_DVDM WHERE IS_DVDM=1
77
	END
78
	ELSE
79
	BEGIN
80
	 INSERT INTO @DVDM_ID
81
	 SELECT  PC.DVDM_ID FROM 
82
									dbo.PL_COSTCENTER PC 
83
									LEFT JOIN dbo.PL_COSTCENTER_DT PT ON PT.COST_ID=PC.COST_ID
84
									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)
85
		
86
	END
87

    
88

    
89

    
90

    
91
	DECLARE @lstGD TABLE (
92
	GD_ID VARCHAR(20)
93
	)
94

    
95
	DECLARE @lstGD_CODE TABLE (
96
	GD_CODE VARCHAR(20)
97
	)
98
	INSERT INTO @lstGD
99
	SELECT GD_ID  FROM dbo.CM_HANGHOA_GOODS WHERE HH_ID=@P_HH_ID
100
	
101

    
102
	IF(@P_HH_ID IS NOT NULL AND @P_HH_ID <>'')
103
	BEGIN	
104
		IF(NOT EXISTS(SELECT PM.PLAN_ID FROM dbo.PL_MASTER PM 
105
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.PLAN_ID=PM.PLAN_ID
106
		WHERE (PT.GOODS_ID =@p_GD_ID OR EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=PT.GOODS_ID)) 
107
		AND PM.YEAR = YEAR(GETDATE()) 
108
		AND     ( 
109
						(
110
							@BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID 
111
							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)))))
112
						) 
113
					OR 
114
					(@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) ))   ))
115
					OR
116
					(@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID      )
117
				)
118
			)
119
			
120
		)
121
		BEGIN
122
			SET @P_REQDT_TYPE='O'
123
			INSERT INTO @lstGD_CODE			
124
			SELECT REPLACE(GD_CODE,'.I.','.O.') FROM dbo.CM_GOODS WHERE GD_ID IN (SELECT GD_ID FROM @lstGD)				
125
		END                                                         
126
	END
127

    
128

    
129

    
130

    
131
	IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
132
	BEGIN	
133
		IF(@P_REQDT_TYPE='I')
134
		BEGIN
135
			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,
136
			ISNULL(DT.QUANTITY,0) AS QUANTITY,
137
			ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_EXE,
138
			ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_ETM,
139
			ISNULL(DT.QUANTITY,0)-	ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_REMAIN,
140
			ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_REMAIN_ETM, 
141
			ISNULL( DT.AMT_APP,0) AS AMT_APP,
142
			ISNULL( DT.AMT_EXE,0) AS AMT_EXE,
143
			ISNULL( DT.AMT_ETM,0) AS AMT_ETM, 
144
			ISNULL( DT.AMT_TF,0) AS AMT_TF, 
145
			ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,	
146
			ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)- ISNULL(DT.AMT_EXE,0) AS AMT_REMAIN, 
147
			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,
148
			CB.BRANCH_CODE,CB.BRANCH_NAME,'I' AS REQDT_TYPE,
149
			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,
150
			DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,CD.DEP_CODE,ISNULL(PTR.REF_NAME,CD.DEP_NAME)AS DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID
151
			FROM dbo.PL_MASTER PM
152
			LEFT JOIN dbo.PL_TRADEDETAIL DT ON DT.PLAN_ID=PM.PLAN_ID
153
			LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID
154
			
155
			LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=DT.GOODS_ID
156
			LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID
157
			LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
158
			LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID
159
			LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID
160
			
161
			LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID
162
			LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID
163
			LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID
164
			LEFT JOIN dbo.PL_TRADE_REF PTR ON PTR.TRADE_ID=DT.TRADE_ID AND PTR.REF_CODE <> CB.BRANCH_CODE
165
			WHERE (1=1)
166
			AND (CG.GD_NAME LIKE '%' +  @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')
167
			AND (CG.GD_CODE LIKE '%' +  @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')
168
			AND (CB.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE +'%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE ='')
169
			--AND (PM.BRANCH_ID IN (SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)))
170
			--AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')
171
			AND (PM.PLAN_ID LIKE '%' + @P_PLAN_ID+'%' OR @P_PLAN_ID IS NULL OR @P_PLAN_ID='' )
172
			AND (DT.GOODS_ID = @p_GD_ID    OR @p_GD_ID IS NULL OR @p_GD_ID ='')
173
			AND  (EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=DT.GOODS_ID) OR @P_HH_ID ='' OR @P_HH_ID IS NULL)
174
			AND     ( 
175
						(
176
							@BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID 
177

    
178
							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)))))
179
						) 
180
					OR 
181
					(@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) ))   ))
182
					OR
183
					(@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID      )
184
				)
185
			AND PM.YEAR = YEAR(GETDATE())
186

    
187
			AND (GT.GD_TYPE_ID LIKE '%' +  @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')
188
			AND (GT.GD_TYPE_CODE LIKE '%' +  @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')
189
			AND (GT.GD_TYPE_NAME LIKE N'%' +  @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')
190
		END
191
		ELSE
192
        BEGIN
193
			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,
194
			@l_QUANTITY AS QUANTITY,
195
			@l_QUANTITY_EXE AS QUANTITY_EXE,
196
			@l_QUANTITY_EXE AS QUANTITY_ETM,
197
			@l_QUANTITY_REMAIN AS QUANTITY_REMAIN,
198
			@l_QUANTITY_REMAIN AS QUANTITY_REMAIN_ETM,
199
			@l_AMT AS AMT_APP,
200
			@l_AMT_EXE AS AMT_EXE,
201
			@l_AMT_EXE AS AMT_ETM,
202
			@l_AMT_EXE AS AMT_TF,
203
			@l_AMT_EXE AS AMT_RECEIVE_TF,
204
			@l_AMT_REMAIN AS AMT_REMAIN,
205
			@l_AMT_REMAIN AS AMT_REMAIN_ETM,
206
			'' AS BRANCH_CODE,
207
			N'Ngoài kế hoạch' AS BRANCH_NAME,
208
			'O' AS REQDT_TYPE,
209
			'' AS NOTES
210
			,'' 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,
211
			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
212
			FROM  dbo.CM_GOODS CG 
213
			LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
214
			LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID
215
			LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID
216
			LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID
217
			LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID
218

    
219

    
220
		
221
			WHERE (1=1)
222
			AND (CG.GD_NAME LIKE '%' +  @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')
223
			AND (CG.GD_CODE LIKE '%' +  @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')
224
			AND CG.GD_CODE LIKE '%.O.%'
225
			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)
226
			AND (GT.GD_TYPE_ID LIKE '%' +  @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')
227
			AND (GT.GD_TYPE_CODE LIKE '%' +  @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')
228
			AND (GT.GD_TYPE_NAME LIKE N'%' +  @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')
229
		END
230
	END
231
	ELSE
232
	BEGIN	
233
		IF(@P_REQDT_TYPE='I')
234
		BEGIN
235
			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,
236
			ISNULL(DT.QUANTITY,0) AS QUANTITY,
237
			ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_EXE,
238
			ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_ETM,
239
			ISNULL(DT.QUANTITY,0)-	ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_REMAIN,
240
			ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_REMAIN_ETM, 
241
			ISNULL( DT.AMT_APP,0) AS AMT_APP,
242
			ISNULL( DT.AMT_EXE,0) AS AMT_EXE,
243
			ISNULL( DT.AMT_ETM,0) AS AMT_ETM, 
244
			ISNULL( DT.AMT_TF,0) AS AMT_TF, 
245
			ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,	
246
			ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)- ISNULL(DT.AMT_EXE,0) AS AMT_REMAIN, 
247
			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,
248
			CB.BRANCH_CODE,CB.BRANCH_NAME,'I' AS REQDT_TYPE,
249
			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,
250
			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
251
			FROM dbo.PL_MASTER PM
252
			LEFT JOIN dbo.PL_TRADEDETAIL DT ON DT.PLAN_ID=PM.PLAN_ID
253
			LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID
254
			
255
			LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=DT.GOODS_ID
256
			LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID
257
			LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
258
			LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID
259
			LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID
260
			
261
			LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID
262
			LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID
263
			LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID
264
			WHERE (1=1)
265
			AND (CG.GD_NAME LIKE '%' +  @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')
266
			AND (CG.GD_CODE LIKE '%' +  @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')
267
			AND (CB.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE +'%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE ='')
268
			--AND (PM.BRANCH_ID IN (SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)))
269
			--AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')
270
			AND (PM.PLAN_ID LIKE '%' + @P_PLAN_ID+'%' OR @P_PLAN_ID IS NULL OR @P_PLAN_ID='' )
271
				AND (DT.GOODS_ID = @p_GD_ID    OR @p_GD_ID IS NULL OR @p_GD_ID ='')
272
			AND  (EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=DT.GOODS_ID) OR @P_HH_ID ='' OR @P_HH_ID IS NULL)
273
		AND     ( 
274
						(
275
							@BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID 
276
							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)))))
277
						) 
278
					OR 
279
					(@BRANCH_TYPE<>'HS' AND PM.BRANCH_ID =@p_BRANCH_ID  AND ((@p_BRANCH_ID=@BRANCH_LOGIN) OR (@p_BRANCH_ID <> @BRANCH_LOGIN AND PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID) ))   )
280
				)
281
		AND PM.YEAR = YEAR(GETDATE())
282
		AND (GT.GD_TYPE_ID LIKE '%' +  @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')
283
			AND (GT.GD_TYPE_CODE LIKE '%' +  @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')
284
			AND (GT.GD_TYPE_NAME LIKE N'%' +  @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')
285
		END
286
		ELSE
287
        BEGIN
288
			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,
289
			@l_QUANTITY AS QUANTITY,
290
			@l_QUANTITY_EXE AS QUANTITY_EXE,
291
			@l_QUANTITY_EXE AS QUANTITY_ETM,
292
			@l_QUANTITY_REMAIN AS QUANTITY_REMAIN,
293
			@l_QUANTITY_REMAIN AS QUANTITY_REMAIN_ETM,
294
			@l_AMT AS AMT_APP,
295
			@l_AMT_EXE AS AMT_EXE,
296
			@l_AMT_EXE AS AMT_ETM,
297
			@l_AMT_EXE AS AMT_TF,
298
			@l_AMT_EXE AS AMT_RECEIVE_TF,
299
			@l_AMT_REMAIN AS AMT_REMAIN,
300
			@l_AMT_REMAIN AS AMT_REMAIN_ETM,
301
			'' AS BRANCH_CODE,
302
			N'Ngoài kế hoạch' AS BRANCH_NAME,
303
			'O' AS REQDT_TYPE,
304
			'' AS NOTES
305
			,'' 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,
306
			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
307
			FROM  dbo.CM_GOODS CG 
308
			LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
309
			LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID
310
			LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID
311
			LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID
312
			LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID
313
			WHERE (1=1)
314
			AND (CG.GD_NAME LIKE '%' +  @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')
315
			AND (CG.GD_CODE LIKE '%' +  @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')
316
			AND CG.GD_CODE LIKE '%.O.%'
317
			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)
318
			AND (GT.GD_TYPE_ID LIKE '%' +  @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')
319
			AND (GT.GD_TYPE_CODE LIKE '%' +  @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')
320
			AND (GT.GD_TYPE_NAME LIKE N'%' +  @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')
321
		END
322
	END
323
END
324
--EXEC CM_GOODS_Search '','','','','',0,'','','','','','','','',100s
325

    
326

    
327

    
328

    
329