USP_DATAFORMTEMPLATE_EDITLOAD_PDACCOUNTSTRUCTURE2

The load procedure used by the edit dataform template "Account Structure Edit Form 2"

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.
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@DESCRIPTION nvarchar(100) INOUT Segment name
@SEQUENCE int INOUT Sequence
@LENGTH tinyint INOUT Length
@PDACCOUNTTABLESAVAILABLEFORSEGMENTID uniqueidentifier INOUT Calculated using
@SEPARATORCODE tinyint INOUT Separator
@SEGMENTTYPE tinyint INOUT Segment type
@EXISTINGACCOUNTS bit INOUT
@EXISTINGTRANSACTIONS bit INOUT
@PDACCOUNTSYSTEMID uniqueidentifier INOUT
@ISPROJECTSEGMENT bit INOUT Associate this segment with 'Project'
@ELEMENTDEFINITIONCODE tinyint INOUT
@FENXT bit INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PDACCOUNTSTRUCTURE2(
        @ID uniqueidentifier,
        @DATALOADED bit = 0 output,
        @TSLONG bigint = 0 output,
        @DESCRIPTION nvarchar(100) = null output,
        @SEQUENCE int = null output,
        @LENGTH tinyint = null output,
        @PDACCOUNTTABLESAVAILABLEFORSEGMENTID uniqueidentifier = null output,
        @SEPARATORCODE tinyint = null output,
        @SEGMENTTYPE tinyint = null output,
        @EXISTINGACCOUNTS bit = null output,
        @EXISTINGTRANSACTIONS bit = null output,
        @PDACCOUNTSYSTEMID uniqueidentifier = null output,
        @ISPROJECTSEGMENT bit = null output,
        @ELEMENTDEFINITIONCODE tinyint = null output,
        @FENXT bit = null output
)
as

    set nocount on;

    -- be sure to set these, in case the select returns no rows

    set @DATALOADED = 0
    set @TSLONG = 0

    -- 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.  Also note that we fetch the TSLONG so that concurrency

    -- can be considered.

    select
        @DATALOADED = 1,
        @TSLONG = TSLONG,        
        @DESCRIPTION = [DESCRIPTION],
        @SEQUENCE = SEQUENCE,
        @LENGTH = LENGTH,
        @PDACCOUNTTABLESAVAILABLEFORSEGMENTID = PDACCOUNTTABLESAVAILABLEFORSEGMENTID,
        @SEPARATORCODE = SEPARATORCODE,
    @SEGMENTTYPE = SEGMENTTYPE,
      @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID,
    @ISPROJECTSEGMENT = ISPROJECTSEGMENT
    ,@ELEMENTDEFINITIONCODE = ELEMENTDEFINITIONCODE
    from dbo.PDACCOUNTSTRUCTURE
    where ID = @ID

    if exists (select * from  GLACCOUNT where PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID )
    set @EXISTINGACCOUNTS = 1
  else
    set @EXISTINGACCOUNTS = 0

    if @EXISTINGACCOUNTS = 1
        begin
            set @EXISTINGTRANSACTIONS = '0'
            select @EXISTINGTRANSACTIONS = '1' 
            from dbo.GLACCOUNT 
            inner join dbo.JOURNALENTRY on JOURNALENTRY.GLACCOUNTID = GLACCOUNT.ID
            where GLACCOUNT.PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID
            option (recompile)
        end
    else
        set @EXISTINGTRANSACTIONS = 0

    if exists (select 1 from dbo.FENXTINTEGRATION where PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID)
        set @FENXT = 1;
    else
        set @FENXT = 0;

    return 0;