I just read about smart client applications, where in it utilizes off line processing, where in data can be taken offline, processed and then the application goes online again. I have a question about these, imagine I have this scenario:
A sales personnel encoded a sales order, disconnects from the server and added a few items on the SO. A user who has a right to delete SOs deleted that SO. The user-creator gets online again and saved the SO. What should happen?
1) An error will be sent to the user since the SO was deleted
2) A new SO will be created with the added items during offline
3) The SO should have not been deleted. This means even "admin" should have no rights to delete it.
- In this case how will the program knows which item the admin can delete
4) Any ideas and suggestions

Thanks in advance!