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;