Project

General

Profile

FILE 3.txt

Truong Nguyen Vu, 09/07/2020 05:43 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
DECLARE @DEP_ID VARCHAR(15),@BRANCH_ID  VARCHAR(15),@ROLE VARCHAR(15),@IS_ALL BIT
9

    
10
	
11
	SET @IS_ALL=0
12

    
13
DECLARE
14
@COST_ID TABLE (
15
	COST_ID VARCHAR(15)
16
)
17

    
18
DECLARE @DVDM_ID TABLE (
19
	DVDM_ID VARCHAR(15)
20
)
21

    
22

    
23
SET @DEP_ID=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@P_USER_LOGIN)
24

    
25
SET @BRANCH_ID=(SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@P_USER_LOGIN)
26
 IF(EXISTS(SELECT ID FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_MASTER' AND BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID))
27
		SET @IS_ALL=1
28
SET @ROLE=(SELECT RoleName FROM dbo.TL_USER WHERE TLNANME=@P_USER_LOGIN)
29

    
30
	INSERT INTO @COST_ID
31
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@BRANCH_ID
32

    
33
	INSERT INTO @DVDM_ID
34
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
35

    
36

    
37

    
38
IF(@P_TYPE='DVKD')
39
BEGIN
40

    
41
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,
42
  B.GD_CODE, B.GD_ID, B.GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME,
43
  
44
ISNULL(PL.AMT_APP,0) + ISNULL( PL.AMT_RECEIVE_TF,0) AS AMT_APP,
45
ISNULL(PL.AMT_EXE,0) AS AMT_EXE,
46
ISNULL(PL.AMT_ETM,0) AS AMT_ETM,
47
ISNULL(PL.AMT_TF,0) AS AMT_TF,
48
ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,
49
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN,
50
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,
51
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
52
AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE')
53
GROUP BY Temp.TRADE_ID),0)
54
 AS AMT_REMAIN_REQ,
55
A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,
56
 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
57
FROM PL_REQUEST_DOC_DT A
58
LEFT JOIN dbo.PL_TRADEDETAIL PL ON A.TRADE_ID=PL.TRADE_ID
59
LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID
60
LEFT JOIN dbo.CM_GOODSTYPE GT ON B.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
61
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
62

    
63
LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID
64
LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID
65
LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID
66
LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID
67
 WHERE A.REQ_ID=@P_REQ_ID 
68
 END
69
ELSE IF(@P_TYPE='PDTT')
70
BEGIN
71

    
72
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,
73
  B.GD_CODE, B.GD_ID, B.GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME,
74
  
75
ISNULL(PL.AMT_APP,0) + ISNULL( PL.AMT_RECEIVE_TF,0) AS AMT_APP,
76
ISNULL(PL.AMT_EXE,0) AS AMT_EXE,
77
ISNULL(PL.AMT_ETM,0) AS AMT_ETM,
78
ISNULL(PL.AMT_TF,0) AS AMT_TF,
79
ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,
80
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN,
81
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,
82
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
83
AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE')
84
GROUP BY Temp.TRADE_ID),0)
85
 AS AMT_REMAIN_REQ,
86
A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,
87
 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
88
FROM PL_REQUEST_DOC_DT A
89
LEFT JOIN dbo.PL_TRADEDETAIL PL ON A.TRADE_ID=PL.TRADE_ID
90
LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID
91
LEFT JOIN dbo.CM_GOODSTYPE GT ON B.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
92
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
93

    
94
LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID
95
LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID
96
LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID
97
LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID
98
LEFT JOIN dbo.PL_REQUEST_TRANSFER PLT ON PLT.REQ_DOC_ID=A.REQ_ID AND PLT.TO_GOOD_ID=A.GOODS_ID
99
 WHERE A.REQ_ID=@P_REQ_ID 
100
 --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 ))
101
 END
102
 ELSE IF(@P_TYPE='XLTT')
103
BEGIN
104

    
105
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,
106
  B.GD_CODE, B.GD_ID, B.GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME,
107
  
108
ISNULL(PL.AMT_APP,0) + ISNULL( PL.AMT_RECEIVE_TF,0) AS AMT_APP,
109
ISNULL(PL.AMT_EXE,0) AS AMT_EXE,
110
ISNULL(PL.AMT_ETM,0) AS AMT_ETM,
111
ISNULL(PL.AMT_TF,0) AS AMT_TF,
112
ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,
113
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN,
114
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,
115
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
116
AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE')
117
GROUP BY Temp.TRADE_ID),0)
118
 AS AMT_REMAIN_REQ,
119
A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,
120
 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
121
FROM PL_REQUEST_DOC_DT A
122
LEFT JOIN dbo.PL_TRADEDETAIL PL ON A.TRADE_ID=PL.TRADE_ID
123
LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID
124
LEFT JOIN dbo.CM_GOODSTYPE GT ON B.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
125
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
126

    
127
LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID
128
LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID
129
LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID
130
LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID
131
 WHERE A.REQ_ID=@P_REQ_ID 
132
 --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 )
133
 --OR EXISTS
134
 --(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))
135
 --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 
136
 --(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='') ))
137
 --)
138

    
139
 END
140

    
141
ELSE IF( @P_TYPE='PYC')
142
BEGIN
143

    
144
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,
145
  B.GD_CODE, B.GD_ID, B.GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME,
146
ISNULL(PL.AMT_APP,0) + ISNULL( PL.AMT_RECEIVE_TF,0) AS AMT_APP,
147
ISNULL(PL.AMT_EXE,0) AS AMT_EXE,
148
ISNULL(PL.AMT_ETM,0) AS AMT_ETM,
149
ISNULL(PL.AMT_TF,0) AS AMT_TF,
150
ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,
151
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN,
152
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,
153
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
154
AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE')
155
GROUP BY Temp.TRADE_ID),0)
156
 AS AMT_REMAIN_REQ,
157
A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,
158
 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
159
FROM PL_REQUEST_DOC_DT A
160
LEFT JOIN dbo.PL_TRADEDETAIL PL ON A.TRADE_ID=PL.TRADE_ID
161
LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID
162
LEFT JOIN dbo.CM_GOODSTYPE GT ON B.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
163
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
164

    
165
LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID
166
LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID
167
LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID
168
LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID
169
 WHERE A.REQ_ID=@P_REQ_ID 
170

    
171
 UNION ALL
172
 
173
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,
174
  B.GD_CODE, B.GD_ID, B.GD_NAME, C.UNIT_CODE, C.UNIT_ID, A.UNIT_NAME,
175
ISNULL(PL.AMT_APP,0) + ISNULL( PL.AMT_RECEIVE_TF,0) AS AMT_APP,
176
ISNULL(PL.AMT_EXE,0) AS AMT_EXE,
177
ISNULL(PL.AMT_ETM,0) AS AMT_ETM,
178
ISNULL(PL.AMT_TF,0) AS AMT_TF,
179
ISNULL(PL.AMT_RECEIVE_TF,0) AS AMT_RECEIVE_TF,
180
ISNULL(PL.AMT_APP,0) + ISNULL(PL.AMT_RECEIVE_TF,0)-ISNULL(PL.AMT_TF,0) - ISNULL(PL.AMT_EXE,0) AS AMT_REMAIN,
181
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,
182
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
183
AND EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID AND PROCESS_ID <>'APPROVE')
184
GROUP BY Temp.TRADE_ID),0)
185
 AS AMT_REMAIN_REQ,
186
A.REQDT_TYPE,A.KHOI_ID,CK.DVDM_CODE AS KHOI_CODE,CK.DVDM_NAME AS KHOI_NAME,
187
 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
188
FROM PL_REQUEST_DOC_DT A
189
LEFT JOIN dbo.PL_TRADEDETAIL PL ON A.TRADE_ID=PL.TRADE_ID
190
LEFT JOIN CM_GOODS B On A.GOODS_ID=B.GD_ID
191
LEFT JOIN dbo.CM_GOODSTYPE GT ON B.GD_CODE LIKE '%.' + GT.GD_TYPE_CODE +'.%'
192
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
193

    
194
LEFT JOIN dbo.CM_DVDM DM ON DM.DVDM_ID=A.DVDM_ID
195
LEFT JOIN dbo.CM_DVDM CK ON CK.DVDM_ID=A.KHOI_ID
196
LEFT JOIN dbo.CM_HANGHOA HH ON HH.HH_ID=A.HANGHOA_ID
197
LEFT JOIN dbo.CM_SUPPLIER CS ON CS.SUP_ID=A.SUP_ID
198
 WHERE A.REQ_ID=(SELECT REQ_PARENT_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@P_REQ_ID)  
199
 END
200