Project

General

Profile

PAYMENT_APPR.txt

Luc Tran Van, 11/25/2020 05:01 PM

 
1
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Appr]
2
--Luanlt 2019/17/10 - Sửa params
3
@p_REQ_PAY_ID	varchar(15)= NULL,
4
@p_CHECKER_ID	varchar(15)	= NULL
5
AS
6
BEGIN TRANSACTION
7
		DECLARE @ROLE_ID VARCHAR(15)
8
		SET  @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_CHECKER_ID)
9
		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','PPGD'))
10
		BEGIN
11
			PRINT @ROLE_ID
12
		END
13
		ELSE
14
		BEGIN
15
			SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_CHECKER_ID)
16
			IF(@ROLE_ID IS NULL OR @ROLE_ID ='')
17
			BEGIN
18
					SET @ROLE_ID =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_CHECKER_ID))
19
			END
20
		END
21
		IF(@ROLE_ID NOT IN ('TPGD','PPGD','PP','TP','GDDV','PGD','KTT','TP','PP','TPTC','TC','GDK'))
22
		BEGIN
23
			ROLLBACK TRANSACTION
24
			SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn không nằm trong nhóm quyền được phép phê duyệt phiếu đề nghị thanh toán' ErrorDesc
25
			RETURN '-1'
26
		END
27
		-- KIEM TRA NGUOI TAO PHAI KHAC NGUOI DUYET
28
		IF(EXISTS(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_CHECKER_ID AND RoleName NOT IN ('GDK','GDDV','PTGD','TGD','HDQT','TBP')))
29
		BEGIN
30
			IF EXISTS (SELECT TOP 1 REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE MAKER_ID = @p_CHECKER_ID AND REQ_PAY_ID =@p_REQ_PAY_ID)
31
			BEGIN
32
				ROLLBACK TRANSACTION
33
				SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn là người tạo phiếu đề nghị thanh toán. Bạn không được phép duyệt phiếu này' ErrorDesc
34
				RETURN '-1'
35
			END
36
		END
37
		-- KIEM TRA NEU DANG TRA VE THI PHAI CHO CAP NHAT LAI THONG TIN MOI DUOC PHEP DUYET
38
		IF EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE AUTH_STATUS ='R' AND REQ_PAY_ID =@p_REQ_PAY_ID)
39
		BEGIN
40
			ROLLBACK TRANSACTION
41
			SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toá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
42
			RETURN '-1'
43
		END
44
		-- KIEM TRA NEU DANG TRA VE THI PHAI CHO CAP NHAT LAI THONG TIN MOI DUOC PHEP DUYET
45
		IF EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT ='R' AND REQ_PAY_ID =@p_REQ_PAY_ID)
46
		BEGIN
47
			ROLLBACK TRANSACTION
48
			SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toá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
49
			RETURN '-1'
50
		END
51
		-- KIEM TRA NEU DANG TRA VE THI PHAI CHO CAP NHAT LAI THONG TIN MOI DUOC PHEP DUYET
52
		IF EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT ='A' AND REQ_PAY_ID =@p_REQ_PAY_ID)
53
		BEGIN
54
			ROLLBACK TRANSACTION
55
			SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được KSV phê duyệt trước đó' ErrorDesc
56
			RETURN '-1'
57
		END
58
		IF EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_PAY_ID)
59
		BEGIN
60
			ROLLBACK TRANSACTION
61
			SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được phê duyệt trước đó' ErrorDesc
62
			RETURN '-1'
63
		END
64

    
65
		--END - CAP NHAT CODE TRONG QUA TRINH TEST UAT 19 11 2019
66
		DECLARE @INDEX INT =0
67
		DECLARE @PAY_ID VARCHAR(15),@PAY_PHASE VARCHAR(15)
68
		DECLARE @REQ_TYPE VARCHAR(15),@PAY_ADVANCE_ID VARCHAR(15),@AMT_PAY DECIMAL(18,2), @AMT_USE DECIMAL(18,2), @AMT_REVERT DECIMAL(12)
69
		SET @REQ_TYPE =(SELECT REQ_TYPE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID)
70
		IF(@REQ_TYPE ='I')
71
		BEGIN
72
		DECLARE CURS CURSOR FOR SELECT A.PAY_ADV_ID,A.AMT_REMAIN,A.AMT_USE,A.AMT_REVERT FROM TR_REQ_PAYMENT_DT A WHERE A.PAY_ID =@p_REQ_PAY_ID
73
		OPEN CURS
74
			FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_USE, @AMT_REVERT
75
			WHILE @@FETCH_STATUS = 0
76
			BEGIN
77
				SET @INDEX = @INDEX +1
78
				-- KIEM TRA NEU SO PHIEU TAM UNG NAY DA THANH TOAN XONG THI KHONG CHO PHEP DUYET
79
				IF((SELECT A.REQ_AMT - A.PAY_AMT FROM TR_REQ_ADVANCE_PAYMENT A WHERE A.REQ_PAY_ID = @PAY_ADVANCE_ID)=0)
80
				BEGIN
81
					ROLLBACK TRANSACTION
82
					SELECT '-1' Result,'' REQ_PAY_ID,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N': Phiếu tạm ứng này đã được hoàn tạm ứng xong. Vui lòng xóa khỏi danh sách hoàn tạm ứng' ErrorDesc
83
					RETURN '-1'
84
				END
85
				--UPDATE TR_REQ_ADVANCE_PAYMENT SET PAY_AMT = ISNULL(PAY_AMT,0) + ISNULL(@AMT_PAY,0.00) +ISNULL(@AMT_REVERT,0.00) WHERE REQ_PAY_ID =@PAY_ADVANCE_ID
86
			FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_USE, @AMT_REVERT
87
			END
88
		CLOSE CURS
89
		DEALLOCATE CURS
90
		END
91
		-- NEU LOAI TAM UNG LA THANH TOAN PO
92
		ELSE IF(@REQ_TYPE ='P')
93
		BEGIN
94
		DECLARE CURS CURSOR FOR SELECT A.PAY_ID, A.PAY_PHASE FROM TR_REQ_PAY_SCHEDULE A WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID
95
		OPEN CURS
96
			FETCH NEXT FROM CURS INTO @PAY_ID,@PAY_PHASE
97
			WHILE @@FETCH_STATUS = 0
98
			BEGIN
99
				SET @INDEX = @INDEX +1
100
				---- KIEM TRA NEU SO PHIEU TAM UNG NAY DA THANH TOAN XONG THI KHONG CHO PHEP DUYET
101
				--IF((SELECT MIN(A.AMT_REMAIN)FROM TR_REQ_PAY_SCHEDULE A WHERE A.PAY_ID =@PAY_ID GROUP BY A.PAY_ID)=0)
102
				--BEGIN
103
				--	ROLLBACK TRANSACTION
104
				--	SELECT '-1' Result,'' REQ_PAY_ID,N'Dòng '+ CONVERT(VARCHAR(5),@INDEX)+ N':Kì '+ @PAY_PHASE+N' đã thanh toán xong'  ErrorDesc
105
				--	RETURN '-1'
106
				--END
107
			FETCH NEXT FROM CURS INTO @PAY_ID,@PAY_PHASE
108
			END
109
		CLOSE CURS
110
		DEALLOCATE CURS
111
		END
112
		UPDATE TR_REQ_PAYMENT
113
	    SET    AUTH_STATUS='A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT =  GETDATE(), AUTH_STATUS_KT='U'
114
	    WHERE  REQ_PAY_ID = @p_REQ_PAY_ID
115
		--UPDATE DETAIL
116
		UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS='A',CHECKER_ID =@p_CHECKER_ID,APPROVE_DT = GETDATE()
117
		WHERE PAY_ID =@p_REQ_PAY_ID
118
		-- INSERT VAO PL_PROCESS
119
	   INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
120
	   VALUES(@p_REQ_PAY_ID,'APP',@p_CHECKER_ID,GETDATE(), N'Trưởng đơn vị phê duyệt phiếu',N'Phê duyệt cấp đơn vị')
121
		IF @@Error <> 0 GOTO ABORT
122
COMMIT TRANSACTION
123
SELECT '0' as Result, @p_REQ_PAY_ID  REQ_PAY_ID ,'' ErrorDesc
124
RETURN '0'
125
ABORT:
126
BEGIN
127
		ROLLBACK TRANSACTION
128
		SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
129
		RETURN '-1'
130
END