There are a few things that cause conflicts, which are listed later. Resolving a conflict is easy, and since you're probably reading this because you have one, we'll start with the solution first.
How to resolve conflicts
Resolving the conflicts is quite straightforward. When a conflict is shown, you can tap on the change in the history to view the details about the change, and why the change is in conflict. The message at the bottom of the popup will say what the problem is.
EasyInvoice is designed to reject changes that would cause problems, so even when you see conflicts, it just means the changes were ignored. The data in the device is safe, although you wont have the conflicting changes present in the device. Simply re-downloading from the server will not resolve the conflicts. This is because all the changes are stored on the server, including the changes that conflict with one another. Effectively the conflicts are two changes that cannot both be made in the device. This applies to the online snapshot too, as all your changes are also processed by our servers to the snapshot to keep it updated. The changes are processed in the order they were made, but local changes are always made straight away. So once you see a conflict in a device, it is likely you will see different conflicts (if any) in other devices.
It is important to deal with the conflicts. As an example, assume the conflict is that an account was created on two devices with the same category and name. At the server, these are two different accounts, and each account has a unique identity which all related information refers to. Only one of the accounts will exist on each device, and all changes that affect the other will not be made on it. Just ignoring the conflict and adding transactions, statements and so on will likely cause more conflicts, as the entries will be added to one account or the other, depending on which one is present in the device.
To resolve the conflict, you simply upload a new snapshot. See How to... (Online Sync). This can be done from any of the devices, and once done, all outstanding changes other devices are discarded, and all devices are re-synchronised to the snapshot. In the example of adding the same account in two places, you may have made more changes linked to that account, such as adding transactions. You could pick the device that you had made the most changes, and use this to upload the snapshot.
When complete, your other devices will need to sync before you can make any changes in them. They will then download the new snapshot and continue syncing.
The conflicts can be avoided very easily when you know what causes them.
Deleting records on one device, then making changes to them on another before they have time to sync can cause these "does not exist" conflicts. These are not serious, because the record will be deleted on all devices when they sync, but they are a good warning that you made changes that were discarded.
Account does not exist
This is caused by deleting an account on one device and...
- Saving the same account on another.
- Saving a new transaction linked to it on another.
- Saving a new statement for it on another.
- Saving a new rate card for it (if a customer account) on another.
Income account does not exist
This is caused by deleting an income account on one device and saving a new rate card or product linked to it on another.
Asset account does not exist
This is caused by deleting an asset account (e.g. stock) on one device and saving a stock product linked to it on another.
Expense account does not exist
This is caused by deleting an expense account (e.g. cost of sales) on one device and saving a stock product linked to it on another.
VAT account does not exist
This is caused by deleting a VAT account on one device and...
- Saving a transaction linked to the VAT account on another.
- Saving a rate card linked to it on another.
Transaction does not exist
This is caused by deleting a transaction on one device and...
- Saving it (or a linked transaction such as a payment for an invoice) on another.
- Adding it to a statement on another.
Statement does not exist
This is caused by deleting a statement on one device and adding a transaction to it on another.
Worker-Customer combination does not exist
This is caused by deleting the combination of worker and customer from one device and...
- Saving time against it on another.
- Saving a rate card for it on another.
Time Entry does not exist
This is caused by deleting an hours entry on one device and saving it on another.
Rate Card does not exist
This is caused by deleting a rate card for worker-customer combination on one device and saving it on another.
Worker does not exist
This is caused by deleting a worker on one device and saving a new rate card for the worker on another.
Product does not exist
This is caused by deleting a product on one device and saving a transaction that references it on another.
These conflicts are more serious, as they indicate that a duplicate exists in the system. Each device only has one record (account, transaction, statement and so on), but the devices are out of sync.
- Created the same business setting in two places.
- Created the same account in two places.
- Reconciled the same transaction in two places.
- Created the same statement in two places.
- Created the same account in two places.
- Created the same account setting in two places.
- Created the same worker/customer combination in two places.
How to avoid conflicts
The following tips will help to avoid a conflict from happening.
- If possible, allow each device to stay in sync: when you start the app, watch the status bar for the sync messages and the green light.
- When you save a record in the app, you should see the spinning wheel at the top of the screen, next to the WiFi symbol. This is the app sending your changes to the online system.
- Editing data while offline from the service is okay, as long as no other devices are editing the same records.
- If a conflict does occur, it's likely that you'll want to re-upload from a different device than the one reporting the conflict. Especially if the conflict is quite far back in the history.