# JobItemStatus

**Kind:** Class

**Source:** `Pams/Web/Pams.WebApp/Client/app/models/sales/job-item-status.model.ts` (line 4)

**Part of:** [Pams](subsystem-pams)

`JobItemStatus` represents the status data for a sales job item in the client application. It supports copying the model through `clone()` and copying its data through `cloneData()` when state must be reused without sharing the same instance.

## Methods

| Method | Signature | Returns |
|---|---|---|
| `clone` | `clone(item: JobItemStatus)` | `void` |
| `cloneData` | `cloneData(item: JobItemStatus)` | `void` |

## Properties

| Property | Type |
|---|---|
| `JobItemStatusID` | `number` |
| `JobItemID` | `number` |
| `StatusID` | `number` |
| `ActionDate` | `Date` |
| `ActionByUserID` | `number` |
| `ReasonID` | `number` |
| `Comment` | `string` |
| `Amount` | `number` |
| `Data` | `JobItemStatusData` |

## Where it refuses work

- `JobItemStatus` stops the work with an early return when `this.ActionDate == null`.

## Diagram

```mermaid
graph LR
    JobItemStatus --> clone["clone()"]
    JobItemStatus --> cloneData["cloneData()"]
    clone --> CopiedModel["Copied JobItemStatus"]
    cloneData --> CopiedData["Copied status data"]
```

## Usage

```ts
import { JobItemStatus } from './models/sales/job-item-status.model';

const status = new JobItemStatus();

const copiedStatus = status.clone();
const copiedData = status.cloneData();

// Update copiedStatus without changing the original instance.
```

## AI Coding Instructions

- Use `clone()` when code needs a separate `JobItemStatus` instance.
- Use `cloneData()` when only the status data is needed for assignment or mapping.
- Avoid mutating a shared status instance when editing job item state.
- Keep cloning behavior aligned with the fields added to `JobItemStatus`.

## Relationships

- IMPORTS → `JobItemStatusData`
- IMPORTS → `AppSettings`
- IMPORTS → `JobStatusE`
- IMPORTS → `JobVersionStatusE`

## Used by

6 references from 6 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Imported by (6)

- `JobItemStatusDataService` — `Pams/Web/Pams.WebApp/Client/app/services/sales/job-item-status-data.service.ts`:1
- `JobItemStatusService` — `Pams/Web/Pams.WebApp/Client/app/services/sales/job-item-status.service.ts`:1
- `JobItemService` — `Pams/Web/Pams.WebApp/Client/app/services/sales/job-items.service.ts`:1
- `TempInq` — `Pams/Web/Pams.WebApp/Client/app/models/sales/inquiry.model.ts`:17
- `itemProcessShared` — `Pams/Web/Pams.WebApp/Client/app/models/sales/items-process-shared.model.ts`:3
- `JobItem` — `Pams/Web/Pams.WebApp/Client/app/models/sales/job-item.model.ts`:6
