USP_DATAFORMTEMPLATE_EDITLOAD_PDACCOUNTSYSTEM

The load procedure used by the edit dataform template "Account System Edit 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.
@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.
@NAME nvarchar(50) INOUT Name
@DESCRIPTION nvarchar(255) INOUT Description
@ISDEFAULT bit INOUT Use this account system for users without site permissions
@SITES xml INOUT Sites
@CURRENCYSETID uniqueidentifier INOUT Currency set
@CURRENCYSETISEDITABLE bit INOUT Currency set is editable

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PDACCOUNTSYSTEM(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @TSLONG bigint = 0 output,
    @NAME nvarchar(50) = null output,
    @DESCRIPTION nvarchar(255) = null output,
    @ISDEFAULT bit = null output,
    @SITES xml = null output,
    @CURRENCYSETID uniqueidentifier = null output,
    @CURRENCYSETISEDITABLE 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,
        @NAME = NAME,
        @DESCRIPTION = DESCRIPTION,
        @ISDEFAULT = ISDEFAULT,
        @SITES = dbo.UFN_PDACCOUNTSYSTEM_SITES_TOITEMLISTXML(ID),
        @CURRENCYSETID = CURRENCYSETID
    from dbo.PDACCOUNTSYSTEM
    where ID = @ID

    set @CURRENCYSETISEDITABLE = 1;
    if @DATALOADED = 1 and exists(select 1 from dbo.CONDITIONSETTING where NAME = 'Multicurrency')
    begin
        if exists(select ID from dbo.BANKACCOUNT where PDACCOUNTSYSTEMID = @ID)
        begin
            set @CURRENCYSETISEDITABLE = 0
        end
        else
        begin
            select @CURRENCYSETISEDITABLE = 0 from dbo.FINANCIALTRANSACTION where PDACCOUNTSYSTEMID = @ID option (recompile)
        end
    end


    return 0;