# JobItemStatus

**Kind:** Class

**Source:** `Frontend/src/app/models/sales/job-item-status.model.ts` (line 4)

**Part of:** [Frontend](subsystem-frontend-src-app)

`JobItemStatus` represents the status data associated with a sales job item. It supports creating copies through `clone()` and copying its data through `cloneData()`.

## 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[JobItemStatus]
  Clone[clone()]
  CloneData[cloneData()]

  JobItemStatus --> Clone
  JobItemStatus --> CloneData
  Clone --> StatusCopy[JobItemStatus copy]
  CloneData --> DataCopy[Copied status data]
```

## Usage

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

const status = new JobItemStatus();

const statusCopy = status.clone();
const statusData = status.cloneData();

// Use the cloned instance without changing the original status.
console.log(statusCopy, statusData);
```

## AI Coding Instructions

- Use `clone()` when code needs a separate `JobItemStatus` instance.
- Use `cloneData()` when code needs copied status data rather than the original object reference.
- Keep clone behavior aligned when adding fields to `JobItemStatus`.
- Check callers before changing the return shape of either clone method.

## 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)

- `NewJobComponent` — `Frontend/src/app/components/sales/new-job/new-job.component.ts`:1
- `JobItemStatusService` — `Frontend/src/app/services/sales/job-item-status.service.ts`:1
- `JobItemService` — `Frontend/src/app/services/sales/job-items.service.ts`:1
- `TempInq` — `Frontend/src/app/models/sales/inquiry.model.ts`:17
- `itemProcessShared` — `Frontend/src/app/models/sales/items-process-shared.model.ts`:3
- `JobItem` — `Frontend/src/app/models/sales/job-item.model.ts`:6
