Project

General

Profile

Chặn xóa gửi duyệt BDS.txt

Luc Tran Van, 03/10/2022 02:45 PM

 
1

    
2
ALTER PROCEDURE [dbo].[RET_REPAIR_Del]
3
@RP_ID	varchar(15)
4
AS
5
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
6
	IF ( NOT EXISTS ( SELECT * FROM RET_REPAIR WHERE  RP_ID= @RP_ID))
7
		SET @ERRORSYS = 'RETR-00001'
8
	IF @ERRORSYS <> ''
9
	BEGIN
10
		SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS 
11
		RETURN '0'
12
	END
13
BEGIN TRANSACTION
14
	DECLARE @L_CURRENT_ID_DOWN VARCHAR(15),  @L_CURRENT_ID_TOP  VARCHAR(15)
15

    
16
	IF( (SELECT AUTH_STATUS FROM RET_REPAIR WHERE  RP_ID= @RP_ID) = 'A')
17
	BEGIN
18
		UPDATE RET_REPAIR SET RECORD_STATUS = '0' 
19
		IF @@Error <> 0 GOTO ABORT
20
	END
21
	ELSE
22
	BEGIN
23
		
24
			------------BAODNQ 10/3/2022 : KO CHO XÓA THÔNG TIN SỬA CHỮA BDS KHI ĐÃ GỬI YC PHÊ DUYỆT------
25
			IF(EXISTS(SELECT * FROM RET_REPAIR WHERE RP_ID = @RP_ID AND IS_SEND_APPR = 'Y'))
26
			BEGIN
27
				ROLLBACK TRANSACTION
28
				SELECT '-1' as Result, N'Không thể xóa thông tin sửa chữa BDS đã được gửi yêu cầu phê duyệt' ErrorDesc
29
				RETURN '-1'
30
			END
31

    
32
		    --TH XOA TRONG RECORD CO ISLEAF=Y
33
			IF((SELECT A.ISLEAF  FROM RET_REPAIR A WHERE A.RP_ID=@RP_ID)='Y')
34
			BEGIN
35
			    --LAY ID DONG TREN
36
				SET @L_CURRENT_ID_TOP =(SELECT RP_ID FROM RET_REPAIR 
37
			    WHERE RP_ID=(SELECT A.PARENT_ID FROM RET_REPAIR A WHERE A.RP_ID=@RP_ID))
38
				--UPDATE ISLEAF DONG TREN THANH Y
39
			    UPDATE RET_REPAIR SET ISLEAF='Y'
40
				WHERE RP_ID=@L_CURRENT_ID_TOP
41
			END
42
			--TH XOA TRONG RECORD CO ISLEAF=N
43
			ELSE
44
			BEGIN
45
			 --LAY ID CUA THANG TREN DONG HIEN TAI	
46
			 SET @L_CURRENT_ID_TOP= (SELECT RP_ID FROM RET_REPAIR 
47
			 WHERE RP_ID=(SELECT A.PARENT_ID FROM RET_REPAIR A WHERE A.RP_ID=@RP_ID))							
48
			 --LAY ID CUA DONG DUOI
49
			 SET @L_CURRENT_ID_DOWN =(SELECT RP_ID FROM RET_REPAIR 
50
			  WHERE PARENT_ID=(SELECT A.RP_ID FROM RET_REPAIR A WHERE A.RP_ID=@RP_ID))
51
			   UPDATE RET_REPAIR SET PARENT_ID=@L_CURRENT_ID_TOP
52
			   WHERE RP_ID=@L_CURRENT_ID_DOWN
53
			END
54
			Delete FROM RET_REPAIR WHERE  RP_ID= @RP_ID
55
		IF @@Error <> 0 GOTO ABORT
56
	 END	
57
COMMIT TRANSACTION
58
SELECT '0' as Result, '' ErrorDesc
59
RETURN '0'
60

    
61
ABORT:
62
BEGIN
63
		ROLLBACK TRANSACTION
64
		SELECT '-1' as Result, '' ErrorDesc
65
		RETURN '-1'
66
End
67

    
68

    
69

    
70

    
71

    
72