# JobsViewModel

**Kind:** Class

**Source:** `Pams/Web/Pams.Web/Client/app/models/sales/jobs-view.model.ts` (line 2)

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

`JobsViewModel` represents job-related view state in the sales client application. Its `clone()` method creates a separate copy of the model so callers can work with duplicated state without changing the original instance.

## 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
  A[Sales UI] --> B[JobsViewModel]
  B --> C[clone()]
  C --> D[Copied JobsViewModel]
```

## Usage

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

const jobsView = new JobsViewModel();

const copiedJobsView = jobsView.clone();

// Update the copied view model without replacing the original reference.
console.log(copiedJobsView);
```

## AI Coding Instructions

- Call `clone()` when a workflow needs an independent `JobsViewModel` instance for editing, comparison, or temporary UI state.
- Keep cloning behavior aligned with the model's properties; add new properties to the clone implementation when they are added to the class.
- Avoid treating a cloned model as a shared reference with the original instance.
- Import `JobsViewModel` from the sales models area when integrating it with sales UI components or state handling.

## 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` — `Pams/Web/Pams.Web/Client/app/services/sales/inquiry.service.ts`:1
