Total packages moves are all stock moves done and quantity > 0
Current packages_moves method get all moves that are in done state, but not control those moves that quantity is 0 and not added in a package.
Scenario:
1- Create a customer shipment and add moves
2- In outgoing moves, some moves add to qty to 0.
3- Add in package moves that qty > 0. Not add moves that quantity = 0.
When done the shipment, the raise_user_error because we have outgoing moves that qty = 0, done state and not available those moves in the package.