Quotes Overview & Search: Copy

Creating, searching, and managing quotes

Copy

A copied quote duplicates data from the original quote. An API called copyQuote can also deliver this function.

All fields in new quotes are the same as the original one except for the following fields:

Quote ID Changes

Accepted Count — Resets to '0'

Contract Changes

Quote Date — This date is updated to today's date. It's usually printed on quote PDF forms.

Date To — This date is updated to today's date. This field is not displayed on screen.

Quote Status — If the "Status" of the original quote is 'Accepted', the new quote will have its status updated to match the default Requested status.

Sub Status — If the "Status" of the quote is being updated, the stored "Sub Status" will only copy if the quotestatusid = NULL, otherwise it will be removed.

Cancelled — Resets to '0000-00-00 00:00:00'. This field is not displayed on screen.

Parent Quote ID — Stores the Quote ID of the quote that was copied.

Lock Quote — If checked, this is reset to be un-checked.

Assigned — Will update if a different user copied the quote.

Last Edit By — Will update if a different user copied the quote.

Last Edit — Will update to show the last edit timestamp.

Created By — Will update if a different user copied the quote.

Created — Will update to show the creation timestamp.

Finance Changes

Residual Inc GST Lock — If checked, this is reset to be un-checked.

Lease Changes

Lock Lease Rate — If checked, this is reset to be un-checked.

Inclusions — If Eric Interface is used, all values for Eric Inclusion products are reset to zero. Fresh product pricing will be requested from Eric and will force a finance recalculation on successful retrieval of pricing.

Recalculation

The finance payment amount is re-calculated when a quote is copied to ensure the current finance payment method allocated to the financier is used.

If the quote contains no stored financier and is set to 'yes', the copied quote will use the current interest rate stored in gb_control to re-calculate the quote. Otherwise the copied quote will not run any interest rate calculations and will be an exact replica of the original quote.

If a financier is stored, the finance payment amount is re-calculated to make sure the current stored Suppliers / Financier "Finance Method" is used.

Preventing a Copy

If you want to prevent a quote from being copied, check on the Quotes / Contract "Lock Quote" check box. If checked, only 'admin' users can edit or copy the quote.

Validation Errors

You may be prevented from Copying a Quote if the Quote being copied has negative values in the Vehicle Pricing fields.

If you see the following Validation error, you may be copying a Quote modified by patchQuote API where there is a small rounding difference (typically 0.01 cent) in the calculation. Set Global Control 'validationtoleranceforfbtvalueyearly' value to 0.01 to allow a 0.01 cent tolerance for when copying a Quote. The current Global Control 'validationtoleranceforfbtvalueyearly' value is shown in the error alert.

Validation failed because of the following fatal error: FBT Payable amount out of sync with FBT Value! Current Value = 4343.99 Expected Value = 4343.97 Global Control validation_tolerance_for_fbt_value_yearly = 0.01


Quote Status

Main Page > Fleet / Administration / Quotes / Contract Screen / Quote Status

Status and Emailing Functionality

Note this feature needs to be activated per database if required. Depending on roles the system performs certain actions when a status is changed:

The default status for a new quote is "Requested". When creating a new quote at status "Requested" or saving an existing quote from another status to "Requested", an email is sent from the user creating the quote to a procurement role person using the field "Quote Request Email To" on the Contract Type Details screen to make them aware of the request.

A new quote can be saved with a status of "Draft" if it is still being worked on.

When the status of the quote is saved as "Open" from any other status, the system sends an email from the user saving the quote to the user who created the quote advising them it is now ready. The Account Manager is CC'd on this email.

The "User" role has restricted access to quote functionality but can draft, request, send, copy, print and accept quotes.

For example to print a quote for this role the quote must have a status of:

  • Open

  • Sent

  • Declined

  • Accepted


Quote Profiles

What is a Profile?

Catch-e uses profiles to calculate budget amounts in vehicle quotes.

We recommend that you develop your own desired profiles based on data that is recorded for each vehicle variant in the table qt_variants.

If you develop profile parameters for your business, Catch-e can allocate maintenance and service profiles to new variants for you each month (when new variants are imported from your vehicle data provider).

While it is possible to select maintenance or service profiles directly from the Quote / Lease tab without setting up qtvariantprofiles, it is much easier and faster to perform quotes if they are set-up.

Catch-e needs at least one maintenance and tyre profile to be set-up to enable budgets to be calculated.

Default Profiles can be overwritten with different values during the quote process or deactivated. When term or contract kilometres (not profile Kilometres) are adjusted on existing quotes, active profiles will re-calculate values, where relevant. Deactivated profiles will remain so.

Profile Example

You might use the following data to create profiles for maintenance:

  • Cylinders

  • Standard or Luxury (using a list price point, e.g. $45,000)

  • Drive type (2wd or 4wd)

  • Service interval (default to 6 months/10,000 kms if not supplied by RedBook)

From this, you might end up with the following 12 profiles:

  • 4 Cylinder, Luxury, 2WD

  • 4 Cylinder, Luxury, 4WD

  • 4 Cylinder, Standard, 2WD

  • 4 Cylinder, Standard, 4WD

  • 6 Cylinder, Luxury, 2WD

  • 6 Cylinder, Luxury, 4WD

  • 6 Cylinder, Standard, 2WD

  • 6 Cylinder, Standard, 4WD

  • 8 Cylinder, Luxury, 2WD

  • 8 Cylinder, Luxury, 4WD

  • 8 Cylinder, Standard, 2WD

  • 8 Cylinder, Standard, 4WD

You can use as many, or as few variables as you like to create profiles. It really depends on how much work you want to put into developing different profiles and how specific and detailed you want your profiles to be.

Profile Templates

Below are templates for Maintenance and Tyre profiles and sample data for one vehicle variant. These will give you a starting point for creating your own profiles.

Maintenance Profile Template: the cost of each service for each profile is stored.

Tyre Profile Template: the cost of a tyre for each profile is stored.

Variant Sample: one vehicle is shown to illustrate the variables that could be used to develop your profiles.


CopyQuote API

This API replicates the system function of copying a quote using the Copy button. Visit Quotes > Copy to see the business rules in detail.

Permissions

To run this API, the nominated 'web-services' role needs to be given permission. If you are not actively using the API, leave the permission off for better security.

Go to Roles / Apis and check on Quotes:Copy.

Note: This API is not configured for external use. Contact your Account Manager to discuss access to this API.

Authentication

Authenticate with the API before running this API.

HTTP Method

Use the HTTP Method 'POST' for consuming this web service.

URL Examples

https://api.catch-e.com/qt/quotes/153103/copy 

Parameters - Path

Key

Format

Notes

Default Value Mandatory

quote_id

string

Quote to copy.

Yes

Headers

Key

Format

Notes

Default Value Mandatory

Audit-User-Id

string

Pass a user_id you want to use in audit records. To use this key, the authenticated user's role must have the permission Audit:UserIdOverride.

No

Time-Zone

string

Used to set the date.

No

Body - Form-Data

Key

Format

Notes

Default Value Mandatory

quotestatusid

string

If this key is not passed, the quote status of copied quotes will be populated from default Requested status. Use this input field to pass a different quote status. Only records where status_flag is 'active' can be passed.

No

overridewarningsflag

string

Override warning validation. If not specified, defaults to 'no'

No

Response Details

Status

Response

Comments

201 Created

{ "quote_id": "100000"}

The request was successful. The created quote_id is returned.

401 Unauthorized

{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html", "title": "Unauthorized", "status": 401, "detail": "Unauthorized"}

You have not authenticated before running this API or The token_timeout of the current session has passed. You need to authenticate again.

403 Forbidden

{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html", "title": "Forbidden", "status": 403, "detail": "Forbidden"}

You do not have permissions for this request. Go to System Roles and enter 'web_services'. Navigate to the Roles / APIs tab to make sure the permission you need to run this API is checked.

422 Unprocessable Entity

{ "validationMessages": { "quote_id": { "effectiveDateExpired": "The Effective Date of this quote is more than 90 days ago. Quote budgets including Finance and Insurance may be incorrect. Are you sure?"}} }

The quote is stale. Set the overridewarningsflag KEY as 'yes' to copy the quote anyway. Do not copy this stale quote. Edit the original quote and update the Effective Date to trigger a recalculation. Then copy the quote.

422 Unprocessable Entity

{ "validationMessages": { "quote_status_id": { "noRecordFound": "no record matching the input was found"}} }

The record for the quotestatusid you have used does not exist or is inactive. Check your API details and update the quotestatusid KEY.


AcceptQuote API

This API replicates the system function of accepting a quote. Visit Quotes > Accept to see the business rules and update detail.

Permissions

To run this API, the nominated 'web-services' role needs to be given permission. If you are not actively using the API, leave the permission off for better security.

Go to Roles / Apis and check on Quote:Accept.

Authentication

Authenticate with the API before running this API.

HTTP Method

Use the HTTP Method 'POST' for consuming this web service.

URL Examples

https://api.catch-e.com/qt/quotes/153103/accept 

Path Variables

Key

Format

Notes

Mandatory

quote_id

string

Quote to accept.

Required

Headers

Key

Format

Notes

Mandatory

Audit-User-Id

string

User Id to use for audit purposes. This header requires the Audit:UserIdOverride permission to be associated with your role.

Optional

Body

JSON

Field Format

Notes

Mandatory

procurementcheckflag

string

Default value 'no'. Set to 'yes' to override the procurement check warnings and indicate acceptance of any applicable procurement fees.

Optional

timezone

string

Used to set the date.

Optional

Response Details

Status

Response

Comments

204 No Content

{ "contract_id": "102615"}

The request was successful. The created contract_id is returned.

401 Unauthorized

{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html", "title": "Unauthorized", "status": 401, "detail": "Unauthorized"}

You have not authenticated before running this API or The token_timeout of the current session has passed. You need to authenticate again.

403 Forbidden

{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html", "title": "Forbidden", "status": 403, "detail": "Forbidden"}

You do not have permissions for this request. Go to System Roles and enter 'web_services'. Navigate to the Roles / APIs tab to make sure the permission you need to run this API is checked.

422 Unprocessable Entity

"luxuryChargeEventNotFound": "Quote cannot be accepted until client confirms the 'Luxury Car Charge'. Create a Luxury Charge Event to record client confirmation and try again"

Missing luxuryChargeEvent

422 Unprocessable Entity

"quote_id": { "noRecordFound": "No record matching input was found"}

A pre-existing quote_id must be passed.

422 Unprocessable Entity

"quote_id": { "costCentreNotFound": "Cost Centre * does not exist"}

Invalid cost centre

422 Unprocessable Entity

"quote_id": { "divisionNotFound": "Division * does not exist"}

Invalid division

422 Unprocessable Entity

"quote_id": { "costCentreRequired": "Cost Centre Code is required"}

Missing cost centre

422 Unprocessable Entity

"procurement_check_flag": { "procurementFeeConfirmationRequired": "Confirm that 'A-Z Vehicles R Us' has agreed to pay a procurement fee of $500.00 on this vehicle"}

User need to confirm the procurement fee

422 Unprocessable Entity

"procurement_check_flag": { "isEmpty": "Value is required and can't be empty"}

User need to add the procurementcheckflag which is yes / no

422 Unprocessable Entity

"quote_id": { "quoteAcceptedMoreThanOnce": "You cannot accept this quote more than once"}

If the gbcontrol 'acceptquotemultipletimes_flag' is set to no, quote cannot be accept more than one time.

422 Unprocessable Entity

"quote_id": { "quoteInvalidStatus": "Quote must be in open, accepted or sent status to be accepted."}

Quote must be in open, accepted or sent status

422 Unprocessable Entity

"quote_id": { "preferredDealerNotSelected": "You must select a 'Preferred Dealer' before you can accept this quote"}

Missing 'preferred dealer' from the quote

422 Unprocessable Entity

"quote_id": { "applicationReferenceNotPopulated": "Application Reference must be populated!"}

Application Reference is mandatory.

500 Unexpected error

{ "status": 500, "title": "Unexpected error", "describedBy": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html", "detail": "JSON encoding error occurred: Malformed UTF-8 characters, possibly incorrectly encoded"}

If a query has encrypted fields which are not decrypted using aes_decrypt in JSON response, this error is thrown. Please decrypt the fields in query before adding the query in table.


Accept the Vehicle Quote

Qualifiers

  • An employee would like to package a novated lease or a managed associate lease

  • You have created a vehicle quote for this

  • An employee has signed off on the vehicle quote

  • You have created a car benefit item linked to a vehicle quote (optional step)

Steps

  1. Navigate to Quotes / Contract

  2. Click on the quote row to open it

  3. If the Accept button is not available:

    • Click on the contract type selector

    • Select Quote Status as 'Sent'

  4. Click on Accept

  5. Click on OK to create new Order from Quote when prompted

  6. Alert: Click 'OK' to create a new Order from Quote '123456'!

  7. Click OK

  8. You are now in Contracts / Order

Next Steps

Activate the vehicle contract


Web Quote

If you configure a web quote, system quotes will be generated on a page in your own website instead of creating a pdf. Using the email option will send a URL link to the driver, instead of an attached pdf.

Process

Look at a Quote

When the feature is in place, you can select 'URL' from the output options and "Print". A new browser window will launch and direct you to the completed URL statement. I.e. an online quote.

Example: https://www.clientname.com.au/LeasingQuote?Key=101234

Email a Quote

Select 'Email' from the output options and "Print". The email will contain the URL instead of an attached PDF.

Notes

  • The URL information will be returned regardless of quote status or expiry date.

  • Catch-e does not store any information regarding the content of quotes sent to recipients using this method. You will need to use audit history information to reconstruct the quote details.

Client Set-up

  • A web page needs to be developed within your website to accept the Catch-e URL. Your page will use the Get Quote web service to access the required quote placeholders.

  • The "URL" field in Contract Types / Details needs to be populated with the opening string of the address. Example: https://www.clientname.com.au/LeasingQuote?Key=

  • The 'URL' output option is only available on Quotes/Contract once this field is populated.

  • The quote email needs to be updated to refer to the URL, so that the email contains the embedded URL for that quote.