From reading the code I see that you change only the Move's copy, which keeps the procurements running so I think it's fine.
The only thing that bothers me is that this is not consistent with the Procurement Scheduler, which lacks the same ability to split procurements that can only be partially fulfilled. Until then I'd say this would be better treated as a module.
Just nitpicking, but I'd prefer "ctx = context.copy()" above "ctx = dict(context)".
Also, I think " 'location_id': move.location_id.id" is not needed when copying the stock move.
From reading the code I see that you change only the Move's copy, which keeps the procurements running so I think it's fine.
The only thing that bothers me is that this is not consistent with the Procurement Scheduler, which lacks the same ability to split procurements that can only be partially fulfilled. Until then I'd say this would be better treated as a module.
Just nitpicking, but I'd prefer "ctx = context.copy()" above "ctx = dict(context)". id.id" is not needed when copying the stock move.
Also, I think " 'location_id': move.location_
Lionel Sausin.