Maintaining Job Invoices in Registration
Overview
A job invoice is an invoice of fees payable for the job, that may be raised either in an individual invoice, or with other job invoices in a combined invoice.
Job Invoice Scope
A job invoice is scoped by its parent production, proposal or template job.
Process
Maintaining Job Invoices from the Job
Job invoices created for production or proposal jobs are known as production or proposal invoices, respectively.
Job invoices created for template jobs can be used to create production or proposal invoices when the template job is used to create a registered job.
A job can have multiple job invoices, and each job invoice can contain separate tests to invoice different components of the job. This allows fees to be split across more than one client.
A single job invoice can be drafted into an invoice, or job invoices from multiple jobs can be merged into a single draft invoice, where required. For example, when sample processing takes a number of days, and individual invoices are produced for each day of completed testing, but the client wants one invoice at the end of the month.
Upon creating a job invoice:
-
The invoice is given a unique temporary Invoice Number that is generated from an internal sequence. This temporary invoice number remains in place until the invoice is released. Refer to Conditions for Defaulting Job Invoice Status and Number.
-
The invoice is given an Invoice Status of Initial.
-
If a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Locale is copied from the source job invoice. Otherwise, a job invoice's Locale defaults to the client's Locale. When the new job invoice is displayed in the Invoicing tab, the default Locale is displayed in the grid by default and is persisted upon submit. Where no default Locale is available, such that, no Locale is displayed in the grid for the job invoice, then an error is raised upon submit.
-
For the web service, if Locale is provide for a new job invoice, then it is persisted into the created job invoice, and if Locale is not provided for a new job invoice, then the client's Locale is persisted into the new job invoice, and if the client does not have a Locale, then an error is raised: A job invoice requires a locale that is provided in the job invoice or inherited from the client.
Note: Mandatory fields on the back-end and web service are: Client Code and Locale, and Price Book if Quote Code is supplied.
-
The event is audited.
Upon updating a job invoice:
-
Any changes to a job invoice are reflected in the associated invoice. Also, where the invoice is for a single job invoice, or the job invoice is the primary job invoice of a merged invoice, then the changes are reflected in the header of the merged invoice.
-
The event is audited.
Note: A reprice of the invoice must be completed if any property that affects the line items is updated. Clicking the Generate Invoice button does not cause the invoice to be re-calculated, it merely creates the invoice documents.
A job invoice can only be deleted if the Invoice Status is Initial, Draft or Edited,, and it is not a primary job invoice in a merged invoice.
Upon deleting a job invoice:
-
The event is audited.
Note: Job invoices must have the same Client Code, Project Code, Contact Code, Locale, Currency and Ignore Tax setting to be merged onto one invoice.
Note: Job invoices whose Invoice Status is Credited, Cancelled or Rejected, and credit notes cannot be copied to a new job invoice.
Maintain job invoices in registration
The invoice associated with a job invoice can be opened for viewing, drafting, editing and releasing.
Open the invoice associated with a job invoice from registration
-
Refer to Invoicing.
Client Code
A client is mandatory for a job invoice. When a job invoice is created from scratch or copied form another job invoice, then the Client Code must be selected.
The Client Code cannot be updated.
Job Invoice Sequence
This field is not included by default on the job invoice grid, but may be added via screen personalisation. Job invoice sequence runs sequentially from 1 for each invoice added for a Client Code.
Locale
The job invoice's Locale is used to set the invoice's Locale, which is, in turn, used to extract the invoice line item notes in the required language. Locale is mandatory.
If a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Locale is copied from the source job invoice. Otherwise, a job invoice's Locale defaults to the client's Locale, but can be updated using the Change Locale service.
Where a client does not have a Locale, when an attempt is made to create a job for the client, given that a default job invoice would be created as well, then an error is raised: A job invoice requires a locale that is provided in the job invoice or inherited from the client.
Effectively, ALL clients used for job registration and job invoice creation MUST have a Locale. This also has implications when a new client is created (via integration or manual creation) that a Locale should be provided for job invoicing.
For a job invoice with an Invoice Status of Initial, the job invoice's Locale can be updated using the ChangeLocale service, available via the Change Locale row flow.
The ChangeLocale service displays the Change Locale dialog box that prompts the new Locale. Where the INVOICE_LOCALES application preference is defined and active, then the list of available locales are those in the application preference setting's comma-separated list intersected with active system languages, as configured in the DLAN table code in the MSETBL—Table Code Service application, otherwise the list of available locales is empty, that is, the locale cannot be changed. (The drop-down list content is in mixed case, for example, en_US, fr_FR, regardless what case the application preference setting uses, and is persisted in mixed case.)
Note: The ChangeLocale service changes the locale across all job invoices associated with the related invoice.
Currency
If a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Currency is copied from the source job invoice. Otherwise, a job invoice's Currency defaults to the client's Currency, but can be updated unless a Quote Code is selected for the job invoice, in which case, the job invoice's Currency is set from the quote and displayed as read-only.
When the invoice is created, if the invoice's Currency is the same as the laboratory's Currency, then its exchange rate to the laboratory's currency is set to 1, otherwise if an exchange rate can be found in the MSECUR—Currency application, then its exchange rate is set to the latest exchange rate between the currencies. If an exchange rate cannot be found, then the invoice cannot be created. Refer to Conditions for Defaulting Job Invoice Currency and Exchange Rate.
The Currency can be updated only if the job invoice's Invoice Status is Initial. However, where a the job invoice has a Quote Code selected, then the Currency is displayed as read-only from the quote.
Price Book Code
When an invoice is raised on a job invoice, then the Price Book Code is used to determine the pricing of items that are not covered by quote pricing. A Price Book Code can be selected from active price books that match the job's Date Received and job invoice's Currency, in the price catalogues in the job invoice's Client Price Catalogue Group.
If a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Price Book Code is copied from the source job invoice. Otherwise, a job invoice's Price Book Code can be selected. However, the Price Book Code can be updated only if the job invoice's Invoice Status is Initial or Draft.
Note: If there is no Currency specified on the job invoice, then a Price Book Code cannot be selected.
If the Price Book Code is left empty, it is determined upon submit. If it is invalid for the invoice client, an error is raised on submit. Refer to Conditions for Defaulting Job Invoice Price Book.
The Update Latest Pricebook column is only relevant if the job's Job Type is Template or Schedule. This column is not displayed on the grid by default, but can be added via showing individual grid items. When a template or schedule job is copied to create a production, proposal or draft job, then the any price books in the copied job invoices are determined as follows:
-
If the price book is not expired, or the price book is expired and the Update Latest Pricebook is cleared on the source job invoice, then the source price book is applied to the destination job invoice. If the price book is expired and the Update Latest Pricebook is selected on the source job invoice, then the destination job invoice's price book is determined regular rules to apply a price book, and if no such price book is found, then none is applied to the destination job invoice.
Project Code
If a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Project Code is copied from the source job invoice. Otherwise a job invoice's Project Code defaults to the client's Primary Project Code where it is active (note that no check is done on the project's open and close dates). However, the Project Code can be updated only if the job invoice's Invoice Status is Initial or Draft.
If a Quote Code is selected, then the job invoice's Project Code is updated to match the client quote's Project Code.
Contact Code
If a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Contact Code is copied from the source job invoice. Otherwise, if the job invoice has a Project Code, then a job invoice's Contact Code defaults to the project's Primary Contact Code where it is active, but if the job invoice does not have a Project Code, then a job invoice's Contact Code defaults to the client's Primary Contact Code where it is active. However, the Contact Code can be updated only if the job invoice's Invoice Status is Initial or Draft.
If a Contact Code is selected, then the job invoice's Contact Code is updated to match the client quote's Contact Code.
Quote Code
When an invoice is raised on a job invoice that has a Quote Code and the invoice client quote's Start Date and End Date range match the job's Received Date, then any schemes and/or analytes covered by the quote have their pricing determined via the quote, and any schemes and analytes not covered by the quote are affected by the quote's Generic Discount. If it happens that the client quote's Start Date and End Date range does not match the job's Received Date, then the quote is not applied.
If a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Quote Code is copied from the source job invoice. Otherwise, a job invoice's Quote Code can be selected. However, the Quote Code can be updated only if the job invoice's Invoice Status is Initial or Draft.
Note: If there is no Currency or Price Book Code specified on the job invoice, then a Quote Code cannot be selected.
A Quote Code can be selected from active quotes for the client where the quote's Start Date and End Date range matches the job's Date Received, and the quote's Client Code + Project Code + Contact Code match the job invoice's Client Code + Project Code + Contact Code, that is, all three must match. The quote must have the same Currency as the job invoice.
If a quote does not link to a project or contact, then it can be used on a job invoice that has any or no project, or any or no contact. However:
- Once a quote is linked to a project but not to any contact then only job invoices with that project and no contact can use the quote.
- Once a quote is linked to a contact but no to any project then only job invoices with that contact and no project can use the quote.
- Once a quote is linked to a project and linked to a contact then only job invoices with that project and that contact can use the quote.
The following table is an example of these client, project and contact usage rules for quotes:
| Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 | Q8 | Q9 | |
|---|---|---|---|---|---|---|---|---|---|
|
Client |
A |
A |
A |
A |
A |
A |
A |
A |
A |
|
Project |
-- |
1 |
2 |
-- |
-- |
1 |
1 |
2 |
2 |
|
Contact |
-- |
-- |
-- |
a |
b |
-- |
b |
a |
b |
|
Job1 |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
|
Job1 |
Y |
Y |
N |
N |
N |
N |
N |
N |
N |
|
Job1 |
Y |
N |
N |
Y |
N |
N |
N |
N |
N |
|
Job1 |
Y |
N |
N |
N |
N |
Y |
N |
N |
N |
If a Project Code is reselected but the Project Code is not valid for the job invoice's Quote Code, then the Quote Code is cleared.
Description
Where a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Description is copied from the source job invoice. However, the Description can be updated only if the job invoice's Invoice Status is Initial or Draft.
Discount
Miscellaneous line items appended by the user are not affected by invoice Discount. Only the line items that are generated by pricing and displayed in the Line Items tab (under a job invoice for a grouped-by-job merged invoice, or at invoice level for a single or combined-by-job merged invoice) are affected by the invoice's Discount. Where the Discount is updated on the primary job invoice, then after a reprice, a discount line item appears at the end of all line items prior to any tax.
Where a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Discount is copied from the source job invoice. Otherwise, if the job invoice has a Project Code, then a job invoice's Discount defaults to the project's Discount, but if the job invoice does not have a Project Code, then a job invoice's Discount defaults to the client's Discount. However, the Discount can be updated only if the job invoice's Invoice Status is Initial or Draft.
Generic Discount
Where a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Generic Discount is copied from the source job invoice. Otherwise, a job invoice's Generic Discount can be entered. However, the Generic Discount can be updated only if the job invoice's Invoice Status is Initial or Draft.
If a job invoice does not have a Quote Code selected, then a Generic Discount can be entered. However, if the job invoice links to a quote, then the job invoice's Generic Discount is cleared, and the column shows the quote's Generic Discount, since any generic discount is set from the quote for any schemes and analytes not covered by the quote.
Split Code
Split codes allow invoices to be broken up by partitioning between different clients, projects or contacts. Invoice partitioning is managed by complementary split codes which apply a percentage reduction to all priced items, whether from price book, quote or package pricing.
When an invoice is raised on a job invoice that has a split code, any line items generated for the job invoice, either from quote or price book pricing, have the percentage split applied to the item is priced for an invoice raised for the job invoice, the percentage split is applied to the Item Price, and consequently to the Total. A split is not applied to surcharges, rebates, miscellaneous line items, taxes nor discounts.
Where a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the Split Code is copied from the source job invoice. Otherwise, a job invoice's Split Code can be entered. However, the Split Code can be updated only if the job invoice's Invoice Status is Initial or Draft.
A Split Code can be selected from the active price adjustment in scope that have Price Adjustment Type of Split.
Samples and Tests
Where a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the samples and tests are copied from the source job invoice and the destination job invoice sample's Use Package Price defaults to the source job invoice sample's Use Package Price. Otherwise, a job invoice's samples and tests must be appended from job. However, the samples and tests can be updated only if the job invoice's Invoice Status is Initial or Draft.
Rebates, Surcharges and Taxes on a Job Invoice
If a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the rebates and surcharges are copied from the source job invoice. Otherwise, a job invoice's rebates and surcharges defaults to the client's rebates and surcharges, respectively. However, the rebates and surcharges can be updated only if the job invoice's Invoice Status is Initial or Draft.
When a change is made to the rebates or surcharges for a job invoice, and the job invoice is in a:
- Single-job or combined-by-job merged invoice, then the changes are reflected in the rebates on the invoice.
- Grouped-by-job merged invoice, then the changes are reflected in the job invoice rebates on the invoice.
For a single-job invoice, rebates and surcharges are applied on the line items raised by the job invoice.
For a grouped-by-job merged invoice, rebates and surcharges are applied on the line items raised by the associated job invoice.
For a combined-by-job merged invoice, rebates and surcharges are applied on the line items raised by the combined job invoices.
Miscellaneous line items appended by the user are not affected by rebates or surcharges. Only the line items that are generated by pricing and displayed in the Line Items tab (under a job invoice for a grouped-by-job invoice, or at invoice level for a single or combined-by-job invoice) are affected by surcharge and rebate adjustments.
Taxes
If a job invoice is copied from another job invoice and the destination Client Code is the same as the source Client Code, then the taxes are copied from the source job invoice. Otherwise, a job invoice's taxes defaults to the client's taxes. However, the taxes can be updated only if the job invoice's Invoice Status is Initial or Draft.
When a change is made to the taxes for a job invoice, and the job invoice is in a single-job or merged invoice, then the changes are reflected in the taxes on the invoice.
For any invoice where the invoice is flagged to have taxes applied, then the invoice's taxes are applied on all line items raised for the invoice.
Configuring Job Invoices Defaults and Automatic Creation
- Conditions for Auto-creation of a Job Invoice
- Conditions for Defaulting Job Invoice Client, Project and Contact
- Conditions for Defaulting Job Invoice Status and Number
- Conditions for Defaulting Job Invoice Currency and Exchange Rate
- Conditions for Defaulting Job Invoice Surcharges and Rebates
Restrictions on Updating Job Invoice Details
During registration, the details that may be updated on a job invoice, and the available flows, are dependent upon the job's Workflow Status and the related invoice's Invoice Status.
|
Job's Workflow Status |
Registered Can't release invoice as no samples and tests are on the invoice and job not completed |
Not Started
Can't release invoice as job not completed |
Completed | Finalised | Cancelled | |||
|
Invoice's Invoice Status |
Initial |
Draft |
Initial |
Edited |
Released |
Cancelled |
<any> |
<any> |
|
Client Code |
N |
N |
N |
N |
N |
N |
N |
N |
|
Project Code
Surcharges
Samples and Tests Locked for Update |
Y |
Y |
Y |
Y |
N |
N |
N |
N |
|
Currency |
Y |
N |
Y |
N |
N |
N |
N |
N |
|
Save As |
Y |
Y |
Y |
Y |
Y |
Y |
Not available |
Not available |
|
View Invoices |
Y |
Y |
Y |
Y |
Y |
Y |
Not available |
Y |
