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
|
|