Skip to content

SAIF.Business.Policy operations and processes

This page is the operation catalog and cross-operation hub for this library.

Operation catalog

Operation Intent Trigger Inputs Outputs Rules Tables SQL
OP-01 Retrieve hazard groups effective on a date Load hazard groups in force on a given date Caller invokes GetHazardGroups IDataPortalInfo, effective date clsHazardGroupCollection BR-POL-001, BR-POL-002 HAZARD_GROUP SQL-002
OP-02 Hydrate a hazard group from a reader Map a data reader row to a clsHazardGroup instance Row loop in OP-01 AfterRetrieve IDataPortalInfo, open IDataReader Initialized clsHazardGroup marked old — HAZARD_GROUP SQL-002
OP-03 Look up / test membership in a hazard group collection Find, test containment, or remove hazard groups by id/instance Caller query on a retrieved collection HazardGroupID or clsHazardGroup Matching item, boolean, or removal BR-POL-003 — —
OP-04 Latest policy period effective date Return the effective date of a policy's latest period Caller invokes MaxPolicyEffectiveDate IDataPortalInfo, policy number Date BR-POL-009 POLICY_PERIOD SQL-008
OP-05 Policy period expiration date Resolve a policy period's expiration date across WCIS and non-WCIS stores Caller invokes PolicyPeriodExpirationDate IDataPortalInfo, policy number, period effective date Date BR-POL-010 POLICY_PERIOD, POLICY_PERIOD_NON_WCIS SQL-010
OP-06 Anniversary rating date Resolve a policy period's anniversary rating date across WCIS and non-WCIS stores Caller invokes AnniversaryRateDate IDataPortalInfo, policy number, period effective date Date BR-POL-010 POLICY_PERIOD, POLICY_PERIOD_NON_WCIS SQL-009
OP-07 Determine policy market type Convert a policy's market-type code to Enums.MarketTypes Caller invokes MarketType IDataPortalInfo, policy number Enums.MarketTypes BR-POL-004 POLICY SQL-004
OP-08 Latest premium history set id Return the current premium-history set id Caller invokes MaxPremiumHistorySetId IDataPortalInfo, policy number, period effective date Decimal BR-POL-007 PREM_HIST_SUMMARY SQL-007
OP-09 Policy minimum premium (stored procedure) Retrieve the minimum premium via Oracle package Caller invokes PolicyMinimumPremium IDataPortalInfo, premium-history set id Decimal BR-POL-008 — SQL-011
OP-10 Has the information page been printed? Determine whether a policy period's information page was printed Caller invokes IsInformationPagePrinted IDataPortalInfo, policy number, period effective date Boolean BR-POL-006 ENDORSEMENT SQL-006
OP-11 Determine the owning policy system Determine whether WCIS or SAIFQuote owns the policy Caller invokes GetPolicyOwnershipSystem IDataPortalInfo, policy number Enums.PolicyOwnershipSystems BR-POL-005 DUAL SQL-005
OP-12 Load and cache the benefit jurisdiction code map Build/refresh the cached benefit-jurisdiction code map Caller invokes CodeMaps.GetBenefitJurisdictionCodeMap IDataPortalInfo, optional refresh flag Cached clsBenefitJurisdictionCodeMap BR-POL-012, BR-POL-016 BENEFIT_JURISDICTION_CODE SQL-001
OP-13 Load and cache the manual class type code map Build/refresh the cached manual-class-type code map Caller invokes CodeMaps.GetManualClassTypeCodeMap IDataPortalInfo, optional refresh flag Cached clsManualClassTypeCodeMap BR-POL-013, BR-POL-016 MANUAL_CLASS_TYPE_CODE SQL-003
OP-14 Code ⇄ enum translation Translate policy domain codes to/from enums Any Enums.Convert* call Code string or enum member Enum member or code string BR-POL-017 — —
OP-15 Rating-period comparison helpers Provide shared market-type and equality tests for rating periods Extension method call on iPeriodRatingInfo iPeriodRatingInfo instance(s) Boolean / Integer hash BR-POL-015, BR-POL-018 — —
OP-16 Hazard group equality and identity Compare hazard groups by identity Equals/GetHashCode/ToString call clsHazardGroup instance(s) Boolean / hash / string BR-POL-003 — —

Process flow diagram

The following diagram visualizes the primary hazard-group retrieval flow (OP-01/OP-02), the library's main BOF data-access path.

flowchart TD
    Start(["Caller invokes<br>GetHazardGroups"]) --> A["Construct Criteria with<br>effective date"]
    A --> B["RetrieveObject via BOF data<br>portal"]
    B --> C["BeforeRetrieve assigns<br>RetrieveSQL and binds<br>EffectiveDate"]
    C --> D["Framework executes request<br>against Oracle"]
    D --> E["AfterRetrieve reads rows via<br>reader"]
    E --> F{More rows?}
    F -->|Yes| G["New clsHazardGroup / Load /<br>Add to collection"]
    G --> F
    F -->|No| End(["Return populated<br>clsHazardGroupCollection"])

Database interactions

The following table summarizes which operations read from or write to the database.

Operation SQL Tables Type
OP-01 Retrieve hazard groups effective on a date SQL-002 HAZARD_GROUP Read
OP-04 Latest policy period effective date SQL-008 POLICY_PERIOD Read
OP-05 Policy period expiration date SQL-010 POLICY_PERIOD, POLICY_PERIOD_NON_WCIS Read
OP-06 Anniversary rating date SQL-009 POLICY_PERIOD, POLICY_PERIOD_NON_WCIS Read
OP-07 Determine policy market type SQL-004 POLICY Read
OP-08 Latest premium history set id SQL-007 PREM_HIST_SUMMARY Read
OP-09 Policy minimum premium (stored procedure) SQL-011 N/A — stored procedure Execute
OP-10 Has the information page been printed? SQL-006 ENDORSEMENT Read
OP-11 Determine the owning policy system SQL-005 DUAL Read (function call)
OP-12 Load and cache the benefit jurisdiction code map SQL-001 BENEFIT_JURISDICTION_CODE Read
OP-13 Load and cache the manual class type code map SQL-003 MANUAL_CLASS_TYPE_CODE Read

Failure and edge-case behavior

  • OP-04 (MaxPolicyEffectiveDate): a NULL/absent result causes CDate to throw (unhandled).*
  • OP-08 (MaxPremiumHistorySetId): a NULL result is normalized to 0 via an explicit IsDBNull guard rather than throwing.
  • OP-09 (PolicyMinimumPremium): the call is wrapped in a Try...Catch with an empty catch block; any procedure failure is silently swallowed and the method returns 0 (BR-POL-008). The bound out_expense_constant_amount output parameter is never read back.*
  • OP-10 (IsInformationPagePrinted): no matching row returns NULL, and CDec(Nothing/DBNull) throws rather than returning False — an unguarded path.*
  • OP-03 (ItemByKey): returns the last enumerated item (or Nothing on an empty list) when no match is found — a fall-through defect.*
  • OP-09 and OP-11 call Oracle packages (pk73069_rating_procs.get_minimum_expense_constant, pk73102_policy.does_wcis_own_submission); both were retrieved successfully via the Legends CLI and both .NET call sites are confirmed live, reachable code (see PR-BP-005 in Stored procedure operations below).

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.

Stored procedure operations

Operations implemented in Oracle stored procedures referenced by this library.

Operation Description Source Link
Resolve minimum premium and expense constant for a premium-history set Resolves policy-period context from a premium-history set id, then branches on market type to compute the applicable minimum premium and (ARP only) expense constant. pk73069_rating_procs.get_minimum_expense_constant Details
Resolve policy-period rating context Populates a pp_info_rec with policy number, period effective/expiration dates, rating rule master id, period end date, market type, premium-history type, plan code, financial system code, anniversary rate date, combo period premium set seq num, and create user name. pk73069_rating_procs.get_pp_info (private helper) Details
Compute ARP minimum premium and expense constant Reads premium-history type / policy number / period effective date for the set, then delegates to get_variable_min_exp_constant with market context 'ARP'. Only path that returns an expense constant. pk73069_rating_procs.sp72759_get_arp_min_ec (private helper) Details
Determine submission ownership system Returns the Y/N wcis_owns_flag for the policy's current submission status, defaulting to 'Y' on any failure. pk73102_policy.does_wcis_own_submission Details

Sources

  • SAIF.Business.Policy/clsHazardGroupCollection.vb
  • SAIF.Business.Policy/clsHazardGroup.vb
  • SAIF.Business.Policy/PolicyInformation.vb
  • SAIF.Business.Policy/CodeMaps/clsBenefitJurisdictionCodeMap.vb
  • SAIF.Business.Policy/CodeMaps/clsManualClassTypeCodeMap.vb
  • SAIF.Business.Policy/Enums.vb
  • SAIF.Business.Policy/PeriodRatingInfoExtensions.vb