USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTLISTBYSELECTION
The save procedure used by the edit dataform template "List Segment By Selection Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@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 |
@CODEVALUEID | uniqueidentifier | IN | Code value ID |
@ALLOWCODEUPDATE | bit | IN | Allow code update |
@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 |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTLISTBYSELECTION]
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@SEGMENTCATEGORYCODEID uniqueidentifier,
@CODE nvarchar(10),
@CODEVALUEID uniqueidentifier,
@ALLOWCODEUPDATE bit,
@SELECTIONS xml,
@RENTALQUANTITY int,
@RENTALCOSTADJUSTMENT money,
@RENTALCOSTBASISCODE tinyint,
@EXCHANGEQUANTITY int,
@EXCHANGECOSTADJUSTMENT money,
@EXCHANGECOSTBASISCODE tinyint,
@GROUPS xml
)
as
set nocount on;
declare @SEGMENTLISTID uniqueidentifier;
declare @CURRENTDATE datetime;
declare @BASECURRENCYID uniqueidentifier;
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONRENTALCOSTADJUSTMENT money;
declare @ORGANIZATIONEXCHANGECOSTADJUSTMENT money;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @DATEADDED datetime;
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
select
@SEGMENTLISTID = [CURRENTSEGMENTLISTID]
from dbo.[MKTSEGMENT]
where [ID] = @ID;
/* Save the segment */
update dbo.[MKTSEGMENT] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[SEGMENTCATEGORYCODEID] = @SEGMENTCATEGORYCODEID,
[CODE] = (case when @ALLOWCODEUPDATE = 1 then @CODE else [CODE] end),
[PARTDEFINITIONVALUESID] = (case when @ALLOWCODEUPDATE = 1 then @CODEVALUEID else [PARTDEFINITIONVALUESID] end),
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @ID;
select
@BASECURRENCYID = [MKTLIST].[BASECURRENCYID]
from
dbo.[MKTSEGMENT]
inner join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
inner join dbo.[MKTLIST] on [MKTLIST].[ID] = [MKTSEGMENTLIST].[LISTID]
where
[MKTSEGMENT].[ID] = @ID;
select @DATEADDED = [DATEADDED], @CURRENCYEXCHANGERATEID = [CURRENCYEXCHANGERATEID] from dbo.[MKTSEGMENTLIST] where [ID] = @SEGMENTLISTID;
set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
begin
set @ORGANIZATIONRENTALCOSTADJUSTMENT = @RENTALCOSTADJUSTMENT;
set @ORGANIZATIONEXCHANGECOSTADJUSTMENT = @EXCHANGECOSTADJUSTMENT;
end
else
begin
if @CURRENCYEXCHANGERATEID is null
set @CURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);
set @ORGANIZATIONRENTALCOSTADJUSTMENT = dbo.[UFN_CURRENCY_CONVERT](@RENTALCOSTADJUSTMENT, @CURRENCYEXCHANGERATEID);
set @ORGANIZATIONEXCHANGECOSTADJUSTMENT = dbo.[UFN_CURRENCY_CONVERT](@EXCHANGECOSTADJUSTMENT, @CURRENCYEXCHANGERATEID);
end
update dbo.[MKTSEGMENTLIST] set
[RENTALQUANTITY] = @RENTALQUANTITY,
[RENTALCOSTADJUSTMENT] = @RENTALCOSTADJUSTMENT,
[RENTALCOSTBASISCODE] = @RENTALCOSTBASISCODE,
[EXCHANGEQUANTITY] = @EXCHANGEQUANTITY,
[EXCHANGECOSTADJUSTMENT] = @EXCHANGECOSTADJUSTMENT,
[EXCHANGECOSTBASISCODE] = @EXCHANGECOSTBASISCODE,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE,
[ORGANIZATIONRENTALCOSTADJUSTMENT] = @ORGANIZATIONRENTALCOSTADJUSTMENT,
[ORGANIZATIONEXCHANGECOSTADJUSTMENT] = @ORGANIZATIONEXCHANGECOSTADJUSTMENT,
[CURRENCYEXCHANGERATEID] = @CURRENCYEXCHANGERATEID
where [ID] = @SEGMENTLISTID;
/* Save all the new selections */
exec dbo.[USP_MKTSEGMENT_GETSELECTIONS_UPDATEFROMXML] @ID, null, @SELECTIONS, @CHANGEAGENTID, @CURRENTDATE;
/* Save all the groups */
exec dbo.[USP_MKTSEGMENT_GETGROUPS_UPDATEFROMXML] @ID, @GROUPS, @CHANGEAGENTID, @CURRENTDATE;
/* Create the VIEW and add it to the IDSETREGISTER */
exec dbo.[USP_MKTSEGMENT_CREATEORUPDATEVIEW] @ID, @CHANGEAGENTID;
/* Update the segment with the selected code */
if @ALLOWCODEUPDATE = 1
exec dbo.[USP_MKTSEGMENT_UPDATECODE] @ID, @CODE, @CODEVALUEID, @CHANGEAGENTID, 1;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;