Project

General

Profile

21-72020 FILE 14 CAP NHTA GUI PHE DUYET PYCMS.txt

Luc Tran Van, 07/21/2020 01:56 PM

 
1
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_SendApp]
2
@p_REQ_ID VARCHAR(20),
3
@p_PROCESS_ID VARCHAR(20),
4
@p_TLNAME VARCHAR(20),
5
@p_MAKER_ID VARCHAR(20)
6
AS
7
BEGIN TRANSACTION
8
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (REQ_DT IS NULL OR REQ_DT='')) )
9
	BEGIN
10
			ROLLBACK TRANSACTION
11
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Ngày yêu cầu bắt buộc nhập' ErrorDesc
12
			RETURN '-1'
13
	END
14
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (REQ_REASON IS NULL OR REQ_REASON='')) )
15
	BEGIN
16
			ROLLBACK TRANSACTION
17
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Mục đích yêu cầu bắt buộc nhập' ErrorDesc
18
			RETURN '-1'
19
	END
20
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (PL_REQ_ID IS NULL OR PL_REQ_ID='')) )
21
	BEGIN
22
			ROLLBACK TRANSACTION
23
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Tờ trình chủ trương bắt buộc nhập' ErrorDesc
24
			RETURN '-1'
25
	END
26
	IF(NOT EXISTS(SELECT REQ_DOC_ID FROM dbo.TR_REQUEST_DOC_DT WHERE  REQ_DOC_ID=@p_REQ_ID ) )
27
	BEGIN
28
			ROLLBACK TRANSACTION
29
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Chi tiết hàng hóa bắt buộc nhập' ErrorDesc
30
			RETURN '-1'
31
	END
32

    
33
	--- XOA DATA CU
34
	DELETE PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID
35
	-----
36
	DECLARE @NS_TO_TRINH DECIMAL(18,0), @NS_PYCMS_USE DECIMAL(18,0), @NS_LUY_KE DECIMAL(18,0),@PL_REQ_CODE VARCHAR(50)
37
	SET @PL_REQ_CODE =(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
38
	SET @NS_TO_TRINH =(SELECT TOTAL_AMT FROM PL_REQUEST_DOC WHERE REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
39
	SET @NS_PYCMS_USE =(SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID)
40
	SET @NS_LUY_KE =ISNULL((SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID IN (SELECT REQ_ID FROM dbo.TR_REQUEST_DOC
41
	WHERE PL_REQ_ID=(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) AND PROCESS_ID ='APPROVE')),0)
42
	DECLARE @p_PL_REQ_ID VARCHAR(15),@p_REQ_DATE DATETIME
43
	SELECT @p_PL_REQ_ID=PL_REQ_ID,@p_REQ_DATE=REQ_DT  FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
44
	IF( EXISTS(
45
			SELECT Temp.GD_ID FROM (SELECT GD_ID,SUM(TOTAL_AMT) AS TOTAL_AMT_ETM FROM dbo.TR_REQUEST_DOC_DT   WHERE REQ_DOC_ID=@p_REQ_ID
46
			GROUP BY GD_ID) Temp WHERE    TOTAL_AMT_ETM > 
47
			((SELECT SUM(TEMP2.TOTAL_AMT) AS TOTAL_AMT_APP FROM
48
			(SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
49
			WHERE REQ_ID=@p_PL_REQ_ID
50
			UNION 
51
			SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
52
			WHERE REQ_ID=(SELECT REQ_PARENT_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID) ) TEMP2 WHERE TEMP2.GOODS_ID=Temp.GD_ID
53
			GROUP BY TEMP2.GOODS_ID) - (SELECT ISNULL(SUM(TOTAL_AMT),0) AS TOTAL_AMT_EXE FROM dbo.TR_REQUEST_DOC_DT WHERE GD_ID=Temp.GD_ID AND 
54
			REQ_DOC_ID IN (SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID=@p_PL_REQ_ID AND PROCESS_ID ='APPROVE')
55
			GROUP BY GD_ID))))
56
		BEGIN
57
			ROLLBACK TRANSACTION
58
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID,
59
			N'Thông tin liên quan tới phiếu yêu cầu mua sắm có sử dụng tờ trình số: '+ @PL_REQ_CODE
60
			+CHAR(10)+ N'Tổng số tiền lũy kế sử dụng ngân sách tờ trình: '+FORMAT(@NS_LUY_KE ,'#,#', 'vi-VN')
61
			+CHAR(10)+N'Tổng số tiền ngân sách còn lại của tờ trình: '+ FORMAT(@NS_TO_TRINH -@NS_LUY_KE ,'#,#', 'vi-VN')
62
			+CHAR(10)+ N'Số tiền sử dụng ngân sách cho phiếu yêu cầu mua sắm hiện tại vượt '+FORMAT(@NS_LUY_KE+@NS_PYCMS_USE -@NS_TO_TRINH ,'#,#', 'vi-VN')+N' so với tổng số tiền ngân sách còn lại của tờ trình.'
63
			+CHAR(10) +N'Vui lòng tra cứu tổng số tiền các phiếu yêu cầu mua sắm để biết thêm thông tin chi tiêt!' ErrorDesc 
64
			RETURN '0'
65
		END
66
	IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))
67
		BEGIN
68
			ROLLBACK TRANSACTION
69
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa theo tờ trình: Ngày cần không được phép để trống và phải lớn hơn ngày yêu cầu mua sắm' ErrorDesc 
70
			RETURN '0'
71
		END
72
	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
73
	@BRANCH_CREATE_TYPE VARCHAR(10)
74

    
75
	SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
76

    
77
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
78
	SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
79
	-- KIEM TRA XEM CO CAP PHE DUYET HAY KHONG
80
	IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))
81
	BEGIN
82
		UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='SIGN' WHERE REQ_ID=@p_REQ_ID
83
		INSERT INTO dbo.PL_REQUEST_PROCESS
84
		(
85
		    REQ_ID,
86
		    PROCESS_ID,
87
		    STATUS,
88
		    ROLE_USER,
89
		    BRANCH_ID,
90
			DEP_ID,
91
		    CHECKER_ID,
92
		    APPROVE_DT,
93
		    PARENT_PROCESS_ID,
94
		    IS_LEAF,
95
		    COST_ID,
96
		    DVDM_ID,
97
		    NOTES,
98
		    IS_HAS_CHILD
99
		)
100
		VALUES
101
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
102
		    'SIGN',        -- PROCESS_ID - varchar(10)
103
		    'C',        -- STATUS - varchar(5)
104
		    (SELECT RoleName FROM TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)),  -- ROLE_USER - varchar(50)
105
		    @BRANCH_CREATE,  
106
			@DEP_CREATE,      -- BRANCH_ID - varchar(15)
107
		    '',        -- CHECKER_ID - varchar(15)
108
		    NULL,      -- APPROVE_DT - datetime
109
		    '',        -- PARENT_PROCESS_ID - varchar(10)
110
		    'N',        -- IS_LEAF - varchar(1)
111
		    '',        -- COST_ID - varchar(15)
112
		    '',        -- DVDM_ID - varchar(15)
113
		    N'Chờ cấp phê duyệt trung gian xác nhận phiếu',       -- NOTES - nvarchar(500)
114
		    NULL       -- IS_HAS_CHILD - bit
115
		 )
116
	END
117
	ELSE
118
	BEGIN
119
	UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID
120
	INSERT INTO dbo.PL_REQUEST_PROCESS
121
		(
122
		    REQ_ID,
123
		    PROCESS_ID,
124
		    STATUS,
125
		    ROLE_USER,
126
		    BRANCH_ID,
127
			DEP_ID,
128
		    CHECKER_ID,
129
		    APPROVE_DT,
130
		    PARENT_PROCESS_ID,
131
		    IS_LEAF,
132
		    COST_ID,
133
		    DVDM_ID,
134
		    NOTES,
135
		    IS_HAS_CHILD
136
		)
137
		VALUES
138
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
139
		    'APPNEW',        -- PROCESS_ID - varchar(10)
140
		    'C',        -- STATUS - varchar(5)
141
		    'GDDV',        -- ROLE_USER - varchar(50)
142
		    @BRANCH_CREATE,  
143
			@DEP_CREATE,      -- BRANCH_ID - varchar(15)
144
		    '',        -- CHECKER_ID - varchar(15)
145
		    NULL,      -- APPROVE_DT - datetime
146
		    '',        -- PARENT_PROCESS_ID - varchar(10)
147
		    'N',        -- IS_LEAF - varchar(1)
148
		    '',        -- COST_ID - varchar(15)
149
		    '',        -- DVDM_ID - varchar(15)
150
		    N'Chờ trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
151
		    NULL       -- IS_HAS_CHILD - bit
152
		 )
153
	END	
154
	INSERT INTO dbo.PL_PROCESS
155
					(
156
					    REQ_ID,
157
					    PROCESS_ID,
158
					    CHECKER_ID,
159
					    APPROVE_DT,
160
					    PROCESS_DESC,
161
					    NOTES
162
					)
163
					VALUES
164
					(   @p_REQ_ID,        -- REQ_ID - varchar(15)
165
					    --@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
166
						'SEND',
167
					    @p_TLNAME,        -- CHECKER_ID - varchar(15)
168
					    GETDATE(), -- APPROVE_DT - datetime
169
					    N'Nhân viên tạo phiếu và gửi phê duyệt thành công' ,       -- PROCESS_DESC - nvarchar(1000)
170
					    N'Nhân viên gửi phê duyệt '        -- NOTES - nvarchar(1000)
171
					 )
172
	
173
		IF @@Error <> 0 GOTO ABORT
174
COMMIT TRANSACTION
175
SELECT '0' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
176
RETURN '0'
177
ABORT:
178
BEGIN
179
		ROLLBACK TRANSACTION
180
		SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
181
		RETURN '-1'
182
End