USP_CREDIT_DELETE

Executes the "Delete Credit" 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_CREDIT_DELETE
            (
                @ID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier
            )
            as begin

                --mark all memberships as active

                declare @MEMBERSHIPID uniqueidentifier;

                declare memberships_cursor cursor LOCAL FAST_FORWARD for 
                select MEMBERSHIPID from CREDITITEM 
                    inner join SALESORDERITEMMEMBERSHIP on CREDITITEM.SALESORDERITEMID = SALESORDERITEMMEMBERSHIP.ID
                    where CREDITID = @ID;

                OPEN memberships_cursor

                FETCH NEXT FROM memberships_cursor
                INTO @MEMBERSHIPID

                while @@FETCH_STATUS = 0
                begin
                    exec dbo.USP_MEMBERSHIP_MARKACTIVE @ID = @MEMBERSHIPID, @CHANGEAGENTID = @CHANGEAGENTID

                    FETCH NEXT FROM memberships_cursor
                    INTO @MEMBERSHIPID
                end

                close memberships_cursor
                deallocate memberships_cursor


                --delete all credit payments

                declare @CREDITPAYMENTID uniqueidentifier;

                declare payments_cursor cursor LOCAL FAST_FORWARD for 
                select ID from dbo.CREDITPAYMENT where CREDITID = @ID;

                OPEN payments_cursor

                FETCH NEXT FROM payments_cursor
                INTO @CREDITPAYMENTID

                while @@FETCH_STATUS = 0
                begin
                    exec USP_CREDITPAYMENT_DELETEBYID_WITHCHANGEAGENTID @CREDITPAYMENTID, @CHANGEAGENTID

                    FETCH NEXT FROM payments_cursor
                    INTO @CREDITPAYMENTID
                end

                close payments_cursor
                deallocate payments_cursor

                --delete the credit

                exec USP_CREDIT_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID

                return 0;

            end