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;