USP_DATAFORMTEMPLATE_ADD_RECURRINGGIFTINSTALLMENTWRITEOFF
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@INSTALLMENTCONTEXT | nvarchar(42) | IN | |
@INSTALLMENTDATE | datetime | IN | |
@INSTALLMENTAMOUNT | money | IN | |
@INSTALLMENTBALANCE | money | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@WRITEOFFDATE | datetime | IN | |
@WRITEOFFAMOUNT | money | IN | |
@REASONID | uniqueidentifier | IN | |
@REVENUEID | uniqueidentifier | IN | |
@TRANSACTIONCURRENCYID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_RECURRINGGIFTINSTALLMENTWRITEOFF
(
@ID uniqueidentifier = null output,
@INSTALLMENTCONTEXT nvarchar(42),
@INSTALLMENTDATE datetime = null,
@INSTALLMENTAMOUNT money = null,
@INSTALLMENTBALANCE money = null,
@CHANGEAGENTID uniqueidentifier = null,
@WRITEOFFDATE datetime = null,
@WRITEOFFAMOUNT money = null,
@REASONID uniqueidentifier = null,
@REVENUEID uniqueidentifier = null,
@TRANSACTIONCURRENCYID uniqueidentifier = null
)
as
set nocount on;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate();
declare @RECORDTYPE nvarchar(1) = substring(@INSTALLMENTCONTEXT,1,1);
declare @INSTALLMENTID uniqueidentifier;
if @RECORDTYPE = 'I'
set @INSTALLMENTID = cast(substring(@INSTALLMENTCONTEXT,3,36) as uniqueidentifier);
declare @RGSTATUS tinyint
select @RGSTATUS = STATUSCODE
from dbo.REVENUESCHEDULE
where ID = @REVENUEID;
begin try
-- build installments collection used by the write-off SP;
declare @INSTALLMENTS xml;
set @INSTALLMENTS =
(
select
@INSTALLMENTID ID,
@INSTALLMENTDATE DATE,
@INSTALLMENTAMOUNT AMOUNT,
@INSTALLMENTBALANCE BALANCE,
@WRITEOFFAMOUNT WRITEOFFAMOUNT,
@TRANSACTIONCURRENCYID TRANSACTIONCURRENCYID
for xml raw('ITEM'),type,elements,root('INSTALLMENTS'),BINARY BASE64
);
-- add the write-off for the installment
exec dbo.USP_RECURRINGGIFT_ADDSKIPANDWRITEOFF
@ID output,
@REVENUEID,
@CHANGEAGENTID,
@WRITEOFFDATE,
@REASONID,
null,
@WRITEOFFAMOUNT,
@INSTALLMENTS,
@CURRENTDATE,
0;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0