USP_DATAFORMTEMPLATE_EDIT_PLEDGEWRITEOFFBATCHROW

Parameters

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

Definition

Copy

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

    declare @CURRENTDATE datetime = getdate();

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

            begin try
              update dbo.BATCHPLEDGEWRITEOFF set
                  CHANGEDBYID=@CHANGEAGENTID,
                DATECHANGED=@CURRENTDATE,
                REVENUEID=@REVENUEID,
                WRITEOFFTOTALAMOUNT=@WRITEOFFTOTALAMOUNT,
                DATE=@DATE,
                POSTSTATUSCODE=@POSTSTATUSCODE,
                POSTDATE=@POSTDATE,
                REASONCODEID=@REASONCODEID,
                REASON=COALESCE(@REASON,''),
                RECOGNITIONCREDITADJUSTMENTCODE=@RECOGNITIONCREDITADJUSTMENTCODE,
                SEQUENCE=@SEQUENCE,
                USERMANUALLYADJUSTEDRECOGNITIONCREDITS=COALESCE(@USERMANUALLYADJUSTEDRECOGNITIONCREDITS,0)
              where ID=@ID

              delete from dbo.BATCHPLEDGEWRITEOFFINSTALLMENT where BATCHPLEDGEWRITEOFFID=@ID

              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)

              delete from dbo.BATCHPLEDGEWRITEOFFRECOGNITIONCREDITS where BATCHPLEDGEWRITEOFFID=@ID

              -- 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;