---
title: "SQL-115: Retrieve CbpBill"
summary: Read operation against CbpBill via NHibernate ORM.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.Services
reference_type: package
---

# SQL-115: Retrieve CbpBill

This ORM statement performs a read operation on `CbpBill` via `IUnitOfWork.GetRepository<T>()`, executed from `Services/SAIF.Services/Claims/Bills/BillEntryService.cs (L133, L288, L309, L346, L364, L628)`.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-115 |
| **Operation type** | Read |
| **Execution method** | ORM (NHibernate LINQ) |
| **Database** | Oracle |
| **Schema** | [unqualified]** |
| **Command type** | N/A (ORM-generated) |
| **Business object** | `CbpBill` |
| **Criteria property** | N/A — ORM |
| **Lifecycle method** | `CheckForDuplicateBill, GetInboxBillsByResponsiblePartyId, SaveBill, UpdateBillStatus` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `imageSeqNum` | Input | ** | N/A | `x.ImageId == imageSeqNum` → column IMAGE_SEQ_NUM |
| `bill.Id` | Input | ** | N/A | `x.Id == bill.Id` → column BILL_ID |
| `dataBill.Id` | Input | ** | N/A | `x.Id == dataBill.Id` → column BILL_ID |
| `billId` | Input | ** | N/A | `x.Id == billId` → column BILL_ID |
| `responsiblePartyId` | Input | ** | N/A | `x.CurrentResponsiblePartyId == responsiblePartyId` → column CURRENT_RESPONSIBLE_PARTY_ID |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [CBP_BILL](../database-tables.md#cbp_bill) | SELECT | `BILL_ID`, `UPDATE_NUM`, `PATIENT_REFERENCE_NUM`, `MAIL_ROOM_RECEIVED_DATE`, `SAIF_CLAIM_NUM`, `SAIF_CLAIM_CHK_VALUE`, `WORKER_FIRST_NAME`, `WORKER_MIDDLE_INITIAL`, `WORKER_LAST_NAME`, `WORKER_PHONE_NUM`, `WORKER_BIRTH_DATE`, `WORKER_ADDRESS_LINE1`, `WORKER_ADDRESS_LINE2`, `WORKER_ADDRESS_LINE3`, `WORKER_ADDRESS_LINE4`, `GENDER_CODE`, `PATIENT_ACCOUNT_NUM`, `PROVIDER_TAX_ID`, `PROVIDER_ADDRESS_LINE1`, `PROVIDER_ADDRESS_LINE2`, `PROVIDER_CITY_NAME`, `PROVIDER_STATE_CODE`, `PROVIDER_ZIP_CODE`, `PROVIDER_LICENSE_NUM`, `ADMISSION_DATE`, `DISCHARGE_DATE`, `STATEMENT_FROM_DATE`, `STATEMENT_THRU_DATE`, `WORKER_TAX_ID`, `TOWID`, `REBILL_FLAG`, `CURRENT_BILL_STATUS_ID`, `PRIORITY_NUM`, `UPDATE_USER`, `UPDATE_DATE`, `REFERRING_PROVIDER_NAME`, `BILL_TOTAL_AMT`, `DRG_CODE`, `BILL_PACKAGE_QUANTITY`, `WORKFLOW_BYPASS_CODE`, `CURRENT_RESPONSIBLE_PARTY_ID`, `CURRENT_STATUS_EFF_DATE`, `CURRENT_UPDATE_USER`, `CURRENT_NEXT_REVIEW_DATE`, `UB_BILL_TYPE_CODE`, `CBP_ADMISSION_TYPE_CODE`, `IMAGE_SEQ_NUM`, `CLAIM_ID`, `BILL_TYPE_CODE`, `PROVIDER_LOCATION_SEQ_NUM`, `CURRENT_BILL_STATUS_CODE`, `CBP_BILL_ENTRY_SOURCE_CODE` |

## LINQ statement

Source: `Services/SAIF.Services/Claims/Bills/BillEntryService.cs:133`

```csharp
// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:133
            var bills = unitOfWork.GetRepository<CbpBill>().Query().Where(x => x.ImageId == imageSeqNum).ToList();

// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:288
            dataBill = unitOfWork.GetRepository<CbpBill>().Query().FirstOrDefault(x => x.Id == bill.Id);

// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:309
            return Mapper.Map<Bill>(unitOfWork.GetRepository<CbpBill>().Query().FirstOrDefault(x => x.Id == dataBill.Id));

// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:346
            dataBill = unitOfWork.GetRepository<CbpBill>().Query().FirstOrDefault(x => x.Id == billId);

// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:364
            return Mapper.Map<Bill>(unitOfWork.GetRepository<CbpBill>().Query().FirstOrDefault(x => x.Id == billId));

// Services/SAIF.Services/Claims/Bills/BillEntryService.cs:628-629
            var bills = unitOfWork.GetRepository<CbpBill>().Query()
                .Where(x => x.CurrentResponsiblePartyId == responsiblePartyId).ToList();
```

## Sample SQL

> **Inferred SQL:** This SQL was inferred from the LINQ statement above and the NHibernate mappings. It is not concrete SQL from source code; NHibernate generates the executed statement at runtime, so aliases, column order, join syntax, and bind-parameter names may differ.

```sql
-- Inferred from LINQ (NHibernate mapping translation); not concrete SQL
-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:133
SELECT
  CB.BILL_ID,
  CB.UPDATE_NUM,
  CB.PATIENT_REFERENCE_NUM,
  CB.MAIL_ROOM_RECEIVED_DATE,
  CB.SAIF_CLAIM_NUM,
  CB.SAIF_CLAIM_CHK_VALUE,
  CB.WORKER_FIRST_NAME,
  CB.WORKER_MIDDLE_INITIAL,
  CB.WORKER_LAST_NAME,
  CB.WORKER_PHONE_NUM,
  CB.WORKER_BIRTH_DATE,
  CB.WORKER_ADDRESS_LINE1,
  CB.WORKER_ADDRESS_LINE2,
  CB.WORKER_ADDRESS_LINE3,
  CB.WORKER_ADDRESS_LINE4,
  CB.GENDER_CODE,
  CB.PATIENT_ACCOUNT_NUM,
  CB.PROVIDER_TAX_ID,
  CB.PROVIDER_ADDRESS_LINE1,
  CB.PROVIDER_ADDRESS_LINE2,
  CB.PROVIDER_CITY_NAME,
  CB.PROVIDER_STATE_CODE,
  CB.PROVIDER_ZIP_CODE,
  CB.PROVIDER_LICENSE_NUM,
  CB.ADMISSION_DATE,
  CB.DISCHARGE_DATE,
  CB.STATEMENT_FROM_DATE,
  CB.STATEMENT_THRU_DATE,
  CB.WORKER_TAX_ID,
  CB.TOWID,
  CB.REBILL_FLAG,
  CB.CURRENT_BILL_STATUS_ID,
  CB.PRIORITY_NUM,
  CB.UPDATE_USER,
  CB.UPDATE_DATE,
  CB.REFERRING_PROVIDER_NAME,
  CB.BILL_TOTAL_AMT,
  CB.DRG_CODE,
  CB.BILL_PACKAGE_QUANTITY,
  CB.WORKFLOW_BYPASS_CODE,
  CB.CURRENT_RESPONSIBLE_PARTY_ID,
  CB.CURRENT_STATUS_EFF_DATE,
  CB.CURRENT_UPDATE_USER,
  CB.CURRENT_NEXT_REVIEW_DATE,
  CB.UB_BILL_TYPE_CODE,
  CB.CBP_ADMISSION_TYPE_CODE,
  CB.IMAGE_SEQ_NUM,
  CB.CLAIM_ID,
  CB.BILL_TYPE_CODE,
  CB.PROVIDER_LOCATION_SEQ_NUM,
  CB.CURRENT_BILL_STATUS_CODE,
  CB.CBP_BILL_ENTRY_SOURCE_CODE
FROM CBP_BILL CB
WHERE CB.IMAGE_SEQ_NUM = :imageSeqNum

-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:288
SELECT *
FROM (
  SELECT
    CB.BILL_ID,
    CB.UPDATE_NUM,
    CB.PATIENT_REFERENCE_NUM,
    CB.MAIL_ROOM_RECEIVED_DATE,
    CB.SAIF_CLAIM_NUM,
    CB.SAIF_CLAIM_CHK_VALUE,
    CB.WORKER_FIRST_NAME,
    CB.WORKER_MIDDLE_INITIAL,
    CB.WORKER_LAST_NAME,
    CB.WORKER_PHONE_NUM,
    CB.WORKER_BIRTH_DATE,
    CB.WORKER_ADDRESS_LINE1,
    CB.WORKER_ADDRESS_LINE2,
    CB.WORKER_ADDRESS_LINE3,
    CB.WORKER_ADDRESS_LINE4,
    CB.GENDER_CODE,
    CB.PATIENT_ACCOUNT_NUM,
    CB.PROVIDER_TAX_ID,
    CB.PROVIDER_ADDRESS_LINE1,
    CB.PROVIDER_ADDRESS_LINE2,
    CB.PROVIDER_CITY_NAME,
    CB.PROVIDER_STATE_CODE,
    CB.PROVIDER_ZIP_CODE,
    CB.PROVIDER_LICENSE_NUM,
    CB.ADMISSION_DATE,
    CB.DISCHARGE_DATE,
    CB.STATEMENT_FROM_DATE,
    CB.STATEMENT_THRU_DATE,
    CB.WORKER_TAX_ID,
    CB.TOWID,
    CB.REBILL_FLAG,
    CB.CURRENT_BILL_STATUS_ID,
    CB.PRIORITY_NUM,
    CB.UPDATE_USER,
    CB.UPDATE_DATE,
    CB.REFERRING_PROVIDER_NAME,
    CB.BILL_TOTAL_AMT,
    CB.DRG_CODE,
    CB.BILL_PACKAGE_QUANTITY,
    CB.WORKFLOW_BYPASS_CODE,
    CB.CURRENT_RESPONSIBLE_PARTY_ID,
    CB.CURRENT_STATUS_EFF_DATE,
    CB.CURRENT_UPDATE_USER,
    CB.CURRENT_NEXT_REVIEW_DATE,
    CB.UB_BILL_TYPE_CODE,
    CB.CBP_ADMISSION_TYPE_CODE,
    CB.IMAGE_SEQ_NUM,
    CB.CLAIM_ID,
    CB.BILL_TYPE_CODE,
    CB.PROVIDER_LOCATION_SEQ_NUM,
    CB.CURRENT_BILL_STATUS_CODE,
    CB.CBP_BILL_ENTRY_SOURCE_CODE
  FROM CBP_BILL CB
  WHERE CB.BILL_ID = :Id
)
WHERE ROWNUM <= 1

-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:309
SELECT *
FROM (
  SELECT
    CB.BILL_ID,
    CB.UPDATE_NUM,
    CB.PATIENT_REFERENCE_NUM,
    CB.MAIL_ROOM_RECEIVED_DATE,
    CB.SAIF_CLAIM_NUM,
    CB.SAIF_CLAIM_CHK_VALUE,
    CB.WORKER_FIRST_NAME,
    CB.WORKER_MIDDLE_INITIAL,
    CB.WORKER_LAST_NAME,
    CB.WORKER_PHONE_NUM,
    CB.WORKER_BIRTH_DATE,
    CB.WORKER_ADDRESS_LINE1,
    CB.WORKER_ADDRESS_LINE2,
    CB.WORKER_ADDRESS_LINE3,
    CB.WORKER_ADDRESS_LINE4,
    CB.GENDER_CODE,
    CB.PATIENT_ACCOUNT_NUM,
    CB.PROVIDER_TAX_ID,
    CB.PROVIDER_ADDRESS_LINE1,
    CB.PROVIDER_ADDRESS_LINE2,
    CB.PROVIDER_CITY_NAME,
    CB.PROVIDER_STATE_CODE,
    CB.PROVIDER_ZIP_CODE,
    CB.PROVIDER_LICENSE_NUM,
    CB.ADMISSION_DATE,
    CB.DISCHARGE_DATE,
    CB.STATEMENT_FROM_DATE,
    CB.STATEMENT_THRU_DATE,
    CB.WORKER_TAX_ID,
    CB.TOWID,
    CB.REBILL_FLAG,
    CB.CURRENT_BILL_STATUS_ID,
    CB.PRIORITY_NUM,
    CB.UPDATE_USER,
    CB.UPDATE_DATE,
    CB.REFERRING_PROVIDER_NAME,
    CB.BILL_TOTAL_AMT,
    CB.DRG_CODE,
    CB.BILL_PACKAGE_QUANTITY,
    CB.WORKFLOW_BYPASS_CODE,
    CB.CURRENT_RESPONSIBLE_PARTY_ID,
    CB.CURRENT_STATUS_EFF_DATE,
    CB.CURRENT_UPDATE_USER,
    CB.CURRENT_NEXT_REVIEW_DATE,
    CB.UB_BILL_TYPE_CODE,
    CB.CBP_ADMISSION_TYPE_CODE,
    CB.IMAGE_SEQ_NUM,
    CB.CLAIM_ID,
    CB.BILL_TYPE_CODE,
    CB.PROVIDER_LOCATION_SEQ_NUM,
    CB.CURRENT_BILL_STATUS_CODE,
    CB.CBP_BILL_ENTRY_SOURCE_CODE
  FROM CBP_BILL CB
  WHERE CB.BILL_ID = :Id
)
WHERE ROWNUM <= 1

-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:346
SELECT *
FROM (
  SELECT
    CB.BILL_ID,
    CB.UPDATE_NUM,
    CB.PATIENT_REFERENCE_NUM,
    CB.MAIL_ROOM_RECEIVED_DATE,
    CB.SAIF_CLAIM_NUM,
    CB.SAIF_CLAIM_CHK_VALUE,
    CB.WORKER_FIRST_NAME,
    CB.WORKER_MIDDLE_INITIAL,
    CB.WORKER_LAST_NAME,
    CB.WORKER_PHONE_NUM,
    CB.WORKER_BIRTH_DATE,
    CB.WORKER_ADDRESS_LINE1,
    CB.WORKER_ADDRESS_LINE2,
    CB.WORKER_ADDRESS_LINE3,
    CB.WORKER_ADDRESS_LINE4,
    CB.GENDER_CODE,
    CB.PATIENT_ACCOUNT_NUM,
    CB.PROVIDER_TAX_ID,
    CB.PROVIDER_ADDRESS_LINE1,
    CB.PROVIDER_ADDRESS_LINE2,
    CB.PROVIDER_CITY_NAME,
    CB.PROVIDER_STATE_CODE,
    CB.PROVIDER_ZIP_CODE,
    CB.PROVIDER_LICENSE_NUM,
    CB.ADMISSION_DATE,
    CB.DISCHARGE_DATE,
    CB.STATEMENT_FROM_DATE,
    CB.STATEMENT_THRU_DATE,
    CB.WORKER_TAX_ID,
    CB.TOWID,
    CB.REBILL_FLAG,
    CB.CURRENT_BILL_STATUS_ID,
    CB.PRIORITY_NUM,
    CB.UPDATE_USER,
    CB.UPDATE_DATE,
    CB.REFERRING_PROVIDER_NAME,
    CB.BILL_TOTAL_AMT,
    CB.DRG_CODE,
    CB.BILL_PACKAGE_QUANTITY,
    CB.WORKFLOW_BYPASS_CODE,
    CB.CURRENT_RESPONSIBLE_PARTY_ID,
    CB.CURRENT_STATUS_EFF_DATE,
    CB.CURRENT_UPDATE_USER,
    CB.CURRENT_NEXT_REVIEW_DATE,
    CB.UB_BILL_TYPE_CODE,
    CB.CBP_ADMISSION_TYPE_CODE,
    CB.IMAGE_SEQ_NUM,
    CB.CLAIM_ID,
    CB.BILL_TYPE_CODE,
    CB.PROVIDER_LOCATION_SEQ_NUM,
    CB.CURRENT_BILL_STATUS_CODE,
    CB.CBP_BILL_ENTRY_SOURCE_CODE
  FROM CBP_BILL CB
  WHERE CB.BILL_ID = :billId
)
WHERE ROWNUM <= 1

-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:364
SELECT *
FROM (
  SELECT
    CB.BILL_ID,
    CB.UPDATE_NUM,
    CB.PATIENT_REFERENCE_NUM,
    CB.MAIL_ROOM_RECEIVED_DATE,
    CB.SAIF_CLAIM_NUM,
    CB.SAIF_CLAIM_CHK_VALUE,
    CB.WORKER_FIRST_NAME,
    CB.WORKER_MIDDLE_INITIAL,
    CB.WORKER_LAST_NAME,
    CB.WORKER_PHONE_NUM,
    CB.WORKER_BIRTH_DATE,
    CB.WORKER_ADDRESS_LINE1,
    CB.WORKER_ADDRESS_LINE2,
    CB.WORKER_ADDRESS_LINE3,
    CB.WORKER_ADDRESS_LINE4,
    CB.GENDER_CODE,
    CB.PATIENT_ACCOUNT_NUM,
    CB.PROVIDER_TAX_ID,
    CB.PROVIDER_ADDRESS_LINE1,
    CB.PROVIDER_ADDRESS_LINE2,
    CB.PROVIDER_CITY_NAME,
    CB.PROVIDER_STATE_CODE,
    CB.PROVIDER_ZIP_CODE,
    CB.PROVIDER_LICENSE_NUM,
    CB.ADMISSION_DATE,
    CB.DISCHARGE_DATE,
    CB.STATEMENT_FROM_DATE,
    CB.STATEMENT_THRU_DATE,
    CB.WORKER_TAX_ID,
    CB.TOWID,
    CB.REBILL_FLAG,
    CB.CURRENT_BILL_STATUS_ID,
    CB.PRIORITY_NUM,
    CB.UPDATE_USER,
    CB.UPDATE_DATE,
    CB.REFERRING_PROVIDER_NAME,
    CB.BILL_TOTAL_AMT,
    CB.DRG_CODE,
    CB.BILL_PACKAGE_QUANTITY,
    CB.WORKFLOW_BYPASS_CODE,
    CB.CURRENT_RESPONSIBLE_PARTY_ID,
    CB.CURRENT_STATUS_EFF_DATE,
    CB.CURRENT_UPDATE_USER,
    CB.CURRENT_NEXT_REVIEW_DATE,
    CB.UB_BILL_TYPE_CODE,
    CB.CBP_ADMISSION_TYPE_CODE,
    CB.IMAGE_SEQ_NUM,
    CB.CLAIM_ID,
    CB.BILL_TYPE_CODE,
    CB.PROVIDER_LOCATION_SEQ_NUM,
    CB.CURRENT_BILL_STATUS_CODE,
    CB.CBP_BILL_ENTRY_SOURCE_CODE
  FROM CBP_BILL CB
  WHERE CB.BILL_ID = :billId
)
WHERE ROWNUM <= 1

-- Services/SAIF.Services/Claims/Bills/BillEntryService.cs:628
SELECT
  CB.BILL_ID,
  CB.UPDATE_NUM,
  CB.PATIENT_REFERENCE_NUM,
  CB.MAIL_ROOM_RECEIVED_DATE,
  CB.SAIF_CLAIM_NUM,
  CB.SAIF_CLAIM_CHK_VALUE,
  CB.WORKER_FIRST_NAME,
  CB.WORKER_MIDDLE_INITIAL,
  CB.WORKER_LAST_NAME,
  CB.WORKER_PHONE_NUM,
  CB.WORKER_BIRTH_DATE,
  CB.WORKER_ADDRESS_LINE1,
  CB.WORKER_ADDRESS_LINE2,
  CB.WORKER_ADDRESS_LINE3,
  CB.WORKER_ADDRESS_LINE4,
  CB.GENDER_CODE,
  CB.PATIENT_ACCOUNT_NUM,
  CB.PROVIDER_TAX_ID,
  CB.PROVIDER_ADDRESS_LINE1,
  CB.PROVIDER_ADDRESS_LINE2,
  CB.PROVIDER_CITY_NAME,
  CB.PROVIDER_STATE_CODE,
  CB.PROVIDER_ZIP_CODE,
  CB.PROVIDER_LICENSE_NUM,
  CB.ADMISSION_DATE,
  CB.DISCHARGE_DATE,
  CB.STATEMENT_FROM_DATE,
  CB.STATEMENT_THRU_DATE,
  CB.WORKER_TAX_ID,
  CB.TOWID,
  CB.REBILL_FLAG,
  CB.CURRENT_BILL_STATUS_ID,
  CB.PRIORITY_NUM,
  CB.UPDATE_USER,
  CB.UPDATE_DATE,
  CB.REFERRING_PROVIDER_NAME,
  CB.BILL_TOTAL_AMT,
  CB.DRG_CODE,
  CB.BILL_PACKAGE_QUANTITY,
  CB.WORKFLOW_BYPASS_CODE,
  CB.CURRENT_RESPONSIBLE_PARTY_ID,
  CB.CURRENT_STATUS_EFF_DATE,
  CB.CURRENT_UPDATE_USER,
  CB.CURRENT_NEXT_REVIEW_DATE,
  CB.UB_BILL_TYPE_CODE,
  CB.CBP_ADMISSION_TYPE_CODE,
  CB.IMAGE_SEQ_NUM,
  CB.CLAIM_ID,
  CB.BILL_TYPE_CODE,
  CB.PROVIDER_LOCATION_SEQ_NUM,
  CB.CURRENT_BILL_STATUS_CODE,
  CB.CBP_BILL_ENTRY_SOURCE_CODE
FROM CBP_BILL CB
WHERE CB.CURRENT_RESPONSIBLE_PARTY_ID = :responsiblePartyId
```

Translation notes:
- `bill.Id` (L288) / `dataBill.Id` (L309) -> bind `:Id`.
- `FirstOrDefault` on the primary key still emits the Oracle10 `ROWNUM <= 1` wrapper.

## Operations and processes
- BillEntryService.CheckForDuplicateBill — see [Operations and processes](../operations-processes.md)
- BillEntryService.GetInboxBillsByResponsiblePartyId — see [Operations and processes](../operations-processes.md)
- BillEntryService.SaveBill — see [Operations and processes](../operations-processes.md)
- BillEntryService.UpdateBillStatus — see [Operations and processes](../operations-processes.md)

## Business rules
- [SVC-BR-BIL-080 BillTotalAmount NotNull - 'Error - Bill total amount is required.'](../business-rules.md#svc-br-bil-080-billtotalamount-notnull---'error---bill-total-amount-is-required.')
- [SVC-BR-BIL-081 BillTypeCode NotNull - 'Error - Bill type is required.'](../business-rules.md#svc-br-bil-081-billtypecode-notnull---'error---bill-type-is-required.')
- [SVC-BR-BIL-082 DrgCode ≤3 - 'Error - DRG code can be a maximum 3 characters.'](../business-rules.md#svc-br-bil-082-drgcode-%E2%89%A43---'error---drg-code-can-be-a-maximum-3-characters.')
- [SVC-BR-BIL-083 Claim number must be valid (ClaimQueryProvider.IsValidClaim) - 'Error - Claim not found.'](<../business-rules.md#svc-br-bil-083-claim-number-must-be-valid-(claimqueryprovider.isvalidclaim)---'error---claim-not-found.'>)---'error---claim-not-found.')
- [SVC-BR-BIL-084 UbBillTypeCode numeric - 'Error - UB Bill Type Code is invalid. Must be numeric.'](../business-rules.md#svc-br-bil-084-ubbilltypecode-numeric---'error---ub-bill-type-code-is-invalid.-must-be-numeric.')
- [SVC-BR-BIL-085 CBPAdmissionTypeCode must be in the acceptable list - 'Error - CBP Admission Type Code is invalid.'](../business-rules.md#svc-br-bil-085-cbpadmissiontypecode-must-be-in-the-acceptable-list---'error---cbp-admission-type-code-is-invalid.')
- [SVC-BR-BIL-086](../business-rules.md#svc-br-bil-086-optimistic-concurrency%3A-updatenumber-mismatch-%E2%86%92-%22bill-has-been-updated-by-someone-else.-please-re-open-the-bill-and-try-again.-last-updated-by%3A-%7Buser%7D.%22)
- [SVC-BR-BIL-087 A bill with no existing row is created with status PEN, entry source CBE](../business-rules.md#svc-br-bil-087-a-bill-with-no-existing-row-is-created-with-status-pen%2C-entry-source-cbe)
- [SVC-BR-BIL-094](<../business-rules.md#svc-br-bil-094-status-code-must-exist%2C-else-throw-invaliddataexception-%22error%3A-new-bill-status-code-is-invalid%3A-%7Bcode%7D%22%3B-new-status-effective-today%2C-responsible-%3D-recipient.toupper()-or-current-user>)
- [SVC-BR-BIL-087 A bill with no existing row is created with status PEN, entry source CBE](../business-rules.md#svc-br-bil-087-a-bill-with-no-existing-row-is-created-with-status-pen%2C-entry-source-cbe)

## Sources
- `Services/SAIF.Services/Claims/Bills/BillEntryService.cs (L133, L288, L309, L346, L364, L628)`
