Project

General

Profile

TR_CONTRACT_DEL v1.txt

Luc Tran Van, 01/28/2021 03:42 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

    
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