USP_ACCOUNTINGELEMENT_INUSE

Returns information about whether an accounting element is used in transactions, ledger accounts, subledger accounts, or balancing entries.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@ELEMENTDEFINITION nvarchar(100) INOUT
@ELEMENTVALUE nvarchar(100) INOUT
@HASACTIVITY bit INOUT
@INLEDGERACCOUNT bit INOUT
@INCONTROLACCOUNT bit INOUT
@INBALANCINGENTRY bit INOUT
@INCLOSINGREQUIREMENT bit INOUT

Definition

Copy


CREATE procedure dbo.USP_ACCOUNTINGELEMENT_INUSE
(
    @ID uniqueidentifier,
  @ELEMENTDEFINITION nvarchar(100) = null output,
  @ELEMENTVALUE nvarchar(100) = null output,
  @HASACTIVITY bit = null output,
  @INLEDGERACCOUNT bit = null output,
  @INCONTROLACCOUNT bit = null output,
  @INBALANCINGENTRY bit = null output,
  @INCLOSINGREQUIREMENT bit = null output
)
as
    set nocount on;

  select @ELEMENTDEFINITION = PDACCOUNTSTRUCTURE.DESCRIPTION,
    @ELEMENTVALUE = PDACCOUNTSEGMENTVALUE.SHORTDESCRIPTION
  from dbo.PDACCOUNTSTRUCTURE 
    inner join dbo.PDACCOUNTSEGMENTVALUE on PDACCOUNTSEGMENTVALUE.PDACCOUNTSTRUCTUREID = PDACCOUNTSTRUCTURE.ID
  where PDACCOUNTSEGMENTVALUE.ID = @ID

  -- Journal entry

    select @HASACTIVITY = 1
  from
    (select 
     JE.DATAELEMENT1ID, JE.DATAELEMENT2ID, JE.DATAELEMENT3ID, JE.DATAELEMENT4ID, JE.DATAELEMENT5ID
        ,JE.DATAELEMENT6ID, JE.DATAELEMENT7ID, JE.DATAELEMENT8ID, JE.DATAELEMENT9ID, JE.DATAELEMENT10ID
        ,JE.DATAELEMENT11ID, JE.DATAELEMENT12ID, JE.DATAELEMENT13ID, JE.DATAELEMENT14ID, JE.DATAELEMENT15ID
        ,JE.DATAELEMENT16ID, JE.DATAELEMENT17ID, JE.DATAELEMENT18ID, JE.DATAELEMENT19ID, JE.DATAELEMENT20ID
        ,JE.DATAELEMENT21ID, JE.DATAELEMENT22ID, JE.DATAELEMENT23ID, JE.DATAELEMENT24ID, JE.DATAELEMENT25ID
        ,JE.DATAELEMENT26ID, JE.DATAELEMENT27ID, JE.DATAELEMENT28ID, JE.DATAELEMENT29ID, JE.DATAELEMENT30ID    
      from dbo.JOURNALENTRY JE
        inner join FINANCIALTRANSACTIONLINEITEM FTLI on JE.FINANCIALTRANSACTIONLINEITEMID = FTLI.ID
        left join FINANCIALTRANSACTION FT on FTLI.FINANCIALTRANSACTIONID = FT.ID
      where FTLI.POSTSTATUSCODE = 1
        and FTLI.DELETEDON is null
        and (FT.ID is null or FT.DELETEDON IS NULL)
    ) P
  unpivot
    (DATAELEMENTID for dColumn in
      (DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID
        ,DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID
        ,DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID
        ,DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID
        ,DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID
        ,DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID)
    ) UNPVT
  where DATAELEMENTID = @ID

  -- Ledger account

  select @INLEDGERACCOUNT = 1 from
    (select 
      DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID
        ,DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID
        ,DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID
        ,DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID
        ,DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID
        ,DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID
      from dbo.GLACCOUNT
    ) P
  unpivot
    (DATAELEMENTID for dColumn in
      (DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID
        ,DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID
        ,DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID
        ,DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID
        ,DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID
        ,DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID)
    ) UNPVT
  where DATAELEMENTID = @ID

  -- Control account

  select @INCONTROLACCOUNT = 1 from
    (select 
      DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID
        ,DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID
        ,DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID
        ,DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID
        ,DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID
        ,DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID
      from dbo.CONTROLACCOUNT
    ) P
  unpivot
    (DATAELEMENTID for dColumn in
      (DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID
        ,DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID
        ,DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID
        ,DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID
        ,DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID
        ,DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID)
    ) UNPVT
  where DATAELEMENTID = @ID

  -- Balancing entry

  select @INBALANCINGENTRY = 1 from
    (select
      DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID
        ,DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID
        ,DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID
        ,DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID
        ,DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID
        ,DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID
        from dbo.BALANCINGENTRYELEMENT
      ) P
    unpivot
      (DATAELEMENTID for dColumn in
      (DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID
        ,DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID
        ,DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID
        ,DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID
        ,DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID
        ,DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID)
    ) UNPVT
  where DATAELEMENTID = @ID

  -- Closing element

  declare @ISCLOSINGELEMENT bit = 0
  select @ISCLOSINGELEMENT = ACS.CLOSINGELEMENT
  from dbo.PDACCOUNTSEGMENTVALUE DE
    inner join dbo.PDACCOUNTSTRUCTURE ACS on DE.PDACCOUNTSTRUCTUREID = ACS.ID

  set @INCLOSINGREQUIREMENT = 0
  if @ISCLOSINGELEMENT > 0
  begin
    --Check to see if the element is used as a specific closing requirement element

    select @INCLOSINGREQUIREMENT = 1
    from dbo.CLOSINGREQUIREMENT
    where DATAELEMENTID = @ID

    --If not, check to see if it is included in any selections used for selected closing elements

    if @INCLOSINGREQUIREMENT <> 1
      select @INCLOSINGREQUIREMENT = 1
      from dbo.CLOSINGREQUIREMENT
        cross apply dbo.UFN_IDSETREADER_GETRESULTS_GUID(CLOSINGREQUIREMENT.DATAELEMENTQUERYID) IDSET
      where IDSET.ID = @ID
  end

    return 0;