USP_GETMERCHANTACCOUNTIDFORPART

Parameters

Parameter Parameter Type Mode Description
@CONTENTID int IN
@TYPE int IN

Definition

Copy


CREATE procedure dbo.USP_GETMERCHANTACCOUNTIDFORPART(
@CONTENTID int,
@TYPE int
)
as begin

    declare @MERCHANTACCOUNTID int=0;
    declare @SHOPPINGCARTPAGEID int=0;
    --Donation

    if(@TYPE=45)
        begin
            select @MERCHANTACCOUNTID=MERCHANTACCOUNT,@SHOPPINGCARTPAGEID=ShoppingCartPageID from CLIENTDONATIONS 
            where CONTENTID=@CONTENTID
        end
    else if(@TYPE=47 or @TYPE=154)--Event & Event 2.0

        begin
            select @MERCHANTACCOUNTID=MERCHANTACCOUNT,@SHOPPINGCARTPAGEID=ShoppingCartPageID from ClientEvents 
            where CONTENTID=@CONTENTID
        end
    else if(@Type=114)--ECard

        begin
            select @MERCHANTACCOUNTID=C.MERCHANTACCOUNT,@SHOPPINGCARTPAGEID=C.ShoppingCartPageID
            from ECARDPART E inner join ClientDonations C on E.ClientDonationsID=C.ID
            where E.SiteContentID=@CONTENTID and E.ClientDonationsID>0
        end
            else if(@Type=92)--PPM

        begin
            declare @xmlOptions as xml
            declare @donationSupported as bit;
            select top 1 @xmlOptions=Options from FUNDRAISERS where SITECONTENTID=@CONTENTID;

            select @donationSupported= @xmlOptions.value('(//SupportDonations)[1]','bit')

            if(@donationSupported=1)
            begin
                    select @MERCHANTACCOUNTID=C.MERCHANTACCOUNT from FundRaisers F inner join 
                    SiteContent SC
                    on F.SiteContentID=SC.ID INNER JOIN ClientDonations C
                    on SC.ID=C.ContentID WHERE SC.ID=@CONTENTID
            end
        end
    else if(@Type=118)--Transaction Manager

        begin
            select @MERCHANTACCOUNTID=G.MerchantAccountID from GivingHistory2 G
            where G.SiteContentID=@contentId
        end
    else if(@Type=9102)--Payment 2.0

        begin
            select @MERCHANTACCOUNTID=cm.ID from SHOPPINGCARTSETTINGS st inner join 
            SiteContent sc on st.ID=sc.Guid inner join ClientMerchantAccounts cm 
            on st.MERCHANTACCOUNTID=cm.BBPSID where sc.ID=@CONTENTID
        end
    else if(@Type=9111)--ADF

        begin
                        declare @xml As XML
                    declare @data  nvarchar(max)

                    select @data=S.XMLData from SiteContent S where 
                    S.ID=@CONTENTID

                    set @xml=cast(@data as xml);

                    ;with xmlnamespaces('http://www.w3.org/2001/XMLSchema-instance' as xsi)

                    select @MERCHANTACCOUNTID=item.value('(Value/text())[1]','INT')
                    from @xml.nodes('//Item[@Name="MerchantAccountID"]') As T(item)

                    --May be this part is using Shoppingcart

                    if(isnull(@MERCHANTACCOUNTID,0)<=0)
                    begin
                      select @xml=cast(item.value('(Value/text())[1]','nvarchar(max)') as xml)
                       from @xml.nodes('//Item[@Name="BBNCCUSTOM"]') As T(item)

                       select @SHOPPINGCARTPAGEID=@xml.value('(//PaymentPageId)[1]','int')
                    end
        end
    else if(@TYPE=9103)--Sponsorship form

        begin
           select @SHOPPINGCARTPAGEID=PAYMENTPARTPAGE from dbo.SPONSORSHIPFORMCMSSETTINGS sc
           inner join SiteContent c on sc.ID=c.Guid where c.ID=@CONTENTID
        end
    else if(@TYPE=9101)--Sponsorship status

        begin
           select @SHOPPINGCARTPAGEID=PAYMENTPARTPAGE from dbo.SPONSORSHIPSTATUSCMSSETTINGS sc
           inner join SiteContent c on sc.ID=c.Guid where c.ID=@CONTENTID
        end
    else if(@TYPE=117) --Membership BBEC

        begin
           select @SHOPPINGCARTPAGEID=ShoppingCartPageID from dbo.ClientMemberships 
             where SiteContentId=@CONTENTID
        end
    else if(@TYPE=112) --Payment 1.0

        begin
           select @MERCHANTACCOUNTID=MerchantAccountID from dbo.ShoppingCartPart 
             where SiteContentID=@CONTENTID
        end

    --If this condition matches it means part is using shoppingcart.

    if (isnull(@MERCHANTACCOUNTID,0)<=0 and isnull(@SHOPPINGCARTPAGEID,0)>0)
       begin
              declare @ContentTypeID int=0;

                    select @ContentTypeID= sc.ContentTypesID from  dbo.SitePages sp inner join  
                    dbo.PageContent pc on sp.ID=pc.SitePagesID inner join 
                    dbo.SiteContent sc on pc.SiteContentId=sc.ID where sp.ID=@SHOPPINGCARTPAGEID

                    if(@ContentTypeID=9102) --Part is using Payment 2.0

                    begin
                        select @MERCHANTACCOUNTID=cm.ID from dbo.SHOPPINGCARTSETTINGS st inner join 
                        dbo.SiteContent sc on st.ID=sc.Guid inner join dbo.PageContent pc on sc.ID=pc.SiteContentID
                        inner join dbo.ClientMerchantAccounts cm 
                        on st.MERCHANTACCOUNTID=cm.BBPSID where pc.SitePagesID=@SHOPPINGCARTPAGEID
                    end
                    else if(@ContentTypeID=112) --Part is using Payment 1.0

                    begin
                        select @MERCHANTACCOUNTID=st.MerchantAccountID from dbo.ShoppingCartPart st inner join 
                        dbo.SiteContent sc on st.SiteContentID=sc.ID inner join dbo.PageContent pc 
                        on sc.ID=pc.SiteContentID where pc.SitePagesID=@SHOPPINGCARTPAGEID
                    end
       end

 select isnull(@MERCHANTACCOUNTID,0)
end;