Skip to content

Bill contract flags

Bill.IsBillDiscardable, Bill.IsBillComplete, and Bill.IsBillUpdateable compute UI-facing boolean state directly from BillEntrySourceCode and BillStatusCode, so bill screens can enable or disable actions without re-implementing the status logic.

Field Value
Operation ID OP-CORE-06
Trigger Bill UI rendering
Inputs BillEntrySourceCode, BillStatusCode
Outputs IsBillDiscardable, IsBillComplete, IsBillUpdateable boolean flags
Primary components Bill.IsBillDiscardable, Bill.IsBillComplete, Bill.IsBillUpdateable
Entry point Core/SAIF.Core/Contracts/Claims/Bills/Bill.cs

Steps

  1. IsBillDiscardable evaluates to true when BillEntrySourceCode is not "E" (not an e-bill) or BillStatusCode is PEN (CORE-BR-050).
  2. IsBillComplete evaluates to true when BillStatusCode is COM (CORE-BR-051).
  3. IsBillUpdateable evaluates to true when BillStatusCode is one of PEN, ENT, AUD, or SUS (CORE-BR-052).
  4. All three flags are computed independently from the same two source fields and are read by bill screens to decide which actions to show.

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([Bill entry source and status read]) --> D1[Compute IsBillDiscardable]
    Start --> D2[Compute IsBillComplete]
    Start --> D3[Compute IsBillUpdateable]
    D1 --> EndOk([Flags returned to bill screen])
    D2 --> EndOk
    D3 --> EndOk

Failure and edge-case behavior

  • An unrecognized BillStatusCode value causes all three flags to evaluate to false rather than raising an error*.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

Sources

  • Core/SAIF.Core/Contracts/Claims/Bills/Bill.cs