Introduction
Invoice reference definitions can be added via the ‘References’ screen:
References List
As with all references in printIQ, ‘Invoice’ references can be defined as:
Text (free type) – Alpha numeric strings can be entered into the reference
Number (free type) – Only numeric values can be entered
List – Select from a pre-defined list of values for the reference
Date – A date selector is presented
Lookup – Valid types – GL Code & Billing Subsidiaries
Text with Validation types - See KB Article Text with Validation Reference field (See below)
Reference Definition Flag
Flags on the Reference definition:
Read Only – Visible where the reference is used but is not editable.
Required – Sets the reference as a mandatory field which must be populated.
Active – Controls whether the reference is available or not.
Show on Screens – Determines if this is visible in the application
Note. If a reference is set as Required and Show on Screens is disabled, the ‘Required’ functionality is bypassed.
Filtering Reference Application:
Allows greater control of when a reference is shown.
Invoice references can be created that are activated only for specific Customers or members of Customer Groups.
Filter Tree Nodes do not integrate with Invoice References. If a filter tree node is set, the reference will not appear on the invoice at all.
Invoice Reference values can be configured to be automatically copied from ‘Customer’ type references:
When generating an invoice, the reference fields will show at the bottom of the screen.
Unpopulated references flagged as required will be highlighted in red as shown below
If all invoice references are populated, the Invoice References will be collapsed:
Invoice PDF
Invoice References can be added as required to the Invoice document markup template.
QBO
The invoice references are held on the Invoice Header Details (not at the line level)
The value of any or all invoice references can be configured to be pushed to QBO when the invoice is exported.
This requires a minor dev setup task to configure which invoice references are to be included in the invoice export [tblQBO_ExtraFields].
When consolidating invoices, the references will be taken from the 1st invoice that a particular reference has a value on.
Reference 1 is a required reference, copied from a Customer Reference, so they will all be the same.
In the below example INV004 has references 1, and 2 only. The consolidation process will use all references it finds from this invoice.
INV007 has references 1, 2 and 3.
As the consolidated invoice has references 1 and 2 already from the 1st invoice, only reference 3 is copied from this invoice.
INV126 has references 1, 3 and 4.
This is the first Invoice Reference 4 encountered, so it is added as the same reference in the consolidated invoice.
INV0138 has all 4 invoice references.
However, by the time the consolidation process reached this invoice, all references on the consolidated invoice have been populated. No references from this invoice are used on the consolidated invoice.
Text with Validation Reference Field
Please note, this validation might not work for you,
As it was developed to call a 3rd party validation service from printIQ. You will require a custom development to make this work.
Please contact support team for implementation.
A new Reference field called “Text with Validation” has been added to printIQ to validate the text entered in the reference field text boxes.
This field, when configured, can be used on all reference types
Configuration:
- To Access this reference field, navigate to Admin => References
- On the References page, select the reference type you would like to display this field on eg: quote/customer/Job etc.
- Select an available Reference field
- Click on the magnifier glass icon, to open the Reference field modal window
- Change the type to “Text with Validation”
- Specify the default name which should be shown as the label of the textbox on the page.
- Set it to “Active”
- Configure the Validation URL.
- The format of this URL requires the placeholder {value}. eg: https://www.abc.com/{value}. This {value} will be replaced with the text entered in the reference textbox.
- Configure the authorization to the validation endpoint
- Specify the “Authorization Header Name” – Currently, we support Basic mode
- Specify the “Authorization Header Value” – Base64 encoded version of the username and password
- Specify any other “Custom Headers” required – Any additional headers to be provided
- Click “Save”
Internal Note:
Once the customer provides the Authorization username and password, we need to encode the credentials using Base64 encoding.
There are number of free sites which can generate an encoded version of credentials.
You need to paste the encoded version of the username and password into the “Header Value”.
How does this actually work?
A new webservice called “ExternalValidation.asmx” was developed to call a 3rd party validation service from PrintIQ.
As shown in the above workflow diagram, after the user enters the text in the validation field, the text is sent to the ExternalValidation.asmx web service in printIQ.
This service then builds web request by replacing the {value} with the text entered along with the authorization header name, value and custom headers (if any).
Once it has built the web request, it sends it to the external validation service.
Once the validation is complete, then the webservice would get the response from the external validation service which then
has a set of rules which it runs through to return the response back to the webpage which were the user has entered the text.
The response contains either the text is valid or not.