Project

General

Profile

TR_REQUEST_DOC_MOVE_DVCM.txt

Luc Tran Van, 01/09/2023 09:47 AM

 
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