USP_SALESDEPOSITTEMPLATE_DELETE

Executes the "Sales Deposit Template: Delete" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being deleted.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the delete.

Definition

Copy


                    CREATE procedure dbo.USP_SALESDEPOSITTEMPLATE_DELETE
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier
                    ) as
                        set nocount on;

                        begin try

                            if exists(select * from dbo.BUSINESSPROCESSSTATUS BPS inner join dbo.SALESDEPOSITTEMPLATE T on T.SALESDEPOSITPROCESSID = BPS.BUSINESSPROCESSPARAMETERSETID where BPS.BUSINESSPROCESSCATALOGID = '434AC0DD-A3F3-480C-B7DA-204C40205A68' and STATUSCODE = 1)
                                raiserror('BBERR_PROCESS_RUNNING', 16, 1);

                            --remove paymenttypes from the process's deposit templates

                            declare paymenttypes_cursor cursor LOCAL FAST_FORWARD for 
                            select [ID]
                            from dbo.[SALESDEPOSITTEMPLATEPAYMENTMETHOD]
                            where [SALESDEPOSITTEMPLATEID] = @ID

                            OPEN paymenttypes_cursor

                            declare @SALESDEPOSITTEMPLATEPAYMENTMETHODID uniqueidentifier = null
                            fetch next from paymenttypes_cursor
                            into @SALESDEPOSITTEMPLATEPAYMENTMETHODID

                            while @@FETCH_STATUS = 0
                            begin
                                exec dbo.USP_SALESDEPOSITTEMPLATEPAYMENTMETHOD_DELETEBYID_WITHCHANGEAGENTID @SALESDEPOSITTEMPLATEPAYMENTMETHODID, @CHANGEAGENTID

                                FETCH NEXT FROM paymenttypes_cursor
                                INTO @SALESDEPOSITTEMPLATEPAYMENTMETHODID
                            end
                            --When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long

                            close paymenttypes_cursor;
                            deallocate paymenttypes_cursor;

                            --remove deposit

                            exec dbo.USP_SALESDEPOSITTEMPLATE_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                        return 0;