SAIF.Business.Policy operations and processes¶
This page is the operation catalog and cross-operation hub for SAIF.Business.Policy. Most operations are read-only BOF retrievals or scalar lookups; the two Oracle package calls documented here also carry stored-procedure business rules BR-POL-002 through BR-POL-008.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Retrieve hazard groups effective on a date | Load hazard-group classification records active on a given date | Caller invokes clsHazardGroupCollection.GetHazardGroups | Data portal, effective date | clsHazardGroupCollection populated with clsHazardGroup items | None | HAZARD_GROUP | SQL-002 |
| Determine maximum policy effective date | Find the latest policy-period effective date for a policy | Caller reads PolicyInformation.MaxPolicyEffectiveDate | Data portal, policy number | Date | None | POLICY_PERIOD | SQL-008 |
| Determine policy-period expiration date | Find the expiration date of a policy period | Caller reads PolicyInformation.PolicyPeriodExpirationDate | Data portal, policy number, period effective date | Date | None | POLICY_PERIOD, POLICY_PERIOD_NON_WCIS | SQL-011 |
| Determine anniversary rate date | Find the anniversary rate date of a policy period | Caller reads PolicyInformation.AnniversaryRateDate | Data portal, policy number, period effective date | Date | None | POLICY_PERIOD, POLICY_PERIOD_NON_WCIS | SQL-004 |
| Determine market type | Resolve the market type for a policy | Caller reads PolicyInformation.MarketType | Data portal, policy number | Enums.MarketTypes | None | POLICY | SQL-005 |
| Determine maximum premium-history set ID | Find the current premium-history set ID for a policy period | Caller reads PolicyInformation.MaxPremiumHistorySetId | Data portal, policy number, period effective date | Decimal (0 if none) | None | PREM_HIST_SUMMARY | SQL-009 |
| Determine policy minimum premium | Retrieve the minimum premium amount for a premium-history set | Caller reads PolicyInformation.PolicyMinimumPremium | Data portal, premium-history set ID | Decimal (0 on failure) | BR-POL-002, BR-POL-003, BR-POL-004, BR-POL-005 | N/A (stored procedure) | SQL-010 |
| Determine whether the information page was printed | Check whether the P401 information page endorsement was printed | Caller reads PolicyInformation.IsInformationPagePrinted | Data portal, policy number, period effective date | Boolean | None | ENDORSEMENT | SQL-007 |
| Determine policy ownership system | Determine which system owns a policy submission (WCIS vs SAIFQuote) | Caller reads PolicyInformation.GetPolicyOwnershipSystem | Data portal, policy number | Enums.PolicyOwnershipSystems | BR-POL-006, BR-POL-007, BR-POL-008 | N/A (PL/SQL function) | SQL-006 |
| Resolve or cache benefit-jurisdiction code table | Load and cache the benefit-jurisdiction code map | Caller invokes CodeMaps.GetBenefitJurisdictionCodeMap | Data portal, refresh flag | Cached clsBenefitJurisdictionCodeMap | None | BENEFIT_JURISDICTION_CODE | SQL-001 |
| Resolve or cache manual-class-type code table | Load and cache the manual-class-type code map | Caller invokes CodeMaps.GetManualClassTypeCodeMap | Data portal, refresh flag | Cached clsManualClassTypeCodeMap | None | MANUAL_CLASS_TYPE_CODE | SQL-003 |
Process flow diagram¶
The following diagram visualizes the primary operational flow across this library's two main call patterns: standard BOF retrieve (hazard groups) and ad hoc scalar lookups (PolicyInformation).
flowchart TD
Start([Caller request]) --> Decision{Which pattern?}
Decision -->|BOF collection retrieve| HG[clsHazardGroupCollection.GetHazardGroups]
HG --> BeforeRetrieve[BeforeRetrieve builds Criteria.RetrieveSQL]
BeforeRetrieve --> Portal[Data portal executes SQL-002]
Portal --> AfterRetrieve[AfterRetrieve constructs clsHazardGroup rows]
AfterRetrieve --> EndHG([Return clsHazardGroupCollection])
Decision -->|Ad hoc scalar lookup| PI[PolicyInformation.* property]
PI --> ScalarSQL[Build scalar SQL/stored-proc request]
ScalarSQL --> ScalarPortal[DAL.ProcessPortalRequest executes]
ScalarPortal --> Cast[Cast/convert result]
Cast --> EndPI([Return scalar value])
Inherited operations and processes¶
Operations in this section originate from base classes provided by dependency framework libraries. They are inherited or delegated, not implemented in this library.
From clsBusinessCollection (SAIF.Framework.Core)¶
| Operation | Intent | Provided by | Origin | Embedded in |
| --- | --- | --- | --- | --- |
| Framework lifecycle dispatch (creation, retrieval, persistence, validation, editing, data-portal dispatch) | Supports the object lifecycle that clsHazardGroupCollection runs through when retrieving objects† | clsBusinessCollection | SAIF.Framework.Core | Retrieve hazard groups effective on a date |
Origin: These operations are defined in
SAIF.Framework.Core/clsBusinessCollectionand inherited or delegated by this component. Detailed retrieve/before-retrieve/after-retrieve step logic forclsHazardGroupCollectionitself is implemented locally in this library (see the embedded operation's own steps) and is not a framework-inherited detail.
Database interactions¶
The following table summarizes which operations read from the database. Per-step SQL and table citations live in each operation's detail page under operations/.
| Operation | SQL | Tables | Type |
| --- | --- | --- | --- |
| Retrieve hazard groups effective on a date | SQL-002 | HAZARD_GROUP | Read |
| Determine maximum policy effective date | SQL-008 | POLICY_PERIOD | Read |
| Determine policy-period expiration date | SQL-011 | POLICY_PERIOD, POLICY_PERIOD_NON_WCIS | Read |
| Determine anniversary rate date | SQL-004 | POLICY_PERIOD, POLICY_PERIOD_NON_WCIS | Read |
| Determine market type | SQL-005 | POLICY | Read |
| Determine maximum premium-history set ID | SQL-009 | PREM_HIST_SUMMARY | Read |
| Determine policy minimum premium | SQL-010 | N/A (stored procedure) | Read |
| Determine whether the information page was printed | SQL-007 | ENDORSEMENT | Read |
| Determine policy ownership system | SQL-006 | N/A (PL/SQL function) | Read |
| Resolve or cache benefit-jurisdiction code table | SQL-001 | BENEFIT_JURISDICTION_CODE | Read |
| Resolve or cache manual-class-type code table | SQL-003 | MANUAL_CLASS_TYPE_CODE | Read |
Failure and edge-case behavior¶
-
MaxPolicyEffectiveDateandPolicyPeriodExpirationDatecast the scalar result directly toDatewithout a null/DBNullguard; behavior when no matching row exists is unconfirmed.** -
PolicyMinimumPremiumwraps its stored-procedure call inTry...Catchwith an emptyCatchblock, silently swallowing any provider/database exception and returning0.**
Stored procedure operations¶
Operations implemented in Oracle stored procedures referenced by this library.
| Operation | Description | Source | Link |
| --- | --- | --- | --- |
| Determine policy minimum premium and expense constant | Resolves policy context and returns the minimum premium result for a premium-history set, using voluntary or ARP logic as needed | pk73069_rating_procs.get_minimum_expense_constant | Details |
| Determine voluntary combination minimum premium | Iterates all premium-history sets in a combined voluntary policy and returns the highest applicable minimum | pk73069_rating_procs.get_comb_vol_policy_minimum | Details |
| Determine ARP minimum premium and expense constant | Uses ARP-specific rate-file and expense-constant logic for non-voluntary policies | pk73069_rating_procs.sp72759_get_arp_min_ec | Details |
| Determine submission ownership | Returns the status-driven WCIS ownership flag and defaults to WCIS ownership on missing/error conditions | pk73102_policy.does_wcis_own_submission | Details |
| Proxy submission status transitions to POLDB | Forwards reject, unreject, pending, quoted, and app-received-date requests to the remote @POLDB package | pk73102_policy.reject_submission, unreject_submission, set_submission_to_pending, set_submission_to_quoted, set_app_received_date | Details |
| Insert dividend notepad memo | Writes a DVD / Dividend memo entry through SP72155_INSERT_MEMO_ENTRY | pk73102_policy.insert_dividend_notepad | Details |
Related documentation¶
Note: Statements marked with
†are derived from dependency librarydocumentation via the Legends CLI. Statements marked with
*were inferredfrom code structure or contextual evidence. Statements marked with
**couldnot be confirmed; treat as unknown until verified.
Sources¶
-
SAIF.Business.Policy\clsHazardGroupCollection.vb -
SAIF.Business.Policy\PolicyInformation.vb -
SAIF.Business.Policy\CodeMaps\clsBenefitJurisdictionCodeMap.vb -
SAIF.Business.Policy\CodeMaps\clsManualClassTypeCodeMap.vb -
Oracle retrieval JSON:
C:\Users\chrfre\AppData\Local\Temp\oracle-sources\pk73069_rating_procs.json -
Oracle retrieval JSON:
C:\Users\chrfre\AppData\Local\Temp\oracle-sources\pk73102_policy.json