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
|
|
9
|
-- BEGIN VALIDATE
|
10
|
IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE MAKER_ID_KT = @p_CHECKER_ID_KT AND REQ_PAY_ID =@p_REQ_PAY_ID)
|
11
|
BEGIN
|
12
|
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! Giao dịch viên không có quyền duyệt phiếu đề nghị tạm ứng' ErrorDesc
|
13
|
RETURN '-1'
|
14
|
END
|
15
|
--IF (NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_REQ_PAY_ID AND TLNAME =@p_CHECKER_ID_KT AND TYPE_JOB = 'KS'))
|
16
|
--BEGIN
|
17
|
-- 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. Phiếu đề nghị tạm ứng đang được kiểm soát viên khác xử lý' ErrorDesc
|
18
|
-- RETURN '-1'
|
19
|
--END
|
20
|
IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS ='R' AND REQ_PAY_ID =@p_REQ_PAY_ID)
|
21
|
BEGIN
|
22
|
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
|
23
|
RETURN '-1'
|
24
|
END
|
25
|
IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='A' AND REQ_PAY_ID =@p_REQ_PAY_ID)
|
26
|
BEGIN
|
27
|
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
|
28
|
RETURN '-1'
|
29
|
END
|
30
|
IF EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='R' AND REQ_PAY_ID =@p_REQ_PAY_ID)
|
31
|
BEGIN
|
32
|
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
|
33
|
RETURN '-1'
|
34
|
END
|
35
|
-- CHAN CUOI
|
36
|
IF (EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT <> 'P' AND AUTH_STATUS_KT <> 'S' AND REQ_PAY_ID =@p_REQ_PAY_ID))
|
37
|
BEGIN
|
38
|
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
|
39
|
RETURN '-1'
|
40
|
END
|
41
|
-- END VALIDATE
|
42
|
|
43
|
DECLARE @LEVEL_JOB VARCHAR(5), @LEVEL_JOB_PREV INT
|
44
|
SET @LEVEL_JOB =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND TYPE_JOB='KS')
|
45
|
SET @LEVEL_JOB_PREV = CONVERT(INT,@LEVEL_JOB) -1
|
46
|
BEGIN TRANSACTION
|
47
|
IF(@LEVEL_JOB='1')
|
48
|
BEGIN
|
49
|
UPDATE TR_REQ_ADVANCE_PAYMENT
|
50
|
SET AUTH_STATUS_KT='A', CHECKER_ID_KT = @p_CHECKER_ID_KT, APPROVE_DT_KT = GETDATE()
|
51
|
WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
52
|
-- DOANPTT 291222: THEM LOG KPI
|
53
|
UPDATE TR_REQ_KPI
|
54
|
SET AUTH_STATUS_KT ='A', APPROVE_DT_KT = GETDATE(),CHECKER_ID_KT = @p_CHECKER_ID_KT, REQ_STATUS = 'APP', IS_DONE = '1'
|
55
|
WHERE REQ_ID = @p_REQ_PAY_ID AND AUTH_STATUS_KT = 'P' AND IS_DONE = '0'
|
56
|
-- UPDATE LICH THANH TOAN
|
57
|
UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT='A' WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
58
|
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')
|
59
|
-- INSERT VAO PL_PROCESS
|
60
|
INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
|
61
|
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')
|
62
|
--thieuvq ban vao core - 171219 BEGIN
|
63
|
DECLARE @MAKER VARCHAR(15) = (SELECT MAKER_ID_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID)
|
64
|
DECLARE @RES VARCHAR(10)
|
65
|
--- BAN BUT TOAN VAO CORE
|
66
|
EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @p_REQ_PAY_ID,@MAKER,@p_CHECKER_ID_KT, @RES OUT
|
67
|
--END
|
68
|
--- NEU LA TAM UNG DINH KI THI BO SUNG 1 KI THANHH TOAN
|
69
|
--- KIEM TRA NEU LA THANH TOAN CAC HOP DONG DINH KI
|
70
|
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')
|
71
|
BEGIN
|
72
|
DECLARE @PAY_AMOUNT DECIMAL(18,0),@PAY_DT DATETIME,@l_CONTRACT_ID VARCHAR(15),@p_PAY_PHASE NVARCHAR(100),@REASON_TTDK NVARCHAR(2000)
|
73
|
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
|
74
|
OPEN CURS_PERIOD
|
75
|
FETCH NEXT FROM CURS_PERIOD INTO @PAY_AMOUNT ,@PAY_DT ,@l_CONTRACT_ID,@p_PAY_PHASE,@REASON_TTDK
|
76
|
WHILE @@FETCH_STATUS = 0
|
77
|
BEGIN
|
78
|
DECLARE @l_PAY_ID VARCHAR(15)
|
79
|
EXEC SYS_CodeMasters_Gen 'TR_CONTRACT_PAYMENT', @l_PAY_ID out
|
80
|
IF @l_PAY_ID='' OR @l_PAY_ID IS NULL GOTO ABORT
|
81
|
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])
|
82
|
VALUES(@PAY_AMOUNT,GETDATE(),
|
83
|
@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())
|
84
|
IF @@Error <> 0 GOTO ABORT
|
85
|
FETCH NEXT FROM CURS_PERIOD INTO @PAY_AMOUNT ,@PAY_DT ,@l_CONTRACT_ID,@p_PAY_PHASE,@REASON_TTDK
|
86
|
END
|
87
|
CLOSE CURS_PERIOD
|
88
|
DEALLOCATE CURS_PERIOD
|
89
|
-- CAP NHAT DETAIL
|
90
|
UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='A' WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
91
|
END
|
92
|
END
|
93
|
ELSE
|
94
|
BEGIN
|
95
|
-- CAP NHAT C CHO CAP CHA
|
96
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_ID AND TLNAME=@p_CHECKER_ID_KT
|
97
|
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)
|
98
|
COMMIT TRANSACTION
|
99
|
SELECT '2' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Xác nhận phiếu thành công' ErrorDesc
|
100
|
RETURN '2'
|
101
|
|
102
|
END
|
103
|
|
104
|
IF((SELECT COUNT(*) FROM PL_PROCESS WHERE REQ_ID = @p_REQ_PAY_ID AND PROCESS_ID = 'APP' AND PROCESS_DESC = N'Kiểm soát viên duyệt phiếu') > 1)
|
105
|
BEGIN
|
106
|
ROLLBACK TRANSACTION
|
107
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT ISNULL(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 đó. Lỗi này xảy ra khi duyệt 2 lần liên tiếp. Vui lòng liên hệ IT để được hỗ trợ thêm' ErrorDesc
|
108
|
RETURN '-1'
|
109
|
END
|
110
|
|
111
|
IF @@Error <> 0 GOTO ABORT
|
112
|
COMMIT TRANSACTION
|
113
|
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
|
114
|
RETURN '0'
|
115
|
ABORT:
|
116
|
BEGIN
|
117
|
ROLLBACK TRANSACTION
|
118
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
|
119
|
RETURN '-1'
|
120
|
END
|