USP_DATALIST_SPONSORSHIPUNRESOLVEDTRANSACTIONS

Unresolved online sponsorship purchases.

Definition

Copy


CREATE procedure dbo.USP_DATALIST_SPONSORSHIPUNRESOLVEDTRANSACTIONS
as
    set nocount on;

    select 
        [SALESORDERITEM].[ID],
        [SALESORDERITEM].[SALESORDERID] as [SID],
        null as SPONSOR ,
        case when GIFTRECIPIENTID is not null then dbo.UFN_CONSTITUENT_BUILDNAME(GIFTRECIPIENTID) else '' end as GIFTSPONSOR,
        [SALESORDERITEM].[SPONSORSHIPTYPE],
        [SALESORDERITEM].[PRICE] as AMOUNT,
        (select NAME from dbo.SPONSORSHIPPROGRAM SPR WHERE SPR.ID = SPONSORSHIPPROGRAMID) PROGRAM,
        case when exists (select 'x' from dbo.SPONSORSHIPOPPORTUNITYCHILD where ID = SPONSORSHIPOPPORTUNITYID) then 
            dbo.UFN_SPONSORSHIPOPPORTUNITY_TRANSLATIONFUNCTION(SPONSORSHIPOPPORTUNITYID) 
        else
            ''
        end as CHILD,
        case when exists (select 'x' from dbo.SPONSORSHIPOPPORTUNITYPROJECT where ID = SPONSORSHIPOPPORTUNITYID) then 
          dbo.UFN_SPONSORSHIPOPPORTUNITY_TRANSLATIONFUNCTION(SPONSORSHIPOPPORTUNITYID) 
        else
          ''
        end as PROJECT,
        case when ORDERTYPE = 0 then 
          SALESORDERITEMSPONSORSHIP.STARTDATE 
        else
          SALESORDERITEM.DATE
        end as DATE,
        SEQUENCEID,
        0 as ISVALIDRECORDOPERATION,
        SALESORDERITEM.TRANSACTIONCURRENCYID,
        0 as CONSTITUENTISMISSING
    from dbo.[SALESORDER]
    inner join (
            select 
              SALESORDERITEM.ID,
              SALESORDERITEM.SALESORDERID,
              SALESORDERITEM.PRICE,
              case when SALESORDERITEM.TYPE='Donation' then 'Sponsorship additional donation' else 'Sponsorship' end as SPONSORSHIPTYPE,
              case when SALESORDERITEM.TYPE='Donation' then 2 else 0 end as ORDERTYPE,
              SALESORDERITEM.DATEADDED as DATE,
              REVENUE.TRANSACTIONCURRENCYID
            from  dbo.SALESORDERITEM 
            inner join dbo.SALESORDERITEMSPONSORSHIP on SALESORDERITEMSPONSORSHIP.ID = SALESORDERITEM.ID
            left join dbo.SALESORDERPAYMENT on SALESORDERPAYMENT.SALESORDERID = SALESORDERITEM.SALESORDERID
            left join dbo.FINANCIALTRANSACTION REVENUE on SALESORDERPAYMENT.PAYMENTID = REVENUE.ID
            where SALESORDERITEM.CATEGORYNAME ='Sponsorship'
            union all
            select 
              SALESORDERITEM.ID,
              SALESORDERITEM.SALESORDERID,
              SALESORDERITEM.PRICE,
              'Sponsorship payment' as SPONSORSHIPTYPE,
              '1' ORDERTYPE,
              SALESORDERPAYMENT.PAYMENTDATEWITHTIMEOFFSET as DATE,
              REVENUE.TRANSACTIONCURRENCYID
            from 
            dbo.SALESORDERITEM 
            inner join dbo.SALESORDERITEMSPONSORSHIP on SALESORDERITEMSPONSORSHIP.ID = SALESORDERITEM.ID
            inner join dbo.SALESORDERPAYMENT on SALESORDERPAYMENT.SALESORDERID = SALESORDERITEM.SALESORDERID
            inner join dbo.FINANCIALTRANSACTION REVENUE on SALESORDERPAYMENT.PAYMENTID = REVENUE.ID
        ) as SALESORDERITEM on SALESORDERITEM.SALESORDERID = SALESORDER.ID
    left join dbo.SALESORDERITEMSPONSORSHIP on SALESORDERITEMSPONSORSHIP.ID = SALESORDERITEM.ID  
    where 
        [SALESORDER].[STATUSCODE] = 7 --order by SALESORDER.DATEADDED desc, SALESORDERITEM.ORDERTYPE

    union 
        select 
        [SALESORDER].[ID], 
        null as [SID],
        dbo.UFN_CONSTITUENT_BUILDNAME(SALESORDER.CONSTITUENTID) as SPONSOR,
        null as GIFTSPONSOR,
        null as SPONSORSHIPTYPE,
        SALESORDER.AMOUNT as AMOUNT,
        null as PROGRAM,
        null as CHILD,
        null as PROJECT,
        TRANSACTIONDATE as DATE,
        SALESORDER.SEQUENCEID,
        1 as ISVALIDRECORDOPERATION,
        REVENUE.TRANSACTIONCURRENCYID,
        case when SALESORDER.CONSTITUENTID is null then 1 else 0 end as CONSTITUENTISMISSING
    from dbo.[SALESORDER]
    inner join dbo.SALESORDERITEM on SALESORDERITEM.SALESORDERID = SALESORDER.ID
    inner join dbo.SALESORDERITEMSPONSORSHIP on SALESORDERITEMSPONSORSHIP.ID = SALESORDERITEM.ID
    left join dbo.SALESORDERPAYMENT on SALESORDERPAYMENT.SALESORDERID = SALESORDERITEM.SALESORDERID
    left join dbo.FINANCIALTRANSACTION REVENUE on SALESORDERPAYMENT.PAYMENTID = REVENUE.ID
    where  [SALESORDER].[STATUSCODE] = 7 
    order by SEQUENCEID desc