USP_DATAFORMTEMPLATE_VIEW_BANKACCOUNTADJUSTMENT

The load procedure used by the view dataform template "Bank Account Adjustment Page Expression View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@BANKACCOUNTID uniqueidentifier INOUT BANKACCOUNTID
@BANKACCOUNTNAME nvarchar(100) INOUT BANKACCOUNTNAME
@AMOUNT numeric(19, 4) INOUT Amount
@TRANSACTIONTYPECODE tinyint INOUT Type
@TRANSACTIONTYPE nvarchar(100) INOUT TRANSACTIONTYPE
@TRANSFERBANKACCOUNTID uniqueidentifier INOUT Transfer account
@TRANSFERBANKACCOUNTNAME nvarchar(100) INOUT Transfer account
@REFERENCE nvarchar(100) INOUT Reference
@ADJUSTMENTDATE datetime INOUT Adjustment date
@POSTSTATUSCODE tinyint INOUT Post status
@POSTDATE datetime INOUT Post date
@STATUSCODE tinyint INOUT Status code
@ORIGINALADJUSTMENTPOSTED bit INOUT Original adjustment posted
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SHOWGLINFO tinyint INOUT Show GL Information
@BASECURRENCYID uniqueidentifier INOUT Base currency ID
@TRANSACTIONCURRENCYID uniqueidentifier INOUT Transaction currency ID
@BASEAMOUNT money INOUT Base amount
@EDITACTIONENABLED bit INOUT EDITACTIONENABLED
@HASSYSTEMDISTRIBUTIONS bit INOUT HASSYSTEMDISTRIBUTIONS
@ISORIGINALADJUSTMENT bit INOUT ISORIGINALADJUSTMENT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_BANKACCOUNTADJUSTMENT
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @BANKACCOUNTID uniqueidentifier = null output,
    @BANKACCOUNTNAME nvarchar(100) = null output,
    @AMOUNT numeric(19,4) = null output,
    @TRANSACTIONTYPECODE tinyint = null output,
    @TRANSACTIONTYPE nvarchar(100) = null output,
    @TRANSFERBANKACCOUNTID uniqueidentifier = null output,
    @TRANSFERBANKACCOUNTNAME nvarchar(100) = null output,
    @REFERENCE nvarchar(100) = null output,
    @ADJUSTMENTDATE datetime = null output,
    @POSTSTATUSCODE tinyint = null output,
    @POSTDATE datetime = null output,
    @STATUSCODE tinyint = null output,
    @ORIGINALADJUSTMENTPOSTED bit = null output,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @SHOWGLINFO tinyint = null output,
    @BASECURRENCYID uniqueidentifier = null output,
    @TRANSACTIONCURRENCYID uniqueidentifier = null output,
  @BASEAMOUNT money = null output    ,
  @EDITACTIONENABLED bit = null output
    ,@HASSYSTEMDISTRIBUTIONS bit = null output
    ,@ISORIGINALADJUSTMENT bit = null output
)
as
    set nocount on;

    -- be sure to set this, in case the select returns no rows
    set @DATALOADED = 0;

  declare @MULTICURRENCYENABLED bit;
    declare @TRANSFERADJUSTMENTID uniqueidentifier;
  set @MULTICURRENCYENABLED = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency');

    -- populate the output parameters, which correspond to fields on the form.  Note that
    -- we set @DATALOADED = 1 to indicate that the load was successful.  Otherwise, the system
    -- will display a "no data loaded" message.
    select @DATALOADED = 1,
           @BANKACCOUNTID = BANKACCOUNTTRANSACTION.BANKACCOUNTID,
           @BANKACCOUNTNAME = dbo.UFN_BANKACCOUNT_GETACCOUNTNAME(BANKACCOUNTTRANSACTION.BANKACCOUNTID),
           @AMOUNT = BANKACCOUNTTRANSACTION.TRANSACTIONAMOUNT,
           @TRANSACTIONTYPECODE = BANKACCOUNTTRANSACTION.TRANSACTIONTYPECODE,
           @TRANSACTIONTYPE = BANKACCOUNTTRANSACTION.TRANSACTIONTYPE,
           @TRANSFERBANKACCOUNTID = BANKACCOUNTTRANSACTION.TRANSFERBANKACCOUNTID,
           @TRANSFERBANKACCOUNTNAME = dbo.UFN_BANKACCOUNT_GETACCOUNTNAME(BANKACCOUNTTRANSACTION.TRANSFERBANKACCOUNTID),
           @REFERENCE = BANKACCOUNTTRANSACTION.REFERENCE,
           @ADJUSTMENTDATE = BANKACCOUNTTRANSACTION.TRANSACTIONDATE,
           @POSTSTATUSCODE = BANKACCOUNTTRANSACTION.POSTSTATUSCODE,
           @POSTDATE = BANKACCOUNTTRANSACTION.POSTDATE,
           @STATUSCODE = BANKACCOUNT.STATUSCODE,
       @BASEAMOUNT = BANKACCOUNTTRANSACTION.AMOUNT
       ,@TRANSACTIONCURRENCYID = BANKACCOUNT.TRANSACTIONCURRENCYID
       ,@EDITACTIONENABLED = case when BANKACCOUNT.STATUSCODE = 0 THEN 0 else case when BANKACCOUNTTRANSACTION.POSTSTATUSCODE=0 then 0 else case when @MULTICURRENCYENABLED=0 then 1 else case when BANKACCOUNTADJUSTMENT.ISORIGINALADJUSTMENT=1 then 1 else 0 end end end end
             ,@ISORIGINALADJUSTMENT = BANKACCOUNTADJUSTMENT.ISORIGINALADJUSTMENT
             ,@TRANSFERADJUSTMENTID = BANKACCOUNTADJUSTMENT.TRANSFERADJUSTMENTID
    from dbo.BANKACCOUNTTRANSACTION
    inner join dbo.BANKACCOUNTADJUSTMENT on BANKACCOUNTTRANSACTION.ID = BANKACCOUNTADJUSTMENT.ID
    inner join dbo.BANKACCOUNT on BANKACCOUNTTRANSACTION.BANKACCOUNTID = BANKACCOUNT.ID
    where BANKACCOUNTTRANSACTION.ID = @ID;

    set @ORIGINALADJUSTMENTPOSTED = (select POSTSTATUSCODE from dbo.BANKACCOUNTTRANSACTION
            join dbo.BANKACCOUNTADJUSTMENT on BANKACCOUNTTRANSACTION.ID = BANKACCOUNTADJUSTMENT.ID
            where BANKACCOUNTADJUSTMENT.TRANSFERADJUSTMENTID = @ID and ISORIGINALADJUSTMENT = 1 );
    if @ORIGINALADJUSTMENTPOSTED = 0  
        set @ORIGINALADJUSTMENTPOSTED = 1
    else
        set @ORIGINALADJUSTMENTPOSTED = 0;
    set @SHOWGLINFO = 0
    if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('133F9BCA-00F1-4007-9792-586B931340C6') != 0
    begin
        if dbo.UFN_PDACCOUNTSYSTEM_GETNUMBEROFSYSTEMSFORUSER(@CURRENTAPPUSERID) > 1
            set @SHOWGLINFO = 1
    end

    if exists(select T.ID from dbo.GLTRANSACTION T 
        inner join dbo.BANKACCOUNTTRANSACTIONGLDISTRIBUTION D on D.GLTRANSACTIONID = T.ID 
        where D.BANKACCOUNTTRANSACTIONID = CASE WHEN @ISORIGINALADJUSTMENT = 1 THEN @ID ELSE @TRANSFERADJUSTMENTID END 
        and T.SYSTEMDISTRIBUTION = 1)
        set @HASSYSTEMDISTRIBUTIONS = 1;
    else
        set @HASSYSTEMDISTRIBUTIONS = 0;

    if @ISORIGINALADJUSTMENT = 0 and @POSTSTATUSCODE = 2 and @ORIGINALADJUSTMENTPOSTED = 1
        set @EDITACTIONENABLED = 0;

    return 0;