USP_DATAFORMTEMPLATE_VIEW_SALESORDERMEMBERSHIPSBYCONSTITUENTID

The load procedure used by the view dataform template "Sales Order Membership By Constituent ID View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@MEMBERSHIPS xml INOUT MEMBERSHIPS

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_SALESORDERMEMBERSHIPSBYCONSTITUENTID
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @MEMBERSHIPS xml = null output
                )
                as
                    set nocount on;

                    set @DATALOADED = 0;

                    declare @TRANSACTIONDATE datetime;
                    declare @CONSTITUENTNAME nvarchar(154);
                    declare @MEMBERSHIPPROGRAMID uniqueidentifier;

                    set @TRANSACTIONDATE = getdate();

                    select
                        @DATALOADED = 1,
                        @CONSTITUENTNAME = NAME
                    from
                        dbo.CONSTITUENT
                    where
                        ID = @ID;

                    if (select count(ID) from dbo.MEMBERSHIPPROGRAM) = 1
                        select @MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAMID from dbo.MEMBERSHIP;

                    set @MEMBERSHIPS = (
                        select
                            *,
                            case MEMBERSHIP.ID
                                when '00000000-0000-0000-0000-000000000000' then
                                (
                                    select
                                        newid() [ID],
                                        null [MEMBERID],
                                        @ID [CONSTITUENTID],
                                        1 [ISPRIMARY],
                                        (
                                            select
                                                newid() [ID],
                                                null [MEMBERSHIPCARDID],
                                                @CONSTITUENTNAME [NAMEONCARD],
                                                null [EXPIRATIONDATE]
                                            for xml raw('ITEM'),type,elements,root('MEMBERSHIPCARDS'),binary base64
                                        )
                                    for xml raw('ITEM'),type,elements,root('MEMBERS'),binary base64
                                )
                                else
                                (
                                    select
                                        newid() [ID],
                                        MEMBER.ID [MEMBERID],
                                        MEMBER.CONSTITUENTID,
                                        MEMBER.ISPRIMARY,
                                        (
                                            select
                                                newid() [ID],
                                                MEMBERSHIPCARD.ID [MEMBERSHIPCARDID],
                                                MEMBERSHIPCARD.NAMEONCARD [NAMEONCARD],
                                                MEMBERSHIPCARD.EXPIRATIONDATE [EXPIRATIONDATE]
                                            from
                                                dbo.MEMBERSHIPCARD
                                            where
                                                MEMBER.ID = MEMBERSHIPCARD.MEMBERID
                                                and MEMBERSHIPCARD.STATUSCODE <> 2
                                            for xml raw('ITEM'),type,elements,root('MEMBERSHIPCARDS'),binary base64
                                        )
                                    from
                                        dbo.MEMBER
                                    where
                                        MEMBERSHIP.ID = MEMBER.MEMBERSHIPID
                                        and MEMBER.ISDROPPED = 0
                                    for xml raw('ITEM'),type,elements,root('MEMBERS'),binary base64
                                )
                            end,
                            (
                                select
                                    MEMBERSHIPLEVEL.ID,
                                    dbo.UFN_MEMBERSHIPTRANSACTION_DETERMINEACTIONCODE(MEMBERSHIP.ID, MEMBERSHIPLEVEL.ID, @TRANSACTIONDATE) [ACTIONCODE]
                                from
                                    dbo.MEMBERSHIPLEVEL
                                where
                                    MEMBERSHIP.MEMBERSHIPPROGRAMID = MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID
                                for xml raw('ITEM'),type,elements,root('MEMBERSHIPLEVELS'),binary base64
                            )
                        from (
                            select
                                MEMBERSHIP.ID,
                                dbo.UFN_MEMBERSHIP_GETDESCRIPTION(MEMBERSHIP.ID) [DESCRIPTION],
                                MEMBERSHIP.MEMBERSHIPPROGRAMID,
                                MEMBERSHIP.MEMBERSHIPLEVELID,
                                MEMBERSHIP.MEMBERSHIPLEVELTERMID,
                                MEMBERSHIP.MEMBERSHIPLEVELTYPECODEID,
                                MEMBERSHIP.EXPIRATIONDATE,
                                MEMBERSHIP.NUMBEROFCHILDREN,
                                MEMBERSHIP.COMMENTS,
                                MEMBERSHIP.ISGIFT,
                                MEMBERSHIP.SENDRENEWALCODE,
                                MEMBERSHIP.GIVENBYID,
                                MEMBERSHIP.STATUSCODE
                            from
                                dbo.MEMBERSHIP
                            inner join
                                dbo.MEMBER on MEMBERSHIP.ID = MEMBER.MEMBERSHIPID
                            where
                                MEMBER.CONSTITUENTID = @ID
                                and MEMBER.ISDROPPED = 0

                            union all

                            select
                                '00000000-0000-0000-0000-000000000000' [ID],
                                '<New membership>' [DESCRIPTION],
                                @MEMBERSHIPPROGRAMID [MEMBERSHIPPORGRAMID],
                                null [MEMBERSHIPLEVELID],
                                null [MEMBERSHIPLEVELTERMID],
                                null [MEMBERSHIPLEVELTYPECODEID],
                                null [EXPIRATIONDATE],
                                0 [NUMBEROFCHILDREN],
                                '' [COMMENTS],
                                0 [ISGIFT],
                                1 [SENDRENEWALCODE],
                                null [GIVENBYID],
                                0 [STATUSCODE]
                        ) [MEMBERSHIP]
                        for xml raw('ITEM'),type,elements,root('MEMBERSHIPS'),binary base64
                    );

                    return 0;