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;