USP_DATAFORMTEMPLATE_EDIT_USP_BANKACCOUNTDEPOSITPAYMENT

The save procedure used by the edit dataform template "Bank Account Deposit Payment Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@DEPOSITID uniqueidentifier IN Deposit
@BANKACCOUNTDEPOSITPAYMENTID uniqueidentifier IN Deposit payment ID

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_USP_BANKACCOUNTDEPOSITPAYMENT (
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @DEPOSITID uniqueidentifier,
    @BANKACCOUNTDEPOSITPAYMENTID uniqueidentifier
)
as

    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    declare @POSTDATE datetime
    declare @POSTSTATUSCODE tinyint

    begin try

        if @BANKACCOUNTDEPOSITPAYMENTID is null 
            insert into dbo.BANKACCOUNTDEPOSITPAYMENT 
                (ID, DEPOSITID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values 
                (@ID, @DEPOSITID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);                        


    if @DEPOSITID is not null
    begin
          select
              @POSTDATE = POSTDATE,
              @POSTSTATUSCODE = POSTSTATUSCODE
          from
              dbo.BANKACCOUNTTRANSACTION

          where
              ID = @DEPOSITID


              -- handle updating the data
              update dbo.BANKACCOUNTDEPOSITPAYMENT set
                  DEPOSITID = @DEPOSITID
              where ID = @ID;

      if exists(select 1 from dbo.ADJUSTMENT where ADJUSTMENT.REVENUEID = @ID)
      begin
        update dbo.ADJUSTMENT
        set POSTDATE = @POSTDATE
        where REVENUEID = @ID and POSTSTATUSCODE <> 0

        -- update post date on the GL transaction records
        /* kwb Change to ANSI syntax
        update dbo.GLTRANSACTION
        set GLTRANSACTION.POSTDATE = @POSTDATE, GLTRANSACTION.DATECHANGED = @CURRENTDATE, GLTRANSACTION.CHANGEDBYID = @CHANGEAGENTID
        from dbo.GLTRANSACTION
        inner join dbo.REVENUEGLDISTRIBUTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
        where REVENUEGLDISTRIBUTION.REVENUEID = @ID and REVENUEGLDISTRIBUTION.OUTDATED = 0;
        */
        update dbo.GLTRANSACTION
        set GLTRANSACTION.POSTDATE = @POSTDATE
        GLTRANSACTION.DATECHANGED = @CURRENTDATE
        GLTRANSACTION.CHANGEDBYID = @CHANGEAGENTID
        where ID in (select GLTRANSACTIONID from dbo.REVENUEGLDISTRIBUTION where REVENUEGLDISTRIBUTION.REVENUEID = @ID and REVENUEGLDISTRIBUTION.OUTDATED = 0)

        -- update post date for unposted reversals
        /* kwb Change to ANSI syntax
        update dbo.GLTRANSACTION
        set GLTRANSACTION.POSTDATE = @POSTDATE, GLTRANSACTION.DATECHANGED = @CURRENTDATE, GLTRANSACTION.CHANGEDBYID = @CHANGEAGENTID
        from dbo.GLTRANSACTION
        inner join dbo.REVENUEGLDISTRIBUTION on GLTRANSACTION.REVERSEDGLTRANSACTIONID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
        where REVENUEGLDISTRIBUTION.REVENUEID = @ID and GLTRANSACTION.POSTSTATUSCODE = 1;\
        */
        update dbo.GLTRANSACTION
        set GLTRANSACTION.POSTDATE = @POSTDATE
        GLTRANSACTION.DATECHANGED = @CURRENTDATE
        GLTRANSACTION.CHANGEDBYID = @CHANGEAGENTID
        where REVERSEDGLTRANSACTIONID in (select GLTRANSACTIONID from dbo.REVENUEGLDISTRIBUTION where REVENUEGLDISTRIBUTION.REVENUEID = @ID and GLTRANSACTION.POSTSTATUSCODE = 1)

      end

      exec dbo.USP_BANKACCOUNTDEPOSIT_OVERWRITEPAYMENTDEBITACCOUNTS @ID, @DEPOSITID, @CHANGEAGENTID, @CURRENTDATE;

          declare @REFERENCE nvarchar(100);
          select @REFERENCE = REFERENCE from dbo.BANKACCOUNTTRANSACTION where ID = @DEPOSITID;

          if len(@REFERENCE) > 0
          begin
      /* Change to ANSI syntax
              update dbo.GLTRANSACTION set REFERENCE = @REFERENCE
              from dbo.FINANCIALTRANSACTION
              inner join dbo.REVENUEGLDISTRIBUTION on FINANCIALTRANSACTION.ID = REVENUEGLDISTRIBUTION.REVENUEID
              inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
              where FINANCIALTRANSACTION.ID = @ID and GLTRANSACTION.TRANSACTIONTYPECODE = 0 and GLTRANSACTION.POSTSTATUSCODE = 1;

              update dbo.REVENUEGLDISTRIBUTION set REFERENCE = @REFERENCE
              from FINANCIALTRANSACTION
              inner join dbo.REVENUEGLDISTRIBUTION on FINANCIALTRANSACTION.ID = REVENUEGLDISTRIBUTION.REVENUEID
              inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID
              where FINANCIALTRANSACTION.ID = @ID and REVENUEGLDISTRIBUTION.TRANSACTIONTYPECODE = 0 and GLTRANSACTION.POSTSTATUSCODE = 1;
        */
              update dbo.GLTRANSACTION 
        set REFERENCE = @REFERENCE,
        DATECHANGED = @CURRENTDATE
        CHANGEDBYID = @CHANGEAGENTID
        where ID in (select REVENUEGLDISTRIBUTION.GLTRANSACTIONID from dbo.FINANCIALTRANSACTION inner join dbo.REVENUEGLDISTRIBUTION on FINANCIALTRANSACTION.ID = REVENUEGLDISTRIBUTION.REVENUEID)
        and POSTSTATUSCODE = 1

              update dbo.REVENUEGLDISTRIBUTION 
        set REFERENCE = @REFERENCE,
        DATECHANGED = @CURRENTDATE
        CHANGEDBYID = @CHANGEAGENTID
        where ID in (select REVENUEGLDISTRIBUTION.ID from dbo.REVENUEGLDISTRIBUTION inner join dbo.GLTRANSACTION on GLTRANSACTION.ID = REVENUEGLDISTRIBUTION.GLTRANSACTIONID where REVENUEGLDISTRIBUTION.REVENUEID = @ID and REVENUEGLDISTRIBUTION.TRANSACTIONTYPECODE = 0 and GLTRANSACTION.POSTSTATUSCODE = 1)

      end
    end
    else
      update dbo.BANKACCOUNTDEPOSITPAYMENT set DEPOSITID = null where ID = @ID;

    end try

    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;