# JobsViewModel

**Kind:** Class

**Source:** `Frontend/src/app/models/sales/jobs-view.model.ts` (line 2)

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

`JobsViewModel` represents sales job data for the frontend view layer. Its `clone()` method creates a copied view-model instance for workflows that need to preserve or compare job state.

## Methods

| Method | Signature | Returns |
|---|---|---|
| `clone` | `clone(job: JobsViewModel)` | `void` |

## Properties

| Property | Type |
|---|---|
| `InquiryNumber` | `number` |
| `CurrentJobStatusID` | `number` |
| `CompanyBranchID` | `number` |
| `JobNo` | `string` |
| `InquiryDate` | `Date` |
| `BidDueDate` | `Date` |
| `ClientName` | `string` |
| `EndUser` | `string` |
| `Project` | `string` |
| `SupplierName` | `string` |
| `InquiryType` | `string` |
| `StatusName` | `string` |
| `OrderBackLog` | `number` |
| `ActionDate` | `Date` |
| `BranchName` | `string` |
| `StatusDate` | `Date` |
| `StatusReason` | `string` |
| `DeliveredOn` | `Date` |
| `CancellationFeesAmount` | `number` |
| `CancellationFeesAmountInBaseCurrency` | `number` |
| `ClientInquiryNumber` | `string` |
| `SupplierOfferNumber` | `string` |
| `SupplierOrderNumber` | `string` |
| `OrderDate` | `Date` |
| `OrderActivationDate` | `Date` |
| `OfferStatus` | `string` |
| `OrderChance` | `string` |
| `OrderStatus` | `string` |
| `JobVersionPrice` | `number` |
| `JobVersionPriceInBaseCurrency` | `number` |
| `CurrencyCode` | `string` |
| `OfferValidation` | `string` |
| `DeliveryTime` | `string` |
| `RequirdProduct` | `string` |
| `SalesResponsible` | `string` |
| `ProductType` | `string` |
| `PaymentMethod` | `string` |
| `DeliveryTerm` | `string` |
| `ClientInquiryCount` | `number` |
| `ClientOfferCount` | `number` |
| `ClientOrderCount` | `number` |
| `ClientDeliveredCount` | `number` |
| `BidBondValue` | `number` |
| `BidBondValueType` | `number` |
| `BidBondValueCurrency` | `string` |
| `BidBondValueInBaseCurrency` | `number` |
| `AgreedCommissionPercentage` | `number` |
| `CommissionPercentage` | `number` |
| `ContractualCommissionPercentage` | `number` |
| `CommissionValue` | `number` |

## Diagram

```mermaid
graph LR
  JobsViewModel --> Clone[clone()]
  Clone --> CopiedJobsViewModel[Copied JobsViewModel]
  CopiedJobsViewModel --> SalesUI[Sales UI State]
```

## Usage

```ts
import { JobsViewModel } from '@/app/models/sales/jobs-view.model';

declare const jobsViewModel: JobsViewModel;

const copiedJobsViewModel = jobsViewModel.clone();

// Use the copied model without replacing the original reference.
console.log(copiedJobsViewModel);
```

## AI Coding Instructions

- Import `JobsViewModel` from `app/models/sales/jobs-view.model` when working with sales job view state.
- Use `clone()` before changing state that must not affect the original model instance.
- Check the `clone()` implementation before assuming whether nested values are copied or shared.
- Keep presentation-specific logic in the view model and avoid placing API request logic in this class.

## Relationships

- IMPORTS → `AppSettings`

## Used by

1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Imported by (1)

- `InquiryService` — `Frontend/src/app/services/sales/inquiry.service.ts`:1
