Project

General

Profile

TR_REQUEST_DOC_APPR.txt

Luc Tran Van, 12/09/2020 11:37 AM

 
1
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_App]  
2
@p_REQ_ID VARCHAR(15) = NULL,  
3
@p_AUTH_STATUS VARCHAR(1) = NULL,  
4
@p_CHECKER_ID varchar(15) = NULL,  
5
@p_APPROVE_DT DATETIME = NULL,  
6
@p_ROLE_LOGIN VARCHAR(50) = NULL,  
7
@p_BRANCH_LOGIN VARCHAR(15),  
8
@p_PROCESS_DES NVARCHAR(500)  
9
 
10
AS  
11
--Validation is here  
12
DECLARE @ERRORSYS NVARCHAR(15) = ''  
13
IF ( NOT EXISTS ( SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID))  
14
SET @ERRORSYS = 'REQ-00002'  
15
IF @ERRORSYS <> ''  
16
BEGIN  
17
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS  
18
RETURN '0'  
19
END  
20
BEGIN TRANSACTION  
21
-- LUCTV 20052020 BO SUNG CHECK NEU TRA VE THI KHONG DUYET DUOC  
22
IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND AUTH_STATUS ='R'))  
23
BEGIN  
24
ROLLBACK TRANSACTION  
25
SELECT '-1' Result, N'Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' đang bị từ chối. Vui lòng đợi nhân viên xử lý phiếu và gửi phê duyệt lại!' ErrorDesc  
26
RETURN '-1'  
27
END  
28
--- PHE DUYET TRUNG GIAN  
29
DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE_N VARCHAR(20) ,@DEP_CREATE_N VARCHAR(20),@BRANCH_TYPE VARCHAR(10),  
30
@BRANCH_CREATE_TYPE VARCHAR(10)  
31
SELECT @BRANCH_CREATE_N=BRANCH_CREATE,@DEP_CREATE_N=DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID  
32
SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)  
33
SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE_N)  
34
IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER =@p_CHECKER_ID AND PROCESS_ID ='SIGN'))  
35
BEGIN  
36
DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID  
37
INSERT INTO dbo.PL_PROCESS  
38
(  
39
REQ_ID,  
40
PROCESS_ID,  
41
CHECKER_ID,  
42
APPROVE_DT,  
43
PROCESS_DESC,NOTES  
44
)  
45
VALUES  
46
( @p_REQ_ID, -- REQ_ID - varchar(15)  
47
'SIGN', -- PROCESS_ID - varchar(10)  
48
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)  
49
@p_APPROVE_DT , -- APPROVE_DT - datetime  
50
N'Cấp phê duyệt trung gian xác nhận phiếu yêu cầu mua sắm',  
51
N'Cấp phê duyệt trung gian'  
52
)  
53
--- DUA CAP PHE DUYET TRUONG DON VI  
54
IF(@BRANCH_CREATE_TYPE='PGD')  
55
SET @BRANCH_CREATE_N=(SELECT FATHER_ID FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE_N)  
56
 
57
INSERT INTO dbo.PL_REQUEST_PROCESS  
58
(  
59
REQ_ID,  
60
PROCESS_ID,  
61
STATUS,  
62
ROLE_USER,  
63
BRANCH_ID,  
64
DEP_ID,  
65
CHECKER_ID,  
66
APPROVE_DT,  
67
PARENT_PROCESS_ID,  
68
IS_LEAF,  
69
COST_ID,  
70
DVDM_ID,  
71
NOTES,  
72
IS_HAS_CHILD  
73
)  
74
VALUES  
75
( @p_REQ_ID, -- REQ_ID - varchar(15)  
76
'APPNEW', -- PROCESS_ID - varchar(10)  
77
'C', -- STATUS - varchar(5)  
78
'GDDV', -- ROLE_USER - varchar(50)  
79
@BRANCH_CREATE_N,  
80
@DEP_CREATE_N, -- BRANCH_ID - varchar(15)  
81
'', -- CHECKER_ID - varchar(15)  
82
NULL, -- APPROVE_DT - datetime  
83
'', -- PARENT_PROCESS_ID - varchar(10)  
84
'N', -- IS_LEAF - varchar(1)  
85
'', -- COST_ID - varchar(15)  
86
'', -- DVDM_ID - varchar(15)  
87
N'Chờ trưởng đơn vị phê duyệt', -- NOTES - nvarchar(500)  
88
NULL -- IS_HAS_CHILD - bit  
89
)  
90
--- UPDATE PROCESS_ID VE APP_NEW  
91
UPDATE TR_REQUEST_DOC SET PROCESS_ID ='APPNEW' WHERE REQ_ID =@p_REQ_ID  
92
END  
93
ELSE  
94
--- PHE DUYET GIU NGUYEN NHU THUONG  
95
BEGIN  
96
--- KIEM TRA XEM DA PHE DUYET TRUNG GIAN HAY CHUA  
97
IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <> ''))  
98
BEGIN  
99
	IF(NOT EXISTS (SELECT * FROM PL_PROCESS WHERE PROCESS_ID='SIGN' AND REQ_ID =@p_REQ_ID))  
100
	BEGIN  
101
	ROLLBACK TRANSACTION  
102
	SELECT -1 Result, N'Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' đang đợi cấp phê duyệt trung gian xác nhận. Vui lòng đợi nhân viên '+(SELECT SIGN_USER FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)+' xác  
103
	nhận phiếu!' ErrorDesc  
104
	RETURN -1  
105
	END  
106
	IF(@p_CHECKER_ID = (SELECT TOP 1 SIGN_USER FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
107
	BEGIN
108
				ROLLBACK TRANSACTION
109
				SELECT '-1' Result, N'Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' đang đợi trưởng đơn vị phê duyệt. Bạn không có thẩm quyền phê duyệt cấp trưởng đơn vị! Vui lòng xem lịch sử xử lý phiếu' ErrorDesc
110
				RETURN '-1'
111
	END
112
END  
113
DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID  
114
DECLARE @CURR_PROCESS VARCHAR(20),@TOTAL_AMT DECIMAL(18,2),  
115
@LIMIT_VALUE DECIMAL(18,0), @LIMIT_DVCM DECIMAL(18,0),@IS_NEXT BIT,@DMMS_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20),@BRANCH_HS VARCHAR(20),@DEP_CREATE VARCHAR(15)  
116
SET @BRANCH_HS= (SELECT TOP 1 BRANCH_ID FROM dbo.CM_BRANCH WHERE BRANCH_TYPE='HS')  
117
SET @LIMIT_VALUE=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='PYCMS_DVKD')  
118
SET @LIMIT_DVCM=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='PYCMS_DVCM')  
119
SET @TOTAL_AMT=(SELECT TOTAL_AMT FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)  
120
 
121
SET @CURR_PROCESS = (SELECT PROCESS_ID FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)  
122
 
123
UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='A',REQ_TYPE=0, CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CAST(@p_APPROVE_DT AS DATE),BRANCH_DVMS=BRANCH_CREATE, PROCESS_ID='DMMS' WHERE REQ_ID=@p_REQ_ID  
124
 
125
-- SET @IS_NEXT=(SELECT dbo.FN_CHECK_LIMIT_TR_REQ(@p_REQ_ID,'GDDV'))  
126
 
127
SET @BRANCH_CREATE=(SELECT BRANCH_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)  
128
SET @DEP_CREATE=(SELECT DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)  
129
 
130
IF(@BRANCH_CREATE_TYPE='PGD')  
131
SET @BRANCH_CREATE=(SELECT BRANCH_ID FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)  
132
 
133
IF(EXISTS (SELECT BRANCH_ID FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE AND BRANCH_TYPE='HS'))  
134
BEGIN  
135
IF(@TOTAL_AMT <= @LIMIT_DVCM)  
136
BEGIN  
137
SET @DMMS_ID= (SELECT DISTINCT HC.DVCM_ID FROM dbo.TR_REQUEST_DOC_DT DT  
138
LEFT JOIN dbo.CM_HANGHOA_DVCM HC ON HC.HH_ID=DT.HANGHOA_ID WHERE REQ_DOC_ID=@p_REQ_ID)  
139
UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=2 WHERE REQ_ID=@p_REQ_ID  
140
END  
141
ELSE  
142
BEGIN  
143
SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)  
144
UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID  
145
END  
146
END  
147
ELSE  
148
BEGIN  
149
IF(EXISTS( SELECT RD.REQDT_ID FROM dbo.TR_REQUEST_DOC_DT RD  
150
LEFT JOIN dbo.SYS_HH_GROUP_LIMIT HGL ON RD.HANGHOA_ID=HGL.HH_ID  
151
LEFT JOIN dbo.SYS_GROUP_LIMIT GL ON GL.GROUP_ID=HGL.GROUP_LIMIT_ID  
152
WHERE GL.IS_HO=1 AND RD.REQ_DOC_ID=@p_REQ_ID))  
153
BEGIN  
154
IF(@TOTAL_AMT <= @LIMIT_DVCM)  
155
BEGIN  
156
SET @DMMS_ID= (SELECT DISTINCT HC.DVCM_ID FROM dbo.TR_REQUEST_DOC_DT DT  
157
LEFT JOIN dbo.CM_HANGHOA_DVCM HC ON HC.HH_ID=DT.HANGHOA_ID WHERE REQ_DOC_ID=@p_REQ_ID)  
158
UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=2 WHERE REQ_ID=@p_REQ_ID  
159
END  
160
ELSE  
161
BEGIN  
162
SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)  
163
UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID  
164
END  
165
END  
166
ELSE  
167
BEGIN  
168
IF(@TOTAL_AMT<=@LIMIT_VALUE)  
169
BEGIN  
170
SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_CREATE)  
171
UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_CREATE,DMMS_ID=@DMMS_ID,REQ_TYPE=0 WHERE REQ_ID=@p_REQ_ID  
172
END  
173
ELSE  
174
BEGIN  
175
SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)  
176
UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID  
177
END  
178
END  
179
END  
180
 
181
 
182
 
183
 
184
 
185
--IF(EXISTS( SELECT RD.REQDT_ID FROM dbo.TR_REQUEST_DOC_DT RD  
186
-- LEFT JOIN dbo.SYS_HH_GROUP_LIMIT HGL ON RD.HANGHOA_ID=HGL.HH_ID  
187
-- LEFT JOIN dbo.SYS_GROUP_LIMIT GL ON GL.GROUP_ID=HGL.GROUP_LIMIT_ID  
188
-- WHERE GL.IS_HO=1 AND RD.REQ_DOC_ID=@p_REQ_ID) OR @BRANCH_CREATE=@BRANCH_HS)  
189
-- BEGIN  
190
-- IF(@TOTAL_AMT<=@LIMIT_VALUE AND NOT EXISTS(SELECT HC.DVCM_ID FROM dbo.TR_REQUEST_DOC_DT DT  
191
-- LEFT JOIN dbo.CM_HANGHOA_DVCM HC ON HC.HH_ID=DT.HANGHOA_ID WHERE REQ_DOC_ID=@p_REQ_ID  
192
-- GROUP BY HC.DVCM_ID HAVING COUNT(REQDT_ID)>1))  
193
-- BEGIN  
194
-- SET @DMMS_ID= (SELECT DISTINCT HC.DVCM_ID FROM dbo.TR_REQUEST_DOC_DT DT  
195
-- LEFT JOIN dbo.CM_HANGHOA_DVCM HC ON HC.HH_ID=DT.HANGHOA_ID WHERE REQ_DOC_ID=@p_REQ_ID)  
196
-- UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=2 WHERE REQ_ID=@p_REQ_ID  
197
-- END  
198
-- ELSE  
199
-- BEGIN  
200
-- SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)  
201
-- UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID  
202
-- END  
203
-- END  
204
-- ELSE  
205
-- BEGIN  
206
-- IF(@TOTAL_AMT<=@LIMIT_VALUE)  
207
-- BEGIN  
208
-- SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_CREATE)  
209
-- UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_CREATE,DMMS_ID=@DMMS_ID,REQ_TYPE=0 WHERE REQ_ID=@p_REQ_ID  
210
-- END  
211
-- ELSE  
212
-- BEGIN  
213
-- SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)  
214
-- UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID  
215
-- END  
216
-- END  
217
 
218
 
219
INSERT INTO dbo.PL_REQUEST_PROCESS  
220
(  
221
REQ_ID,  
222
PROCESS_ID,  
223
STATUS,  
224
ROLE_USER,  
225
BRANCH_ID,  
226
CHECKER_ID,  
227
APPROVE_DT,  
228
PARENT_PROCESS_ID,  
229
IS_LEAF,  
230
COST_ID,  
231
DVDM_ID,  
232
NOTES,  
233
IS_HAS_CHILD,  
234
DEP_ID  
235
)  
236
VALUES  
237
( @p_REQ_ID, -- REQ_ID - varchar(15)  
238
'APPNEW', -- PROCESS_ID - varchar(10)  
239
'P', -- STATUS - varchar(5)  
240
'GDDV', -- ROLE_USER - varchar(50)  
241
@BRANCH_CREATE, -- BRANCH_ID - varchar(15)  
242
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)  
243
GETDATE(), -- APPROVE_DT - datetime  
244
'', -- PARENT_PROCESS_ID - varchar(10)  
245
'', -- IS_LEAF - varchar(1)  
246
'', -- COST_ID - varchar(15)  
247
'', -- DVDM_ID - varchar(15)  
248
N'Trưởng đơn vị phê duyệt', -- NOTES - nvarchar(500)  
249
0 , -- IS_HAS_CHILD - bit  
250
@DEP_CREATE  
251
)  
252
 
253
INSERT INTO dbo.PL_REQUEST_PROCESS  
254
(  
255
REQ_ID,  
256
PROCESS_ID,  
257
STATUS,  
258
ROLE_USER,  
259
BRANCH_ID,  
260
CHECKER_ID,  
261
APPROVE_DT,  
262
PARENT_PROCESS_ID,  
263
IS_LEAF,  
264
COST_ID,  
265
DVDM_ID,  
266
NOTES,  
267
IS_HAS_CHILD  
268
)  
269
VALUES  
270
( @p_REQ_ID, -- REQ_ID - varchar(15)  
271
'DMMS', -- PROCESS_ID - varchar(10)  
272
'C', -- STATUS - varchar(5)  
273
'GDDV', -- ROLE_USER - varchar(50)  
274
'', -- BRANCH_ID - varchar(15)  
275
'', -- CHECKER_ID - varchar(15)  
276
GETDATE(), -- APPROVE_DT - datetime  
277
'APPNEW', -- PARENT_PROCESS_ID - varchar(10)  
278
'', -- IS_LEAF - varchar(1)  
279
'', -- COST_ID - varchar(15)  
280
'', -- DVDM_ID - varchar(15)  
281
N'Chờ đầu mối mua sắm xử lý', -- NOTES - nvarchar(500)  
282
1 -- IS_HAS_CHILD - bit  
283
)  
284
 
285
INSERT INTO dbo.PL_PROCESS  
286
(  
287
REQ_ID,  
288
PROCESS_ID,  
289
CHECKER_ID,  
290
APPROVE_DT,  
291
PROCESS_DESC,NOTES  
292
)  
293
VALUES  
294
( @p_REQ_ID, -- REQ_ID - varchar(15)  
295
'APPNEW', -- PROCESS_ID - varchar(10)  
296
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)  
297
@p_APPROVE_DT , -- APPROVE_DT - datetime  
298
@p_PROCESS_DES,  
299
N'Trưởng đơn vị phê duyệt' -- PROCESS_DESC - nvarchar(1000)  
300
)  
301
END  
302
IF @@Error <> 0 GOTO ABORT  
303
 
304
COMMIT TRANSACTION  
305
IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE AUTH_STATUS ='A' AND REQ_ID =@p_REQ_ID))  
306
BEGIN  
307
SELECT '0' as Result, '' ErrorDesc  
308
RETURN '0'  
309
END  
310
ELSE  
311
BEGIN  
312
SELECT '4' as Result, N'Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' đã được đợi cấp phê duyệt trung gian xác nhận thành công. Vui lòng đợi trưởng đơn vị phê duyệt' ErrorDesc  
313
RETURN '4'  
314
END  
315
ABORT:  
316
BEGIN  
317
PRINT 'ERROR'  
318
ROLLBACK TRANSACTION  
319
SELECT '-1' as Result, '' ErrorDesc  
320
RETURN '-1'  
321
End