USP_REVENUEUPDATEBATCH_RECOGNITIONS_CREATECONSTITUENTS

Parameters

Parameter Parameter Type Mode Description
@RECOGNITIONSXML xml INOUT
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_REVENUEUPDATEBATCH_RECOGNITIONS_CREATECONSTITUENTS
            (
                @RECOGNITIONSXML xml output,
                @CHANGEAGENTID uniqueidentifier
            )
            as
            begin
                declare @RECOGNITION table
                (
                    ID uniqueidentifier,
                    CONSTITUENTID uniqueidentifier,
                    AMOUNT money,
                    EFFECTIVEDATE datetime,
                    REVENUERECOGNITIONTYPECODEID uniqueidentifier,
                    DESIGNATIONID uniqueidentifier,
                    RECOGNITIONCREDITFKID uniqueidentifier, 
                    DONORCHALLENGERECOGNITIONTYPECODE tinyint
                )

                insert into @RECOGNITION
                (
                    ID,
                    CONSTITUENTID,
                    AMOUNT,
                    EFFECTIVEDATE,
                    REVENUERECOGNITIONTYPECODEID,
                    DESIGNATIONID,
                    RECOGNITIONCREDITFKID,
                    DONORCHALLENGERECOGNITIONTYPECODE
                )
                select
                    ID,
                    CONSTITUENTID,
                    AMOUNT,
                    EFFECTIVEDATE,
                    REVENUERECOGNITIONTYPECODEID,
                    DESIGNATIONID,
                    RECOGNITIONCREDITFKID,
                    DONORCHALLENGERECOGNITIONTYPECODE
                from dbo.UFN_REVENUEUPDATEBATCH_GETRECOGNITIONSFOREDIT_FROMITEMLISTXML(@RECOGNITIONSXML)

                declare CONSTITUENTSTOCREATECURSOR cursor local fast_forward for
                select distinct CONSTITUENTID
                from @RECOGNITION
                where
                    CONSTITUENTID not in (select ID from dbo.CONSTITUENT)

                open CONSTITUENTSTOCREATECURSOR

                declare @BATCHREVENUECONSTITUENTID uniqueidentifier
                fetch next from CONSTITUENTSTOCREATECURSOR into @BATCHREVENUECONSTITUENTID

                while @@FETCH_STATUS = 0
                begin
                    declare @CONSTITUENTID uniqueidentifier = null
                    exec USP_REVENUEBATCH_CONSTITUENT_ADD @CONSTITUENTID output, @CHANGEAGENTID, @BATCHREVENUECONSTITUENTID

                    update @RECOGNITION set
                        CONSTITUENTID = @CONSTITUENTID
                    where CONSTITUENTID = @BATCHREVENUECONSTITUENTID

                    exec dbo.USP_REVENUEBATCH_CONSTITUENT_DELETE @BATCHREVENUECONSTITUENTID, @CHANGEAGENTID

                    fetch next from CONSTITUENTSTOCREATECURSOR into @BATCHREVENUECONSTITUENTID
                end

                close CONSTITUENTSTOCREATECURSOR
                deallocate CONSTITUENTSTOCREATECURSOR

                set @RECOGNITIONSXML = (
                    select 
                        ID,
                        CONSTITUENTID,
                        AMOUNT,
                        EFFECTIVEDATE,
                        REVENUERECOGNITIONTYPECODEID,
                        DESIGNATIONID,
                        RECOGNITIONCREDITFKID,
                        DONORCHALLENGERECOGNITIONTYPECODE
                    from @RECOGNITION
                    for xml raw('ITEM'),type,elements,root('RECOGNITIONS'),binary base64)
            end