Project

General

Profile

FILE 9.txt

Truong Nguyen Vu, 09/14/2020 09:40 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
		--- KIEM TRA XEM DA PHE DUYET TRUNG GIAN HAY CHUA
98
		IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <> ''))
99
		BEGIN
100
			IF(NOT EXISTS (SELECT * FROM PL_PROCESS WHERE PROCESS_ID='SIGN' AND REQ_ID =@p_REQ_ID))
101
			BEGIN
102
				ROLLBACK TRANSACTION
103
				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
104
				RETURN -1
105
			END
106
		END
107
		DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID
108
		DECLARE @CURR_PROCESS VARCHAR(20),@TOTAL_AMT DECIMAL(18,2),
109
		 @LIMIT_VALUE DECIMAL(18,0),@IS_NEXT BIT,@DMMS_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20),@BRANCH_HS VARCHAR(20),@DEP_CREATE VARCHAR(15)
110
		SET @BRANCH_HS= (SELECT TOP 1 BRANCH_ID FROM dbo.CM_BRANCH WHERE BRANCH_TYPE='HS')
111
		SET @LIMIT_VALUE=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDDV' AND LIMIT_TYPE='PYC_DVMC')
112
	
113
		SET @TOTAL_AMT=(SELECT TOTAL_AMT FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
114

    
115
		SET @CURR_PROCESS = (SELECT PROCESS_ID FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
116

    
117
		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
118

    
119
	--	SET @IS_NEXT=(SELECT dbo.FN_CHECK_LIMIT_TR_REQ(@p_REQ_ID,'GDDV'))
120

    
121
		SET @BRANCH_CREATE=(SELECT BRANCH_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
122
		SET @DEP_CREATE=(SELECT DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
123

    
124
		IF(@BRANCH_CREATE_TYPE='PGD')
125
			SET @BRANCH_CREATE=(SELECT FATHER_ID  FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
126

    
127
	IF(EXISTS(	SELECT RD.REQDT_ID FROM dbo.TR_REQUEST_DOC_DT RD 
128
		LEFT JOIN dbo.SYS_HH_GROUP_LIMIT HGL ON RD.HANGHOA_ID=HGL.HH_ID
129
		LEFT JOIN dbo.SYS_GROUP_LIMIT GL ON GL.GROUP_ID=HGL.GROUP_LIMIT_ID
130
		WHERE GL.IS_HO=1 AND RD.REQ_DOC_ID=@p_REQ_ID)  OR @BRANCH_CREATE=@BRANCH_HS)
131
		BEGIN
132
			IF(@TOTAL_AMT<=@LIMIT_VALUE AND NOT EXISTS(SELECT HC.DVCM_ID FROM dbo.TR_REQUEST_DOC_DT DT 
133
														LEFT JOIN dbo.CM_HANGHOA_DVCM HC ON HC.HH_ID=DT.HANGHOA_ID WHERE REQ_DOC_ID=@p_REQ_ID
134
						GROUP BY HC.DVCM_ID HAVING COUNT(REQDT_ID)>1))
135
			BEGIN
136
				SET @DMMS_ID= (SELECT DISTINCT HC.DVCM_ID FROM dbo.TR_REQUEST_DOC_DT DT 
137
														LEFT JOIN dbo.CM_HANGHOA_DVCM HC ON HC.HH_ID=DT.HANGHOA_ID WHERE REQ_DOC_ID=@p_REQ_ID)
138
				UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,REQ_TYPE=2 WHERE REQ_ID=@p_REQ_ID
139
			END
140
			ELSE
141
			BEGIN
142
				SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)
143
				UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID
144
			END
145
		END
146
		ELSE
147
		BEGIN
148
			IF(@TOTAL_AMT<=@LIMIT_VALUE)
149
			BEGIN
150
				SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_CREATE)
151
				UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_CREATE,DMMS_ID=@DMMS_ID,REQ_TYPE=0 WHERE REQ_ID=@p_REQ_ID
152
			END
153
			ELSE
154
			BEGIN
155
				SET @DMMS_ID= (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID=@BRANCH_HS)
156
				UPDATE dbo.TR_REQUEST_DOC SET BRANCH_DVMS=@BRANCH_HS,DMMS_ID=@DMMS_ID,REQ_TYPE=1 WHERE REQ_ID=@p_REQ_ID
157
			END
158
		END
159

    
160

    
161
		INSERT INTO dbo.PL_REQUEST_PROCESS
162
		(
163
			REQ_ID,
164
			PROCESS_ID,
165
			STATUS,
166
			ROLE_USER,
167
			BRANCH_ID,
168
			CHECKER_ID,
169
			APPROVE_DT,
170
			PARENT_PROCESS_ID,
171
			IS_LEAF,
172
			COST_ID,
173
			DVDM_ID,
174
			NOTES,
175
			IS_HAS_CHILD,
176
			DEP_ID
177
		)
178
		VALUES
179
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
180
			'APPNEW',        -- PROCESS_ID - varchar(10)
181
			'P',        -- STATUS - varchar(5)
182
			'GDDV',        -- ROLE_USER - varchar(50)
183
			@BRANCH_CREATE,        -- BRANCH_ID - varchar(15)
184
			@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
185
			GETDATE(), -- APPROVE_DT - datetime
186
			'',        -- PARENT_PROCESS_ID - varchar(10)
187
			'',        -- IS_LEAF - varchar(1)
188
			'',        -- COST_ID - varchar(15)
189
			'',        -- DVDM_ID - varchar(15)
190
			N'Trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
191
			0 ,      -- IS_HAS_CHILD - bit
192
			@DEP_CREATE
193
			)
194

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

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

    
265

    
266

    
267

    
268

    
269