USP_DATAFORMTEMPLATE_VIEW_SPONSORSHIP

The load procedure used by the view dataform template "Sponsorship Summary View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@NAME nvarchar(700) INOUT Name
@SPONSORSHIPPROGRAMNAME nvarchar(100) INOUT Program name
@SPONSORSHIPSTART date INOUT Start date
@SPONSORSHIPEND date INOUT End date
@SPONSORSHIPOPPORTUNITYID uniqueidentifier INOUT SPONSORSHIPOPPORTUNITYID
@PROGRAMID uniqueidentifier INOUT PROGRAMID
@CONSTITUENTID uniqueidentifier INOUT CONSTITUENTID
@REVENUECONSTITUENTID uniqueidentifier INOUT REVENUECONSTITUENTID
@REVENUECONSTITUENTTEXT nvarchar(700) INOUT Gift sponsorship paid for by
@STATUS nvarchar(100) INOUT Status
@REVENUEID uniqueidentifier INOUT REVENUEID
@SPONSORSHIPOPPORTUNITYTYPECODE tinyint INOUT SPONSORSHIPOPPORTUNITYTYPECODE
@OPPORTUNITYNAME nvarchar(100) INOUT OPPORTUNITYNAME
@TRANSACTIONID uniqueidentifier INOUT TRANSACTIONID
@ACTIONCODE tinyint INOUT ACTIONCODE
@DELETEALLOWED bit INOUT DELETEALLOWED
@REACTIVATEALLOWED bit INOUT REACTIVATEALLOWED
@NEXTSPONSORSHIPID uniqueidentifier INOUT NEXTSPONSORSHIPID
@NEXTSPONSORSHIPTEXT nvarchar(700) INOUT NEXTSPONSORSHIPTEXT
@NEXTSPONSORSHIPLABEL nvarchar(100) INOUT NEXTSPONSORSHIPLABEL
@PREVIOUSSPONSORSHIPID uniqueidentifier INOUT PREVIOUSSPONSORSHIPID
@PREVIOUSSPONSORSHIPTEXT nvarchar(700) INOUT PREVIOUSSPONSORSHIPTEXT
@PREVIOUSSPONSORSHIPLABEL nvarchar(100) INOUT PREVIOUSSPONSORSHIPLABEL
@ALLOWSOLESPONSORSHIP bit INOUT ALLOWSOLESPONSORSHIP
@ALLOWCHANGESTARTDATE bit INOUT ALLOWCHANGESTARTDATE
@ALLOWCHANGEPLANNEDENDDATE bit INOUT ALLOWCHANGEPLANNEDENDDATE
@REMOVESOLESPONSORSHIP bit INOUT REMOVESOLESPONSORSHIP
@SHOWREVENUE bit INOUT SHOWREVENUE
@AFFILIATECONSTITUENTID uniqueidentifier INOUT AFFILIATECONSTITUENTID
@AFFILIATECONSTITUENTTEXT nvarchar(100) INOUT Affiliate organization
@PLANNEDENDDATE date INOUT Expiration date
@SPONSORTYPECODE tinyint INOUT SPONSORTYPECODE
@CHANGEDBY nvarchar(128) INOUT Cancelled by
@EXPIRATIONREASON nvarchar(100) INOUT EXPIRATIONREASON
@OPPORTUNITYLOOKUPID nvarchar(20) INOUT OPPORTUNITYLOOKUPID
@COMMITMENTID nvarchar(20) INOUT Commitment ID
@ADDITIONALRECURRINGGIFTREVENUEID uniqueidentifier INOUT ADDITIONALRECURRINGGIFTREVENUEID
@SHOWADDRECURRINGADDITIONALGIFT bit INOUT SHOWADDRECURRINGADDITIONALGIFT
@SHOWGOTORECURRINGADDITIONALGIFT bit INOUT SHOWGOTORECURRINGADDITIONALGIFT
@ISPENDING bit INOUT
@PENDINGBATCHNUMBER nvarchar(100) INOUT
@CURRENTAPPUSERID uniqueidentifier IN
@ATTRIBUTEDEFINED bit INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_SPONSORSHIP
(
    @ID uniqueidentifier, 
    @DATALOADED bit = 0 output,
    @NAME nvarchar(700) = null output,
    @SPONSORSHIPPROGRAMNAME nvarchar(100) = null output,
    @SPONSORSHIPSTART date = null output,
    @SPONSORSHIPEND  date = null output,
    @SPONSORSHIPOPPORTUNITYID uniqueidentifier = null output,
    @PROGRAMID uniqueidentifier=null output,
    @CONSTITUENTID uniqueidentifier=null output,
    @REVENUECONSTITUENTID uniqueidentifier = null output,
    @REVENUECONSTITUENTTEXT nvarchar(700) = null output,
    @STATUS nvarchar(100) = null output,
    @REVENUEID uniqueidentifier=null output,
    @SPONSORSHIPOPPORTUNITYTYPECODE tinyint=null output,
    @OPPORTUNITYNAME nvarchar(100) = null output,
    @TRANSACTIONID uniqueidentifier = null output,
    @ACTIONCODE tinyint = null output,
    @DELETEALLOWED bit = null output,
    @REACTIVATEALLOWED bit = null output,
    @NEXTSPONSORSHIPID uniqueidentifier = null output,
    @NEXTSPONSORSHIPTEXT nvarchar(700) = null output,
    @NEXTSPONSORSHIPLABEL nvarchar(100) = null output,
    @PREVIOUSSPONSORSHIPID uniqueidentifier = null output,
    @PREVIOUSSPONSORSHIPTEXT nvarchar(700) = null output,
    @PREVIOUSSPONSORSHIPLABEL nvarchar(100) = null output,
    @ALLOWSOLESPONSORSHIP bit = null output,
    @ALLOWCHANGESTARTDATE bit = null output,
    @ALLOWCHANGEPLANNEDENDDATE bit = null output,
    @REMOVESOLESPONSORSHIP bit = null output,
    @SHOWREVENUE bit = null output,
    @AFFILIATECONSTITUENTID uniqueidentifier = null output,
    @AFFILIATECONSTITUENTTEXT nvarchar(100) = null output,
    @PLANNEDENDDATE date = null output,
    @SPONSORTYPECODE tinyint = null output,
    @CHANGEDBY nvarchar(128) = null output,
    @EXPIRATIONREASON nvarchar(100) = null output,
    @OPPORTUNITYLOOKUPID nvarchar(20) = null output,
    @COMMITMENTID nvarchar(20) = null output,
    @ADDITIONALRECURRINGGIFTREVENUEID uniqueidentifier = null output,
    @SHOWADDRECURRINGADDITIONALGIFT bit = null output,
    @SHOWGOTORECURRINGADDITIONALGIFT bit = null output,
  @ISPENDING bit = null output,
  @PENDINGBATCHNUMBER nvarchar(100) = null output,
  @CURRENTAPPUSERID uniqueidentifier = null,
  @ATTRIBUTEDEFINED bit = null output
)
as
    set nocount on;

    -- be sure to set this, in case the select returns no rows

    set @DATALOADED = 0;

    declare @CURRENTDATE datetime;
      set @CURRENTDATE = getdate();

      declare @CURRENTDATEEARLIESTTIME date;
      set @CURRENTDATEEARLIESTTIME = @CURRENTDATE;

    -- populate the output parameters, which correspond to fields on the form.  Note that

    -- we set @DATALOADED = 1 to indicate that the load was successful.  Otherwise, the system

    -- will display a "no data loaded" message.

    declare @REVENUESPLITID uniqueidentifier=null;

  --AdiSa 1/23/2013 WI 242703: We first evaluate if the current app user is a sys admin or 

  --has permission to view the payment details view form. If permission is granted then set

  --the @SHOWREVENUE variable to true. Otherwise hide the payment tab completely.

  declare @PAYMENTDETAILSVIEWFORMID uniqueidentifier;
  set @PAYMENTDETAILSVIEWFORMID = 'BAFCA6F5-4CDB-4173-AECE-113713D38BFB';

  -- SPONSORSHIP PROGRAM START AND END DATES

    select
      @DATALOADED = 1,
      @CONSTITUENTID = SPONSORSHIP.CONSTITUENTID,
            @REVENUECONSTITUENTID = REVENUE.CONSTITUENTID,
            @REVENUECONSTITUENTTEXT = 
                case 
                when SPONSORSHIP.CONSTITUENTID = REVENUE.CONSTITUENTID or REVENUE.ID is null
                then ''
                else (select NAME from dbo.UFN_CONSTITUENT_DISPLAYNAME(REVENUE.CONSTITUENTID))
                end,            
      @SPONSORSHIPOPPORTUNITYID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID,
            @OPPORTUNITYNAME = dbo.UFN_SPONSORSHIPOPPORTUNITY_TRANSLATIONFUNCTION(SPONSORSHIP.SPONSORSHIPOPPORTUNITYID),
      @SPONSORSHIPSTART = SPONSORSHIP.STARTDATE,
      @SPONSORSHIPEND = SPONSORSHIP.ENDDATE,
      @REVENUESPLITID = SPONSORSHIP.REVENUESPLITID,
      @STATUS = SPONSORSHIP.STATUS +
            case when SPONSORSHIP.STATUSCODE = 2 then
              case when LASTTRANSACTION.ACTIONCODE in(2,3) then
                     ' (' + case LASTTRANSACTION.ACTIONCODE
                                    when 2 then
                                      case SPONSORSHIP.ID
                                        when LASTTRANSACTION.CONTEXTSPONSORSHIPID then
                                          case LASTREASON.REASONTYPECODE when 11 then 'Expired' else 'Cancelled' end
                                        when LASTTRANSACTION.DECLINEDSPONSORSHIPID then 'Declined' end
                                    when 3 then 'Terminated'
                                    end + ')'
                    when LASTTRANSACTION.ACTIONCODE = 7 and SPONSORSHIP.ID = LASTTRANSACTION.DECLINEDSPONSORSHIPID then
                     ' (Declined)'
                    else '' end
            when SPONSORSHIP.STATUSCODE = 1 and LASTTRANSACTION.ACTIONCODE = 6 then
             ' (Transfer pending)'
            else '' end,
      @TRANSACTIONID = LASTTRANSACTION.ID,
      @ACTIONCODE = LASTTRANSACTION.ACTIONCODE,
      @DELETEALLOWED = dbo.UFN_SPONSORSHIP_DELETEALLOWED(SPONSORSHIP.ID),
      @REACTIVATEALLOWED = dbo.UFN_SPONSORSHIP_REACTIVATEALLOWED(SPONSORSHIP.ID),
      @PROGRAMID = SPONSORSHIP.SPONSORSHIPPROGRAMID,
      @SPONSORSHIPPROGRAMNAME = SPONSORSHIPPROGRAM.NAME,
      @ALLOWSOLESPONSORSHIP = case when dbo.UFN_SPONSORSHIP_OFFERSOLESPONSORSHIP(SPONSORSHIPOPPORTUNITYGROUP.ID,SPONSORSHIPOPPORTUNITY.SPONSORSHIPLOCATIONID) = 1
                                     and  SPONSORSHIP.ISSOLESPONSORSHIP = 0
                                     and not exists (select 'X' from SPONSORSHIP S2 where S2.SPONSORSHIPOPPORTUNITYID = SPONSORSHIPOPPORTUNITY.ID and S2.STATUSCODE in(0,1) and S2.ID != @ID)
                                     and SPONSORSHIPOPPORTUNITY.AVAILABILITYCODE = 0
                                     and SPONSORSHIP.STATUSCODE = 1
                                     and LASTTRANSACTION.ACTIONCODE <> 6
                                     then 1
                                     else 0 end,    
        @REMOVESOLESPONSORSHIP =  case when SPONSORSHIP.ISSOLESPONSORSHIP = 1
                                  and SPONSORSHIP.STATUSCODE = 1
                                                            and LASTTRANSACTION.ACTIONCODE <> 6
                                                            then 1
                                                            else 0
                                                            end,
      @SPONSORSHIPOPPORTUNITYTYPECODE = SPONSORSHIPOPPORTUNITYGROUP.SPONSORSHIPOPPORTUNITYTYPECODE,
      @REVENUEID = REVENUESPLIT.REVENUEID,
        @NAME = SPONSORSHIP_NF.NAME,
      @NEXTSPONSORSHIPID = NEXTSPONSORSHIP.ID,
      @NEXTSPONSORSHIPTEXT = case when LASTTRANSACTION.ACTIONCODE = 5 then (select NAME from dbo.UFN_CONSTITUENT_DISPLAYNAME(NEXTSPONSORSHIP.CONSTITUENTID)) else dbo.UFN_SPONSORSHIPOPPORTUNITY_TRANSLATIONFUNCTION(NEXTSPONSORSHIP.SPONSORSHIPOPPORTUNITYID) end,
      @NEXTSPONSORSHIPLABEL = case when NEXTSPONSORSHIP.ID is not null then case LASTTRANSACTION.ACTIONCODE when 5 then 'Reassigned' when 6 then 'Pending transfer' else 'Transferred' end + ' to:' end,
      @PREVIOUSSPONSORSHIPID = PREVIOUSSPONSORSHIP.ID,
      @PREVIOUSSPONSORSHIPTEXT = case when CREATETRANSACTION.ACTIONCODE = 5 then (select NAME from dbo.UFN_CONSTITUENT_DISPLAYNAME(PREVIOUSSPONSORSHIP.CONSTITUENTID)) else dbo.UFN_SPONSORSHIPOPPORTUNITY_TRANSLATIONFUNCTION(PREVIOUSSPONSORSHIP.SPONSORSHIPOPPORTUNITYID) end,
      @PREVIOUSSPONSORSHIPLABEL = case when PREVIOUSSPONSORSHIP.ID is not null then case when PREVIOUSSPONSORSHIP.STATUSCODE = 0 then 'Pending transfer' else case CREATETRANSACTION.ACTIONCODE when 5 then 'Reassigned' else 'Transferred' end end + ' from:' end,
    @AFFILIATECONSTITUENTID = 
                case 
                when SPONSORSHIPAFFILIATEPROGRAM.ID is null
                then null
                else SPONSORSHIPAFFILIATEPROGRAM.AFFILIATEID
                end,
        @AFFILIATECONSTITUENTTEXT = 
                case 
              when SPONSORSHIPAFFILIATEPROGRAM.ID is null
                then ''
                else (select NAME from dbo.UFN_CONSTITUENT_DISPLAYNAME(SPONSORSHIPAFFILIATEPROGRAM.AFFILIATEID))
                end,
        @PLANNEDENDDATE = SPONSORSHIP.PLANNEDENDDATE,
        @ALLOWCHANGEPLANNEDENDDATE = 
        case SPONSORSHIP.STATUSCODE
          when 1 then 1
            else 0
        end,
        @SHOWREVENUE = case when REVENUESPLIT.REVENUEID is not null and (SPONSORSHIP.STATUSCODE = 1 or LASTTRANSACTION.ACTIONCODE in(2,3,5)) and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists(select SITEID from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUE.ID) as SITES where dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORSITE(@CURRENTAPPUSERID, @PAYMENTDETAILSVIEWFORMID, SITEID) = 1)) then 1 else 0 end,
        @CHANGEDBY = (select USERNAME from CHANGEAGENT where ID = SPONSORSHIP.CHANGEDBYID),
        @EXPIRATIONREASON = EXPIREREASON.REASON,
        @OPPORTUNITYLOOKUPID = SPONSORSHIPOPPORTUNITY.LOOKUPID,
        @COMMITMENTID = SPONSORSHIPCOMMITMENT.LOOKUPID,
        @ADDITIONALRECURRINGGIFTREVENUEID = SPONSORSHIPRECURRINGADDITIONALGIFT.REVENUEID,
        @SHOWADDRECURRINGADDITIONALGIFT = 
            case when SPONSORSHIPRECURRINGADDITIONALGIFT.REVENUEID is null and SPONSORSHIP.STATUSCODE = 1
                then 1
            else 0
            end,
        @SHOWGOTORECURRINGADDITIONALGIFT = 
            case when SPONSORSHIPRECURRINGADDITIONALGIFT.REVENUEID is not null and SPONSORSHIP.STATUSCODE = 1
                then 1
            else 0
            end,
        @ISPENDING = REVENUESCHEDULE.ISPENDING
     from
      dbo.SPONSORSHIP
    inner join dbo.SPONSORSHIPTRANSACTION CREATETRANSACTION on CREATETRANSACTION.SPONSORSHIPCOMMITMENTID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID and CREATETRANSACTION.TRANSACTIONSEQUENCE = (select min(TRANSACTIONSEQUENCE) from dbo.SPONSORSHIPTRANSACTION MINSEQUENCE where MINSEQUENCE.SPONSORSHIPCOMMITMENTID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID and SPONSORSHIP.ID = MINSEQUENCE.TARGETSPONSORSHIPID)
    left outer join dbo.SPONSORSHIP PREVIOUSSPONSORSHIP on PREVIOUSSPONSORSHIP.ID = case when CREATETRANSACTION.ACTIONCODE in(1,5,6,7,8) then case when CREATETRANSACTION.CONTEXTSPONSORSHIPID <> SPONSORSHIP.ID then CREATETRANSACTION.CONTEXTSPONSORSHIPID end end
    inner join dbo.SPONSORSHIPTRANSACTION LASTTRANSACTION on LASTTRANSACTION.SPONSORSHIPCOMMITMENTID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID and LASTTRANSACTION.TRANSACTIONSEQUENCE = (select max(TRANSACTIONSEQUENCE) from dbo.SPONSORSHIPTRANSACTION MAXSEQUENCE where MAXSEQUENCE.SPONSORSHIPCOMMITMENTID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID and SPONSORSHIP.ID in(MAXSEQUENCE.CONTEXTSPONSORSHIPID,MAXSEQUENCE.TARGETSPONSORSHIPID,MAXSEQUENCE.DECLINEDSPONSORSHIPID) and MAXSEQUENCE.ACTIONCODE <> 9)
    left outer join dbo.SPONSORSHIP NEXTSPONSORSHIP on NEXTSPONSORSHIP.ID = case when LASTTRANSACTION.ACTIONCODE in(1,5,6,7,8) then case when LASTTRANSACTION.TARGETSPONSORSHIPID <> SPONSORSHIP.ID then LASTTRANSACTION.TARGETSPONSORSHIPID end end
    inner join dbo.SPONSORSHIPOPPORTUNITY on SPONSORSHIPOPPORTUNITY.ID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID
    inner join dbo.SPONSORSHIPOPPORTUNITYGROUP on SPONSORSHIPOPPORTUNITYGROUP.ID = SPONSORSHIPOPPORTUNITY.SPONSORSHIPOPPORTUNITYGROUPID
    inner join dbo.SPONSORSHIPPROGRAM on SPONSORSHIPPROGRAM.ID = SPONSORSHIP.SPONSORSHIPPROGRAMID
    left outer join dbo.REVENUESPLIT on REVENUESPLIT.ID = SPONSORSHIP.REVENUESPLITID
    left outer join dbo.REVENUE on REVENUE.ID = REVENUESPLIT.REVENUEID
    left outer join dbo.REVENUESCHEDULE on REVENUE.ID = REVENUESCHEDULE.ID
    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(SPONSORSHIP.CONSTITUENTID) SPONSORSHIP_NF
    left outer join dbo.SPONSORSHIPAFFILIATEPROGRAM on SPONSORSHIPAFFILIATEPROGRAM.ID = SPONSORSHIP.SPONSORSHIPPROGRAMID
    left outer join dbo.SPONSORSHIPREASON as LASTREASON on LASTREASON.ID = LASTTRANSACTION.SPONSORSHIPREASONID
    left outer join dbo.SPONSORSHIPREASON as EXPIREREASON on EXPIREREASON.ID = SPONSORSHIP.EXPIRATIONREASONID
    inner join dbo.SPONSORSHIPCOMMITMENT on SPONSORSHIPCOMMITMENT.ID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID
    left outer join dbo.SPONSORSHIPRECURRINGADDITIONALGIFT on SPONSORSHIPRECURRINGADDITIONALGIFT.SPONSORSHIPID = SPONSORSHIP.ID and SPONSORSHIPRECURRINGADDITIONALGIFT.STATUSCODE in (0,1,5)
    where 
      SPONSORSHIP.ID = @ID;

  --Determine if we can change the start date on the sponsorship            

    select 
         @ALLOWCHANGESTARTDATE = 
            case S.ACTIONCODE
                when 0 --Add

                then 1
                else 0
            end
    from 
         SPONSORSHIPTRANSACTION S
    where 
         TARGETSPONSORSHIPID = @ID
         and TRANSACTIONSEQUENCE = (select MIN(TRANSACTIONSEQUENCE) from sponsorshiptransaction where TARGETSPONSORSHIPID = @ID)

    select top 1
      @SPONSORTYPECODE = case
                           when min(SPONSORTYPECODE) = max(SPONSORTYPECODE) then min(SPONSORTYPECODE)
                           else 0
                         end
    from dbo.SPONSORDATERANGE
    where CONSTITUENTID = @CONSTITUENTID
    group by case when DATEFROM <= @CURRENTDATEEARLIESTTIME then 0 else 1 end,
             case when (DATETO is null or DATETO > @CURRENTDATEEARLIESTTIME) then 0 else 1 end
    order by case when DATEFROM <= @CURRENTDATEEARLIESTTIME then 0 else 1 end,
             case when (DATETO is null or DATETO > @CURRENTDATEEARLIESTTIME) then 0 else 1 end

    if @ISPENDING = 1
    begin
        select top 1
            @PENDINGBATCHNUMBER = BATCH.BATCHNUMBER 
        from 
            dbo.BATCH
            inner join dbo.BATCHREVENUE on BATCHREVENUE.BATCHID = BATCH.ID
            left join dbo.BATCHREVENUEAPPLICATION as [BATCHAPP] on [BATCHAPP].BATCHREVENUEID = BATCHREVENUE.ID 
        where 
            BATCH.STATUSCODE not in (1, 2
            and (
                ([BATCHAPP].REVENUEID = @REVENUEID and BATCHREVENUE.PAYINGPENDINGREVENUEID is null and [BATCHAPP].WASGENERATED = 1
                or
                ([BATCHAPP].REVENUEID is null and BATCHREVENUE.PAYINGPENDINGREVENUEID = @REVENUEID)
                or
                ([BATCHAPP].REVENUEID = @REVENUEID and BATCHREVENUE.PAYINGPENDINGREVENUEID = @REVENUEID)
                )
    end

  set @ATTRIBUTEDEFINED = dbo.UFN_ATTRIBUTECATEGORY_DEFINEDFORRECORDTYPE_FORAPPUSER('SPONSORSHIP',@CURRENTAPPUSERID)

    return 0;