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

# SQL-072: Retrieve AdjustmentReason via SaveBillServices

This ORM statement performs a read operation on `AdjustmentReason` via `SaveBillServices`, executed from `Services/SAIF.Services/Legal/Bills/BillSaveService.cs` (L444-448).

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-072 |
| **Operation type** | Read |
| **Execution method** | ORM (NHibernate LINQ) |
| **Database** | Oracle |
| **Schema** | [unqualified]** |
| **Command type** | N/A (ORM-generated) |
| **Business object** | `AdjustmentReason` |
| **Criteria property** | N/A — ORM |
| **Lifecycle method** | `SaveBillServices` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:Code` | Input | `string` | N/A | Captured member `legalBillService.AdjustmentReason.Code` |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [ADJUSTMENT_REASON_CODE](../database-tables.md#adjustment_reason_code) | SELECT | CODE, CODE_DESCR, CODE_LONG_DESCR, MAIL_MERGE_TEXT |

## LINQ statement

Source: `Services/SAIF.Services/Legal/Bills/BillSaveService.cs:444-448`.

```csharp
// Services/SAIF.Services/Legal/Bills/BillSaveService.cs:444
billService.AdjustmentReason = legalBillService.AdjustmentReason == null
    ? null
    : _unitOfWork.GetRepository<BillData.AdjustmentReason>()
      .Query()
      .SingleOrDefault(x => x.Code == legalBillService.AdjustmentReason.Code);
```

## 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
SELECT
  ARC.CODE,
  ARC.CODE_DESCR,
  ARC.CODE_LONG_DESCR,
  ARC.MAIL_MERGE_TEXT
FROM ADJUSTMENT_REASON_CODE ARC
WHERE ARC.CODE = :Code
-- NHibernate expects at most one row
```

Translation notes:
- The query executes only when `legalBillService.AdjustmentReason != null` (C# conditional at line 444); otherwise no SQL is issued.
- `Code` / `Description` are inherited from `CodeTableEntity<AdjustmentReason>`; the map declares `Id(x => x.Code).Column("CODE")`.
- The neighbouring `BillService` and `BillServiceRateType` lookups (lines 438-443) are separate statements, not part of this SQL ID.

## Operations and processes
- BillSaveService.SaveBillServices — see [Operations and processes](../operations-processes.md)

> **Note:** Statements marked with `**` could not be confirmed; treat as unknown until verified.

## Sources
- `Services/SAIF.Services/Legal/Bills/BillSaveService.cs (L446)`
