When adding, renewing, or rejoining a Membership, users have the option to add a discount or promotional code. This option does not exist when upgrading a membership.
Promotional codes are not allowed on mid-term upgrades. The reason being is a promotion is associated with the whole term, so if you are upgrading a one year membership from level 1 to level 2, it is assumed the promotion would be for the whole term. Since the upgrade is taking place during a period of the actual term there is no way to determine if this should be pro-rated it or if the promotion should be left at its full value.