USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTLISTBYSELECTION
The save procedure used by the add dataform template "List Segment By Selection 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 |
@DESCRIPTION | nvarchar(255) | IN | Description |
@SEGMENTCATEGORYCODEID | uniqueidentifier | IN | Category |
@CODE | nvarchar(10) | IN | Code |
@PARENTSEGMENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@SELECTIONS | xml | IN | Selections |
@RENTALQUANTITY | int | IN | Rental quantity |
@RENTALCOSTADJUSTMENT | money | IN | Rental cost adjustment |
@RENTALCOSTBASISCODE | tinyint | IN | Rental cost basis code |
@EXCHANGEQUANTITY | int | IN | Exchange quantity |
@EXCHANGECOSTADJUSTMENT | money | IN | Exchange cost adjustment |
@EXCHANGECOSTBASISCODE | tinyint | IN | Exchange cost basis code |
@GROUPS | xml | IN | Groups |
@CODEVALUEID | uniqueidentifier | IN | Code value ID |
@SITEID | uniqueidentifier | IN | Site |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTLISTBYSELECTION]
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255) = '',
@SEGMENTCATEGORYCODEID uniqueidentifier = null,
@CODE nvarchar(10) = '',
@PARENTSEGMENTID uniqueidentifier,
@SELECTIONS xml,
@RENTALQUANTITY int = 0,
@RENTALCOSTADJUSTMENT money = 0,
@RENTALCOSTBASISCODE tinyint = 1, -- per thousand
@EXCHANGEQUANTITY int = 0,
@EXCHANGECOSTADJUSTMENT money = 0,
@EXCHANGECOSTBASISCODE tinyint = 1, -- per thousand
@GROUPS xml = null,
@CODEVALUEID uniqueidentifier = null,
@SITEID uniqueidentifier = null
)
as
set nocount on;
declare @SEGMENTLISTID uniqueidentifier;
declare @RECORDSOURCEID uniqueidentifier;
declare @LISTID uniqueidentifier;
declare @CURRENTDATE datetime;
declare @BASECURRENCYID uniqueidentifier;
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONRENTALCOSTADJUSTMENT money;
declare @ORGANIZATIONEXCHANGECOSTADJUSTMENT money;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
begin try
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
set @SEGMENTLISTID = newid();
select
@RECORDSOURCEID = [MKTLIST].[RECORDSOURCEID],
@LISTID = [MKTLIST].[ID]
from dbo.[MKTSEGMENT]
inner join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
inner join dbo.[MKTLIST] on [MKTLIST].[ID] = [MKTSEGMENTLIST].[LISTID]
where [MKTSEGMENT].[ID] = @PARENTSEGMENTID;
select
@BASECURRENCYID = [MKTLIST].[BASECURRENCYID]
from dbo.[MKTLIST]
where [MKTLIST].[ID] = @LISTID;
set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
begin
set @ORGANIZATIONRENTALCOSTADJUSTMENT = @RENTALCOSTADJUSTMENT;
set @ORGANIZATIONEXCHANGECOSTADJUSTMENT = @EXCHANGECOSTADJUSTMENT;
end
else
begin
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
set @ORGANIZATIONRENTALCOSTADJUSTMENT = dbo.[UFN_CURRENCY_CONVERT](@RENTALCOSTADJUSTMENT, @CURRENCYEXCHANGERATEID);
set @ORGANIZATIONEXCHANGECOSTADJUSTMENT = dbo.[UFN_CURRENCY_CONVERT](@EXCHANGECOSTADJUSTMENT, @CURRENCYEXCHANGERATEID);
end
--Save the segment, using segment type 2 (list)...
insert into dbo.[MKTSEGMENT] (
[ID],
[NAME],
[DESCRIPTION],
[SITEID],
[SEGMENTCATEGORYCODEID],
[CODE],
[PARTDEFINITIONVALUESID],
[QUERYVIEWCATALOGID],
[SEGMENTTYPECODE],
[BASECURRENCYID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
@ID,
@NAME,
@DESCRIPTION,
@SITEID,
@SEGMENTCATEGORYCODEID,
@CODE,
@CODEVALUEID,
@RECORDSOURCEID,
2,
@BASECURRENCYID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.[MKTSEGMENTLIST] (
[ID],
[SEGMENTID],
[LISTID],
[TYPECODE],
[STATUSCODE],
[PARENTSEGMENTID],
[RENTALQUANTITY],
[RENTALCOSTADJUSTMENT],
[RENTALCOSTBASISCODE],
[EXCHANGEQUANTITY],
[EXCHANGECOSTADJUSTMENT],
[EXCHANGECOSTBASISCODE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[BASECURRENCYID],
[ORGANIZATIONRENTALCOSTADJUSTMENT],
[ORGANIZATIONEXCHANGECOSTADJUSTMENT],
[CURRENCYEXCHANGERATEID]
) values (
@SEGMENTLISTID,
@ID,
@LISTID,
0,
3,
@PARENTSEGMENTID,
@RENTALQUANTITY,
@RENTALCOSTADJUSTMENT,
@RENTALCOSTBASISCODE,
@EXCHANGEQUANTITY,
@EXCHANGECOSTADJUSTMENT,
@EXCHANGECOSTBASISCODE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@BASECURRENCYID,
@ORGANIZATIONRENTALCOSTADJUSTMENT,
@ORGANIZATIONEXCHANGECOSTADJUSTMENT,
@CURRENCYEXCHANGERATEID
);
--Update the segment to hold the current list segment record ID...
update dbo.[MKTSEGMENT] set
[CURRENTSEGMENTLISTID] = @SEGMENTLISTID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @ID;
--Save all the selections...
exec dbo.[USP_MKTSEGMENT_GETSELECTIONS_ADDFROMXML] @ID, null, @SELECTIONS, @CHANGEAGENTID, @CURRENTDATE;
--Save all the groups...
exec dbo.[USP_MKTSEGMENT_GETGROUPS_ADDFROMXML] @ID, @GROUPS, @CHANGEAGENTID, @CURRENTDATE;
--Insert a parameter set for the refresh process for this segment...
insert into dbo.[MKTSEGMENTREFRESHPROCESS] (
[ID],
[SEGMENTID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
newid(),
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
--Create the view and add it to the IDSETREGISTER...
exec dbo.[USP_MKTSEGMENT_CREATEORUPDATEVIEW] @ID, @CHANGEAGENTID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;