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

# clsAffiliate

Standalone affiliate person entity keyed by SSN and reused by association objects when policy-affiliate rows are hydrated.

## Purpose
- Expose the person-level fields that interested-party, preferred-worker, and corporate-officer flows reuse.
- Provide a standalone retrieve path by SSN and a display-name formatter used by caller-facing workflows.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| ADMINISTRATOR | `Public Const ADMINISTRATOR As String = "ADM"` | Provides the affiliate title-code literal for Administrator comparisons and lookups. |
| MANAGER | `Public Const MANAGER As String = "MGR"` | Provides the affiliate title-code literal for Manager comparisons and lookups. |
| RECORDER | `Public Const RECORDER As String = "REC"` | Provides the affiliate title-code literal for Recorder comparisons and lookups. |
| CHIEF_EXECUTIVE_OFFICER | `Public Const CHIEF_EXECUTIVE_OFFICER As String = "CEO"` | Provides the affiliate title-code literal for Chief Executive Officer comparisons and lookups. |
| CHIEF_FINANCIAL_OFFICER | `Public Const CHIEF_FINANCIAL_OFFICER As String = "CFO"` | Provides the affiliate title-code literal for Chief Financial Officer comparisons and lookups. |
| CHIEF | `Public Const CHIEF As String = "CHF"` | Provides the affiliate title-code literal for Chief comparisons and lookups. |
| COMMANDER | `Public Const COMMANDER As String = "CMD"` | Provides the affiliate title-code literal for Commander comparisons and lookups. |
| CHAIRMAN_OF_BOARD | `Public Const CHAIRMAN_OF_BOARD As String = "COB"` | Provides the affiliate title-code literal for Chairman Of Board comparisons and lookups. |
| CHIEF_OPERATIONS_OFFICER | `Public Const CHIEF_OPERATIONS_OFFICER As String = "COO"` | Provides the affiliate title-code literal for Chief Operations Officer comparisons and lookups. |
| NOT_APPLICABLE | `Public Const NOT_APPLICABLE As String = "N/A"` | Provides the affiliate title-code literal for Not Applicable comparisons and lookups. |
| DIRECTOR | `Public Const DIRECTOR As String = "DIR"` | Provides the affiliate title-code literal for Director comparisons and lookups. |
| EXECUTIVE_DIRECTOR | `Public Const EXECUTIVE_DIRECTOR As String = "EDR"` | Provides the affiliate title-code literal for Executive Director comparisons and lookups. |
| GENERAL_PARTNER | `Public Const GENERAL_PARTNER As String = "GPT"` | Provides the affiliate title-code literal for General Partner comparisons and lookups. |
| LIMITED_PARTNER | `Public Const LIMITED_PARTNER As String = "LPT"` | Provides the affiliate title-code literal for Limited Partner comparisons and lookups. |
| MAYOR | `Public Const MAYOR As String = "MAY"` | Provides the affiliate title-code literal for Mayor comparisons and lookups. |
| MEMBER | `Public Const MEMBER As String = "MBR"` | Provides the affiliate title-code literal for Member comparisons and lookups. |
| OWNER | `Public Const OWNER As String = "OWN"` | Provides the affiliate title-code literal for Owner comparisons and lookups. |
| PASTOR | `Public Const PASTOR As String = "PAS"` | Provides the affiliate title-code literal for Pastor comparisons and lookups. |
| PRESIDENT | `Public Const PRESIDENT As String = "PRS"` | Provides the affiliate title-code literal for President comparisons and lookups. |
| PARTNER | `Public Const PARTNER As String = "PRT"` | Provides the affiliate title-code literal for Partner comparisons and lookups. |
| PREFERRED_WORKER | `Public Const PREFERRED_WORKER As String = "PW"` | Provides the affiliate title-code literal for Preferred Worker comparisons and lookups. |
| SECRETARY | `Public Const SECRETARY As String = "SEC"` | Provides the affiliate title-code literal for Secretary comparisons and lookups. |
| SUPERINTENDENT | `Public Const SUPERINTENDENT As String = "SUP"` | Provides the affiliate title-code literal for Superintendent comparisons and lookups. |
| TRUSTEE | `Public Const TRUSTEE As String = "TRE"` | Provides the affiliate title-code literal for Trustee comparisons and lookups. |
| TREASURER | `Public Const TREASURER As String = "TRS"` | Provides the affiliate title-code literal for Treasurer comparisons and lookups. |
| VICE_COMMANDER | `Public Const VICE_COMMANDER As String = "VCO"` | Provides the affiliate title-code literal for Vice Commander comparisons and lookups. |
| VICE_PRESIDENT | `Public Const VICE_PRESIDENT As String = "VP"` | Provides the affiliate title-code literal for Vice President comparisons and lookups. |
| AffiliateID | `Public ReadOnly Property AffiliateID() As String` | Social security number that is the sole identity of a person in `AFFILIATE`; equality, hashing, `ToString`, and every retrieval path key on this one value, so two records for the same SSN are the same person regardless of name differences. |
| BirthDate | `Public ReadOnly Property BirthDate() As Date` | Date of birth carried on the person record (`AFFILIATE_DOB`) for age and identity verification; unrecorded birth dates surface as an empty smart date, which only `IsBirthDateNull` can distinguish from a real value. |
| CreateDate | `Public ReadOnly Property CreateDate() As Date` | Audit stamp for when the person was first entered in `AFFILIATE`, letting callers judge how long a person record has existed independently of the policy associations that reference it. |
| CreateUser | `Public ReadOnly Property CreateUser() As String` | Audit stamp naming the user or process that first entered the person record, used when tracing where affiliate data originated. |
| FirstName | `Public ReadOnly Property FirstName() As String` | Given name of the person; feeds the composed `Name` string and the first-name tier of the last/first/initial/suffix ordering applied to policy affiliate lists. |
| MiddleInitial | `Public ReadOnly Property MiddleInitial() As String` | Middle initial of the person, appended to the composed `Name` and used as the third ordering tier when several affiliates share a surname and given name. |
| LastName | `Public ReadOnly Property LastName() As String` | Surname of the person; anchors the composed `Name` (which always starts with it) and is the primary sort key for every affiliate list this library returns. |
| Name | `Public ReadOnly Property Name() As String` | Assembles the caller-facing display name as `LastName, FirstName MiddleInitial NameSuffix`, dropping each missing part together with its separator so partial name data still renders cleanly. |
| NameSuffix | `Public ReadOnly Property NameSuffix() As String` | Generational or professional suffix (Jr., Sr., III) appended last in the composed `Name` and used as the final ordering tier; empty for the majority of people, who have no suffix recorded. |
| UpdateDate | `Public ReadOnly Property UpdateDate() As Date` | Audit stamp for the most recent change to the person record, used to detect whether name or birth-date data has been revised since a caller last read it. |
| UpdateUser | `Public ReadOnly Property UpdateUser() As String` | Audit stamp naming the user or process that last changed the person record, paired with `UpdateDate` when tracing corrections to affiliate data. |
| IsFirstNameNull | `Public Function IsFirstNameNull() As Boolean` | Reports that no given name was recorded at all, which `Name` and `FirstName` cannot convey because both render a missing first name as an empty string. |
| IsMiddleInitialNull | `Public Function IsMiddleInitialNull() As Boolean` | Reports that no middle initial was recorded, separating "person has no middle name on file" from the blank that `Name` produces when it omits the initial. |
| IsLastNameNull | `Public Function IsLastNameNull() As Boolean` | Reports that no surname is on file — the case in which the composed `Name` degenerates to first name and suffix only, and list ordering has no primary key to sort on. |
| IsNameSuffixNull | `Public Function IsNameSuffixNull() As Boolean` | Reports that no suffix is on file, so callers rendering names themselves can skip the suffix segment instead of emitting a trailing separator. |
| IsBirthDateNull | `Public Function IsBirthDateNull() As Boolean` | Reports that no date of birth is on file, which callers must check before using `BirthDate` because an unset smart date reads back as a default date rather than as missing data. |
| Equals | `Public Overloads Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean` | Type-safe comparison for call sites holding loosely typed references: two operands match only when both are affiliates carrying the same SSN, and any non-affiliate operand fails the comparison instead of raising. |
| Equals | `Public Overloads Overrides Function Equals(ByVal inObject As Object) As Boolean` | Makes framework collection searches and `Contains` checks that pass boxed objects resolve affiliates by SSN, while refusing to match objects of any other type. |
| Equals | `Public Overloads Function Equals(ByVal inObject As clsAffiliate) As Boolean` | Treats two affiliate instances as the same person when their SSNs agree; differing names, birth dates, or audit values do not affect the outcome. |
| GetHashCode | `Public Overrides Function GetHashCode() As Integer` | Derives the hash from the SSN alone so hashed lookups stay consistent with SSN-based equality: two independent loads of the same person land in the same bucket and compare equal. |
| ToString | `Public Overrides Function ToString() As String` | Renders the person as their SSN, which is the identifier that appears in framework diagnostics and state dumps for this object. |
| GetAffiliate | `Public Shared Function GetAffiliate(ByVal inDataportal As IDataPortalInfo, ByVal inAffiliateID As String) As clsAffiliate` | Single entry point for loading one person by SSN over the caller's data portal; an SSN with no `AFFILIATE` row still yields a populated-with-defaults object rather than an error, so callers must test the result themselves. |
| New | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo)` | Binds a retrieval context to the caller's data portal so any later query runs on the caller's connection and pending transaction, without yet naming a person to load. |
| New | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo, ByVal inAffiliateID As String)` | Binds the caller's data portal together with the SSN to fetch, forming the complete lookup key used by the `AFFILIATE` retrieve. |

## Inherited public members

Members in this table whose Origin is `SAIF.Framework.Core` were retrieved from that library's documentation via the Legends CLI; the Origin column identifies the originating class for each member.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| Rules | `Property Rules As clsRulesManager` | Exposes the BOF rules manager for inherited validation behavior. | `SAIF.Framework.Core` — `clsBusinessBase` |
| BeginEdit | `Sub BeginEdit()` | Starts an edit session so callers can stage in-memory changes before applying or cancelling them. | `SAIF.Framework.Core` — `clsBusinessBase` |
| CancelEdit | `Sub CancelEdit()` | Reverts the current edit session through the BOF edit-level mechanism. | `SAIF.Framework.Core` — `clsBusinessBase` |
| ApplyEdit | `Sub ApplyEdit()` | Commits the current edit session in memory before any save orchestration occurs. | `SAIF.Framework.Core` — `clsBusinessBase` |
| Error | `ReadOnly Property Error As String` | Surfaces the current object-level validation error text to data-binding consumers. | `SAIF.Framework.Core` — `clsBusinessBase` |
| Item(columnName) | `ReadOnly Property Item(columnName As String) As String` | Returns column-specific validation error text through `IDataErrorInfo`. | `SAIF.Framework.Core` — `clsBusinessBase` |
| DumpState | `Sub DumpState()` | Emits framework state diagnostics for troubleshooting object state. | `SAIF.Framework.Core` — `clsBusinessBase` |
| AllowCache | `Property AllowCache() As Boolean` | Controls whether the framework may cache the business object instance. | `SAIF.Framework.Core` — `clsBusinessBase` |

## Behavioral notes
- Related operations, rules, and SQL are cross-referenced from the library-level documentation.

## Constraints and usage notes
- The library exposes read-only retrieval behavior; no type in this package can persist changes through live criteria SQL.

> **Note:** Inherited-member descriptions attributed to `SAIF.Framework.Core` in the Origin column were retrieved from that library's documentation via the Legends CLI and should be reverified if the dependency version changes.

## Sources
- `Business\SAIF.Business.Policy.Affiliate\clsAffiliate.vb`
