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;