USP_CONTROLACCOUNT_INUSE

Checks to see if a subsidiary ledger account is in use. Throws an error based on usage.

Parameters

Parameter Parameter Type Mode Description
@CONTROLACCOUNTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_CONTROLACCOUNT_INUSE(@CONTROLACCOUNTID uniqueidentifier)
as
begin
  set nocount on;
  declare @CONTROLINUSE bit = 0;

  select
    @CONTROLINUSE = 1
  from dbo.CONTROLACCOUNT C
  inner join dbo.JOURNALENTRY J on
    (C.DATAELEMENT1ID is null or J.DATAELEMENT1ID = C.DATAELEMENT1ID) and
    (C.DATAELEMENT2ID is null or J.DATAELEMENT2ID = C.DATAELEMENT2ID) and
    (C.DATAELEMENT3ID is null or J.DATAELEMENT3ID = C.DATAELEMENT3ID) and
    (C.DATAELEMENT4ID is null or J.DATAELEMENT4ID = C.DATAELEMENT4ID) and
    (C.DATAELEMENT5ID is null or J.DATAELEMENT5ID = C.DATAELEMENT5ID) and
    (C.DATAELEMENT6ID is null or J.DATAELEMENT6ID = C.DATAELEMENT6ID) and
    (C.DATAELEMENT7ID is null or J.DATAELEMENT7ID = C.DATAELEMENT7ID) and
    (C.DATAELEMENT8ID is null or J.DATAELEMENT8ID = C.DATAELEMENT8ID) and
    (C.DATAELEMENT9ID is null or J.DATAELEMENT9ID = C.DATAELEMENT9ID) and
    (C.DATAELEMENT10ID is null or J.DATAELEMENT10ID = C.DATAELEMENT10ID) and
    (C.DATAELEMENT11ID is null or J.DATAELEMENT11ID = C.DATAELEMENT11ID) and
    (C.DATAELEMENT12ID is null or J.DATAELEMENT12ID = C.DATAELEMENT12ID) and
    (C.DATAELEMENT13ID is null or J.DATAELEMENT13ID = C.DATAELEMENT13ID) and
    (C.DATAELEMENT14ID is null or J.DATAELEMENT14ID = C.DATAELEMENT14ID) and
    (C.DATAELEMENT15ID is null or J.DATAELEMENT15ID = C.DATAELEMENT15ID) and
    (C.DATAELEMENT16ID is null or J.DATAELEMENT16ID = C.DATAELEMENT16ID) and
    (C.DATAELEMENT17ID is null or J.DATAELEMENT17ID = C.DATAELEMENT17ID) and
    (C.DATAELEMENT18ID is null or J.DATAELEMENT18ID = C.DATAELEMENT18ID) and
    (C.DATAELEMENT19ID is null or J.DATAELEMENT19ID = C.DATAELEMENT19ID) and
    (C.DATAELEMENT20ID is null or J.DATAELEMENT20ID = C.DATAELEMENT20ID) and
    (C.DATAELEMENT21ID is null or J.DATAELEMENT21ID = C.DATAELEMENT21ID) and
    (C.DATAELEMENT22ID is null or J.DATAELEMENT22ID = C.DATAELEMENT22ID) and
    (C.DATAELEMENT23ID is null or J.DATAELEMENT23ID = C.DATAELEMENT23ID) and
    (C.DATAELEMENT24ID is null or J.DATAELEMENT24ID = C.DATAELEMENT24ID) and
    (C.DATAELEMENT25ID is null or J.DATAELEMENT25ID = C.DATAELEMENT25ID) and
    (C.DATAELEMENT26ID is null or J.DATAELEMENT26ID = C.DATAELEMENT26ID) and
    (C.DATAELEMENT27ID is null or J.DATAELEMENT27ID = C.DATAELEMENT27ID) and
    (C.DATAELEMENT28ID is null or J.DATAELEMENT28ID = C.DATAELEMENT28ID) and
    (C.DATAELEMENT29ID is null or J.DATAELEMENT29ID = C.DATAELEMENT29ID) and
    (C.DATAELEMENT30ID is null or J.DATAELEMENT30ID = C.DATAELEMENT30ID)
  inner join dbo.FINANCIALTRANSACTIONLINEITEM FTLI on J.FINANCIALTRANSACTIONLINEITEMID = FTLI.ID
  inner join dbo.FINANCIALTRANSACTION FT on FTLI.FINANCIALTRANSACTIONID = FT.ID
  where C.ID = @CONTROLACCOUNTID
  and FT.DELETEDON IS NULL
  and FTLI.POSTSTATUSCODE = 1

  if @CONTROLINUSE = 1
  begin
    raiserror('ERR_CONTROLACCOUNT_INUSE_JOURNALENTRY',13,1)
    return 1;
  end

  return 0;        
end