+1 for using Sales Orders for sale date and Sales Invoice for payment date.
One thing that can be “annoying” with Sales orders is the Delivery Status or percentage delivered.
I created Client and Server scripts to “forcefully” edit the delivered as 100%.
Others perfer to close the Sales Order when not using Delivery Notes.
You can see my scripts here.
Does your company maintain inventory?