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

# clsSalesPlan

Represents a sales plan record for a policy; holds the sales plan code and classification attributes used by billing and underwriting workflows to associate a policy with a specific sales arrangement.*

## Purpose
- Persists and retrieves sales plan data (code, attributes) for a policy.*
- Consumed by billing and underwriting workflows that need to identify and apply the sales plan associated with a policy.*

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| Code | `Public Property Code() As String` | The classification or type code for this record.* |
| PlanType | `Public ReadOnly Property PlanType() As Enums.SalesPlans` | Lookup object that describes the current plan type.* |
| Description | `Public Property Description() As String` | The human-readable description associated with this record.* |
| TPAFlag | `Public Property TPAFlag() As String` | Business value exposed as tpa flag for callers of this API.* |
| RetroFlag | `Public Property RetroFlag() As String` | Business value exposed as retro flag for callers of this API.* |
| IsRetroPlan | `Public Property IsRetroPlan() As Boolean` | Indicates whether retro plan applies in this business object.* |
| DWCBlockNumber | `Public Property DWCBlockNumber() As String` | Business value exposed as dwc block number for callers of this API.* |
| PaymentPlanTypes | `Public ReadOnly Property PaymentPlanTypes() As clsPaymentPlanTypeCollection` | Returns the associated payment plan types used by this type. |
| DefaultValues | `Public ReadOnly Property DefaultValues(ByVal inMarketType As Enums.MarketTypes, ByVal inRenewalTrack As Enums.RenewalTracks) As IEnumerable(Of clsPaymentPlanDefaultValues) 'clsPaymentPlanDefaultValuesCollection` | The collection of default parameter values configured for this payment plan type.* |
| 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. |
| SetTPAFlagNull | `Public Sub SetTPAFlagNull()` | Clears `TPAFlag`, marking it as null/unset so the column will be written as NULL on the next save.* |
| SetRetroFlagNull | `Public Sub SetRetroFlagNull()` | Clears `RetroFlag`, marking it as null/unset so the column will be written as NULL on the next save.* |
| SetDWCBlockNumberNull | `Public Sub SetDWCBlockNumberNull()` | Clears `DWCBlockNumber`, marking it as null/unset so the column will be written as NULL on the next save.* |
| IsTPAFlagNull | `Public Function IsTPAFlagNull() As Boolean` | Tests whether `TPAFlag` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsRetroFlagNull | `Public Function IsRetroFlagNull() As Boolean` | Tests whether `RetroFlag` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsDWCBlockNumberNull | `Public Function IsDWCBlockNumberNull() As Boolean` | Tests whether `DWCBlockNumber` 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 clsSalesPlan) As Boolean` | Compares this instance with another `clsSalesPlan` 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.* |
| NewPlanCode | `Public Shared Function NewPlanCode(ByVal inDataportal As IDataPortalInfo, ByVal inCode As String) As clsSalesPlan` | Creates a new cls sales plan initialized from the supplied source values.* |
| GetPlanCode | `Public Shared Function GetPlanCode(ByVal inDataportal As IDataPortalInfo, ByVal inCode As String) As clsSalesPlan` | Loads a cls sales plan that matches the supplied lookup criteria. |
| GetStandardPlanDefaultValues | `Public Shared Function GetStandardPlanDefaultValues(ByVal inDataportal As IDataPortalInfo, ByVal inPlanType As Enums.SalesPlans, ByVal inMarketType As Enums.MarketTypes, ByVal inRenewalTrack As Enums.RenewalTracks) As IEnumerable(Of clsPaymentPlanDefaultValues) 'clsPaymentPlanDefaultValuesCollection` | Loads a cls sales 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\Billing\clsSalesPlan.vb`.

## Constraints and usage notes
- Sales plan codes must reference valid Oracle sales plan reference entries.*


> **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\Billing\clsSalesPlan.vb`