If you’re making the invoice with Include Payment (POS) then system always pulls the data from the respective POS Profile. If you want to change this behaviour you have to make changes in the core code.
You need to remove True from the method get_pos_profile_item_details
If direct from Sales Invoice, Include POS, the custom script works perfectly.
If Create from Sales Order to Sales Invoice, it have problems.
For (2) also, if I remove all users from POS Profile, it still pull from POS. But If I add one dummy user, other users will works correctly according to the custom script.
So I’m wondering modify this works. Kindly comment.