RSS Feed c9 logo Australia's best motorcycle shop retail software
Release 5.2.105 July 9, 2024 barney

Tillpayments terminal audit and error handling

This version includes a fix with tillpayments terminal integration.  c9 is supposed to permanently log a record of eft interactions for future reference but certain operations cause this log to be destroyed. Common one is a failed /declined txn and operator then picks manual txn. Now fixed.

further the manual option is pretty brutal in its behaviour and often the incorrect option to pick : so pop an alert to confirm this is what operator really wants to do.

Finally when a txn is declined failed etc, log it as failed not OK. Otherwise output in eft journal screen is confusing.

Other Tweaks and fixes

  • Magician checks
    • Kawasaki  : make sure results displayed are for AU warehouse only : not combined AU+NZ warehouse
    • Link  : working again
    • Triumph  : working again
  • Workshop deposits : modify job and deposit tweak was not providing option to use customer deposits. Now fixed


Release 5.2.104 June 26, 2024 barney

Include DB Changes. You need to log all terminals out during upgrade

  • Tillpayments refinements and tweaks
    • bank rec : Tweak output to make it easier yo reconcile paypal / tillpay captures. Recent introduction of gateway clearing GL codes made it difficult in reconcile screen to match a payment to a txn in c9. Now sorted.
    • Disable INCAUTH as it is problematic for some bank issuers : like CBA. Only support DEBIT
    • DEBIT : change indicator for debit : from recurring to merchant initiated
    • Bugfix with terminal config. Live/standbox toggle wasn't working correctly
    • Cancel web order : auto pop tillpay / paypal to manage refund / void
  • Suzuki Magician Check : reimplemented using a new system provided by Suzuki . MFA no longer required
  • Statement penalties / discounts : not automatically applying after elapsed delay. Broken since migration to v5.2 . Now repaired.
  • WA paperwork : couple of years ago incorrectly switched MR9B form for MR9.  Switched back in this version.
  • unit deal : substitute unit with blank : would not clear model year. Now fixed.
  • Workshop benchmarking - completely removed. Instead report accuracy of job effort on jobs vs charged labour. Affects staff and profit report
  • SMS Reply Alerts - add ability to configure a courtesy alert email to send an email when there are unread SMS replies to review. Alert is only sent with first unread sms to come in. Subsequent unread replies will not trigger fresh emails
  • Workshop profit - option to filter report by a specific mechanic who is involved in the job. Filters down to only jobs associated with selected tech : be it scheduled, or charged or clocked
  • Modify Ar/AP payment bugfix : if you modify payment such that it reverses direction of the txn; from money leaving (e.g. pay bill) to money coming in (e.g. collect money to pay bill), the txn will fail with a journal error bc it would force the direction change on modify. Now fixed.
  • Receive spares
    • Some txn combinations where GST is set to or near zero fail with a journal balance error. Root cause is a subtle bug with how GST is amortised across multiple lines and default rounding strategy.
    • When receival GST is zero, do not force GST to zero, instead change Tax Code to EXPENSE_FREE
  • Other Misc tweaks
    • When reciving into stock a part for first time where auto stock take is in play, c9 would not update the last stocktake date and leave it blank. (Subsequent receivals would then fix it up). Now fixed so initial add to stock also performs an auto stocktake
    • Daily SMS templates : make them bigger in configuration
    • Job invoices : print claim number on insurance jobs without a unit (previously would only print if a unit was also assigned to the job)
    • AP Bill + Pay. Write the reference into both bill and pay lines.
    • Paypal void pre-auth. Looks like paypal auto voids preauth on full capture so do not trigger void. Previously with recent fix in last version paypal screen would pop to finalise an ordder and will nag void attempt failure.
Release 5.2.103 June 4, 2024 barney

This version of c9 fixes a subtle defect introduced around / after December in 2023.

Sometimes when you process a receival with some sort of small -ve residual in tally of parts vs invoice total if you selected 'ignore difference' c9 would sometimes fail with a reconciliation then journal balance error.

But previously it worked fine. Further if you go and attempt to do work on previously recorded txns, such as relink them, then the relink would fail.

The core issue is how a fixed gst amount as amortized across multiple lines, with some of the change added to parts and some added to the inverted delta posting. As part of v5.3 alot of work has been done to make amortization of tax more sophisticated; but this introduced some undetected edge cases for a receival where tax invoice tally is slighty less than tally of parts and proscribed gst amount variation exceeds this value.

This version also formally codifies build fixes described in update section of below (v5.2.102) update


Release 5.2.102 June 3, 2024 barney

There appear to be further build issues with v5.2.101.   If you goto biz activity and click on details for any txn involving AR/AP or deposits it will trigger an error. Even though problem was also obvious in AR/AP the exact issue was different from bug in 5.2.100 fixed in 5.2.101

Again problem is build system, not software code. Did a complete clean rebuild after a reboot / memory wipe. Seems to work fine now.

Update 4.6.24: detailed decompile analysis of version 99, 100, 101 and 102 show build process generated significantly different outputs for v100 and v101. v99 and v102 are the same for a key class.  Further analysis revealed an non deterministic issue with build process. The issue is now fully understand and expect it to not occur again.

more specifics : clarion->java interface autoboxing doesn't provide fine grained precedence for clarion to java type mapping; so java methods with different prototype signatures are considered functionally equivalent. So code written at java/clarion interface must enforce this contract. TxnItemType.get() and TxnLocationType.get() broke this contract : purely for purpose of automated regression testing and this break in contract on both these methods are responsible for problems in v5.2.100 and v5.2.101. Repaired using different method names.

Release 5.2.101 June 3, 2024 barney

There was an high impact issue with 5.2.100 related this morning. Most of AR/AP type txns would fail with an error. this version fixes it.

The root cause of issue wasn't a software code bug but with how new versions of c9 are prepared and uploaded. This is the second time we have been caught out in last couple of years by this.  Further changes have be put in place to make sure it doesn't happen again; as original tweaks made were not enough to catch this mornings issues.

Root cause : some sort of issue with incremental build for the main c9 software package resulting in corrupt compiled software : possibly a clash between in IDE incremental build process and command line build; switch to strict clean builds from now on.

Release 5.2.100 May 21, 2024 barney

Includes Database changes you need to log all terminals out during processing.

Online payment processing reconciliation : this version of c9 tweaks how paypal and tillpay txns make their way through the general ledger. Funds now flow through a set of GL clearing codes 1-1410 : Payment Gateways Unallocated.

This change creates a separation between funds being captured and funds used to fund a sale. So on capturing funds from an online sale we now post DR into existing gateway code : 1-1041-xxxx, but we also post a CR into new code 1-1410-xxxx.  Then on invoicing we DR this new code to bring it back to zero.

Previously c9 would just DR the 1-1041-xxxx code and most of the time, as long as c9 was used way we liked it to be used what you capture and what you invoice are same so you could just reconcile off what you invoice. But there are some edge cases where things would not line up, like bailing out of creating a txn at a critical time and never redoing the operation.

Purpose of this change is two fold:

  • make reconciliation more robust in face of a couple of edge cases.
  • a new feature with tillpay processing is we can now capture and pre-auth automatically on website. This allows alignment card experience with what is commonly expected for online CC sales for consumers. This situation though will definitely create a delay between capture of funds and invoicing, so fund capture in this future scenario must be indirect to maintain ease of reconciliation

Other features / consequences of this change:

  • For existing historical web orders they will remain as is, a posting to original 1-1041-xxxx code only. But when installing this version if you touch sales in progress these will be, on demand, migrated to the new models. This approach is to allow smooth transition into this model without risking journal /reconciliation issues with trying to touch up very old txns.
  • unallocated web order transactions will report under the deposits held report
  • New codes report on the balance sheet
  •  impemented for Tillpay, Paypal Rest and Paypal NVP
  • Important: it is impossible for us to properly test Paypal NVP integration since Paypal have disabled ability to create NVP credentials for testing. It is strongly advised to no longer use NVP; since c9 cannot test it we cannot debug or support it any more. C9 screens make this even more obvious now. NVP will be forcefully disabled in a near future version of c9.

Other tweaks and fixes:

  • Some floorplan tracking bugs fixed:
    • Some floorplan modifications ,such as modifying or deleting a curtailment in a way that moves a floorplan from paid to unpaid or back would not log correctly in the database, resulting in issues with auto adjust process incorrectly posting an inappropriate result : which would usually clear up after you modify the unit but still would leave ugly resullts in accounting reconciliation report to deal with.  Now fixed.
    • Treat overpaid floorplans as unpaid : do not log a paid out event, in dealership units code /filter them as unpaid.  Previously would treat them as paid. This change will hopefully help detect errors with floorplan management where result behaviour is floorplan is flagged as overpaid
  • Subtle bugfix in processing final receival for paypal / tillpay. If auto invoice doesn't trigger and operator needs to trigger pickup manually, system would assume because balance outstanding is zero , no instrument is needed. So it clears instrument entirely and doesn't pop tillpay/paypal processing screen to void the preauth. Now fixed.
  • Tillpay integration
    • option to trigger a debit in case extend auth fails and the underlying txn was created with recurring
    • tweaks to cope with possibility of preauth arrived pre-captured too. To align with more common ecomm experience where goods are paid for at checkout. Requires setting on website to be enabled
  • Payroll.  New 24/25 tax tables
    • Linear equation tables as published mid May at
    • Super guarantee 11.5 for 24/25
    • Annual tables for following cross referenced with either .gov published sites or x-ref with above tables : resident, foreign, working holiday & STSL
  • WA paperwork changes.
    • Add new form 4 particulars
    • Add new form 5 defects
    • Note  : separate warranty forms you need to source and print yourself from WA Gov websites . Not bundled in c9 since nothing prints on them
  • Add/edit franchise : advanced tab option for web api filter. Used by a couple of different dealers
  • Freeform stocktake : stocking a part currently not stocked but on price file broken since last version. Now fixed.
  • Merge weborder : hide secure token alter alert if there is order being merged doesn't have a token.
  • In some shops, when is c9 left on login screen for a long time if you try to login it will fail but second login will succeed. The cause is a stale network disconnect is misinterpreted as login not found. Fixed by double checking a failed login test to give network connection a chance to re-establish if it is stale.
  • Point of Sale finish : hotkey invoice date to Alt+T, to allow keyboard only editing since inv date is no in normal keyboard tab list.
  • Browse dealer units : filter input will now also filter on rego/plate.
  • Gas Gas Magician : would not work if there was a space in franchise name "Gas Gas". Now fixed to match with or without
Release 5.2.99 May 13, 2024 barney

Includes database changes you need to log terminals out during upgrade

This version includes a new POS terminal integration option into Tillpayments terminals. At time of release the solution is not certified for production use yet but assuming all goes well with ongoing testing/cerification this version will be the first version that permits direct connectivity to tillpay terminals without having to go via PCEFTPOS / Linkly. Desired outcome is to eliminate presence of Linkly entirely and avoid all the reliability and complexity issues that come with it.

This version includes a significant functional change with Unit Finance Sales.  Previously finance sales would post sporadically to AR and AP balances creating a mass on AR/AP statement for the finance provider. This behaviour is mainly because of how v4 AR/AP worked and has remained in place since. This version of c9 exploits newer capabilities in v5.2 c9 to heavily rationalise onto one or the other while keeping the number of lines on the contact txn list to a sensible minimum.

  • For Finance contacts tagged as debtors / both : everything will rationalise onto AR
  • For Finance contacts tagged as creditors : everything will rationalise onto AP
  • For straight purchases invoicing Both / creditor : everything will rationalise onto AP, otherwise AR
  • Note that encumbered tradeins the encumbrance will always post to AP (as before)

Generally with this change in place you may want to flag your finance providers as being 'Creditors' so that circumstances where encumbrance is same as finance provider then everything rationalises onto AP.

This version advances a ease of life too started back in 2018 : statement reconciliation.  Import a PDF statement file and cross check it against txns in your system. A heap of changes here to try and make it more useful. Targeting KTM group dealerships first because their 'statements' are not statements in the classic (correct) sense and their accounts are extremely challenging to reconcile against because of this. Hopefully this tool will be especially useful here. Goto view transactions on your KTM Group supplier, click on statement reconciliation and feed in a KTM statement pdf. Things it does

  • Match txns on PDF statement against txns in c9.
  • Matching is 'fuzzy', so copes with slight typo variations, missing or extra characters in reference, mistyped numbers etc
  • Help visually identify missing or misinputed invoices.
  • print or export result to csv
  • KTM specific nonsense:
    • filter to spares only to remove pages of floorplan stuff
    • Mash split payments on statement into a single record
    • Some logic to try and filter older records in c9 but not on ktm statement because ktm only show things they consider 'open'


Other tweaks and fixes

  • miner order receive query fixes.
    • Previously could not link order item to received order. Would output an error
    • Tweak state radio toggles on orditem to allow more filters
  • Timesheet report : option to filter results to mechanics only
  • Today Clocked Screen : option to filter results to mechanics only
  • freeform stock take : screen blows up in subtle ways when you scan a superceded part number. Now fixed.
  • BRP fiche importer : working again for Can-Am ATV and SXS importing
  • Leads  : new tabs. Alerted leads only sorted by date and tab for leads sorted by create order only
  • Honda op2ma : tweaks to reporting. Unit counts were misreporting and incorrectly double tallying units on deals.
    • Specifically repairs Fields P28, P29, P30, P31, P35 , P36
  • Browse Eft journal : add column to show provider now there are 4 (PCEFTPOS, Tyro, TillPay online and now Tillpay Terminal)
  • Returns on Predeliver on deals : handle better in deals. Show -ve on modify unit screen. Allow -ve inputting on editing of lines
  • Point of Sale Import Miner query :  Default qty to qty on hand. Some issues with POS importing zero qtys. Now tidied
  • Spares profit report bug : displayed QoH incorrectly copied from a different part for parts no longer on file (in stock or pricefile). Now fixed
  • EMail setup : make it visually obvious that sender From addr for c9 routed emails requires SPF entries to be in place first and to contact c9
Release 5.2.98 April 29, 2024 barney

Tweaks and fixes

  • Giftcards - would not work for txns backdated to a date before giftcard was issued. Now fixed. (workaround is to modify date of issued giftcard in business activity).
  • Mojo  Magician check - working again. Changes on mojo server broke things.
  • Supplier Returns - option to print full list of parts pending return
  • AR Credit / Debit note - wording on a4 printout is backwards. Now fixed
  • Pierer New Mobility integration - add magician check and part image importing
  • Receive Print Labels - include receival date in the invoice# line
  • Bank Rec - Clerk would show blank on main reconciliation screen. Now fixed.
  • Triumph EPC Import - Looks like Triumph changed their dealer portal. Rewritten to work with new website
  • Till Pay / Paypal & Deposits : allow capture for both tillpay & paypal for deposit adding on web orders to compliment refunding.  normally unnecessary but there may be some exotic scenarios where this is useful. (e.g. failed to do initial deposit capture when the order was originally processed)
  • Receive into stock : there is an exotic behaviour in c9 from 6 years ago when trying to deal with KTM branded products to allow receival from one franchise (e.g. HQV) to feed into stocking for another (e.g. KTM). There is a subtle logic defect in this code. If Franch A feeds into franch B, if Franch C receival matches A and B parts then franch C receival will incorrectly receive into B too even though it isn't explicitly configured to route to an alt franchise on receive.  Fixed. Note that this alt receival behaviour isn't actually that good / useful and will be removed in v5.3 entirely But for sake of making it work the way it should at least, it is now fixed.
  • Bulk Magician check : if you bulk magician check a full order; then filter result to unfulfillable items and try and move those parts. System would move incorrect parts. Useful function for Honda Dealers and honda weird stock/daily order business rules.  (Root cause; c9 was indexing records in unfiltered list, using indexes from filtered list, meaning it was grabbing wrong part)
  • Clerk report : this report is mostly old & unmaintained, superceded by profit summary report but fixed a couple of really obvious issues with it : spares tally incorrectly tallying reserves and quotes
  • Export AR/AP txns : View transactions for AR/AP : option to export as a CSV file
Release 5.2.97 April 8, 2024 barney

Includes database changes, you'll need to log all terminals out during upgrade

Tweaks and fixes

  • bulk unit labels broken, and likely broken for a while but rarely used so only noticed now. Now fixed
  • Manual Journal Error With some exotic scenarios, manual journal posting would error and blank out posting forcing you to rekey the journal. Root cause is txn error would inappropriately blank out txn particulars. Looks like an early v5.1 design decision which doesn't fit in with long term design goals with v5. Now realigned.
  • Order Receive change retail Also flag retail held flag whenever this happens
  • Network error and jobs an exotic scenario at a dealer where a terminal network glitch resulted in underlying job being partially trashed. Added some guards to prevent this (job recompute would write back a blank job card if the original job card fetch from database failed due to network issue)
  • Browse dealer screens : still unacceptably slow on my test system at least.  Further performance improvements to database query. Also added a missing primary key index on current unit materialised table which may provide performance boosts across the board for various screens
  • Spares Variance Report: In stocktake only filter was not picking up freeform stocktake results. Now tweaked
  • Cash till detailed report : alter constraints on txn listing that feed this report.  Previously report could show things like bill payments and/or other txns with banking involvement. Generally this isn't necessary for finding till errors and potentially exposes information with inappropriate users. This report now strictly reports following only:
    • Txns involving payments using one of the main payment methods  (including no cash).
    • Txns tagged as sales or refunds
    • Txns touching A/R, deposits or giftcard journal codes
    • Other tweaks
      • display giftcard # when payment is with giftcard,
      • expand size of instrument slightly to better accomodate long gl code names, .e.g. like 'Accounts Receivable'
  • Payment selection : hotkey tweaks
    • Add hotkey for [B]ank
    • Remove [N]o cash collected hotkey as part of discouraging usage of this legacy payment method
    • Hot keys for Giftward, Bank and Multi Payment are now provisional on hotkey not being configured for any of the main payment methods
    • Fixed bank selector focus, would highlight the 'show loan banks' button on open, want it to highlight banks themselves
  • General Ledger 
    • new liability chart code for GST Adjustments added. Impacts balance sheet only
    • Fix long standing typo : rename gl code 2-6100 from "Supplier AR" to "Supplier AP"
  • Adjust Balances newly designed so it provides finer grained control over rationalising AR/AP and deposits on a single contact.
    • Adjust balances screen now shows all contacts where they have more than one non-zero balance, previous logic was much more constrained so would not display contacts which might be legitimate/interesting rationalisation targets
    • Balance correction gives you option what you want to rationalise to : either AR, AP or Deposit.
    • Correction is now accessible for view transactions screen irrespective of whether or not there are multiple non zero balances. Which will allow you to move balance in full to a different type.
    • Rationalisations can be modified just normal AR/AP/Deposit postings
    • New screen design: below example operator has selected rationalising to Deposits:
Release 5.2.96 March 13, 2024 barney

Tweaks and fixes

  • Remittance advice
    • Newly added account name field only allowed 20 characters in setup screen. Increased this to something more useful
    • Statement bugfix : if cheques was disabled, entire remit advise would not print, including EFT/bank details. Now fixed
  • Browse Dealer units. The screen was excessively slow for one dealer; taking about 1 second to update screen. Remotely fixed but noticed that database performance for this screen is complex and brittle. Made some modest improvements here with this version and basic testing shows a refresh should typically take about 5-20 milliseconds now. There is more scope to improve underlying database activity but work involved is non trivial and will likely require a DB schema update so will leave as is for now.
  • Fiche Import - Added ability to import MV Agusta from KTM dealer portal.  Made some changes to importer which may improve results for importing other KTM group brands. (better de-duplication of units and catalogues within a unit)
  • Part Image Import (KTM) - bugfix with parts with multiple images : would import last image only meaning things like helmets and jackets only the back facing image would be imported; not principal image. Tweaked to import all images.
  • Manual Backup - Manual backup creation may fail to identify and backup database sequences precisely. Fixed in this version. This issue does not impact online backup service which is what we use exclusively to recover from failed dealer equipment where the onsite database is lost.  Fix is for sake of completeness and redundancy as manual backup system is now historical and no longer in active use; also manual backup has some ongoing internal utility for our own dev systems. Existing manual backups will be fine, except their sequences may be uninitialised and will require manual initialisation after a restore.
  • Honda op2ma reporting - Reworked these analytics/KPI reports from new requirements from Honda + Op2ma. Access via business -> reports -> analytics/KPI
Next Page »