Sometime back I posted on how to change/delete read only records in Dynamics CRM but this does not work for contract.
Contract record once becomes active/invoice there is no supported way to change the contract back to draft. So I created custom workflow activity which allows users to change contract back to draft.
Once contract is in draft state, user can change any fields or delete the contract from the system.
I have shared this utility on CodePlex at Here
This application also contains some other contract utility. Following are the details steps regarding usage of this application
Step 1: Download the application files and register this assembly using plug in registration tool
Step 2 : Once assembly is registered successfully, go to setting and create new workflow against contract, make sure contract is owner by admin user who have access to modify the database tables.
Step 3: Call this workflow “Change Status to Draft” and add step from Contract utilities -> Change Status to Draft. (As per following screen print).
Step 4: provide input parameters (i.e. database connection to string)
Step 5: Now publish the workflow.
Step 6: go to contract screen and run this workflow against relevant active/invoiced contract record and this workflow will make contract draft. Now user can change any field on this contract or delete the contract now
Note: This is unsupported customization, Please unit test this module on your development/test environment before applying it to Live Environment..