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