Project

General

Profile

KIEM TRA han muc duyet pycms.txt

Luc Tran Van, 07/23/2020 05:42 PM

 
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
	-- LUCTV BO SUNG TRUONG DON VI KIEM TRA NEU VUOT QUA HAN MUC CUA TO TRINH THI KHONG CHO DUYET
29
	DECLARE @TTCT_ID VARCHAR(15),@TTCT_CODE VARCHAR(15)
30
	SET @TTCT_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)
31
	SET @TTCT_CODE =(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@TTCT_ID)
32
	-- THONG  TIN TONG SO TIEN PYC MS DANG LINK TOI TO TRINH
33
	DECLARE @TONG_PYCMS DECIMAL(18,2) =0, @TONG_TTCT DECIMAL(18,2) =0
34
	SET @TONG_PYCMS  = (SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE  REQ_DOC_ID IN (SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@TTCT_ID))
35
	SET @TONG_TTCT =(SELECT TOTAL_AMT FROM PL_REQUEST_DOC WHERE REQ_ID =@TTCT_ID)
36
	IF(@TONG_PYCMS>@TONG_TTCT)
37
	BEGIN
38
		ROLLBACK TRANSACTION
39
			SELECT '-1' Result, N'Tổng số tiền sử dụng ngân sách của phiếu yêu cầu mua sắm đang vượt hạn mức trình chủ trương theo tờ trình số: '+@TTCT_CODE +
40
			+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(@TONG_PYCMS -@TONG_TTCT,'#,#', 'vi-VN') ErrorDesc
41
			RETURN '-1'
42
	END
43
	--
44
	--- PHE DUYET TRUNG GIAN
45
	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE_N VARCHAR(20) ,@DEP_CREATE_N VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
46
	@BRANCH_CREATE_TYPE VARCHAR(10)
47
	SELECT @BRANCH_CREATE_N=BRANCH_CREATE,@DEP_CREATE_N=DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
48
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
49
	SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE_N)
50
	IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER =@p_CHECKER_ID AND PROCESS_ID ='SIGN'))
51
	BEGIN
52
		DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID
53
		INSERT INTO dbo.PL_PROCESS
54
		(
55
			REQ_ID,
56
			PROCESS_ID,
57
			CHECKER_ID,
58
			APPROVE_DT,
59
			PROCESS_DESC,NOTES
60
		)
61
		VALUES
62
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
63
			'SIGN',        -- PROCESS_ID - varchar(10)
64
			@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
65
			@p_APPROVE_DT , -- APPROVE_DT - datetime
66
			N'Cấp phê duyệt trung gian xác nhận phiếu yêu cầu mua sắm',
67
			N'Cấp phê duyệt trung gian'
68
		)
69
	--- DUA CAP PHE DUYET TRUONG DON VI
70
	    INSERT INTO dbo.PL_REQUEST_PROCESS
71
		(
72
		    REQ_ID,
73
		    PROCESS_ID,
74
		    STATUS,
75
		    ROLE_USER,
76
		    BRANCH_ID,
77
			DEP_ID,
78
		    CHECKER_ID,
79
		    APPROVE_DT,
80
		    PARENT_PROCESS_ID,
81
		    IS_LEAF,
82
		    COST_ID,
83
		    DVDM_ID,
84
		    NOTES,
85
		    IS_HAS_CHILD
86
		)
87
		VALUES
88
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
89
		    'APPNEW',        -- PROCESS_ID - varchar(10)
90
		    'C',        -- STATUS - varchar(5)
91
		    'GDDV',        -- ROLE_USER - varchar(50)
92
		    @BRANCH_CREATE_N,  
93
			@DEP_CREATE_N,      -- BRANCH_ID - varchar(15)
94
		    '',        -- CHECKER_ID - varchar(15)
95
		    NULL,      -- APPROVE_DT - datetime
96
		    '',        -- PARENT_PROCESS_ID - varchar(10)
97
		    'N',        -- IS_LEAF - varchar(1)
98
		    '',        -- COST_ID - varchar(15)
99
		    '',        -- DVDM_ID - varchar(15)
100
		    N'Chờ trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
101
		    NULL       -- IS_HAS_CHILD - bit
102
		 )
103
	--- UPDATE PROCESS_ID VE APP_NEW
104
	UPDATE TR_REQUEST_DOC SET PROCESS_ID ='APPNEW' WHERE REQ_ID =@p_REQ_ID
105
	END
106
	ELSE
107
	--- PHE DUYET GIU NGUYEN NHU THUONG
108
	BEGIN
109
		--- KIEM TRA XEM DA PHE DUYET TRUNG GIAN HAY CHUA
110
		IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <> ''))
111
		BEGIN
112
			IF(NOT EXISTS (SELECT * FROM PL_PROCESS WHERE PROCESS_ID='SIGN' AND REQ_ID =@p_REQ_ID))
113
			BEGIN
114
				ROLLBACK TRANSACTION
115
				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 nhận phiếu!' ErrorDesc
116
				RETURN -1
117
			END
118
		END
119
		DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID
120
		DECLARE @CURR_PROCESS VARCHAR(20),@TOTAL_AMT DECIMAL(18,2),
121
		 @LIMIT_VALUE DECIMAL(18,0),@IS_NEXT BIT,@DMMS_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20),@BRANCH_HS VARCHAR(20),@DEP_CREATE VARCHAR(15)
122
		SET @BRANCH_HS= (SELECT TOP 1 BRANCH_ID FROM dbo.CM_BRANCH WHERE BRANCH_TYPE='HS')
123
		SET @LIMIT_VALUE=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDDV' AND LIMIT_TYPE='PYC_DVMC')
124
	
125
		SET @TOTAL_AMT=(SELECT TOTAL_AMT FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
126

    
127
		SET @CURR_PROCESS = (SELECT PROCESS_ID FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
128

    
129
		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
130

    
131
		SET @IS_NEXT=(SELECT dbo.FN_CHECK_LIMIT_TR_REQ(@p_REQ_ID,'GDDV'))
132

    
133
		SET @BRANCH_CREATE=(SELECT BRANCH_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
134
		SET @DEP_CREATE=(SELECT DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
135

    
136
	IF(EXISTS(	SELECT RD.REQDT_ID FROM dbo.TR_REQUEST_DOC_DT RD 
137
		LEFT JOIN dbo.SYS_HH_GROUP_LIMIT HGL ON RD.HANGHOA_ID=HGL.HH_ID
138
		LEFT JOIN dbo.SYS_GROUP_LIMIT GL ON GL.GROUP_ID=HGL.GROUP_LIMIT_ID
139
		WHERE GL.IS_HO=1 AND RD.REQ_DOC_ID=@p_REQ_ID) OR  @IS_NEXT=1 OR @BRANCH_CREATE=@BRANCH_HS)
140
		BEGIN
141
			IF(@TOTAL_AMT<=@LIMIT_VALUE AND NOT EXISTS(SELECT DVDM_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID
142
						GROUP BY DVDM_ID HAVING COUNT(REQDT_ID)>1))
143
			BEGIN
144
				SET @DMMS_ID= (SELECT DISTINCT DVDM_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID)
145
				UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,REQ_TYPE=2 WHERE REQ_ID=@p_REQ_ID
146
			END
147
			SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)
148
			UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID
149
		END
150
		ELSE
151
		BEGIN
152
			SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_CREATE)
153
			UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_CREATE,DMMS_ID=@DMMS_ID,REQ_TYPE=0 WHERE REQ_ID=@p_REQ_ID
154
		END
155
		INSERT INTO dbo.PL_REQUEST_PROCESS
156
		(
157
			REQ_ID,
158
			PROCESS_ID,
159
			STATUS,
160
			ROLE_USER,
161
			BRANCH_ID,
162
			CHECKER_ID,
163
			APPROVE_DT,
164
			PARENT_PROCESS_ID,
165
			IS_LEAF,
166
			COST_ID,
167
			DVDM_ID,
168
			NOTES,
169
			IS_HAS_CHILD,
170
			DEP_ID
171
		)
172
		VALUES
173
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
174
			'APPNEW',        -- PROCESS_ID - varchar(10)
175
			'P',        -- STATUS - varchar(5)
176
			'GDDV',        -- ROLE_USER - varchar(50)
177
			@BRANCH_CREATE,        -- BRANCH_ID - varchar(15)
178
			@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
179
			GETDATE(), -- APPROVE_DT - datetime
180
			'',        -- PARENT_PROCESS_ID - varchar(10)
181
			'',        -- IS_LEAF - varchar(1)
182
			'',        -- COST_ID - varchar(15)
183
			'',        -- DVDM_ID - varchar(15)
184
			N'Trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
185
			0 ,      -- IS_HAS_CHILD - bit
186
			@DEP_CREATE
187
			)
188

    
189
			INSERT INTO dbo.PL_REQUEST_PROCESS
190
		(
191
			REQ_ID,
192
			PROCESS_ID,
193
			STATUS,
194
			ROLE_USER,
195
			BRANCH_ID,
196
			CHECKER_ID,
197
			APPROVE_DT,
198
			PARENT_PROCESS_ID,
199
			IS_LEAF,
200
			COST_ID,
201
			DVDM_ID,
202
			NOTES,
203
			IS_HAS_CHILD
204
		)
205
		VALUES
206
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
207
			'DMMS',        -- PROCESS_ID - varchar(10)
208
			'C',        -- STATUS - varchar(5)
209
			'GDDV',        -- ROLE_USER - varchar(50)
210
			'',        -- BRANCH_ID - varchar(15)
211
			'',        -- CHECKER_ID - varchar(15)
212
			GETDATE(), -- APPROVE_DT - datetime
213
			'APPNEW',        -- PARENT_PROCESS_ID - varchar(10)
214
			'',        -- IS_LEAF - varchar(1)
215
			'',        -- COST_ID - varchar(15)
216
			'',        -- DVDM_ID - varchar(15)
217
			N'Chờ đầu mối mua sắm xử lý',       -- NOTES - nvarchar(500)
218
			1       -- IS_HAS_CHILD - bit
219
		 )
220

    
221
		INSERT INTO dbo.PL_PROCESS
222
		(
223
			REQ_ID,
224
			PROCESS_ID,
225
			CHECKER_ID,
226
			APPROVE_DT,
227
			PROCESS_DESC,NOTES
228
		)
229
		VALUES
230
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
231
			'APPNEW',        -- PROCESS_ID - varchar(10)
232
			@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
233
			@p_APPROVE_DT , -- APPROVE_DT - datetime
234
			@p_PROCESS_DES,
235
			 N'Trưởng đơn vị phê duyệt'        -- PROCESS_DESC - nvarchar(1000)
236
		)
237
	END
238
	IF @@Error <> 0 GOTO ABORT
239
			
240
COMMIT TRANSACTION
241
IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE AUTH_STATUS ='A' AND REQ_ID =@p_REQ_ID))
242
BEGIN
243
	SELECT '0' as Result, '' ErrorDesc
244
	RETURN '0'
245
END
246
ELSE
247
BEGIN
248
	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
249
	RETURN '4'
250
END
251
ABORT:
252
BEGIN
253
		PRINT 'ERROR'
254
		ROLLBACK TRANSACTION
255
		SELECT '-1' as Result, '' ErrorDesc
256
		RETURN '-1'
257
End
258

    
259

    
260

    
261

    
262