Adjustments & Pay Runs: Payroll Advice

Adjustment approvals, pay run management, and billing

Payroll Advice

Payroll Advice forms are generated from the Contracts / Finance screen.

The standard (and recommended) quote library used to generate placeholders for the Payroll Advice template is called 'quotes'.

If you are using this 'quotes' library, the Payroll Advice sample provides a working model of this template using recommended placeholders.

If the older library called "quotespackagingall" is used, many of the placeholders are similar, but template changes would require investigation and testing.

Visit Quote Template Placeholders for more details and settings for both of these libraries.

Note: There is a derived field library called payroll_advice. That can be used in Scheduler Queries and Screen Reports. Those calculations are not the same.

Clients / MLA

  • {channel} - Channel - use this to identify a channel and insert a different logo into the form.

Quotes / Vehicle

  • {fbttreatmenttype} - Quotes / Vehicle "FBT Treatment Type". This quote field is also used in calculations of a number of placeholders such as {pretaxdeductonperpaycycle} and {fbtpayableperpay_cycle}. Quote and Contract "FBT Treatment Type" should be the same for consistent results in your documents.

Contracts / Billing

  • {contractperiodicinterval} - Contracts / Billing "Periodic Interval"

  • {billing_periods} - Contracts / Billing "Total Billings"

  • {billingdatefirst} - Contracts / Lease - the billing date of the first lease period. This is also the value of "Start Periodic" in Contracts / Billing

  • {budgetlastgross} - Contracts / Billing tab - Final "Total". Contracts / Lease tab - Final Period GST inclusive amount.

Contracts / Lease

  • {billingdatefirst} - Contracts / Lease - the billing date of the first lease period. This is also the value of "Start Periodic" in Contracts / Billing

  • {billingdatelast} - Contracts / Lease - the billing date of the last lease period

Contracts / FBT

  • {fbtreducedvalue} - Contracts / FBT "FBT Reduced Value"

  • {fbtreducedvalue_date} - Contracts / FBT "FBT Reduced Value Date"

Set-Up

Setup / Reference Data - gb_controls

Module qt

Useful Queries

select * from gb_files WHERE name LIKE 'payroll_advice%' 

Budget Transfers

Occasionally you may want to transfer a budget surplus/shortfall from one contract to another. An example of this is when a Driver leaves an Employer and the original contract needs to be suspended and copied to create a new lease.

When an existing lease is transferred to a new contract record, the FBT details also need to be updated.

Old Contract (being suspended)

  1. Make sure all necessary client invoicing and contract expenses have been created and entered

  2. Print the final Drivers Report

  3. Create a new approval. Select a supplier that is for non-accounting transactions.

    • Date the approval as the suspend date (so that the transaction is shown in any re-printed Driver Report)

    • Use the Life to Date Variance values to enter approval rows that will eliminate the variance value. E.g. if the Budget Variance for INS is negative, create a negative expense row for the same value.

  4. Check and Post the Approval

  5. When the Driver Report is reprinted, it should show a Budget / Actual Variance of 0.

  6. Obtain a closing Odometer Reading from the Driver. You can do this by either sending the Driver an FBTD event request (where they will be asked to enter an Odo Reading online), or by recording an "Odo" transaction in the Maintenance screen from some other driver documentation.

Create a New Contract

  1. Create a new Client record if required.

  2. Create a new Driver record attached to the new Client.

  3. Create a new Contract linked to the new Client & Driver.

New Contract

  1. Create a new approval and use the same supplier as above

  2. Date the approval as the start date of the new contract

  3. Enter approval rows that are the opposite of the approval created for the old contract. I.e. If the total of that approval (on old contract) is ($2,700.00), then this approval should be $2,700.00.

  4. Check and Post the Approval

  5. When the Driver Report is printed, it should show a Budget / Actual Variance that reflect what the old contract originally had.

    • If there is no break in employment, enter the closing Odometer reading and Suspend Date from the old contract into Contracts/Vehicle "Start Odometer" and "Start Odometer Date" fields respectively.

    • If there was a break in employment, and the Driver has made Finance Payments in the interim, new values for "Start Odometer" and "Start Odometer Date" will need to be obtained from the Driver and entered into the new Contract.


Budget Variations

Budget Variations are required if you are performing a lease extension or you need to change the budgets on a contract because of changes in the mileage being done or the expected costs change.

If you are extending a lease, e.g. refinancing at the end of the original lease, we recommend you update the existing contract rather than starting a new contract in order to keep a single FBT reporting process.

  1. Create a document that shows a comparison of the vehicle budget changes that the driver and client can sign off on.

    • If you use the Quote module, you could copy the quote that was used to create the contract and make adjustments to reflect the revised situation to help you with your workings.

    • Go to Contracts / Order. This contract originated from a quote if a "Quote Number" exists. Click on the quote number and you will be navigated to the Quotes / Contract screen of the originating quote. "Copy" this quote and adjust as desired.

    • In all cases, an excel template with the before/after budget scenarios may make it easier to communicate the changes to your Client and Driver.

  2. When your Client and Driver has signed off your change document, adjust the budget records in the Contracts / Billing and Contracts / Lease screens from the agreed Period. The values are copied forward to all future budgets. We recommend that you print or export the Lease Schedule Report before you make any billing or lease changes on existing contracts.

  3. If you are extending the term of the contract, you will need to update the Contracts/Finance details to reflect the new payment arrangement and begin a new Finance Payment schedule.

  4. To close the loop, you could also create an event to log these changes such as BUDVAR (Budget Variation) or BUDADJ (Budget Adjustment). To find out how to create a new type of Event, go to the Posting Classes page.

  5. Use this event to note the change and attach a scanned copy of the signed form.


Credit budget entry next pay run

Conditions

  • Employee is still employed

  • Employer is happy to process negative amounts.

Steps

  • Go to Contracts / Lease and create a credit budget entry

  • The entry will be added to the next Pay Run


Setup

The setup steps for the Packaging / Pay Runs page and processes are shown below.

Catch-e Support or your Account Manager will make the changes for you.

Screen Reports

Review the standard reports. These are screen reports and can be customised.

Check and add the records required in table to run the following reports.

There are more details in the Pay Run Setup page.

  • Pay Runs / Pay Run - Pay Run Detail

  • Pay Runs / Pay Run - Pay Run Summary


Pay Run Email

Pay run report email placeholders

Pay Run Invoice

Use the query below to review the and update the Pay Run Invoice Template settings for you. For more information about invoice templates, visit the Billing Templates page.

Pay Run Reports

Decide which reports you want to make available to be emailed to clients when a pay run has been posted.

You can configure the invoice and reports available on the screen for emailing.

There are number of placeholders that you can use in Pay Run Report email subject and message body.

Each client's report choices are stored in the Clients / Packaging Defaults "Pay Run Reports" field.

Each client's recipient(s) of these emails can be set up in Clients / Contact Details in the "Contact Type Allocations" field. Multiple recipients can be added if needed.

Channels

For clients using multiple channels, create template channel records for the invoice and the reports.

  • 'pdfpayrun' - determines the construction of the invoice and its channel branding/logo. Will use a channel version if present.

  • 'pdfpayrun_reports' - holds the email content for this email. Will use a channel version if present.

Follow this link to review channel set-up details: Channels Setup.

Export Settings

Setup / Reference Data - gb_controls

Module sp

gl


Pay Run Report Emails

Templates

select ch.channel_code, t.template_id, t.channel_id, t.name, t.sub_name, t.mail_subject, t.mail_sender_address from gb_templates as t left join fm_channels as ch on ch.channel_id = t.channel_id where t.name IN ('pdf_pay_run_reports','pdf_pay_run'); 

Pay Run Invoice Placeholders

See also the page Invoice System Placeholders.

Show placeholders

select tp.* from gb_template_placeholders as tp inner join gb_templates as t on t.template_id = tp.template_id and t.name = 'pdf_pay_run' where tp.placeholder_name IN ('header_5_3_text','header_7_2_text','header_8_2_text','header_7_4_text','body_1_2_text'); 

Set placeholders

START TRANSACTION; -- Set placeholders select @header_5_3_text_id := tp.template_placeholder_id from gb_template_placeholders as tp inner join gb_templates as t on t.template_id = tp.template_id and t.name = 'pdf_pay_run' where tp.placeholder_name = 'header_5_3_text'; -- Change from 'Lease Charges #period_ended_date#' select @header_7_2_text_id := tp.template_placeholder_id from gb_template_placeholders as tp inner join gb_templates as t on t.template_id = tp.template_id and t.name = 'pdf_pay_run' where tp.placeholder_name = 'header_7_2_text'; -- Change from 'Rego' select @header_8_2_text_id := tp.template_placeholder_id from gb_template_placeholders as tp inner join gb_templates as t on t.template_id = tp.template_id and t.name = 'pdf_pay_run' where tp.placeholder_name = 'header_8_2_text'; -- Change from blank select @header_7_4_text_id := tp.template_placeholder_id from gb_template_placeholders as tp inner join gb_templates as t on t.template_id = tp.template_id and t.name = 'pdf_pay_run' where tp.placeholder_name = 'header_7_4_text'; -- Change from 'Rego' select @body_1_2_text_id := tp.template_placeholder_id from gb_template_placeholders as tp inner join gb_templates as t on t.template_id = tp.template_id and t.name = 'pdf_pay_run' where tp.placeholder_name = 'body_1_2_text'; -- Change from '#reg_no#' -- Update Pay Run Invoice update gb_template_placeholders set placeholder_value = 'Pay Run for #period_ended_date#' where template_placeholder_id = @header_5_3_text_id; -- Change from 'Lease Charges #period_ended_date#' update gb_template_placeholders set placeholder_value = 'Employee' where template_placeholder_id = @header_7_2_text_id; -- Change from 'Rego' update gb_template_placeholders set placeholder_value = 'No' where template_placeholder_id = @header_8_2_text_id; -- Change from blank update gb_template_placeholders set placeholder_value = 'Employee' where template_placeholder_id = @header_7_4_text_id; -- Change from 'Driver' update gb_template_placeholders set placeholder_value = '#employee_no#' where template_placeholder_id = @body_1_2_text_id; -- Change from '#reg_no#' COMMIT; 

Screen Reports

Screen Reports - Pay Runs

SELECT * FROM gb_report_queries WHERE sub_page IN ('pay_runs') ORDER BY sub_page, name; 

Pay Run Report Settings

Data checks

select * from gb_report_groups; -- Should be no records select * from gb_templates where name = 'pdf_pay_run_reports'; -- 1 record select * from gb_report_queries as rq where rq.sub_page = 'pay_runs' and rq.status_flag = 'active'; -- Available reports select * from gb_report_queries where name = 'pay_run_summary'; -- Default report select * from gb_report_queries where name = 'pay_run_detail'; -- Default report select * from gb_file_extensions where extension IN ('pdf','xlsx'); 

Script to add reports

START TRANSACTION; -- Create group records select @file_extension_id := file_extension_id from gb_file_extensions where extension IN ('pdf'); INSERT INTO gb_report_groups (report_group_id, report_type, name, file_extension_id, report_query_id, invoice_type, default_flag, status_flag, sort_order) VALUES (uuid_short, 'pay-run-reports', 'pay_run_invoice', @file_extension_id, NULL, 'pay-run', 'yes', 'active', '1'); select @file_extension_id := file_extension_id from gb_file_extensions where extension IN ('xlsx'); select @report_group_name := name from gb_report_queries where name = 'pay_run_summary'; select @report_query_id := report_query_id from gb_report_queries where name = 'pay_run_summary'; INSERT INTO gb_report_groups (report_group_id, report_type, name, file_extension_id, report_query_id, invoice_type, default_flag, status_flag, sort_order, output_filename_alias) VALUES (uuid_short, 'pay-run-reports', @report_group_name, @file_extension_id, @report_query_id, NULL, 'yes', 'active', '2', '{client_code}_{pay_cycle}_{invoice_date}_summary'); select @report_group_name := name from gb_report_queries where name = 'pay_run_detail'; select @report_query_id := report_query_id from gb_report_queries where name = 'pay_run_detail'; INSERT INTO gb_report_groups (report_group_id, report_type, name, file_extension_id, report_query_id, invoice_type, default_flag, status_flag, sort_order, output_filename_alias) VALUES (uuid_short, 'pay-run-reports', @report_group_name, @file_extension_id, @report_query_id, NULL, 'no', 'active', '3', '{client_code}_{pay_cycle}_{invoice_date}_detail'); -- Enable Clients / Contact Details - Contact Type Allocations 'Pay Run Reports' for emailing update fm_contact_types set status_flag = 'active' where report_type = 'pay-run-reports'; COMMIT; 

Pay Run Report File Names

Data checks

select * from gb_report_groups; 

Update file names

start transaction; update gb_report_groups set output_filename_alias = '{client_code}_{pay_cycle}_{invoice_date}_summary' where name = 'pay_run_summary'; update gb_report_groups set output_filename_alias = '{client_code}_{pay_cycle}_{invoice_date}_detail' where name = 'pay_run_detail'; commit; 

Receipts Setup

Set-up

Visit the Receipts Setup page for general set-up steps.

Details and specific context for Salary Packaging are shown below.

Pay run invoices must be receipted before cost records (claims and payments) can be created and posted.

Auto Post

Schedule Auto Post jobs to check and post existing payment and claim records.

  • When "Disbursement Type" = 'Claim' - autoPostClaims

  • When "Disbursement Type" = 'Periodic' - autoPostPayments

  • When "Disbursement Type" = 'Recurring' - autoBuildClaims (once nightly only)

Auto Build Claims

For items with a "Disbursement Type" of 'Recurring', claims are created and posted by running the autoBuildClaims API.

Supplementary swagger documentation for the autoBuildClaims API is available here: https://api.catch-e.com/docs/?urls.primaryName=Event+Jobs#/Employee%20%2F%20Claims/autoBuildClaims

This API is only available for use within the Catch-e system.

This can be run from a scheduler job by setting up an event trigger.

We recommend using both.

Created claims can be reviewed in the Contracts / Maintenance tab or in your process reports.

Note: If the posted receipt batch is unposted or the Client is removed for the receipt batch, the Claim(s) generated when it was posted will not be unposted or deleted. These will need to reviewed and actioned accordingly.

Scheduler Job

Schedule an autoBuildClaims job to run each weekday morning. This will:

  • Cover any unexpected situations

  • Provide you with an exceptions report

Event

An event provides more efficient and targeted processing.

When a receipt batch is posted, the autoBuildClaims process will run, but only for clients with entries in the posted receipt batch. Audit records for claims created by this process will show the the user that posted the receipt batch as the creator.

Events will be set-up for you by Catch-e staff. A "Class" will need to be nominated for this process.

Below is a sample set-up for this event subscription.

Field Name

Content

Comment

apieventsubscription_id

UUID

callback_url

https://api.test.catch-e.com/event/job/sp/approvals/auto-build-claims

Update accordingly for the targeted database i.e.: test, staging, support

callback_parameters

{"postingclassid":"100125"}

Use the postingclassid allocated to your 'Recurring' Posting Class.

description

Run autoBuildClaims when a receipt batch is posted

This can be changed

topic_arn

arn:aws:sns:ap-southeast-2:739047929734:catch-e-api-test-events

Update accordingly for the targeted database i.e.: test, staging, support

filter_policy

{"eventType":["sl.receipts.batch.posted"]}

created

system allocated timestamp


Useful Queries

Call monitoring

select * from gb_api_event_subscription_callback_log;