This commit is contained in:
@@ -1,26 +1,50 @@
|
||||
# CONTRACTS
|
||||
#b4beta
|
||||
## Overview
|
||||
# Contracts
|
||||
|
||||
A contract is used to automatically enforce special pricing rules and response time commitments on work orders.
|
||||
A Contract in AyaNova is used to automatically enforce special pricing and response time commitments on service work orders.
|
||||
|
||||
## Contract form fields and options
|
||||
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.
|
||||
|
||||
todo: this section
|
||||
## Authorization Roles required
|
||||
|
||||
todo: when make section for contract rates then go back to acc-service-rates.md and make the contract rate checkbox description link to it directly.
|
||||
This form is available to User's with the following [roles](ay-biz-admin-roles.md):
|
||||
|
||||
Full access
|
||||
|
||||
## Automatic contract selection rules
|
||||
- Accounting
|
||||
- Business administration
|
||||
- Service manager
|
||||
|
||||
### Customer or Head office Contract
|
||||
Read only access
|
||||
|
||||
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.
|
||||
- Business administration - restricted
|
||||
- Service manager - restricted
|
||||
- Service technician
|
||||
- Sales
|
||||
- Sales - restricted
|
||||
|
||||
Note that a change of 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.
|
||||
## How to access contracts
|
||||
|
||||
Contracts are accessed in the following ways:
|
||||
|
||||
### Unit contract
|
||||
- From the `Accounting` navigation pane `Contracts` item to open the Contracts [data table](ay-start-form-data-tables.md)
|
||||
- By clicking on the [open record icon](ay-start-form-autocomplete.md#opening-selected-record) in any Contract selection list on any other form where contracts can be selected such as the Work order, Quote and Preventive Maintenance forms
|
||||
- From any [data table](ay-start-form-data-tables.md) column showing contracts such as the [Work order list](svc-workorders.md)
|
||||
|
||||
## 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.
|
||||
|
||||
@@ -28,31 +52,247 @@ When a Unit is selected on a work order and that Unit has an **Active and un-exp
|
||||
|
||||
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.
|
||||
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
|
||||
### How a Contract effects pricing
|
||||
|
||||
Contract pricing is set automatically in two ways:
|
||||
Contract pricing (detailed below) is set automatically in two ways:
|
||||
|
||||
- On the save of an object that might have it's price affected by a work order (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 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 selection of a different Contract for the entire work order all Contract price affected items on the work order will be re-visited and have their prices updated if applicable.
|
||||
- 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.
|
||||
|
||||
Prices are *not* automatically updated on a work order for existing items when the Contract itself has it's discounts 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. If you want a work order to 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 happens if the Contract is changed after it's been used?
|
||||
|
||||
### What about manually entered prices?
|
||||
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.
|
||||
|
||||
Any manually adjusted prices on the workorder will be overwritten upon save if the Contract has changed.
|
||||
#### How do I apply new contract terms on an existing work order?
|
||||
|
||||
## How Contract tagged override items are applied
|
||||
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.
|
||||
|
||||
Tagged override items are matched to objects when the object has **ALL** the tags specified in the Contract override. If a Contract has a Labor price override when tagged with "red, green" then the work order item Labor record *must* have both the "red" and "green" tags amongst it's tags to match. E.G. a Contract part override for Travel rates tagged with "zone-5, van" would match with a Travel rate tagged with "zone-5,zone-6,zone-7,van" (both tags present) but would not match with a Travel rate tagged with "zone-5, car" (only one tag present).
|
||||
#### What about manually entered prices?
|
||||
|
||||
Tagged Contract price overrides take precedence over general Contract price overrides. For example, if a Contract has a general discount for Labor rates and also has a tag specific override for a Labor rate and the tags match between the Work order item labor record and the Contract tagged labor price override then the tag override is the one used and the general override is ignored. If no tags matched then the general price override would be applied.
|
||||
Any manually adjusted prices on the workorder will be overwritten upon save if the work order's selected Contract has been changed.
|
||||
|
||||
### Conflict - multiple potential matches with tagged Contract override items
|
||||
### Selecting
|
||||
|
||||
Contract tagged items are checked against the object in order of the Contract tagged override with the most tags to the Contract override with the least tags. This is done to try to make the most specific possible tag match. For example, a Contract with 3 tagged labor price overrides and their tags selected are: "green", "red, green, blue", "orange, green". AyaNova will attempt to match by starting with the Contract labor override with the most tags: "red,green,blue" then "orange,green" and finally "green". If a record is saved tagged with "orange,red,yellow,green,black,blue" it will be matched to the first item tagged "red,green,blue" as it has the most terms that match and it's override terms will be used and the other two will not be used.
|
||||
Contracts are selected in many places in AyaNova including [Units](svc-units.md) on [Work orders](svc-workorders.md), [Quotes](svc-quotes.md) and [Preventive Maintenance](svc-pms.md) 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.
|
||||
|
||||
## Contract data table
|
||||
|
||||
The Contracts [data table](ay-start-form-data-tables.md) lists all the contracts available, provides the '+' link to create a new contract and provides access to common [data table menu options](ay-start-form-data-tables.md#common-menu-options).
|
||||
|
||||
## Contract edit form
|
||||
|
||||
The Contract edit form provides all the [standard edit form](ay-start-edit-forms.md) 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](ay-start-form-autocomplete.md) 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.
|
||||
|
||||
#### 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](home-notify-subscriptions.md) 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](ay-start-common-controls.md#percent) 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 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 discounted.
|
||||
For example you could have a contract that discounts specific parts used for a specific piece of equipment but all other parts are at full price.
|
||||
|
||||
These filters are controlled by setting [Tags](ay-start-form-tags.md) 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](ay-start-common-controls.md#percent) 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 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](ay-start-form-tags.md). **All** tags entered here must be contained in the [Part](inv-parts.md), [Service rate](acc-service-rates.md) or [Travel rate](acc-travel-rates.md) 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](#default-price-adjustments) 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.
|
||||
|
||||
00000000000000000000000000000
|
||||
|
||||
#### Account number
|
||||
|
||||
Provided for reference or connecting to another applications matching account number for this contract.
|
||||
|
||||
#### Web address
|
||||
|
||||
Web site address in an [URL control](ay-start-common-controls.md#url) for entry or opening.
|
||||
|
||||
#### Email
|
||||
|
||||
Email address in an [Email control](ay-start-common-controls.md#email) for entry or opening.
|
||||
|
||||
#### Phone fields
|
||||
|
||||
Five phone contact number fields are provided as [Phone controls](ay-start-common-controls.md#phone) for entry or dialing on supported devices.
|
||||
|
||||
These fields are pre-labeled as "Business", "Fax", "Home", "Mobile", "Pager" however as with all AyaNova form field labels they can be [changed](adm-translations.md) to labels appropriate for your business.
|
||||
|
||||
#### Bill Head office
|
||||
|
||||
If this Contract has a [Head office](head-offices.md) checking this box will cause AyaNova to use the Head Office mailing address on Work orders, Quotes and Preventive Maintenance orders.
|
||||
|
||||
#### Head office
|
||||
|
||||
The [Head office](head-offices.md) feature of AyaNova is a way to group Contracts under a common entity.
|
||||
|
||||
Head offices have several purposes in AyaNova:
|
||||
|
||||
- Billing purposes when the bill should go to the Head office for work performed for that Contract
|
||||
- [Contract access](adm-global-settings.md#contract-access-settings) self-service features. A Head office [Contact](cust-contacts.md) can use all the Contract access features for all Contracts who have their Head office selected depending on the permissions granted.
|
||||
- Grouping purposes for management reporting in AyaNova
|
||||
|
||||
#### Contract
|
||||
|
||||
#### Contract expires
|
||||
|
||||
You can select a [Contract](svc-contracts.md) for a Contract in AyaNova and it will automatically be applied to Work orders, Quotes and Preventive maintenance orders.
|
||||
When a Contract is selected the `Contract expires` field will be visible. This field controls the time period for which a contract is considered valid and once this date has passed the Contract will no longer be automatically applied.
|
||||
|
||||
See the [Contract documentation](svc-contracts.md) for further details.
|
||||
|
||||
#### Active
|
||||
|
||||
Contracts that are set to Active can be selected on new Work orders and other objects that user 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.
|
||||
|
||||
#### General 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.
|
||||
|
||||
#### Service tech notes
|
||||
|
||||
Service tech notes are specific notes that display on work orders, quotes and preventive maintenance orders and are intended as a message to the service technician whenever they deal with this contract. Service tech notes will display as a dark blue alert box with an (i) info icon.
|
||||
|
||||
This field is commonly used to alert a _service technician_ to some unusual aspect of _providing service_ to this Contract, for example there may be special instructions for accessing the site or special requirements around billing or work practices such as safety protocols to follow, where to park etc.
|
||||
|
||||
#### 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 deal with 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 billing related issues such as "Credit hold - cash only".
|
||||
|
||||
#### Custom fields
|
||||
|
||||
If the form has been [customized](ay-customize.md) and [custom fields](ay-customize.md#custom-fields) enabled for this object they will display here.
|
||||
|
||||
#### Tags
|
||||
|
||||
Optional [tags control](ay-start-form-tags.md) for categorizing and notification [filtering](home-notify-subscriptions.md#tags).
|
||||
|
||||
#### Wiki
|
||||
|
||||
Optional [wiki control](ay-start-form-wiki.md).
|
||||
|
||||
#### Attached files
|
||||
|
||||
Optional [attachments control](ay-start-form-attachments.md).
|
||||
|
||||
### Address tab
|
||||
|
||||
Standard AyaNova object [Address control](ay-start-common-controls.md#address).
|
||||
|
||||
### Contacts tab
|
||||
|
||||
The Contacts tab is where you enter information about people associated with the Contract for both contacting purposes and for optionally allowing them to login to use AyaNova's contract self service features.
|
||||
|
||||
See the [Contacts help page](cust-contacts.md) for more details.
|
||||
|
||||
### Menu options
|
||||
|
||||
In addition to the [common edit form menu options](ay-start-edit-forms.md#common-edit-form-menu-options) the Contract edit form also has these options:
|
||||
|
||||
#### Contract notes
|
||||
|
||||
Opens up the [contract notes](contract-notes.md) form for recording notes about the contract in a dated log format when the general Notes field is not enough.
|
||||
This can be used for any purpose but is often used for recording notes about interactions with the Contract for future reference purposes.
|
||||
|
||||
#### Work orders
|
||||
|
||||
This is a shortcut to create or view prior work orders for a contract and opens the [Work order list](svc-workorders.md) [data table](ay-start-form-data-tables.md) pre-filtered to only show records for this contract.
|
||||
|
||||
#### Contract Units
|
||||
|
||||
This is a shortcut to create or view prior Unit records for a contract and opens the [Unit list](svc-units.md) [data table](ay-start-form-data-tables.md) pre-filtered to only show records for this contract.
|
||||
|
||||
#### Quotes
|
||||
|
||||
This is a shortcut to create or view prior Quote records for a contract and opens the [Quote list](svc-quotes.md) [data table](ay-start-form-data-tables.md) pre-filtered to only show records for this contract.
|
||||
|
||||
#### Preventive maintenance
|
||||
|
||||
This is a shortcut to create or view prior Preventive maintenance records for a contract and opens the [PM list](svc-pms.md) [data table](ay-start-form-data-tables.md) pre-filtered to only show records for this contract.
|
||||
|
||||
00000000000000000000000000000000000000000000000000000000
|
||||
|
||||
Reference in New Issue
Block a user