UFN_EVENTPRICEBENEFIT_CONVERTAMOUNTSINXML

Fills in multicurrency fields in the given benefits XML.

Return

Return Type
xml

Parameters

Parameter Parameter Type Mode Description
@BENEFITS xml IN
@EVENTBASECURRENCYID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_EVENTPRICEBENEFIT_CONVERTAMOUNTSINXML(
                @BENEFITS xml,
                @EVENTBASECURRENCYID uniqueidentifier
            )
            returns xml
            as
            begin

                declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
                declare @CURRENTDATE datetime = getdate();

                return (
                    select 
                        ID,
                        BENEFITID,
                        UNITVALUE,
                        QUANTITY,
                        TOTALVALUE,
                        DETAILS,
                        @EVENTBASECURRENCYID EVENTBASECURRENCYID,
                        BASECURRENCYID,
                        BASEEXCHANGERATEID,
                        ORGANIZATIONEXCHANGERATEID,
                        case
                            when BASECURRENCYID <> @EVENTBASECURRENCYID
                                then dbo.UFN_CURRENCY_CONVERT(TOTALVALUE, BASEEXCHANGERATEID)
                            else TOTALVALUE
                        end EVENTBASECURRENCYTOTALVALUE,
                        case
                            when BASECURRENCYID <> @ORGANIZATIONCURRENCYID
                                then dbo.UFN_CURRENCY_CONVERT(TOTALVALUE, ORGANIZATIONEXCHANGERATEID)
                            else TOTALVALUE
                        end ORGANIZATIONTOTALVALUE
                    from(
                        select 
                            EPBENEFIT.ID,
                            EPBENEFIT.BENEFITID,
                            EPBENEFIT.QUANTITY,
                            EPBENEFIT.UNITVALUE,
                            EPBENEFIT.TOTALVALUE,
                            EPBENEFIT.DETAILS,
                            EPBENEFIT.BASECURRENCYID,
                            case
                                when EPBENEFIT.BASECURRENCYID <> @EVENTBASECURRENCYID
                                    then dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(EPBENEFIT.BASECURRENCYID, @EVENTBASECURRENCYID, @CURRENTDATE, 1, null)
                                else null
                            end BASEEXCHANGERATEID,
                            case
                                when EPBENEFIT.BASECURRENCYID <> @ORGANIZATIONCURRENCYID
                                    then dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(EPBENEFIT.BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null)
                                else null
                            end ORGANIZATIONEXCHANGERATEID
                        from 
                            dbo.UFN_EVENTPRICE_GETBENEFITS_2_FROMITEMLISTXML(@BENEFITS) EPBENEFIT
                    ) BENEFITS
                    for xml raw('ITEM'),type,elements,root('BENEFIT'),BINARY BASE64
                )
            end