Project

General

Profile

DUYET KT TAM UNG.txt

Luc Tran Van, 02/04/2021 09:07 AM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_KT_Appr]
3
--Luanlt 2019/17/10 - Sửa params
4
@p_REQ_PAY_ID	varchar(15)= NULL,
5
@p_CHECKER_ID_KT	varchar(15)	= NULL,
6
@p_AUTH_STATUS_KT VARCHAR(10) = NULL
7
AS
8
	DECLARE @LEVEL_JOB VARCHAR(5), @LEVEL_JOB_PREV INT
9
	SET @LEVEL_JOB =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND TYPE_JOB='KS')
10
	SET @LEVEL_JOB_PREV = CONVERT(INT,@LEVEL_JOB) -1
11
	IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE MAKER_ID_KT =@p_CHECKER_ID_KT AND REQ_PAY_ID =@p_REQ_PAY_ID)
12
		BEGIN
13
			SELECT '-1' as Result, '' REQ_PAY_ID, N'Bạn không được phép duyệt đối tượng này' ErrorDesc
14
			RETURN '-1'
15
		END
16
	IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='A' AND REQ_PAY_ID =@p_REQ_PAY_ID)
17
		BEGIN
18
			SELECT '-1' 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 đó. Vui lòng tra cứu thông tin giao dịch!' ErrorDesc
19
		RETURN '-1'
20
		END
21
	----Luanlt 2019/10/17 Validate CORE NOTE không được rỗng
22
	--IF ((SELECT CONFIRM_NOTES FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) IS NULL OR (SELECT CONFIRM_NOTES FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) = '')
23
	--BEGIN
24
	--	SELECT '-1' Result,'' REQ_PAY_ID,N'Chưa cập nhật thông tin hạch toán' ErrorDesc
25
	--	RETURN '-1'
26
	--END
27
	-- KIEM TRA NEU DANG TRA VE THI KHONG CHO DUYET
28
	IF ((SELECT AUTH_STATUS_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) ='R')
29
	BEGIN
30
		SELECT '-1' 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ề. Vui lòng cập nhật lại thông tin trước khi duyệt!' ErrorDesc
31
		RETURN '-1'
32
	END
33
BEGIN TRANSACTION
34
		IF(@LEVEL_JOB='1')
35
		BEGIN
36
			UPDATE TR_REQ_ADVANCE_PAYMENT
37
			SET  AUTH_STATUS_KT='A', CHECKER_ID_KT = @p_CHECKER_ID_KT, APPROVE_DT_KT =  GETDATE()
38
			WHERE  REQ_PAY_ID = @p_REQ_PAY_ID
39
			-- UPDATE LICH THANH TOAN
40
			UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT='A' WHERE REQ_PAY_ID =@p_REQ_PAY_ID
41
			UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_ID AND (TLNAME=@p_CHECKER_ID_KT OR TYPE_JOB ='KS')
42
			-- INSERT VAO PL_PROCESS
43
			INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
44
			VALUES(@p_REQ_PAY_ID,'APP',@p_CHECKER_ID_KT,GETDATE(), N'Kiểm soát viên duyệt phiếu',N'Kế toán duyệt phiếu')
45
			--thieuvq ban vao core - 171219 BEGIN 
46
			DECLARE @MAKER VARCHAR(15) = (SELECT MAKER_ID_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID)
47
			DECLARE @RES VARCHAR(10)
48
			--- BAN BUT TOAN VAO CORE
49
			EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @p_REQ_PAY_ID,@MAKER,@p_CHECKER_ID_KT, @RES OUT 
50
			--END
51
			--- NEU LA TAM UNG DINH KI THI BO SUNG 1 KI THANHH TOAN
52
			--- KIEM TRA NEU LA THANH TOAN CAC HOP DONG DINH KI
53
		IF(((SELECT TOP 1 REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) ='P') AND (SELECT IS_PERIOD FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) ='Y')
54
		BEGIN
55
		DECLARE @PAY_AMOUNT DECIMAL(18,0),@PAY_DT DATETIME,@l_CONTRACT_ID VARCHAR(15),@p_PAY_PHASE NVARCHAR(100),@REASON_TTDK NVARCHAR(2000)
56
		DECLARE CURS_PERIOD CURSOR FOR SELECT A.AMT_PAY,A.PAY_DT_REAL,A.CONTRACT_ID,A.PAY_PHASE,A.REASON FROM TR_REQ_PAY_PERIOD A  WHERE A.REQ_PAY_ID =@p_REQ_PAY_ID ORDER BY A.CONTRACT_ID
57
		OPEN CURS_PERIOD
58
			FETCH NEXT FROM CURS_PERIOD INTO @PAY_AMOUNT ,@PAY_DT ,@l_CONTRACT_ID,@p_PAY_PHASE,@REASON_TTDK
59
			WHILE @@FETCH_STATUS = 0
60
			BEGIN
61
				DECLARE @l_PAY_ID VARCHAR(15)
62
				EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_PAYMENT', @l_PAY_ID out
63
				IF @l_PAY_ID='' OR @l_PAY_ID IS NULL GOTO ABORT
64
				INSERT INTO TR_CONTRACT_PAYMENT([PAY_AMOUNT],[PAY_DT], [PAY_ID],[CONTRACT_ID],[PAY_PHASE],[EXPECTED_DT],[PERCENT],[AMOUNT],[PAY_STATUS],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT])
65
				VALUES(@PAY_AMOUNT,GETDATE(), 
66
				@l_PAY_ID ,@l_CONTRACT_ID ,@p_PAY_PHASE ,GETDATE(),100,@PAY_AMOUNT,'2' ,@REASON_TTDK ,'1' ,@p_CHECKER_ID_KT ,GETDATE() ,'A' ,@p_CHECKER_ID_KT,GETDATE())
67
				IF @@Error <> 0 GOTO ABORT
68
				FETCH NEXT FROM CURS_PERIOD INTO @PAY_AMOUNT ,@PAY_DT ,@l_CONTRACT_ID,@p_PAY_PHASE,@REASON_TTDK
69
			END
70
		CLOSE CURS_PERIOD
71
		DEALLOCATE CURS_PERIOD
72
		-- CAP NHAT DETAIL
73
		UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='A' WHERE REQ_PAY_ID =@p_REQ_PAY_ID
74
		END
75
		END
76
		ELSE
77
		BEGIN
78
			-- CAP NHAT C CHO CAP CHA
79
			UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_ID AND TLNAME=@p_CHECKER_ID_KT
80
			UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV)
81
			SELECT '2' as Result, @p_REQ_PAY_ID  REQ_PAY_ID ,N'Xác nhận phiếu thành công' ErrorDesc
82
			RETURN '2'
83
			
84
		END
85
		IF @@Error <> 0 GOTO ABORT
86
COMMIT TRANSACTION
87
SELECT '0' as Result, @p_REQ_PAY_ID  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 phê duyệt thành công!' ErrorDesc
88
RETURN '0'
89
ABORT:
90
BEGIN
91
		ROLLBACK TRANSACTION
92
		SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
93
		RETURN '-1'
94
END