Not so complicated as the title suggests. Imagine two departments in a Company: Sales and Manufacture. While data (in an ERP software) in Sales may represent contracts, Manufacture has to deal with the production established by these contracts (ex: produce 1,000 pens/month). The challenge here is that Sales should be able to update a contract in any business hour but must not mess up with production until the end of the day. In other words, for Manufacture the contract data should appear as the old one, before update. For Sales, the contract must appear as the new updated one. Manufacture should "see" the update only in the next day.
This is a Java ERP application. How to deal with this kind of situation using a best practice or design pattern?