Product's amounts can be negative, in case of discounts (treasurers are free to generate what invoice they want)
Use a proxy for special transactions in treasury app for modularity (not a clean way, but without any other solution...)