Project

General

Profile

FILE 01 12H00 08122020 PHE DUYET PYCMS (TR REQUEST DOC APP).txt

Luc Tran Van, 12/08/2020 11:35 AM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_App]
3
    @p_REQ_ID VARCHAR(15) = NULL,
4
	@p_AUTH_STATUS VARCHAR(1) = NULL,
5
	@p_CHECKER_ID varchar(15)  = NULL,
6
	@p_APPROVE_DT DATETIME = NULL,
7
	@p_ROLE_LOGIN VARCHAR(50) = NULL,
8
	@p_BRANCH_LOGIN VARCHAR(15),
9
	@p_PROCESS_DES NVARCHAR(500)
10
	
11
AS
12
	--Validation is here
13
DECLARE @ERRORSYS NVARCHAR(15) = '' 
14
  IF ( NOT EXISTS ( SELECT * FROM TR_REQUEST_DOC WHERE  REQ_ID = @p_REQ_ID))
15
	SET @ERRORSYS = 'REQ-00002'
16
IF @ERRORSYS <> '' 
17
BEGIN
18
	SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
19
	RETURN '0'
20
END 
21
BEGIN TRANSACTION
22
	-- LUCTV 20052020 BO SUNG CHECK NEU TRA VE THI KHONG DUYET DUOC
23
	IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND AUTH_STATUS ='R'))
24
		BEGIN
25
			ROLLBACK TRANSACTION
26
			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
27
			RETURN '-1'
28
	END
29
	--- PHE DUYET TRUNG GIAN
30
	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE_N VARCHAR(20) ,@DEP_CREATE_N VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
31
	@BRANCH_CREATE_TYPE VARCHAR(10)
32
	SELECT @BRANCH_CREATE_N=BRANCH_CREATE,@DEP_CREATE_N=DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
33
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
34
	SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE_N)
35
	IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER =@p_CHECKER_ID AND PROCESS_ID ='SIGN'))
36
	BEGIN
37
		DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID
38
		INSERT INTO dbo.PL_PROCESS
39
		(
40
			REQ_ID,
41
			PROCESS_ID,
42
			CHECKER_ID,
43
			APPROVE_DT,
44
			PROCESS_DESC,NOTES
45
		)
46
		VALUES
47
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
48
			'SIGN',        -- PROCESS_ID - varchar(10)
49
			@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
50
			@p_APPROVE_DT , -- APPROVE_DT - datetime
51
			N'Cấp phê duyệt trung gian xác nhận phiếu yêu cầu mua sắm',
52
			N'Cấp phê duyệt trung gian'
53
		)
54
	--- DUA CAP PHE DUYET TRUONG DON VI
55
		IF(@BRANCH_CREATE_TYPE='PGD')
56
			SET @BRANCH_CREATE_N=(SELECT FATHER_ID  FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE_N)
57

    
58
	    INSERT INTO dbo.PL_REQUEST_PROCESS
59
		(
60
		    REQ_ID,
61
		    PROCESS_ID,
62
		    STATUS,
63
		    ROLE_USER,
64
		    BRANCH_ID,
65
			DEP_ID,
66
		    CHECKER_ID,
67
		    APPROVE_DT,
68
		    PARENT_PROCESS_ID,
69
		    IS_LEAF,
70
		    COST_ID,
71
		    DVDM_ID,
72
		    NOTES,
73
		    IS_HAS_CHILD
74
		)
75
		VALUES
76
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
77
		    'APPNEW',        -- PROCESS_ID - varchar(10)
78
		    'C',        -- STATUS - varchar(5)
79
		    'GDDV',        -- ROLE_USER - varchar(50)
80
		    @BRANCH_CREATE_N,  
81
			@DEP_CREATE_N,      -- BRANCH_ID - varchar(15)
82
		    '',        -- CHECKER_ID - varchar(15)
83
		    NULL,      -- APPROVE_DT - datetime
84
		    '',        -- PARENT_PROCESS_ID - varchar(10)
85
		    'N',        -- IS_LEAF - varchar(1)
86
		    '',        -- COST_ID - varchar(15)
87
		    '',        -- DVDM_ID - varchar(15)
88
		    N'Chờ trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
89
		    NULL       -- IS_HAS_CHILD - bit
90
		 )
91
	--- UPDATE PROCESS_ID VE APP_NEW
92
	UPDATE TR_REQUEST_DOC SET PROCESS_ID ='APPNEW' WHERE REQ_ID =@p_REQ_ID
93
	END
94
	ELSE
95
	--- PHE DUYET GIU NGUYEN NHU THUONG
96
	BEGIN
97
		DECLARE @ROLE_USER_LOGIN VARCHAR(15)=''
98
		SET @ROLE_USER_LOGIN =(SELECT RoleName FROM TL_USER WHERE TLNANME =@p_CHECKER_ID)
99
		--- KIEM TRA XEM DA PHE DUYET TRUNG GIAN HAY CHUA
100
		IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <> ''))
101
		BEGIN
102
			IF(NOT EXISTS (SELECT * FROM PL_PROCESS WHERE PROCESS_ID='SIGN' AND REQ_ID =@p_REQ_ID))
103
			BEGIN
104
				ROLLBACK TRANSACTION
105
				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
106
				RETURN '-1'
107
			END
108
			IF(@p_CHECKER_ID = (SELECT SIGN_USER FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
109
			BEGIN
110
				ROLLBACK TRANSACTION
111
				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 trưởng đơn vị phê duyệt. Bạn không có thẩm quyền phê duyệt cấp trưởng đơn vị! Vui lòng xem lịch sử xử lý phiếu' ErrorDesc
112
				RETURN '-1'
113
			END
114
		END
115
		-- LUCTV: 08 12 2020: KIỂM TRA NẾU CẤP DUYỆT KHÔNG NẰM TRONG CẤP TP, PP THÌ KHÔNG CHO DUYỆT TRƯỞNG ĐƠN VỊ
116
		--IF(
117
		DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID
118
		DECLARE @CURR_PROCESS VARCHAR(20),@TOTAL_AMT DECIMAL(18,2),
119
		 @LIMIT_VALUE DECIMAL(18,0), @LIMIT_DVCM DECIMAL(18,0),@IS_NEXT BIT,@DMMS_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20),@BRANCH_HS VARCHAR(20),@DEP_CREATE VARCHAR(15)
120
		SET @BRANCH_HS= (SELECT TOP 1 BRANCH_ID FROM dbo.CM_BRANCH WHERE BRANCH_TYPE='HS')
121
		SET @LIMIT_VALUE=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE  LIMIT_TYPE='PYCMS_DVKD')
122
		SET @LIMIT_DVCM=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE  LIMIT_TYPE='PYCMS_DVCM')
123
		SET @TOTAL_AMT=(SELECT TOTAL_AMT FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
124

    
125
		SET @CURR_PROCESS = (SELECT PROCESS_ID FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
126

    
127
		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
128

    
129
	--	SET @IS_NEXT=(SELECT dbo.FN_CHECK_LIMIT_TR_REQ(@p_REQ_ID,'GDDV'))
130

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

    
134
		IF(@BRANCH_CREATE_TYPE='PGD')
135
			SET @BRANCH_CREATE=(SELECT FATHER_ID  FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
136

    
137
IF(EXISTS (SELECT BRANCH_ID FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE AND BRANCH_TYPE='HS'))
138
BEGIN
139
    IF(@TOTAL_AMT <= @LIMIT_DVCM)
140
	BEGIN
141
				SET @DMMS_ID= (SELECT DISTINCT HC.DVCM_ID FROM dbo.TR_REQUEST_DOC_DT DT 
142
														LEFT JOIN dbo.CM_HANGHOA_DVCM HC ON HC.HH_ID=DT.HANGHOA_ID WHERE REQ_DOC_ID=@p_REQ_ID)
143
				UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=2 WHERE REQ_ID=@p_REQ_ID
144
	END
145
	ELSE
146
	BEGIN
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
END
151
ELSE
152
BEGIN
153
	IF(EXISTS(	SELECT RD.REQDT_ID FROM dbo.TR_REQUEST_DOC_DT RD 
154
		LEFT JOIN dbo.SYS_HH_GROUP_LIMIT HGL ON RD.HANGHOA_ID=HGL.HH_ID
155
		LEFT JOIN dbo.SYS_GROUP_LIMIT GL ON GL.GROUP_ID=HGL.GROUP_LIMIT_ID
156
		WHERE GL.IS_HO=1 AND RD.REQ_DOC_ID=@p_REQ_ID))
157
	BEGIN
158
		    IF(@TOTAL_AMT <= @LIMIT_DVCM)
159
			BEGIN
160
				SET @DMMS_ID= (SELECT DISTINCT HC.DVCM_ID FROM dbo.TR_REQUEST_DOC_DT DT 
161
														LEFT JOIN dbo.CM_HANGHOA_DVCM HC ON HC.HH_ID=DT.HANGHOA_ID WHERE REQ_DOC_ID=@p_REQ_ID)
162
				UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=2 WHERE REQ_ID=@p_REQ_ID
163
			END
164
			ELSE
165
			BEGIN
166
				SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)
167
				UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID
168
			END
169
	END
170
	ELSE
171
	BEGIN
172
		IF(@TOTAL_AMT<=@LIMIT_VALUE)
173
			BEGIN
174
				SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_CREATE)
175
				UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_CREATE,DMMS_ID=@DMMS_ID,REQ_TYPE=0 WHERE REQ_ID=@p_REQ_ID
176
			END
177
			ELSE
178
			BEGIN
179
				SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)
180
				UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID
181
			END
182
	END
183
END
184

    
185
	--IF(EXISTS(	SELECT RD.REQDT_ID FROM dbo.TR_REQUEST_DOC_DT RD 
186
	--	LEFT JOIN dbo.SYS_HH_GROUP_LIMIT HGL ON RD.HANGHOA_ID=HGL.HH_ID
187
	--	LEFT JOIN dbo.SYS_GROUP_LIMIT GL ON GL.GROUP_ID=HGL.GROUP_LIMIT_ID
188
	--	WHERE GL.IS_HO=1 AND RD.REQ_DOC_ID=@p_REQ_ID)  OR @BRANCH_CREATE=@BRANCH_HS)
189
	--	BEGIN
190
	--		IF(@TOTAL_AMT<=@LIMIT_VALUE AND NOT EXISTS(SELECT HC.DVCM_ID FROM dbo.TR_REQUEST_DOC_DT DT 
191
	--													LEFT JOIN dbo.CM_HANGHOA_DVCM HC ON HC.HH_ID=DT.HANGHOA_ID WHERE REQ_DOC_ID=@p_REQ_ID
192
	--					GROUP BY HC.DVCM_ID HAVING COUNT(REQDT_ID)>1))
193
	--		BEGIN
194
	--			SET @DMMS_ID= (SELECT DISTINCT HC.DVCM_ID FROM dbo.TR_REQUEST_DOC_DT DT 
195
	--													LEFT JOIN dbo.CM_HANGHOA_DVCM HC ON HC.HH_ID=DT.HANGHOA_ID WHERE REQ_DOC_ID=@p_REQ_ID)
196
	--			UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=2 WHERE REQ_ID=@p_REQ_ID
197
	--		END
198
	--		ELSE
199
	--		BEGIN
200
	--			SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)
201
	--			UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID
202
	--		END
203
	--	END
204
	--	ELSE
205
	--	BEGIN
206
	--		IF(@TOTAL_AMT<=@LIMIT_VALUE)
207
	--		BEGIN
208
	--			SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_CREATE)
209
	--			UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_CREATE,DMMS_ID=@DMMS_ID,REQ_TYPE=0 WHERE REQ_ID=@p_REQ_ID
210
	--		END
211
	--		ELSE
212
	--		BEGIN
213
	--			SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)
214
	--			UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID
215
	--		END
216
	--	END
217

    
218

    
219
		INSERT INTO dbo.PL_REQUEST_PROCESS
220
		(
221
			REQ_ID,
222
			PROCESS_ID,
223
			STATUS,
224
			ROLE_USER,
225
			BRANCH_ID,
226
			CHECKER_ID,
227
			APPROVE_DT,
228
			PARENT_PROCESS_ID,
229
			IS_LEAF,
230
			COST_ID,
231
			DVDM_ID,
232
			NOTES,
233
			IS_HAS_CHILD,
234
			DEP_ID
235
		)
236
		VALUES
237
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
238
			'APPNEW',        -- PROCESS_ID - varchar(10)
239
			'P',        -- STATUS - varchar(5)
240
			'GDDV',        -- ROLE_USER - varchar(50)
241
			@BRANCH_CREATE,        -- BRANCH_ID - varchar(15)
242
			@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
243
			GETDATE(), -- APPROVE_DT - datetime
244
			'',        -- PARENT_PROCESS_ID - varchar(10)
245
			'',        -- IS_LEAF - varchar(1)
246
			'',        -- COST_ID - varchar(15)
247
			'',        -- DVDM_ID - varchar(15)
248
			N'Trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
249
			0 ,      -- IS_HAS_CHILD - bit
250
			@DEP_CREATE
251
			)
252

    
253
			INSERT INTO dbo.PL_REQUEST_PROCESS
254
		(
255
			REQ_ID,
256
			PROCESS_ID,
257
			STATUS,
258
			ROLE_USER,
259
			BRANCH_ID,
260
			CHECKER_ID,
261
			APPROVE_DT,
262
			PARENT_PROCESS_ID,
263
			IS_LEAF,
264
			COST_ID,
265
			DVDM_ID,
266
			NOTES,
267
			IS_HAS_CHILD
268
		)
269
		VALUES
270
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
271
			'DMMS',        -- PROCESS_ID - varchar(10)
272
			'C',        -- STATUS - varchar(5)
273
			'GDDV',        -- ROLE_USER - varchar(50)
274
			'',        -- BRANCH_ID - varchar(15)
275
			'',        -- CHECKER_ID - varchar(15)
276
			GETDATE(), -- APPROVE_DT - datetime
277
			'APPNEW',        -- PARENT_PROCESS_ID - varchar(10)
278
			'',        -- IS_LEAF - varchar(1)
279
			'',        -- COST_ID - varchar(15)
280
			'',        -- DVDM_ID - varchar(15)
281
			N'Chờ đầu mối mua sắm xử lý',       -- NOTES - nvarchar(500)
282
			1       -- IS_HAS_CHILD - bit
283
		 )
284

    
285
		INSERT INTO dbo.PL_PROCESS
286
		(
287
			REQ_ID,
288
			PROCESS_ID,
289
			CHECKER_ID,
290
			APPROVE_DT,
291
			PROCESS_DESC,NOTES
292
		)
293
		VALUES
294
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
295
			'APPNEW',        -- PROCESS_ID - varchar(10)
296
			@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
297
			@p_APPROVE_DT , -- APPROVE_DT - datetime
298
			@p_PROCESS_DES,
299
			 N'Trưởng đơn vị phê duyệt'        -- PROCESS_DESC - nvarchar(1000)
300
		)
301
	END
302
	IF @@Error <> 0 GOTO ABORT
303
			
304
COMMIT TRANSACTION
305
IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE AUTH_STATUS ='A' AND REQ_ID =@p_REQ_ID))
306
BEGIN
307
	SELECT '0' as Result, '' ErrorDesc
308
	RETURN '0'
309
END
310
ELSE
311
BEGIN
312
	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
313
	RETURN '4'
314
END
315
ABORT:
316
BEGIN
317
		PRINT 'ERROR'
318
		ROLLBACK TRANSACTION
319
		SELECT '-1' as Result, '' ErrorDesc
320
		RETURN '-1'
321
End
322

    
323

    
324

    
325

    
326