For 7.0 Our simple use-case involves vendor-managed inventory where we want the vendor to input their picking and be able to generate a draft invoice from it which we then approve after an audit. However, pickings added under incoming shipments cannot be invoiced unless they are related to a purchase order. We do not need the purchase order though. And the extra steps involved for one are unnecessary work in our use-case.
The only way I can find to get around this behavior is to write a trigger function which updates each stock_picking record created with invoice_state = 2binvoiced.
Is there an easier and less ugly solution?
You are missing out on the validation step. The vendor inputs 10 cases. You have 9 in the warehouse. How do you know where the missing case is? Did it come off the truck? Without an order to match with a picking you will never know. Unless you trust your vendors and delivery companies a lot :)