Found error in price calculation logic while refactoring code. Also added new procedure to end promotion to avoid code duplication