spTransactions_GetAllUnprocessedTransactions

Parameters

Parameter Parameter Type Mode Description
@BeginDownload datetime INOUT
@DownloadUserID int IN

Definition

Copy


CREATE procedure dbo.spTransactions_GetAllUnprocessedTransactions
(
@BeginDownload datetime output,
@DownloadUserID int
)
as
begin
      SET @BeginDownload = getutcdate()

            if (@DownloadUserID > 0)
            --This is an RE User download Request

            --The reason we do > 0 and not DownloadUserID = @DownloadUserID

            --is because we want all users in RE to be able to grab trans

            --not just the user that began the process. But this will run 

            --separate from the NetCommunity Service which is userid = 0

            begin
                UPDATE dbo.Transactions 
                SET BeginDownload = @BeginDownload, DownloadUserID = @DownloadUserID 
                WHERE 
                (BeginDownload IS NULL AND EndDownload IS NULL
                OR 
                (BeginDownload IS NOT NULL AND EndDownload IS NULL AND DownloadUserID > 0
                AND
                ID not in (select BBNCTRANID from BBNCTRANSACTIONDOWNLOADEXCEPTION)
            end
              else
            --This is a NetCommunity Service Request

            begin

                UPDATE dbo.Transactions 
                SET BeginDownload = @BeginDownload, DownloadUserID = @DownloadUserID
                WHERE 
                (BeginDownload IS NULL AND EndDownload IS NULL
                OR 
                (BeginDownload IS NOT NULL AND EndDownload IS NULL AND DownloadUserID = 0
                AND
                ID not in (select BBNCTRANID from BBNCTRANSACTIONDOWNLOADEXCEPTION)
            end


      /*Hacky way to make sure we do not try to download already committed transactions*/

   SELECT
      T.ID, T.TransactionID, T.TransactionType, T.Data, T.BBNCUserID, T.BackOfficeID
     FROM dbo.Transactions T
       inner join dbo.SignupTransactions ST on T.TransactionID = ST.SignupTransactionsID and T.TransactionType = '{5F84002B-ABB1-4f50-A244-D4B14FBB1579}'
    WHERE
      T.BeginDownload = @BeginDownload AND
      T.EndDownload IS NULL AND
      T.DownloadUserID = @DownloadUserID and
      ST.processed_date is null

    UNION ALL

    SELECT
       T.ID, T.TransactionID, T.TransactionType, T.Data, T.BBNCUserID, T.BackOfficeID
      FROM dbo.Transactions T
        inner join dbo.ProfileUpdateTransactions PUT on T.TransactionID = PUT.ProfileUpdateTransactionsID and T.TransactionType = '{DCEAFCC7-0290-488E-A194-953DE66D6AAB}' 
     WHERE
       T.BeginDownload = @BeginDownload AND
       T.EndDownload IS NULL AND
       T.DownloadUserID = @DownloadUserID and
       PUT.processed_date is null

    UNION ALL

    SELECT
       T.ID, T.TransactionID, T.TransactionType, T.Data, T.BBNCUserID, T.BackOfficeID
      FROM dbo.Transactions T
        inner join dbo.EventTransactions ERT on T.TransactionID = ERT.EventTransactionsID and T.TransactionType = '{172A5D9A-5241-493C-A2C2-EAC164C095B0}'
     WHERE
       T.BeginDownload = @BeginDownload AND
       T.EndDownload IS NULL AND
       T.DownloadUserID = @DownloadUserID and
       ERT.processed_date is null

    UNION ALL

    SELECT
       T.ID, T.TransactionID, T.TransactionType, T.Data, T.BBNCUserID, T.BackOfficeID
      FROM dbo.Transactions T
        inner join dbo.DonationTransactions DT on T.TransactionID = DT.DonationTransactionsID and T.TransactionType = '{5705B543-4033-4a3a-BBCD-A731403EE1E6}'
     WHERE
       T.BeginDownload = @BeginDownload AND
       T.EndDownload IS NULL AND
       T.DownloadUserID = @DownloadUserID and
       DT.processed_date is null

    UNION ALL

    SELECT
       T.ID, T.TransactionID, T.TransactionType, T.Data, T.BBNCUserID, T.BackOfficeID
      FROM dbo.Transactions T
        inner join dbo.MembershipTransactions MT on T.TransactionID = MT.ID and T.TransactionType = '{D7D6143F-823D-4c74-AC2F-947CC96B7008}'
     WHERE
       T.BeginDownload = @BeginDownload AND
       T.EndDownload IS NULL AND
       T.DownloadUserID = @DownloadUserID and
       MT.processed_date is null

    UNION ALL

    SELECT
       T.ID, T.TransactionID, T.TransactionType, T.Data, T.BBNCUserID, T.BackOfficeID
      FROM dbo.Transactions T
        inner join dbo.VolunteerTransactions VT on T.TransactionID = VT.ID and T.TransactionType = '{02B000B6-179F-4c0f-A2DE-6856DCD5D964}'
     WHERE
       T.BeginDownload = @BeginDownload AND
       T.EndDownload IS NULL AND
       T.DownloadUserID = @DownloadUserID and
       VT.ProcessedDate is null


end