﻿---
title: clsPaymentPlan
summary: API reference for clsPaymentPlan.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Premium
reference_type: package
---

# clsPaymentPlan

Represents an active payment plan record for a policy; holds installment schedule information, payment plan type reference, and billing flags. Consumed by billing workflows to determine the payment schedule for a policy period.*

## Purpose
- Persists and retrieves payment plan data for a policy, including plan type, schedule, and billing configuration.*
- Consumed by billing calculation and presentment workflows that need the active payment plan for a policy period.*

## Context
- Namespace: `SAIF.Business.Policy.Premium`
- Assembly/package: `SAIF.Business.Policy.Premium`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| PolicyNumber | `Public Property PolicyNumber() As Decimal` | The numeric policy number identifying the policy to which this record belongs. |
| PolicyPeriodEffectiveDate | `Public Property PolicyPeriodEffectiveDate() As Date` | The effective date of the policy period to which this rating plan applies. |
| DefaultPlanCode | `Public Property DefaultPlanCode() As String` | Oracle code value used to classify this business object.* |
| PaymentPlanDefaultValues | `Public ReadOnly Property PaymentPlanDefaultValues() As clsPaymentPlanDefaultValues` | Returns the associated payment plan default values used by this type. |
| PlanType | `Public ReadOnly Property PlanType As clsPaymentPlanType` | Lookup object that describes the current plan type.* |
| Installments | `Public Property Installments() As Decimal` | Business value exposed as installments for callers of this API.* |
| PercentDown | `Public Property PercentDown() As Decimal` | Numeric percent down value used by this type's rating, billing, or reporting logic.* |
| PaymentPlanDefaultCode | `Public Property PaymentPlanDefaultCode() As String` | Oracle code value used to classify this business object.* |
| CreateDate | `Public Property CreateDate() As Date` | The timestamp at which this record was created in the Oracle database. |
| CreateUser | `Public Property CreateUser() As String` | The username of the account that created this record. |
| RenewalPlanCode | `Public Property RenewalPlanCode() As String` | Oracle code value used to classify this business object.* |
| UpdateDate | `Public Property UpdateDate() As Date` | The timestamp of the most recent update to this record.* |
| UpdateUser | `Public Property UpdateUser() As String` | The username of the account that last modified this record.* |
| PremiumHistorySetID | `Public Property PremiumHistorySetID() As Decimal` | Numeric premium history set id value used by this type's rating, billing, or reporting logic.* |
| IsValid | `Public Overrides ReadOnly Property IsValid() As Boolean` | Returns True when all registered business rules pass; delegates to the framework rule engine. |
| IsDirty | `Public Overrides ReadOnly Property IsDirty() As Boolean` | Returns True when one or more tracked properties have been modified since the last save or MarkOld() call. |
| SetRenewalPlanCodeNull | `Public Sub SetRenewalPlanCodeNull()` | Clears `RenewalPlanCode`, marking it as null/unset so the column will be written as NULL on the next save.* |
| SetUpdateDateNull | `Public Sub SetUpdateDateNull()` | Clears `UpdateDate`, marking it as null/unset so the column will be written as NULL on the next save.* |
| SetUpdateUserNull | `Public Sub SetUpdateUserNull()` | Clears `UpdateUser`, marking it as null/unset so the column will be written as NULL on the next save.* |
| SetPremiumHistorySetIDNull | `Public Sub SetPremiumHistorySetIDNull()` | Clears `PremiumHistorySetID`, marking it as null/unset so the column will be written as NULL on the next save.* |
| IsRenewalPlanCodeNull | `Public Function IsRenewalPlanCodeNull() As Boolean` | Tests whether `RenewalPlanCode` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsUpdateDateNull | `Public Function IsUpdateDateNull() As Boolean` | Tests whether `UpdateDate` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsUpdateUserNull | `Public Function IsUpdateUserNull() As Boolean` | Tests whether `UpdateUser` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsPremiumHistorySetIDNull | `Public Function IsPremiumHistorySetIDNull() As Boolean` | Tests whether `PremiumHistorySetID` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| Equals | `Public Overloads Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean` | Static overload: compares two Object references for equality using value-equality semantics.* |
| Equals | `Public Overloads Overrides Function Equals(ByVal inObject As Object) As Boolean` | Compares this instance with another `Object` instance for value equality.* |
| Equals | `Public Overloads Function Equals(ByVal inObject As clsPaymentPlan) As Boolean` | Compares this instance with another `clsPaymentPlan` instance for value equality.* |
| GetHashCode | `Public Overrides Function GetHashCode() As Integer` | Returns a hash code consistent with the value-equality implementation. |
| ToString | `Public Overrides Function ToString() As String` | Returns a string representation of this instance, typically for diagnostics.* |
| NewPaymentPlan | `Public Shared Function NewPaymentPlan(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As clsPaymentPlan` | Creates a new cls payment plan initialized from the supplied source values.* |
| GetPaymentPlan | `Public Shared Function GetPaymentPlan(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As clsPaymentPlan` | Loads a cls payment plan that matches the supplied lookup criteria. |
## Inherited public members

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| Rules | `Property Rules As clsRulesManager` | Framework rules manager used to register, evaluate, and surface broken rules on the object.† | `SAIF.Framework.Core — clsBusinessBase` |
| BeginEdit | `Sub BeginEdit()` | Starts an n-level edit session so callers can stage changes.† | `SAIF.Framework.Core — clsBusinessBase` |
| CancelEdit | `Sub CancelEdit()` | Rolls back the active edit session.† | `SAIF.Framework.Core — clsBusinessBase` |
| ApplyEdit | `Sub ApplyEdit()` | Commits the active edit session.† | `SAIF.Framework.Core — clsBusinessBase` |

## Behavioral notes
- Source file: `Business\SAIF.Business.Policy.Premium\clsPaymentPlan.vb`.

## Constraints and usage notes
- A policy period may have multiple payment plans but typically one active plan; plan type must reference a valid `clsPaymentPlanType`.*


> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `Business\SAIF.Business.Policy.Premium\clsPaymentPlan.vb`