Project

General

Profile

advance_appr_170123.txt

Luc Tran Van, 01/17/2023 02:32 PM

 
1

    
2
ALTER   PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Appr]
3
--Luanlt 2019/17/10 - Sửa params
4
@p_REQ_PAY_ID	varchar(15)= NULL,
5
@p_CHECKER_ID	varchar(15)	= NULL,
6
@p_AUTH_STATUS varchar(15) = NULL,
7
@p_COST_ID VARCHAR(15) = NULL,
8
@p_IS_AUTHORITY varchar(1) = NULL,
9
@p_PROCESS_NOTES nvarchar(max) = NULL
10
AS
11
-- BEGIN VALIDATE
12
	IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE MAKER_ID =@p_CHECKER_ID AND REQ_PAY_ID =@p_REQ_PAY_ID)
13
	BEGIN
14
		SELECT '-1' as Result, ''  REQ_PAY_ID, N'Bạn không được phép duyệt phiếu đề nghị tạm ứng này này! Người phê duyệt phiếu phải khác với người tạo phiếu' ErrorDesc
15
		RETURN '-1'
16
	END
17
	IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_PAY_ID)
18
	BEGIN
19
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Phê duyệt phiếu đề nghị tạm ứng thất bại! Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đã được phê duyệt trước đó' ErrorDesc
20
		RETURN '-1'
21
	END
22
	IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS ='R' AND REQ_PAY_ID =@p_REQ_PAY_ID)
23
	BEGIN
24
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đang được trả về bộ phận yêu cầu. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
25
		RETURN '-1'
26
	END
27
	IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='A' AND REQ_PAY_ID =@p_REQ_PAY_ID)
28
	BEGIN
29
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đã được kiểm soát viên phê duyệt trước đó' ErrorDesc
30
		RETURN '-1'
31
	END
32
	IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='R' AND REQ_PAY_ID =@p_REQ_PAY_ID)
33
	BEGIN
34
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đang được trả về giao dịch viên. Vui lòng kiểm tra lại thông tin' ErrorDesc
35
		RETURN '-1'
36
	END
37
	IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='S' AND REQ_PAY_ID =@p_REQ_PAY_ID)
38
	BEGIN
39
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đang được đề xuất từ chối. Vui lòng kiểm tra lại thông tin' ErrorDesc
40
		RETURN '-1'
41
	END
42
-- CHAN CUOI
43
	IF (EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS <> 'U' AND REQ_PAY_ID =@p_REQ_PAY_ID))
44
	BEGIN
45
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' chưa được gửi phê duyệt. Vui lòng đợi người tạo gửi phê duyệt trước khi phê duyệt phiếu' ErrorDesc
46
		RETURN '-1'
47
	END
48
-- END VALIDATE
49

    
50
BEGIN TRANSACTION
51
		IF(@p_IS_AUTHORITY <> 'Y')
52
		BEGIN
53
			SET @p_IS_AUTHORITY = 'N'
54
		END
55

    
56
		-- DOANPTT 261122: SET DVDM NEU DVDM KHONG DUOC TRUYEN TU GIAO DIEN
57
		IF(ISNULL(@p_COST_ID, '') = '')
58
		BEGIN
59
			SET @p_COST_ID = (SELECT DVDM_ID FROM TR_REQ_ADVANCE_PAYMENT where REQ_PAY_ID = @p_REQ_PAY_ID)
60
		END
61
		-- KHAI BAO THEM ROLE NHAN UY QUYEN
62
		DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))
63
		INSERT INTO @TABLE_ROLE SELECT (SELECT ROLENAME FROM TL_USER WHERE TLNANME =@p_CHECKER_ID)
64
		INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT ROLENAME FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) 
65
		INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE TLNAME = @p_CHECKER_ID
66
		AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL)
67
		AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL)
68
		AND TLNAME =@p_CHECKER_ID
69
	
70
		-- KHAI BAO NHUNG PHONG BAN MA 1 USER KIEM NHIEM
71
		DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR(15))
72
		INSERT INTO @DEP_AUTH SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@p_CHECKER_ID 
73
		--AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)
74
		AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL)
75
		AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL)
76
				DECLARE @BRANCH_CREATE VARCHAR(15), @p_DEP_ID VARCHAR(15) 
77
		SET @BRANCH_CREATE =(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
78
		DECLARE @DEP_CODE_NEXT VARCHAR(15)
79
		IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_CREATE)<>'HS')
80
		BEGIN
81
			SET @p_DEP_ID =(SELECT TOP 1 DEP_ID FROM CM_DEPARTMENT WHERE LEFT(DEP_CODE,5) IN (SELECT TOP 1 LEFT(DVDM_CODE,5) FROM CM_DVDM WHERE DVDM_ID =@p_COST_ID))
82
			SET @DEP_CODE_NEXT = (SELECT DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@p_DEP_ID)
83
			--PRINT 'BRANCH_TYPE CN: DEP_CODE_NEXT' +  @DEP_CODE_NEXT
84
			--PRINT 'BRANCH_TYPE CN: @p_DEP_ID' +  @p_DEP_ID
85
		END
86
		ELSE
87
		BEGIN
88
			SET @p_DEP_ID =(SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID)
89
			SET @DEP_CODE_NEXT = (SELECT DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@p_DEP_ID)
90
			--PRINT 'BRANCH_TYPE HS: DEP_CODE_NEXT' +  @DEP_CODE_NEXT
91
			--PRINT 'BRANCH_TYPE HS: @p_DEP_ID' +  @p_DEP_ID
92
		END
93
		
94
		IF (ISNULL(@p_COST_ID, '') <> '' AND (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_CREATE) = 'HS')
95
		BEGIN
96
			ROLLBACK TRANSACTION
97
			SELECT '-1' as Result, '' REQ_PAY_ID, N'Xác nhận phiếu đề nghị tạm ứng thất bại! Nhân viên ở hội sở không được phép chọn khối phê duyệt' ErrorDesc
98
			RETURN '-1'
99
		END
100
		
101
		--- KHAI BAO CHUNG
102
		   DECLARE @ROLE_ID VARCHAR(200), @BRANCH_TYPE VARCHAR(15), @TOTAL_ADVANCE DECIMAL(18,0), @TOTAL_PAYBACK DECIMAL(18,0), @BRANCH_ID VARCHAR(15),
103
			@DEP_ID VARCHAR(15), @COSTCENTER_ID VARCHAR(15)= NULL, @BRANCH_RQ VARCHAR(15) = NULL,@DEP_ID_RQ VARCHAR(15), @BRANCH_LOGIN VARCHAR(15),@LIMIT_ONE_OF DECIMAL(18,2)
104
			DECLARE @LIMIT_AMT DECIMAL(18,0), @REQ_AMT DECIMAL(18,2) =0, @TONG_PGD DECIMAL(18,0), @TONG_PGD_HOAN DECIMAL(18,0)
105
			SET @REQ_AMT = (SELECT REQ_AMT *ISNULL(RATE,1) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
106
			--SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_CHECKER_ID)
107
			SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_CHECKER_ID)
108
			--SET  @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)
109
			IF(@ROLE_ID IS NOT NULL AND @ROLE_ID <>'' AND @ROLE_ID IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC'))
110
			BEGIN
111
				PRINT @ROLE_ID
112
			END
113
			ELSE
114
			BEGIN
115
				IF	(	(SELECT COUNT(*) 
116
						FROM TL_SYS_ROLE_MAPPING 
117
						WHERE TLNAME =(SELECT TOP 1 TLNANME FROM TL_USER WHERE TLNANME=@p_CHECKER_ID)
118
						AND ROLE_NEW IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC')) > 0
119
					)
120
				BEGIN
121
					SET @ROLE_ID =	(	SELECT TOP 1 ROLE_NEW 
122
										FROM TL_SYS_ROLE_MAPPING 
123
										WHERE TLNAME =(SELECT TOP 1 TLNANME FROM TL_USER WHERE TLNANME=@p_CHECKER_ID)
124
										AND ROLE_NEW IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC')
125
									)
126
				END
127

    
128
				
129
			END
130
			SET @BRANCH_ID = (SELECT TLSUBBRID FROM TL_USER WHERE TLNANME =@p_CHECKER_ID)
131
			SET @BRANCH_RQ =(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
132
			SET @DEP_ID_RQ =(SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
133
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ)
134
			DECLARE @tmp table(BRANCH_ID varchar(15))
135
			INSERT into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_ID)
136
			DECLARE @tmp_CN table(BRANCH_ID varchar(15))
137
			IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ)='CN')
138
			BEGIN
139
				--INSERT into @tmp_CN  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@BRANCH_RQ)
140
				INSERT into @tmp_CN  VALUES (@BRANCH_RQ)
141
			END
142
			ELSE IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ)='PGD')
143
			BEGIN
144
				--DECLARE @FATHER_ID VARCHAR(15) = NULL
145
				--SET @FATHER_ID =(SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_RQ)
146
				--INSERT into @tmp_CN  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@FATHER_ID)
147
				INSERT into @tmp_CN  VALUES (@BRANCH_RQ)
148
			END
149
			--DECLARE @DEP_ID_LG VARCHAR(15) = NULL	
150
			--SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_CHECKER_ID)
151
			DECLARE @TMP_DVDM TABLE(DVDM_ID VARCHAR(15))
152
			INSERT INTO @TMP_DVDM
153
			SELECT A.DVDM_ID--, A.COST_CODE, A.COST_NAME, B.DEP_ID --, C.DEP_CODE, C.DEP_NAME
154
			FROM PL_COSTCENTER A
155
			LEFT JOIN PL_COSTCENTER_DT B ON A.COST_ID = B.COST_ID
156
			WHERE B.DEP_ID = @DEP_ID_RQ
157
			GROUP BY A.DVDM_ID
158
			-- KHAI BAO BRANCH CUA USER DUYET
159
			SET @BRANCH_LOGIN = (SELECT TLSUBBRID FROM TL_USER WHERE TLNANME =@p_CHECKER_ID)
160
			DECLARE @LIMIT_REMAIN DECIMAL(18,0)
161
		--CAP NHAT CODE TRONG QUA TRINH TEST UAT
162
		INSERT INTO @TABLE_ROLE SELECT @ROLE_ID
163
-- NEU LA TAM UNG NOI BO
164
		IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND REQ_TYPE='I'))
165
		BEGIN
166
			IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@BRANCH_CREATE) ='HS')
167
			BEGIN
168
				IF(EXISTS(SELECT * FROM @TABLE_ROLE WHERE ISNULL(ROLE_AUTH,'') IN ('GDDV','TP') AND (SELECT ISNULL(PROCESS,'') FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) =''))
169
				BEGIN
170
					-- doanptt them note khi xac nhan
171
					IF(@p_PROCESS_NOTES IS NULL OR @p_PROCESS_NOTES = '')
172
					BEGIN
173
						SET @p_PROCESS_NOTES = N'Trưởng đơn vị xác nhận phiếu';
174
					END
175

    
176
					UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS='0', NOTES ='' WHERE REQ_PAY_ID =@p_REQ_PAY_ID
177
					INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,'0',@p_CHECKER_ID, GETDATE(), @p_PROCESS_NOTES,N'Xác nhận phiếu tạm ứng')
178
					COMMIT TRANSACTION
179
					SELECT '1' as Result, @p_REQ_PAY_ID  REQ_PAY_ID ,N'' ErrorDesc
180
					RETURN '1'
181
				END
182
			END
183
			IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND REQ_ID = @p_REQ_PAY_ID))
184
			BEGIN
185
					ROLLBACK TRANSACTION
186
					SELECT '-1' as Result, ''  REQ_PAY_ID, N'Bạn không có quyền phê duyệt phiếu tạm ứng nội bộ. Vui lòng chọn giao dịch khác để duyệt' ErrorDesc
187
					RETURN '-1'
188
			END
189
			IF NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_PAY_ID AND ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND STATUS = 'C')
190
			BEGIN
191
				ROLLBACK TRANSACTION
192
				SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng đã được bạn phê duyệt xong trước đó! Vui lòng đợi cấp tiếp theo phê duyệt tạm ứng' ErrorDesc
193
				RETURN '-1'
194
			END
195
			
196
			--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE ROLE_USER=@ROLE_ID AND REQ_ID = @p_REQ_PAY_ID AND BRANCH_ID= @BRANCH_ID AND STATUS ='P'))
197
			--BEGIN
198
			--		ROLLBACK TRANSACTION
199
			--		SELECT '-1' as Result, ''  REQ_PAY_ID, N'Bạn đã thực hiện xác nhận phiếu tạm ứng trước đó' ErrorDesc
200
			--		RETURN '-1'
201
			--END
202
			-- KIEM TRA AUTH_STATUS TRUYEN XUONG LA GI, A: DUYET, C: CONFIRM  
203
	-- KIEM TRA HAN MUC CON LAI CUA USER VA THONG BAO CHO NGUOI DUYET
204
			IF(@p_AUTH_STATUS='U') -- KIEM TRA HAN MUC CON LAI CUA USER VA THONG BAO CHO NGUOI DUYET
205
			BEGIN
206
			-- KIEM TRA NEU ROLE CHUA CO HAN MUC PHE DUYET THI PHAI THONG BAO
207
				IF(NOT EXISTS(SELECT * FROM TL_SYSROLE_LIMIT WHERE ROLE_ID =@ROLE_ID AND LIMIT_TYPE ='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN))
208
				BEGIN
209
						ROLLBACK TRANSACTION
210
						SELECT '-1' as Result, ''  REQ_PAY_ID, N'Bạn chưa được cấu hình hạn mức phê duyệt tạm ứng nội bộ. Vui lòng thông báo Admin cấu hình hạn mức phê duyệt' ErrorDesc
211
						RETURN '-1'
212
				END
213
			-- BAT DAU DUYET THEO NGAN SACH			
214
			--- LAY HAN MUC CUA USER
215
				SET @LIMIT_AMT =(SELECT LIMIT_VALUE FROM TL_SYSROLE_LIMIT WHERE ROLE_ID=@ROLE_ID AND  LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN)
216

    
217
				--print @LIMIT_AMT
218
				SET @LIMIT_ONE_OF =(SELECT LIMIT_PERCENT FROM TL_SYSROLE_LIMIT WHERE ROLE_ID=@ROLE_ID AND  LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN)
219
				IF(@ROLE_ID ='GDK' AND ((SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) ='DEP000000000011'))
220
				BEGIN
221
					SET @LIMIT_AMT =6000000000 -- TANG LEN 6 TY
222
					SET @LIMIT_ONE_OF =1000000000
223
				
224
				END
225
				IF(@ROLE_ID ='PTGD' AND ((SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) ='DEP000000000011'))
226
				BEGIN
227
						SET @LIMIT_AMT =4000000000 --- TANG LEN 4 TY
228
						SET @LIMIT_ONE_OF =500000000
229
						IF(EXISTS(SELECT * FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD ='PTGD' AND ROLE_NEW ='TGD' 
230
						AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='')))
231
						BEGIN
232
							SET @LIMIT_AMT =(SELECT LIMIT_VALUE FROM TL_SYSROLE_LIMIT WHERE ROLE_ID='TGD' AND  LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN)
233
							SET @LIMIT_ONE_OF =(SELECT LIMIT_PERCENT FROM TL_SYSROLE_LIMIT WHERE ROLE_ID='TGD' AND  LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN)
234
							IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE ROLE_USER ='TGD' AND REQ_ID =@p_REQ_PAY_ID))
235
							BEGIN
236
								UPDATE PL_REQUEST_PROCESS SET STATUS ='P' WHERE ROLE_USER ='PTGD' AND REQ_ID =@p_REQ_PAY_ID
237
								UPDATE PL_REQUEST_PROCESS SET STATUS ='C',ROLE_USER ='PTGD' WHERE ROLE_USER ='TGD' AND REQ_ID =@p_REQ_PAY_ID
238
								SET @ROLE_ID ='TGD'
239
							END
240
						END
241
				
242
				END
243
			-- NEU LA HOI SO THI LAY TONG SO TIEN TAM UNG CUA CAC PHONG BAN CHUNG VOI KHOI CUA PHIEU DANG DUOC DUYET
244
				SET @TONG_PGD =(SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE BRANCH_ID = @BRANCH_RQ
245
					 AND REQ_TYPE ='I' AND AUTH_STATUS ='A') + @REQ_AMT
246
				SET @TONG_PGD_HOAN =(
247
						--SELECT (SUM(B.AMT_USE) - SUM(B.AMT_ADD) + SUM (B.AMT_REVERT))
248
						--FROM TR_REQ_PAYMENT_DT B
249
						--INNER JOIN TR_REQ_PAYMENT A ON B.PAY_ID = A.REQ_PAY_ID
250
						--INNER JOIN TR_REQ_ADVANCE_PAYMENT C ON C.REQ_PAY_ID = B.PAY_ADV_ID
251
						SELECT SUM (ISNULL(A.PAY_AMT,0)) FROM TR_REQ_ADVANCE_PAYMENT A
252
						WHERE A.BRANCH_ID = @BRANCH_RQ
253
						AND A.AUTH_STATUS_KT ='A' AND A.REQ_TYPE='I') 
254
				IF(@BRANCH_TYPE='HS')
255
				BEGIN
256
					SET @TOTAL_ADVANCE =ISNULL((SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE
257
					 DEP_ID IN
258
					 (SELECT A.DEP_ID FROM PL_COSTCENTER_DT A
259
						LEFT JOIN PL_COSTCENTER B ON A.COST_ID = B.COST_ID
260
						WHERE B.DVDM_ID IN (SELECT DVDM_ID FROM @TMP_DVDM) AND A.BRANCH_ID =@BRANCH_RQ)
261
					 AND REQ_TYPE ='I' AND AUTH_STATUS ='A'),0)
262
					SET @TOTAL_PAYBACK =
263
					ISNULL(
264
					(
265
						SELECT (SUM(ISNULL(C.PAY_AMT,0)))
266
						FROM TR_REQ_ADVANCE_PAYMENT C
267
						WHERE C.DEP_ID IN 
268
						(SELECT A.DEP_ID FROM PL_COSTCENTER_DT A
269
						LEFT JOIN PL_COSTCENTER B ON A.COST_ID = B.COST_ID
270
						WHERE B.DVDM_ID IN (SELECT DVDM_ID FROM @TMP_DVDM) AND A.BRANCH_ID =@BRANCH_RQ)
271
						AND C.AUTH_STATUS_KT ='A' AND C.REQ_TYPE='I'
272
					),0)
273
				END
274
				--- BO SUNG NEU RIENG PHONG THUONG HIEU VA TRUYEN THONG --- 2021824
275
				IF(@BRANCH_TYPE='HS' AND @DEP_CODE_NEXT ='0690405' )
276
				BEGIN
277
					SET @TOTAL_ADVANCE =ISNULL((SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE
278
					 DEP_ID IN
279
					 (SELECT DEP_ID FROM CM_DEPARTMENT WHERE DEP_CODE ='0690405' AND BRANCH_ID =@BRANCH_RQ)
280
					 AND REQ_TYPE ='I' AND AUTH_STATUS ='A'),0)
281
					SET @TOTAL_PAYBACK =
282
					ISNULL(
283
					(
284
						SELECT (SUM(ISNULL(C.PAY_AMT,0)))
285
						FROM TR_REQ_ADVANCE_PAYMENT C
286
						WHERE C.DEP_ID IN 
287
						(SELECT DEP_ID FROM CM_DEPARTMENT WHERE DEP_CODE ='0690405' AND BRANCH_ID =@BRANCH_RQ)
288
						AND C.AUTH_STATUS_KT ='A' AND C.REQ_TYPE='I'
289
					),0)
290
				PRINT @TOTAL_ADVANCE
291
				PRINT @TOTAL_PAYBACK
292
				END
293
				--- END
294
				-- NEU PHIEU DUOC TAO KHAC VOI HOI SO THI TIEN HANH TINH TONG SO TIEN TAM UNG CUA CN VA PHONG GIAO DICH TRUC THUOC
295
				ELSE IF(@BRANCH_TYPE <>'HS')
296
				BEGIN
297
					SET @TOTAL_ADVANCE =(SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp_CN)
298
					 AND REQ_TYPE ='I' AND AUTH_STATUS='A')
299
					SET @TOTAL_PAYBACK =
300
					(
301
						SELECT (SUM(ISNULL(B.PAY_AMT,0)))
302
						FROM TR_REQ_ADVANCE_PAYMENT B
303
						WHERE B.BRANCH_ID IN 
304
						(SELECT BRANCH_ID FROM @tmp_CN)
305
						AND B.AUTH_STATUS_KT ='A' AND B.REQ_TYPE='I'
306
					)
307
				END
308
				
309
				SET @LIMIT_REMAIN =ISNULL(@TOTAL_ADVANCE,0) - ISNULL(@TOTAL_PAYBACK,0)
310
				PRINT @LIMIT_REMAIN
311
				-- KIEM TRA NEU LA CHU TICH HDQT THI PHE DUYET LUON, KHONG CAN XET HAN MUC GI
312
				IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME=@p_CHECKER_ID AND RoleName ='HDQT'))
313
				BEGIN
314
					ROLLBACK TRANSACTION
315
					SELECT '-4' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, 
316
					--N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN')
317
					--+ CHAR(10) +
318
					--N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
319
					--+ CHAR(10) + CHAR(13) +
320
					N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN')
321
					+ CHAR(10) + 
322
					N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc
323
					RETURN '-4'
324
				END
325
				IF(@LIMIT_AMT <(SELECT REQ_AMT * ISNULL(RATE,1) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) + @LIMIT_REMAIN)
326
				BEGIN
327
					ROLLBACK TRANSACTION
328
					SELECT '-2' as Result, @p_REQ_PAY_ID  REQ_PAY_ID,
329
					N'Tổng hạn mức phê duyệt là: '+ FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') + CHAR(10)+
330
					N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
331
					+ CHAR(10) + CHAR(13)+
332
					N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN +@REQ_AMT ,'#,#', 'vi-VN') 
333
					+ CHAR(10) +
334
					N'Số tiền tạm ứng đã vượt mức phê duyệt là: '+ FORMAT((@LIMIT_REMAIN +@REQ_AMT) -@LIMIT_AMT,'#,#', 'vi-VN') 
335
					+ CHAR(10) +
336
					N'Bạn muốn chuyển giao dịch lên cấp cao hơn để duyệt hay tiếp tục chờ duyệt' ErrorDesc
337
					RETURN '-2'
338
				END
339
				--- NEU DU HAN MUC THI THONG BAO DE NGUOI DUYET CAN NHAC CO NEN DUYET PHIEU HAY KHONG
340
				IF(@LIMIT_AMT >=(SELECT REQ_AMT * ISNULL(RATE,1) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) +@LIMIT_REMAIN)
341
				BEGIN
342
					IF(@REQ_AMT >@LIMIT_ONE_OF)
343
					BEGIN
344
						ROLLBACK TRANSACTION
345
						SELECT '-2' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, 
346
						N'Tổng hạn mức phê duyệt là: '+ FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') 
347
						+ CHAR(10)+
348
						N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
349
						+ CHAR(10) + CHAR(13) +
350
						N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN +@REQ_AMT ,'#,#', 'vi-VN') 
351
						+ CHAR(10) + 
352
						N'Số tiền tạm ứng đã vượt mức so với số tiền của một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
353
						+ CHAR(10) + 
354
						N'Bạn muốn chuyển giao dịch lên cấp cao hơn để duyệt hay tiếp tục chờ duyệt' ErrorDesc
355
						RETURN '-2'
356
					END
357
					ELSE
358
					BEGIN
359
						-- KIEM TRA NEU LA PGD THI CANH BAO
360
						IF(@BRANCH_TYPE ='HS')
361
						BEGIN
362
							IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME=@p_CHECKER_ID AND RoleName NOT IN('TGD','HQDT')))
363
							BEGIN
364
								ROLLBACK TRANSACTION
365
								SELECT '-4' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, 
366
								--N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN')
367
								--+ CHAR(10) + CHAR(13) +  
368
								N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
369
								+ CHAR(10) + 
370
								N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN')
371
								+ CHAR(10) + 
372
								N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc
373
								RETURN '-4'
374
							END
375
							ELSE
376
							BEGIN
377
								ROLLBACK TRANSACTION
378
								SELECT '-4' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, 
379
								--N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN')
380
								--+ CHAR(10) + CHAR(13) +  
381
								--N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
382
								--+ CHAR(10) + 
383
								N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN')
384
								+ CHAR(10) + 
385
								N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc
386
								RETURN '-4'
387
							END
388
						END
389
						ELSE IF(@BRANCH_TYPE ='CN')
390
						BEGIN
391
							---LUCTV 24.11.2022 NẾU PHIẾU TỪ CN GỬI LÊN THÌ CHỈ CẦN XÉT SỐ TIỀN DUYỆT 1 LẦN CÓ ĐỦ HẠN MỨC KHÔNG
392
							IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME=@p_CHECKER_ID AND RoleName  IN('GDK','PTGD','TGD')))
393
							BEGIN
394
								IF(@REQ_AMT >@LIMIT_ONE_OF)
395
								BEGIN
396
									ROLLBACK TRANSACTION
397
									SELECT '-2' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, 
398
									N'Tổng hạn mức phê duyệt là: '+ FORMAT(@LIMIT_AMT,'#,#', 'vi-VN') 
399
									+ CHAR(10)+
400
									N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
401
									+ CHAR(10) + CHAR(13) +
402
									N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN +@REQ_AMT ,'#,#', 'vi-VN') 
403
									+ CHAR(10) + 
404
									N'Số tiền tạm ứng đã vượt mức so với số tiền của một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
405
									+ CHAR(10) + 
406
									N'Bạn muốn chuyển giao dịch lên cấp cao hơn để duyệt hay tiếp tục chờ duyệt' ErrorDesc
407
									RETURN '-2'
408
								END
409
								ELSE
410
								BEGIN
411
									ROLLBACK TRANSACTION
412
									SELECT '-4' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, 
413
									--N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN')
414
									--+ CHAR(10) +
415
									N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
416
									+ CHAR(10) + CHAR(13) +
417
									N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN')
418
									+ CHAR(10) + 
419
									N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc
420
									RETURN '-4'
421
								END
422
							END--- END LUCTV
423
							ELSE IF(ISNULL(@TONG_PGD,0) -ISNULL(@TONG_PGD_HOAN,0) > 40000000)
424
							BEGIN
425
								ROLLBACK TRANSACTION
426
								SELECT '-4' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, 
427
								N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN')
428
								+ CHAR(10) + 
429
								N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
430
								+ CHAR(10) + CHAR(13) +
431
								N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN')
432
								+ CHAR(10) +
433
								N'Số tiền tạm ứng đang vượt quá số tổng hạn mức tạm ứng của 1 CN: '+ FORMAT(40000000,'#,#', 'vi-VN') +N'. Số tiền vượt là: '+ FORMAT(ISNULL(@TONG_PGD,0) -ISNULL(@TONG_PGD_HOAN,0)-40000000,'#,#', 'vi-VN')
434
								+ CHAR(10) + 
435
								N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc
436
								RETURN '-4'
437
							END
438
							ELSE
439
							BEGIN
440
								IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME=@p_CHECKER_ID AND RoleName NOT IN('TGD','HQDT')))
441
								BEGIN
442
									ROLLBACK TRANSACTION
443
									SELECT '-4' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, 
444
									--N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN')
445
									--+ CHAR(10) +
446
									N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
447
									+ CHAR(10) + CHAR(13) +
448
									N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN')
449
									+ CHAR(10) + 
450
									N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc
451
									RETURN '-4'
452
								END
453
								ELSE
454
								BEGIN
455
									ROLLBACK TRANSACTION
456
									SELECT '-4' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, 
457
									--N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN')
458
									--+ CHAR(10) +
459
									--N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
460
									--+ CHAR(10) + CHAR(13) +
461
									N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN')
462
									+ CHAR(10) + 
463
									N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc
464
									RETURN '-4'
465
								END
466
							END
467
						END
468
						ELSE IF(@BRANCH_TYPE ='PGD')
469
						BEGIN
470
							IF(ISNULL(@TONG_PGD,0) -ISNULL(@TONG_PGD_HOAN,0) > 10000000)
471
							BEGIN
472
								ROLLBACK TRANSACTION
473
								SELECT '-4' as Result, @p_REQ_PAY_ID  REQ_PAY_ID,
474
								N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN')+ CHAR(10) +
475
								N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
476
								+ CHAR(10) + CHAR(13) + 
477
								N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN')
478
								+ CHAR(10) + 
479
								N'Số tiền tạm ứng đang vượt quá số tổng hạn mức tạm ứng của 1 PGD: '+ FORMAT(10000000,'#,#', 'vi-VN') +N'. Số tiền vượt là: '+ FORMAT(ISNULL(@TONG_PGD,0) -ISNULL(@TONG_PGD_HOAN,0)-10000000,'#,#', 'vi-VN')
480
								+ CHAR(10) + 
481
								N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc
482
								RETURN '-4'
483
							END
484
							ELSE
485
							BEGIN
486
								ROLLBACK TRANSACTION
487
								SELECT '-4' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, 
488
								N'Tổng hạn mức phê duyệt của bạn là: '+FORMAT(@LIMIT_AMT,'#,#', 'vi-VN')
489
								+ CHAR(10) + 
490
								N'Hạn mức trên một lần phê duyệt là: '+ FORMAT(@LIMIT_ONE_OF,'#,#', 'vi-VN') 
491
								+ CHAR(10) + CHAR(13) +
492
								N'Số dư tạm ứng lũy kế của đơn vị tính tới thời điểm này là : '+ FORMAT(@LIMIT_REMAIN+@REQ_AMT,'#,#', 'vi-VN')
493
								+ CHAR(10) + 
494
								N'Bạn có muốn tiếp tục duyệt hay không' ErrorDesc
495
								RETURN '-4'
496
							END
497
						END
498
					END
499
				END
500
			-- NEU THOA MAN CAC DIEU KIEN SE TIEN HANH DUYET
501
			END -- END DU HAN MUC DUYET
502
	-- THOA MAN CAC DIEU KIEN SE TIEN HANH DUYET
503
			ELSE IF(@p_AUTH_STATUS='A')
504
			BEGIN
505
				DECLARE @l_REQ_AMT DECIMAL(18,0) = (SELECT REQ_AMT*ISNULL(RATE,1) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID)
506
				SET @LIMIT_AMT =(SELECT LIMIT_VALUE FROM TL_SYSROLE_LIMIT WHERE ROLE_ID=@ROLE_ID AND  LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN)
507
				--
508
				SET @LIMIT_ONE_OF =(SELECT LIMIT_PERCENT FROM TL_SYSROLE_LIMIT WHERE ROLE_ID=@ROLE_ID AND  LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN)
509
				IF(@ROLE_ID ='GDK' AND ((SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) ='DEP000000000011'))
510
				BEGIN
511
					SET @LIMIT_AMT =6000000000 -- TANG LEN 6 TY ROLE HAN MUC GDK
512
					SET @LIMIT_ONE_OF =1000000000 --- TANG LEN 1 TY 1 LAN VOI GDK HO TRO
513
				
514
				END
515
				IF(@ROLE_ID ='PTGD' AND ((SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) ='DEP000000000011'))
516
				BEGIN
517
					SET @LIMIT_AMT =4000000000 --- TANG LEN 4 TY
518
					SET @LIMIT_ONE_OF =500000000
519
					IF(EXISTS(SELECT * FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD ='PTGD' AND ROLE_NEW ='TGD' 
520
					AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='')))
521
					BEGIN
522
						SET @LIMIT_AMT =(SELECT LIMIT_VALUE FROM TL_SYSROLE_LIMIT WHERE ROLE_ID='TGD' AND  LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN)
523
						SET @LIMIT_ONE_OF =(SELECT LIMIT_PERCENT FROM TL_SYSROLE_LIMIT WHERE ROLE_ID='TGD' AND  LIMIT_TYPE='ADV_PAY' AND BRANCH_ID =@BRANCH_LOGIN)
524
						IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE ROLE_USER ='TGD' AND REQ_ID =@p_REQ_PAY_ID))
525
						BEGIN
526
							UPDATE PL_REQUEST_PROCESS SET STATUS ='P' WHERE ROLE_USER ='PTGD' AND REQ_ID =@p_REQ_PAY_ID
527
							UPDATE PL_REQUEST_PROCESS SET STATUS ='C',ROLE_USER ='PTGD' WHERE ROLE_USER ='TGD' AND REQ_ID =@p_REQ_PAY_ID
528
							SET @ROLE_ID ='TGD'
529
						END
530
					END
531
				END
532
				UPDATE TR_REQ_ADVANCE_PAYMENT
533
				SET    AUTH_STATUS='A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT =  GETDATE(), AUTH_STATUS_KT='U', IS_AUTHORITY = @p_IS_AUTHORITY
534
				WHERE  REQ_PAY_ID = @p_REQ_PAY_ID
535
				--- CAP NHAT LAI TINH TRANG TRONG REQUEST_PROCESS
536
				DECLARE @PROCESS_CURR VARCHAR(5)
537
				SET @PROCESS_CURR =(SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID AND ROLE_USER =@ROLE_ID)
538
				IF(ISNULL(@p_PROCESS_NOTES,'') <> '')
539
				BEGIN
540
					INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,@PROCESS_CURR,@p_CHECKER_ID, GETDATE(),(SELECT ROLE_DESC + N': ' + ISNULL(@p_PROCESS_NOTES,'')  FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID),N'Các cấp phê duyệt theo hạn mức')
541
				END
542
				ELSE
543
				BEGIN
544
					INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,@PROCESS_CURR,@p_CHECKER_ID, GETDATE(),(SELECT ROLE_DESC + N' duyệt'  FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID),N'Các cấp phê duyệt theo hạn mức')
545
				END
546
				--- CAP NHAT PROCESS CUA PHIEU DE NGHI TAM UNG LA DA DUYET
547
				UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS=@PROCESS_CURR WHERE REQ_PAY_ID=@p_REQ_PAY_ID
548
				--
549
				UPDATE PL_REQUEST_PROCESS SET STATUS ='A', NOTES = (SELECT ROLE_DESC + N' duyệt' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID) WHERE  ROLE_USER =@ROLE_ID AND REQ_ID = @p_REQ_PAY_ID
550
			-- NEU LA HOI SO THI LAY TONG SO TIEN TAM UNG CUA CAC PHONG BAN CHUNG VOI KHOI CUA PHIEU DANG DUOC DUYET
551
			SET @TONG_PGD =(SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE BRANCH_ID = @BRANCH_RQ
552
					 AND REQ_TYPE ='I' AND AUTH_STATUS ='A') + @REQ_AMT
553
			SET @TONG_PGD_HOAN =(
554
						--SELECT (SUM(B.AMT_USE) - SUM(B.AMT_ADD) + SUM (B.AMT_REVERT))
555
						--FROM TR_REQ_PAYMENT_DT B
556
						--INNER JOIN TR_REQ_PAYMENT A ON B.PAY_ID = A.REQ_PAY_ID
557
						--INNER JOIN TR_REQ_ADVANCE_PAYMENT C ON C.REQ_PAY_ID = B.PAY_ADV_ID
558
						SELECT SUM (ISNULL(A.PAY_AMT,0)) FROM TR_REQ_ADVANCE_PAYMENT A
559
						WHERE A.BRANCH_ID = @BRANCH_RQ
560
						AND A.AUTH_STATUS_KT ='A' AND A.REQ_TYPE='I') 
561
				IF(@BRANCH_TYPE='HS')
562
				BEGIN
563
					SET @TOTAL_ADVANCE =ISNULL((SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE
564
					 DEP_ID IN
565
					 (SELECT A.DEP_ID FROM PL_COSTCENTER_DT A
566
						LEFT JOIN PL_COSTCENTER B ON A.COST_ID = B.COST_ID
567
						WHERE B.DVDM_ID IN (SELECT DVDM_ID FROM @TMP_DVDM) AND A.BRANCH_ID =@BRANCH_RQ)
568
					 AND REQ_TYPE ='I' AND AUTH_STATUS ='A'),0)
569
					SET @TOTAL_PAYBACK =
570
					ISNULL(
571
					(
572
						SELECT (SUM(ISNULL(C.PAY_AMT,0)))
573
						FROM TR_REQ_ADVANCE_PAYMENT C
574
						WHERE C.DEP_ID IN 
575
						(SELECT A.DEP_ID FROM PL_COSTCENTER_DT A
576
						LEFT JOIN PL_COSTCENTER B ON A.COST_ID = B.COST_ID
577
						WHERE B.DVDM_ID IN (SELECT DVDM_ID FROM @TMP_DVDM) AND A.BRANCH_ID =@BRANCH_ID)
578
						AND C.AUTH_STATUS_KT ='A' AND C.REQ_TYPE='I'
579
					),0)
580
				END
581
				--- BO SUNG NEU RIENG PHONG THUONG HIEU VA TRUYEN THONG --- 2021824
582
				IF(@BRANCH_TYPE='HS' AND @DEP_CODE_NEXT ='0690405' )
583
				BEGIN
584
					SET @TOTAL_ADVANCE =ISNULL((SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE
585
					 DEP_ID IN
586
					 (SELECT DEP_ID FROM CM_DEPARTMENT WHERE DEP_CODE ='0690405' AND BRANCH_ID =@BRANCH_RQ)
587
					 AND REQ_TYPE ='I' AND AUTH_STATUS ='A'),0)
588
					SET @TOTAL_PAYBACK =
589
					ISNULL(
590
					(
591
						SELECT (SUM(ISNULL(C.PAY_AMT,0)))
592
						FROM TR_REQ_ADVANCE_PAYMENT C
593
						WHERE C.DEP_ID IN 
594
						(SELECT DEP_ID FROM CM_DEPARTMENT WHERE DEP_CODE ='0690405' AND BRANCH_ID =@BRANCH_RQ)
595
						AND C.AUTH_STATUS_KT ='A' AND C.REQ_TYPE='I'
596
					),0)
597
				END
598
				--- END
599
				-- NEU PHIEU DUOC TAO KHAC VOI HOI SO THI TIEN HANH TINH TONG SO TIEN TAM UNG CUA CN VA PHONG GIAO DICH TRUC THUOC
600
				-- NEU PHIEU DUOC TAO KHAC VOI HOI SO THI TIEN HANH TINH TONG SO TIEN TAM UNG CUA CN VA PHONG GIAO DICH TRUC THUOC
601
				ELSE IF(@BRANCH_TYPE <>'HS')
602
				BEGIN
603
					SET @TOTAL_ADVANCE =(SELECT SUM(REQ_AMT*ISNULL(RATE,1)) FROM TR_REQ_ADVANCE_PAYMENT WHERE BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp_CN)
604
					 AND REQ_TYPE ='I' AND AUTH_STATUS='A')
605
					SET @TOTAL_PAYBACK =
606
					(
607
						SELECT (SUM(ISNULL(B.PAY_AMT,0)))
608
						FROM TR_REQ_ADVANCE_PAYMENT B
609
						WHERE B.BRANCH_ID IN 
610
						(SELECT BRANCH_ID FROM @tmp_CN)
611
						AND B.AUTH_STATUS_KT ='A' AND B.REQ_TYPE='I'
612
					)
613
				END
614
				SET @LIMIT_REMAIN =ISNULL(@TOTAL_ADVANCE,0) - ISNULL(@TOTAL_PAYBACK,0)
615
				--- INSERT VAO BANG LOG
616
				INSERT INTO TR_REQ_ADVANCE_LIMIT_LOG  VALUES (@p_REQ_PAY_ID,@LIMIT_REMAIN,GETDATE())
617
				----
618
			END
619
	-- NEW KHONG DU HAN MUC THI BAT DAU XAC NHAN VA DUYET THEO HAN MUC
620
			ELSE -- NEW KHONG DU HAN MUC THI BAT DAU XAC NHAN VA DUYET THEO HAN MUC
621
			BEGIN
622
				DECLARE @t_REQ_AMT DECIMAL(18,0) = (SELECT REQ_AMT*ISNULL(RATE,1) FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID)
623
		
624
				--- NEU GIAM DOC KHOI VAN CHUA DU HAN MUC THI GIAM DOC KHOI XAC NHAN VÀ TIEP TUC BUOC TIEP THEO LA PHO TONG GIAM DOC
625
				DECLARE @MAX_STEP INT, @NEXT_ROLE VARCHAR(20), @MESSAGE NVARCHAR(100), @PROCESS_ID_NEXT VARCHAR(5), @PROCESS_PARENT VARCHAR(5),
626
				@BRANCH_ID_PROC VARCHAR(15), @NEX_ROLE_STEP VARCHAR(25), @CURRENT_PROCESS VARCHAR(15)
627
				SET @CURRENT_PROCESS =(SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID AND STATUS = 'C' AND ROLE_USER IN (SELECT ROLE_AUTH FROM @TABLE_ROLE))
628
				SET @NEX_ROLE_STEP = (SELECT TOP 1 ROLE_USER FROM PL_REQUEST_PROCESS WHERE PARENT_PROCESS_ID =@CURRENT_PROCESS AND REQ_ID = @p_REQ_PAY_ID )
629
				--SET @MAX_STEP = CONVERT(INT,(SELECT MAX(PROCESS_ID) FROM TR_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_PAY_ID))
630
				SET @PROCESS_ID_NEXT = CONVERT(VARCHAR(5),@CURRENT_PROCESS+1)
631
				--SET @PROCESS_PARENT = CONVERT(VARCHAR(5),@MAX_STEP)
632
				DECLARE @TMP_ROLE TABLE (ROLE_ID VARCHAR(15), BRANCH_ID VARCHAR(15), LIMIT_VALUE DECIMAL(18,0),LIMIT_TYPE VARCHAR(15))
633
				--IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06908%' AND DEP_ID =@p_DEP_ID)
634

    
635
			-- KHOI TAI CHINH VA KHOI HO TRO
636
				IF(LEFT(@DEP_CODE_NEXT,5) ='06908' OR @DEP_CODE_NEXT ='0690605' OR @DEP_CODE_NEXT LIKE '06906%')
637
				BEGIN
638
					--LUCTV 29032021: KHOI TAI CHINH SE KHONG CO PTGD NUA, CHI CO GDK TAI CHINH
639
					INSERT INTO @TMP_ROLE  SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'PTGD'
640
					--INSERT INTO @TMP_ROLE  SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK'
641
				END
642
			-- PHONG TRUYEN THONG THUONG HIEU
643
				ELSE IF( @DEP_CODE_NEXT ='0690405')
644
				BEGIN
645
					--LUCTV 29032021: KHOI TAI CHINH SE KHONG CO PTGD NUA, CHI CO GDK TAI CHINH
646
					INSERT INTO @TMP_ROLE  SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <> 'GDK'
647
					--INSERT INTO @TMP_ROLE  SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK'
648
				END
649
			-- KHOI VAN HANH
650
				--ELSE IF EXISTS(SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE LIKE '%06910%' AND DEP_ID =@p_DEP_ID)
651
				ELSE IF(LEFT(@DEP_CODE_NEXT,5) ='06910')
652
				BEGIN
653
					INSERT INTO @TMP_ROLE  SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'GDK'
654
				END
655
			-- 
656
				ELSE IF((LEFT(@DEP_CODE_NEXT,5) ='06900') OR (LEFT(@DEP_CODE_NEXT,5)) ='06901' OR (LEFT(@DEP_CODE_NEXT,5))='06904'
657
				OR (LEFT(@DEP_CODE_NEXT,5))='06902' OR (LEFT(@DEP_CODE_NEXT,5))='06903'  OR (LEFT(@DEP_CODE_NEXT,5))='06920' OR (LEFT(@DEP_CODE_NEXT,3))='799'  OR (LEFT(@DEP_CODE_NEXT,3))='899')
658
				BEGIN
659
					INSERT INTO @TMP_ROLE  SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID NOT IN ('GDK','PTGD')
660
				END
661
			-- 
662
				ELSE IF((LEFT(@DEP_CODE_NEXT,5) ='06907') OR (LEFT(@DEP_CODE_NEXT,5)) ='06909' OR (LEFT(@DEP_CODE_NEXT,5))='06911'
663
				OR (LEFT(@DEP_CODE_NEXT,5))='06922' OR (LEFT(@DEP_CODE_NEXT,5))='06921'  OR (LEFT(@DEP_CODE_NEXT,5))='06920')
664
				BEGIN
665
					INSERT INTO @TMP_ROLE  SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' AND A.ROLE_ID <>'PTGD'
666
				END
667
			-- CON LAI
668
				ELSE
669
				BEGIN
670
					INSERT INTO @TMP_ROLE  SELECT A.ROLE_ID, A.BRANCH_ID,A.LIMIT_VALUE,A.LIMIT_TYPE FROM TL_SYSROLE_LIMIT A WHERE A.LIMIT_TYPE='ADV_PAY'AND BRANCH_ID ='DV0001' ORDER BY LIMIT_VALUE
671
				END
672

    
673
				
674
				SET @BRANCH_ID_PROC= (SELECT TOP 1 BRANCH_ID FROM @TMP_ROLE WHERE ROLE_ID=@NEXT_ROLE AND LIMIT_TYPE='ADV_PAY')
675
				IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE ROLE_USER=@NEX_ROLE_STEP AND REQ_ID= @p_REQ_PAY_ID))
676
				BEGIN
677
					-- doanptt them note khi xac nhan
678
					IF(@p_PROCESS_NOTES IS NULL OR @p_PROCESS_NOTES = '')
679
					BEGIN
680
						SET @p_PROCESS_NOTES = (SELECT TOP 1 ROLE_DESC + N' xác nhận' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID);
681
					END
682
					--SET @NEXT_ROLE =(SELECT TOP 1 ROLE_ID FROM @TMP_ROLE WHERE LIMIT_VALUE >@t_REQ_AMT 
683
					SET @NEXT_ROLE =(	SELECT TOP 1 ROLE_ID 
684
										FROM @TMP_ROLE 
685
										WHERE 1 =1
686
										AND ROLE_ID NOT IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID) 
687
										AND LIMIT_TYPE ='ADV_PAY' ORDER BY LIMIT_VALUE)
688
					--print @NEXT_ROLE
689
					SET @BRANCH_ID_PROC= (SELECT TOP 1 BRANCH_ID FROM @TMP_ROLE WHERE ROLE_ID=@NEXT_ROLE AND LIMIT_TYPE='ADV_PAY')
690
					SET @MESSAGE = (SELECT TOP 1 N'Đợi '+ ROLE_DESC + N' phê duyệt' FROM TL_SYSROLE WHERE ROLE_ID = @NEXT_ROLE)
691
					INSERT INTO PL_REQUEST_PROCESS (REQ_ID,PROCESS_ID,STATUS,ROLE_USER,BRANCH_ID,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF, COST_ID, DVDM_ID, NOTES)
692
					VALUES (@p_REQ_PAY_ID,@PROCESS_ID_NEXT,'C',@NEXT_ROLE,@BRANCH_ID_PROC,@NEXT_ROLE,GETDATE(),@PROCESS_PARENT,'Y',NULL,@p_COST_ID,@MESSAGE)
693
					INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,@CURRENT_PROCESS,@p_CHECKER_ID, GETDATE(), @p_PROCESS_NOTES,N'Các cấp phê duyệt theo hạn mức')
694
				END
695
				ELSE
696
				BEGIN
697
					-- doanptt them note khi xac nhan
698
					IF(@p_PROCESS_NOTES IS NULL OR @p_PROCESS_NOTES = '')
699
					BEGIN
700
						SET @p_PROCESS_NOTES = (SELECT TOP 1 ROLE_DESC + N' xác nhận' FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID);
701
					END
702
					ELSE
703
					BEGIN
704
						SET @p_PROCESS_NOTES = (SELECT TOP 1 ROLE_DESC + N': ' + @p_PROCESS_NOTES FROM TL_SYSROLE WHERE ROLE_ID = @ROLE_ID);
705
					END
706

    
707
					SET @NEXT_ROLE =@NEX_ROLE_STEP
708
					UPDATE PL_REQUEST_PROCESS SET STATUS='C',DVDM_ID=@p_COST_ID WHERE ROLE_USER =@NEXT_ROLE AND REQ_ID = @p_REQ_PAY_ID	
709
					INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,@CURRENT_PROCESS,@p_CHECKER_ID, GETDATE(), @p_PROCESS_NOTES,N'Các cấp phê duyệt theo hạn mức')
710
				END
711
				--				
712
				IF @@Error <> 0 GOTO ABORT
713
					-- UPDATE STATUS CUA STEP HIEN TAI
714
				UPDATE PL_REQUEST_PROCESS SET STATUS='P',IS_LEAF ='N', NOTES = (SELECT TOP 1 ROLE_DESC + N' xác nhận' FROM TL_SYSROLE WHERE ROLE_ID =@ROLE_ID)
715
				WHERE ROLE_USER IN(SELECT * FROM @TABLE_ROLE) AND REQ_ID = @p_REQ_PAY_ID		
716
				--INSERT VAO TR_PROCESS		
717
				UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS =@CURRENT_PROCESS , AUTH_STATUS='U',DVDM_ID = @p_COST_ID WHERE REQ_PAY_ID =@p_REQ_PAY_ID	
718
				--- 
719
				UPDATE PL_REQUEST_PROCESS SET DVDM_ID= @p_COST_ID WHERE REQ_ID =@p_REQ_PAY_ID AND ROLE_USER <>@ROLE_ID
720
		  END
721
		END	
722
-- NEU LA CAC LOAI TAM UNG CON LAI
723
		ELSE
724
		BEGIN
725
			--- NEU LA TAM UNG NHA CUNG CAP THI CHECK XEM KI TAM UNG DO DA HOAN THANH HAY CHUA, NEU DA HOAN THANH THI KHONG CHO DUYET
726
			DECLARE @PAY_ID VARCHAR(15), @SUM_OF_PAY_ID DECIMAL(18,2), @SUM_ADVANCE DECIMAL(18,2),
727
			@AMOUNT DECIMAL(18,2),@AMT_PAY_DO DECIMAL(18,2),@SCH_ID VARCHAR(15),@AMT_ADVANCE DECIMAL(18,0)
728
			DECLARE CUR_SH CURSOR FOR SELECT A.PAY_ID,A.AMT_PAY, A.AMT_PAY_DO,A.SCHEDULE_ID,A.AMT_ADVANCE FROM TR_REQ_PAY_SCHEDULE A WHERE A.REQ_PAY_ID= @p_REQ_PAY_ID
729
			OPEN CUR_SH
730
			FETCH NEXT FROM CUR_SH INTO @PAY_ID,@AMOUNT,@AMT_PAY_DO,@SCH_ID,@AMT_ADVANCE
731
			WHILE @@FETCH_STATUS =0
732
			BEGIN
733
				SET @SUM_OF_PAY_ID =(SELECT TOP 1 SUM(AMT_PAY_DO) FROM TR_REQ_PAY_SCHEDULE WHERE PAY_ID =@PAY_ID AND AUTH_STATUS_KT='A')
734
				SET @SUM_ADVANCE =(SELECT TOP 1 SUM(AMT_ADVANCE) FROM TR_REQ_PAY_SCHEDULE WHERE PAY_ID =@PAY_ID AND AUTH_STATUS_KT='A')
735
				IF(@SUM_OF_PAY_ID +@AMT_PAY_DO >@AMOUNT)
736
				BEGIN
737
					ROLLBACK TRANSACTION
738
					SELECT '-1' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, N'Số tiền tạm ứng đã vượt mức số tiền còn lại cần phải thanh toán' ErrorDesc
739
					RETURN '-1'
740
				END
741
				IF(@SUM_OF_PAY_ID+@AMT_PAY_DO+@SUM_ADVANCE < @AMOUNT)
742
				BEGIN
743
					UPDATE TR_REQ_PAY_SCHEDULE SET PAYMENT_STATUS ='DTU' WHERE SCHEDULE_ID=@SCH_ID
744
				END
745
				ELSE IF(@SUM_OF_PAY_ID+@AMT_PAY_DO+@SUM_ADVANCE = @AMOUNT)
746
				BEGIN
747
					UPDATE TR_REQ_PAY_SCHEDULE SET PAYMENT_STATUS ='DTT' WHERE SCHEDULE_ID=@SCH_ID
748
				END
749
				ELSE IF(@SUM_OF_PAY_ID=0 AND @SUM_ADVANCE =0 )
750
				BEGIN
751
					UPDATE TR_REQ_PAY_SCHEDULE SET PAYMENT_STATUS ='CTT' WHERE SCHEDULE_ID=@SCH_ID
752
				END
753
				FETCH NEXT FROM CUR_SH INTO @PAY_ID,@AMOUNT,@AMT_PAY_DO,@SCH_ID,@AMT_ADVANCE
754
			END
755
			CLOSE CUR_SH
756
			DEALLOCATE CUR_SH 
757

    
758
			UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS='A', CHECKER_ID=@p_CHECKER_ID, APPROVE_DT = GETDATE(),AUTH_STATUS_KT='U' WHERE REQ_PAY_ID =@p_REQ_PAY_ID
759
			UPDATE PL_REQUEST_PROCESS SET [STATUS] ='A' WHERE [STATUS] ='C' AND REQ_ID =@p_REQ_PAY_ID
760
			SET @p_AUTH_STATUS ='A'
761
			--- INSERT 1 DONG VAO PL_PROCESS
762
			-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
763
			INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
764
				   VALUES(@p_REQ_PAY_ID,'APP',@p_CHECKER_ID,GETDATE(), N'Trưởng đơn vị đã phê duyệt',N'Trưởng đơn vị phê duyệt')			
765
		END	
766
		IF @@Error <> 0 GOTO ABORT
767
COMMIT TRANSACTION
768
	IF(@p_AUTH_STATUS='A')
769
	BEGIN
770
		SELECT '0' as Result, @p_REQ_PAY_ID  REQ_PAY_ID ,N'12345' +@DEP_CODE_NEXT ErrorDesc
771
		RETURN '0'
772
	END
773
	--ELSE IF(@p_AUTH_STATUS='T' AND @ROLE_ID ='TKTGD')
774
	--BEGIN
775
	--	SELECT '5' as Result, @p_REQ_PAY_ID  REQ_PAY_ID ,N'Thư kí văn phòng Tổng Giám Đốc phê duyệt phiếu đề nghị tạm ứng số: ' +(SELECT TOP 1 REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' thành công' +@DEP_CODE_NEXT ErrorDesc
776
	--	RETURN '5'
777
	--END
778
	--ELSE IF(@p_AUTH_STATUS='T' AND @ROLE_ID ='TKHDQT')
779
	--BEGIN
780
	--	SELECT '5' as Result, @p_REQ_PAY_ID  REQ_PAY_ID ,N'Thư kí văn phòng Hội Đồng Quản Trị phê duyệt phiếu đề nghị tạm ứng số: ' +(SELECT TOP 1 REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' thành công' +@DEP_CODE_NEXT ErrorDesc
781
	--	RETURN '5'
782
	--END
783
	ELSE
784
	BEGIN
785
		SELECT '1' as Result, @p_REQ_PAY_ID  REQ_PAY_ID ,'Phiếu đề nghị tạm ứng số: ' + @p_REQ_PAY_ID + ' đã được phê duyệt thành công. Vui lòng đợi bộ phận kế toán xử lý phiếu.' ErrorDesc
786
		RETURN '1'
787
	END
788
ABORT:
789
BEGIN
790
		ROLLBACK TRANSACTION
791
		SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
792
		RETURN '-1'
793
END