USP_REPORT_SPONSORSHIPTERMINATEREPORT

Parameters

Parameter Parameter Type Mode Description
@ID nvarchar(36) IN

Definition

Copy

create procedure dbo.USP_REPORT_SPONSORSHIPTERMINATEREPORT
(
    @ID nvarchar(36)
)
with execute as owner
as
    set nocount on;

    declare @TABLENAME nvarchar(128)
    declare @SQL nvarchar(4000);

    select @TABLENAME = BUSINESSPROCESSOUTPUT.TABLENAME 
    from dbo.BUSINESSPROCESSSTATUS 
    inner join dbo.BUSINESSPROCESSOUTPUT on BUSINESSPROCESSSTATUS.ID = BUSINESSPROCESSOUTPUT.BUSINESSPROCESSSTATUSID
    where BUSINESSPROCESSSTATUS.ID = @ID
    and BUSINESSPROCESSOUTPUT.TABLEKEY = 'Success';

    if @TABLENAME is null or OBJECT_ID(@TABLENAME) is null
        raiserror('Business process exception table could not be found.  The process might not have completed successfully. ',13,1)

    begin try
        set @SQL = 'select ''http://www.blackbaud.com/CONSTITUENTID?CONSTITUENTID='' + CONVERT(nvarchar(36),CONSTITUENT.ID) CONSTITUENTID,
               NF.NAME SPONSORNAME,
               ''http://www.blackbaud.com/TERMINATESPONSORSHIPID?TERMINATESPONSORSHIPID='' + CONVERT(nvarchar(36),SPONSORSHIP.ID) TERMINATESPONSORSHIPID,
               dbo.UFN_SPONSORSHIPOPPORTUNITY_TRANSLATIONFUNCTION(SPONSORSHIP.SPONSORSHIPOPPORTUNITYID) OPPORTUNITY,
               case EXCEPTIONTAB.ERRORMESSAGE
               when ''BBERR_PENDINGSPONSORSHIPTERMINATE'' then N''Sponsorship pending - cannot be terminated.''
               when ''BBERR_INACTIVESPONSORSHIPTERMINATE'' then N''Sponsorship inactive - cannot be terminated.''        
               when ''SUCCESS'' then N''''
         else N''Unexpected exception: ''+EXCEPTIONTAB.ERRORMESSAGE
               end ERRORMESSAGE,
               SPONSORSHIPOPPORTUNITY.LOOKUPID,
               CONSTITUENT.LOOKUPID as SPONSORLOOKUPID
        from dbo.' + @TABLENAME + ' EXCEPTIONTAB 
        inner join dbo.SPONSORSHIP SPONSORSHIP on SPONSORSHIP.ID = EXCEPTIONTAB.TERMINATESPONSORSHIPID
        inner join dbo.SPONSORSHIPOPPORTUNITY on SPONSORSHIP.SPONSORSHIPOPPORTUNITYID =SPONSORSHIPOPPORTUNITY.ID
        inner join dbo.CONSTITUENT on CONSTITUENT.ID = SPONSORSHIP.CONSTITUENTID
        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF';

        exec sp_executesql @SQL;
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

return 0;