USP_DATAFORMTEMPLATE_ADD_PLEDGEWRITEOFFBATCHROW

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@BATCHID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@SEQUENCE int IN
@REVENUEID uniqueidentifier IN
@DATE datetime IN
@WRITEOFFTOTALAMOUNT money IN
@POSTSTATUSCODE tinyint IN
@POSTDATE datetime IN
@REASON nvarchar(300) IN
@INSTALLMENTS xml IN
@REASONCODEID uniqueidentifier IN
@RECOGNITIONCREDITS xml IN
@RECOGNITIONCREDITADJUSTMENTCODE tinyint IN
@USERMANUALLYADJUSTEDRECOGNITIONCREDITS bit IN

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PLEDGEWRITEOFFBATCHROW
                    (
                        @ID uniqueidentifier = null output,
                        @BATCHID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier,
            @SEQUENCE integer,
                        @REVENUEID uniqueidentifier,
                        @DATE datetime =null,
                        @WRITEOFFTOTALAMOUNT money = 0,
                        @POSTSTATUSCODE tinyint = 1,
                        @POSTDATE datetime = null,
                        @REASON nvarchar(300) = null,
                        @INSTALLMENTS xml = null,
                        @REASONCODEID uniqueidentifier = null,
                        @RECOGNITIONCREDITS xml = null,
            @RECOGNITIONCREDITADJUSTMENTCODE tinyint = 0,
            @USERMANUALLYADJUSTEDRECOGNITIONCREDITS bit = 0           
                    ) 
            as
                        set nocount on;

                        declare @CURRENTDATE datetime = getdate();

                        if @ID is null
                            set @ID = newid();

                        if @CHANGEAGENTID is null
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

            begin try
            insert into dbo.BATCHPLEDGEWRITEOFF (
                          ID,
                          BATCHID,
              REVENUEID,
              WRITEOFFTOTALAMOUNT,
              DATE,
              POSTSTATUSCODE,
              POSTDATE,
              REASONCODEID,
              REASON,
              RECOGNITIONCREDITADJUSTMENTCODE,
                          ADDEDBYID,
              CHANGEDBYID,
              DATEADDED,
              DATECHANGED,
              SEQUENCE,
              USERMANUALLYADJUSTEDRECOGNITIONCREDITS
            ) values (
                          @ID,
                          @BATCHID,
              @REVENUEID,
              @WRITEOFFTOTALAMOUNT,
              @DATE,
              @POSTSTATUSCODE,
              @POSTDATE,
              @REASONCODEID,
              COALESCE(@REASON,''),
              @RECOGNITIONCREDITADJUSTMENTCODE,
                          @CHANGEAGENTID,
                          @CHANGEAGENTID,
                          @CURRENTDATE,
                          @CURRENTDATE,
              @SEQUENCE,
              @USERMANUALLYADJUSTEDRECOGNITIONCREDITS
            )

            if @INSTALLMENTS is not null
              insert into dbo.BATCHPLEDGEWRITEOFFINSTALLMENT (BATCHPLEDGEWRITEOFFID, INSTALLMENTID, AMOUNT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED) select @ID, INSTALLMENTID, WRITEOFFAMOUNT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE from dbo.UFN_PLEDGEWRITEOFFBATCH_GETINSTALLMENTS_FROMITEMLISTXML(@INSTALLMENTS)

            -- only save recognition credits when adjustmentcode is 2=ManuallyReduceRecognitionCredits and they have actually changed them (@USERMANUALLYADJUSTEDRECOGNITIONCREDITS=1) - all other values require either no action, or a calculation based on current state of data
            if (COALESCE(@RECOGNITIONCREDITADJUSTMENTCODE,3)=2) and (@RECOGNITIONCREDITS is not null) and (COALESCE(@USERMANUALLYADJUSTEDRECOGNITIONCREDITS,0)<>0)
              insert into dbo.BATCHPLEDGEWRITEOFFRECOGNITIONCREDITS (BATCHPLEDGEWRITEOFFID, REVENUESPLITID, AMOUNT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED) select @ID, REVENUESPLITID, ADJUSTEDAMOUNT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE from dbo.UFN_PLEDGEWRITEOFFBATCH_GETRECOGNITIONCREDITS_FROMITEMLISTXML(@RECOGNITIONCREDITS)

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

                        return 0;