USP_FAFDonation_Update

Definition

Copy


CREATE procedure dbo.USP_FAFDonation_Update
as
begin
    -- add organization

  update dbo.FAFDonation 
    set FAFDonation.FIRSTNAME = Individual.FIRSTNAME,
        FAFDonation.LASTNAME = Individual.LASTNAME,
        FAFDonation.[ADDRESS] = Individual.[ADDRESS],
        FAFDonation.[ADDRESSTYPE] = Individual.ADDRESSTYPE,
        FAFDonation.CITY = Individual.CITY,
        FAFDonation.[STATE] = Individual.[STATE],
        FAFDONATION.ZIP = Individual.ZIP,
        FAFDONATION.COUNTRY = Individual.COUNTRY,
        FAFDONATION.EMAIL = Individual.EMAIL, 
        FAFDONATION.PHONENUMBER = Individual.PHONENUMBER
    from dbo.FAFDonation fd (nolock) 
       inner join
        (select 
              firr.REVENUEID,
              isnull(c.FIRSTNAME, '') as FIRSTNAME,
              isnull(c.KEYNAME, '') as LASTNAME,
              isnull(a.ADDRESSBLOCK, '') as [ADDRESS],
              isnull(atc.[DESCRIPTION], '') as ADDRESSTYPE,
              isnull(a.[CITY], '') as CITY,
              isnull(st.ABBREVIATION, '') as [STATE],
              isnull(a.POSTCODE, '') as ZIP,
              isnull(ct.[DESCRIPTION], '') as COUNTRY,
              ISNULL(ea.EMAILADDRESS, '') as EMAIL,
              ISNULL(p.NUMBER, '') as PHONENUMBER
         from dbo.FAFORGANIZATIONINDIVIDUALRELATION firr (nolock) 
            inner join dbo.[CONSTITUENT] c (nolock)  
                on firr.INDIVIDUALCONSTITUENTID = c.ID
                left Join dbo.[ADDRESS] a (nolock)  
                        on c.ID = a.CONSTITUENTID and a.ISPRIMARY = 1
                  left outer join dbo.[STATE] st (nolock)  
                        on a.STATEID = st.ID   
                  left Join dbo.ADDRESSTYPECODE atc    (nolock)  
                      on atc.ID = a.ADDRESSTYPECODEID
                  left join dbo.EMAILADDRESS ea (nolock)  
                        on ea.CONSTITUENTID = c.ID and ea.ISPRIMARY = 1
                  left join dbo.phone p (nolock)  
                         on p.CONSTITUENTID = c.ID and p.ISPRIMARY = 1
                  left join dbo.PHONETYPECODE ptc (nolock)  
                         on p.PHONETYPECODEID = ptc.ID 
                  left join dbo.COUNTRY ct (nolock)  
                         on ct.ID = a.COUNTRYID
            where c.IsORGANIZATION = 0) Individual
      on fd.REVENUEID = Individual.REVENUEID and fd.ISCOMPANYDONATION = 1

    -- get group name and type

    update dbo.FAFDonation 
        set FAFDonation.GROUPNAME = FAFGROUP.GROUPNAME,
            FAFDonation.GROUPTYPE = FAFGROUP.GROUPTYPE,
            FAFDonation.RegistrantRole = ''
     from dbo.FAFDonation (nolock)
       inner join
          (select distinct 
                   ts.TEAMCONSTITUENTID as constituentID, 
                   ts.EVENTID,
                   tfm.NAME As Groupname, 
                   ts.[TYPE] as GroupType,
                   '' As [Role]
                from dbo.TEAMEXTENSION ts (nolock)  
                     inner join dbo.TEAMFUNDRAISINGTEAM  tfm (nolock)  
                       on ts.TEAMFUNDRAISINGTEAMID = tfm.ID) FAFGROUP
           on FAFDonation.RECOGNITIONID = FAFGROUP.constituentID
     where FAFDonation.GROUPNAME = ''

     -- update previous donor

     update dbo.FAFDonation 
        set FAFDonation.ISPREVIOUSDONOR =
             case isnull(PriorEvent.CurrentEVENTID, '00000000-0000-0000-0000-000000000000')
             when '00000000-0000-0000-0000-000000000000'  then 0
             else 1
             end
        from dbo.FAFDonation (nolock)
          left join
              (select distinct Revenue.CONSTITUENTID, 
                      et.EVENTID As CurrentEventID
                    from dbo.EVENTEXTENSION et (nolock)  
                         inner join dbo.[Event] e (nolock)  
                              on et.PRIORYEAREVENTID = e.ID
                         inner join 
                           (select distinct R_EXT.APPEALID, fr.CONSTITUENTID
                              from dbo.FINANCIALTRANSACTION fr    (nolock)      
                                  inner join dbo.FINANCIALTRANSACTIONLINEITEM FTLI (nolock)  
                                      on FTLI.FINANCIALTRANSACTIONID = fr.ID 
                            inner join dbo.REVENUESPLIT_EXT RS_EXT (nolock)  
                                    on RS_EXT.ID = FTLI.ID and RS_EXT.[APPLICATION] = 'Donation' 
                                  inner join dbo.REVENUE_EXT R_EXT (nolock)  
                                      on fr.ID = R_EXT.ID) Revenue
                        on Revenue.APPEALID = e.APPEALID) priorEvent
              on FAFDonation.EVENTID = priorEvent.CurrentEventID 
            and FAFDonation.CONSTITUENTID = priorEvent.CONSTITUENTID

     -- update recognition fro a single donor

     update dbo.FAFDonation 
          set RECOGNITION =
             case isnull(REGISTRANT.CONSTITUENTID, '00000000-0000-0000-0000-000000000000')
             when '00000000-0000-0000-0000-000000000000'  then ''
             else FAFDonation.RECOGNITION
             end

          from dbo.FAFDonation (nolock)
             left join dbo.REGISTRANT (nolock) 
                 on FAFDonation.RECOGNITIONID = REGISTRANT.CONSTITUENTID
                     and FAFDonation.EVENTID = REGISTRANT.EVENTID
         where FAFDonation.CONSTITUENTID = FAFDonation.RECOGNITIONID 
               and FAFDonation.REGISTRANTROLE = 'Individual'

end