UFN_REVENUEUPDATEBATCH_GETPAYMENTSOLICITORS

Returns solicitors for a revenue batch ID grouped by application.

Return

Return Type
xml

Parameters

Parameter Parameter Type Mode Description
@BATCHREVENUEID uniqueidentifier IN
@USESPLITS bit IN

Definition

Copy


      CREATE function dbo.UFN_REVENUEUPDATEBATCH_GETPAYMENTSOLICITORS
      (
        @BATCHREVENUEID uniqueidentifier,
        @USESPLITS bit
      )
      returns xml
      as 
      begin
        declare @APPLICATIONSOLICITORS xml
        declare @APPLICATIONSOLICITORSTABLE table
        (
          ADDITIONALAPPLICATIONTYPECODE tinyint,
          ADDITIONALAPPLICATIONDESIGNATIONID uniqueidentifier,
          APPLICATIONID uniqueidentifier,
          ADDITIONALAPPLICATIONDECLINESGIFTAID bit,
        ADDITIONALAPPLICATIONSPONSORSHIPID uniqueidentifier
        )
        declare @MAINOPPORTUNITYID uniqueidentifier

        insert into @APPLICATIONSOLICITORSTABLE(ADDITIONALAPPLICATIONTYPECODE, ADDITIONALAPPLICATIONDESIGNATIONID, APPLICATIONID, ADDITIONALAPPLICATIONDECLINESGIFTAID, ADDITIONALAPPLICATIONSPONSORSHIPID)
        select distinct ADDITIONALAPPLICATIONTYPECODE, ADDITIONALAPPLICATIONDESIGNATIONID, APPLICATIONID, ADDITIONALAPPLICATIONDECLINESGIFTAID, ADDITIONALAPPLICATIONSPONSORSHIPID
        from dbo.BATCHREVENUESOLICITOR
        where BATCHREVENUEID = @BATCHREVENUEID

        select @MAINOPPORTUNITYID = OPPORTUNITYID from dbo.BATCHREVENUE where BATCHREVENUE.ID = @BATCHREVENUEID

        if @USESPLITS = 1
          set @APPLICATIONSOLICITORS = (select ADDITIONALAPPLICATIONTYPECODE, ADDITIONALAPPLICATIONDESIGNATIONID, BATCHREVENUESPLIT.AMOUNT as APPLICATIONAMOUNT,
             '' as APPLICATIONDESCRIPTION,
             dbo.UFN_REVENUEBATCH_GETCOLLECTIONDESCRIPTION_3(AST.ADDITIONALAPPLICATIONTYPECODE, AST.ADDITIONALAPPLICATIONDESIGNATIONID, @BATCHREVENUEID, 0, AST.ADDITIONALAPPLICATIONDECLINESGIFTAID, AST.ADDITIONALAPPLICATIONSPONSORSHIPID) as COLLECTIONDESCRIPTION,
             (select AMOUNT, CONSTITUENTID, ID, SEQUENCE, REVENUESOLICITORID
              from dbo.BATCHREVENUESOLICITOR
              where BATCHREVENUESOLICITOR.ADDITIONALAPPLICATIONTYPECODE = AST.ADDITIONALAPPLICATIONTYPECODE
                and (BATCHREVENUESOLICITOR.APPLICATIONID = AST.APPLICATIONID or AST.APPLICATIONID is null)
                and BATCHREVENUESOLICITOR.ADDITIONALAPPLICATIONDESIGNATIONID = AST.ADDITIONALAPPLICATIONDESIGNATIONID
                and BATCHREVENUESOLICITOR.ADDITIONALAPPLICATIONDECLINESGIFTAID = AST.ADDITIONALAPPLICATIONDECLINESGIFTAID
                and coalesce(BATCHREVENUESOLICITOR.ADDITIONALAPPLICATIONSPONSORSHIPID,'00000000-0000-0000-0000-000000000000') = coalesce(AST.ADDITIONALAPPLICATIONSPONSORSHIPID,'00000000-0000-0000-0000-000000000000')
                and BATCHREVENUESOLICITOR.BATCHREVENUEID = @BATCHREVENUEID
              for xml raw('ITEM'),type,elements,BINARY BASE64) as SOLICITORS,
              @MAINOPPORTUNITYID as ADDITIONALAPPLICATIONOPPORTUNITYID,
           ADDITIONALAPPLICATIONDECLINESGIFTAID,
           ADDITIONALAPPLICATIONSPONSORSHIPID
            from @APPLICATIONSOLICITORSTABLE AST
            inner join dbo.DESIGNATION on AST.ADDITIONALAPPLICATIONDESIGNATIONID = DESIGNATION.ID
            inner join dbo.BATCHREVENUESPLIT on 
        BATCHREVENUESPLIT.DESIGNATIONID = AST.ADDITIONALAPPLICATIONDESIGNATIONID
        and (BATCHREVENUESPLIT.REVENUESPLITID = AST.APPLICATIONID or AST.APPLICATIONID is null)
        and BATCHREVENUESPLIT.DECLINESGIFTAID = AST.ADDITIONALAPPLICATIONDECLINESGIFTAID
        and BATCHREVENUEID = @BATCHREVENUEID 
            for xml raw('ITEM'),type,elements,root('APPLICATIONSOLICITORS'),BINARY BASE64)
        else
          set @APPLICATIONSOLICITORS = (select APPLICATIONID, ADDITIONALAPPLICATIONTYPECODE, ADDITIONALAPPLICATIONDESIGNATIONID, APPLICATIONAMOUNT, COLLECTIONDESCRIPTION, SOLICITORS, ADDITIONALAPPLICATIONOPPORTUNITYID, ADDITIONALAPPLICATIONDECLINESGIFTAID, ADDITIONALAPPLICATIONSPONSORSHIPID
        from          
            (select APPLICATIONID, ADDITIONALAPPLICATIONTYPECODE, ADDITIONALAPPLICATIONDESIGNATIONID, BATCHREVENUEADDITIONALAPPLICATIONS.APPLIED as APPLICATIONAMOUNT,
'' as APPLICATIONDESCRIPTION,
             dbo.UFN_REVENUEBATCH_GETCOLLECTIONDESCRIPTION_3(AST.ADDITIONALAPPLICATIONTYPECODE, AST.ADDITIONALAPPLICATIONDESIGNATIONID, @BATCHREVENUEID, 0, AST.ADDITIONALAPPLICATIONDECLINESGIFTAID, AST.ADDITIONALAPPLICATIONSPONSORSHIPID) as COLLECTIONDESCRIPTION,
             (select AMOUNT, CONSTITUENTID, ID, SEQUENCE, REVENUESOLICITORID
              from dbo.BATCHREVENUESOLICITOR
              where BATCHREVENUESOLICITOR.ADDITIONALAPPLICATIONTYPECODE = AST.ADDITIONALAPPLICATIONTYPECODE
                and (BATCHREVENUESOLICITOR.APPLICATIONID = AST.APPLICATIONID or AST.APPLICATIONID is null)
                and BATCHREVENUESOLICITOR.ADDITIONALAPPLICATIONDESIGNATIONID = AST.ADDITIONALAPPLICATIONDESIGNATIONID
         and BATCHREVENUESOLICITOR.ADDITIONALAPPLICATIONDECLINESGIFTAID = AST.ADDITIONALAPPLICATIONDECLINESGIFTAID
            and coalesce(BATCHREVENUESOLICITOR.ADDITIONALAPPLICATIONSPONSORSHIPID,'00000000-0000-0000-0000-000000000000') = coalesce(AST.ADDITIONALAPPLICATIONSPONSORSHIPID,'00000000-0000-0000-0000-000000000000')
                and BATCHREVENUESOLICITOR.BATCHREVENUEID = @BATCHREVENUEID
              for xml raw('ITEM'),type,elements,BINARY BASE64) as SOLICITORS,
              BATCHREVENUEADDITIONALAPPLICATIONS.OPPORTUNITYID as ADDITIONALAPPLICATIONOPPORTUNITYID,
                 ADDITIONALAPPLICATIONDECLINESGIFTAID,
              ADDITIONALAPPLICATIONSPONSORSHIPID
            from @APPLICATIONSOLICITORSTABLE AST
            inner join dbo.DESIGNATION on AST.ADDITIONALAPPLICATIONDESIGNATIONID = DESIGNATION.ID
            inner join dbo.BATCHREVENUEADDITIONALAPPLICATIONS on 
                BATCHREVENUEADDITIONALAPPLICATIONS.DESIGNATIONID = AST.ADDITIONALAPPLICATIONDESIGNATIONID
        and (BATCHREVENUEADDITIONALAPPLICATIONS.REVENUESPLITID = AST.APPLICATIONID or AST.APPLICATIONID  is null)
                and BATCHREVENUEID = @BATCHREVENUEID 
                and BATCHREVENUEADDITIONALAPPLICATIONS.TYPECODE = AST.ADDITIONALAPPLICATIONTYPECODE
                and BATCHREVENUEADDITIONALAPPLICATIONS.DECLINESGIFTAID = AST.ADDITIONALAPPLICATIONDECLINESGIFTAID
            and coalesce(BATCHREVENUEADDITIONALAPPLICATIONS.SPONSORSHIPID,'00000000-0000-0000-0000-000000000000') = coalesce(AST.ADDITIONALAPPLICATIONSPONSORSHIPID,'00000000-0000-0000-0000-000000000000')

            union all

            select APPLICATIONID, ADDITIONALAPPLICATIONTYPECODE, ADDITIONALAPPLICATIONDESIGNATIONID, BATCHREVENUEAPPLICATION.APPLIED as APPLICATIONAMOUNT,
             '' as APPLICATIONDESCRIPTION,
             dbo.UFN_REVENUEUPDATEBATCH_GETCOLLECTIONDESCRIPTION(AST.APPLICATIONID, 0) as COLLECTIONDESCRIPTION,
             (select AMOUNT, CONSTITUENTID, ID, SEQUENCE, REVENUESOLICITORID
              from dbo.BATCHREVENUESOLICITOR
              where BATCHREVENUESOLICITOR.APPLICATIONID = AST.APPLICATIONID
                and BATCHREVENUESOLICITOR.BATCHREVENUEID = @BATCHREVENUEID
              for xml raw('ITEM'),type,elements,BINARY BASE64) as SOLICITORS,
              null as ADDITIONALAPPLICATIONOPPORTUNITYID,
              ADDITIONALAPPLICATIONDECLINESGIFTAID,
           ADDITIONALAPPLICATIONSPONSORSHIPID
            from @APPLICATIONSOLICITORSTABLE AST
            inner join dbo.BATCHREVENUEAPPLICATION on coalesce(BATCHREVENUEAPPLICATION.REVENUESPLITID, BATCHREVENUEAPPLICATION.REVENUEID) = AST.APPLICATIONID
              and BATCHREVENUEID = @BATCHREVENUEID  ) as SOLICITORSSET
            for xml raw('ITEM'),type,elements,root('APPLICATIONSOLICITORS'),BINARY BASE64)                


        return @APPLICATIONSOLICITORS
      end