USP_CLONESITE_EVENTREGISTRATION

Handles the Event Registration-specific steps for cloning a CMS site.

Parameters

Parameter Parameter Type Mode Description
@SourceClientSitesID int IN
@TargetClientSitesID int IN
@CurrentUserID int IN
@CopyBatchGuid uniqueidentifier IN

Definition

Copy


    CREATE procedure dbo.USP_CLONESITE_EVENTREGISTRATION
    (
      @SourceClientSitesID int,
      @TargetClientSitesID int,
      @CurrentUserID int,
      @CopyBatchGuid uniqueidentifier
    )
    as


      --Insert new email acknowledgement templates

      declare @IDs xml
      set @IDs = 
      (
        select CE.EmailTemplateID as ID
        from dbo.ClientEvents CE
        inner join dbo.SiteContent SC on SC.CopySourceID = CE.ContentID and SC.CopyBatchGUID = @CopyBatchGuid
        FOR XML RAW, ELEMENTS
      )        
      exec spCloneSite_EmailTemplate @TargetClientSitesID,@CurrentUserID,@CopyBatchGUID,@IDs

      INSERT INTO ClientEvents
      (
        ClientsID,
        OwnerID,
        Deleted,
        Guid,
        FundID,
        ConstitCodeID,
        EmailTemplateID,
        RedirectPageID,
        ContentID,
        MerchantAccount,
        NoMGPledges,
        CartMessage,
        ShoppingCartPageID,
        AllowCreditCard,
        AllowPledge,
        CartSendRegistrationAcknowledgementAlways,
        AcknowledgementBlock
      )
      SELECT 
        CE.ClientsID,
        CE.OwnerID,
        CE.Deleted,
        NEWID(),
        CE.FundID,
        CE.ConstitCodeID,
        ISNULL(ET.ID, -1),
        ISNULL(REDIRECTSP.ID, CE.RedirectPageID),
        SC.ID,
        CE.MerchantAccount,
        CE.NoMGPledges,
        dbo.UFN_UPDATECOPYCONTENTHTML (CE.CartMessage, @CopyBatchGUID),
        ISNULL(CARTSP.ID, CE.ShoppingCartPageID),
        CE.AllowCreditCard,
        CE.AllowPledge,
        CE.CartSendRegistrationAcknowledgementAlways,
        dbo.UFN_UPDATECOPYCONTENTHTML (CE.AcknowledgementBlock, @CopyBatchGUID)
      FROM ClientEvents CE
      INNER JOIN SiteContent SC on SC.CopySourceID = CE.ContentID and SC.CopyBatchGUID = @CopyBatchGUID
      LEFT OUTER JOIN EmailTemplate ET on ET.CopySourceID = CE.EmailTemplateID and ET.CopyBatchGUID = @CopyBatchGUID
      LEFT OUTER JOIN SitePages REDIRECTSP on REDIRECTSP.CopySourceID = CE.RedirectPageID and REDIRECTSP.CopyBatchGUID = @CopyBatchGUID
      LEFT OUTER JOIN SitePages CARTSP on CARTSP.CopySourceID = CE.ShoppingCartPageID and CARTSP.CopyBatchGUID = @CopyBatchGUID

      INSERT INTO EventItems
      (
        ClientEventsID,
        BackOfficeID,
        LimitCapacity,
        PageLink,
        DisplayName,
        ShowRelations,
        Attributes,
        DisplayDesc,
        Target,
        PageTabID
      )

      SELECT 
        CE2.ID,
        EI.BackOfficeID,
        EI.LimitCapacity,               
        ISNULL(CAST(SP.ID AS NVARCHAR(1024)), EI.PageLink),
        EI.DisplayName,
        EI.ShowRelations,
        EI.Attributes,
        EI.DisplayDesc,
        EI.Target,
        EI.PageTabID
      FROM EventItems EI
      INNER JOIN ClientEvents CE on CE.ID = EI.ClientEventsID
      INNER JOIN SiteContent SC on SC.CopySourceID = CE.ContentID and SC.CopyBatchGUID = @CopyBatchGUID
      INNER JOIN ClientEvents CE2 on CE2.ContentID = SC.ID
      LEFT JOIN SitePages SP on CAST(SP.CopySourceID AS NVARCHAR(1024)) = EI.PageLink and SP.CopyBatchGUID = @CopyBatchGUID

      --269040: Added the 'BackOfficeID' condition to the 'EventItems EI2' join

      INSERT INTO EventItemPrices
      (
        EventItemsID,
        BackOfficeID,
        Description,
        NumParticipants,
        Publish,
        AllowAnonRegistrants,
        MaxUnitsPerTxn
      )
      SELECT
        EI2.ID,
        EIP.BackOfficeID,
        EIP.Description,
        EIP.NumParticipants,
        EIP.Publish,
        EIP.AllowAnonRegistrants,
        EIP.MaxUnitsPerTxn
      FROM EventItemPrices EIP
      INNER JOIN EventItems EI on EI.ID = EIP.EventItemsID
      INNER JOIN ClientEvents CE on CE.ID = EI.ClientEventsID
      INNER JOIN SiteContent SC on SC.CopySourceID = CE.ContentID and SC.CopyBatchGUID = @CopyBatchGUID
      INNER JOIN ClientEvents CE2 on CE2.ContentID = SC.ID
      INNER JOIN EventItems EI2 on EI2.ClientEventsID = CE2.ID and EI2.BackOfficeID = EI.BackOfficeID 

      --Update XML Data 

      declare @Data xml
      set @Data = 
      (
        select P.SiteContentID, CE.ID as Value
        from dbo.UFN_GETXMLPROPERTYFORSITECOPY(@CopyBatchGuid,47, 'ClientEventsID') P
        inner join dbo.ClientEvents CE on CE.ContentID = P.SiteContentID
        FOR XML RAW, ELEMENTS
      )    
      exec USP_UPDATEXMLPROPERTYFORSITECOPY 'ClientEventsID', @Data