---
title: clsProviderServiceContractInfo
summary: API reference for clsProviderServiceContractInfo.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-24
library: SAIF.Business.View.Provider
reference_type: package
---

# clsProviderServiceContractInfo

API reference for clsProviderServiceContractInfo.

## Purpose
- DTO representing a single provider service contract record.
- Populated by `clsProviderServiceContractList`'s retrieval query, which excludes expired contracts using an `exp_date is null or exp_date > (sysdate - :Offset)` predicate (see the service-contract expiration rule in [Business rules](../../business-rules.md)).

## Context
- Namespace: `SAIF.Business.View.Provider`
- Assembly/package: `SAIF.BOF.Business.View.Provider`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| ContractID | `ReadOnly Property ContractID() As Decimal` | Returns the service contract's identifier (`PROV_SERVICE_CONTRACT_SEQ_NUM`). |
| ProviderLocationID | `ReadOnly Property ProviderLocationID() As Decimal` | Returns the provider location the contract belongs to. |
| PurchaseCode | `ReadOnly Property PurchaseCode() As String` | Returns the contract's purchase code. |
| DiscountRate | `ReadOnly Property DiscountRate() As Decimal` | Returns the discount rate applied under the contract. |
| AdditionalFeeDiscountRate | `ReadOnly Property AdditionalFeeDiscountRate() As Decimal` | Returns the additional-fee discount rate applied under the contract. |
| MaxChargeAmount | `ReadOnly Property MaxChargeAmount() As Decimal` | Returns the maximum chargeable amount under the contract. |
| ContactName | `ReadOnly Property ContactName() As String` | Returns the contract's contact name. |
| ServiceModifierCode | `ReadOnly Property ServiceModifierCode() As String` | Returns the service modifier code associated with the contract. |
| CBPServiceCode | `ReadOnly Property CBPServiceCode() As String` | Returns the CBP (Contract Bill of Particulars) service code. |
| ServiceCode | `ReadOnly Property ServiceCode() As String` | Returns the service code covered by the contract. |
| ServiceTypeCode | `ReadOnly Property ServiceTypeCode() As String` | Returns the service type code covered by the contract. |
| PlanID | `ReadOnly Property PlanID() As String` | Returns the MCO plan ID assigned to the contract (may be blank when no MCO is assigned). |
| Plan | `ReadOnly Property Plan() As MCOPlanInfo` | Returns the resolved MCO plan object once `SetPlan` has assigned it. |
| EffectiveDate | `ReadOnly Property EffectiveDate() As Date` | Returns the date the contract became effective. |
| ExpirationDate | `ReadOnly Property ExpirationDate() As Date` | Returns the date the contract expired (from the internal `clsSmartDate`). |
| HasExpirationDate | `ReadOnly Property HasExpirationDate() As Boolean` | Returns whether an expiration date has been set. |
| IsExpired | `ReadOnly Property IsExpired() As Boolean` | Returns whether an expiration date has been set (identical logic to `HasExpirationDate`). |
| IsActive | `ReadOnly Property IsActive() As Boolean` | Returns whether no expiration date has been set. |
| IsInEffect | `ReadOnly Property IsInEffect(ByVal inDate As Date) As Boolean` | Returns whether `inDate` falls on/after `EffectiveDate` and, if expired, on/before `ExpirationDate`. |
| New | `Public Sub New(ByVal Row As clsResultSet.DataRow)` | Constructs the record from a `clsResultSet.DataRow` returned by [SQL-016](../../sql/SQL-016-saif-business-view-provider.md); called only by `clsProviderServiceContractList`. |

## Non-public implementation notes
- `Friend Sub SetPlan(ByVal inPlan As MCOPlanInfo)` is an internal assembly helper used by `clsProviderServiceContractList` to attach the resolved plan after construction.

## Behavioral notes
- This class does not inherit `clsBusinessBase`; it is a plain `Serializable` DTO with no dirty-tracking, validation rules, or `IBusinessCriteria` support.
- `clsProviderServiceContractList`'s constructor calls `SetPlan` after construction only when `PlanID` is non-blank, resolving the plan via `GetMCOInfo(inDPI).Plan(psc.PlanID)` — see [BR-002](../../business-rules.md#br-002-provider-service-contract-expiration-window) for the related expiration-window rule enforced by the owning list.

## Constraints and usage notes
- `Plan` returns `Nothing` until `SetPlan` has been called; for contracts with no assigned MCO (blank `PlanID`), `SetPlan` is never invoked and `Plan` remains unset.

## Sources
- `Business\SAIF.Business.View.Provider\clsProviderServiceContract.vb`
