﻿---
title: SAIF.Business.Claim.Authority business rules
summary: Enumerated business rules for SAIF.Business.Claim.Authority.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-30
library: SAIF.Business.Claim.Authority
reference_type: package
---

# SAIF.Business.Claim.Authority business rules

This page captures business rules enforced by `SAIF.Business.Claim.Authority`.

## BR-001: Mail ID must be valid

| Field | Value |
| --- | --- |
| **Statement** | Mail ID must be valid |
| **Trigger** | Object validation |
| **Enforcement** | ``clsClaimAuthority.ValidDecisionCode`` |
| **Outcome** | Error: "Mail ID is invalid." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimAuthority.vb` (`ValidDecisionCode`) |

---

## BR-002: Cannot grant authority level higher than own

| Field | Value |
| --- | --- |
| **Statement** | Cannot grant authority level higher than own |
| **Trigger** | Grant authority change |
| **Enforcement** | ``clsClaimAuthority.ValidAuthTypeCode`` |
| **Outcome** | Error: "You are not authorized to grant this authority." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimAuthority.vb` (`ValidAuthTypeCode`) |

---

## BR-003: Maximum limit must be greater than zero

| Field | Value |
| --- | --- |
| **Statement** | Maximum limit must be greater than zero |
| **Trigger** | MaxAmount property |
| **Enforcement** | ``clsClaimEmpBusFuncLimit.ValidAmountMin`` |
| **Outcome** | Error: "Maximum limit must be greater than zero." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimEmpBusFuncLimit.vb` (`ValidAmountMin`) |

---

## BR-004: Expiration date may not be in the past

| Field | Value |
| --- | --- |
| **Statement** | Expiration date may not be in the past |
| **Trigger** | ExpDate property |
| **Enforcement** | ``clsClaimEmpBusFuncLimit.ValidExpDate`` |
| **Outcome** | Error: "Expiration date may not be in the past." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimEmpBusFuncLimit.vb` (`ValidExpDate`) |

---

## BR-005: Cannot grant amount exceeding own authority

| Field | Value |
| --- | --- |
| **Statement** | Cannot grant amount exceeding own authority |
| **Trigger** | MaxAmount property |
| **Enforcement** | ``clsClaimEmpBusFuncLimit.ValidAuthorizeAmount`` |
| **Outcome** | Error: "You are not authorized to grant this amount." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimEmpBusFuncLimit.vb` (`ValidAuthorizeAmount`) |

---

## BR-006: No duplicate function/approval type combinations

| Field | Value |
| --- | --- |
| **Statement** | No duplicate function/approval type combinations |
| **Trigger** | ClaimBusFunctionCode property |
| **Enforcement** | ``clsClaimEmpBusFuncLimit.DuplicateFunctionCode`` |
| **Outcome** | Error: "May not have multiple rows with the same Function and Approval Type." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimEmpBusFuncLimit.vb` (`DuplicateFunctionCode`) |

---

## BR-007: Cannot grant approval type beyond own authority

| Field | Value |
| --- | --- |
| **Statement** | Cannot grant approval type beyond own authority |
| **Trigger** | ClaimAuthPurposeCode property |
| **Enforcement** | ``clsClaimEmpBusFuncLimit.ValidAuthorizeApprovalType`` |
| **Outcome** | Error: "You are not authorized to grant this Approval Type." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimEmpBusFuncLimit.vb` (`ValidAuthorizeApprovalType`) |

---

## BR-008: Maximum limit must be greater than zero

| Field | Value |
| --- | --- |
| **Statement** | Maximum limit must be greater than zero |
| **Trigger** | MaxChangeAmount property |
| **Enforcement** | ``clsClaimEmpCatChangeLimit.ValidAmountMin`` |
| **Outcome** | Error: "Maximum limit must be greater than zero." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimEmpCatChangeLimit.vb` (`ValidAmountMin`) |

---

## BR-009: Expiration date may not be in the past

| Field | Value |
| --- | --- |
| **Statement** | Expiration date may not be in the past |
| **Trigger** | ExpDate property |
| **Enforcement** | ``clsClaimEmpCatChangeLimit.ValidExpDate`` |
| **Outcome** | Error: "Expiration date may not be in the past." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimEmpCatChangeLimit.vb` (`ValidExpDate`) |

---

## BR-010: Cannot grant amount exceeding own category authority

| Field | Value |
| --- | --- |
| **Statement** | Cannot grant amount exceeding own category authority |
| **Trigger** | MaxChangeAmount property |
| **Enforcement** | ``clsClaimEmpCatChangeLimit.ValidAuthorizeAmount`` |
| **Outcome** | Error: "You are not authorized to grant this amount." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimEmpCatChangeLimit.vb` (`ValidAuthorizeAmount`) |

---

## BR-011: Cannot grant approval type beyond own category authority

| Field | Value |
| --- | --- |
| **Statement** | Cannot grant approval type beyond own category authority |
| **Trigger** | ClaimAuthPurposeCode property |
| **Enforcement** | ``clsClaimEmpCatChangeLimit.ValidAuthorizeCategoryApprovalType`` |
| **Outcome** | Error: "You are not authorized to grant this Approval Type." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimEmpCatChangeLimit.vb` (`ValidAuthorizeCategoryApprovalType`) |

---

## BR-012: Security override disabled in production

| Field | Value |
| --- | --- |
| **Statement** | Security override disabled in production |
| **Trigger** | IsSecurityOverride setter |
| **Enforcement** | ``clsClaimAuthority.IsSecurityOverride.Set`` |
| **Outcome** | Value forced to False in production |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimAuthority.vb` (`IsSecurityOverride` property setter) |

---

## BR-013: No duplicate category/approval type combinations

| Field | Value |
| --- | --- |
| **Statement** | No duplicate category/approval type combinations |
| **Trigger** | ClaimCostCategoryCode property |
| **Enforcement** | ``clsClaimEmpCatChangeLimit.DuplicateCategoryCode`` |
| **Outcome** | Error: "May not have multiple rows with the same Category and Approval Type." |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Claim.Authority\clsClaimEmpCatChangeLimit.vb` (`DuplicateCategoryCode`) |

---

## Inherited business rules

Rules in this section are inherited from shared BOF framework behavior.

### From `clsBusinessBase` (`saif-framework-core`)

## INH-001: Framework rule execution

| Field | Value |
| --- | --- |
| **Statement** | Inherited BOF business objects evaluate property and object rules through the shared rules manager.* |
| **Trigger** | When a property setter or save path triggers rule evaluation |
| **Enforcement** | Inherited `clsBusinessBase` rules-manager flow |
| **Outcome** | Broken-rule state is captured and exposed to consumers.* |
| **Confidence** | Inherited |
| **Origin** | `saif-framework-core — clsBusinessBase` |
| **Source** | Retrieved from dependency documentation via Legends CLI |

---

## INH-002: Collection validation surfacing

| Field | Value |
| --- | --- |
| **Statement** | Inherited BOF collections surface aggregated validation state through `IDataErrorInfo`.* |
| **Trigger** | When child items or collection state contain broken rules |
| **Enforcement** | Inherited `clsBusinessCollectionBase` validation behavior |
| **Outcome** | Consumers can read collection-level error state without querying each child directly.* |
| **Confidence** | Inherited |
| **Origin** | `saif-framework-core — clsBusinessCollectionBase` |
| **Source** | Retrieved from dependency documentation via Legends CLI |

---

## Notes
- Rule identifiers in this document are documentation identifiers for this generated library set.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [API reference](api/index.md)

> **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
- `Business\SAIF.Business.Claim.Authority\SAIF.BOF.Business.Claim.Authority.vbproj`
- `Business\SAIF.Business.Claim.Authority\SAIF.BOF.Business.Claim.Authority.nuspec`
- `Business\SAIF.Business.Claim.Authority\packages.config`
- `Business\SAIF.Business.Claim.Authority\clsClaimAuthority.vb`
- `Business\SAIF.Business.Claim.Authority\clsClaimEmpAuthType.vb`
- `Business\SAIF.Business.Claim.Authority\clsClaimEmpBusFuncLimit.vb`
- `Business\SAIF.Business.Claim.Authority\clsClaimEmpBusFuncLimitCollection.vb`
- `Business\SAIF.Business.Claim.Authority\clsClaimEmpCatChangeLimit.vb`
- `Business\SAIF.Business.Claim.Authority\clsClaimEmpCatChangeLimitCollection.vb`
- `Business\SAIF.Business.Claim.Authority\clsClaimAuthPurposeCode.vb`
- `Business\SAIF.Business.Claim.Authority\clsClaimAuthTypeCode.vb`
- `Business\SAIF.Business.Claim.Authority\clsClaimBusFunctionCode.vb`
- `Business\SAIF.Business.Claim.Authority\clsClaimBusProcessCode.vb`
- `Business\SAIF.Business.Claim.Authority\mdlClaimAuthority.vb`