1
|
|
2
|
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Del]
|
3
|
@p_REQ_PAY_ID varchar(15),
|
4
|
@p_USER_LOGIN varchar(20)
|
5
|
AS
|
6
|
DECLARE @REQ_CODE VARCHAR(50), @BRANCH_ID VARCHAR(15), @MAKER_ID VARCHAR(15)
|
7
|
SET @REQ_CODE =(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
8
|
DECLARE @ERRORSYS NVARCHAR(15) = ''
|
9
|
--IF ( NOT EXISTS ( SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID))
|
10
|
-- SET @ERRORSYS = 'REQ-00002'
|
11
|
--IF @ERRORSYS <> ''
|
12
|
--BEGIN
|
13
|
-- SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
|
14
|
-- RETURN '0'
|
15
|
--END
|
16
|
BEGIN TRANSACTION
|
17
|
--IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS <>'E'))
|
18
|
--BEGIN
|
19
|
-- ROLLBACK TRANSACTION
|
20
|
-- SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được gửi phê duyệt! Bạn chỉ được phép xóa bản nháp!' ErrorDesc
|
21
|
-- RETURN '-1'
|
22
|
--END
|
23
|
IF((SELECT AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'A')
|
24
|
BEGIN
|
25
|
ROLLBACK TRANSACTION
|
26
|
SELECT '-1' 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 trưởng đơn vị phê duyệt, bạn không được phép xóa!' ErrorDesc
|
27
|
RETURN '-1'
|
28
|
END
|
29
|
IF((SELECT AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'A')
|
30
|
BEGIN
|
31
|
ROLLBACK TRANSACTION
|
32
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: ' +(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được trưởng đơn vị phê duyệt, bạn không được phép xóa!' ErrorDesc
|
33
|
RETURN '-1'
|
34
|
END
|
35
|
IF((SELECT TOP 1 MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) <> @p_USER_LOGIN)
|
36
|
BEGIN
|
37
|
ROLLBACK TRANSACTION
|
38
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' do người dùng ' + (SELECT TOP 1 MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) + N' tạo, bạn không được phép xóa!' ErrorDesc
|
39
|
RETURN '-1'
|
40
|
END
|
41
|
SET @BRANCH_ID =(SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
42
|
SET @MAKER_ID =(SELECT MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)
|
43
|
IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME =@MAKER_ID AND (RoleName ='DISABLE' OR AUTH_STATUS ='U')))
|
44
|
BEGIN
|
45
|
IF(NOT EXISTS(SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID AND ISNULL(AUTH_STATUS_KT,'') ='A'))
|
46
|
BEGIN
|
47
|
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND STATUS_JOB ='C'))
|
48
|
BEGIN
|
49
|
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
50
|
UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS ='D' WHERE PAY_ID= @p_REQ_PAY_ID
|
51
|
UPDATE TR_REQ_PAY_INVOICE SET AUTH_STATUS ='D', AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
52
|
UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
53
|
UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
54
|
COMMIT TRANSACTION
|
55
|
SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+@REQ_CODE+ N' đã được hủy thành công.Bạn có thể tra cứu phiếu ở tình trạng Phiếu bị hủy!' AS ErrorDesc
|
56
|
RETURN '0'
|
57
|
--RETURN
|
58
|
END
|
59
|
END
|
60
|
END
|
61
|
IF(NOT EXISTS(SELECT * FROM TL_USER WHERE TLNANME =@MAKER_ID AND TLSUBBRID =@BRANCH_ID))
|
62
|
BEGIN
|
63
|
IF(NOT EXISTS(SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID AND ISNULL(AUTH_STATUS_KT,'') ='A'))
|
64
|
BEGIN
|
65
|
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND STATUS_JOB ='C'))
|
66
|
BEGIN
|
67
|
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
68
|
UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS ='D' WHERE PAY_ID= @p_REQ_PAY_ID
|
69
|
UPDATE TR_REQ_PAY_INVOICE SET AUTH_STATUS ='D', AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
70
|
UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
71
|
UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
72
|
COMMIT TRANSACTION
|
73
|
SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+@REQ_CODE+ N' đã được hủy thành công.Bạn có thể tra cứu phiếu ở tình trạng Phiếu bị hủy!' AS ErrorDesc
|
74
|
RETURN '0'
|
75
|
END
|
76
|
END
|
77
|
END
|
78
|
IF((SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'A')
|
79
|
BEGIN
|
80
|
ROLLBACK TRANSACTION
|
81
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được kiểm soát viên duyệt, bạn không được phép xóa!' ErrorDesc
|
82
|
RETURN '-1'
|
83
|
END
|
84
|
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND STATUS_JOB ='C'))
|
85
|
BEGIN
|
86
|
ROLLBACK TRANSACTION
|
87
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được điều phối và xử lý ở phòng kế toán. Bạn không được phép xóa!' ErrorDesc
|
88
|
RETURN '-1'
|
89
|
END
|
90
|
IF((SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'R')
|
91
|
BEGIN
|
92
|
ROLLBACK TRANSACTION
|
93
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đang bị KSV từ chối, bạn không được phép xóa!' ErrorDesc
|
94
|
RETURN '-1'
|
95
|
END
|
96
|
IF((SELECT AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'R')
|
97
|
BEGIN
|
98
|
ROLLBACK TRANSACTION
|
99
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đang ở tình trạng từ chối, bạn không được phép xóa!' ErrorDesc
|
100
|
RETURN '-1'
|
101
|
END
|
102
|
IF(EXISTS(SELECT * FROM PL_PROCESS WHERE REQ_ID =@p_REQ_PAY_ID AND CHECKER_ID IN ('nghihm','huongvt','chaudtm','hainth')))
|
103
|
BEGIN
|
104
|
ROLLBACK TRANSACTION
|
105
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã có lịch sử xử lý.Vui lòng tiếp tục thao tác trên phiếu này. Bạn không được phép xóa!' ErrorDesc
|
106
|
RETURN '-1'
|
107
|
END
|
108
|
ELSE
|
109
|
BEGIN
|
110
|
Delete FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
111
|
Delete FROM TR_REQ_PAYMENT_DT WHERE PAY_ID= @p_REQ_PAY_ID
|
112
|
DELETE FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
113
|
DELETE FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
114
|
DELETE FROM TR_REQ_PAY_CAT WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
115
|
DELETE FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
116
|
DELETE FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
117
|
DELETE FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
118
|
DELETE FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
119
|
DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
120
|
DELETE FROM TR_REQ_PAY_ATTACH WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
121
|
DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
122
|
--doanptt 210622 xóa định mức chi phí khi xóa phiếu
|
123
|
DELETE FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
124
|
DELETE FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
125
|
DELETE FROM TR_REQ_PAY_JOB WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
126
|
DELETE FROM TR_REQ_PAY_JOB_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
127
|
DELETE FROM TR_REQ_PAY_DRIVE WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
128
|
DELETE FROM TR_REQ_PAY_DRIVE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
129
|
DELETE FROM TR_REQ_PAY_REQUEST_CAR WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
130
|
IF @@Error <> 0 GOTO ABORT
|
131
|
END
|
132
|
COMMIT TRANSACTION
|
133
|
SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số : '+@REQ_CODE+ N' đã được xóa thành công khỏi hệ thống!' AS ErrorDesc
|
134
|
RETURN '0'
|
135
|
ABORT:
|
136
|
BEGIN
|
137
|
ROLLBACK TRANSACTION
|
138
|
SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' AS ErrorDesc
|
139
|
RETURN '-1'
|
140
|
End
|