ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Del] @p_REQ_PAY_ID varchar(15), @p_USER_LOGIN varchar(20) AS DECLARE @REQ_CODE VARCHAR(50), @BRANCH_ID VARCHAR(15), @MAKER_ID VARCHAR(15) SET @REQ_CODE =(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) DECLARE @ERRORSYS NVARCHAR(15) = '' --IF ( NOT EXISTS ( SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID)) -- SET @ERRORSYS = 'REQ-00002' --IF @ERRORSYS <> '' --BEGIN -- SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS -- RETURN '0' --END BEGIN TRANSACTION --IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS <>'E')) --BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được gửi phê duyệt! Bạn chỉ được phép xóa bản nháp!' ErrorDesc -- RETURN '-1' --END IF((SELECT AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'A') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: ' +(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được trưởng đơn vị phê duyệt, bạn không được phép xóa!' ErrorDesc RETURN '-1' END IF((SELECT AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'A') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: ' +(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được trưởng đơn vị phê duyệt, bạn không được phép xóa!' ErrorDesc RETURN '-1' END IF((SELECT TOP 1 MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) <> @p_USER_LOGIN) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' do người dùng ' + (SELECT TOP 1 MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) + N' tạo, bạn không được phép xóa!' ErrorDesc RETURN '-1' END SET @BRANCH_ID =(SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) SET @MAKER_ID =(SELECT MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME =@MAKER_ID AND (RoleName ='DISABLE' OR AUTH_STATUS ='U'))) BEGIN IF(NOT EXISTS(SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID AND ISNULL(AUTH_STATUS_KT,'') ='A')) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND STATUS_JOB ='C')) BEGIN UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS ='D' WHERE PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_INVOICE SET AUTH_STATUS ='D', AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID COMMIT TRANSACTION SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+@REQ_CODE+ N' đã được hủy thành công.Bạn có thể tra cứu phiếu ở tình trạng Phiếu bị hủy!' AS ErrorDesc RETURN '0' --RETURN END END END IF(NOT EXISTS(SELECT * FROM TL_USER WHERE TLNANME =@MAKER_ID AND TLSUBBRID =@BRANCH_ID)) BEGIN IF(NOT EXISTS(SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID AND ISNULL(AUTH_STATUS_KT,'') ='A')) BEGIN IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND STATUS_JOB ='C')) BEGIN UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS ='D' WHERE PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_INVOICE SET AUTH_STATUS ='D', AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID= @p_REQ_PAY_ID COMMIT TRANSACTION SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+@REQ_CODE+ N' đã được hủy thành công.Bạn có thể tra cứu phiếu ở tình trạng Phiếu bị hủy!' AS ErrorDesc RETURN '0' END END END IF((SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'A') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được kiểm soát viên duyệt, bạn không được phép xóa!' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND STATUS_JOB ='C')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã được điều phối và xử lý ở phòng kế toán. Bạn không được phép xóa!' ErrorDesc RETURN '-1' END IF((SELECT AUTH_STATUS_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'R') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đang bị KSV từ chối, bạn không được phép xóa!' ErrorDesc RETURN '-1' END IF((SELECT AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID) = 'R') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đang ở tình trạng từ chối, bạn không được phép xóa!' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT * FROM PL_PROCESS WHERE REQ_ID =@p_REQ_PAY_ID AND CHECKER_ID IN ('nghihm','huongvt','chaudtm','hainth'))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đã có lịch sử xử lý.Vui lòng tiếp tục thao tác trên phiếu này. Bạn không được phép xóa!' ErrorDesc RETURN '-1' END ELSE BEGIN Delete FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID= @p_REQ_PAY_ID Delete FROM TR_REQ_PAYMENT_DT WHERE PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_CAT WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_SCHEDULE WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_SERVICE WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_PERIOD WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_ATTACH WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID --doanptt 210622 xóa định mức chi phí khi xóa phiếu DELETE FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_JOB WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_JOB_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_DRIVE WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_DRIVE_DT WHERE REQ_PAY_ID= @p_REQ_PAY_ID DELETE FROM TR_REQ_PAY_REQUEST_CAR WHERE REQ_PAY_ID= @p_REQ_PAY_ID IF @@Error <> 0 GOTO ABORT END COMMIT TRANSACTION SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Phiếu đề nghị thanh toán số : '+@REQ_CODE+ N' đã được xóa thành công khỏi hệ thống!' AS ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' AS ErrorDesc RETURN '-1' End