My situation is this; I have a document library that contains reports (InfoPath 2010 forms). When an item is submitted it should clearly be marked as un-approved until it has passed an approval workflow (Custom 2010 SPD workflow). Once approved it should appear as a major version. Anyone can edit this major version but whenever an edit is made it should be saved as a copy and the original major version should remain for all to see. Once this copy has been approved it should replace the original approved document. Version history should be kept (so old major versions can be restored).
I've accomplished this by causing the submit button to append "-UNAPPROVED" onto the file name whenever it is saved, this works well. However, taking the -UNAPPROVED tag off when the workflow is completed (and approved) and then saving over the top of the last major is causing problems. Just changing the "name (for use in forms)" variable in the workflow throughs an error, telling the workflow to delete the previous version before the rename fixes this, but I needed to add a delay between the deletion and renaming or I get another error. This means although I've come up with a solution that performs the task, there is a ~5 min delay (waiting for the timer service) before the file is renamed and no version history is kept.
My question is this: Have I gone about this the wrong way? Or is there a way within my SPD workflow to save my document named Document01-"UNAPPROVED" over the top of Document01 and keep the version history (preferably without a 5 minute delay).