# JobsViewModel

**Kind:** Class

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

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

`JobsViewModel` represents sales-job view state in the Pams web application. It includes a `clone()` method for creating a separate `JobsViewModel` instance from existing 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 --> Copy["JobsViewModel copy"]
```

## Usage

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

declare const jobsViewModel: JobsViewModel;

const copiedViewModel = jobsViewModel.clone();

// Change copiedViewModel without changing the original instance.
```

## AI Coding Instructions

- Use `clone()` when a separate `JobsViewModel` instance is needed for edits or state comparisons.
- Keep `clone()` aligned with every property added to `JobsViewModel`.
- Avoid mutating a cloned instance when the caller expects updates on the original view model.
- Check sales UI components and state-handling code when changing the model shape.

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