Project

General

Profile

TR_CONTRACT_DEL.txt

Luc Tran Van, 01/28/2021 01:27 PM

 
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
BEGIN TRANSACTION
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
		ROLLBACK TRANSACTION
40
		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'
41
				FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
42
		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
43
		RETURN '-1'
44
	END
45
	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')) )
46
	BEGIN
47
		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'
48
				FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
49
		ROLLBACK TRANSACTION
50
		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
51
		RETURN '-1'
52
	END
53
	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')) )
54
	BEGIN
55
		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'
56
				FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
57
		ROLLBACK TRANSACTION
58
		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
59
		RETURN '-1'
60
	END
61
	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')) )
62
	BEGIN
63
		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'
64
				FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
65
		ROLLBACK TRANSACTION
66
		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
67
		RETURN '-1'
68
	END
69
	IF((SELECT A.AUTH_STATUS FROM TR_PO_MASTER A WHERE A.CONTRACT_ID =  @p_CONTRACT_ID) = 'A')
70
	BEGIN
71
		UPDATE TR_CONTRACT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
72
		UPDATE TR_CONTRACT_DT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
73
		UPDATE TR_CONTRACT_PAYMENT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
74
	END
75
	ELSE
76
	BEGIN
77
		--DELETE FROM TR_CONTRACT Where CONTRACT_ID = @p_CONTRACT_ID
78
		--DELETE FROM TR_CONTRACT_DT WHERE CONTRACT_ID = @p_CONTRACT_ID
79
		--DELETE FROM TR_CONTRACT_PAYMENT WHERE CONTRACT_ID = @p_CONTRACT_ID
80
		UPDATE TR_CONTRACT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
81
		UPDATE TR_CONTRACT_DT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
82
		UPDATE TR_CONTRACT_PAYMENT SET RECORD_STATUS = '0' WHERE CONTRACT_ID = @p_CONTRACT_ID
83
	END
84
		
85
COMMIT TRANSACTION
86
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
87
RETURN '0'
88

    
89
ABORT:
90
BEGIN
91
		ROLLBACK TRANSACTION
92
		SELECT '-1' as Result, '' ErrorDesc
93
		RETURN '-1'
94
End
95

    
96

    
97

    
98

    
99

    
100