- Bugfix with print preview introduced in last release. The preview was distorted and skewed. The actual print worked fine still. Now fixed
- Backup : memorize backup settings. Make options more understandable. Hide options that are confusing unnecessary (ability to backup program files, and ability to disable backup of schema).
- Create backup file changes
- New option : only backup critical data. Idea is to make backups faster/smaller. If selected the following information is not backed up.
- All catalogue information and images (rationale: you can always reinstall them)
- Email attachments older than 2 months (rationale: attachments are just report .pdfs anyway. You can always rerun the report.)
- Default backup program files to off. Not necessary. Makes backup faster/smaller
- Improved performance of backup slightly by optimising backup creation code for performance and for making backup file slightly smaller by writing space efficient representations of database information where possible.
- Improved memory efficiency of backup. Previously, trying to backup big data on computer with little memory would cause c9 to crash because c9 would want to store entire database table in memory before saving it to disk. Now setup so backup streams from database to backup file in such a way that large amounts of memory are not required.
- Catalogues : tools in utilities to allow you to manually manipulate catalogues. Delete units/fiche, change unit image, fiche category etc.
- Catalogues: fixed problems with Yamaha import.
Requires database changes; upgrade will force you to log all terminals out before proceeding
- Added ability to import Kawasaki catalogues from Kawasaki's dealer website
- Point of sale : ability to set line item discounts. Normal discount function still works, but will only apply on invoice items which do not have a individual line item discount %. So line item discounts effectively override the discount given at end of invoice
- Point of sale : ability to discount parts sold to units and workshop jobs; so discount offered appears against profit for the spares side of the business. Also ability to apply cost/margin based discounting when selling spares to sales/workshop department
- New spares report : sales. Shows per part buy/sell figure and inventory. Designed mainly for Harley reporting requirements.
- Tweak / Bug Fixes
- Do not allow user to key in discount amount that exceeds value of parts supplied.
- F12 pickup order. System would default discount settings to default settings for the account, not the settings used on the original invoice
- Calculating discount for per item profit reporting; could be out by margin of 1 or 2 cents for a given part. System was supposed to calculate to accurate of 4 decimal places, but under some circumstances, when discount is applied on multiple parts and the discount rounds down to nearest 0.05/0.10, it would miscalculate margin by a portion of the rounding down for 2nd and subsequent parts on invoice. Now fixed
- Sell units. Sell spares to a new unit then cancel add, or delete add. When go into spares again, the spares on the deleted/unadded unit are still there. Fixed: system now prunes spares list after changing units on the invoice
- Spares A4 invoice : incorrectly printing print/discount header when no discount is ever printed
- Spares a4 invoice : print discount to be offered on parts on order when eventually invoiced when the invoice does not have any supplied items on it already to offer a discount.
- Sync to MYOB : would report error under some circumstances and state that sync did not work. Message is incorrect; sync indeed does work and condition that caused the 'error' to appear is normal behaviour (skip supplier). Modified c9 to suppress reporting this message.
Database changes. C9 will force you to log all terminals out during upgrade
- Set web link/text. Would crash trying to import jpg files. Now fixed
- Import parts catalogue. Currently supported: Honda, KTM and Yamaha (Yamaha not tested)
- Print spares credit note: redesign to mirror new spares invoice proforma : with ability to fold into a window envelope.
- Print business name on spares invoice: increase size of field on print page so long business names print fully
- Workshop : option to sort by job status
- Browse workshop : disable options which are designed for looking at active jobs only and result in poor database performance when considering historical jobs
- UI improvements to managing website content; make it a bit easier to enter in data.
- Print Job card. Print both Plain Job No and barcoded Job No
Following is a preview of new functionality to be released in c9 in the coming versions. Possibly before Christmas, definitely by new year.
C9 will soon include the ability to import electronic catalogues. From within c9, browse catalogues fast and easy, and sell parts straight off the catalogue.
Catalogues are imported, similar to importing price files. Imported catalogues are also available for publishing on the website.
Example screen shot: Browsing/Finding Units by type/year/model/franchise
Example screen shot: Viewing Catalogues
Release requires database changes and will force you to log all terminals out.
- Spares invoice. If invoice is credit, i.e. prior invoice too too much deposit which is now being refunded, invoice processing was in correct. Key functional issues fixed:
- system inappropriately demanding no cash permissions for clerk key to proceed
- System not asking for method of payment for cash return
- System not reporting cash till takings at end of day correctly (because of point directly above)
- Website management. Bugfix with resizing JPG images. Recent changes to fix GIF images broke JPG. Hopefully now all are fixed.
- Recently added ability to include {if(...)} in workshop complete SMS. With example below, the SMS sent would have make padded out. i.e.
...Your Honda CBR-1000....
instead of
...Your Honda CBR-1000....
Did not notice this on my phone because my phone removes excess spaces. Now fixed.
- Miner - bulk email filters out archived users as well as users who do not have marketing flag set. Before, all users were considered, including archived ones. Important : existing saved queries will not be automatically fixed after upgrade. You need to load the query, modify the customer, click Disable, then enable on enable bulk sms/email. OK then save for existing saved queries to start to filter out archived customers.
- Customer return deposit. System would allow user to return a deposit amount that exceeded their balance. c9 would warn users that they should not do this, but it would let them do it anyway. Modified so c9 disallows this sort of thing.
- Select/View Job. In main workshop screen allow user to access View : so they can easily access functions like reprinting repair authority without having to goto rarely used Browser menu. Also when selecting a job for something like sell spares to workshop, allow user to view a job during selection process.
- Bug Fixes
- Bug fix in Release 4.243 resulted in a new bug now fixed here. Spares credit, if customer to credit is an account customer then system would always credit invoice to account only; it would not actually respond to attempts to set a cash amount to credit back; but it would permit user to key in payout method.
- Workshop SMS notification. System would send notification to email as well, even if email notification was explicitly disabled. Modified so that system pays attention to setup/customer configuration settings.
- UI tweaks
- Workshop complete SMS template. Following is possible to help fine tune construction of SMS messages.
{if(make='' and model='','job',make&' '&model)}
Example of a full template
Hi {contact}. Your {if(make='' and model='','job',make&' '&model)} is now available for pickup
What this will do is it will render unit make and model, i.e. 'Honda CBR-1000' if set, but if the workshop job does not involve a unit then system will instead render 'Job'. Similar to defining Unit Formula for Stamp Duty Calculation, It is essentially computer programming, using a language called clarion (c9 is written in two languages, clarion and java); so not for the faint of heart. De-constructing the above:
if ( condition ,trueresult, falseresult ) | if condition evaluates to true then use trueresult, else use falseresult |
make='' and model='' | a condition test means if both make and model are blank |
'job' | the true result the literal text Job. Literal strings use single quote (') characters. |
make&' '&model | false result, if either make or model are set. Combines make and model and puts a single space between them. Note & must be used to combine text together. + cannot be used. Clarion assumes + means convert items to numbers first and numerically add them together. |
This version includes database changes. C9 will force you to log all terminals out during upgrade.
The upgrade will modify a number of database items that store large amounts of data, including price files and invoice history. Because of this the upgrade may take up to 10 minutes to complete.
- SMS notification for workshop completion. Allow SMS template to include {make}, {type}, {model} and {contact} place holders.
- Print Spares invoice
- Redesign invoice so that it can be easily stuffed into a a4 window envelope
- Add ability to print line item discount. Only prints if invoice discount is cost or margin discount and if checkbox in setup to enable printing line discount is set.
- Price file descriptions were limited to 30 characters. Extended to 60 characters.
- Updated all affected sub systems. Stock, price files, orders, enquiries, spares/workshop/unit invoice line items
- Updated all affected reports. Key reports/invoices will print description over multiple lines if there is insufficient space
- Tweaks to barcoding & shelf labels.
- Print multiple lines if required
- Ability to print extra tall barcodes for easier scanning
- Visual improvements to positioning of items on a label.
- Web & Image Management
- Recent changes to better anti-alias resized images was causing C9 to crash when dealing with some colomap image types, i.e. gif files and some png files
- When resizing gif images, convert to png as part of the resize
- Manage slide show and fancy text web images. Preset image size to something specific for these image type
- Gallery : checkbox to make gallery a slide show or a simple gallery. Doesn't do anything yet, but web changes will be following shortly.
- Ability to display additional order notes submitted during checkout. Website not yet updated to make use of this ability; website update will follow shortly.
- UI TWeaks
- Workshop : rename reschedule to re-assign. Disable this button if there are no configured regular mechanics
- Weekly workshop planner : show labour, last mechanic and scheduled mechanic
- Print Order : Print supplier details if known. Phone/Fax/Email. Preset email address to permit emailing printed report
- Print customer labels : make easier to access this function via customers/reports.
- Print customer labels : allow lines on the label to flow onto multiple lines. i.e. long names/addresses
- Bugs
- Browse customers : resulting list was only a partial list of selected customers. Now fixed.
This page includes details on things that cause c9 to stop working and how to avoid them in the first place and how to diagnose and correct for them if they occur. The common pattern in these problems are issues that arise in areas outside of c9's control. The solutions are mostly straight forward to perform.
Origin of common problems
Root cause of problems are typically one of the following:
- Physical network problem. Cable has been kicked out; switch/router has failed and needs to restart
- Logical network problem. IP address change, firewall change. Network designation change
- Antivirus problems : sometimes the remedy is worse than the condition.
- A couple of other miscellaneous problems : java auto update for example
Recommended practices to avoid problems occurring in the first place.
1. Do not use wireless networking.
Many people have the mistaken belief that wireless superceeds cabled networks. It most certainly does not. Wireless involves significant tradeoffs; incurs benefits and penalties. Because of this wireless is an alternative for cabled networks, not a replacement. The penalties make wireless unfit in many business environments. Specifically:
- Wireless is slower. Cabled networks will always outperform wireless. Especially environments with excessive RF shielding and where your shop neighbours also heavily use wireless.
- Wireless is less reliable. Network discontinuities are common on wireless links; which can result in poor networking experience.
- Wireless security model is indeterminate; whereas cabled networks are considered physically secure. From the point of view of computers on a wireless network, you could be in an internet cafe, could be in someones home or could be in a private, secure business. Computers on wireless networks make assumptions about the nature of the network and the trustworthiness of other computers on the same network. Sometimes when a link is dropped and reestablished those assumptions are lost and the computer will assume the worst, you are in an untrusted environment. When this happens the computers security firewalls automatically reconfigure disabling business software such as c9 from using the network.
2. Use appropriate fit for purpose anti virus software.
Some anti virus software is too clever for its own good. They are highly pervasive and invasive, take control of your computer and when things go wrong take your computer down with them.
- On multiple occasions we have witnessed Norton Anti virus damage computers and c9. Specifically when Norton licence runs out it disables certain operations on your computer that all modern networked database systems, including c9's database, rely on. Meaning c9's database cannot start.
- On at least one occasion we have witnessed AVG physically delete files necessary for operation of c9 rendering c9 unusable until it is reinstalled; on the completely incorrect assumption that such items are malicious.
- Avoid 3rd party firewall solutions. Microsoft's default firewall is perfectly fine. If you insist on using a 3rd party solution c9 will not be able to bail you out of trouble if it mis-behaves. Maintaining a 3rd party firewall is the responsibility of whomever installed it, i.e. your local IT support. They need to ensure the firewall on the server computer allows inbound traffic ( on TCP port 5432) so that terminals can access the database.
- C9 recommends Microsoft Security Essentials. It is compact and non invasive and it has never negatively interfered with c9.
3. Use static IP address for your server
If you server keeps changing IP address and you have to keep feeding it in, you can stop this by assigning your server a static IP address. Your local IT support should be able to handle this task without difficulty. Configuring static IP does require consulting your router/modem technical documentation although, so there is no surefire recipe we can share on how to do this. It is requires IT expertise from someone physically close to your computer network.
Static IP for terminals is unnecessary. There is no benefit/disadvantage in terms of c9 itself.
Problems and their solutions
C9 does not start at all. Black screen flashes and then nothing.
Explanation 1 : problem with java update
Java is supposed to automatically update. We have observed in some cases the update silently fails if java is also running at the same time. The failure damages java and c9 can no longer run. The solution is simple: uninstalled and reinstall java.
To uninstall goto control panel, programs, locate java and remove it.
To reinstall, goto http://java.com/ click on free download and follow instructions.
Explanation 2: problem with older versions of c9
On older versions of c9, a network error while version was updating could damage c9. From windows explorer, goto folder \c9\ on main local C: drive. Delete any file that ends with 'tmp' and contains lots of random numbers and letters. Try running c9 again.
C9 reports cannot find database one one terminal only
You get a screen that looks like this:
Explanation 1 : physical network
Often it is because a cable has become dislodged. Seems like such as pithy excuse, but most of the time when we get a support call about this, a loose cable is always the explanation. Check following:
- Make sure both terminal and server can both access the internet. This is a good simple way to verify that the network is okay
- Check physical cables
- Try switching on and off your router and or modem. Routers can fail and require restarting. Some more than others.
Once done, click retry.
Explanation 2 : change in IP address
The client of the server has changed IP address and cannot discover each other on the network. Click on 'show database manager' to take this to the next step to fix. An explanation on how to fix this is described here:
http://c8software.com.au/wp/2011/02/adding-a-new-terminal/
C9 reports cannot find database one any terminal (but is okay on server)
Explanation 1 : physical network
Again likely explanation is physical network. Most likely the link between the server itself and your router/modem. See above.
Explanation 2 : change in IP address
As above the network has reconfigured itself and your networks operates off IP addresses.
http://c8software.com.au/wp/2011/02/adding-a-new-terminal/
Explanation 3 : firewall and/or antivirus
Another possibility is firewall or anti virus is preventing computers from accessing the server. Diagnosing such problems can be difficult and require networking expertise. These problems are typically very rare although.
If you are using windows firewall, you can access if via control panel. The firewall needs to allow port 5432 into the server.
Example screen shot from Windows XP:
And windows 7:
When you install C9 database it will automatically add firewall rule. If you are having problems you can try and uninstall c9 database and reinstall it; this will re-add the rule. Not that uninstalling an reinstalling the c9 database is quite safe. The process only uninstalls and reinstalls the database program. The data itself, saved in folder c:\c9db\8.4\data\ is not modified during uninstall/install.
To unistall: goto control panel, programs. Select 'C9 PostgreSQL x.x.x
To reinstall: download and run database install from c9 website here: http://c8software.com.au/wp/downloads/
Explanation 4 : firewall and wireless network
Running your server over wireless is a terrible idea; and something c9 strenuously discourages. We are always willing to try and help, but insisting on doing this is a disservice to both yourself and us because it wastes our time; and we may refuse to render support in such situations. If you insist on doing this we can at least here point you at a couple of things that may provide temporary relief. The only proper solution is to cable your server.
Most common cause of this problem is configured network location. Right click on network icon and select "Open Network and Sharing center"
Note the highlighted section; it shows the assumed location of your network. Click on it to change it.
Typically, 'Work network' is the location you need to enable firewall to permit c9. If that does not work experiment with other options.
One last option, via advanced firewall is to modify locations firewall rule applies. Select all of them.
C9 reports cannot find database, including the server computer
Typically this means database is not running.
Explanation 1 : database temporarily shutdown for some unknown reason
This is rare and generally shouldn't happen at all. Try rebooting the server first before considering other explanations.
Explanation 2 : anti virus - disabling socket bind operations
A fairly technical problem. An essential service needed by all modern network based databases is not functioning.
Typically caused by one of two things:
- Anti virus needs money. : pay your anti virus fee and problem will disappear. Alternatively, our recommendation is delete your anti virus and use Microsoft Security Essentials : it is free.
- Computer is screwed. Specifically winsock stack is broken; possibly a broken LSP (i.e. anti virus).
The latter is hard to fix, so recommend confirming diagnosis first. Two ways to do this.
Firstly in logs for c9s database you should see some sort of indication of this. Goto following:
c:\c9db\8.4\data\pg_log
Locate the latest file and open it in notepad. If you see something like this, then the problem is indeed this:
LOG: could not receive data from client: An operation was attempted on something that is not a socket.
Another diagnostic tool is netcat (or nc). If you run it like this:
nc - l 5433
And output is this:
local listen fuxored : INVAL
This also confirms the problem.
The problem is likely that you have been victimized by over-zealous yet defective anti virus. The only reliable, simple solution is to do a system restore and then uninstall/reinstall c9 database as described above. Something your local IT support will need to do.
Explanation 3 : anti virus - deleting C9 Database executable files
Anti virus may delete database files. For example we've observed anti virus delete the following critical file.
c:\c9db\8.4\bin\postgres.exe
If this has happened, the option is to uninstall and reinstall the database a described previously.
Explanation 4 : postgres user problems
The database c9 installs is called postgres. Postgres insists on creating a separate user on your computer. As annoying as this is, and many people who use postgres complain about it, it is intrinsic to the product itself and the maintainers of postgres are adamant about retaining this behaviour.
A common problem is people delete the postgres user assuming it has no purpose. This will kill c9. To fix it you just need to uninstall and reinstall the database as described above.
Another less common problem relates to people who insist on using server/professional edition windows or complex domain name networks. One of c9's strengths is that it does not require special hardware or software to run. It does not require a special 'server' edition that can cost thousands of dollars; meaning your shop computer system remains both inexpensive and simple. Though some local IT support staff erroneously insist that you need to buy an expensive server and maintain an overly complex and over-engineered network configuration only they can possibly understand and manage. In terms of c9, it is not the case and infact creates more problems by layering in unnecessary complexity. The following is technical information aimed at such IT support staff. C9 does not provide technical support for such configurations, though we provide pointers, as a courtesy, so that such IT local support staff are able to try and push through their self imposed technical problems and get the system to work.
- postgres user must be allowed to execute as a windows service.
- ideally, do not enable password expiry. Otherwise postgres user will expire at some point and database will stop working
- ideally, permit the server to allow simple passwords. If you don't do this then you'll need to disentangle instructions encoded in c:\c9db\8.4\c9install\postinstall.bat and make necessary changes. This is not something we will provide technical support on
- ideally, do not configure disk quotas. If you insist, give postgres a generous configuration, at least 100GB so that there is no possibility of running into problems with quota limits.