Project

General

Profile

2.5 PL REQ GOOD SEARCH.txt

Luc Tran Van, 10/18/2022 11:24 AM

 
1
ALTER   PROCEDURE [dbo].[PL_REQ_GOOD_Search]  
2
@P_REQDT_TYPE varchar(1)= NULL,  
3
@p_GD_ID VARCHAR(15) = NULL,  
4
@p_GD_CODE varchar(20) = NULL,  
5
@p_GD_NAME nvarchar(200) = NULL,  
6
@p_BRANCH_CODE varchar(15) = NULL,  
7
@p_BRANCH_ID VARCHAR(20) = NULL,  
8
@p_DEP_ID VARCHAR(20) = NULL,  
9
@p_BRANCH_LOGIN varchar(15) = NULL,  
10
@p_USER_LOGIN VARCHAR(20) = NULL,  
11
@P_PLAN_ID NVARCHAR(15) = NULL,  
12
@P_HH_ID VARCHAR(15),  
13
@p_GD_TYPE_ID VARCHAR(20) = NULL,  
14
@p_GD_TYPE_CODE VARCHAR(20)= NULL,  
15
@p_GD_TYPE_NAME NVARCHAR(500)= NULL,  
16
@p_DVDM_ID VARCHAR(15) = NULL,
17
@p_PLAN_TYPE_ID VARCHAR(15) = NULL,
18
@p_TYPE_NS VARCHAR(15) = NULL,
19
@p_YEAR VARCHAR(4),
20
@P_TOP INT = null  
21
AS  
22
BEGIN -- PAGING
23
DECLARE  
24
@l_QUANTITY numeric(18,0)=0, @l_QUANTITY_EXE decimal(18,0)=0, @l_QUANTITY_REMAIN decimal(18,0)=0,  
25
@l_AMT numeric(18,0)=0, @l_AMT_EXE decimal(18,0)=0, @l_AMT_REMAIN decimal(18,0)=0,@GD_CODE VARCHAR(50),  
26
@BRANCH_TYPE VARCHAR(20),@BRANCH_LOGIN VARCHAR(20),@DEP_LOGIN VARCHAR(20),@ROLE_USER VARCHAR(20),@IS_ALL BIT,@IS_CHUNG BIT  
27
DECLARE @IS_HANHCHINH BIT  
28
SET @IS_HANHCHINH=0  
29
IF(@p_YEAR IS NULL OR @p_YEAR='' OR @p_YEAR = '0')
30
BEGIN
31
	SET @p_YEAR=YEAR(GETDATE())
32
END
33
IF(@p_YEAR <  YEAR(GETDATE()))
34
BEGIN
35
	SET @p_YEAR='1'
36
END
37

    
38
SET @IS_ALL=0  
39
 
40
DECLARE @DVDM_ID TABLE( DVDM_ID VARCHAR(20))  
41
 DECLARE @TRADE_REF TABLE( TRADE_ID VARCHAR (20))
42

    
43
SELECT @BRANCH_LOGIN=TLSUBBRID,@DEP_LOGIN=SECUR_CODE ,@ROLE_USER=RoleName FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN  
44

    
45

    
46
IF(@p_BRANCH_CODE IS NOT NULL AND @p_BRANCH_CODE <>'')
47
	SELECT TOP 1 @p_DEP_ID=DEP_ID,@p_BRANCH_ID=BRANCH_ID FROM dbo.CM_DEPARTMENT WHERE DEP_CODE=@p_BRANCH_CODE
48

    
49
IF(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL)
50
	SET @p_BRANCH_ID=@BRANCH_LOGIN
51

    
52
	
53
		DECLARE @AUTHOR_DVDM TABLE
54
		(
55
		ROLE_ID VARCHAR(100),
56
		BRANCH_ID VARCHAR(20),
57
		DEP_ID VARCHAR(20)
58
	
59
		)
60

    
61

    
62
	INSERT INTO @AUTHOR_DVDM
63
	(
64
	    ROLE_ID,
65
	    BRANCH_ID,
66
	    DEP_ID	    
67
	)
68
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE FROM dbo.TL_USER TU 	
69
	WHERE TU.TLNANME=@p_USER_LOGIN
70
	UNION ALL
71
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE FROM dbo.TL_USER TU 
72
	
73
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
74
	WHERE TU.TLNANME=@p_USER_LOGIN
75
	UNION ALL
76
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TU 
77
	WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
78
	UNION ALL
79
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TU 
80
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
81
	WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
82

    
83
	UNION ALL
84
	SELECT TU.RoleName,TU.TLSUBBRID,DE.FATHER_ID SECUR_CODE FROM dbo.TL_USER TU 
85
	LEFT JOIN dbo.CM_DEPARTMENT DE ON TU.SECUR_CODE = DE.DEP_ID
86
	WHERE TU.TLNANME=@p_USER_LOGIN
87

    
88
	UNION ALL --- 18.10.2022 LUCTV DIEU CHINH CHO PHEP TRA CUU NGAN SACH PHONG BAN CHA
89
	SELECT TU.RoleName,TU.TLSUBBRID,DP.FATHER_ID FROM
90
	dbo.TL_USER TU 	
91
	INNER JOIN CM_DEPARTMENT DP ON TU.DEP_ID =TU.DEP_ID
92
	WHERE TU.TLNANME=@p_USER_LOGIN
93

    
94
IF(EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID AND BRANCH_TYPE = 'HS'))
95
BEGIN
96
IF(@p_DEP_ID='' OR @p_DEP_ID IS NULL)
97
	SET @p_DEP_ID=@DEP_LOGIN
98
END
99

    
100
SET @BRANCH_TYPE= (SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_ID)  
101

    
102
INSERT @TRADE_REF
103
SELECT TRADE_ID  FROM dbo.PL_TRADE_REF WHERE REF_CODE IN (SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE BRANCH_ID IN (SELECT BRANCH_ID FROM @AUTHOR_DVDM))
104

    
105
PRINT @BRANCH_TYPE
106
IF(EXISTS(SELECT ID FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_MASTER' AND BRANCH_ID=@BRANCH_LOGIN AND DEP_ID=@DEP_LOGIN))  
107
SET @IS_ALL=1  
108
 
109
 
110

    
111

    
112
SET @IS_CHUNG=0  
113
 
114
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'))  
115
BEGIN  
116
 
117
 
118
 
119
IF(EXISTS(  
120
SELECT CC.DVDM_ID FROM dbo.CM_DVDM DM  
121
LEFT JOIN dbo.PL_COSTCENTER CC ON DM.DVDM_ID=CC.DVDM_ID  
122
LEFT JOIN dbo.PL_COSTCENTER_DT CT ON CT.COST_ID=CC.COST_ID  
123
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  
124
LEFT JOIN dbo.PL_COSTCENTER CC ON DM.DVDM_ID=CC.DVDM_ID  
125
LEFT JOIN dbo.PL_COSTCENTER_DT CT ON CT.COST_ID=CC.COST_ID  
126
WHERE CT.DEP_ID=@p_DEP_ID AND CT.BRANCH_ID=@p_BRANCH_ID AND DM.IS_KHOI=1  
127
)))  
128
SET @IS_CHUNG=1  
129
END  
130

    
131

    
132

    
133

    
134

    
135
IF(EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE BRANCH_ID=@BRANCH_LOGIN AND DEP_ID=@DEP_LOGIN AND ROLE_TYPE='HANHCHINH'))  
136
BEGIN  
137
SET @IS_HANHCHINH=1  
138
END  
139
 
140
 
141
---PRINT @IS_CHUNG  
142
 
143
IF(@IS_ALL=1 OR @ROLE_USER='TGD')  
144
BEGIN  
145
INSERT INTO @DVDM_ID  
146
SELECT DVDM_ID FROM dbo.CM_DVDM WHERE IS_DVDM=1  
147
END  
148
ELSE  
149
BEGIN  
150
INSERT INTO @DVDM_ID  
151
SELECT PC.DVDM_ID FROM  
152
dbo.PL_COSTCENTER PC  
153
LEFT JOIN dbo.PL_COSTCENTER_DT PT ON PT.COST_ID=PC.COST_ID  
154
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)  
155
 
156
END  
157
 
158
 
159
 
160
DECLARE @lstGD TABLE (  
161
GD_ID VARCHAR(20)  
162
)  
163
 
164
DECLARE @lstGD_CODE TABLE (  
165
GD_CODE VARCHAR(20)  
166
)  
167
INSERT INTO @lstGD  
168
SELECT GD_ID FROM dbo.CM_HANGHOA_GOODS WHERE HH_ID=@P_HH_ID  
169
 
170
 
171
IF(@P_HH_ID IS NOT NULL AND @P_HH_ID <>'')  
172
BEGIN  
173
IF(NOT EXISTS(SELECT PM.PLAN_ID FROM dbo.PL_MASTER PM  
174
LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.PLAN_ID=PM.PLAN_ID  
175
WHERE (PT.GOODS_ID =@p_GD_ID OR EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=PT.GOODS_ID))  
176
AND (PM.YEAR = @p_YEAR OR @p_YEAR ='' OR @p_YEAR IS NULL )
177
AND (  
178
(  
179
@BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID  
180
AND( @IS_CHUNG=1 OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR ((@p_DEP_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM)) OR (NOT EXISTS (SELECT AUTH.DEP_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.DEP_ID=@p_DEP_ID) AND (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)))))   
181
)  
182
OR  
183
(@BRANCH_TYPE='CN' AND PM.BRANCH_ID =@p_BRANCH_ID AND ((@p_BRANCH_ID IN (SELECT BRANCH_ID FROM @AUTHOR_DVDM)) OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID))  ))  
184
OR  
185
(@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID AND (@p_BRANCH_ID IN (SELECT BRANCH_ID FROM @AUTHOR_DVDM) OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR @IS_HANHCHINH=1 OR @IS_ALL=1  OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) OR (NOT EXISTS (SELECT AUTH.BRANCH_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.BRANCH_ID=@p_BRANCH_ID) AND PM.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_LOGIN) ))) )  
186

    
187
OR
188
( 
189
	EXISTS (SELECT * FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='TRADE_USER_VIEW' AND BRANCH_ID=@p_USER_LOGIN AND DEP_ID=PT.GOODS_ID)
190
)
191
)
192
)  
193
 
194
)  
195
BEGIN  
196
SET @P_REQDT_TYPE='O'  
197
INSERT INTO @lstGD_CODE  
198
SELECT REPLACE(GD_CODE,'.I.','.O.') FROM dbo.CM_GOODS WHERE GD_ID IN (SELECT GD_ID FROM @lstGD)  
199
END  
200
END  
201
PRINT @P_REQDT_TYPE
202
IF(@P_REQDT_TYPE='I')  
203
BEGIN  
204
	IF(@P_PLAN_ID IS NOT NULL AND @P_PLAN_ID <>'')  
205
	BEGIN  
206
 -- PAGING BEGIN
207
	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,  
208
		ISNULL(DT.QUANTITY,0) AS QUANTITY,  
209
		ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_EXE,  
210
		ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_ETM,  
211
		ISNULL(DT.QUANTITY,0)- ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_REMAIN,  
212
		ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_REMAIN_ETM,  
213
		ISNULL( DT.AMT_APP,0) AS AMT_APP, 
214
		ISNULL( DT.AMT_EXE,0) AS AMT_EXE,  
215
		ISNULL( DT.AMT_ETM,0)
216
      +
217
      (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
218
      FROM dbo.PL_REQUEST_DOC_DT DDT
219
      LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID
220
      WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE')
221
      AND DDT.TRADE_ID = DT.TRADE_ID)
222
      +
223
      (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
224
      FROM dbo.PL_REQUEST_TRANSFER DDT
225
      LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID
226
      WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE')
227
      AND DDT.FR_TRADE_ID = DT.TRADE_ID)
228
      AS AMT_ETM,  
229
		ISNULL( DT.AMT_TF,0) AS AMT_TF,  
230
		ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,  
231
		ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)- ISNULL(DT.AMT_EXE,0)
232
      -
233
      (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
234
      FROM dbo.PL_REQUEST_TRANSFER DDT
235
      LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID
236
      WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE')
237
      AND DDT.FR_TRADE_ID = DT.TRADE_ID) AS AMT_REMAIN,  
238
		ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)-ISNULL(DT.AMT_ETM,0)
239
      -
240
      (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
241
      FROM dbo.PL_REQUEST_DOC_DT DDT
242
      LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID
243
      WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE')
244
      AND DDT.TRADE_ID = DT.TRADE_ID)
245
      -
246
      (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
247
      FROM dbo.PL_REQUEST_TRANSFER DDT
248
      LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID
249
      WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE')
250
      AND DDT.FR_TRADE_ID = DT.TRADE_ID)
251
    AS AMT_REMAIN_ETM,
252
		CB.BRANCH_CODE,'I' AS REQDT_TYPE,  
253
		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,  
254
		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,
255
		PM.PLAN_TYPE_ID, CG.GD_TYPE_ID AS TYPE_NS,ISNULL(PM.YEAR,'') AS YEAR,
256
		CB.BRANCH_NAME + CASE WHEN CD.DEP_NAME IS NOT NULL THEN ' - ' + CD.DEP_NAME ELSE '' END AS BRANCH_NAME,TGT.BUDGET_TYPE
257
-- SELECT END
258
	FROM dbo.PL_MASTER PM  
259
		LEFT JOIN dbo.PL_TRADEDETAIL DT ON DT.PLAN_ID=PM.PLAN_ID  
260
		LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID  
261
 
262
		LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=DT.GOODS_ID  
263
--		LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID  
264
		LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'  
265
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID  
266
		LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID
267
		LEFT JOIN dbo.TR_GOODSTYPE TGT ON TGT.GD_ID = CG.GD_ID
268
 
269
		LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=PM.COST_ID  
270
		LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=DM.DVDM_ID  
271
		LEFT JOIN dbo.CM_DVDM_KHOI DMKH ON DMKH.DVDM_ID = DM.DVDM_ID
272
		LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=DMKH.KHOI_ID  
273
	WHERE (1=1)  
274
		AND (CG.GD_NAME LIKE '%' + @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')  
275
		AND (CG.GD_CODE LIKE '%' + @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')  
276
		--AND (CB.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE +'%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE ='')  
277
		--AND (PM.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)))  
278
		AND (PM.PLAN_ID LIKE '%' + @P_PLAN_ID+'%' OR @P_PLAN_ID IS NULL OR @P_PLAN_ID='' )  
279
		AND (DT.GOODS_ID = @p_GD_ID OR @p_GD_ID IS NULL OR @p_GD_ID ='')  
280
		AND (EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=DT.GOODS_ID) OR @P_HH_ID ='' OR @P_HH_ID IS NULL)  
281
		AND (PM.YEAR = @p_YEAR OR @p_YEAR ='' OR @p_YEAR IS NULL )
282

    
283
		AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')  
284
		AND(PM.DEPT_ID= @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID='')
285
		AND(DM.DVDM_ID = @p_DVDM_ID OR @p_DVDM_ID IS NULL OR @p_DVDM_ID = '')
286
		AND(PM.PLAN_TYPE_ID = @p_PLAN_TYPE_ID OR @p_PLAN_TYPE_ID IS NULL OR @p_PLAN_TYPE_ID = '') 
287
		AND(CG.GD_TYPE_ID = @p_TYPE_NS OR @p_TYPE_NS IS NULL OR @p_TYPE_NS = '')
288

    
289
		AND (GT.GD_TYPE_ID LIKE '%' + @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')  
290
		AND (GT.GD_TYPE_CODE LIKE '%' + @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')  
291
		AND (GT.GD_TYPE_NAME LIKE N'%' + @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='') 
292
		AND DT.RECORD_STATUS='1'
293
-- PAGING END
294
	END  
295
	ELSE  
296
	BEGIN
297
-- PAGING BEGIN
298
		SELECT DISTINCT PM.PLAN_ID,PM.PLAN_CODE,DT.TRADE_ID,DT.GOODS_ID,CG.GD_CODE,CG.GD_NAME,PM.BRANCH_ID,PM.DEPT_ID,  
299
		ISNULL(DT.QUANTITY,0) AS QUANTITY,  
300
		ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_EXE,  
301
		ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_ETM,  
302
		ISNULL(DT.QUANTITY,0)- ISNULL(DT.QUANTITY_EXE,0) AS QUANTITY_REMAIN,  
303
		ISNULL(DT.QUANTITY,0)-ISNULL(DT.QUANTITY_ETM,0) AS QUANTITY_REMAIN_ETM,  
304
		ISNULL( DT.AMT_APP,0) AS AMT_APP,
305
		ISNULL( DT.AMT_EXE,0) AS AMT_EXE,  
306
		ISNULL( DT.AMT_ETM,0)
307
      +
308
      (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
309
      FROM dbo.PL_REQUEST_DOC_DT DDT
310
      LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID
311
      WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE')
312
      AND DDT.TRADE_ID = DT.TRADE_ID)
313
      +
314
      (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
315
      FROM dbo.PL_REQUEST_TRANSFER DDT
316
      LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID
317
      WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE')
318
      AND DDT.FR_TRADE_ID = DT.TRADE_ID)
319
      AS AMT_ETM,  
320
		ISNULL( DT.AMT_TF,0) AS AMT_TF,
321
		ISNULL( DT.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,  
322
		ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)- ISNULL(DT.AMT_EXE,0)
323
      -
324
      (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
325
      FROM dbo.PL_REQUEST_TRANSFER DDT
326
      LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID
327
      WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE')
328
      AND DDT.FR_TRADE_ID = DT.TRADE_ID) AS AMT_REMAIN,
329
		ISNULL(DT.AMT_APP,0) + ISNULL( DT.AMT_RECEIVE_TF,0)- ISNULL( DT.AMT_TF,0)-ISNULL(DT.AMT_ETM,0)
330
      -
331
      (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
332
        
333
      FROM dbo.PL_REQUEST_DOC_DT DDT
334
      LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID
335
      WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE')
336
      AND DDT.TRADE_ID = DT.TRADE_ID)
337
      -
338
      (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
339
      FROM dbo.PL_REQUEST_TRANSFER DDT
340
      LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID
341
      WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE')
342
      AND DDT.FR_TRADE_ID = DT.TRADE_ID)
343
    AS AMT_REMAIN_ETM,
344
		CB.BRANCH_CODE,'I' AS REQDT_TYPE,  
345
		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,  
346
		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,
347
		PM.PLAN_TYPE_ID, CG.GD_TYPE_ID AS TYPE_NS,ISNULL(PM.YEAR,'') AS YEAR,
348
		CB.BRANCH_NAME + CASE WHEN CD.DEP_NAME IS NOT NULL AND CB.BRANCH_TYPE = 'HS' THEN ' - ' + CD.DEP_NAME ELSE '' END AS BRANCH_NAME,TGT.BUDGET_TYPE
349
-- SELECT END
350
	FROM dbo.PL_MASTER PM  
351
		LEFT JOIN dbo.PL_TRADEDETAIL DT ON DT.PLAN_ID=PM.PLAN_ID  
352
		LEFT JOIN dbo.CM_PLAN_TYPE PT ON PT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID  
353
 
354
		LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=DT.GOODS_ID  
355
--		LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID  
356
		LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'  
357
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID  
358
		LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID  
359
		LEFT JOIN dbo.TR_GOODSTYPE TGT ON TGT.GD_ID = CG.GD_ID
360
 
361
		LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=PM.COST_ID  
362
		LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=DM.DVDM_ID  
363
		LEFT JOIN dbo.CM_DVDM_KHOI DMKH ON DMKH.DVDM_ID = DM.DVDM_ID
364
		LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=DMKH.KHOI_ID  
365
	WHERE (1=1)  
366
		AND (CG.GD_NAME LIKE '%' + @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')  
367
		AND (CG.GD_CODE LIKE '%' + @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')  
368

    
369
		--AND (CB.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE +'%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE ='')  
370
		--AND (PM.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)))  
371
		--AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')  
372
		AND (PM.PLAN_ID LIKE '%' + @P_PLAN_ID+'%' OR @P_PLAN_ID IS NULL OR @P_PLAN_ID='' )  
373
		AND (DT.GOODS_ID = @p_GD_ID OR @p_GD_ID IS NULL OR @p_GD_ID ='')  
374
		AND (EXISTS(SELECT GD_ID FROM @lstGD WHERE [@lstGD].GD_ID=DT.GOODS_ID) OR @P_HH_ID ='' OR @P_HH_ID IS NULL)  
375
		AND  (  
376
		(  
377
		@BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID  
378
		AND( @IS_CHUNG=1 OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR DT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR ((@p_DEP_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM)) OR (NOT EXISTS (SELECT AUTH.DEP_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.DEP_ID=@p_DEP_ID) AND (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)))))   
379
		)  
380
		OR  
381
		(@BRANCH_TYPE='CN' AND PM.BRANCH_ID =@p_BRANCH_ID AND ((@p_BRANCH_ID IN (SELECT BRANCH_ID FROM @AUTHOR_DVDM)) OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR DT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID))  ))  
382
		OR  
383
		(@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID AND (@p_BRANCH_ID IN (SELECT BRANCH_ID FROM @AUTHOR_DVDM) OR DT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR @IS_HANHCHINH=1 OR @IS_ALL=1  OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) OR (NOT EXISTS (SELECT AUTH.BRANCH_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.BRANCH_ID=@p_BRANCH_ID) AND PM.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_LOGIN) ))) )  
384
		OR
385
		( 
386
			EXISTS (SELECT * FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='TRADE_USER_VIEW' AND BRANCH_ID=@p_USER_LOGIN AND DEP_ID=DT.GOODS_ID)
387
		)
388
		)  
389
  
390
		AND (PM.YEAR = @p_YEAR OR @p_YEAR ='' OR @p_YEAR IS NULL )
391

    
392
		--AND(PM.BRANCH_ID= @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')  
393
		--AND(PM.DEPT_ID= @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID='')
394
		AND(DM.DVDM_ID = @p_DVDM_ID OR @p_DVDM_ID IS NULL OR @p_DVDM_ID = '')
395
		AND(PM.PLAN_TYPE_ID = @p_PLAN_TYPE_ID OR @p_PLAN_TYPE_ID IS NULL OR @p_PLAN_TYPE_ID = '') 
396
		AND(CG.GD_TYPE_ID = @p_GD_TYPE_ID OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID = '')
397
		AND(CG.GD_TYPE_ID = @p_TYPE_NS OR @p_TYPE_NS IS NULL OR @p_TYPE_NS = '')
398
 
399
		AND (GT.GD_TYPE_ID LIKE '%' + @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')  
400
		AND (GT.GD_TYPE_CODE LIKE '%' + @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')  
401
		AND (GT.GD_TYPE_NAME LIKE N'%' + @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')  
402
		AND DT.RECORD_STATUS='1'
403
-- PAGING END
404
	END  
405
END  
406
ELSE  
407
BEGIN
408
	DECLARE @BRANCH_CODE VARCHAR(15), @BRANCH_NAME NVARCHAR(200), @DEP_CODE VARCHAR(15), @DEP_NAME NVARCHAR(200)
409
	SET @BRANCH_CODE = (SELECT BRANCH_CODE FROM dbo.CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID)
410
	SET @BRANCH_NAME = (SELECT BRANCH_NAME FROM dbo.CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID)
411
	SET @DEP_CODE = (SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID)
412
	SET @DEP_NAME = (SELECT DEP_NAME FROM dbo.CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID)
413
-- PAGING BEGIN
414
	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,  
415
		@l_QUANTITY AS QUANTITY,  
416
		@l_QUANTITY_EXE AS QUANTITY_EXE,  
417
		@l_QUANTITY_EXE AS QUANTITY_ETM,  
418
		@l_QUANTITY_REMAIN AS QUANTITY_REMAIN,  
419
		@l_QUANTITY_REMAIN AS QUANTITY_REMAIN_ETM,  
420
		@l_AMT AS AMT_APP,  
421
		@l_AMT_EXE AS AMT_EXE,  
422
		@l_AMT_EXE AS AMT_ETM,  
423
		@l_AMT_EXE AS AMT_TF,  
424
		@l_AMT_EXE AS AMT_RECEIVE_TF,  
425
		@l_AMT_REMAIN AS AMT_REMAIN,  
426
		@l_AMT_REMAIN AS AMT_REMAIN_ETM,  
427
		@BRANCH_CODE AS BRANCH_CODE,  
428
		ISNULL(@BRANCH_NAME,'') + ISNULL(' - ' + @DEP_NAME,'') AS BRANCH_NAME, 
429
		--N'Ngoài kế hoạch' AS BRANCH_NAME,  
430
		'O' AS REQDT_TYPE,  
431
		'' AS NOTES  
432
		,'' 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,  
433
		DM.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME, @DEP_CODE AS DEP_CODE, @DEP_NAME AS DEP_NAME,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID AS TYPE_NS,'' AS YEAR,TGT.BUDGET_TYPE
434
-- SELECT END
435
	FROM dbo.CM_GOODS CG  
436
		LEFT JOIN dbo.CM_GOODSTYPE GT ON CG.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'  
437
		LEFT JOIN dbo.CM_GOOD_DVDM CGDM ON CGDM.GD_ID=CG.GD_ID  
438
		LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=CGDM.DVDM_ID  
439
		LEFT JOIN dbo.CM_DVDM CM ON CM.DVDM_ID=CGDM.DVCM_ID  
440
		LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=CGDM.KHOI_ID  
441
		LEFT JOIN dbo.TR_GOODSTYPE TGT ON TGT.GD_ID = CG.GD_ID
442
 
443
 
444
	WHERE (1=1)  
445
		AND (CG.GD_NAME LIKE '%' + @p_GD_NAME + '%' OR @p_GD_NAME IS NULL OR @p_GD_NAME ='')  
446
		AND (CG.GD_CODE LIKE '%' + @p_GD_CODE + '%' OR @p_GD_CODE IS NULL OR @p_GD_CODE ='')  
447
		--AND CG.GD_CODE LIKE '%.O.%'  AND RIGHT (CG.GD_CODE,4)=YEAR (GETDATE())
448
		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)  
449
		AND (GT.GD_TYPE_ID LIKE '%' + @p_GD_TYPE_ID + '%' OR @p_GD_TYPE_ID IS NULL OR @p_GD_TYPE_ID ='')  
450
		AND (GT.GD_TYPE_CODE LIKE '%' + @p_GD_TYPE_CODE + '%' OR @p_GD_TYPE_CODE IS NULL OR @p_GD_TYPE_CODE ='')  
451
		AND (GT.GD_TYPE_NAME LIKE N'%' + @p_GD_TYPE_NAME + N'%' OR @p_GD_TYPE_NAME IS NULL OR @p_GD_TYPE_NAME ='')  
452
		AND NOT EXISTS(SELECT PM.PLAN_ID FROM dbo.PL_MASTER PM  
453
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.PLAN_ID=PM.PLAN_ID
454
		LEFT JOIN dbo.CM_GOODS CMG ON CMG.GD_ID=PT.GOODS_ID
455
		LEFT JOIN CM_GOODS CI ON CI.GD_CODE= REPLACE(CMG.GD_CODE,'.I.','.O.')
456
		WHERE (PT.GOODS_ID =CG.GD_ID OR CI.GD_ID=CG.GD_ID)  
457
		AND (PM.YEAR = @p_YEAR OR @p_YEAR ='' OR @p_YEAR IS NULL )  
458
		AND (  
459
		(  
460
		@BRANCH_TYPE='HS' AND PM.BRANCH_ID =@p_BRANCH_ID AND PM.DEPT_ID=@p_DEP_ID  
461
		AND( @IS_CHUNG=1 OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR ((@p_DEP_ID IN (SELECT DEP_ID FROM @AUTHOR_DVDM)) OR (NOT EXISTS (SELECT AUTH.DEP_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.DEP_ID=@p_DEP_ID) AND (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)))))   
462
		)  
463
		OR  
464
		(@BRANCH_TYPE='CN' AND PM.BRANCH_ID =@p_BRANCH_ID AND ((@p_BRANCH_ID IN (SELECT BRANCH_ID FROM @AUTHOR_DVDM)) OR @IS_HANHCHINH=1 OR @IS_ALL=1 OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID))  ))  
465
		OR  
466
		(@BRANCH_TYPE='PGD' AND PM.BRANCH_ID =@p_BRANCH_ID AND (@p_BRANCH_ID IN (SELECT BRANCH_ID FROM @AUTHOR_DVDM) OR PT.TRADE_ID IN (SELECT TRADE_ID FROM @TRADE_REF) OR @IS_HANHCHINH=1 OR @IS_ALL=1  OR (PM.COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID)) OR (NOT EXISTS (SELECT AUTH.BRANCH_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.BRANCH_ID=@p_BRANCH_ID) AND PM.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_LOGIN) ))) )  
467

    
468
		OR
469
		( 
470
			EXISTS (SELECT * FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='TRADE_USER_VIEW' AND BRANCH_ID=@p_USER_LOGIN AND DEP_ID=PT.GOODS_ID)
471
		))
472
		)
473
-- PAGING END
474
	END  
475
END -- PAGING