Re-use on_change_with_amount in get_amount

issue4167
review5591002