271365
271365 PA-7XQD87 Internal Charging from Cross Dock
FUNCTIONAL OVERVIEW
Client Requirement
Additional amendments to existing Cross-Dock functionality Finance application in line with current development Allan Butterworth/St Albans/UK/Exel.
1:For the initiating Site treat 'Applied by Cross-Dock' as a single transaction. ie apply all subsequent costs (Trunk or Radial) relating to the cross-dock action to the initiating site. If the site Cross-docked to site initiates another 'Apply by Cross Dock' the costs revert to the second site, not the first. Each Cross Dock is a separate transaction whether multiple or single.
2: For a multiple order cross-docked trip, only account for one Trunk Cost ie Trunk charge is trip related not order.
Solution
Cross dock Changes
Currently all cross dock charges are paid by the starting location of the order, regardless of how many cross docks occur. This results in Trunk and Radial contracts between two RDC’s having to cover standard journeys between other cross dock locations which the user may find impossible to set up.
The solution is to change the way a cross dock is applied and the parties which are charged.
When RDC EXELBAWT cross docks an order to another RDC EXELBELL, they will pay any TRUNK and RADIAL charges at the point the order is cross docked. The radial charge will be generated even though the radial trip has not yet been planned.
EXELBAWT has paid for EXELBELL to deliver the order on their behalf and should have no further part in the journey or charges of the order. If EXELBELL chose to cross dock the order again, this is of no concern to EXELBAWT.
Every Cross dock will create a trunk and radial payment (where a trunk payment is applicable).
For Trunk payments the debit and credit accounts will be based on the GROUP NAME of the loading stop and the GROUP NAME of the hub location (determined by the carrier). If the GROUP NAMES are the same, no Trunk charge will be applicable.
For Radial payments the debit and credit accounts will be based on the GROUP NAME of the LOADING stop and the GROUP NAME of the unloading stop.
Currently a procedure RATE.CALC_ORDER_CHARGES uses the load and unload locations on the trip compared to the to and from locations on the order to determine if TRUNK OR RADIAL charges should be applied.
We would take 2 copies of this procedure and rename them CALC_TRUNK_ORDER_CHARGES and CALC_RADIAL_ORDER_CHARGES. Identifying a cross dock order (by checking that the load and unload locations on the stops do not match the to and from locations of the order) will trigger both procedures to be called.
The table below details the information to be passed to the CONTRACTS module for calculating the TRUNK and RADIAL charges.
Charging Multiple Trunk Orders on one trip
When more than one order is cross docked on a trip making the same trunk journey, the trunk charge should only be calculated once. This is based on TRUNK charges being calculated using a FIXED COST contract.
If the trunk contract dictates that the journey from A to B should incur a trunk charge of £1000, and 5 orders are making the journey from A to B, currently each order would be charged £1000, resulting in a total charge of £5000.
In this scenario, while 5 orders are being cross docked, the journey is only being undertaken once, so a charge of £1000 should be applied and be split equally amongst the 5 orders (£200 each).
As each order is cross docked, the payment will be created at order level for £1000. At the end of the cross dock, functionality will be added to check if any other orders on the trip are making the same journey. A count of orders will be calculated and this will be used to amend the payment amount on all the trunk payment records.
This will ensure that the full trunk amount is charged only once and split between the relevant orders.
This will not work if the trunk amounts are different for each order, as an average charge would be calculated and split between the orders.
Scope
This change will be applied to system version 10.5.0 on CONTST and once approved CONPRD.
FUNCTIONAL DESCRIPTION
Internal charges are calculated using the RATE.CALC_ORDER_CHARGES function. This function is run when the trip status changes.
Currently, this function compares the load and unload locations for each order on the trip with the to and from locations on the order to determine
- Are internal Charges required?
- Is this a trunk charge or Radial charge?
The function will be amended to identify trunk trips only. Once a trunk trip has been identified, the required trunk parameters will be derived and passed to the contract module to identify a trunk contract and return the charge.
At the end of this procedure , once the payment record has been successfully created a new function RATE.CALC_RADIAL_ORDER_CHARGES will be called.
The new function will be a copy of RATE.CALC_ORDER_CHARGES. For each trunk trip identified in RATE.CALC_ORDER_CHARGE, a radial payment will be created.
The parameters for a radial payment will be derived and passed to the contracts module to identify a relevant Radial contract.
Radial journeys will no longer trigger any payment records, as the radial payment will be created as part of the trunk trip.
Once the payment records have been created, the bill of lading will be passed as a parameter to a new procedure. The new procedure will count the number of order charge payments created for each leg of a trip. Radial charges will have a different to and from location to the trunk charges, so only multiple Trunk trips will be identified.
If more than 1 payment has been created for a specific journey, this will identify multiple orders on one trunk trip. The count will be stored and used to divide the payment amount for each of the multiple payment records.
Example :
3 ORDER CHARGES records created for the journey EXLEBELL to EXELBAWT , each £90 The three records are identified using the payment ref and the amount is divided by the count, this results in 3 payment records of £30.
This example is based on the trunk trip EXELBELL to EXELBAWT incurring a fixed cost for each order assigned to the trip.
All of the new code will be triggered when the payment code is currently triggered – trip status change to ACCEPTED etc.
The type of charge will always be RADIAL, only RADIAL contracts are required. To allow users to see the final destination of orders on ‘trunk’ trip, the to_loc will be added to the order details on the trip screen as displayed below.
REFERENCES
EST-271365 271365 PA-7XQD87 Internal Charging from Cross dock v1.0 |
DOCUMENT HISTORY
Initial version |
AUTHORISED BY
Matt Crisford | Development Manager | |
Peter Greer | TMSCC MTS Product Manager |
Copyright OBS Logistics © 2010
The information contained herein is the property of OBS Logistics and is supplied without liability for errors or omissions. No part may be reproduced or used except as authorised by contract or other written permission. The copyright and foregoing restriction on reproduction and use extend to all media in which the information may be embodied