handles percent vs other discount types