Skip to content

PolicyInformation

PolicyInformation is the library's application-layer data accessor: a static class exposing scalar policy facts (dates, market type, premium-history set id, minimum premium, ownership system) through direct SQL and stored-procedure calls issued via IPortalRequest/IDataRequest, bypassing the BOF business-object pattern used elsewhere in this library.* This is the library's main technical-debt seam — a second, parallel data-access style alongside clsHazardGroup/clsHazardGroupCollection.*

Purpose

  • Resolve a policy's latest period effective date, expiration date, and anniversary rating date directly from POLICY_PERIOD/POLICY_PERIOD_NON_WCIS (BR-POL-009, BR-POL-010).
  • Determine a policy's market type, current premium-history set id, information-page print status, minimum premium, and owning system, each via a dedicated scalar SQL or stored-procedure call (BR-POL-004, BR-POL-005, BR-POL-006, BR-POL-007, BR-POL-008).
  • Silently normalize several no-result conditions to safe sentinels (0) rather than raising, while other paths (e.g. MaxPolicyEffectiveDate, IsInformationPagePrinted) leave an unguarded CDate/CDec conversion that will throw on a null result.*

Context

  • Namespace: SAIF.Business.Policy
  • Assembly/package: SAIF.Business.Policy (PolicyCommon)

Public members

Member Signature Purpose
MaxPolicyEffectiveDate Shared ReadOnly Property MaxPolicyEffectiveDate(inDPI As IDataPortalInfo, inPolicyNumber As Decimal) As Date Returns the effective date of a policy's latest period via a correlated self-join subquery (BR-POL-009); a null result causes CDate to throw (unhandled).*
PolicyPeriodExpirationDate Shared ReadOnly Property PolicyPeriodExpirationDate(inDPI As IDataPortalInfo, inPolicyNumber As Decimal, inPolicyPeriodEffectiveDate As Date) As Date Returns a policy period's expiration date, resolved across WCIS and non-WCIS period stores (BR-POL-010).
AnniversaryRateDate Shared ReadOnly Property AnniversaryRateDate(inDPI As IDataPortalInfo, inPolicyNumber As Decimal, inPolicyPeriodEffectiveDate As Date) As Date Returns a policy period's anniversary rating date, resolved across WCIS and non-WCIS period stores (BR-POL-010).
MarketType Shared ReadOnly Property MarketType(inDPI As IDataPortalInfo, inPolicyNumber As Decimal) As Enums.MarketTypes Returns the policy's market type, converted from its raw code via Enums.ConvertMarketType (BR-POL-004).
MaxPremiumHistorySetId Shared ReadOnly Property MaxPremiumHistorySetId(inDPI As IDataPortalInfo, inPolicyNumber As Decimal, inPolicyPeriodEffectiveDate As Date) As Decimal Returns the current premium-history set id, or 0 when none exists (BR-POL-007).
PolicyMinimumPremium Shared ReadOnly Property PolicyMinimumPremium(inDPI As IDataPortalInfo, inPremHistSetID As Decimal) As Decimal Returns the minimum premium amount computed by the Oracle package pk73069_rating_procs.get_minimum_expense_constant, or 0 if the call fails or returns nothing; failures are silently swallowed by an empty Catch (BR-POL-008).
IsInformationPagePrinted Shared ReadOnly Property IsInformationPagePrinted(inDPI As IDataPortalInfo, inPolicyNumber As Decimal, inPolicyPeriodEffectiveDate As Date) As Boolean Returns whether a P401 endorsement with a non-null printed_date exists for the policy/period and the returned policy number matches (BR-POL-006); a no-row result causes an unguarded CDec conversion to throw rather than returning False.*
GetPolicyOwnershipSystem Shared ReadOnly Property GetPolicyOwnershipSystem(inDPI As IDataPortalInfo, inPolicyNumber As Decimal) As Enums.PolicyOwnershipSystems Returns whether WCIS or SAIFQuote owns the policy, based on the Oracle function pk73102_policy.does_wcis_own_submission (BR-POL-005).

Behavioral notes

  • The nested PolicyInformation.SQL class (Friend Shared ReadOnly string properties: PolicyEffectiveDate, PolicyPeriodExpirationDate, PolicyPeriodARD, GetMarketType) holds the inline SQL text for four of the members above; it is not part of the public surface.
  • PolicyMinimumPremium binds an out_expense_constant_amount output parameter that is never read back by the caller — a possible latent defect or unused-by-design output.*
  • Two Oracle stored routines are invoked (pk73069_rating_procs.get_minimum_expense_constant, pk73102_policy.does_wcis_own_submission) whose PL/SQL bodies could not be retrieved in this environment; their internal logic and business rules are unverified.**

Constraints and usage notes

  • Every member requires a caller-supplied IDataPortalInfo; this class never resolves a connection or database name itself.
  • Callers of MaxPolicyEffectiveDate and IsInformationPagePrinted should be prepared for an unhandled conversion exception on a no-result condition, since neither path guards against a null/DBNull scalar result.*

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.Policy/PolicyInformation.vb