UFN_SALESORDER_GETMEMBERSHIPITEMS_TOXML

Return

Return Type
xml

Parameters

Parameter Parameter Type Mode Description
@SALESORDERITEMID uniqueidentifier IN

Definition

Copy


    CREATE function dbo.UFN_SALESORDER_GETMEMBERSHIPITEMS_TOXML
    (
    @SALESORDERITEMID uniqueidentifier
    )
            returns xml
            as begin
                return (select
                            MEMBERSHIPID,
                            MEMBERSHIPPROGRAMID,
                            MEMBERSHIPLEVELID,
                            MEMBERSHIPLEVELTERMID,
                            MEMBERSHIPLEVELTYPECODEID,
                            NUMBEROFCHILDREN,
                            COMMENTS,
                            ISGIFT,
                            SENDRENEWALCODE,
                            EXPIRATIONDATE,
                            GIVENBYID,

                            (select
                                SALESORDERITEMMEMBER.ID as SALESORDERITEMMEMBERID,
                                SALESORDERITEMMEMBER.MEMBERID,
                                SALESORDERITEMMEMBER.CONSTITUENTID,
                                SALESORDERITEMMEMBER.ISPRIMARY

                                from dbo.SALESORDERITEMMEMBER
                                where SALESORDERITEMMEMBER.SALESORDERITEMMEMBERSHIPID = SALESORDERITEMMEMBERSHIP.ID 
                                for xml raw('ITEM'),type,elements,BINARY BASE64
                            ) as MEMBERS,

                            (select 
                                    SALESORDERITEMMEMBERSHIPCARD.SALESORDERITEMMEMBERID,
                                    SALESORDERITEMMEMBERSHIPCARD.MEMBERSHIPCARDID,
                                    SALESORDERITEMMEMBERSHIPCARD.NAMEONCARD,
                                    SALESORDERITEMMEMBERSHIPCARD.EXPIRATIONDATE

                                    from dbo.SALESORDERITEMMEMBERSHIPCARD
                                        inner join dbo.SALESORDERITEMMEMBER on SALESORDERITEMMEMBERSHIPCARD.SALESORDERITEMMEMBERID = SALESORDERITEMMEMBER.ID
                                    where SALESORDERITEMMEMBER.SALESORDERITEMMEMBERSHIPID = SALESORDERITEMMEMBERSHIP.ID
                                    for xml raw('ITEM'),type,elements,BINARY BASE64
                            ) as MEMBERSHIPCARDS,

                            (select
                                SALESORDERITEMMEMBERSHIPADDON.ADDONID,
                                SALESORDERITEMMEMBERSHIPADDON.ADDONTYPECODE,
                                ADDONITEM.PRICE,
                                convert(int, ADDONITEM.QUANTITY) as QUANTITY,
                                ---Use NEWGUID view to get around the fact that you can't call newid() from a function

                                (select ID from dbo.NEWGUID) as SPLITID,
                                SALESORDERITEMMEMBERSHIPADDON.ID as SALESORDERITEMID

                                from dbo.SALESORDERITEMMEMBERSHIPADDON
                                inner join dbo.SALESORDERITEM ADDONITEM on SALESORDERITEMMEMBERSHIPADDON.ID = ADDONITEM.ID
                                where SALESORDERITEMMEMBERSHIPADDON.SALESORDERITEMMEMBERSHIPID = SALESORDERITEMMEMBERSHIP.ID 
                                for xml raw('ITEM'),type,elements,BINARY BASE64
                            ) as ADDONS
                            from dbo.SALESORDERITEMMEMBERSHIP
                            where SALESORDERITEMMEMBERSHIP.ID = @SALESORDERITEMID
                            for xml raw('ITEM'),type,elements,root('MEMBERSHIPFIELDS'),BINARY BASE64
                        )
                end