USP_BANKACCOUNTDISBURSEMENTS_PURGE

Allows purging of multiple checks

Parameters

Parameter Parameter Type Mode Description
@BANKACCOUNTTRANSACTIONIDS UDT_GENERICID IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_BANKACCOUNTDISBURSEMENTS_PURGE(
    @BANKACCOUNTTRANSACTIONIDS UDT_GENERICID readonly
    ,@CHANGEAGENTID uniqueidentifier
    )
as

    set nocount on;

    declare @CURRENTDATE datetime;
    set @CURRENTDATE = getdate();

    if @CHANGEAGENTID is null  
    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    begin try
        -- update the financial transaction for the check to deleted

        update dbo.FINANCIALTRANSACTION set DELETEDON = GETDATE() WHERE ID in
            (select ID from @BANKACCOUNTTRANSACTIONIDS);

        -- update bank account transaction for the check to deleted

        update dbo.BANKACCOUNTTRANSACTION set
            DELETED = 1
            DELETEDDATE = GETDATE()
        where ID in
            (select ID from @BANKACCOUNTTRANSACTIONIDS);

        -- Insert "purged" records into the history tab

        insert into dbo.DISBURSEMENTHISTORY
      (
          ID
            ,FINANCIALTRANSACTIONID
          ,ACTIONCODE
          ,ORIGINALNUMBER
        -- Standard stuff

          ,DATEADDED
          ,DATECHANGED
          ,CHANGEDBYID
          ,ADDEDBYID
      )
        select
            NEWID()
            ,BAT.ID
            ,2 --purged

            ,BAT.TRANSACTIONNUMBER
            -- Standard stuff

          ,@CURRENTDATE
          ,@CURRENTDATE
          ,@CHANGEAGENTID
          ,@CHANGEAGENTID
        from @BANKACCOUNTTRANSACTIONIDS BATID
        inner join dbo.BANKACCOUNTTRANSACTION BAT on BAT.ID = BATID.ID
    end try

    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch