USP_BANKACCOUNTDISBURSEMENTS_TRANSACTIONS_DELETE

Delete transactions linked to a disbursement

Parameters

Parameter Parameter Type Mode Description
@TRANSACTIONS xml IN
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


create procedure dbo.USP_BANKACCOUNTDISBURSEMENTS_TRANSACTIONS_DELETE(
    @TRANSACTIONS xml
    ,@ID uniqueidentifier
    ,@CHANGEAGENTID uniqueidentifier
    )
as
    begin try        

        declare @TempTbl table(
            [TRANSACTIONID] uniqueidentifier
            ,[TYPECODE] tinyint
            );

        insert into @TempTbl select
            T.[TRANSACTIONID]
            ,T.[TYPECODE]
        from dbo.UFN_BANKACCOUNTDISBURSEMENTTRANSACTIONS_FROMITEMLISTXML(@TRANSACTIONS) as T
        where T.[DELETE] != 0 AND T.[BANKACCOUNTTRANSACTIONID] = @ID ;

        declare @TRANSACTIONID uniqueidentifier;
        declare @TYPECODE tinyint;

        declare TRANSACTIONS cursor forward_only read_only for 
            select  
                [TRANSACTIONID]
                ,[TYPECODE]
            from @TempTbl;        


        open TRANSACTIONS;
        fetch next from TRANSACTIONS into 
                @TRANSACTIONID,    
                @TYPECODE;

        while @@fetch_status = 0
        begin
            if @TYPECODE = 101 
                exec dbo.USP_INVOICE_DELETE @TRANSACTIONID, @CHANGEAGENTID;

            if @TYPECODE = 102
                exec dbo.USP_CREDITMEMO_DELETE @TRANSACTIONID, @CHANGEAGENTID;

            fetch next from TRANSACTIONS into 
                @TRANSACTIONID,    
                @TYPECODE;
        end;
        close TRANSACTIONS;
        deallocate TRANSACTIONS;

    end try

    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch