1
|
|
2
|
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_MOVE_DVCM]
|
3
|
-- Add the parameters for the stored procedure here
|
4
|
@p_REQ_ID VARCHAR(20),
|
5
|
@p_DMMS_ID_NEW VARCHAR(20),
|
6
|
@p_MAKER_ID VARCHAR(20)
|
7
|
AS
|
8
|
BEGIN
|
9
|
IF(@p_REQ_ID IS NOT NULL AND @p_DMMS_ID_NEW IS NOT NULL)
|
10
|
BEGIN
|
11
|
DECLARE @PR_ID INT
|
12
|
DECLARE @PROCESS_ID VARCHAR(20) = (SELECT PROCESS_ID FROM TR_REQUEST_DOC where REQ_ID = @p_REQ_ID)
|
13
|
|
14
|
SET @PR_ID=(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID='DMMS' AND REQ_ID=@p_REQ_ID AND STATUS='C')
|
15
|
|
16
|
------------BAODNQ 22/11/2022 : NẾU NGƯỜI CHUYỂN PHIẾU DMMS ĐANG Ở ĐVKD THÌ KO DC PHÉP CHUYỂN PHIẾU------------------
|
17
|
DECLARE @p_MAKER_ID_BRANCH VARCHAR(15) = (SELECT TOP 1 TLSUBBRID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
|
18
|
DECLARE @p_BRANCH_TYPE VARCHAR(20) = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_MAKER_ID_BRANCH)
|
19
|
IF(@p_BRANCH_TYPE <> 'HS' AND @p_BRANCH_TYPE IS NOT NULL AND @p_BRANCH_TYPE <> '')
|
20
|
BEGIN
|
21
|
SELECT '-1' as Result, N'Bạn đang ở Đơn vị kinh doanh thì không được phép chuyển phiếu yêu cầu cho đơn vị chuyên môn' ErrorDesc
|
22
|
RETURN '-1'
|
23
|
END
|
24
|
|
25
|
IF(@PROCESS_ID = 'SIGN')
|
26
|
BEGIN
|
27
|
SELECT '-1' as Result, N'Phiếu yêu cầu hiện đang chờ cấp phê duyệt trung gian, Nên không thể chuyển cho DVCM' ErrorDesc
|
28
|
RETURN '-1'
|
29
|
END
|
30
|
IF(@PROCESS_ID = 'APPNEW')
|
31
|
BEGIN
|
32
|
SELECT '-1' as Result, N'Phiếu yêu cầu hiện đang chờ TĐV phê duyệt, Nên không thể chuyển cho DVCM' ErrorDesc
|
33
|
RETURN '-1'
|
34
|
END
|
35
|
IF(@PROCESS_ID = 'DVCM')
|
36
|
BEGIN
|
37
|
SELECT '-1' as Result, N'Phiếu yêu cầu hiện đang chờ DVCM xử lý & phê duyệt, Nên không thể chuyển cho DVCM' ErrorDesc
|
38
|
RETURN '-1'
|
39
|
END
|
40
|
IF(@PROCESS_ID = 'GDK_PYC')
|
41
|
BEGIN
|
42
|
SELECT '-1' as Result, N'Phiếu yêu cầu hiện đang chờ GĐK hỗ trợ phê duyệt, Nên không thể chuyển cho DVCM' ErrorDesc
|
43
|
RETURN '-1'
|
44
|
END
|
45
|
IF(@PROCESS_ID = 'APPROVE')
|
46
|
BEGIN
|
47
|
SELECT '-1' as Result, N'Phiếu yêu cầu đã hoàn tất, Nên không thể chuyển cho DVCM' ErrorDesc
|
48
|
RETURN '-1'
|
49
|
END
|
50
|
----------------BAODNQ 4/1/2022: XÁC ĐỊNH BRANCH_DVMS KHI CHUYỂN PYCMS
|
51
|
DECLARE @p_BRANCH_DVMS VARCHAR(15),
|
52
|
@p_DVDM_NAME NVARCHAR(1000),
|
53
|
@p_PL_PROCESS_NOTES NVARCHAR(MAX)
|
54
|
---------------Nếu chuyển PYCMS về DVCM ở Hội sở--------------
|
55
|
IF(EXISTS(SELECT * FROM CM_DVDM WHERE DVDM_ID = @p_DMMS_ID_NEW))
|
56
|
BEGIN
|
57
|
SET @p_BRANCH_DVMS = (SELECT TOP 1 BRANCH_ID FROM CM_BRANCH WHERE BRANCH_TYPE = 'HS')
|
58
|
SET @p_DVDM_NAME = (SELECT TOP 1 DVDM_NAME FROM CM_DVDM WHERE DVDM_ID = @p_DMMS_ID_NEW)
|
59
|
SET @p_PL_PROCESS_NOTES = N'Chuyển phiếu cho ĐVCM ở Hội sở'
|
60
|
END
|
61
|
---------------Nếu chuyển PYCMS về CN/PGD--------------
|
62
|
ELSE IF(EXISTS(SELECT * FROM CM_DMMS WHERE DMMS_ID = @p_DMMS_ID_NEW))
|
63
|
BEGIN
|
64
|
DECLARE @p_BRANCH_CREATE VARCHAR(15) = (SELECT BRANCH_CREATE FROM TR_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)
|
65
|
-----------Không cho chuyển PYCMS cho CN/PGD khác với CN/PGD tạo PYCMS------------
|
66
|
IF((SELECT TOP 1 BRANCH_ID FROM CM_DMMS WHERE DMMS_ID = @p_DMMS_ID_NEW) <> @p_BRANCH_CREATE)
|
67
|
BEGIN
|
68
|
SELECT '-1' as Result, N'Nếu bạn chuyển phiếu cho ĐVKD tự mua, đơn vị được chọn để chuyển phiếu phải giống với đơn vị tạo phiếu yêu cầu' ErrorDesc
|
69
|
RETURN '-1'
|
70
|
END
|
71
|
ELSE
|
72
|
BEGIN
|
73
|
SET @p_BRANCH_DVMS = (SELECT TOP 1 BRANCH_ID FROM CM_DMMS WHERE DMMS_ID = @p_DMMS_ID_NEW)
|
74
|
SET @p_DVDM_NAME = (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_DVMS)
|
75
|
SET @p_PL_PROCESS_NOTES = N'Chuyển phiếu cho ĐVKD'
|
76
|
END
|
77
|
END
|
78
|
ELSE
|
79
|
BEGIN
|
80
|
SELECT '-1' as Result, N'Đơn vị được chọn để chuyển phiếu không hợp lệ' ErrorDesc
|
81
|
RETURN '-1'
|
82
|
END
|
83
|
|
84
|
UPDATE TR_REQUEST_DOC SET
|
85
|
DMMS_ID = @p_DMMS_ID_NEW,
|
86
|
BRANCH_DVMS = @p_BRANCH_DVMS
|
87
|
WHERE REQ_ID = @p_REQ_ID
|
88
|
|
89
|
-----------------BAODNQ 20/10/2022 : UPDATE DVDM_ID TRONG PL_REQUEST_PROCESS-----------
|
90
|
UPDATE PL_REQUEST_PROCESS
|
91
|
SET DVDM_ID = @p_DMMS_ID_NEW
|
92
|
WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'C'
|
93
|
DECLARE @p_PROCESS_DESC NVARCHAR(MAX) = N'Chuyển phiếu về ' + @p_DVDM_NAME
|
94
|
|
95
|
DECLARE @p_REQ_CODE VARCHAR(50) = (SELECT TOP 1 REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)
|
96
|
DECLARE @p_MESSAGE NVARCHAR(MAX) = N'Phiếu yêu cầu mua sắm số: ' +
|
97
|
@p_REQ_CODE + N' đã được chuyển cho ' + @p_DVDM_NAME + N' thành công'
|
98
|
|
99
|
INSERT dbo.PL_PROCESS
|
100
|
(
|
101
|
REQ_ID,
|
102
|
PROCESS_ID,
|
103
|
CHECKER_ID,
|
104
|
APPROVE_DT,
|
105
|
PROCESS_DESC,
|
106
|
NOTES
|
107
|
)
|
108
|
VALUES
|
109
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
110
|
'DMMS', -- PROCESS_ID - varchar(10)
|
111
|
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
|
112
|
GETDATE(), -- APPROVE_DT - datetime
|
113
|
@p_PROCESS_DESC, -- PROCESS_DESC - nvarchar(1000)
|
114
|
@p_PL_PROCESS_NOTES -- NOTES - nvarchar(1000)
|
115
|
)
|
116
|
|
117
|
SELECT '0' as Result, @p_MESSAGE ErrorDesc
|
118
|
RETURN '0'
|
119
|
END
|
120
|
ELSE
|
121
|
BEGIN
|
122
|
SELECT '-1' as Result, '' ErrorDesc
|
123
|
RETURN '-1'
|
124
|
END
|
125
|
END
|