Project

General

Profile

RET_REPAIR_Del.txt

Sửa chữa BDS - Luc Tran Van, 03/10/2022 02:54 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(EXISTS(SELECT AUTH_STATUS FROM RET_REPAIR WHERE  RP_ID= @RP_ID AND AUTH_STATUS  = 'A'))
17
	BEGIN
18
		UPDATE RET_REPAIR SET RECORD_STATUS = '0' 
19
		WHERE RP_ID = @RP_ID
20
		IF @@Error <> 0 GOTO ABORT
21
	END
22
	ELSE
23
	BEGIN
24
		
25
			------------BAODNQ 10/3/2022 : KO CHO XÓA THÔNG TIN SỬA CHỮA BDS KHI ĐÃ GỬI YC PHÊ DUYỆT------
26
			IF(EXISTS(SELECT * FROM RET_REPAIR WHERE RP_ID = @RP_ID AND IS_SEND_APPR = 'Y'))
27
			BEGIN
28
				ROLLBACK TRANSACTION
29
				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
30
				RETURN '-1'
31
			END
32

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

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

    
69

    
70

    
71

    
72

    
73