Skip to content

# Contracts

A Contract in AyaNova is used to automatically enforce special pricing and response time commitments on service work orders.

A Contract can be automatically applied to new work orders if an associated object such as a Customer, Head Office or Unit has a contract or a user can manually select a Contract in the work order header.

## Authorization Roles required

Many roles can select this object on other records where approriate. Editing or viewing this object in detail is only available to Users with the following roles:

Full access

- Accounting
- Business administration
- Service manager

Read only access

- Business administration - restricted
- Service manager - restricted
- Service technician
- Sales
- Sales - restricted

## How to access contracts

Contracts are accessed in the following ways:

- From the `Accounting` navigation drawer `Contracts` item to open the Contracts data table
- By clicking on the open record icon in any Contract autocomplete list on any other form where contracts can be selected such as the Work order, Quote and Preventive Maintenance forms
- From any data table column showing contracts such as the Work order list

## How contracts work

### Automatic contract selection rules

#### Customer or Head office Contract

When a work order is saved for the first time or subsequently saved with a change of Customer, AyaNova will attempt to select the most applicable contract for that work order based on the pre-selected Customer or that Customer's Head office by checking those object's for a Contract that is not expired and applying it to the Work order.

If both a Customer and a Head office have active contracts that could apply to the same work order, the Customer contract takes precedence.

Note that a change of both the Customer and a manual change of Contract on the same save is ambiguous and AyaNova will still automatically set the Contract based on the Customer or Head office if applicable and effectively ignore the manual setting. However if neither the Customer or the Head office has a Contract then the manual setting will still be preserved in this case.

However a manual contract change on the work order alone before a save will always be saved.

#### Unit contract

AyaNova does not automatically apply Unit Contracts as there are too many scenarios where it might conflict with other Contracted objects or other Users editing other portions of an existing work order coming into conflict.

When a Unit is selected on a work order and that Unit has an Active and un-expired Contract and that Contract is different from the currently selected Contract in the work order header, AyaNova will prompt the user if they want to use that Contract for the entire work order. If the user chooses to accept it the work order header Contract field will be set to the Unit's Contract.

Multiple Units with Contracts on the same work order are permitted and not prevented so it's up to the user to ensure the validity of chosen Units / Contract. To avoid a conflicting contract situation only select one Contract holding Unit per work order, use a Customer or HeadOffice Contract instead of a Unit Contract or manually select independent contracts not associated with any other object instead of using automatic Contract selection if you want full control over what Contract is in effect in order to apply to multiple Units on the same work order.

### How to avoid automatic contract selection

Some shops may prefer to opt for a simpler system of only manually selecting contracts on Work orders. This is accomplished by not selecting a Contract in any Customers, Head-offices or Units records.

### Contract expiry

Contract expiry dates are checked at the time a Contract is automatically selected for a work order only. If a work order is in progress and has items added after it's Contract has expired the Contract will still apply to that work order and any new items added to that work order.

### How a Contract effects pricing

Contract pricing (detailed below) is set automatically in two ways:

- On the save of a work order with a new or changed object that might have it's price affected by a contract (e.g. a Labor item or Part added to a workorder) the price is calculated when the object is first added and saved or changed to a new item for example changing the service rate or part to a different selection.

- On the save of a work order that has had it's Contract changed from the prior selection. In this case all Contract price affected items on the work order will be re-visited and have their prices updated if applicable.

#### What happens if the Contract is changed after it's been used?

Prices are not automatically updated on existing work orders when the Contract object itself is modified. When new items are added to the work order then yes the new contract pricing will take effect for those items only but not the prior entered items.

#### How do I apply new contract terms on an existing work order?

If you want to modify a Contract and then have an existing work order what was set to use that Contract have all it's prices updated to reflect the Contract change then you will need to de-select the Contract, save the work order then re-select and save again in order to force a re-calculation of all the existing items on the work order.

#### What about manually entered prices?

Any manually adjusted prices on the workorder will be overwritten upon save if the work order's selected Contract has been changed.

### Selecting

Contracts are selected in many places in AyaNova including Units on Work orders, Quotes and Preventive Maintenance orders.

### Retiring

When a Contract is no longer required it should be set to inactive by un-checking it's Active checkbox so it is not offered for selection on new records but will still display on old records.

## Contract data table

The Contracts data table lists all the contracts available, provides the '+' link to create a new contract and provides access to common data table menu options.

## Contract edit form

The Contract edit form provides all the standard edit form functionality and the following fields:

#### Contract name

This is the name of the contract as it's displayed in forms and reports. This is also the primary identifier when searching for a contract to select in autocomplete lists. A contract name must be unique from all other contracts entered.

Keep in mind that this is the Name that Customers may see on reports if provided to them.

This is the only required field on the Contract form. All other fields are optional and can be hidden if not required.

#### Response time

This optional field is used to automatically set the Work order `Complete by date` field when a new service work order is created. The Work order's Complete by date field ties into the notification system to ensure that service is performed within a given time frame to meet response time commitments. If no value is set here then this Contract will not affect the Complete by date.

#### Default price adjustments

In this optional section you can set percentage adjustments that will apply to Work orders with this Contract in effect.

Adjustments can be set for Parts, Service and Travel individually.

This section is called the "Default" price adjustment area because it will apply to any parts, service rates or travel rates selected on a service work order with this contract selected without any filtering in contrast with Tagged price adjustments (described below). In other words these are blanket discounts that are given to any item of the type selected.

##### Percentage

The percent control is used to control the price adjustment based on the price adjustment type.

##### Price adjustment type

There are two choices for what value is used in conjunction with the percentage to calculate the new price for items

`Cost plus percentage` - the adjusted price will be the standard Cost of the item plus the percentage indicated here.

`Price minus percentage` - the adjusted price will be the standard Price of an item minus the percentage indicated here.

#### Tagged price adjustments

Tagged price adjustments are used when only a specific set of Parts, Service rate or Travel rate items should be automatically adjusted. For example you could have a contract that adjusts specific parts used for a specific piece of equipment but all other parts are at regular price.

These filters are controlled by setting Tags in the contract that will be matched to Tags on the Part, Service rate or Travel rate.

Tagged price adjustments are collections in the contract meaning there can be zero to many special tagged price adjustments. In this way you can offer multiple separate discounts for the same type of object based on the tags applied to that object.

For example you could tag some service rates with `max-discountable` and others with `semi-discountable` and create a tagged price override discounting `max-discountable` tagged service rates by 10% and `semi-discountable` tagged service rates by 5%.

##### Adding a new item

Click on the `+` plus symbol beside the collection to which you want to add a new item and a popup edit form will open to set percentage, adjustment type and tags.

##### Editing / removing an item

Click on the edit symbol in the list to open the edit form for an item to change it or delete it from the collection.

##### Percentage field

The percent control is used to control the price adjustment based on the price adjustment type.

##### Price adjustment type field

There are two choices for what value is used in conjunction with the percentage to calculate the new price for items

`Cost plus percentage` - the adjusted price will be the standard Cost of the item plus the percentage indicated here.

`Price minus percentage` - the adjusted price will be the standard Price of an item minus the percentage indicated here.

##### Tag field

Enter one or more Tags. All tags entered here must be contained in the Part, Service rate or Travel rate object's Tags collection in order to be a match. It's ok if the Part (for example) has other tags, it just needs to have all the tags here to be a match.

##### Tagged versus Default adjustments, who wins?

Tagged price adjustments take precedence over Default Contract price adjustments when both are a match during the work order save process because tagged price adjustments are more specific and AyaNova always prioritizes the most specific matches in automatic operations.

##### Conflict multiple potential matches with tagged Contract adjustment items

If there multiple tagged overrides for a type of item AyaNova needs to decide which one is the best match.

AyaNova prioritizes the most specific matches in automatic operations always so tagged price adjustments with the most tags are considered first then the next most etc in decreasing order.

For example, a Contract has 3 tagged service rate price overrides and their tags selected are: "green", "red, green, blue" and "orange, green".

AyaNova will attempt to match a selected service rate when the work order is saved by starting with the Contract labor override with the most tags: "red,green,blue" then "orange,green" and finally "green".

This means a service rate tagged with "orange, red, yellow, green, black, blue" could match any of the tagged adjustments but will be matched to the contract service rate price adjustment tagged "red, green, blue" as it has the most matching terms.

#### Contract rates

Contract rates are used to offer special contract only service or travel rates and / or restrict the availability of service or travel rates to a specific list of rates.

In a Service rate or Travel rate you can select `Contract only` which means the rate will not normally be displayed for selection in a Work order, Quote or Preventive maintenance order unless it has a matching Contract with that rate selected.

##### Contract must be selected and Work order saved first!

Note that a work order must first be saved with it's Contract selected before these Contract rate options take effect on that work order. So, for example, if you have a contract with contract only rates, those rates will not show on the work order until it's been saved with this contract selected first.

##### Allow only these checkbox

When checked this forces the Work order, Quote or Preventive Maintenance entry form that has this matching Contract selected to only display and allow for selection the exact rates listed here.

##### Adding a new item

Click on the `+` plus symbol beside the collection to which you want to add a new item and a popup edit form will open to select the `Contract only` service or travel rate.

##### Editing / removing an item

Click on the edit symbol in the list to open the edit form for an item to change it or delete it from the collection.

##### Service / Travel rate field

Select the service or travel rate that will be offered to Work order, Quote or Preventive Maintenance entry forms that have this matching Contract selected. The list offered here is limited to Service rates or Travel rates that have `Contract only` checked in their records.

#### Active

Contracts that are set to Active can be selected on new Work orders and other objects that use contracts.
Contracts not set to Active will still show in older records but can not be selected for new records; this is how you retire a Contract from use.

#### Notes

Notes about this record for internal staff use. Notes can also be reported on if desired. These notes are only visible in this form.

#### Alert notes

Contract alert notes are displayed on work orders, quotes and preventive maintenance orders and are intended as a general purpose alert message to any staff member whenever they open a record that uses this Contract.

Alert notes will display as an orange alert box with a triangular /!\ exclamation mark icon.

This field is commonly used to generally alert all staff about an important issue regarding this contract. For example contract specific issues such as "Response time commitment applies!".

#### Custom fields

If the form has been customized and custom fields enabled for this object they will display here.

#### Tags

Optional tags control for categorizing, searching, selecting and notification filtering.

#### Wiki

Optional wiki control.

#### Attached files

Optional attachments control.

### Menu options

This form has the common edit form menu options.