USP_EVENTPRICE_ADD
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@EVENTID | uniqueidentifier | IN | |
@EVENTREGISTRATIONTYPEID | uniqueidentifier | IN | |
@AMOUNT | money | IN | |
@RECEIPTAMOUNT | money | IN | |
@BENEFIT | xml | IN | |
@COST | money | IN | |
@NAME | nvarchar(100) | IN | |
@REGISTRATIONCOUNT | int | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@TEAMRAISERTYPEID | int | IN |
Definition
Copy
CREATE procedure dbo.USP_EVENTPRICE_ADD (
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@EVENTID uniqueidentifier,
@EVENTREGISTRATIONTYPEID uniqueidentifier,
@AMOUNT money,
@RECEIPTAMOUNT money,
@BENEFIT xml = null,
@COST money = 0,
@NAME nvarchar(100),
@REGISTRATIONCOUNT int,
@CURRENTAPPUSERID uniqueidentifier = null,
@TEAMRAISERTYPEID int = null --No longer used
)
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 = getdate();
declare @BASECURRENCYID uniqueidentifier;
select @BASECURRENCYID = EVENT.BASECURRENCYID from dbo.EVENT where ID = @EVENTID;
declare @ISADMIN bit;
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
if
@ISADMIN = 0 and
exists (
select 1
from dbo.UFN_EVENTPRICE_GETBENEFITS_2_FROMITEMLISTXML(@BENEFIT) as BENEFIT
cross apply dbo.UFN_SITEID_MAPFROM_BENEFITID (BENEFIT.BENEFITID) as SITE
where dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORSITE(@CURRENTAPPUSERID, '5EC79CD4-8ADD-45c3-B39D-D5C04E7B3363', [SITE].SITEID) = 0
)
begin
raiserror('BBERR_DB_RECORDSECURITY_PERMISSION_DENIED', 13, 1)
return 1
end
if
exists (
select top 1 'x'
from @BENEFIT.nodes('/BENEFIT/ITEM') T(c)
inner join dbo.BENEFIT on T.c.value('BENEFITID[1]','uniqueidentifier') = BENEFIT.ID
where BENEFIT.USEPERCENT = 1
)
begin
raiserror('BBERR_EVENTPRICEADD_PERCENTBENEFITSNOTALLOWED', 13, 1)
end
declare @ORGANIZATIONAMOUNT decimal(20,8);
declare @ORGANIZATIONCOST decimal(20,8);
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
begin
set @ORGANIZATIONAMOUNT = @AMOUNT;
set @ORGANIZATIONCOST = @COST;
end
else
begin
set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @ORGANIZATIONEXCHANGERATEID);
set @ORGANIZATIONCOST = dbo.UFN_CURRENCY_CONVERT(@COST, @ORGANIZATIONEXCHANGERATEID);
end
insert into dbo.EVENTPRICE (
ID,
EVENTID,
EVENTREGISTRATIONTYPEID,
AMOUNT,
RECEIPTAMOUNT,
COST,
NAME,
REGISTRATIONCOUNT,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
ORGANIZATIONAMOUNT,
ORGANIZATIONCOST,
ORGANIZATIONEXCHANGERATEID
)
values (
@ID,
@EVENTID,
@EVENTREGISTRATIONTYPEID,
@AMOUNT,
@RECEIPTAMOUNT,
@COST,
@NAME,
@REGISTRATIONCOUNT,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@ORGANIZATIONAMOUNT,
@ORGANIZATIONCOST,
@ORGANIZATIONEXCHANGERATEID
);
--Update the organization total value, transaction total value, and exchange rates in the @BENEFITS XML.
set @BENEFIT = dbo.UFN_EVENTPRICEBENEFIT_CONVERTAMOUNTSINXML(@BENEFIT,@BASECURRENCYID);
exec dbo.USP_EVENTPRICE_GETBENEFITS_2_ADDFROMXML @ID, @BENEFIT, @CHANGEAGENTID;
--exec dbo.USP_EVENTPRICE_GETDESIGNATIONS_ADDFROMXML @ID, @DESIGNATION, @CHANGEAGENTID;