[fixes #54561932] fix price validations for discounts

allow price greater than or equal to zero
check discount price on an item my item basis instead of a transaction
by transaction basis