Project

General

Profile

PL_REQUEST_DOC_DT_ById.txt

Luc Tran Van, 01/03/2023 04:57 PM

 
1

    
2
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_DT_ById]
3
@P_REQ_ID varchar(15),
4
@P_TYPE VARCHAR(20),
5
@P_USER_LOGIN VARCHAR(20)
6
AS
7

    
8

    
9
			DECLARE @listTRADE TABLE
10
			(
11
				GOODS_ID VARCHAR(20),
12
				TRADE_ID VARCHAR(20),
13
				PLAN_ID VARCHAR(20),
14
				AMT_APP DECIMAL(18,2),
15
				AMT_EXE DECIMAL (18,2),
16
				AMT_ETM DECIMAL (18,2),
17
				AMT_TF DECIMAL (18,2),
18
				AMT_RECEIVE_TF DECIMAL (18,2),
19
        NOTES NVARCHAR(1000),
20
        AMT_ETM_TMP DECIMAL (18,2)
21
				
22
			)
23

    
24
--			IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID='APPROVE'))
25
--			BEGIN
26
--				IF(EXISTS(SELECT * FROM dbo.PL_TRADEDETAIL_HIST WHERE REQ_ID=@P_REQ_ID))
27
--				BEGIN
28
--					INSERT INTO @listTRADE
29
--					( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF, NOTES)
30
--					SELECT GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF, NOTES FROM dbo.PL_TRADEDETAIL_HIST WHERE REQ_ID=@P_REQ_ID
31
--				END
32
--				ELSE
33
--				BEGIN
34
--					INSERT INTO @listTRADE
35
--					( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF, NOTES)
36
--					SELECT PT.GOODS_ID,PT.TRADE_ID,PT.PLAN_ID,PT.AMT_APP,PT.AMT_EXE,PT.AMT_ETM-PLDT.TOTAL_AMT,PT.AMT_TF-PLFT.TOTAL_AMT,PT.AMT_RECEIVE_TF-PLTT.TOTAL_AMT, PT.NOTES FROM dbo.PL_TRADEDETAIL PT
37
--					LEFT JOIN 
38
--					(
39
--					SELECT TRADE_ID, SUM(TOTAL_AMT) TOTAL_AMT FROM
40
--					dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID
41
--					GROUP BY TRADE_ID
42
--					) PLDT ON PLDT.TRADE_ID = PT.TRADE_ID
43
--					LEFT JOIN 
44
--					(
45
--					SELECT FR_TRADE_ID, SUM(TOTAL_AMT) TOTAL_AMT FROM
46
--					dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID
47
--					GROUP BY FR_TRADE_ID
48
--					) PLFT ON PLFT.FR_TRADE_ID = PT.TRADE_ID
49
--
50
--					LEFT JOIN 
51
--					(
52
--					SELECT TO_TRADE_ID, SUM(TOTAL_AMT) TOTAL_AMT FROM
53
--					dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID
54
--					GROUP BY TO_TRADE_ID
55
--					) PLTT ON PLTT.TO_TRADE_ID = PT.TRADE_ID
56
--					WHERE (PT.TRADE_ID IN (SELECT TRADE_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID) OR PT.TRADE_ID IN (SELECT FR_TRADE_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID))
57
--				END
58
--			END
59
			
60
      
61
      IF (EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID IN ('','SIGN','APPNEW','REJECT')))
62
      BEGIN
63
					INSERT INTO @listTRADE
64
					( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF,NOTES,AMT_ETM_TMP)
65
					SELECT DISTINCT GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF,NOTES,
66
          (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
67
              FROM dbo.PL_REQUEST_DOC_DT DDT
68
              LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID
69
              WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT')
70
              AND DDT.TRADE_ID = PL.TRADE_ID
71
              AND DOC.REQ_ID <> @p_REQ_ID)
72
          +
73
          (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)
74
          FROM dbo.PL_REQUEST_TRANSFER DDT
75
          LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID
76
          WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT')
77
          AND DDT.FR_TRADE_ID = PL.TRADE_ID
78
          AND DOC.REQ_ID <> @p_REQ_ID)
79
          AS AMT_ETM_TMP
80
          FROM dbo.PL_TRADEDETAIL PL
81
          WHERE (TRADE_ID IN (SELECT TRADE_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID)
82
          OR TRADE_ID IN (SELECT FR_TRADE_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID))
83
      END
84
      ELSE
85
			BEGIN
86
					INSERT INTO @listTRADE
87
					( GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF,NOTES,AMT_ETM_TMP)
88
          SELECT * FROM
89
          (
90
          SELECT DISTINCT GOODS_ID,TRADE_ID,PLAN_ID,ISNULL(AMT_APP,0) AS AMT_APP,ISNULL(AMT_EXE,0) AS AMT_EXE,ISNULL(AMT_ETM,0) AS AMT_ETM,ISNULL(AMT_TF,0) AS AMT_TF,ISNULL(AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,'' NOTES,ISNULL(AMT_ETM_TMP,0) AS AMT_ETM_TMP FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@P_REQ_ID
91
          UNION ALL
92
          SELECT DISTINCT FR_GOOD_ID GOODS_ID,FR_TRADE_ID TRADE_ID,FR_PLAN_ID PLAN_ID,ISNULL(FR_AMT_APP,0) AMT_APP,ISNULL(FR_AMT_EXE,0) AMT_EXE,ISNULL(FR_AMT_ETM,0) AMT_ETM,ISNULL(FR_AMT_TF,0) AMT_TF,ISNULL(FR_AMT_RECEIVE_TF,0) AMT_RECEIVE_TF,'' NOTES,ISNULL(FR_AMT_ETM_TMP,0) AMT_ETM_TMP FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID
93
          UNION ALL
94
          SELECT DISTINCT TO_GOOD_ID GOODS_ID,TO_TRADE_ID TRADE_ID,TO_PLAN_ID PLAN_ID,ISNULL(TO_AMT_APP,0) AMT_APP,ISNULL(TO_AMT_EXE,0) AMT_EXE,ISNULL(TO_AMT_ETM,0) AMT_ETM,ISNULL(TO_AMT_TF,0) AMT_TF,ISNULL(TO_AMT_RECEIVE_TF,0) AMT_RECEIVE_TF,'' NOTES,ISNULL(TO_AMT_ETM_TMP,0) AMT_ETM_TMP FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@P_REQ_ID
95
          ) T GROUP BY GOODS_ID,TRADE_ID,PLAN_ID,AMT_APP,AMT_EXE,AMT_ETM,AMT_TF,AMT_RECEIVE_TF,NOTES,AMT_ETM_TMP
96
			END
97

    
98
DECLARE @DEP_ID VARCHAR(15),@BRANCH_ID  VARCHAR(15),@ROLE VARCHAR(15),@IS_ALL BIT
99

    
100
	
101
	SET @IS_ALL=0
102

    
103
DECLARE
104
@COST_ID TABLE (
105
	COST_ID VARCHAR(15)
106
)
107

    
108
DECLARE @DVDM_ID TABLE (
109
	DVDM_ID VARCHAR(15)
110
)
111

    
112

    
113
SET @DEP_ID=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@P_USER_LOGIN)
114

    
115
SET @BRANCH_ID=(SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@P_USER_LOGIN)
116
 IF(EXISTS(SELECT ID FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_MASTER' AND BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID))
117
		SET @IS_ALL=1
118
SET @ROLE=(SELECT RoleName FROM dbo.TL_USER WHERE TLNANME=@P_USER_LOGIN)
119

    
120
	INSERT INTO @COST_ID
121
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@BRANCH_ID
122

    
123
	INSERT INTO @DVDM_ID
124
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
125

    
126

    
127

    
128
IF(@P_TYPE='DVKD')
129
BEGIN
130

    
131
SELECT DISTINCT A.REQDT_ID,A.NAME,A.GOODS_ID,A.QUANTITY,A.TOTAL_AMT,A.PRICE,A.TRADE_ID,A.PLAN_ID,A.NAME as NOTES,A.DESCRIPTION,A.HANGHOA_ID,A.HANGHOA_ID HH_ID,HH.HH_CODE,HH.HH_NAME,A.CURRENCY,A.EXCHANGE_RATE,A.TAXES,A.REQ_ID,
132
  ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) AS GD_CODE, ISNULL(B.GD_ID,DT_LOG.GOOD_ID) AS GD_ID, ISNULL(B.GD_NAME,DT_LOG.GOOD_NAME) AS GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME,
133
  
134
	ISNULL(PL.AMT_APP,0) AS AMT_APP,
135
	ISNULL(PL.AMT_EXE,0) AS AMT_EXE,
136
	ISNULL(PL.AMT_ETM,0) + ISNULL(PL.AMT_ETM_TMP,0) AS AMT_ETM,
137
	ISNULL(PL.AMT_TF,0) AS AMT_TF,
138
	ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,
139
	ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN,
140
	ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)- ISNULL(PL.AMT_TF,0)-ISNULL(PL.AMT_ETM,0) - ISNULL(PL.AMT_ETM_TMP,0) AS AMT_REMAIN_ETM,
141
	ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0)-ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT Temp WHERE Temp.REQ_ID=@P_REQ_ID AND Temp.TRADE_ID=A.TRADE_ID AND Temp.GOODS_ID = A.GOODS_ID
142
	AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE')
143
	GROUP BY Temp.TRADE_ID),0)
144
	 AS AMT_REMAIN_REQ,
145
	A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,
146
	 A.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,A.TRADE_TYPE,A.SUP_ID,CS.SUP_NAME,CS.SUP_CODE,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID,A.[NAME] AS REASON_CDT,CASE WHEN A.TRADE_TYPE ='VCCB' THEN N'Theo quy định BVB' ELSE N'Chỉ định thầu' END AS TRADE_TYPE_NAME,
147
	-- GIANT 24/12/2021 MỚI SỬA Ở TTCT CHƯA SỬA Ở MÀN HÌNH LIÊN QUAN
148
	AA.REQ_CODE,
149
	CASE WHEN A.PLAN_ID IS NOT NULL AND A.PLAN_ID <> '' THEN AC1.BRANCH_NAME ELSE AC2.BRANCH_NAME END AS BRANCH_NAME_FEE,
150
	CASE WHEN A.PLAN_ID IS NOT NULL AND A.PLAN_ID <> '' THEN AC1.BRANCH_ID ELSE AC2.BRANCH_ID END AS BRANCH_ID_FEE,
151
	CASE WHEN A.PLAN_ID IS NOT NULL AND A.PLAN_ID <> '' THEN AD1.DEP_NAME ELSE AD2.DEP_NAME END AS DEP_NAME_FEE,
152
	CASE WHEN A.PLAN_ID IS NOT NULL AND A.PLAN_ID <> '' THEN AD1.DEP_ID ELSE AD2.DEP_ID END AS DEP_ID_FEE,
153
	CASE WHEN A.PLAN_ID IS NOT NULL AND A.PLAN_ID <> '' THEN ISNULL(AD1.DEP_NAME + ' - ','') + AC1.BRANCH_NAME ELSE ISNULL(AD2.DEP_NAME + ' - ','') + AC2.BRANCH_NAME END AS BRANCH_FEE_FULL,
154
	CASE WHEN A.REQDT_TYPE = 'I' THEN 1 ELSE 0 END AS IS_NGAN_SACH,
155
	AB.YEAR AS GD_YEAR
156
	FROM PL_REQUEST_DOC_DT A
157
	LEFT JOIN @listTRADE PL ON A.TRADE_ID=PL.TRADE_ID
158
	LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID
159
	LEFT JOIN dbo.PL_IMPORT_DT DT_LOG ON DT_LOG.TRADE_ID=A.TRADE_ID
160
	LEFT JOIN dbo.CM_GOODSTYPE GT ON ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) LIKE '%.' + GT.GD_TYPE_CODE +'.%'
161
	LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
162

    
163
	LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID
164
	LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID
165
	LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID
166
	LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID
167
	-- GIANT 23/12/2021
168
	LEFT JOIN PL_REQUEST_DOC AA ON AA.REQ_ID = A.REQ_ID
169
	LEFT JOIN PL_MASTER AB ON AB.PLAN_ID = A.PLAN_ID
170
	LEFT JOIN CM_BRANCH AC1 ON AC1.BRANCH_ID = AB.BRANCH_ID
171
	LEFT JOIN CM_DEPARTMENT AD1 ON AD1.DEP_ID = AB.DEPT_ID
172
	LEFT JOIN dbo.TL_USER US ON US.TLNANME = A.MAKER_ID
173
	LEFT JOIN CM_BRANCH AC2 ON AC2.BRANCH_ID = US.TLSUBBRID
174
	LEFT JOIN CM_DEPARTMENT AD2 ON AD2.DEP_ID = US.SECUR_CODE
175
	 WHERE A.REQ_ID=@P_REQ_ID 
176
	 END
177
	ELSE IF(@P_TYPE='PDTT')
178
	BEGIN
179

    
180
	SELECT A.REQDT_ID,A.NAME,A.GOODS_ID,A.QUANTITY,A.TOTAL_AMT,A.PRICE,A.TRADE_ID,A.PLAN_ID,PL.NOTES,A.DESCRIPTION,A.HANGHOA_ID,HH.HH_CODE,HH.HH_NAME,A.CURRENCY,A.EXCHANGE_RATE,A.TAXES,
181
	  ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) AS GD_CODE, ISNULL(B.GD_ID,DT_LOG.GOOD_ID) AS GD_ID, ISNULL(B.GD_NAME,DT_LOG.GOOD_NAME) AS GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME,
182
  
183
	ISNULL(PL.AMT_APP,0) AS AMT_APP,
184
	ISNULL(PL.AMT_EXE,0) AS AMT_EXE,
185
	ISNULL(PL.AMT_ETM,0) + ISNULL(PL.AMT_ETM_TMP,0) AS AMT_ETM,
186
	ISNULL(PL.AMT_TF,0) AS AMT_TF,
187
	ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,
188
	ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN,
189
	ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)- ISNULL(PL.AMT_TF,0)-ISNULL(PL.AMT_ETM,0) - ISNULL(PL.AMT_ETM_TMP,0) AS AMT_REMAIN_ETM,
190
	ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0)-ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT Temp WHERE Temp.REQ_ID=@P_REQ_ID AND Temp.TRADE_ID=A.TRADE_ID
191
	AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE')
192
	GROUP BY Temp.TRADE_ID),0)
193
	 AS AMT_REMAIN_REQ,
194
	A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,
195
	 A.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,A.TRADE_TYPE,A.SUP_ID,CS.SUP_NAME,CS.SUP_CODE,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID,A.[NAME] AS REASON_CDT,CASE WHEN A.TRADE_TYPE ='VCCB' THEN N'Theo quy định BVB' ELSE N'Chỉ định thầu' END AS TRADE_TYPE_NAME
196
	FROM PL_REQUEST_DOC_DT A
197
	LEFT JOIN @listTRADE PL ON A.TRADE_ID=PL.TRADE_ID
198
	LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID
199
	LEFT JOIN dbo.PL_IMPORT_DT DT_LOG ON DT_LOG.TRADE_ID=A.TRADE_ID
200
	LEFT JOIN dbo.CM_GOODSTYPE GT ON ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) LIKE '%.' + GT.GD_TYPE_CODE +'.%'
201
	LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
202

    
203
	LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID
204
	LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID
205
	LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID
206
	LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID
207
	LEFT JOIN dbo.PL_REQUEST_TRANSFER PLT ON PLT.REQ_DOC_ID=A.REQ_ID AND PLT.TO_GOOD_ID=A.GOODS_ID
208
	 WHERE A.REQ_ID=@P_REQ_ID 
209
	 --AND (@ROLE='TGD' OR @IS_ALL=1   OR @ROLE='HDQT' OR  EXISTS(SELECT * FROM @DVDM_ID WHERE [@DVDM_ID].DVDM_ID=A.DVDM_ID OR [@DVDM_ID].DVDM_ID=A.KHOI_ID ) OR  EXISTS(SELECT * FROM @DVDM_ID WHERE [@DVDM_ID].DVDM_ID=PLT.FR_DVDM_ID OR [@DVDM_ID].DVDM_ID=PLT.FR_KHOI_ID ))
210
	 END
211
	 ELSE IF(@P_TYPE='XLTT')
212
	BEGIN
213

    
214
	SELECT A.REQDT_ID,A.NAME,A.GOODS_ID,A.QUANTITY,A.TOTAL_AMT,A.PRICE,A.TRADE_ID,A.PLAN_ID,PL.NOTES,A.DESCRIPTION,A.HANGHOA_ID,HH.HH_CODE,HH.HH_NAME,A.CURRENCY,A.EXCHANGE_RATE,A.TAXES,
215
	  ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) AS GD_CODE, ISNULL(B.GD_ID,DT_LOG.GOOD_ID) AS GD_ID, ISNULL(B.GD_NAME,DT_LOG.GOOD_NAME) AS GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME,
216
  
217
	ISNULL(PL.AMT_APP,0) AS AMT_APP,
218
	ISNULL(PL.AMT_EXE,0) AS AMT_EXE,
219
	ISNULL(PL.AMT_ETM,0) + ISNULL(PL.AMT_ETM_TMP,0) AS AMT_ETM,
220
	ISNULL(PL.AMT_TF,0) AS AMT_TF,
221
	ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,
222
	ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN,
223
	ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)- ISNULL(PL.AMT_TF,0)-ISNULL(PL.AMT_ETM,0) - ISNULL(PL.AMT_ETM_TMP,0) AS AMT_REMAIN_ETM,
224
	ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0)-ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT Temp WHERE Temp.REQ_ID=@P_REQ_ID AND Temp.TRADE_ID=A.TRADE_ID
225
	AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE')
226
	GROUP BY Temp.TRADE_ID),0)
227
	 AS AMT_REMAIN_REQ,
228
	A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,
229
	 A.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,A.TRADE_TYPE,A.SUP_ID,CS.SUP_NAME,CS.SUP_CODE,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID,A.[NAME] AS REASON_CDT,CASE WHEN A.TRADE_TYPE ='VCCB' THEN N'Theo quy định BVB' ELSE N'Chỉ định thầu' END AS TRADE_TYPE_NAME
230
	FROM PL_REQUEST_DOC_DT A
231
	LEFT JOIN @listTRADE PL ON A.TRADE_ID=PL.TRADE_ID
232
	LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID
233
	LEFT JOIN dbo.PL_IMPORT_DT DT_LOG ON DT_LOG.TRADE_ID=A.TRADE_ID
234
	LEFT JOIN dbo.CM_GOODSTYPE GT ON ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) LIKE '%.' + GT.GD_TYPE_CODE +'.%'
235
	LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
236

    
237
	LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID
238
	LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID
239
	LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID
240
	LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID
241
	 WHERE A.REQ_ID=@P_REQ_ID 
242
	 --AND (@ROLE='TGD' OR @IS_ALL=1 OR @ROLE='HDQT' OR @ROLE ='KSV' OR @ROLE ='GDV' OR  EXISTS(SELECT * FROM @DVDM_ID WHERE [@DVDM_ID].DVDM_ID=A.DVDM_ID OR [@DVDM_ID].DVDM_ID=A.KHOI_ID )
243
	 --OR EXISTS
244
	 --(SELECT * FROM dbo.CM_GOOD_DVDM CGD WHERE CGD.GD_ID=A.GOODS_ID AND CGD.DVCM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
245
	 --OR EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER PT WHERE PT.TO_TRADE_ID=A.TRADE_ID AND PT.TO_GOOD_ID=A.GOODS_ID AND 
246
	 --(PT.FR_BRN_ID=@BRANCH_ID AND ( PT.FR_DEP_ID=@DEP_ID OR PT.FR_DEP_ID IS NULL OR PT.FR_DEP_ID='') ))
247
	 --)
248

    
249
 END
250

    
251
ELSE IF( @P_TYPE='PYC')
252
BEGIN
253

    
254
SELECT A.REQDT_ID,A.NAME,A.GOODS_ID,A.QUANTITY,A.TOTAL_AMT,A.PRICE,A.TRADE_ID,A.PLAN_ID,PL.NOTES,A.DESCRIPTION,A.HANGHOA_ID,HH.HH_CODE,HH.HH_NAME,A.CURRENCY,A.EXCHANGE_RATE,A.TAXES,
255
  ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) AS GD_CODE, ISNULL(B.GD_ID,DT_LOG.GOOD_ID) AS GD_ID, ISNULL(B.GD_NAME,DT_LOG.GOOD_NAME) AS GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME,
256
ISNULL(PL.AMT_APP,0) AS AMT_APP,
257
ISNULL(PL.AMT_EXE,0) AS AMT_EXE,
258
ISNULL(PL.AMT_ETM,0) AS AMT_ETM,
259
ISNULL(PL.AMT_TF,0) AS AMT_TF,
260
ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,
261
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN,
262
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0) AS AMT_REMAIN_ETM,
263
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0)-ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT Temp WHERE Temp.REQ_ID=@P_REQ_ID AND Temp.TRADE_ID=A.TRADE_ID
264
AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE')
265
GROUP BY Temp.TRADE_ID),0)
266
 AS AMT_REMAIN_REQ,
267
A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,
268
 A.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,A.TRADE_TYPE,A.SUP_ID,CS.SUP_NAME,CS.SUP_CODE,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID,A.[NAME] AS REASON_CDT,CASE WHEN A.TRADE_TYPE ='VCCB' THEN N'Theo quy định BVB' ELSE N'Chỉ định thầu' END AS TRADE_TYPE_NAME
269
FROM PL_REQUEST_DOC_DT A
270
LEFT JOIN @listTRADE PL ON A.TRADE_ID=PL.TRADE_ID
271
LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID
272
LEFT JOIN dbo.PL_IMPORT_DT DT_LOG ON DT_LOG.TRADE_ID=A.TRADE_ID
273
LEFT JOIN dbo.CM_GOODSTYPE GT ON B.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
274
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
275

    
276
LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID
277
LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID
278
LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID
279
LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID
280
 WHERE A.REQ_ID=@P_REQ_ID 
281

    
282
 UNION ALL
283
 
284
SELECT A.REQDT_ID,A.NAME,A.GOODS_ID,A.QUANTITY,A.TOTAL_AMT,A.PRICE,A.TRADE_ID,A.PLAN_ID,PL.NOTES,A.DESCRIPTION,A.HANGHOA_ID,HH.HH_CODE,HH.HH_NAME,A.CURRENCY,A.EXCHANGE_RATE,A.TAXES,
285
  ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) AS GD_CODE, ISNULL(B.GD_ID,DT_LOG.GOOD_ID) AS GD_ID, ISNULL(B.GD_NAME,DT_LOG.GOOD_NAME) AS GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME,
286
ISNULL(PL.AMT_APP,0) AS AMT_APP,
287
ISNULL(PL.AMT_EXE,0) AS AMT_EXE,
288
ISNULL(PL.AMT_ETM,0) AS AMT_ETM,
289
ISNULL(PL.AMT_TF,0) AS AMT_TF,
290
ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,
291
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN,
292
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0) AS AMT_REMAIN_ETM,
293
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0)- ISNULL(PL.AMT_ETM,0)-ISNULL((SELECT SUM(Temp.TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT Temp WHERE Temp.REQ_ID=@P_REQ_ID AND Temp.TRADE_ID=A.TRADE_ID
294
AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE')
295
GROUP BY Temp.TRADE_ID),0)
296
 AS AMT_REMAIN_REQ,
297
A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,
298
 A.DVDM_ID,DM.DVDM_CODE,DM.DVDM_NAME,A.TRADE_TYPE,A.SUP_ID,CS.SUP_NAME,CS.SUP_CODE,GT.GD_TYPE_NAME,GT.GD_TYPE_CODE,GT.GD_TYPE_ID,A.[NAME] AS REASON_CDT,CASE WHEN A.TRADE_TYPE ='VCCB' THEN N'Theo quy định BVB' ELSE N'Chỉ định thầu' END AS TRADE_TYPE_NAME
299
FROM PL_REQUEST_DOC_DT A
300
LEFT JOIN @listTRADE PL ON A.TRADE_ID=PL.TRADE_ID
301
LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID
302
LEFT JOIN dbo.PL_IMPORT_DT DT_LOG ON DT_LOG.TRADE_ID=A.TRADE_ID
303
LEFT JOIN dbo.CM_GOODSTYPE GT ON ISNULL(B.GD_CODE,DT_LOG.GOOD_CODE) LIKE '%.' + GT.GD_TYPE_CODE +'.%'
304
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
305

    
306
LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID
307
LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID
308
LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID
309
LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID
310
 WHERE A.REQ_ID IN (SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_PARENT_ID =@P_REQ_ID)
311

    
312
 ------------BAODNQ 3/1/2023: BỔ SUNG ORDER BY---------
313
 ORDER BY A.REQDT_ID
314

    
315
 END
316

    
317