USP_NON_CHECKOUT_PARTS_EXISTS

Parameters

Parameter Parameter Type Mode Description
@SITEID int IN
@NONCHECKOUTMERCHANTS varchar(250) IN

Definition

Copy


CREATE procedure dbo.USP_NON_CHECKOUT_PARTS_EXISTS(
@SITEID int,
@NONCHECKOUTMERCHANTS varchar(250)
)
as
begin

  --Logic for converting , separated merchants to rows.

  declare @delimeter CHAR(1)=',';
  declare @pos int;
  declare @intVal int;
  declare @item varchar(25);

  declare @tblMerchants table(Merchants int);


  while len(@NONCHECKOUTMERCHANTS)>0
  begin
       set @pos=charindex(@delimeter,@NONCHECKOUTMERCHANTS)
       if @pos=0
          set @pos=len(@NONCHECKOUTMERCHANTS)+1

       set @item= LEFT(@NONCHECKOUTMERCHANTS,@pos-1)
       set @NONCHECKOUTMERCHANTS=substring(@NONCHECKOUTMERCHANTS,@pos+1,len(@NONCHECKOUTMERCHANTS))
       set @intVal=cast(@item as int)

       insert into @tblMerchants values(@intVal)   
  end;


  drop table if exists #tmpNonCheckoutParts;

  --Insert logic begins


  --Donation Classic

      select top 1 SC.ID into #tmpNonCheckoutParts from 
      dbo.SiteContent SC inner join dbo.ClientDonations PT on SC.ID=PT.ContentID
      inner join @tblMerchants TM on PT.MerchantAccount=TM.Merchants
      where  SC.ClientSitesID=@SITEID and SC.Deleted=0 and SC.ContentTypesID=45
  union--Event,Event 2.0

      select top 1 SC.ID from dbo.SiteContent SC inner join 
      dbo.ClientEvents PT on SC.ID=PT.ContentID
      inner join @tblMerchants TM on PT.MerchantAccount=TM.Merchants
      where SC.ClientSitesID=@SITEID and SC.Deleted=0 and SC.ContentTypesID in(47,154)
  union--Transaction Manager

      select top 1 SC.ID from dbo.SiteContent SC inner join 
      dbo.GivingHistory2 PT on SC.ID=PT.SiteContentID
      inner join @tblMerchants TM on PT.MerchantAccountID=TM.Merchants
      where SC.Deleted=0 and SC.ContentTypesID=118
      and SC.ClientSitesID=@SITEID 
  union--Payment 2.0

      select top 1 SC.ID from dbo.SHOPPINGCARTSETTINGS ST inner join 
      dbo.SiteContent SC on ST.ID=SC.Guid inner join dbo.ClientMerchantAccounts CM
      inner join @tblMerchants TM on CM.ID=TM.Merchants
      on ST.MERCHANTACCOUNTID=CM.BBPSID 
      where SC.ClientSitesID=@SITEID and SC.Deleted=0 and SC.ContentTypesID=9102
  union --Ecard

      select top 1 SC.ID from dbo.ECARDPART E inner join dbo.ClientDonations C
      on E.ClientDonationsID=C.ID inner join SiteContent SC on E.SiteContentID=SC.ID
      inner join @tblMerchants TM on C.MerchantAccount=TM.Merchants
      where  E.ClientDonationsID>0 and SC.Deleted=0 and SC.ContentTypesID=114
  union --PPM

     select top 1 SC.ID from dbo.FUNDRAISERS F 
     inner join dbo.SiteContent SC on F.SiteContentID=SC.ID
     inner join dbo.ClientDonations C on SC.ID=C.ContentID
     inner join @tblMerchants TM on C.MerchantAccount=TM.Merchants
     where CONVERT(xml,options).value('(//SupportDonations)[1]','bit')=1 
     and SC.Deleted=0 and SC.ClientSitesID=@SITEID and SC.ContentTypesID=92
    union --Payment 1.0

    select top 1 SC.ID from dbo.ShoppingCartPart ST inner join 
      dbo.SiteContent SC on ST.SiteContentID=SC.ID inner join 
      @tblMerchants TM on ST.MerchantAccountID=TM.Merchants
      where SC.ClientSitesID=@SITEID and
      SC.Deleted=0 and SC.ContentTypesID=112

     --Code for ADF begins

     declare @prtADF AS table(PartID INT)
     declare @tblADFMerchants AS table(MerchantId INT)

     insert into @prtADF
     select ID from dbo.SiteContent SC where SC.ContentTypesID=9111 and SC.Deleted=0 and 
     SC.ClientSitesID=@SITEID


     declare @MAX int,@COUNTER INT=1

     select @MAX=count(*) from @prtADF

        while @COUNTER<=@MAX
        begin

                declare @PartId INT

                select @PartId=PartId from
                (
                    select *,row_number() over (order by (select null)) as RowNo from @prtADF
                ) AS T
                where RowNo=@COUNTER

                    insert into @tblADFMerchants
                    exec dbo.USP_GETMERCHANTACCOUNTIDFORPART @partId,9111--ADF ContentTypeId


                set @COUNTER=@COUNTER+1;

        end

  insert into #tmpNonCheckoutParts(ID)
  select top 1 1 from @tblADFMerchants TA inner join @tblMerchants TM on TA.MerchantId=TM.Merchants
 --ADF Code Ends--



  select count(*) from #tmpNonCheckoutParts;

  drop table #tmpNonCheckoutParts;

end;