USP_DATAFORMTEMPLATE_ADD_MKTASKLADDER
The save procedure used by the add dataform template "Ask Ladder Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(100) | IN | Name |
@CURRENCYSYMBOL | nvarchar(3) | IN | Currency symbol |
@RECORDSOURCEID | uniqueidentifier | IN | Record source |
@OBJECTKEY | nvarchar(400) | IN | Amount field |
@ITEMLIST | xml | IN | Ask ladder |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@BASECURRENCYID | uniqueidentifier | IN | Currency ID |
@SITEID | uniqueidentifier | IN | Site |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTASKLADDER]
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100) = '',
@CURRENCYSYMBOL nvarchar(3) = '',
@RECORDSOURCEID uniqueidentifier = null,
@OBJECTKEY nvarchar(400) = '',
@ITEMLIST xml = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@BASECURRENCYID uniqueidentifier = null,
@SITEID uniqueidentifier = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @ITEMLISTTABLE table (
[ID] uniqueidentifier,
[BASECURRENCYID] uniqueidentifier,
[ITEMVALUE1] decimal(20, 4),
[ITEMVALUE2] decimal(20, 4),
[ITEMVALUE3] decimal(20, 4),
[ITEMVALUE4] decimal(20, 4),
[ITEMVALUE5] decimal(20, 4),
[MINIMUMENTRYAMOUNT] decimal(20, 4),
[ORGANIZATIONEXCHANGERATEID] uniqueidentifier,
[ORGANIZATIONITEMVALUE1] decimal(20, 4),
[ORGANIZATIONITEMVALUE2] decimal(20, 4),
[ORGANIZATIONITEMVALUE3] decimal(20, 4),
[ORGANIZATIONITEMVALUE4] decimal(20, 4),
[ORGANIZATIONITEMVALUE5] decimal(20, 4),
[ORGANIZATIONMINIMUMENTRYAMOUNT] decimal(20, 4),
[ROUNDTOAMOUNT] decimal(20, 4),
[TYPECODE] tinyint,
[WRITEINTEXT] nvarchar(100)
);
begin try
-- If any ask amount 1 with a value of 0 in the ITEMLIST collection is of type ("fixed" or "multiply"), don't save.
if @ITEMLIST.exist('/ITEMLIST/ITEM[TYPECODE[(text()[1]) != 0] and ITEMVALUE1[(text()[1]) = 0]] ') = 1
raiserror('ERR_ITEMVALUE1ISZERO', 16, 10);
if @ID is null set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
if @BASECURRENCYID is null
set @BASECURRENCYID = dbo.[UFN_APPUSER_GETBASECURRENCY](@CURRENTAPPUSERID);
set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
if dbo.[UFN_INSTALLEDPRODUCTS_PRODUCTIS]('97d98e59-5b0b-446f-bf48-de8709f50afe') = 1 -- multicurrency
-- overwrite the currency symbol passed in with the symbol for the base currency
select @CURRENCYSYMBOL = [CURRENCYSYMBOL] from dbo.[CURRENCY] where [ID] = @BASECURRENCYID;
insert into dbo.[MKTASKLADDER] (
[ID],
[NAME],
[BASECURRENCYID],
[CURRENCYSYMBOL],
[RECORDSOURCEID],
[OBJECTKEY],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[SITEID]
) values (
@ID,
@NAME,
@BASECURRENCYID,
@CURRENCYSYMBOL,
@RECORDSOURCEID,
@OBJECTKEY,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@SITEID
);
if @ITEMLIST is not null
begin
insert into @ITEMLISTTABLE
select
[ID],
[BASECURRENCYID],
[ITEMVALUE1],
isnull([ITEMVALUE2], 0),
isnull([ITEMVALUE3], 0),
isnull([ITEMVALUE4], 0),
isnull([ITEMVALUE5], 0),
isnull([MINIMUMENTRYAMOUNT], 0),
[ORGANIZATIONEXCHANGERATEID],
[ORGANIZATIONITEMVALUE1],
isnull([ORGANIZATIONITEMVALUE2], 0),
isnull([ORGANIZATIONITEMVALUE3], 0),
isnull([ORGANIZATIONITEMVALUE4], 0),
isnull([ORGANIZATIONITEMVALUE5], 0),
isnull([ORGANIZATIONMINIMUMENTRYAMOUNT], 0),
isnull([ROUNDTOAMOUNT], 0),
[TYPECODE],
isnull([WRITEINTEXT], '')
from dbo.[UFN_MKTASKLADDER_GETITEMLIST_FROMITEMLISTXML](@ITEMLIST);
if @BASECURRENCYID <> @ORGANIZATIONCURRENCYID
begin
set @ORGANIZATIONEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATESTORGANIZATIONRATE](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, default, default, default);
update @ITEMLISTTABLE set
[BASECURRENCYID] = @BASECURRENCYID,
[ORGANIZATIONEXCHANGERATEID] = @ORGANIZATIONEXCHANGERATEID,
[ORGANIZATIONMINIMUMENTRYAMOUNT] = dbo.[UFN_CURRENCY_CONVERT]([MINIMUMENTRYAMOUNT], @ORGANIZATIONEXCHANGERATEID),
[ORGANIZATIONITEMVALUE1] = dbo.[UFN_CURRENCY_CONVERT]([ITEMVALUE1], @ORGANIZATIONEXCHANGERATEID),
[ORGANIZATIONITEMVALUE2] = dbo.[UFN_CURRENCY_CONVERT]([ITEMVALUE2], @ORGANIZATIONEXCHANGERATEID),
[ORGANIZATIONITEMVALUE3] = dbo.[UFN_CURRENCY_CONVERT]([ITEMVALUE3], @ORGANIZATIONEXCHANGERATEID),
[ORGANIZATIONITEMVALUE4] = dbo.[UFN_CURRENCY_CONVERT]([ITEMVALUE4], @ORGANIZATIONEXCHANGERATEID),
[ORGANIZATIONITEMVALUE5] = dbo.[UFN_CURRENCY_CONVERT]([ITEMVALUE5], @ORGANIZATIONEXCHANGERATEID)
end
else
update @ITEMLISTTABLE set
[BASECURRENCYID] = @BASECURRENCYID,
[ORGANIZATIONEXCHANGERATEID] = null,
[ORGANIZATIONMINIMUMENTRYAMOUNT] = [MINIMUMENTRYAMOUNT],
[ORGANIZATIONITEMVALUE1] = [ITEMVALUE1],
[ORGANIZATIONITEMVALUE2] = [ITEMVALUE2],
[ORGANIZATIONITEMVALUE3] = [ITEMVALUE3],
[ORGANIZATIONITEMVALUE4] = [ITEMVALUE4],
[ORGANIZATIONITEMVALUE5] = [ITEMVALUE5];
set @ITEMLIST = (
select
[ID],
[BASECURRENCYID],
[ITEMVALUE1],
[ITEMVALUE2],
[ITEMVALUE3],
[ITEMVALUE4],
[ITEMVALUE5],
[MINIMUMENTRYAMOUNT],
[ORGANIZATIONEXCHANGERATEID],
[ORGANIZATIONITEMVALUE1],
[ORGANIZATIONITEMVALUE2],
[ORGANIZATIONITEMVALUE3],
[ORGANIZATIONITEMVALUE4],
[ORGANIZATIONITEMVALUE5],
[ORGANIZATIONMINIMUMENTRYAMOUNT],
[ROUNDTOAMOUNT],
[TYPECODE],
[WRITEINTEXT]
from @ITEMLISTTABLE
order by [MINIMUMENTRYAMOUNT]
for xml raw('ITEM'), type, elements, root('ITEMLIST'), binary base64);
exec dbo.[USP_MKTASKLADDER_GETITEMLIST_ADDFROMXML] @ID, @ITEMLIST, @CHANGEAGENTID, @CURRENTDATE
end
return 0
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1
end catch
return 0;