1
|
|
2
|
ALTER PROCEDURE [dbo].[MW_REQ_CloseREQ]
|
3
|
@p_REQ_ID VARCHAR(15),
|
4
|
@p_CHECKER_ID VARCHAR(200),
|
5
|
@p_APPROVE_DT VARCHAR(20)
|
6
|
AS
|
7
|
DECLARE @Auth VARCHAR(1),@CheckerId VARCHAR(15),@status VARCHAR(20), @BranchId VARCHAR(15), @DepId VARCHAR(15),@IS_DONE VARCHAR(1)
|
8
|
SELECT @Auth = mr.AUTH_STATUS,
|
9
|
@CheckerId = mr.CHECKER_ID,
|
10
|
@status = mr.STATUS,
|
11
|
@IS_DONE = mr.IS_DONE
|
12
|
FROM MW_REQ mr
|
13
|
WHERE mr.REQ_ID = @p_REQ_ID
|
14
|
|
15
|
|
16
|
IF(@Auth = 'A' AND @IS_DONE = '1')
|
17
|
BEGIN
|
18
|
SELECT '0' as Result, '' ErrorDesc, 'Phiếu đã được đóng trước đó' NOTIFICATION
|
19
|
RETURN 0
|
20
|
END
|
21
|
|
22
|
BEGIN TRANSACTION
|
23
|
IF(@status = 'DONE')
|
24
|
BEGIN
|
25
|
SET @Auth = 'A'
|
26
|
SET @status = 'DONE'
|
27
|
|
28
|
IF(EXISTS(SELECT 1 FROM MW_REQ_PROCESS mrp WHERE mrp.REQ_ID = @p_REQ_ID AND ISNULL(mrp.AUTH_STATUS,'') <> 'A'))
|
29
|
BEGIN
|
30
|
GOTO ABORT3
|
31
|
END
|
32
|
|
33
|
SELECT @BranchId = tugr.BRANCH_ID, @DepId = tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_CHECKER_ID) tugr
|
34
|
|
35
|
UPDATE MW_REQ
|
36
|
SET AUTH_STATUS = @Auth, STATUS = @status, APPROVE_DT = GETDATE(), CHECKER_ID = @CheckerId ,IS_DONE = '1'
|
37
|
WHERE REQ_ID = @p_REQ_ID IF @@Error <> 0 GOTO ABORT
|
38
|
|
39
|
UPDATE MW_REQUEST_PROCESS
|
40
|
SET STATUS = 'P'
|
41
|
WHERE REQ_ID = @p_REQ_ID
|
42
|
|
43
|
INSERT INTO MW_REQUEST_PROCESS (REQ_ID,CHECKER_ID, PROCESS_ID,PROCESS_NAME,BRANCH_ID,DEP_ID,RECEPTION_DT, STATUS, PARENT_PROCESS_ID, NOTES)
|
44
|
VALUES (@p_REQ_ID,@p_CHECKER_ID, @status,N'Hoàn thành phiếu',@BranchId,@DepId,GETDATE() , 'P', 'SENDAPP', N'Đóng phiếu yêu cầu ở bước đơn vị đầu mối')
|
45
|
END
|
46
|
ELSE
|
47
|
BEGIN
|
48
|
GOTO ABORT2
|
49
|
END
|
50
|
INSERT INTO dbo.MW_PROCESS
|
51
|
(
|
52
|
REQ_ID,
|
53
|
PROCESS_ID,
|
54
|
CHECKER_ID,
|
55
|
APPROVE_DT,
|
56
|
PROCESS_DESC,
|
57
|
NOTES
|
58
|
)
|
59
|
VALUES
|
60
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
61
|
'LOST', -- PROCESS_ID - varchar(10)
|
62
|
@p_CHECKER_ID, -- CHECKER_ID - varchar(100)
|
63
|
CONVERT(DATETIME, @p_APPROVE_DT, 103), -- APPROVE_DT - datetime
|
64
|
N'Đóng phiếu yêu cầu', -- PROCESS_DESC - nvarchar(1000)
|
65
|
N'Đóng phiếu yêu cầu thành công' -- NOTES - nvarchar(1000)
|
66
|
)
|
67
|
|
68
|
COMMIT TRANSACTION
|
69
|
SELECT '0' as Result, N'Phiếu '+ @p_REQ_ID + N' Được đóng thành công' NOTIFICATION, '' ErrorDesc
|
70
|
RETURN '0'
|
71
|
ABORT:
|
72
|
BEGIN
|
73
|
ROLLBACK TRANSACTION
|
74
|
SELECT '-1' as Result, '' ErrorDesc
|
75
|
RETURN '-1'
|
76
|
END
|
77
|
ABORT2:
|
78
|
BEGIN
|
79
|
ROLLBACK TRANSACTION
|
80
|
SELECT '-1' as Result, N'Phiếu ' + @p_REQ_ID + N' Không thể đóng phiếu khi chưa đén bước xử lý này hoặc không được đóng phiếu' ErrorDesc
|
81
|
RETURN '-1'
|
82
|
END
|
83
|
ABORT3:
|
84
|
BEGIN
|
85
|
ROLLBACK TRANSACTION
|
86
|
SELECT '-1' as Result, N'Phiếu đã có cấp xử lý tiếp theo không thể hủy phiếu tại bước này' ErrorDesc
|
87
|
RETURN '-1'
|
88
|
End
|
89
|
GO
|
90
|
IF @@ERROR <> 0 SET NOEXEC ON
|
91
|
GO
|
92
|
PRINT N'Altering [dbo].[MW_REQ_SendApp]'
|
93
|
GO
|
94
|
ALTER PROCEDURE [dbo].[MW_REQ_SendApp]
|
95
|
@p_REQ_ID VARCHAR(20),
|
96
|
@p_REQ_CODE varchar(15),
|
97
|
@p_AUTH_STATUS VARCHAR(1),
|
98
|
@p_STATUS VARCHAR(15),
|
99
|
@p_CHECKER_ID VARCHAR(25)
|
100
|
|
101
|
AS
|
102
|
BEGIN TRANSACTION
|
103
|
-- DECLARE @ROLE_KT VARCHAR(50) = (SELECT TU.RoleName FROM TL_USER TU WHERE TU.TLNANME = @p_USER_LOGIN)
|
104
|
-- DECLARE @DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20)
|
105
|
-- DECLARE @ROLE_LOGIN TABLE(ROLE_USER VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
|
106
|
--
|
107
|
-- INSERT INTO @ROLE_LOGIN
|
108
|
-- SELECT tugr.ROLE_ID, tugr.BRANCH_ID, tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr
|
109
|
--
|
110
|
-- SET @DEP_ID= (SELECT DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN)
|
111
|
-- SET @BRANCH_ID= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN)
|
112
|
IF(EXISTS(SELECT 1 FROM MW_REQ WHERE REQ_ID = @p_REQ_ID AND STATUS = 'DONE'))
|
113
|
BEGIN
|
114
|
ROLLBACK TRANSACTION
|
115
|
SELECT '-1' as Result,'' REQ_ID,''REQ_ID,N'Phiếu yêu cầu đã được phê duyệt hoàn tất. Gửi phê duyệt thất bại.' NOTICATION
|
116
|
RETURN '-1'
|
117
|
END
|
118
|
|
119
|
DECLARE @STATUS VARCHAR(10), @WARE_CODE VARCHAR(20)
|
120
|
SELECT TOP 1 @STATUS = A.STATUS, @WARE_CODE = C.WARE_CODE
|
121
|
FROM MW_REQ A
|
122
|
LEFT JOIN CM_REQ_TYPE B ON A.REQ_TYPE = B.REQ_TYPE_ID
|
123
|
LEFT JOIN CM_WARE C ON B.WARE_TYPE = C.WARE_ID
|
124
|
WHERE A.REQ_ID = @p_REQ_ID
|
125
|
|
126
|
IF(EXISTS(SELECT REQ_ID FROM MW_REQ WHERE REQ_ID = @p_REQ_ID AND AUTH_STATUS = @p_AUTH_STATUS ) )
|
127
|
BEGIN
|
128
|
ROLLBACK TRANSACTION
|
129
|
SELECT '-1' AS Result , '' REQ_CODE, N'Phiếu yêu cầu đã được gửi phê duyệt trước đó.' NOTICATION
|
130
|
RETURN '-1'
|
131
|
END
|
132
|
|
133
|
IF(NOT EXISTS(SELECT REQ_ID FROM MW_REQ_DT WHERE REQ_ID = @p_REQ_ID))
|
134
|
BEGIN
|
135
|
ROLLBACK TRANSACTION
|
136
|
SELECT '-1' AS Result , '' REQ_ID, N'Nội dung chi tiết đơn vị yêu cầu không được để trống.' NOTICATION
|
137
|
RETURN '-1'
|
138
|
END
|
139
|
IF( EXISTS( SELECT MATERIAL_ID,BRANCH_USE,DEP_USE
|
140
|
FROM MW_REQ_DT
|
141
|
WHERE REQ_ID = @p_REQ_ID
|
142
|
GROUP BY MATERIAL_ID, BRANCH_USE,DEP_USE HAVING COUNT(*)>1))
|
143
|
BEGIN
|
144
|
ROLLBACK TRANSACTION
|
145
|
SELECT '-1' AS Result , '' REQ_ID, N'Nội dung chi tiết đơn vị yêu cầu bị trùng lặp: loại vật liệu và đơn vị sử dụng.' NOTICATION
|
146
|
RETURN '-1'
|
147
|
END
|
148
|
|
149
|
IF(NOT EXISTS(SELECT * FROM MW_REQ_PROCESS mrp WHERE mrp.REQ_ID = @p_REQ_ID) AND (SELECT A.STATUS FROM MW_REQ A WHERE REQ_ID = @p_REQ_ID) = 'DMTN')
|
150
|
BEGIN
|
151
|
ROLLBACK TRANSACTION
|
152
|
SELECT '-1' as Result,'' REQ_ID,''REQ_ID,N'Cấp xử lý phải được lưu lại trước khi gửi duyệt' NOTICATION
|
153
|
RETURN '-1'
|
154
|
END
|
155
|
|
156
|
|
157
|
IF((SELECT A.STATUS FROM MW_REQ A WHERE A.REQ_ID = @p_REQ_ID) = 'ADDNEW')
|
158
|
BEGIN
|
159
|
SET @p_AUTH_STATUS = 'U'
|
160
|
SET @p_STATUS = 'SendApp'
|
161
|
UPDATE MW_REQ SET AUTH_STATUS = @p_AUTH_STATUS, STATUS = @p_STATUS WHERE REQ_ID = @p_REQ_ID
|
162
|
DECLARE @p_BRANCH_ID varchar(50) = (SELECT BRANCH_ID FROM MW_REQ WHERE REQ_ID = @p_REQ_ID)
|
163
|
DECLARE @p_DEP_ID VARCHAR(50) = (SELECT DEP_ID FROM MW_REQ WHERE REQ_ID = @p_REQ_ID)
|
164
|
UPDATE MW_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = GETDATE() WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'ADDNEW'
|
165
|
|
166
|
-- INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE,RECEPTION_DT,CHECKER_ID)
|
167
|
-- VALUES(@p_REQ_CODE,'SENDAPP',N'GỬI TĐV DUYỆT','P','GDDV',@p_BRANCH_ID,'ADDNEW',@p_DEP_ID, 'Approve',GETDATE(),@p_CHECKER_ID)
|
168
|
-- INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE,RECEPTION_DT,NOTES)
|
169
|
-- VALUES(@p_REQ_CODE,'APPNEW',N'TDV DUYỆT','C','GDDV',@p_BRANCH_ID,'ADDNEW',@p_DEP_ID, 'Approve',GETDATE(), N'CHỜ DUYỆT')
|
170
|
|
171
|
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE,RECEPTION_DT,CHECKER_ID,NOTES)
|
172
|
VALUES(@p_REQ_ID,'SENDAPP',N'Gửi Trưởng đơn vị phê duyệt','P','GDDV',@p_BRANCH_ID,'ADDNEW',@p_DEP_ID, 'Approve',GETDATE(),@p_CHECKER_ID, N'Nhân viên tạo phiếu và gửi đến Trưởng đơn vị phê duyệt')
|
173
|
|
174
|
--UPDATE MW_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_REQ_CODE AND PROCESS_ID = 'APPNEW'
|
175
|
END
|
176
|
|
177
|
--ĐỐI VỚI 3 KHO THẺ. TỪ TTKD GỬI LÊN, BẮT BUỘC PHẢI CHỌN CẤP XỬ LÝ TIẾP THEO
|
178
|
IF(@STATUS = 'DMTN' AND @WARE_CODE IN ('02TE','03CT','04VT'))
|
179
|
BEGIN
|
180
|
IF(NOT EXISTS(SELECT 1 FROM MW_REQ_PROCESS WHERE REQ_ID = @p_REQ_ID))
|
181
|
BEGIN
|
182
|
ROLLBACK TRANSACTION
|
183
|
SELECT '-1' as Result,'' REQ_ID,''REQ_ID,N'Phiếu yêu cầu đối với kho vật liệu thẻ, phôi thẻ trắng, phôi thẻ cá thể hóa, bắt buộc chọn cấp xử lý tiếp theo.' NOTICATION
|
184
|
RETURN '-1'
|
185
|
END
|
186
|
END
|
187
|
|
188
|
|
189
|
IF((SELECT A.STATUS FROM MW_REQ A WHERE REQ_ID = @p_REQ_ID) = 'DMTN' AND EXISTS(SELECT * FROM MW_REQ_PROCESS WHERE REQ_ID = @p_REQ_ID))
|
190
|
BEGIN
|
191
|
|
192
|
IF(NOT EXISTS(SELECT * FROM MW_REQ_PROCESS mrp WHERE mrp.REQ_ID = @p_REQ_ID))
|
193
|
BEGIN
|
194
|
GOTO ABORT2
|
195
|
END
|
196
|
|
197
|
SET @p_AUTH_STATUS = 'U'
|
198
|
SET @p_STATUS = 'LEVEL'
|
199
|
|
200
|
UPDATE MW_REQ SET AUTH_STATUS = @p_AUTH_STATUS, STATUS = @p_STATUS WHERE REQ_ID = @p_REQ_ID
|
201
|
UPDATE MW_REQUEST_PROCESS SET STATUS = 'P' WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DMTN'
|
202
|
|
203
|
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,[STATUS],BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE,RECEPTION_DT,CHECKER_ID,NOTES)
|
204
|
VALUES(@p_REQ_ID,'DMTN',N'Gửi các cấp xử lý tiếp theo','P',@p_BRANCH_ID,'APPNEW',@p_DEP_ID, 'SendApp',GETDATE(),@p_CHECKER_ID, N'Đầu mối tiếp nhập thêm cấp xử lý và gửi đến các cấp xử lý')
|
205
|
|
206
|
INSERT INTO MW_REQUEST_PROCESS (REQ_ID, PROCESS_ID,PROCESS_NAME, STATUS, BRANCH_ID, PARENT_PROCESS_ID, IS_LEAF, IS_HAS_CHILD,DEP_ID, DVKD_USER_APP, PROCESS_TYPE, STAGE, CHECKER_ID, NOTES, RECEPTION_DT)
|
207
|
SELECT mrp.REQ_ID, 'LEVEL',N'CẤP XỬ LÝ TIẾP THEO', CASE WHEN ROW_NUMBER() OVER (ORDER BY mrp.STAGE) = 1 THEN 'C' ELSE 'U' END, 'DV0001', 'DMTN',
|
208
|
ROW_NUMBER() OVER (ORDER BY mrp.STAGE), ROW_NUMBER() OVER (ORDER BY mrp.STAGE) + 1,(SELECT a.SECUR_CODE FROM TL_USER a WHERE a.TLNANME = mrp.TLNAME),mrp.TLNAME,'Approve',STAGE, mrp.TLNAME, N'Chờ duyệt', DATEADD(SECOND,1,GETDATE())
|
209
|
FROM MW_REQ_PROCESS mrp WHERE mrp.REQ_ID = @p_REQ_ID
|
210
|
END
|
211
|
|
212
|
INSERT INTO dbo.MW_PROCESS
|
213
|
(
|
214
|
REQ_ID,
|
215
|
PROCESS_ID,
|
216
|
CHECKER_ID,
|
217
|
APPROVE_DT,
|
218
|
PROCESS_DESC,
|
219
|
NOTES
|
220
|
)
|
221
|
VALUES
|
222
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
223
|
'SENDAPP', -- PROCESS_ID - varchar(10)
|
224
|
@p_CHECKER_ID, -- CHECKER_ID - varchar(100)
|
225
|
GETDATE(), -- APPROVE_DT - datetime
|
226
|
N'Nhân viên gửi phê duyệt', -- PROCESS_DESC - nvarchar(1000)
|
227
|
N'Nhân viên gửi phê duyệt thành công' -- NOTES - nvarchar(1000)
|
228
|
)
|
229
|
IF @@Error <> 0 GOTO ABORT
|
230
|
COMMIT TRANSACTION
|
231
|
SELECT '0' as Result,'' REQ_ID,'' REQ_ID, N'Phiếu yêu cầu: '+(SELECT REQ_ID FROM MW_REQ WHERE REQ_ID = @p_REQ_ID)+N' đã được gửi phê duyệt thành công.' NOTICATION, '' ErrorDesc
|
232
|
RETURN '0'
|
233
|
ABORT:
|
234
|
BEGIN
|
235
|
ROLLBACK TRANSACTION
|
236
|
SELECT '-1' as Result,'' REQ_ID,''REQ_ID, '' NOTICATION
|
237
|
RETURN '-1'
|
238
|
END
|
239
|
ABORT2:
|
240
|
BEGIN
|
241
|
ROLLBACK TRANSACTION
|
242
|
SELECT '-1' as Result,'' REQ_ID,''REQ_ID,N'Cấp xử lý phải được lưu lại trước khi gửi duyệt' NOTICATION
|
243
|
RETURN '-1'
|
244
|
End
|
245
|
GO
|
246
|
IF @@ERROR <> 0 SET NOEXEC ON
|
247
|
GO
|
248
|
PRINT N'Altering [dbo].[MW_REQ_Upd]'
|
249
|
GO
|
250
|
ALTER PROCEDURE [dbo].[MW_REQ_Upd]
|
251
|
@p_REQ_ID VARCHAR(20)= NULL,
|
252
|
@p_REQ_CODE VARCHAR(15)= NULL,
|
253
|
@p_REQ_TYPE VARCHAR(25) = NULL,
|
254
|
@p_BRANCH_ID VARCHAR(25) = NULL,
|
255
|
@p_DEP_ID VARCHAR(25) = NULL,
|
256
|
@p_PROMOTION_ID VARCHAR(25)= NULL,
|
257
|
@p_REGARDS_TO NVARCHAR(1000) = NULL,
|
258
|
@p_REQUEST_DOC_CONTENT NVARCHAR(1000) = NULL,
|
259
|
@p_AUTH_STATUS VARCHAR(1)= NULL,
|
260
|
@p_QUANTITY_ALLOCATION VARCHAR(1000),
|
261
|
@p_STATUS VARCHAR(15)= NULL,
|
262
|
@p_RECORD_STATUS varchar(15)= NULL,
|
263
|
@p_MAKER_ID varchar(100) = NULL,
|
264
|
@p_CREATE_DT VARCHAR(30) = NULL,
|
265
|
@p_APPROVE_DT varchar(25)= NULL,
|
266
|
@p_CHECKER_ID varchar(100)= NULL,
|
267
|
@p_BRANCH_RECEIVE_ID VARCHAR(50) = NULL,
|
268
|
@p_BRANCH_RECEIVE_NAME NVARCHAR(1000) =NULL,
|
269
|
@p_DEP_RECEIVE_ID VARCHAR(50) = NULL,
|
270
|
@p_DEP_RECEIVE_NAME NVARCHAR(1000)= NULL,
|
271
|
@p_XmlData XML = NULL,
|
272
|
@p_XmlDataProcess XML = NULL
|
273
|
AS
|
274
|
|
275
|
--Validation is here
|
276
|
DECLARE @ERRORSYS NVARCHAR(1500) = ''
|
277
|
DECLARE @INDEX INT =1
|
278
|
--KHAI BAO BIEN CURSOR DETAIL
|
279
|
DECLARE @REQ_DT_ID varchar(15)= NULL,
|
280
|
@REQ_ID VARCHAR(20)=NULL,
|
281
|
@REQ_CODE varchar(15) =NULL,
|
282
|
@MATERIAL_GROUP VARCHAR (200)= NULL,
|
283
|
@MATERIAL_ID nvarchar(200) =NULL,
|
284
|
@UNIT_ID VARCHAR(15) =NULL,
|
285
|
@QUANTITY_REQ DECIMAL(18,2)= NULL,
|
286
|
@QUANTITY_ALLOCATION DECIMAL(18,2) = NULL,
|
287
|
@REASON NVARCHAR(1000) =NULL,
|
288
|
@DEP_USE VARCHAR(15) = NULL,
|
289
|
@BRANCH_USE VARCHAR(15) = NULL,
|
290
|
@BRANCH_NAME NVARCHAR(1000) = NULL,
|
291
|
@ALLOCATED DECIMAL(18,2) = NULL
|
292
|
--KHAI BAO BIEN CURSOR Process
|
293
|
DECLARE @REQ_PROCESS_ID varchar(15),
|
294
|
@TLNAME VARCHAR (200)= NULL,
|
295
|
@PROCESS_STATUS nvarchar(200) =NULL,
|
296
|
@NOTES NVARCHAR(1000) =NULL,
|
297
|
@REQ_CODE_PROCESS varchar(15) =NULL,
|
298
|
@STAGE INT
|
299
|
--
|
300
|
DECLARE @hdoc INT;
|
301
|
|
302
|
BEGIN TRANSACTION
|
303
|
IF(@p_STATUS = 'SendApp')
|
304
|
BEGIN
|
305
|
ROLLBACK TRANSACTION
|
306
|
SELECT '-1' AS Result , '' REQ_ID, N'Phiếu yêu cầu không được chỉnh sửa. Vui lòng kiểm tra lại' ErrorDesc
|
307
|
RETURN '-1'
|
308
|
END
|
309
|
IF(@p_AUTH_STATUS = 'R')
|
310
|
BEGIN
|
311
|
DECLARE @USER_LOGIN VARCHAR(20) = @p_MAKER_ID
|
312
|
IF((@p_STATUS = 'R_MAKERID' OR @p_STATUS = 'R_SENDAPP') AND (SELECT mr.MAKER_ID FROM MW_REQ mr WHERE mr.REQ_ID = @p_REQ_ID) != @USER_LOGIN)
|
313
|
BEGIN
|
314
|
ROLLBACK TRANSACTION
|
315
|
SELECT '-1' AS Result , '' REQ_ID, N'Không được phép chỉnh phiếu, phiếu yêu cầu được trả về cho người tạo chỉnh sửa' ErrorDesc
|
316
|
RETURN '-1'
|
317
|
END
|
318
|
IF((@p_STATUS = 'R_DMTN') AND (((SELECT mr.MAKER_ID FROM MW_REQ mr WHERE mr.REQ_ID = @p_REQ_ID) = @USER_LOGIN)
|
319
|
OR ((SELECT mr.CHECKER_ID FROM MW_REQ mr WHERE mr.REQ_ID = @p_REQ_ID) = @USER_LOGIN)))
|
320
|
BEGIN
|
321
|
ROLLBACK TRANSACTION
|
322
|
SELECT '-1' AS Result , '' REQ_ID, N'Không được phép chỉnh phiếu, phiếu yêu cầu được trả về cho đầu mối chỉnh sửa' ErrorDesc
|
323
|
RETURN '-1'
|
324
|
END
|
325
|
END
|
326
|
---
|
327
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlData;
|
328
|
DECLARE XmlData CURSOR FOR
|
329
|
SELECT *
|
330
|
FROM
|
331
|
OPENXML (@hdoc, '/Root/MWREQDT', 2)
|
332
|
WITH ( REQ_DT_ID varchar(15),
|
333
|
REQ_ID varchar(20),
|
334
|
REQ_CODE varchar(15),
|
335
|
MATERIAL_GROUP VARCHAR (200),
|
336
|
MATERIAL_ID nvarchar(200),
|
337
|
UNIT_ID VARCHAR(15),
|
338
|
QUANTITY_REQ DECIMAL(18,2),
|
339
|
QUANTITY_ALLOCATION DECIMAL(18,2),
|
340
|
REASON NVARCHAR(1000),
|
341
|
DEP_USE VARCHAR(15),
|
342
|
BRANCH_USE VARCHAR(15),
|
343
|
BRANCH_NAME NVARCHAR(1000),
|
344
|
ALLOCATED DECIMAL(18,2)
|
345
|
);
|
346
|
OPEN XmlData;
|
347
|
|
348
|
---
|
349
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlDataProcess;
|
350
|
DECLARE XmlDataProcess CURSOR FOR
|
351
|
SELECT * FROM OPENXML (@hdoc, '/Root/MWREQPROCESS', 2)
|
352
|
WITH ( REQ_PROCESS_ID VARCHAR(15),
|
353
|
TLNAME varchar(15),
|
354
|
PROCESS_STATUS varchar(15),
|
355
|
NOTES NVARCHAR(1000),
|
356
|
REQ_ID varchar(15),
|
357
|
STAGE INT);
|
358
|
OPEN XmlDataProcess;
|
359
|
|
360
|
IF(@p_STATUS = 'ADDNEW')
|
361
|
BEGIN
|
362
|
UPDATE MW_REQ SET REQ_TYPE = @p_REQ_TYPE,
|
363
|
BRANCH_ID = @p_BRANCH_ID,
|
364
|
REGARDS_TO = @p_REGARDS_TO,
|
365
|
REQUEST_DOC_CONTENT = @p_REQUEST_DOC_CONTENT,
|
366
|
PROMOTION_ID = @p_PROMOTION_ID, DEP_ID = @p_DEP_ID,
|
367
|
BRANCH_RECEIVE_ID=@p_BRANCH_RECEIVE_ID,
|
368
|
BRANCH_RECEIVE_NAME=@p_BRANCH_RECEIVE_NAME,
|
369
|
DEP_RECEIVE_ID = @p_DEP_RECEIVE_ID,
|
370
|
DEP_RECEIVE_NAME=@p_DEP_RECEIVE_NAME
|
371
|
WHERE REQ_ID = @p_REQ_ID
|
372
|
|
373
|
DELETE MW_REQ_DT WHERE REQ_ID = @p_REQ_ID
|
374
|
--
|
375
|
FETCH NEXT FROM XmlData INTO @REQ_DT_ID,@REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,@ALLOCATED
|
376
|
WHILE @@FETCH_STATUS = 0
|
377
|
BEGIN
|
378
|
EXEC SYS_CodeMasters_Gen 'MW_REQ_DT', @REQ_DT_ID out
|
379
|
IF @REQ_DT_ID='' OR @REQ_DT_ID IS NULL GOTO ABORT
|
380
|
|
381
|
IF(@QUANTITY_REQ=0)
|
382
|
BEGIN
|
383
|
ROLLBACK TRANSACTION
|
384
|
CLOSE XmlData;
|
385
|
DEALLOCATE XmlData;
|
386
|
SELECT '-1' as Result, '' REQ_ID, N'Danh sách yêu cầu, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': số lượng yêu cầu không thể đáp ứng.' ErrorDesc
|
387
|
RETURN '-1'
|
388
|
END
|
389
|
IF(ISNULL(@p_PROMOTION_ID,'') <> '' AND @MATERIAL_ID NOT IN (SELECT cpd.MATERIAL_ID FROM CM_PROMOTION_DT cpd WHERE cpd.PROMOTION_ID = @p_PROMOTION_ID))
|
390
|
BEGIN
|
391
|
ROLLBACK TRANSACTION
|
392
|
CLOSE XmlData;
|
393
|
DEALLOCATE XmlData;
|
394
|
SELECT '-1' as Result, '' REQ_ID, N'Danh sách yêu cầu, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': loại vật liệu bạn chọn không có trong danh sách chương trình.' ErrorDesc
|
395
|
RETURN '-1'
|
396
|
END
|
397
|
--
|
398
|
SET @REQ_ID = @p_REQ_ID
|
399
|
INSERT INTO MW_REQ_DT (REQ_DT_ID,REQ_ID, REQ_CODE, MATERIAL_GROUP, MATERIAL_ID, UNIT_ID, QUANTITY_REQ, QUANTITY_ALLOCATION, REASON,DEP_USE,BRANCH_USE,BRANCH_NAME,ALLOCATED)
|
400
|
VALUES (@REQ_DT_ID,@REQ_ID, @REQ_CODE, @MATERIAL_GROUP, @MATERIAL_ID, @UNIT_ID, @QUANTITY_REQ, @QUANTITY_ALLOCATION, @REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,0)
|
401
|
|
402
|
|
403
|
--
|
404
|
IF @@Error <> 0 GOTO ABORT;
|
405
|
|
406
|
FETCH NEXT FROM XmlData INTO @REQ_DT_ID,@REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,@ALLOCATED
|
407
|
|
408
|
END
|
409
|
CLOSE XmlData;
|
410
|
DEALLOCATE XmlData;
|
411
|
|
412
|
--thêm lịch sử cập nhật
|
413
|
--INSERT INTO MW_REQUEST_PROCESS () VALUES ()
|
414
|
END
|
415
|
IF(@p_STATUS = 'DMTN')
|
416
|
BEGIN
|
417
|
--Update quantity_allcation(số lượng cấp phát)
|
418
|
DELETE MW_REQ_DT WHERE REQ_ID = @p_REQ_ID
|
419
|
--
|
420
|
FETCH NEXT FROM XmlData INTO @REQ_DT_ID,@p_REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,@ALLOCATED
|
421
|
WHILE @@FETCH_STATUS = 0
|
422
|
BEGIN
|
423
|
IF(@QUANTITY_ALLOCATION > @QUANTITY_REQ)
|
424
|
BEGIN
|
425
|
ROLLBACK TRANSACTION
|
426
|
CLOSE XmlData;
|
427
|
DEALLOCATE XmlData;
|
428
|
SELECT '-1' as Result, '' REQ_ID, N'Danh sách yêu cầu, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': số lượng cấp phát không được lớn hơn số lượng yêu cầu.' ErrorDesc
|
429
|
RETURN '-1'
|
430
|
END
|
431
|
IF(@QUANTITY_REQ=0)
|
432
|
BEGIN
|
433
|
ROLLBACK TRANSACTION
|
434
|
CLOSE XmlData;
|
435
|
DEALLOCATE XmlData;
|
436
|
SELECT '-1' as Result, '' REQ_ID, N'Danh sách yêu cầu, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': số lượng yêu cầu không thể đáp ứng.' ErrorDesc
|
437
|
RETURN '-1'
|
438
|
END
|
439
|
|
440
|
EXEC SYS_CodeMasters_Gen 'MW_REQ_DT', @REQ_DT_ID out
|
441
|
IF @REQ_DT_ID='' OR @REQ_DT_ID IS NULL GOTO ABORT
|
442
|
--
|
443
|
SET @INDEX = @INDEX +1
|
444
|
SET @REQ_ID = @p_REQ_ID
|
445
|
INSERT INTO MW_REQ_DT (REQ_DT_ID,REQ_ID, REQ_CODE, MATERIAL_GROUP, MATERIAL_ID, UNIT_ID, QUANTITY_REQ, QUANTITY_ALLOCATION, REASON,DEP_USE,BRANCH_USE,BRANCH_NAME,ALLOCATED)
|
446
|
VALUES (@REQ_DT_ID,@REQ_ID, @REQ_CODE, @MATERIAL_GROUP, @MATERIAL_ID, @UNIT_ID, @QUANTITY_REQ, @QUANTITY_ALLOCATION, @REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,0)
|
447
|
--
|
448
|
IF @@Error <> 0 GOTO ABORT;
|
449
|
|
450
|
FETCH NEXT FROM XmlData INTO @REQ_DT_ID,@p_REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,@ALLOCATED
|
451
|
|
452
|
END
|
453
|
CLOSE XmlData;
|
454
|
DEALLOCATE XmlData;
|
455
|
|
456
|
--Insert MW_REQ_PROCESS
|
457
|
DELETE MW_REQ_PROCESS WHERE REQ_ID = @p_REQ_ID
|
458
|
|
459
|
--
|
460
|
FETCH NEXT FROM XmlDataProcess INTO @REQ_PROCESS_ID,@TLNAME,@PROCESS_STATUS,@NOTES,@REQ_CODE_PROCESS,@STAGE
|
461
|
-- DECLARE @STATUS_P VARCHAR(5) = 'C'
|
462
|
WHILE @@FETCH_STATUS = 0
|
463
|
BEGIN
|
464
|
EXEC SYS_CodeMasters_Gen 'MW_REQ_PROCESS', @REQ_PROCESS_ID out
|
465
|
IF @REQ_PROCESS_ID='' OR @REQ_PROCESS_ID IS NULL GOTO ABORT
|
466
|
--
|
467
|
SET @REQ_CODE_PROCESS = @p_REQ_ID
|
468
|
INSERT INTO MW_REQ_PROCESS (REQ_PROCESS_ID, TLNAME, PROCESS_STATUS, NOTES, REQ_ID,STAGE)
|
469
|
VALUES (@REQ_PROCESS_ID, @TLNAME, @PROCESS_STATUS, @NOTES, @REQ_CODE_PROCESS,@STAGE)
|
470
|
|
471
|
--INSERT INTO MW_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, NOTES, STAGE) VALUES (@p_REQ_ID, 'LEVEL', @STATUS_P, 'TDV', @TLNAME, '','DMTN', N'Chờ duyệt',@STAGE)
|
472
|
--
|
473
|
IF @@Error <> 0 GOTO ABORT;
|
474
|
--SET @STATUS_P = 'U'
|
475
|
FETCH NEXT FROM XmlDataProcess INTO @REQ_PROCESS_ID,@TLNAME,@PROCESS_STATUS,@NOTES,@REQ_CODE_PROCESS,@STAGE
|
476
|
END
|
477
|
CLOSE XmlDataProcess;
|
478
|
DEALLOCATE XmlDataProcess;
|
479
|
|
480
|
--thêm lịch sử add process
|
481
|
--INSERT INTO MW_REQUEST_PROCESS () VALUES ()
|
482
|
END
|
483
|
--Người tạo cập nhật lại phiếu bị từ chối ở Bước TDV duyệt và đầu mối kietvt 18/10/2023
|
484
|
IF(EXISTS(SELECT * FROM MW_REQ WHERE REQ_ID = @p_REQ_ID AND MAKER_ID = @p_MAKER_ID AND STATUS IN ('R_SENDAPP','DMTN_MAKER','R_MAKERID')))
|
485
|
BEGIN
|
486
|
UPDATE MW_REQ SET REQ_TYPE = @p_REQ_TYPE,
|
487
|
BRANCH_ID = @p_BRANCH_ID,
|
488
|
REGARDS_TO = @p_REGARDS_TO,
|
489
|
REQUEST_DOC_CONTENT = @p_REQUEST_DOC_CONTENT,
|
490
|
PROMOTION_ID = @p_PROMOTION_ID,
|
491
|
DEP_ID = @p_DEP_ID,
|
492
|
STATUS = 'ADDNEW', AUTH_STATUS = 'E',
|
493
|
BRANCH_RECEIVE_ID=@p_BRANCH_RECEIVE_ID,
|
494
|
BRANCH_RECEIVE_NAME=@p_BRANCH_RECEIVE_NAME,
|
495
|
DEP_RECEIVE_ID = @p_DEP_RECEIVE_ID,
|
496
|
DEP_RECEIVE_NAME=@p_DEP_RECEIVE_NAME
|
497
|
WHERE REQ_ID = @p_REQ_ID
|
498
|
|
499
|
DELETE MW_REQ_DT WHERE REQ_ID = @p_REQ_ID
|
500
|
--
|
501
|
FETCH NEXT FROM XmlData INTO @REQ_DT_ID,@p_REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,@ALLOCATED
|
502
|
WHILE @@FETCH_STATUS = 0
|
503
|
BEGIN
|
504
|
EXEC SYS_CodeMasters_Gen 'MW_REQ_DT', @REQ_DT_ID out
|
505
|
IF @REQ_DT_ID='' OR @REQ_DT_ID IS NULL GOTO ABORT
|
506
|
--
|
507
|
SET @REQ_ID = @p_REQ_ID
|
508
|
INSERT INTO MW_REQ_DT (REQ_DT_ID,REQ_ID, REQ_CODE, MATERIAL_GROUP, MATERIAL_ID, UNIT_ID, QUANTITY_REQ, QUANTITY_ALLOCATION, REASON,DEP_USE,BRANCH_USE,BRANCH_NAME,ALLOCATED)
|
509
|
VALUES (@REQ_DT_ID,@p_REQ_ID, @REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID, @UNIT_ID, @QUANTITY_REQ, @QUANTITY_ALLOCATION, @REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,0)
|
510
|
--
|
511
|
IF @@Error <> 0 GOTO ABORT;
|
512
|
|
513
|
FETCH NEXT FROM XmlData INTO @REQ_DT_ID,@p_REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,@ALLOCATED
|
514
|
|
515
|
END
|
516
|
CLOSE XmlData;
|
517
|
DEALLOCATE XmlData;
|
518
|
-- Tạo lại lịch sử xử lý
|
519
|
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,ROLE_USER,[STATUS],BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, CHECKER_ID,NOTES,RECEPTION_DT)
|
520
|
VALUES(@REQ_ID,'ADDNEW',N'Chỉnh sửa','NVTT','C',@p_BRANCH_ID,'',@p_DEP_ID, @p_MAKER_ID, N'Chỉnh sửa lại phiếu',GETDATE())
|
521
|
-- INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,PROCESS_NAME,DEP_ID, PROCESS_TYPE)
|
522
|
-- VALUES(@REQ_ID,'APPNEW','U','GDDV',@p_BRANCH_ID,'ADDNEW','',@p_DEP_ID, 'Approve')
|
523
|
END
|
524
|
--Phiếu trả về ở bước LEVEL
|
525
|
IF(EXISTS(SELECT * FROM MW_REQ WHERE REQ_ID = @p_REQ_ID AND CHECKER_ID != @p_MAKER_ID AND MAKER_ID != @p_MAKER_ID AND STATUS = 'R_DMTN'))
|
526
|
BEGIN
|
527
|
UPDATE MW_REQ SET STATUS = 'DMTN', AUTH_STATUS = 'A' WHERE REQ_ID = @p_REQ_ID
|
528
|
--Update quantity_allcation(số lượng cấp phát)
|
529
|
DELETE MW_REQ_DT WHERE REQ_ID = @p_REQ_ID
|
530
|
--
|
531
|
FETCH NEXT FROM XmlData INTO @REQ_DT_ID,@p_REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,@ALLOCATED
|
532
|
WHILE @@FETCH_STATUS = 0
|
533
|
BEGIN
|
534
|
IF(@QUANTITY_ALLOCATION > @QUANTITY_REQ)
|
535
|
BEGIN
|
536
|
ROLLBACK TRANSACTION
|
537
|
CLOSE XmlData;
|
538
|
DEALLOCATE XmlData;
|
539
|
SELECT '-1' as Result, '' REQ_ID, N'Danh sách yêu cầu, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': số lượng cấp phát không được lớn hơn số lượng yêu cầu.' ErrorDesc
|
540
|
RETURN '-1'
|
541
|
END
|
542
|
EXEC SYS_CodeMasters_Gen 'MW_REQ_DT', @REQ_DT_ID out
|
543
|
IF @REQ_DT_ID='' OR @REQ_DT_ID IS NULL GOTO ABORT
|
544
|
--
|
545
|
SET @INDEX = @INDEX +1
|
546
|
SET @REQ_ID = @p_REQ_ID
|
547
|
INSERT INTO MW_REQ_DT (REQ_DT_ID,REQ_ID, REQ_CODE, MATERIAL_GROUP, MATERIAL_ID, UNIT_ID, QUANTITY_REQ, QUANTITY_ALLOCATION, REASON,DEP_USE,BRANCH_USE,BRANCH_NAME,ALLOCATED)
|
548
|
VALUES (@REQ_DT_ID,@p_REQ_ID, @REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID, @UNIT_ID, @QUANTITY_REQ, @QUANTITY_ALLOCATION, @REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,0)
|
549
|
--
|
550
|
IF @@Error <> 0 GOTO ABORT;
|
551
|
|
552
|
FETCH NEXT FROM XmlData INTO @REQ_DT_ID,@p_REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@REASON,@DEP_USE,@BRANCH_USE,@BRANCH_NAME,@ALLOCATED
|
553
|
|
554
|
END
|
555
|
CLOSE XmlData;
|
556
|
DEALLOCATE XmlData;
|
557
|
|
558
|
--Insert MW_REQ_PROCESS
|
559
|
DELETE MW_REQ_PROCESS WHERE REQ_ID = @p_REQ_ID
|
560
|
|
561
|
--
|
562
|
FETCH NEXT FROM XmlDataProcess INTO @REQ_PROCESS_ID,@TLNAME,@PROCESS_STATUS,@NOTES,@REQ_CODE_PROCESS,@STAGE
|
563
|
-- DECLARE @STATUS_P VARCHAR(5) = 'C'
|
564
|
WHILE @@FETCH_STATUS = 0
|
565
|
BEGIN
|
566
|
EXEC SYS_CodeMasters_Gen 'MW_REQ_PROCESS', @REQ_PROCESS_ID out
|
567
|
IF @REQ_PROCESS_ID='' OR @REQ_PROCESS_ID IS NULL GOTO ABORT
|
568
|
--
|
569
|
SET @REQ_CODE_PROCESS = @p_REQ_ID
|
570
|
INSERT INTO MW_REQ_PROCESS (REQ_PROCESS_ID, TLNAME, PROCESS_STATUS, NOTES, REQ_ID,STAGE)
|
571
|
VALUES (@REQ_PROCESS_ID, @TLNAME, @PROCESS_STATUS, @NOTES, @REQ_CODE_PROCESS,@STAGE)
|
572
|
|
573
|
--INSERT INTO MW_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, NOTES, STAGE) VALUES (@p_REQ_CODE, 'LEVEL', @STATUS_P, 'TDV', @TLNAME, '','DMTN', N'Chờ duyệt',@STAGE)
|
574
|
--
|
575
|
IF @@Error <> 0 GOTO ABORT;
|
576
|
--SET @STATUS_P = 'U'
|
577
|
FETCH NEXT FROM XmlDataProcess INTO @REQ_PROCESS_ID,@TLNAME,@PROCESS_STATUS,@NOTES,@REQ_CODE_PROCESS,@STAGE
|
578
|
END
|
579
|
CLOSE XmlDataProcess;
|
580
|
DEALLOCATE XmlDataProcess;
|
581
|
|
582
|
--thêm lịch sử add process
|
583
|
--INSERT INTO MW_REQUEST_PROCESS () VALUES ()
|
584
|
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,ROLE_USER,[STATUS],BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, CHECKER_ID,NOTES,RECEPTION_DT)
|
585
|
VALUES(@REQ_ID,'DMTN',N'Chỉnh sửa','DVDM','C',@p_BRANCH_ID,'',@p_DEP_ID, @p_MAKER_ID, N'Chỉnh sửa lại phiếu',GETDATE())
|
586
|
END
|
587
|
|
588
|
INSERT INTO dbo.MW_PROCESS
|
589
|
(
|
590
|
REQ_ID,
|
591
|
PROCESS_ID,
|
592
|
CHECKER_ID,
|
593
|
APPROVE_DT,
|
594
|
PROCESS_DESC,
|
595
|
NOTES
|
596
|
)
|
597
|
VALUES
|
598
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
599
|
'UPDATE', -- PROCESS_ID - varchar(10)
|
600
|
@p_MAKER_ID, -- CHECKER_ID - varchar(100)
|
601
|
CONVERT(DATETIME, @p_CREATE_DT, 103), -- APPROVE_DT - datetime
|
602
|
N'Nhân viên cập nhật phiếu', -- PROCESS_DESC - nvarchar(1000)
|
603
|
N'Nhân viên cập nhật phiếu yêu cầu' -- NOTES - nvarchar(1000)
|
604
|
)
|
605
|
IF @@Error <> 0 GOTO ABORT
|
606
|
COMMIT TRANSACTION
|
607
|
SELECT '0' as Result,'' REQ_ID,'' REQ_ID, N'Phiếu yêu cầu: '+(SELECT REQ_ID FROM MW_REQ WHERE REQ_ID = @p_REQ_ID)+N' đã được cập nhật thành công.' NOTICATION, '' ErrorDesc
|
608
|
RETURN '0'
|
609
|
ABORT:
|
610
|
BEGIN
|
611
|
CLOSE XmlData;
|
612
|
DEALLOCATE XmlData;
|
613
|
CLOSE XmlDataProcess;
|
614
|
DEALLOCATE XmlDataProcess;
|
615
|
ROLLBACK TRANSACTION
|
616
|
SELECT '-1' as Result,'' REQ_ID,''REQ_ID, '' ErrorDesc
|
617
|
RETURN '-1'
|
618
|
End
|
619
|
GO
|
620
|
IF @@ERROR <> 0 SET NOEXEC ON
|
621
|
GO
|
622
|
PRINT N'Altering [dbo].[MW_REJECT_LOG_Ins]'
|
623
|
GO
|
624
|
ALTER PROC [dbo].[MW_REJECT_LOG_Ins]
|
625
|
@p_LOG_ID varchar(15) = NULL,
|
626
|
@p_STAGE varchar(10) = NULL,
|
627
|
@p_TRN_ID varchar(15) = NULL,
|
628
|
@p_TRN_TYPE nvarchar(100) = NULL,
|
629
|
@p_LOG_DT VARCHAR(50) = NULL,
|
630
|
@p_AUTH_STATUS varchar(3) = NULL,
|
631
|
@p_REASON nvarchar(4000) = NULL,
|
632
|
@p_IS_LATEST varchar(1) = NULL,
|
633
|
@p_REJECTED_BY varchar(20) = NULL,
|
634
|
@p_REJECTED_DT VARCHAR(50) = NULL,
|
635
|
@p_RETURN_STEP VARCHAR(25) = NULL
|
636
|
AS
|
637
|
|
638
|
--Validation is here
|
639
|
DECLARE @ERRORSYS NVARCHAR(1500) = ''
|
640
|
IF ( EXISTS ( SELECT * FROM MW_REJECT_LOG WHERE LOG_ID = @p_LOG_ID))
|
641
|
SET @ERRORSYS = N'Mã '+@p_LOG_ID+ N' đã tồn tại trong hệ thống'
|
642
|
IF @ERRORSYS <> ''
|
643
|
BEGIN
|
644
|
SELECT '-1' Result, @ERRORSYS ErrorDesc
|
645
|
RETURN '-1'
|
646
|
END
|
647
|
|
648
|
IF (@p_REJECTED_BY = (SELECT mr.MAKER_ID FROM MW_REQ mr WHERE mr.REQ_ID = @p_TRN_ID))
|
649
|
BEGIN
|
650
|
SELECT '-1' Result, N'Không được phép trả phiếu' ErrorDesc
|
651
|
RETURN '-1'
|
652
|
END
|
653
|
|
654
|
BEGIN TRANSACTION
|
655
|
DECLARE @l_LOG_ID VARCHAR(15)
|
656
|
EXEC SYS_CodeMasters_Gen 'MW_REJECT_LOG', @l_LOG_ID out
|
657
|
IF @l_LOG_ID='' OR @l_LOG_ID IS NULL GOTO ABORT
|
658
|
|
659
|
|
660
|
DECLARE @p_BRANCH_ID varchar(50),@p_DEP_ID VARCHAR(50)
|
661
|
SELECT @p_DEP_ID = DEP_ID, @p_BRANCH_ID = BRANCH_ID FROM MW_REQ WHERE REQ_ID = @p_TRN_ID
|
662
|
|
663
|
IF((SELECT STATUS FROM MW_REQ WHERE REQ_ID = @p_TRN_ID ) LIKE 'SendApp' )
|
664
|
BEGIN
|
665
|
INSERT INTO MW_REJECT_LOG (LOG_ID, STAGE, TRN_ID, TRN_TYPE, LOG_DT, AUTH_STATUS, REASON, IS_LATEST, REJECTED_BY, REJECTED_DT)
|
666
|
VALUES (@l_LOG_ID, @p_STAGE, @p_TRN_ID, @p_TRN_TYPE, CONVERT(DATETIME,@p_LOG_DT,103), @p_AUTH_STATUS, @p_REASON, @p_IS_LATEST, @p_REJECTED_BY, CONVERT(DATETIME,@p_REJECTED_DT,103));
|
667
|
|
668
|
UPDATE MW_REQ SET STATUS = 'R_SENDAPP', AUTH_STATUS = 'R' WHERE REQ_ID = @p_TRN_ID
|
669
|
-- UPDATE MW_REQUEST_PROCESS SET STATUS = 'F', NOTES = N'Phiếu từ chối phiếu ở bước TDV duyệt' WHERE REQ_ID = @p_TRN_ID
|
670
|
|
671
|
UPDATE MW_REQUEST_PROCESS
|
672
|
SET STATUS = 'F'
|
673
|
WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'SENDAPP'
|
674
|
|
675
|
|
676
|
|
677
|
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE,RECEPTION_DT,CHECKER_ID,NOTES)
|
678
|
VALUES(@p_TRN_ID,'R_SENDAPP',N'Từ chối phiếu','F','',@p_BRANCH_ID,'LEVEL',@p_DEP_ID, 'REJECT',GETDATE(),@p_REJECTED_BY, N'Phiếu bị từ chối ở trường đơn vị và trả về cho người tạo chỉnh sửa')
|
679
|
|
680
|
|
681
|
END
|
682
|
IF ((SELECT STATUS FROM MW_REQ WHERE REQ_ID = @p_TRN_ID ) LIKE 'LEVEL')
|
683
|
BEGIN
|
684
|
INSERT INTO MW_REJECT_LOG (LOG_ID, STAGE, TRN_ID, TRN_TYPE, LOG_DT, AUTH_STATUS, REASON, IS_LATEST, REJECTED_BY, REJECTED_DT,RETURN_STEP)
|
685
|
VALUES (@l_LOG_ID, @p_STAGE, @p_TRN_ID, @p_TRN_TYPE, CONVERT(DATETIME,@p_LOG_DT,103), @p_AUTH_STATUS, @p_REASON, @p_IS_LATEST, @p_REJECTED_BY, CONVERT(DATETIME,@p_REJECTED_DT,103),@p_RETURN_STEP);
|
686
|
IF(@p_STAGE = 'R_MAKERID')
|
687
|
BEGIN
|
688
|
|
689
|
|
690
|
UPDATE MW_REQ SET STATUS = 'R_MAKERID', AUTH_STATUS = 'R' WHERE REQ_ID = @p_TRN_ID
|
691
|
|
692
|
UPDATE MW_REQUEST_PROCESS
|
693
|
SET STATUS = 'F'
|
694
|
WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'LEVEL'
|
695
|
|
696
|
-- UPDATE MW_REQUEST_PROCESS SET STATUS = 'F', NOTES = N'Phiếu từ chối phiếu ở bước LEVEL duyệt trả về người tạo' WHERE REQ_ID = @p_TRN_ID
|
697
|
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE,RECEPTION_DT,CHECKER_ID,NOTES)
|
698
|
VALUES(@p_TRN_ID,'R_MAKERID',N'Từ chối phiếu','F','',@p_BRANCH_ID,'LEVEL',@p_DEP_ID, 'REJECT',GETDATE(),@p_REJECTED_BY, N'Phiếu bị từ chối ở cấp xử lý và trả về cho người tạo chỉnh sửa')
|
699
|
DELETE MW_REQ_PROCESS WHERE REQ_ID = @p_TRN_ID
|
700
|
END
|
701
|
IF(@p_STAGE = 'R_DMTN')
|
702
|
BEGIN
|
703
|
UPDATE MW_REQUEST_PROCESS
|
704
|
SET STATUS = 'F'
|
705
|
WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'LEVEL'
|
706
|
|
707
|
|
708
|
UPDATE MW_REQ SET STATUS = 'R_DMTN', AUTH_STATUS = 'R' WHERE REQ_ID = @p_TRN_ID
|
709
|
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE,RECEPTION_DT,CHECKER_ID,NOTES)
|
710
|
VALUES(@p_TRN_ID,'R_DMTN',N'Từ chối phiếu','F','',@p_BRANCH_ID,'LEVEL',@p_DEP_ID, 'REJECT',GETDATE(),@p_REJECTED_BY, N'Phiếu bị từ chối ở cấp xử lý và trả về cho đầu mối chỉnh sửa')
|
711
|
DELETE MW_REQ_PROCESS WHERE REQ_ID = @p_TRN_ID
|
712
|
END
|
713
|
|
714
|
END
|
715
|
IF ((SELECT STATUS FROM MW_REQ WHERE REQ_ID = @p_TRN_ID ) LIKE 'DMTN')
|
716
|
BEGIN
|
717
|
INSERT INTO MW_REJECT_LOG (LOG_ID, STAGE, TRN_ID, TRN_TYPE, LOG_DT, AUTH_STATUS, REASON, IS_LATEST, REJECTED_BY, REJECTED_DT,RETURN_STEP)
|
718
|
VALUES (@l_LOG_ID, @p_STAGE, @p_TRN_ID, @p_TRN_TYPE, CONVERT(DATETIME,@p_LOG_DT,103), @p_AUTH_STATUS, @p_REASON, @p_IS_LATEST, @p_REJECTED_BY, CONVERT(DATETIME,@p_REJECTED_DT,103),@p_RETURN_STEP);
|
719
|
IF(@p_STAGE = 'DMTN_MAKER')
|
720
|
BEGIN
|
721
|
UPDATE MW_REQ SET STATUS = 'DMTN_MAKER', AUTH_STATUS = 'R' WHERE REQ_ID = @p_TRN_ID
|
722
|
-- UPDATE MW_REQUEST_PROCESS SET STATUS = 'F', NOTES = N'Phiếu từ chối phiếu ở bước đầu mối duyệt trả về người tạo' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = ''
|
723
|
|
724
|
UPDATE MW_REQUEST_PROCESS
|
725
|
SET STATUS = 'F'
|
726
|
WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMTN'
|
727
|
|
728
|
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE,RECEPTION_DT,CHECKER_ID,NOTES)
|
729
|
VALUES(@p_TRN_ID,'DMTN_MAKER',N'Từ chối phiếu','F','DVDM',@p_BRANCH_ID,'SENDAPP',@p_DEP_ID, 'REJECT',GETDATE(),@p_REJECTED_BY, N'Phiếu bị từ chối ở đầu mối và trả về cho người tạo chỉnh sửa')
|
730
|
END
|
731
|
END
|
732
|
|
733
|
|
734
|
INSERT INTO dbo.MW_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
|
735
|
VALUES(@p_TRN_ID,'REJECT',@p_REJECTED_BY,GETDATE(),N'Trả về ',@p_REASON)
|
736
|
|
737
|
IF @@Error <> 0 GOTO ABORT
|
738
|
COMMIT TRANSACTION
|
739
|
SELECT '0' as Result, @l_LOG_ID ID, N'Từ chối phiếu thành công' ErrorDesc
|
740
|
RETURN '0'
|
741
|
ABORT:
|
742
|
BEGIN
|
743
|
ROLLBACK TRANSACTION
|
744
|
SELECT '-1' as Result, N'Phiếu' ID, N'từ chối thất bại' ErrorDesc
|
745
|
RETURN '-1'
|
746
|
End
|
747
|
GO
|
748
|
IF @@ERROR <> 0 SET NOEXEC ON
|
749
|
GO
|
750
|
PRINT N'Altering [dbo].[MW_REQ_App]'
|
751
|
GO
|
752
|
ALTER PROCEDURE [dbo].[MW_REQ_App]
|
753
|
@p_REQ_ID VARCHAR(20),
|
754
|
@p_REQ_CODE VARCHAR(15),
|
755
|
@p_AUTH_STATUS VARCHAR(1),
|
756
|
@p_STATUS VARCHAR(15),
|
757
|
@p_CHECKER_ID VARCHAR(200),
|
758
|
@p_APPROVE_DT VARCHAR(20),
|
759
|
@p_USER_LOGIN VARCHAR(25)
|
760
|
AS
|
761
|
|
762
|
--Validation is
|
763
|
DECLARE @ROLE_USER VARCHAR(25), @DEP_RECEIVE VARCHAR(25)
|
764
|
DECLARE @aStatus VARCHAR(1), @p_BRANCH_ID VARCHAR(50), @p_DEP_ID VARCHAR(50), @p_BRANCH_GIVES_ID VARCHAR(50)
|
765
|
SELECT @aStatus = [AUTH_STATUS], @p_STATUS = STATUS, @p_BRANCH_ID = BRANCH_ID, @p_DEP_ID = DEP_ID, @p_BRANCH_GIVES_ID = BRANCH_GIVES_ID FROM MW_REQ WHERE REQ_ID = @p_REQ_ID
|
766
|
|
767
|
DECLARE @CHECK_DMTN NVARCHAR(50)
|
768
|
SELECT @CHECK_DMTN = B.ROLE_RECEIVE FROM MW_REQ A LEFT JOIN CM_REQ_TYPE B ON B.REQ_TYPE_ID = A.REQ_TYPE WHERE A.REQ_ID = @p_REQ_ID AND ISNULL(@p_DEP_ID,'') = ISNULL(B.DEP_RECEIVE,'')
|
769
|
IF @aStatus = 'A'
|
770
|
BEGIN
|
771
|
SELECT '0' as Result, '' ErrorDesc
|
772
|
RETURN 0
|
773
|
END
|
774
|
|
775
|
BEGIN TRANSACTION
|
776
|
|
777
|
IF(@p_STATUS LIKE 'SendApp')
|
778
|
BEGIN
|
779
|
|
780
|
--IF(@CHECK_DMTN = NULL OR @CHECK_DMTN IS NULL OR @CHECK_DMTN = '' )
|
781
|
IF(ISNULL(@CHECK_DMTN,'') <> '')-- AND ISNULL(@p_BRANCH_GIVES_ID,'') = 'DEP000000000048')
|
782
|
BEGIN
|
783
|
SET @p_AUTH_STATUS = 'A'
|
784
|
SET @p_STATUS = 'DONE'
|
785
|
UPDATE MW_REQ SET AUTH_STATUS = @p_AUTH_STATUS, STATUS = @p_STATUS, APPROVE_DT = GETDATE(), CHECKER_ID = @p_USER_LOGIN WHERE REQ_ID = @p_REQ_ID IF @@Error <> 0 GOTO ABORT
|
786
|
INSERT INTO MW_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, PARENT_PROCESS_ID, NOTES) VALUES (@p_REQ_CODE, 'DONE', 'C', 'APPNEW', N'Hoàn thành phiếu')
|
787
|
END
|
788
|
ELSE
|
789
|
BEGIN
|
790
|
SET @p_AUTH_STATUS = 'U'
|
791
|
SET @p_STATUS = 'DMTN'
|
792
|
UPDATE MW_REQ SET AUTH_STATUS = @p_AUTH_STATUS, CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103), STATUS = @p_STATUS
|
793
|
WHERE REQ_ID = @p_REQ_ID IF @@Error <> 0 GOTO ABORT
|
794
|
--UPDATE MW_REQUEST_PROCESS SET STATUS = 'P', NOTES = N'Đã duyệt',CHECKER_ID = @p_USER_LOGIN, RECEPTION_DT = GETDATE() WHERE REQ_ID = @p_REQ_CODE AND PROCESS_ID = 'APPNEW'
|
795
|
|
796
|
UPDATE MW_REQUEST_PROCESS
|
797
|
SET STATUS = 'P'
|
798
|
WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'SENDAPP'
|
799
|
|
800
|
SELECT @ROLE_USER=B.ROLE_RECEIVE, @DEP_RECEIVE = B.DEP_RECEIVE
|
801
|
FROM MW_REQ A
|
802
|
LEFT JOIN CM_REQ_TYPE B ON B.REQ_TYPE_ID = A.REQ_TYPE
|
803
|
WHERE A.REQ_ID = @p_REQ_ID
|
804
|
|
805
|
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE,RECEPTION_DT,NOTES, CHECKER_ID)
|
806
|
VALUES(@p_REQ_ID,'APPNEW',N'Trưởng đơn vị phê duyệt','P','GDDV',@p_BRANCH_ID,'ADDNEW',@DEP_RECEIVE, 'Approve',GETDATE(), N'Chấp thuận',@p_CHECKER_ID)
|
807
|
|
808
|
|
809
|
INSERT INTO MW_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE, CHECKER_ID, PROCESS_NAME, NOTES, RECEPTION_DT)
|
810
|
VALUES (@p_REQ_ID, 'DMTN', 'C',@ROLE_USER,'DV0001','APPNEW',@DEP_RECEIVE,'SendApp',( SELECT STUFF((select ', ' + RE.TLNANME
|
811
|
FROM(
|
812
|
SELECT * FROM dbo.FN_GET_USER_BY_ROLE_VB('DVDM','DV0001',@DEP_RECEIVE) ) RE
|
813
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')), N'Đơn vị đầu mối', N'Đơn vị đầu mối tiếp nhận',DATEADD(SECOND, 1, GETDATE()))
|
814
|
END
|
815
|
|
816
|
END
|
817
|
IF(@p_STATUS LIKE 'LEVEL')
|
818
|
BEGIN
|
819
|
IF(EXISTS(SELECT * FROM MW_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND DVKD_USER_APP = @p_CHECKER_ID AND PROCESS_ID = 'LEVEL' AND STATUS = 'U'))
|
820
|
BEGIN
|
821
|
ROLLBACK TRANSACTION
|
822
|
SELECT '-1' AS Result , '' REQ_CODE, N'Phiếu yêu cầu chưa tới cấp duyệt tiếp theo.' ErrorDesc
|
823
|
RETURN '-1'
|
824
|
END
|
825
|
|
826
|
IF(EXISTS (SELECT * FROM MW_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND DVKD_USER_APP = @p_CHECKER_ID AND PROCESS_ID = 'LEVEL' AND STATUS = 'C'))
|
827
|
BEGIN
|
828
|
DECLARE @STAGE_CURRENT INT = (SELECT mrp.IS_LEAF FROM MW_REQUEST_PROCESS mrp WHERE REQ_ID = @p_REQ_ID AND DVKD_USER_APP = @p_CHECKER_ID AND PROCESS_ID = 'LEVEL' AND STATUS = 'C')
|
829
|
UPDATE MW_REQUEST_PROCESS SET STATUS = 'P', RECEPTION_DT = GETDATE(), APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103), NOTES = N'Chấp thuận' WHERE REQ_ID = @p_REQ_ID AND DVKD_USER_APP = @p_CHECKER_ID AND PROCESS_ID = 'LEVEL'
|
830
|
|
831
|
UPDATE MW_REQ_PROCESS SET PROCESS_STATUS = 'Approve', AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103), NOTES = N'Chấp thuận' WHERE REQ_ID = @p_REQ_ID AND TLNAME = @p_CHECKER_ID
|
832
|
|
833
|
IF(EXISTS(SELECT 1 FROM MW_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'LEVEL' AND IS_LEAF = (@STAGE_CURRENT+1)))
|
834
|
BEGIN
|
835
|
UPDATE MW_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_REQ_ID AND IS_LEAF = (@STAGE_CURRENT+1) AND PROCESS_ID = 'LEVEL'
|
836
|
END
|
837
|
ELSE
|
838
|
BEGIN
|
839
|
SET @p_AUTH_STATUS = 'A'
|
840
|
SET @p_STATUS = 'DONE'
|
841
|
--UPDATE MW_REQ SET AUTH_STATUS = @p_AUTH_STATUS, CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103), STATUS = @p_STATUS WHERE REQ_CODE = @p_REQ_CODE IF @@Error <> 0 GOTO ABORT
|
842
|
UPDATE MW_REQ SET AUTH_STATUS = @p_AUTH_STATUS, STATUS = @p_STATUS WHERE REQ_ID = @p_REQ_ID IF @@Error <> 0 GOTO ABORT
|
843
|
INSERT INTO MW_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, PARENT_PROCESS_ID, NOTES) VALUES (@p_REQ_ID, 'DONE', 'C', 'APPLEVEL', N'Hoàn thành phiếu')
|
844
|
END
|
845
|
|
846
|
--UPDATE MW_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_REQ_CODE AND STAGE = (SELECT MIN(STAGE) FROM MW_REQUEST_PROCESS WHERE STATUS = 'U' AND PROCESS_ID = 'LEVEL' AND REQ_ID = @p_REQ_CODE)
|
847
|
|
848
|
|
849
|
END
|
850
|
|
851
|
IF(EXISTS (SELECT * FROM MW_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND CHECKER_ID = @p_CHECKER_ID AND STATUS = 'U'))
|
852
|
BEGIN
|
853
|
ROLLBACK TRANSACTION
|
854
|
SELECT '-1' AS Result , '' REQ_CODE, N'Phiếu yêu cầu chưa tới cấp duyệt tiếp theo.' ErrorDesc
|
855
|
RETURN '-1'
|
856
|
END
|
857
|
|
858
|
-- IF((SELECT COUNT(*) FROM MW_REQ_PROCESS WHERE REQ_PROCESS_ID = @p_REQ_CODE) = (SELECT COUNT(*) FROM MW_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_CODE AND STATUS = 'P'))
|
859
|
-- BEGIN
|
860
|
-- SET @p_AUTH_STATUS = 'A'
|
861
|
-- SET @p_STATUS = 'DONE'
|
862
|
-- UPDATE MW_REQ SET AUTH_STATUS = @p_AUTH_STATUS, CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103), STATUS = @p_STATUS WHERE REQ_CODE = @p_REQ_CODE IF @@Error <> 0 GOTO ABORT
|
863
|
-- INSERT INTO MW_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, PARENT_PROCESS_ID, NOTES) VALUES (@p_REQ_CODE, 'DONE', 'P', 'APPLEVEL', N'Hoàn thành phiếu')
|
864
|
--
|
865
|
-- END
|
866
|
|
867
|
|
868
|
END
|
869
|
INSERT INTO dbo.MW_PROCESS
|
870
|
(
|
871
|
REQ_ID,
|
872
|
PROCESS_ID,
|
873
|
CHECKER_ID,
|
874
|
APPROVE_DT,
|
875
|
PROCESS_DESC,
|
876
|
NOTES
|
877
|
)
|
878
|
VALUES
|
879
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
880
|
'APPROVE', -- PROCESS_ID - varchar(10)
|
881
|
@p_CHECKER_ID, -- CHECKER_ID - varchar(100)
|
882
|
CONVERT(DATETIME, @p_APPROVE_DT, 103), -- APPROVE_DT - datetime
|
883
|
N'Cấp xử lý phê duyệt', -- PROCESS_DESC - nvarchar(1000)
|
884
|
N'Cấp xử lý phê duyệt thành công' -- NOTES - nvarchar(1000)
|
885
|
)
|
886
|
COMMIT TRANSACTION
|
887
|
SELECT '0' as Result, '' ErrorDesc
|
888
|
RETURN '0'
|
889
|
ABORT:
|
890
|
BEGIN
|
891
|
ROLLBACK TRANSACTION
|
892
|
SELECT '-1' as Result, '' ErrorDesc
|
893
|
RETURN '-1'
|
894
|
End
|
895
|
GO
|
896
|
IF @@ERROR <> 0 SET NOEXEC ON
|
897
|
GO
|
898
|
PRINT N'Altering [dbo].[MW_REQ_Ins]'
|
899
|
GO
|
900
|
|
901
|
ALTER PROCEDURE [dbo].[MW_REQ_Ins]
|
902
|
@p_REQ_ID varchar(20),
|
903
|
@p_REQ_CODE varchar(15),
|
904
|
@p_REQ_TYPE nvarchar(200)= NULL,
|
905
|
@p_DEP_ID VARCHAR(50) = NULL,
|
906
|
@p_BRANCH_ID nvarchar(500)= NULL,
|
907
|
@p_BRANCH_NAME NVARCHAR(1000)= NULL,
|
908
|
@p_BRANCH_RECEIVE_ID VARCHAR(50) = NULL,
|
909
|
@p_BRANCH_RECEIVE_NAME NVARCHAR(1000)= NULL,
|
910
|
@p_DEP_RECEIVE_ID VARCHAR(50) = NULL,
|
911
|
@p_DEP_RECEIVE_NAME NVARCHAR(1000)= NULL,
|
912
|
@p_PROMOTION_ID VARCHAR(50)=NULL,
|
913
|
@p_REGARDS_TO nvarchar(500)= NULL,
|
914
|
@p_REQUEST_DOC_CONTENT NVARCHAR(500)= NULL,
|
915
|
@p_STATUS VARCHAR(15)= NULL,
|
916
|
@p_RECORD_STATUS varchar(15)= NULL,
|
917
|
@p_MAKER_ID varchar(100)= NULL,
|
918
|
@p_CREATE_DT varchar(25)= NULL,
|
919
|
@p_AUTH_STATUS varchar(50)= NULL,
|
920
|
@p_CHECKER_ID varchar(100)= NULL,
|
921
|
@p_APPROVE_DT varchar(25)= NULL,
|
922
|
@p_BRANCH_GIVES_ID VARCHAR(50) = NULL,
|
923
|
@p_BRANCH_GIVES_NAME NVARCHAR(1000)= NULL,
|
924
|
@p_DEP_GIVES_ID VARCHAR(50) = NULL,
|
925
|
@p_DEP_GIVES_NAME NVARCHAR(1000)= NULL,
|
926
|
@p_XmlData XML = NULL
|
927
|
|
928
|
AS
|
929
|
|
930
|
|
931
|
--Validation is here
|
932
|
DECLARE @ERRORSYS NVARCHAR(1500) = ''
|
933
|
|
934
|
--KHAI BAO BIEN CURSOR DETAIL
|
935
|
DECLARE @REQ_DT_ID varchar(15)= NULL,
|
936
|
@REQ_CODE varchar(15) =NULL,
|
937
|
@MATERIAL_GROUP VARCHAR (200)= NULL,
|
938
|
@MATERIAL_ID nvarchar(200) =NULL,
|
939
|
@UNIT_ID VARCHAR(15) =NULL,
|
940
|
@QUANTITY_REQ DECIMAL(18,2)= NULL,
|
941
|
@QUANTITY_ALLOCATION DECIMAL(18,2) = NULL,
|
942
|
@DEP_ID VARCHAR(50) = NULL,
|
943
|
@BRANCH_ID nvarchar(500)= NULL,
|
944
|
@BRANCH_NAME NVARCHAR(1000)= NULL,
|
945
|
@PROMOTION_ID VARCHAR(15) =NULL,
|
946
|
@REASON NVARCHAR(1000) =NULL,
|
947
|
@RECORD_STATUS varchar(15) =NULL,
|
948
|
@MAKER_ID varchar(100) =NULL,
|
949
|
@CREATE_DT varchar(25) =NULL,
|
950
|
@AUTH_STATUS varchar(50) =NULL,
|
951
|
@CHECKER_ID varchar(100) =NULL,
|
952
|
@APPROVE_DT varchar(25) =NULL,
|
953
|
@DEP_USE VARCHAR(15) =NULL,
|
954
|
@BRANCH_USE VARCHAR(15) = NULL,
|
955
|
@ALLOCATED DECIMAL(18,2)= NULL
|
956
|
DECLARE @INDEX INT =1
|
957
|
DECLARE @hdoc INT;
|
958
|
--DECLARE @CM_PROMOTION_ID TABLE
|
959
|
-- (
|
960
|
-- PROMOTION_ID VARCHAR(20)
|
961
|
-- )
|
962
|
---
|
963
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlData;
|
964
|
DECLARE XmlData CURSOR FOR
|
965
|
SELECT *
|
966
|
FROM
|
967
|
OPENXML (@hdoc, '/Root/MWREQDT', 2)
|
968
|
WITH ( REQ_DT_ID varchar(15),
|
969
|
REQ_ID VARCHAR(20),
|
970
|
REQ_CODE varchar(15),
|
971
|
MATERIAL_GROUP VARCHAR (200),
|
972
|
MATERIAL_ID nvarchar(200),
|
973
|
UNIT_ID VARCHAR(15),
|
974
|
QUANTITY_REQ DECIMAL(18,2),
|
975
|
QUANTITY_ALLOCATION DECIMAL(18,2),
|
976
|
PROMOTION_ID VARCHAR(15),
|
977
|
REASON NVARCHAR(1000),
|
978
|
DEP_USE VARCHAR(15),
|
979
|
BRANCH_USE VARCHAR(15),
|
980
|
BRANCH_NAME NVARCHAR(1000),
|
981
|
ALLOCATED DECIMAL(18,2)
|
982
|
|
983
|
);
|
984
|
OPEN XmlData;
|
985
|
|
986
|
BEGIN TRANSACTION
|
987
|
IF(CONVERT(DATETIME,(SELECT END_DATE FROM CM_PROMOTION WHERE PROMOTION_ID = @p_PROMOTION_ID),103) < CONVERT(DATETIME,GETDATE(),103))
|
988
|
BEGIN
|
989
|
ROLLBACK TRANSACTION
|
990
|
SELECT '-1' as Result, N''ID, N'Chương trình này đã quá hạn vui lòng chọn chương trình khác' ErrorDesc
|
991
|
RETURN '-1'
|
992
|
END
|
993
|
|
994
|
DECLARE @l_REQ_ID VARCHAR(15)
|
995
|
EXEC SYS_CodeMasters_Gen 'MW_REQ', @l_REQ_ID out
|
996
|
IF @l_REQ_ID='' OR @l_REQ_ID IS NULL GOTO ABORT
|
997
|
--
|
998
|
IF ( EXISTS ( SELECT * FROM MW_REQ WHERE REQ_CODE = @l_REQ_ID))
|
999
|
SET @ERRORSYS = N'Mã '+@l_REQ_ID+ N' đã tồn tại trong hệ thống'
|
1000
|
IF @ERRORSYS <> ''
|
1001
|
BEGIN
|
1002
|
CLOSE XmlData;
|
1003
|
DEALLOCATE XmlData;
|
1004
|
ROLLBACK TRANSACTION
|
1005
|
SELECT '-1' Result, @ERRORSYS ErrorDesc
|
1006
|
RETURN '-1'
|
1007
|
END
|
1008
|
IF (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') SET @p_BRANCH_ID = (SELECT TU.TLSUBBRID FROM TL_USER TU WHERE TU.TLNANME = @p_MAKER_ID)
|
1009
|
--
|
1010
|
SET @p_STATUS = 'ADDNEW'
|
1011
|
SET @p_AUTH_STATUS = 'E'
|
1012
|
SET @ALLOCATED = '0'
|
1013
|
--
|
1014
|
INSERT INTO MW_REQ (
|
1015
|
REQ_ID,
|
1016
|
REQ_CODE,
|
1017
|
REQ_TYPE,
|
1018
|
DEP_ID,
|
1019
|
BRANCH_ID,
|
1020
|
BRANCH_NAME,
|
1021
|
PROMOTION_ID,
|
1022
|
REGARDS_TO,
|
1023
|
IS_DONE,
|
1024
|
REQUEST_DOC_CONTENT,
|
1025
|
STATUS,
|
1026
|
RECORD_STATUS,
|
1027
|
MAKER_ID,
|
1028
|
CREATE_DT,
|
1029
|
AUTH_STATUS,
|
1030
|
CHECKER_ID,
|
1031
|
APPROVE_DT,
|
1032
|
BRANCH_RECEIVE_ID,
|
1033
|
BRANCH_RECEIVE_NAME,
|
1034
|
DEP_RECEIVE_ID,
|
1035
|
DEP_RECEIVE_NAME,
|
1036
|
BRANCH_GIVES_ID,
|
1037
|
BRANCH_GIVES_NAME,
|
1038
|
DEP_GIVES_ID,
|
1039
|
DEP_GIVES_NAME)
|
1040
|
VALUES
|
1041
|
(
|
1042
|
@l_REQ_ID,
|
1043
|
@p_REQ_CODE,
|
1044
|
@p_REQ_TYPE,
|
1045
|
@p_DEP_ID,
|
1046
|
@p_BRANCH_ID,
|
1047
|
@p_BRANCH_NAME,
|
1048
|
@p_PROMOTION_ID,
|
1049
|
@p_REGARDS_TO,
|
1050
|
'0',
|
1051
|
@p_REQUEST_DOC_CONTENT,
|
1052
|
@p_STATUS,
|
1053
|
'1',
|
1054
|
@p_MAKER_ID,
|
1055
|
CONVERT(DATETIME,@p_CREATE_DT,103),
|
1056
|
@p_AUTH_STATUS,
|
1057
|
@p_CHECKER_ID,
|
1058
|
CONVERT(DATETIME,@p_APPROVE_DT,103),
|
1059
|
@p_BRANCH_RECEIVE_ID,
|
1060
|
@p_BRANCH_RECEIVE_NAME,
|
1061
|
@p_DEP_RECEIVE_ID,
|
1062
|
@p_DEP_RECEIVE_NAME,
|
1063
|
@p_BRANCH_GIVES_ID,
|
1064
|
@p_BRANCH_GIVES_NAME,
|
1065
|
@p_DEP_GIVES_ID,
|
1066
|
@p_DEP_GIVES_NAME
|
1067
|
)
|
1068
|
|
1069
|
|
1070
|
-- INSERT INTO @CM_PROMOTION_ID(MATERIAL_ID)
|
1071
|
-- SELECT cpd.MATERIAL_ID FROM CM_PROMOTION_DT cpd WHERE cpd.PROMOTION_ID = @p_PROMOTION_ID
|
1072
|
--
|
1073
|
FETCH NEXT FROM XmlData INTO @REQ_DT_ID,@p_REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@PROMOTION_ID,@REASON,@DEP_USE, @BRANCH_USE,@BRANCH_NAME,@ALLOCATED
|
1074
|
WHILE @@FETCH_STATUS = 0
|
1075
|
BEGIN
|
1076
|
EXEC SYS_CodeMasters_Gen 'MW_REQ_DT', @REQ_DT_ID out
|
1077
|
IF @REQ_DT_ID='' OR @REQ_DT_ID IS NULL GOTO ABORT
|
1078
|
IF(@QUANTITY_REQ=0)
|
1079
|
BEGIN
|
1080
|
ROLLBACK TRANSACTION
|
1081
|
CLOSE XmlData;
|
1082
|
DEALLOCATE XmlData;
|
1083
|
SELECT '-1' as Result, '' REQ_ID, N'Danh sách yêu cầu, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': số lượng yêu cầu không thể đáp ứng.' ErrorDesc
|
1084
|
RETURN '-1'
|
1085
|
END
|
1086
|
IF(ISNULL(@p_PROMOTION_ID,'') <> '' AND @MATERIAL_ID NOT IN (SELECT cpd.MATERIAL_ID FROM CM_PROMOTION_DT cpd WHERE cpd.PROMOTION_ID = @p_PROMOTION_ID))
|
1087
|
BEGIN
|
1088
|
ROLLBACK TRANSACTION
|
1089
|
CLOSE XmlData;
|
1090
|
DEALLOCATE XmlData;
|
1091
|
SELECT '-1' as Result, '' REQ_ID, N'Danh sách yêu cầu, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': loại vật liệu bạn chọn không có trong danh sách chương trình.' ErrorDesc
|
1092
|
RETURN '-1'
|
1093
|
END
|
1094
|
|
1095
|
--
|
1096
|
SET @INDEX = @INDEX +1
|
1097
|
SET @p_REQ_ID = @l_REQ_ID
|
1098
|
INSERT INTO MW_REQ_DT (REQ_DT_ID, REQ_ID, REQ_CODE, MATERIAL_GROUP, MATERIAL_ID, UNIT_ID, QUANTITY_REQ, QUANTITY_ALLOCATION, PROMOTION_ID, REASON,DEP_USE, BRANCH_USE,BRANCH_NAME,ALLOCATED)
|
1099
|
VALUES (@REQ_DT_ID,@p_REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@PROMOTION_ID,@REASON,@DEP_USE, @BRANCH_USE,@BRANCH_NAME, 0)
|
1100
|
--
|
1101
|
IF @@Error <> 0 GOTO ABORT;
|
1102
|
|
1103
|
FETCH NEXT FROM XmlData INTO @REQ_DT_ID,@p_REQ_ID,@REQ_CODE,@MATERIAL_GROUP,@MATERIAL_ID,@UNIT_ID,@QUANTITY_REQ,@QUANTITY_ALLOCATION,@PROMOTION_ID,@REASON,@DEP_USE, @BRANCH_USE,@BRANCH_NAME,@ALLOCATED
|
1104
|
END
|
1105
|
CLOSE XmlData;
|
1106
|
DEALLOCATE XmlData;
|
1107
|
|
1108
|
BEGIN
|
1109
|
-- INSERT INTO dbo.MW_PROCESS
|
1110
|
-- (
|
1111
|
-- REQ_ID,
|
1112
|
-- PROCESS_ID,
|
1113
|
-- CHECKER_ID,
|
1114
|
-- APPROVE_DT,
|
1115
|
-- PROCESS_DESC,
|
1116
|
-- NOTES
|
1117
|
-- )
|
1118
|
-- VALUES
|
1119
|
-- ( @l_REQ_CODE, -- REQ_ID - varchar(15)
|
1120
|
-- 'ADDNEW', -- PROCESS_ID - varchar(10)
|
1121
|
-- @p_MAKER_ID, -- CHECKER_ID - varchar(100)
|
1122
|
-- CONVERT(DATETIME, @p_CREATE_DT, 103), -- APPROVE_DT - datetime
|
1123
|
-- N'Nhân viên tạo phiếu', -- PROCESS_DESC - nvarchar(1000)
|
1124
|
-- N'Nhân viên tạo phiếu yêu cầu' -- NOTES - nvarchar(1000)
|
1125
|
-- )
|
1126
|
-- MỚI TẠO
|
1127
|
INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,ROLE_USER,[STATUS],BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, CHECKER_ID,RECEPTION_DT,NOTES)
|
1128
|
VALUES(@l_REQ_ID,'ADDNEW',N'Nhân viên tạo phiếu','NVTT','C',@p_BRANCH_ID,'',@p_DEP_ID, @p_MAKER_ID,GETDATE(),N'Nhân viên tạo phiếu yêu cầu')
|
1129
|
-- INSERT INTO MW_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],PROCESS_NAME,[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE,RECEPTION_DT)
|
1130
|
-- VALUES(@l_REQ_CODE,'APPNEW',N'CHỜ TDV DUYỆT','U','GDDV',@p_BRANCH_ID,'ADDNEW',@p_DEP_ID, 'Approve',GETDATE())
|
1131
|
END
|
1132
|
|
1133
|
IF @@Error <> 0 GOTO ABORT
|
1134
|
COMMIT TRANSACTION
|
1135
|
SELECT '0' as Result, @l_REQ_ID ID, '' ErrorDesc
|
1136
|
RETURN '0'
|
1137
|
ABORT:
|
1138
|
BEGIN
|
1139
|
CLOSE XmlData;
|
1140
|
DEALLOCATE XmlData;
|
1141
|
ROLLBACK TRANSACTION
|
1142
|
SELECT '-1' as Result, '' ID, '' ErrorDesc
|
1143
|
RETURN '-1'
|
1144
|
End
|
1145
|
|
1146
|
GO
|
1147
|
IF @@ERROR <> 0 SET NOEXEC ON
|
1148
|
GO
|
1149
|
PRINT N'Altering [dbo].[MW_REQ_DT_ById]'
|
1150
|
GO
|
1151
|
ALTER PROCEDURE [dbo].[MW_REQ_DT_ById]
|
1152
|
@REQ_ID varchar(15)
|
1153
|
AS
|
1154
|
SELECT A.*, B.PROMOTION_NAME, A.REQ_DT_ID AS REQ_DT_CODE, MM.MATERIAL_CODE, MG.GROUP_CODE AS MATERIAL_GROUP_CODE, MM.MATERIAL_NAME AS MATERIAL_NAME, MG.GROUP_NAME AS GROUP_NAME
|
1155
|
FROM MW_REQ_DT A
|
1156
|
LEFT JOIN MW_MATERIAL MM ON A.MATERIAL_ID = MM.MATERIAL_ID
|
1157
|
LEFT JOIN MW_GROUP MG ON A.MATERIAL_GROUP = MG.GROUP_ID
|
1158
|
LEFT JOIN CM_PROMOTION B ON B.PROMOTION_ID = A.PROMOTION_ID
|
1159
|
WHERE A.REQ_ID = @REQ_ID
|
1160
|
GO
|
1161
|
IF @@ERROR <> 0 SET NOEXEC ON
|
1162
|
GO
|
1163
|
PRINT N'Altering [dbo].[MW_REQ_ById]'
|
1164
|
GO
|
1165
|
ALTER PROCEDURE [dbo].[MW_REQ_ById]
|
1166
|
@REQ_ID varchar(15)
|
1167
|
AS
|
1168
|
--DECLARE @DONE_LEVEL VARCHAR(1) = CASE WHEN (NOT EXISTS(SELECT * FROM MW_REQ_PROCESS mrp WHERE mrp.REQ_ID = @REQ_ID AND mrp.AUTH_STATUS IS NULL)) THEN '1' ELSE '0' END
|
1169
|
DECLARE @DVDM_USER VARCHAR(50) = (
|
1170
|
SELECT TOP 1 A.CHECKER_ID
|
1171
|
FROM MW_REQUEST_PROCESS A
|
1172
|
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DMTN'
|
1173
|
ORDER BY A.ID DESC)
|
1174
|
|
1175
|
SELECT A.*, B.DEP_NAME AS BRANCH_NAME,B.DEP_ID AS BRANCH_ID, C.REQ_TYPE_NAME, cp.PROMOTION_NAME, mrp.DVKD_USER_APP AS NEXT_APP_USER, @DVDM_USER AS DVDM_USER
|
1176
|
FROM MW_REQ A
|
1177
|
LEFT JOIN CM_DEPARTMENT B ON B.DEP_ID = A.BRANCH_ID
|
1178
|
LEFT JOIN CM_REQ_TYPE C ON C.REQ_TYPE_ID = A.REQ_TYPE
|
1179
|
LEFT JOIN MW_REQ_DT D ON D.REQ_ID = A.REQ_ID
|
1180
|
LEFT JOIN CM_PROMOTION cp ON cp.PROMOTION_ID = A.PROMOTION_ID
|
1181
|
LEFT JOIN MW_REQUEST_PROCESS mrp ON mrp.REQ_ID = @REQ_ID AND mrp.STATUS = 'C' AND mrp.PROCESS_ID = 'LEVEL'
|
1182
|
WHERE A.REQ_ID = @REQ_ID
|
1183
|
|
1184
|
GO
|
1185
|
ALTER PROCEDURE dbo.MW_REQ_ApproveNow
|
1186
|
@p_REQ_ID VARCHAR(15),
|
1187
|
@p_CHECKER_ID VARCHAR(200),
|
1188
|
@p_APPROVE_DT VARCHAR(20)
|
1189
|
AS
|
1190
|
DECLARE @Auth VARCHAR(1),@CheckerId VARCHAR(15),@status VARCHAR(20), @BranchId VARCHAR(15), @DepId VARCHAR(15)
|
1191
|
SELECT @Auth = mr.AUTH_STATUS,
|
1192
|
@CheckerId = mr.CHECKER_ID,
|
1193
|
@status = mr.STATUS
|
1194
|
FROM MW_REQ mr
|
1195
|
WHERE mr.REQ_ID = @p_REQ_ID
|
1196
|
|
1197
|
|
1198
|
IF(@Auth = 'A')
|
1199
|
BEGIN
|
1200
|
SELECT '0' as Result, '' ErrorDesc
|
1201
|
RETURN 0
|
1202
|
END
|
1203
|
IF(EXISTS(SELECT * FROM MW_REQ mr
|
1204
|
LEFT JOIN CM_REQ_TYPE crt ON crt.REQ_TYPE_ID = mr.REQ_TYPE
|
1205
|
LEFT JOIN CM_WARE cw ON crt.WARE_TYPE = cw.WARE_ID
|
1206
|
WHERE cw.WARE_CODE IN ('02TE','03CT','04VT') AND mr.REQ_ID = @p_REQ_ID))
|
1207
|
BEGIN
|
1208
|
SELECT '-1' as Result, N'Phiếu yêu cầu đối với kho vật liệu thẻ, phôi thẻ trắng, phôi thẻ cá thể hóa, bắt buộc gửi cấp xử lý tiếp theo, đầu mối không được phép duyệt' ErrorDesc
|
1209
|
RETURN '-1'
|
1210
|
END
|
1211
|
|
1212
|
|
1213
|
BEGIN TRANSACTION
|
1214
|
IF(@status = 'DMTN' AND @CheckerId <> @p_CHECKER_ID)
|
1215
|
BEGIN
|
1216
|
IF(EXISTS(SELECT * FROM MW_REQ_PROCESS mrp WHERE mrp.REQ_ID = @p_REQ_ID ))
|
1217
|
BEGIN
|
1218
|
GOTO ABORT3
|
1219
|
END
|
1220
|
SET @Auth = 'A'
|
1221
|
SET @status = 'DONE'
|
1222
|
|
1223
|
SELECT @BranchId = tugr.BRANCH_ID, @DepId = tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_CHECKER_ID) tugr
|
1224
|
|
1225
|
UPDATE MW_REQ
|
1226
|
SET AUTH_STATUS = @Auth, STATUS = @status, APPROVE_DT = GETDATE(), CHECKER_ID = @CheckerId
|
1227
|
WHERE REQ_ID = @p_REQ_ID
|
1228
|
|
1229
|
IF @@Error <> 0 GOTO ABORT
|
1230
|
|
1231
|
UPDATE MW_REQUEST_PROCESS
|
1232
|
SET STATUS = 'P'
|
1233
|
WHERE REQ_ID = @p_REQ_ID
|
1234
|
|
1235
|
INSERT INTO MW_REQUEST_PROCESS (REQ_ID,CHECKER_ID, PROCESS_ID,PROCESS_NAME,BRANCH_ID,DEP_ID,RECEPTION_DT, STATUS, PARENT_PROCESS_ID, NOTES)
|
1236
|
VALUES (@p_REQ_ID,@p_CHECKER_ID, @status,N'Phê duyệt phiếu',@BranchId,@DepId,GETDATE() , 'P', 'DMTN', N'Hoàn thành phê duyệt phiếu ở bước đơn vị đầu mối phê duyệt')
|
1237
|
END
|
1238
|
ELSE
|
1239
|
BEGIN
|
1240
|
GOTO ABORT2
|
1241
|
END
|
1242
|
|
1243
|
INSERT INTO dbo.MW_PROCESS
|
1244
|
(
|
1245
|
REQ_ID,
|
1246
|
PROCESS_ID,
|
1247
|
CHECKER_ID,
|
1248
|
APPROVE_DT,
|
1249
|
PROCESS_DESC,
|
1250
|
NOTES
|
1251
|
)
|
1252
|
VALUES
|
1253
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
1254
|
'APP_NOW', -- PROCESS_ID - varchar(10)
|
1255
|
@p_CHECKER_ID, -- CHECKER_ID - varchar(100)
|
1256
|
CONVERT(DATETIME, @p_APPROVE_DT, 103), -- APPROVE_DT - datetime
|
1257
|
N'DVDM phê duyệt hoàn tất phiếu', -- PROCESS_DESC - nvarchar(1000)
|
1258
|
N'DVDM phê duyệt hoàn tất phiếu thành công' -- NOTES - nvarchar(1000)
|
1259
|
)
|
1260
|
COMMIT TRANSACTION
|
1261
|
SELECT '0' as Result, N'Phiếu '+ @p_REQ_ID + N' Được phê duyệt thành công' NOTICATION, '' ErrorDesc
|
1262
|
RETURN '0'
|
1263
|
ABORT:
|
1264
|
BEGIN
|
1265
|
ROLLBACK TRANSACTION
|
1266
|
SELECT '-1' as Result, '' ErrorDesc
|
1267
|
RETURN '-1'
|
1268
|
END
|
1269
|
ABORT2:
|
1270
|
BEGIN
|
1271
|
ROLLBACK TRANSACTION
|
1272
|
SELECT '-1' as Result, N'Phiếu' + @p_REQ_ID + N'Không thể phê duyệt khi chưa đén bước xử lý này hoặc không được phép phê duyệt' ErrorDesc
|
1273
|
RETURN '-1'
|
1274
|
END
|
1275
|
ABORT3:
|
1276
|
BEGIN
|
1277
|
ROLLBACK TRANSACTION
|
1278
|
SELECT '-1' as Result, N'Phiếu đã có cấp xử lý tiếp theo không thể phê duyệt tại bước này' ErrorDesc
|
1279
|
RETURN '-1'
|
1280
|
End
|