USP_EVENTSPONSOR_EDITSAVE2

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@NEWSPONSORCONSTITUENTID uniqueidentifier INOUT
@CONSTITUENTID uniqueidentifier IN
@EVENTSPONSORSHIPLOGO varbinary IN
@PICTURECHANGED bit IN
@EVENTSPONSORSHIPURL nvarchar(4000) IN
@SPONSORSHIPMESSAGE nvarchar(2000) IN
@ORGANIZATIONCONSTITUENTID uniqueidentifier IN
@ORGANIZATIONWEBADDRESS nvarchar(4000) IN
@EVENTSPONSORSHIPTYPEID uniqueidentifier IN
@FEESWAIVED bit IN
@BENEFITSWAIVED bit IN
@PASSWORD nvarchar(255) IN
@ALLOWADMINACCESSHQ bit IN

Definition

Copy


CREATE procedure dbo.USP_EVENTSPONSOR_EDITSAVE2
(
    @ID uniqueidentifier,
    @CURRENTAPPUSERID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @NEWSPONSORCONSTITUENTID uniqueidentifier = null output,
    @CONSTITUENTID uniqueidentifier,
    @EVENTSPONSORSHIPLOGO varbinary(max) = null,
    @PICTURECHANGED bit = 0,
    @EVENTSPONSORSHIPURL nvarchar(4000) = null,
    @SPONSORSHIPMESSAGE nvarchar(2000) = null,
    @ORGANIZATIONCONSTITUENTID uniqueidentifier = null,
    @ORGANIZATIONWEBADDRESS nvarchar(4000) = null,
    @EVENTSPONSORSHIPTYPEID uniqueidentifier,
    @FEESWAIVED bit = 0,
    @BENEFITSWAIVED bit = 0,
    @PASSWORD nvarchar(255),
  @ALLOWADMINACCESSHQ bit = 0
)
as
begin
    -- do work


  set nocount on;

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

  declare @CONTINUE bit;
  set @CONTINUE = 1;

  begin try
    if exists (select 1 from dbo.EVENTSPONSOR(nolock) where ID <> @ID and CONSTITUENTID = @CONSTITUENTID)
    begin
      set @CONTINUE = 0;
      raiserror('Cannot save. Selected individual can only sponse once in the event.', 13, 1);
    end

    if exists (select 1 from dbo.EVENTSPONSOR(nolock) where ID <> @ID and ORGANIZATIONCONSTITUENTID = @ORGANIZATIONCONSTITUENTID)
    begin
      set @CONTINUE = 0;
      raiserror('Cannot save. Selected organization can only sponse once in the event.', 13, 1);
    end

    if @CONTINUE = 1
    begin

      declare @OLDCONSTITUENTID uniqueidentifier;
      declare @OLDORGANIZATIONCONSTITUENTID uniqueidentifier;
      declare @BENEFITSWASWAIVED bit;
      declare @SPONSORSHIPLOGOID int;
      declare @OLDSPONSORSHIPTYPEID uniqueidentifier;
      declare @FEESAMOUNT money;
      declare @CLIENTSITESID int;
      declare @SPONSORNAME nvarchar(100);
      declare @OLDALLOWADMINACCESSHQ bit;

      select @OLDCONSTITUENTID = ES.CONSTITUENTID,
              @OLDORGANIZATIONCONSTITUENTID = ES.ORGANIZATIONCONSTITUENTID,
              @BENEFITSWASWAIVED = ES.BENEFITSWAIVED,
              @SPONSORSHIPLOGOID = ES.EVENTSPONSORSHIPLOGOID,
              @OLDSPONSORSHIPTYPEID = ES.EVENTSPONSORSHIPTYPEID,
          @FEESAMOUNT = ES.FEESAMOUNT,
              @CLIENTSITESID = EX.CLIENTSITESID,
              @SPONSORNAME = isnull(isnull(OC.NAME, IC.NAME), ''),
          @OLDALLOWADMINACCESSHQ = ES.ALLOWADMINACCESSHQ
      from dbo.EVENTSPONSOR ES(nolock)
      left outer join EVENTEXTENSION EX on EX.EVENTID = ES.EVENTID
      left outer join dbo.CONSTITUENT IC(nolock) on IC.ID = ES.CONSTITUENTID
      left outer join dbo.CONSTITUENT OC(nolock) on OC.ID = ES.ORGANIZATIONCONSTITUENTID
      where ES.ID = @ID;    

      if @ORGANIZATIONCONSTITUENTID is null
      begin
          if @OLDCONSTITUENTID != @CONSTITUENTID
            set @NEWSPONSORCONSTITUENTID = @CONSTITUENTID;
      end
      else
      begin
          if @OLDORGANIZATIONCONSTITUENTID != @ORGANIZATIONCONSTITUENTID
            set @NEWSPONSORCONSTITUENTID = @ORGANIZATIONCONSTITUENTID;
      end

      if @BENEFITSWAIVED = 1    and @BENEFITSWASWAIVED = 0
      begin
          delete from dbo.SPONSORBENEFITEXTENSION where SPONSORID = @ID;
      end;

      if @BENEFITSWAIVED = 0 and
        (@BENEFITSWASWAIVED = 1 or @OLDSPONSORSHIPTYPEID != @EVENTSPONSORSHIPTYPEID)
      begin

          delete from dbo.SPONSORBENEFITEXTENSION where SPONSORID = @ID;

          insert into dbo.SPONSORBENEFITEXTENSION(
              [ID]
              ,[SPONSORID]
              ,[BENEFITID]
              ,[EVENTSPONSORSHIPTYPEID]
              ,[QUANTITY]
              ,[UNITVALUE]
              ,[TOTALVALUE]
              ,[BASECURRENCYID]
              ,[ADDEDBYID]
              ,[CHANGEDBYID]
              ,[DATEADDED]
              ,[DATECHANGED]
          )
          select
               newid()
              ,@ID
              ,ESTB.[BENEFITID]
              ,ESTB.[EVENTSPONSORSHIPTYPEID]
              ,ESTB.[QUANTITY]
              ,B.VALUE
              ,B.VALUE * ESTB.QUANTITY
              ,B.[BASECURRENCYID]
              ,@CHANGEAGENTID
              ,@CHANGEAGENTID
              ,@CURRENTDATE
              ,@CURRENTDATE
          from dbo.EVENTSPONSORSHIPTYPEBENEFIT ESTB(nolock)
          inner join dbo.BENEFIT B(nolock) on B.ID = ESTB.BENEFITID
          where EVENTSPONSORSHIPTYPEID = @EVENTSPONSORSHIPTYPEID;

      end;

      if @ORGANIZATIONCONSTITUENTID is not null
        update dbo.CONSTITUENT
        set WEBADDRESS = @ORGANIZATIONWEBADDRESS
        where ID = @ORGANIZATIONCONSTITUENTID;

        declare @BBNCUSERID int;
      select @BBNCUSERID = CU.ID from BBNCUSERMAP UM(nolock)
      inner join ClientUsers CU(nolock) on CU.UserName = UM.BBNCUSERNAME
      where UM.ID = @CURRENTAPPUSERID;

      if @SPONSORSHIPLOGOID is null 
        set @SPONSORSHIPLOGOID = 0;

      if @PICTURECHANGED = 1
      begin
        if @SPONSORSHIPLOGOID = 0 or not exists(select 1 from dbo.SiteImages(nolock) where ID = @SPONSORSHIPLOGOID)
        begin
          if @CLIENTSITESID is not null
          begin
            declare @SITEIMAGESGUID uniqueidentifier;
            set @SITEIMAGESGUID = newid();

            insert into dbo.SiteImages(
              ClientSitesID,
              Name,
              [FileName],
              ImageContent, 
              [Guid],
              OwnerID,
              Caption,
              Photographer,
              PhotoDateTaken)
            values (
              @CLIENTSITESID,
              @SPONSORNAME + ' sponsorship logo',
              '',
              @EVENTSPONSORSHIPLOGO
              @SITEIMAGESGUID,
              @BBNCUSERID,
              '',
              '',
              '');

            select @SPONSORSHIPLOGOID = ID
            from dbo.SiteImages(nolock)
            where [Guid] = @SITEIMAGESGUID;
          end
        end
        else
        begin
          update dbo.SiteImages
          set ImageContent = @EVENTSPONSORSHIPLOGO
          where ID = @SPONSORSHIPLOGOID;
        end
      end

      if @OLDSPONSORSHIPTYPEID != @EVENTSPONSORSHIPTYPEID
        set @FEESAMOUNT = dbo.UFN_SPONSORSHIPTYPE_GETFEEAMOUNTBYID(@EVENTSPONSORSHIPTYPEID);

      update
          dbo.EVENTSPONSOR
      set
          CONSTITUENTID = @CONSTITUENTID,
          EVENTSPONSORSHIPLOGOID = @SPONSORSHIPLOGOID,
          EVENTSPONSORSHIPURL = @EVENTSPONSORSHIPURL,
          SPONSORSHIPMESSAGE = @SPONSORSHIPMESSAGE,
          ORGANIZATIONCONSTITUENTID = @ORGANIZATIONCONSTITUENTID,
          EVENTSPONSORSHIPTYPEID = @EVENTSPONSORSHIPTYPEID,
          FEESAMOUNT = @FEESAMOUNT,
          FEESWAIVED = @FEESWAIVED,
          BENEFITSWAIVED = @BENEFITSWAIVED,
          CHANGEDBYID = @CHANGEAGENTID,
          DATECHANGED = @CURRENTDATE,
        ALLOWADMINACCESSHQ = @ALLOWADMINACCESSHQ
      where
          ID = @ID;

      declare @CLIENTUSERSID int;

      select @CLIENTUSERSID = dbo.fnGetUserIDFromLinkedRecordID(C.SEQUENCEID, 0)
      from dbo.CONSTITUENT C
      where C.ID = @CONSTITUENTID;

      if @CLIENTUSERSID is null
        exec dbo.USP_FAFEVENT_ADDCLIENTUSERFORINDIVIDUAL
            @CONSTITUENTID = @CONSTITUENTID,
            @Password = @PASSWORD;

    end
  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;
end