RSS Feed c9 logo Australia's best motorcycle shop retail software
Release 4.787 July 11, 2019 barney

Includes database changes. You need to log out of all terminals during upgrade

Spare parts supplier returns

This version of c9 provides a new streamlined process for managing spares returns. In point of sale return screen you'll now see this.

Process now not only lets you fine tune amounts but also allows you to flag return process as in progress with invoicing to happen later. Invoicing happen later is now tracked in a new section. Pending Supplier Returns. Spares -> Spare Parts -> Supplier Returns.

  • Other Fixes and Tweaks
    • Spares. Logic added earlier in year to cope with c9 auto adjusting eaten customer deposit as operator tweaks things like freight etc broken under some circumstances and would auto amount to use incorrectly. Now fixed.
    • Trading statement was not rolling Goods in AP invoices into spares purchases. Instead was showing a weird computer code like line. Now fixed.
    • Bank Rec : on loan accounts allow full gamut of txns you can normally see on a bank account with other/misc. Previously would only let you access transfer functions
    • KTM Factory importing
      • Fiche & Parts : login not working. Working again
      • Fiche : redesign the screen a bit to show more of models to import / ignore.
    • Other supplier return polish
      • On selecting supplier return preset supplier based on parts being returned.
    • do not print label flag on some stocked parts. Option is toggled in F6 view/change part. The option is manually ignored when individually printing an item or manually adding to list to print.
    • No supplier selected nag on key screens when added rebate, on road costs, other costs etc on a unit
    • WA Form tweaks
      • Transfer form : swap VIN and engine number, was back to front
      • Transfer & Reg forms : tweak font kerning/spacing a bit to make fixed point font items like VIN fit better.
Release 4.786 July 10, 2019 barney
  • Tweaks and fixes
    • Honda Magician check : Honda SAP can sometimes return -ve results. Clip to zero. This behaviour is also affecting bulk magician check : as this check cannot cope with -ves and assumes -ve items are supplyable.
    • Print Labels - some more UI design tweaks to minimize clicks and effort.  On print screen allow user to select layout format from existing formats, same way they can sue different layout sizes. See below.
    • More UI design tweaks for cust order select
      • Allow pgdown/pgup/home/end keys to scroll list while keyboard focus is in search box
      • Memorize whether or not last cust order ended at bottom or top or the list and apply that next time (this functionality was lost in recent UI changes, readded)
    • Unit sale and purchase. Add a number of guards to protected against simultaneous scenarios run across different terminals/instances. Such as:
      • Purchase, purchase factory unit with same reference #
      • Purchase, previously non existent unit from a customer which is simultaneously added on another terminal
      • Sell unit simultaneously on two different terminals
    • Print pay slip. Print full name instead of screen name if set.



Label Configuration July 8, 2019 barney

Label config is complex. Though the underlying problem is complex.  Recent changes have make labels more flexible and logically consistent workflow but also more complex to setup. This post explains what is going on and a couple of suggested setups for simple workflows.

The core problem is we have potentially multiple printers, multiple label sizes, multiple label layouts/styles and multiple terminals. The complexity involves defining paths through al these. Illustrating.


Release 4.785 July 3, 2019 barney

Requires DB changes. You need to log all terminals out during upgrade

  • Payroll tweaks
    • Added a 'Uploading data to STP screen'. Typically STP upload is sub second, but I have seen some slight delays so added a screen to show things are happening.
    • Staff permissions, renamed payroll declaration permission to 'Payroll Manager' .  Prior naming was potentially misleading.
    • Payment summary printout : include biz name + ABN
    • Slight bugfix with setting up staff. If you key in a state which isn't uppercase would cause STP export to flip out with a XSD validation error. C9 now forces state to uppercase.
  • Payments/Bills stuff
    • Select bank for payment. Option to expose loan accounts to allow payment against a loan record.
    • Add invoice: ability to select GL code . e.g. for quarterly sales targets kickbacks you can now record against spares income instead of default (other income)
  • Financial year report tweaks
    • Tweaks/fixes to supporting reports used to validate data in Financial year report
      • Historical Recv report : was not capturing parts on reserve. Now fixed
      • Workshop history report : was ignoring internal/PD/warranty stuff. Now fixed
    • Trading statement / P&L : stock figures did not include units. Now fixed.
    • Business -> Activity. Added some type/taxtype filter options to make searching/diagnostic work in this screen easier
    • Way bank fees were written into c9 from bank rec was broken. Was being pulled into P&L as tho it was profit (bank interest). Fixed and added code to retroactively fix older records.
    • trial balance printout from General Ledger.
  • Profit summary report bugfixes which cause profit to be understated.
    • Generic Expense items was showing expense including GST, overstating the cost. Modified to so ex GST only figure.
    • Profit summary was not reporting on generic income : failing to report on additional income. Now added.
  • Customer Order selection UI redesign
    • Search mechanics now work similar to orderbook. Type and it jumps to right section, instead of filtering output. Next button to cycle through options
    • Display deposit remaining
    • Sort order ui system now has a sort drop down instead of fake columns to click on.
  •  Other
    • Bulk stock take import. Was ignoring location in uploaded file, and only accepting global location setting. Now repaired.
    • Mcleods image import, working again.
    • Auto stock take received items option was not actually working and was not flagging items stocked as stock taken. Now fixed.
    • Labels : add option to quickly clone an existing label config. Useful for duplicating configs with intent of binding different 'labels' to different label layouts for rapid selection of layout.
    • Cancel order invoice / cancel part on order : Show deposit remaining on nag and confirm screens.
    • View Contacts : new tab to browse trade customers.
    • Tweak to accommodate one C9 user who is now de-registered for GST. Option to default point of sale screen to GST Exempt.
    • Import C9 E-Ref spares order from another dealer. Will pre-populate order number field. e.g.:
  • Unit Sale Paperwork
    • Victoria T&C
      • Minor legislative changes in 2018 (minor change in wording)
      • Different versions of contract for new vs used vehicles
      • Particulars page modified to include a declaration as to whether or not the odo reading is considered accurate. (only prints on used units and if odo is non zero)
    • NSW T&C - minor changes to accommodate either/or new/used sales and updates on references to state legislation
    • QLD T&C - minor changes to accommodate either/or new/used sales + a couple of other minor tidies.
    • WA Paperwork - new forms. Rego, transfer & Stat warranty.
    • Paperwork preview : reworked. Generates more accurate looking result, but is slower.

Single Touch payroll support in c9 is substantially automated and normally processing payruns STP only adds a couple of extra clicks to capture authority to send.  Though there are a couple of things to setup and manage:

  • Initial setup
  • Submit on pay run
  • Dealing with errors and issues

Initial Setup

Making sure all staff are setup correctly

For existing staff you need to make sure following information is in play

  • Their Tax File Number
  • Correct full name and address. (Name can be either in 'name' field' or broken apart into firstname/lastname fields. If firstname/lastname are empty c9 will break name into firstname/lastname for you)
  • Date of Birth.
  • Suggest : put in staff email address and phone numbers as these will be sent to ATO,

For new staff, from now on their first payrun will transmit alot more information. Critical things you must put in for their first pay run:


Release 4.784 June 25, 2019 barney

Single Touch Payroll now supported within C9

This version of c9 provides single touch paypal support and has been whitelisted by the ATO. The function is substantially automated. I will provide a followup post on a couple of things to get started with STP and c9.

  • Other Payroll tweaks
    • Tweaked STP transmission, on advise from ATO : make sure summary gross payment figure is inclusive of allowances (such as tool allowance).
    • Subtle bug with computation of leave benefits like holidays which span multiple pay periods. Normally these should be constrained to duration of pay period, but there are rules where it sometimes needs to consider outside period for 'backdated' activity. i.e. you run up sick leave for last pay but it wasn't record on last pay so it needs to be backdated. Normally c9 handles this correctly but there are some conditions, too complex to get into here, where this fails and c9 fails to correctly constrain leave to pay run period when it should. Substantially more likely to be an issue for salary only payrolls. Now fixed.
Release 4.783 June 25, 2019 barney

Bugfix with version 4.782 just released an hour ago: label printing would crash with a system error under following condition. Now repaired

  • Part label configured to print a location, but part in question doesn't have a location.
Release 4.782 June 20, 2019 barney
  • Tweaks and fixes
    • AusPOST API integration.  AusPOST require clients to transmit a product/app ID on all API calls. Now added.
    • Single Touch Payroll UI tweaks
      • Fine tune STP poll for replies logic. Ensure minimum wait for 30 seconds before poll
      • Configure messenger to do pro-active STP reply polls
      • Tweak authorization confirmation page to reference our actual ssp (OzEDI, not SingleTouch).
      • When logged in as a payroll user, provide screen alert if a async STP reply returned an error for any payrun in last 14 days
      • Tweak display of error replies to show staff code (if any) that triggered the error
    • Receive order bugfix : was possible to deselect either tax invoice or goods only resulting in an undefined receival been written to DB (was handled as tax invoice and ignored creditor selection). Now fixed
    • Fixed a long standing bug which I assumed only affected Barney (linux) computer but got a report of problem happening on a dealer (Win 10) machine. When printing landscape reports, printout looks completely messed up, but if you save as PDF and print PDF it is okay, also portrait reports work fine.  Root cause known Java bug (, which I've found a workaround for. Suspect issue only affects Open JDK, not oracle Java, and dealer in question might have OpenJDK installed on their computer.
    • QLD TMR rego details web scrape. Bring year into compliance plate field ( with month sent to Jan), not model year.
    • Added 2019-2020 Payroll tax rate stuff (only HELP rates have changed)
    • Mcleods Magician working again. (they moved their website).
    • Generic order file export. Include options to export retprice and costprice.  Put in play for Monza. Now monza tell me they ignore cost price but just to be thorough will include option to export in c9 all the same. (updated this page )
      • Monza suggested format.
        • Mask: FD""QC
        • Header: ItemNumber,Name,Description,OrderQty,Price
        • Separator: ,
        • Escape if needed
    • Generic file export format. Tweak UI design on basic screen so it is obvious if a custom format is in play
    • Tweak profit summary to also show gross revenue (price less discount)
    • Weekly planner.  Option to print planner output.
    • Add transaction: all txns to be forward dated. Warn operator if they have entered in a forward date
    • View invoice : show summary of parts on order. i.e. qty # active, sent, received, invoiced, cancelled etc.
    • Print Preview : memorize zoom setting. Memorize for either portrait or landscape based reports.
    • Browse rebates: show tally of uncollected rebates
    • View / Edit Contact. If contact has an alternate address then make the details/alt address tab stand out
    • Finance/Floorplan Settlement tool : was unable to cope with a sale involving multiple units. Now working.  Settlement screen provides a unit tab which breakdown costs and allow you to assign origination fees on a per unit basis etc.
    • New config option in setup units tab to suppress printing short notes for dealers that use this field mainly to help internally organise their deal list
    • Add/Modify Sublet. On setting cost price if sale price is $0 then default sale price to cost price.
    • Could not bank rec / cash rec web based Paypal payments : option to select for cash rec no there and bank reco would not merge in paypal instrument txns. Now fixed

Heavy reworking on label printing

This version of c9 is a deep rewrite of label printing subsystem.  Functionally visually changes are modest. Visual/functional changes:

  • Layout rules completely rewritten and should yield better looking labels, especially for labels which are space constrained : with improved logic to handle competition for layout space. So generally only changes behaviour at the margins as prior code was reasonably okay.
  • For parts based labels. A number of changes
    • You can now configure / preset multiple label formats. e.g. some with pricing, some without etc, with label config now accessed in print labels screen
    • Label based configuration allows for some power customization. For example, configure price to be bold and a larger font size, below example makes the price bold and the font size x1.3 (30%) larger

Comprehensive list of Label commands

Parameterized commands can take form of either <key>=<value> or <key>(<value>).  List below is written in <key>(<value>) format

Basic math operations are possible. e.g. 10+5/2. Mostly relevant for adjsize command

Strings must be wrapped in single quotes.

Command Description Example
font Font name font(‘Arial’)
size Font Size size(12)
adjsize And adjustment to apply to already set size. e.g. to make bigger or smaller adjsize(+2)
value Hard code what the value is to be. value(‘Test Motorcycles’)
row Row # to put item on row(4)
vertalign Vertical alignment. 1=top. 2=center. 3=bottom vertalign(2)
textblock Allow entry to word wrap textblock(1)
show Make visible
hide Make hidden
bold make bold
italic make italic
bolditalic make bold+italic
left left justify
center center text
right right justify
format Clarion Language reformat format(‘@n$12.2’)
col Justify column. 1= left. 2=middle. 3=right col(3)
style Clarion Language font style style(1)
splitmerge Forced gap close on word wrapping, in 1/1000th of inch. Used mainly for tall barcodes. splitmerge(40)
visible Make item visible/invisible visible(0)


bold adjsize=*1.3

Step 1. Make sure you have Lusty setup as a franchise in c9

Spares -> utilities -> add / Edit Franchise.

If you cannot see lusty in the list. Click on button 'Add New Franchise'.  Just two things to key in:

  1. The name
  2. Make sure 'use price file' is set to Yes

Step 2. Import price file for first time

Spares -> utilities -> import price file

Select Lusty from list of franchises in c9

Select 'C9 Central Repository Price files' from Source type

Pick Lusty in list of suppliers.

Click Okay a couple of times. Click 'Accept and continue' on disclaimer/ warning screen and you are done.

Release 4.781 June 12, 2019 barney
  • Minor tweaks and fixes
    • Website content slider widget. Increase URL field size from 100 to 250
    • Import parts images : Contains a bug where if image already exists (i.e. imported previously or parts which share same image), and reimport option is not selected then the image will not be imported/reused. Now fixed.
  • Previous changes to timeout aged connections with c9 would break when trying to download massive price files from c9 repo.  Adjusted code to not implement timeouts in this specific case.


« Previous PageNext Page »