1
|
|
2
|
ALTER PROCEDURE [dbo].[TR_CONTRACT_Del]
|
3
|
@p_CONTRACT_ID varchar(15)
|
4
|
AS
|
5
|
DECLARE @sErrorCode VARCHAR(20) = '', @PDNTT_CODE_LIST VARCHAR(1000), @PDNTT_TAM_UNG_LST VARCHAR(1000)
|
6
|
|
7
|
--Neu ton tai PO NÀO ĐÓ da link den HỢP ĐỒNG nay
|
8
|
IF EXISTS(SELECT * FROM TR_PO_MASTER A WHERE A.CONTRACT_ID = @p_CONTRACT_ID)
|
9
|
BEGIN
|
10
|
SET @sErrorCode = 'TRC-00001'
|
11
|
END
|
12
|
|
13
|
IF NOT EXISTS (SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID = @p_CONTRACT_ID)
|
14
|
BEGIN
|
15
|
SET @sErrorCode = 'TRC-00002'
|
16
|
END
|
17
|
|
18
|
IF @sErrorCode <> ''
|
19
|
BEGIN
|
20
|
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode
|
21
|
RETURN '-1'
|
22
|
END
|
23
|
|
24
|
|
25
|
IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID AND AUTH_STATUS NOT IN ('E','R')))
|
26
|
BEGIN
|
27
|
ROLLBACK TRANSACTION
|
28
|
SELECT '-1' as Result, N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã được gửi phê duyệt. Bạn chỉ được phép xóa bản nháp!' AS ErrorDesc
|
29
|
RETURN '-1'
|
30
|
END
|
31
|
--IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID AND AUTH_STATUS ='A'))
|
32
|
--BEGIN
|
33
|
-- ROLLBACK TRANSACTION
|
34
|
-- SELECT '-1' as Result, N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã được phê duyệt trước đó. Bạn chỉ được phép cập nhật thông tin hợp đồng!' AS ErrorDesc
|
35
|
-- RETURN '-1'
|
36
|
--END
|
37
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@p_CONTRACT_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='A')) )
|
38
|
BEGIN
|
39
|
SET @PDNTT_TAM_UNG_LST = (select STUFF( (select '; ' + ISNULL(DTA.REQ_PAY_CODE,DTA.REQ_PAY_ID) FROM TR_REQ_ADVANCE_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@p_CONTRACT_ID) AND AUTH_STATUS_KT = 'A'
|
40
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
41
|
INSERT INTO PL_PROCESS (REQ_ID,PROCESS_DESC,NOTES) VALUES (@p_CONTRACT_ID,N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã có phiếu đề nghị tạm ứng: ' +ISNULL(@PDNTT_TAM_UNG_LST,'')+N' sử dụng và KSV đã phê duyệt',N'Xóa hợp đồng')
|
42
|
--ROLLBACK TRANSACTION
|
43
|
|
44
|
SELECT '-1' as Result, N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã có phiếu đề nghị tạm ứng: ' +ISNULL(@PDNTT_TAM_UNG_LST,'')+N' sử dụng và KSV đã phê duyệt. Vì vậy bạn không được phép xóa' AS ErrorDesc
|
45
|
RETURN '-1'
|
46
|
END
|
47
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@p_CONTRACT_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT ='A')) )
|
48
|
BEGIN
|
49
|
SET @PDNTT_CODE_LIST = (select STUFF( (select '; ' + ISNULL(DTA.REQ_PAY_CODE,DTA.REQ_PAY_ID) FROM TR_REQ_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@p_CONTRACT_ID) AND AUTH_STATUS_KT = 'A'
|
50
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
51
|
INSERT INTO PL_PROCESS (REQ_ID,PROCESS_DESC,NOTES) VALUES (@p_CONTRACT_ID,N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã có phiếu đề nghị thanh toán: '+ISNULL(@PDNTT_CODE_LIST,'')+N' sử dụng và KSV đã phê duyệt',N'Xóa hợp dồng')
|
52
|
--ROLLBACK TRANSACTION
|
53
|
SELECT '-1' as Result, N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã có phiếu đề nghị thanh toán: '+ISNULL(@PDNTT_CODE_LIST,'')+N' sử dụng và KSV đã phê duyệt. Vì vậy bạn không được phép xóa' AS ErrorDesc
|
54
|
RETURN '-1'
|
55
|
END
|
56
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@p_CONTRACT_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT <> 'A')) )
|
57
|
BEGIN
|
58
|
SET @PDNTT_TAM_UNG_LST = (select STUFF( (select '; ' + ISNULL(DTA.REQ_PAY_CODE,DTA.REQ_PAY_ID) FROM TR_REQ_ADVANCE_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@p_CONTRACT_ID) AND AUTH_STATUS_KT <> 'A'
|
59
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
60
|
--ROLLBACK TRANSACTION
|
61
|
INSERT INTO PL_PROCESS (REQ_ID,PROCESS_DESC,NOTES) VALUES (@p_CONTRACT_ID,N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã có phiếu đề nghị tạm ứng sử dụng. Vui lòng hủy các phiếu: ' + ISNULL(@PDNTT_TAM_UNG_LST,''),N'Xóa hợp đồng')
|
62
|
SELECT '-1' as Result, N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã có phiếu đề nghị tạm ứng sử dụng. Vui lòng hủy các phiếu: ' + ISNULL(@PDNTT_TAM_UNG_LST,'') AS ErrorDesc
|
63
|
RETURN '-1'
|
64
|
END
|
65
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@p_CONTRACT_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS_KT <> 'A')) )
|
66
|
BEGIN
|
67
|
SET @PDNTT_CODE_LIST = (select STUFF( (select '; ' + ISNULL(DTA.REQ_PAY_CODE,DTA.REQ_PAY_ID) FROM TR_REQ_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_DT WHERE REF_ID =@p_CONTRACT_ID) AND AUTH_STATUS_KT <> 'A'
|
68
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
69
|
--ROLLBACK TRANSACTION
|
70
|
INSERT INTO PL_PROCESS (REQ_ID,PROCESS_DESC,NOTES) VALUES (@p_CONTRACT_ID,N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã có phiếu đề nghị thanh toán sử dụng. Vui lòng hủy các phiếu: ' + ISNULL(@PDNTT_CODE_LIST,''),N'Xóa hợp đồng')
|
71
|
SELECT '-1' as Result, N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã có phiếu đề nghị thanh toán sử dụng. Vui lòng hủy các phiếu: ' + ISNULL(@PDNTT_CODE_LIST,'') AS ErrorDesc
|
72
|
RETURN '-1'
|
73
|
END
|
74
|
BEGIN TRANSACTION
|
75
|
IF((SELECT A.AUTH_STATUS FROM TR_PO_MASTER A WHERE A.CONTRACT_ID = @p_CONTRACT_ID) = 'A')
|
76
|
BEGIN
|
77
|
UPDATE TR_CONTRACT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
|
78
|
UPDATE TR_CONTRACT_DT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
|
79
|
UPDATE TR_CONTRACT_PAYMENT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
|
80
|
END
|
81
|
ELSE
|
82
|
BEGIN
|
83
|
--DELETE FROM TR_CONTRACT Where CONTRACT_ID = @p_CONTRACT_ID
|
84
|
--DELETE FROM TR_CONTRACT_DT WHERE CONTRACT_ID = @p_CONTRACT_ID
|
85
|
--DELETE FROM TR_CONTRACT_PAYMENT WHERE CONTRACT_ID = @p_CONTRACT_ID
|
86
|
UPDATE TR_CONTRACT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
|
87
|
UPDATE TR_CONTRACT_DT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
|
88
|
UPDATE TR_CONTRACT_PAYMENT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
|
89
|
END
|
90
|
|
91
|
COMMIT TRANSACTION
|
92
|
SELECT '0' as Result, N'Hợp đồng có số ID: '+@p_CONTRACT_ID +N' đã được xóa khỏi hệ thống!' AS ErrorDesc
|
93
|
RETURN '0'
|
94
|
|
95
|
ABORT:
|
96
|
BEGIN
|
97
|
ROLLBACK TRANSACTION
|
98
|
SELECT '-1' as Result, '' ErrorDesc
|
99
|
RETURN '-1'
|
100
|
End
|
101
|
|
102
|
|
103
|
|
104
|
|
105
|
|
106
|
|