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.
Failure and edge-case behavior¶
- OP-04 (
MaxPolicyEffectiveDate): aNULL/absent result causesCDateto throw (unhandled).* - OP-08 (
MaxPremiumHistorySetId): aNULLresult is normalized to0via an explicitIsDBNullguard rather than throwing. - OP-09 (
PolicyMinimumPremium): the call is wrapped in aTry...Catchwith an empty catch block; any procedure failure is silently swallowed and the method returns0(BR-POL-008). The boundout_expense_constant_amountoutput parameter is never read back.* - OP-10 (
IsInformationPagePrinted): no matching row returnsNULL, andCDec(Nothing/DBNull)throws rather than returningFalse— an unguarded path.* - OP-03 (
ItemByKey): returns the last enumerated item (orNothingon 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 |
Related documentation¶
- Index
- Overview
- Architecture
- Dependencies
- Business rules
- Database tables
- SQL catalog
- Procedures
- API reference
Sources¶
SAIF.Business.Policy/clsHazardGroupCollection.vbSAIF.Business.Policy/clsHazardGroup.vbSAIF.Business.Policy/PolicyInformation.vbSAIF.Business.Policy/CodeMaps/clsBenefitJurisdictionCodeMap.vbSAIF.Business.Policy/CodeMaps/clsManualClassTypeCodeMap.vbSAIF.Business.Policy/Enums.vbSAIF.Business.Policy/PeriodRatingInfoExtensions.vb