UFN_RECURRINGGIFT_GETNEXTINSTALLMENTIGNOREPAYMENT_2

Return

Return Type
uniqueidentifier

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN
@PAYMENTID uniqueidentifier IN
@ASOFDATE date IN
@EFFECTIVEDATETIME datetime IN

Definition

Copy


create function dbo.UFN_RECURRINGGIFT_GETNEXTINSTALLMENTIGNOREPAYMENT_2(
  @REVENUEID uniqueidentifier,
  @PAYMENTID uniqueidentifier,
  @ASOFDATE date,
  @EFFECTIVEDATETIME datetime
)
returns uniqueidentifier
as begin
  set @EFFECTIVEDATETIME = isnull(@EFFECTIVEDATETIME,getdate());

  declare @EFFECTIVEDATE date = cast(@EFFECTIVEDATETIME as date);

  return (
    select top 1 i.ID
    from dbo.RECURRINGGIFTINSTALLMENT i
    cross apply dbo.UFN_RECURRINGGIFTSETTING_GETFOREFFECTIVEDATE(@EFFECTIVEDATETIME) s
    where i.REVENUEID = @REVENUEID
    and dbo.UFN_RECURRINGGIFTINSTALLMENT_GETINSTALLMENTBALANCEIGNOREPAYMENT(i.ID,@PAYMENTID) > 0
    and (i.DATE >= isnull(@ASOFDATE,i.DATE) or s.FIRSTINSTALLMENTCODE = 1)
    order by case when i.DATE <= @EFFECTIVEDATE then 1 else 2 end,                                    -- today/past, then future

             case when i.DATE > @EFFECTIVEDATE or s.FIRSTINSTALLMENTCODE = 0 then i.DATE end,         -- date asc if appropriate (past installments by rule, future installments always)

             case when i.DATE <= @EFFECTIVEDATE and s.FIRSTINSTALLMENTCODE = 1 then i.DATE end desc   -- date desc if appropriate

  )
end