USP_DATAFORMTEMPLATE_ADD_OPPORTUNITYAMOUNTBRACKETSGROUP
The save procedure used by the add dataform template "Opportunity Amount Brackets Group Add Data 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 |
@OPPORTUNITYAMOUNTBRACKETS | xml | IN | Amount brackets |
@SITES | xml | IN | Sites |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_OPPORTUNITYAMOUNTBRACKETSGROUP
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100) = '',
@DESCRIPTION nvarchar(255) = '',
@OPPORTUNITYAMOUNTBRACKETS xml = null,
@SITES xml = null,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on;
if @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
-- check if there's a default site
declare @ISDEFAULTGROUP smallint;
declare @SITECOUNT smallint;
select @ISDEFAULTGROUP = COUNT(ID)
from OPPORTUNITYAMOUNTBRACKETGROUP
where ID not in (select distinct OPPORTUNITYAMOUNTBRACKETGROUPID from dbo.OPPORTUNITYAMOUNTBRACKETSITES);
--check for default group
declare @TempTbl table (
SITEID uniqueidentifier
);
insert into @TempTbl
select
SITEID
from
dbo.UFN_OPPORTUNITYAMOUNTBRACKETSITES_FROMITEMLISTXML(@SITES);
select @SITECOUNT = count(SITEID) from @TempTbl
if @ISDEFAULTGROUP > 0 and @SITECOUNT = 0
begin
raiserror('DEFAULTGROUP_EXISTS', 13, 1);
end
--Check for duplicate lower limits
declare @TempTbl2 table (
LOWERLIMIT money
);
insert into @TempTbl2
select
LOWERLIMIT
from
dbo.UFN_OPPORTUNITYAMOUNTBRACKETS_FROMITEMLISTXML(@OPPORTUNITYAMOUNTBRACKETS);
if exists(select LOWERLIMIT from @TempTbl2 group by LOWERLIMIT having COUNT(*) > 1)
begin
raiserror('LOWERLIMIT_DUPLICATES', 13, 1);
end
-- Process the brackets xml to calculate organization amounts.
--Multicurrency - SlyyMu 8/19/10 - Get the updated exchange rate.
declare @BASECURRENCYID uniqueidentifier = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @BASETOORGANIZATIONEXCHANGERATEID uniqueidentifier;
exec dbo.USP_CURRENCY_GETCURRENCYVALUES
@AMOUNT=null,
@DATE=@CURRENTDATE,
@BASECURRENCYID=@BASECURRENCYID,
@BASEEXCHANGERATEID=null,
@TRANSACTIONCURRENCYID=null,
@BASEAMOUNT=null,
@ORGANIZATIONCURRENCYID=@ORGANIZATIONCURRENCYID,
@ORGANIZATIONAMOUNT=null,
@ORGANIZATIONEXCHANGERATEID=null,
@LOOKUPORGANIZATIONEXCHANGERATE=0,
@BASETOORGANIZATIONEXCHANGERATEID=@BASETOORGANIZATIONEXCHANGERATEID output;
set @OPPORTUNITYAMOUNTBRACKETS = dbo.UFN_OPPORTUNITYAMOUNTBRACKET_CONVERTAMOUNTSINXML(@OPPORTUNITYAMOUNTBRACKETS, @BASECURRENCYID, @BASETOORGANIZATIONEXCHANGERATEID);
-- insert values into the group table
insert into dbo.OPPORTUNITYAMOUNTBRACKETGROUP
(
ID,
NAME,
DESCRIPTION,
BASECURRENCYID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ID,
@NAME,
@DESCRIPTION,
@BASECURRENCYID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
-- insert the values from the amount ranges grid
exec dbo.USP_OPPORTUNITYAMOUNTBRACKET_GETBRACKETS_2_ADDFROMXML @ID, @OPPORTUNITYAMOUNTBRACKETS, @CHANGEAGENTID;
-- insert sites
exec dbo.USP_OPPORTUNITYAMOUNTBRACKETSITE_GETSITES_ADDFROMXML @ID, @SITES, @CHANGEAGENTID;
return 0