USP_DISBURSEMENTTRANSACTION_REMOVE

Executes the "Disbursement Transaction: Remove" record operation.

Parameters

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

Definition

Copy


CREATE procedure dbo.USP_DISBURSEMENTTRANSACTION_REMOVE
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier
)
as begin

    declare @DATECHANGED datetime;
    declare @DPDID uniqueidentifier = @ID;

    set @DATECHANGED = getdate();

    update dbo.FINANCIALTRANSACTIONAPPLICATION set 
        AMOUNT = 0
        ,CHANGEDBYID = @CHANGEAGENTID
        ,DATECHANGED = @DATECHANGED
    from dbo.DISBURSEMENTPROCESSDISBURSEMENT DPD
        inner join dbo.FINANCIALTRANSACTIONAPPLICATION FTA on DPD.ID = FTA.FINANCIALTRANSACTIONID
    where DPD.ID = @ID;

    -- nothing found during bulk update means it wasn't a DPD ID

    if @@ROWCOUNT = 0 
        begin
            update dbo.FINANCIALTRANSACTIONAPPLICATION set 
                AMOUNT = 0
                ,CHANGEDBYID = @CHANGEAGENTID
                ,DATECHANGED = @DATECHANGED
            where ID = @ID;

            -- nothing found again is an error

            if @@ROWCOUNT = 0 
                begin
                    exec dbo.USP_RAISE_ERROR;
                    return 1;
                end

            -- get the DPD ID

            select 
                @DPDID = FT.ID
            from dbo.FINANCIALTRANSACTIONAPPLICATION FTA
                inner join dbo.FINANCIALTRANSACTION FT on FT.ID = FTA.FINANCIALTRANSACTIONID
            where FTA.ID = @ID
                and FT.TYPECODE = 255;

            -- update any discounts to 0 as well.

            update FTD set 
                AMOUNT = 0
                ,CHANGEDBYID = @CHANGEAGENTID
                ,DATECHANGED = @DATECHANGED
            from dbo.FINANCIALTRANSACTIONAPPLICATION FTA
                inner join dbo.FINANCIALTRANSACTIONAPPLICATION FTD on 
                    FTA.FINANCIALTRANSACTIONSCHEDULEID = FTD.FINANCIALTRANSACTIONSCHEDULEID and FTD.TYPECODE = 1
            where FTA.ID = @ID
                and FTA.TYPECODE = 0;
        end

    -- update the DPD ID associated

    exec dbo.USP_DISBURSEMENTPROCESS_UPDATE_DISBURSEMENTPROCESSDISBURSEMENT_AMOUNT 
        @DISBURSEMENTPROCESSDISBURSEMENTID = @DPDID
        , @CHANGEAGENTID = @CHANGEAGENTID
        , @DATECHANGED = @DATECHANGED;

    return 0;

end