UFN_REVENUEBATCH_BATCHEVENTREGISTRANT_GETPAYMENTBENEFITS

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@REGISTRANTID uniqueidentifier IN
@TRANSACTIONCURRENCYID uniqueidentifier IN
@BASECURRENCYID uniqueidentifier IN

Definition

Copy


create function dbo.UFN_REVENUEBATCH_BATCHEVENTREGISTRANT_GETPAYMENTBENEFITS
(
  @REGISTRANTID uniqueidentifier,
  @TRANSACTIONCURRENCYID uniqueidentifier = null,
  @BASECURRENCYID uniqueidentifier = null
)
returns table
as
return

  select
    EVENTPRICEBENEFIT.BENEFITID,
    (EVENTPRICEBENEFIT.QUANTITY * BATCHREVENUEREGISTRANTREGISTRATION.QUANTITY) as QUANTITY,
    -- When the registration fee is waived, set the unit value to 0

    case
      when BATCHREVENUEREGISTRANTREGISTRATION.AMOUNT = 0 then
        cast (0 as money)
      else
        EVENTPRICEBENEFIT.UNITVALUE
    end as UNITVALUE,
    EVENTPRICEBENEFIT.DETAILS,
    BENEFIT.NAME as BENEFITNAME,
    case
      when BATCHREVENUEREGISTRANTREGISTRATION.AMOUNT = 0 then
        cast (0 as money)
      when EVENTPRICEBENEFIT.BASECURRENCYID = @TRANSACTIONCURRENCYID then
        EVENTPRICEBENEFIT.UNITVALUE * (EVENTPRICEBENEFIT.QUANTITY * BATCHREVENUEREGISTRANTREGISTRATION.QUANTITY)
      else
        dbo.UFN_CURRENCY_CONVERT
        (
          EVENTPRICEBENEFIT.UNITVALUE * (EVENTPRICEBENEFIT.QUANTITY * BATCHREVENUEREGISTRANTREGISTRATION.QUANTITY),
          dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST
          (
            EVENTPRICEBENEFIT.BASECURRENCYID,
            @TRANSACTIONCURRENCYID,
            getdate(),
            1,
            default
          )
        )
    end as TRANSACTIONTOTALVALUE
  from
    dbo.BATCHREVENUEREGISTRANT
  inner join
    dbo.BATCHREVENUEREGISTRANTREGISTRATION on BATCHREVENUEREGISTRANT.ID = BATCHREVENUEREGISTRANTREGISTRATION.REGISTRANTID
  inner join
    dbo.EVENTPRICE on BATCHREVENUEREGISTRANTREGISTRATION.EVENTPRICEID = EVENTPRICE.ID
  inner join
    dbo.EVENTPRICEBENEFIT on EVENTPRICE.ID = EVENTPRICEBENEFIT.EVENTPRICEID
  inner join
    dbo.BENEFIT on EVENTPRICEBENEFIT.BENEFITID = BENEFIT.ID
  where
    REGISTRANTID = @REGISTRANTID
    and
    BENEFITSWAIVED = 0
    and
    EVENTPRICEBENEFIT.BASECURRENCYID = @BASECURRENCYID;