RSS Feed c9 logo Australia's best motorcycle shop retail software
Single Touch Payroll May 24, 2019 barney

Single touch payroll is a requirement to send payroll information to ATO. It applies to everybody after July 1 so it applies to dealers who use c9's payroll module.

STP is a train-wreck.  C9 currently doesn't have a working STP solution. I am dedicating all my time to solving the problem. I am confident I will solve the problem and I have 3 possible solutions being developed in parallel. Whichever gets finished first will be the one c9 will intialy use. I currently do not have a timeline for delivery. Delivery by July 1 is possible but not certain.

Why doesn't c9 have a solution right now?

STP reporting is conceptually simple. It is essentially a payroll summary plus some other simple additional information that needs to be submitted with each payday. Collating this information is easy and the work to collate it took less than a day to engineer and the supporting code already exists in latest version of c9.

The problem is getting the data to the ATO. The ATO expect the data to be transported to them across a formidably complex technology stack typically used only by massive enterprises tamed by teams of dedicated computer programmers. In their own recognition of how impossible the task is for small operators the ATO developed a plan b) for people like c9. The problem is their plan b) is not working.

Update #1: just made contact with a new possible vendor and looks really promising. Putting option 1) back on the table for completion prior to July 1.


Release 4.778 May 24, 2019 barney

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

Not yet released. Monday

  • Fixes and tweaks
    • Payroll bugfix.  C9's payroll includes a facility to help amortize unexpected EOFY tax jumps caused by bracket jumps such as medicare levy surcharge and HELP brackets. It is possible with Oz tax to have your pay go up 1 dollar and then to end up having to pay hundreds of dollars extra because of this meaning you are overall worse off. Normal tax it doesn't happen but with things like Medicare levy it can. C9's payroll has a system in it to help detect if this is likely to happen and it will amortize the cost over remaining paydays until EOFY, increasing tax withheld slightly.  Problem is the code is buggy and can wig out, wanting to withold hundreds of dollars extra instead of a few dollars.  Fixed in this version. Generally only impacts high income salaries subject to MLS. Can also impact HELP/HECS debts.
    • Link transactions not working for contacts flagged with manual link setting. Now fixed
    • Vic Roads get rego details. Stopped working due to changes on their website. Now working again.
    • Fix with font sizes on Point of Sale now in this version (was promised last version).
    • Fixed EPC grab for KTM/Husky/WP
Release 4.777 May 13, 2019 barney

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

  • Trivial Tweaks
    • Edit clock type screen. billable checkbox text partially obscured fixed
    • Spares fine print in combo with remit details where remit address is 2 lines : text overlaps.  Fixed
    • Newly added point of sale freight type screen. Window says 'website settings', renamed to something more sensible.
  • Minor tweaks and fixes
    • Deposits on jobs fixes
      • Deposits left on internal dealer jobs would get silently eaten and disappear due to very old pre general ledger code. Now fixed
      • When user tries to modify a dealer job with deposits c9 will not allow them to go ahead. (makes no sense to leave money on an internal job).
    • (did not make this version. next one) Font sizing on main spares point of sale screen : a very specific combination of certain screen resizing + invoice manipulation events done in right order can mess up font sizes on screen making fonts progressively smaller until the screen becomes unusable. Now fixed.
    • Purchase unit from another : default ABN to use supplier ABN if they have one
    • Web order based emails would keep sending email alerts on backorder parts every time unrelated backorder items would trickle in. Fixed so it only sends one email first time parts go onto backorder for the weborder.  (Existing non web sales sms/email already behave this way, this change only impacts the combo of backorders on parts ordered via c9 based websites).

Single Touch Payroll

This version includes first iteration of single touch payroll export. The implementation is untested (test lifecycle painfully slow). C9 implements STP via a 3rd party:  C9 will emit a CSV file you import into single touch in order to meet your reporting requirements.

Specific changes:

  • Option in modify payrun to export a STP file
  • Some new settings on staff to capture more info specifically.
    • State (defaults to dealership state if not set)
    • Basis (full time, part time, casual)
    • Whether or not TFN declaration was been signed
    • Added new clerk permission to capture payroll declaration permission. Implement this on export ABA too.
  • Longer term, looking to do a more seamless / electronic integration. Dependent on single touch responsiveness who are probably flat out ATM helping lots of people get STP compliant. Work in progress.
Honda Op2Ma Reporting May 9, 2019 barney

C9 now includes ability to generate bulk of reporting needed for Op2Ma

To access:

  • Business -> Reports -> Analytics / KPI.  Insert new report, and select Opt2Ma from drop down list

The more comprehensively you use c9 the more data can be meaningfully reported. Some new changes to c9 especially to help

  • Organsing Unit types by category.
    • Setup -> Other Settings -> Unit Types. Modify all types to indicate which represent M/C, ATV, P/E or Marine.  By default c9 assumes everything is a motorcycle
Release 4.776 April 25, 2019 barney

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

  • Tweaks and fixes
    • BAS : was not including refunded/returned payments  (cash basis only).
    • Modify unit cost : force encumbrance/liability paid by customer to be ex GST
    • Unit sale, deposit exceed sale test : does not factor in increased value for tradeins which are underwater (e.g. finance exceeds value of bike). For tradeins where changeover is greater than value of units being sold, don't do deposit test at all.
    • Re-computation of debtor payment GST based on invoices actually ticked off propagates to biz activity list, but does not compute correctly, and would propagate wrong payment amounts.  Fix is retroactive.  Bug impacts cash basis reporting only and only impacts a small minority of payments (where assigned invoices changes after the fact and if those invoices are GST exempt). GST compute is still fine, though total payments may misreport wrong figure.
    • View Contact transactions, include option to filter txn list. Allows for sophisticated range filters, e.g. '>1000' only shows txns where amount is greater than $1000 for example.
    • Read XLSX file, c9 would struggle to read XLSX files with missing/undefined columns. Now fixed.
    • Added importer for Stihl's non standard price files. Should be able to cope with either XLSX or TXT format
    • Added java version check for licensing purposes.
    • Complete point of sale, some buttons to pop up and select from list of freight options to grab standard freight pricing. Freight options here are different set of freight options visible for web based orders .
    • Receive order : allow user to modify/set location for parts being received. For N/C items not received into stock, if location is provided forcefully create a new stock record
    • Email template from email invoice screen. Body was limited to 1000 chars, now increased this limit significantly
    • Modify job : tweak screen so you don't need to unlock unit to access odo/hours
    • Add Parts on  job from workshop job. Suppress ask print pick list in these situations
      • From Modify job : As picking list reprint is easily accessible from here already
      • All all required parts are on order. Nothing to source from stock so nothing to pick
    • Forfeit cash voucher : was not posting as taxable income. Now fixed.
    • Modify deal: access view customer from here
    • Use gift card : on scanning a gift card display some useful stats: face value, amount remaining and amount remaining after this txn is processed
    • Sales lead : option to print out a single sales lead
    • Workshop clock types : add new option to flag a clock type as being productive (not idle). On timesheet report these clocking reasons will show as 'on', not 'idle'.
    • Low level tweak to magician query: strip part number of spaces before querying. (Previously was padded. Non functional change, but tidys things up a bit).
    • Price file import improvements:
      • Better memorize price files imported so you can look at history of price files imported for a given franchise. Accessible via view / modify franchise
      • On select franchise to import, show last import date and # of records modified
    • Added new Analytics / KPI report for Honda / Op2Ma reporting programme.
    • Open floorplan report : report behaviour when you pick a date to base report on to see historical status as of a given past date was hopelessly broken. Reworked and now returns sane results.
    • Workshop Tax invoices : option to print additional text on bottom of all tax invoices. Access via setup -> main setup screen -> workshop tab.
    • Parts on order for deal that was subsequently closed. Recent changes to c9 to make parts selling to deal more restrictive have broken this behaviour. Now working again.
  • New GL Codes
    • New expense code: Repairs / Maintenance
    • New asset codes
      • Plant and Equipment at Cost
      • Plant and Equip Accumulated Depreciation
      • Motor Vehicles at Cost
      • Motor Vehicles Accumulated Depreciation
    • New Equity codes
      • Settled sum
      • Retained Earnings
      • Distribution to Beneficiaries
    • New Liability codes
      • Codes for payroll liabilities after payrun. e.g. payg and super.  New config option in setup that posts to these codes instead. In bank rec, doing a payroll txn will sink to these liabilities codes instead of expense codes if the setup cfg option is enabled.


This version switches in a new PDF reader library, more complete and capable. New library impacts importing of PDFs into c9. I've tested new library against 260+ different supplier invoices that worked previously and these will still import correctly. But new library means some PDFs that previously would import may no longer work.  New PDF library is mainly to provide more capable importer to decode some PDF based Fiche data I am looking at, also can be used to improve the print paperwork preview screen with a better, more capable renderer.

Release 4.775 April 24, 2019 barney

Small bug fixes caused by changes in recent versions

  • View spares invoice from view transactions broken. Now working again
  • Units QBE : Enter key shortcut would not apply input. Removed the shortcut.
Release 4.774 April 16, 2019 barney
  • Tweaks and fixes
    • New workshop config option to disable default customer discounts being applied to workshop jobs.
    • Where is messenger? Slight tweak where it might misreport a terminal as running messenger, more likely to be an issue with Postgres 10.
    • Profit summary report on single customer : would incorrectly show results for warranty spares unrelated to specific contact
    • Unit browser. Retain old behaviour with enter key automatically accepting the screen
    • Clock off : ability for techs to tweak the time recorded as billable on the job. (Actual time worked is still forcefully recorded as is and remains unmodifiable)
    • Sell parts to a deal via point of sale : make sure deal is locked and open first
    • Order book search : when matching an item in orderbook, try to make entire order the search matches in visible on screen when scrolling to the found result. Previously would usually just show you the row at the very bottom but good to have complete visual context of entire order the search term belongs to.
    • Stock take via sheets
      • Make location filter case insensitive
      • Add a button to flag all parts on stock take as successfully stock taken. This writes todays date into all parts as last date parts were stock taken
    • Contact duplicate check improvements to nags. Previously c9 would constantly nag to check duplicates every time you keyed in a tweak that triggered a dup check. It now tracks which duplicate possibilities you rejected and won't present them again. It might present same customer for a different reason. e.g. You key in Bob Smith and it shows Bob Smith (same name), which you reject. You then key in Bobs phone number, it will then show 'Bob Smith (same phone)'. From here it should be substantially quiet.  Previously c9 had a mechanism in place to try and dampen nags like this, but it didn't work very well. New version should be a decent improvement.
    • Tweak OPEA import to cope with Triumphs crappy non compliant OPEA price file
    • Modify On Road Costs. Assume GST exempt if cost is $0 for ORC line items.
    • View Contact Transactions: access view spares receive screen from here
    • New Configurable monitor type : alert when floorplan units are about to come off interest free
    • Vic Paperwork Form 5 : now print check boxes to clarify if price is inclusive of on road costs. e.g. below:
    • Print Spares invoice with parts on order. Make the 'parts on order' text printed here configuration. Modified in Setup, main setup screen ordering tab.
    • Email invoice / email report : option to grab a email template for body email being sent out
    • Add/Modify unit : dynamically show how # chars are in the VIN to help get VIN right.

Ordering tweaks

Some subtle issues with order audit of what c9 reports as been sent / exported. Say you have this:

  • Part on active order for a customer
  • Same Part on exported order for stock

Now stock order arrives in, c9 will fulfill the customer order first since it is higher priority. The result is it swaps parts around between stock order and customer order, all good. The stock order is now tracked on daily order.

The problem though is part is flipped onto daily, but the part carries information that it was previously exported so when you goto export the order c9 whinges it might of been sent already. Two fixes here:

  • On part flip as described above, not only flip order numbers but also flip internal tracking that records if part has been already sent/received
  • In order book, display state tracking on individual parts if it differs from the order state. Making out of place parts visually stand out. (e.g. parts that were printed but then moved back onto an active order after printing)
Release 4.773 April 12, 2019 barney
  • Tweaks and bug fixes
    • Subtle payrun bug fix.  Specific sequence of events:
      • Manually modify a annual leave line item (note: you should never do this anyway. Always modify via leave screen, this bug only triggers with this specific process which is faulty anyway)
      • This recomputes leave loading still on computed, not adjusted figures, not strictly desirable, but not strictly a bug, so far so good
      • but bug in c9 is it writes leave loading into the DB as though it is adjusted, breaking a number of low level rules and assumptions that break the computation of later things like tax. Compute tax from this figure is okay tho.
      • Then print summary or generate ABA it emits file with correct price with okay figures.
      • If you then re-edit a line of the payrun (or finalize) it computes a different figure because of damaged leave loading record, computing a tax figure that is too high (effectively doubling effect of leave loading on withholding)
    • Payroll fixes
      • Fix above bug with altered flag cascading to leave loading
      • disallow editing of computed leave lines (see above issue, correct way to manage leave is via leave screen, not in a payrun)
      • Add Button to access leave from payrun
      • Recompute payrun just prior to export ABA file/print summary
    • Point of sale, F6 edit a part on order, would not memorize previously applied order settings (stock/daily, no backorder, alt supplier selection etc) on return to point of sale. Now fixed
Release 4.772 April 5, 2019 barney

Old Javas - you need to upgrade now

This version is where I made good on a warning from over a year ago that java 6 is no longer supported. Many features in this version of c9 will no longer work on old java6. e.g. importing PDF invoices, magician check, remote EPC diagrams etc.

User Interface Changes

This version includes a significant UI change and redefines how enter key works, realigning it closer with how most GUIs work. The original was design inherited from c8 days and was defined by tech c8 was based on back then. C9, in trying to keep things as unchanged as possible replicated original c8 behaviour. This version now does the following.

  1. When you key in content into a new field , the field turns red to show you field is being modified.
  2. Now, while the field is red, if you press enter key it will accept the input, instead of triggering the 'OK' button. So instead of clicking out of a field/tabbing you can now check effect of a change by pressing enter on it
  3. Now, pressing Enter one more time, will trigger OK button, since now there is no 'modified' data to process

Security Changes

This version of c9 modifies how the c9 product communicates with c9s servers to deliver key services to use encrypted channels. Previously only some network traffic was encrypted. The decision whether or not to encrypt was balanced between sensitivity of data transmitted vs accepting increased failure modes with encrypted traffic. The primary crypto required does not work in java 6.  The biggest issue with non encrypted data that now forces c9 to switch to all encrypted traffic is not the broader internet, but things that exist in dealer networks. Two issues:

  • Antivirus software becoming increasingly promiscuous / invasive about what programs stored on a computer are doing and messing with network traffic.
  • Routers/modems doing things like trying to cache responses.

The changes affect many different areas of c9. Broadly:

  • Importing PDF invoices
  • Magician related stuff
  • Remote Fiche diagram stuff
  • C9 repo access, other dealer price file access etc
  • Miner : standard queries
  • Other various bits and pieces


Other changes

  • EPC
    • Got Triumph EPC import working again
    • Import SYM xls EPC files
  • Tweaks and fixes
    • View invoiced units. Show invoice date + unit rego.
    • On upgrading c9 past this version, messenger will detect if it needs to upgrade because of DB change. If messenger JVM is unattended it will automatically upgrade itself
    • Point of sale : under some circumstances c9 would erroneously report that a cash invoice is linked to a workshop job. If you pick a job for part sale then switch back to cash it would then write invoice such that if would misreport as being linked to a job. Purely a visual issue, doesn't trigger any unwanted functional behaviours other than look confusing in some screens, e.g. orderbook
    • Mojo magician : some optimizations to try and wind back heavy memory usage
  • Unit sale tweaks
    • On road costs : write onto suppliers as bill money collections, not bills
    • Supplier postings : write description + unit reference where there is no reference
    • ORC Adjust tool tweaks
      • Post overpays as rebates insteads of convoluted seq of txns previously
      • Post underpays as $0 gst bills
      • Track what was previously posted to allow for easy review & fine tune adjustments
    • View a supplier txn list for suppliers connected to a unit sale. Option to access view unit from highlighted txn
Next Page »