PolicyAssociationList¶
This list type is the library's shared retrieval entry point for the current policy-association model. It wraps List(Of PolicyAssociation) with typed filters plus the two shared database helpers that execute the UNION query (SQL-034) and the maximum-effective-date query (SQL-035), applying the library defaults for source-policy suppression and missing date inputs (BR-VP-014, BR-VP-024).
Purpose¶
- Materialize association rows from Oracle into an in-memory list that callers can enumerate or filter by association type.
- Provide the canonical shared factory used by
clsPolicyData.Associationsand related callers to build the current association list from manual relationships, policy relationships, discount combinations, and ER combinations.* - Apply default query dates when callers omit them, using the request date and the policy's maximum effective date per BR-VP-024.
- Exclude the source policy from returned rows unless the caller explicitly opts in, enforcing BR-VP-014.
Context¶
- Namespace:
SAIF.Business.View.Policy - Assembly/package:
SAIF.Business.View.Policy(embedded)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
AssociationType |
Public ReadOnly Property AssociationType(ByVal inAssociationType As AssociationTypes) As IEnumerable(Of PolicyAssociation) |
Returns only the rows whose normalized association type matches the requested category, using the PolicyAssociationExtensions.AssociationType filter. |
PolicyNumbers |
Public ReadOnly Property PolicyNumbers(ByVal inAssociationType As AssociationTypes) As IEnumerable(Of Decimal) |
Returns the related policy numbers from the current list for downstream membership and navigation checks.* |
GetPolicyAssociationList |
Public Shared Function GetPolicyAssociationList(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal, Optional ByVal IncludeSourcePolicy As Boolean = False, Optional ByVal inAsOfDate As Date = Nothing) As IEnumerable(Of PolicyAssociation) |
Executes the combined association query, converts each row into PolicyAssociation, and returns the resulting list with optional inclusion of the source policy. |
GetMaxPolicyEffectiveDate |
Public Shared Function GetMaxPolicyEffectiveDate(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal) As Date |
Reads the latest policy-period effective date used as the fallback combined-policy-period date when the caller does not supply association dates. |
Behavioral notes¶
GetPolicyAssociationListsends one SQL statement built fromManualAffiliationSQL,PolicyRelationshipSQL,DiscountCombinationSQL, andERCombinationSQL, so one call can return manual, direct, and combination relationships together.- When
inAsOfDateis omitted, the method uses the DPI data-source date for experience-combination comparisons andGetMaxPolicyEffectiveDatefor discount-combination comparisons, matching BR-VP-024. - Returned rows are filtered after materialization so the source policy is omitted unless
IncludeSourcePolicyisTrue, matching BR-VP-014. - Relationship strings such as
WRAP,M.PHP,DiscountCombination, andExperienceCombinationare normalized throughConvertAssociationTypebefore rows are added to the list.
Constraints and usage notes¶
- This type inherits
List(Of PolicyAssociation), so standardListoperations remain available in addition to the documented members. - The public
PolicyNumbersproperty ignores itsinAssociationTypeparameter and returnsMe.Cast(Of PolicyAssociation).PolicyNumbersdirectly; the signature suggests typed filtering, but the implementation does not apply it. - The retrieval logic depends on Oracle-side procedures/tables and query semantics that are not available in this repository, so database-side edge cases beyond the documented rules remain unverified.**
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¶
SAIF.Business.View.Policy/PolicyAssociations.vb