@ResponseBody
  @RequestMapping(
      value = "/budgets/deselect",
      method = {RequestMethod.POST})
  @RequireHardLogIn
  public B2BSelectionData deselectBudgetForCostCenter(
      @RequestParam("costCenterCode") final String costCenterCode,
      @RequestParam("budgetCode") final String budgetCode)
      throws CMSItemNotFoundException {
    try {
      b2bCommerceCostCenterFacade.deSelectBudgetForCostCenter(costCenterCode, budgetCode);
    } catch (final Exception e) {
      LOG.error(e.getMessage(), e);
    }
    final B2BBudgetData b2BudgetData = companyB2BCommerceFacade.getBudgetDataForCode(budgetCode);
    final B2BSelectionData b2BSelectionData = new B2BSelectionData();
    if (b2BudgetData != null) {
      b2BSelectionData.setId(b2BudgetData.getCode());
      b2BSelectionData.setNormalizedCode(
          b2BudgetData.getCode() == null ? null : b2BudgetData.getCode().replaceAll("\\W", "_"));
      b2BSelectionData.setSelected(false);
      b2BSelectionData.setActive(b2BudgetData.isActive());
    }

    return b2BSelectionData;
  }
 protected B2BSelectionData populateDisplayNamesForRoles(final B2BSelectionData b2BSelectionData) {
   final List<String> roles = b2BSelectionData.getRoles();
   final List<String> displayRoles = new ArrayList<String>(roles.size());
   for (final String role : roles) {
     displayRoles.add(
         getMessageSource()
             .getMessage(
                 "b2busergroup." + role + ".name",
                 null,
                 role,
                 getI18nService().getCurrentLocale()));
   }
   b2BSelectionData.setDisplayRoles(displayRoles);
   return b2BSelectionData;
 }