USP_DATAFORMTEMPLATE_EDIT_REVENUESPLIT_BUSINESSUNIT

The save procedure used by the edit dataform template "Revenue Split Business Unit Edit Data 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.
@BUSINESSUNITS xml IN Business units
@OVERRIDEBUSINESSUNITS bit IN Override business units
@REASON uniqueidentifier IN Reason

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REVENUESPLIT_BUSINESSUNIT
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @BUSINESSUNITS xml,
  @OVERRIDEBUSINESSUNITS bit,
  @REASON uniqueidentifier
)
as
  set nocount on;

  begin try
    declare @CONTEXTCACHE varbinary(128);
    set @CONTEXTCACHE = context_info();
    set context_info @CHANGEAGENTID;

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

    declare @CURRENTDATE as datetime = getdate();
    declare @BASECURRENCYID uniqueidentifier;
    declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;

    if @OVERRIDEBUSINESSUNITS = 1
    begin
      --exec dbo.USP_REVENUESPLITBUSINESSUNIT_GETBUSINESSUNITS_UPDATEFROMXML @ID, @BUSINESSUNITS, @CHANGEAGENTID;  
      set @BUSINESSUNITS = dbo.UFN_REVENUESPLITBUSINESSUNIT_CONVERTAMOUNTSINXML(@BUSINESSUNITS,@BASECURRENCYID,@ORGANIZATIONEXCHANGERATEID)
      exec dbo.USP_REVENUESPLIT_GETBUSINESSSUNIT_UPDATEFROMXML @ID, @BUSINESSUNITS, @CHANGEAGENTID;

      update dbo.FINANCIALTRANSACTIONLINEITEM set 
        CHANGEDBYID = @CHANGEAGENTID,
        DATECHANGED = @CURRENTDATE
      where
        ID = @ID;

     update dbo.REVENUESPLIT_EXT set 
        OVERRIDEBUSINESSUNITS = 1
        REVENUESPLITBUSINESSUNITOVERRIDECODEID = @REASON
      where
        ID = @ID;

    end
    else
    begin
      delete from dbo.REVENUESPLITBUSINESSUNIT where REVENUESPLITID = @ID

      update dbo.REVENUESPLIT_EXT set 
        OVERRIDEBUSINESSUNITS = 0
        REVENUESPLITBUSINESSUNITOVERRIDECODEID = null
      where
        ID = @ID;

     update dbo.FINANCIALTRANSACTIONLINEITEM set 
        CHANGEDBYID = @CHANGEAGENTID,
        DATECHANGED = @CURRENTDATE
      where
        ID = @ID;

      declare @REVENUEID uniqueidentifier;
      select @REVENUEID = FINANCIALTRANSACTIONID from dbo.FINANCIALTRANSACTIONLINEITEM inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID where FINANCIALTRANSACTIONLINEITEM.ID = @ID and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1

      exec dbo.USP_REVENUESPLIT_APPLYBUSINESSUNITS @REVENUEID, @CHANGEAGENTID, @CURRENTDATE;
    end

    if not @CONTEXTCACHE is null
        set context_info @CONTEXTCACHE;

  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;