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 unguardedCDate/CDecconversion 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.SQLclass (Friend Shared ReadOnlystring properties:PolicyEffectiveDate,PolicyPeriodExpirationDate,PolicyPeriodARD,GetMarketType) holds the inline SQL text for four of the members above; it is not part of the public surface. PolicyMinimumPremiumbinds anout_expense_constant_amountoutput 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
MaxPolicyEffectiveDateandIsInformationPagePrintedshould be prepared for an unhandled conversion exception on a no-result condition, since neither path guards against a null/DBNullscalar 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