protected B2BPermissionData populateB2BPermissionDataFromForm( final B2BPermissionForm b2BPermissionForm) throws ParseException { final B2BPermissionData b2BPermissionData = new B2BPermissionData(); b2BPermissionData.setOriginalCode(b2BPermissionForm.getOriginalCode()); final String permissionCode = b2BPermissionForm.getCode(); if (StringUtils.isNotEmpty(permissionCode)) { b2BPermissionData.setCode(permissionCode); } else { b2BPermissionData.setCode(assignPermissionName(b2BPermissionForm)); } final B2BPermissionTypeData b2BPermissionTypeData = b2BPermissionForm.getB2BPermissionTypeData(); b2BPermissionData.setB2BPermissionTypeData(b2BPermissionTypeData); final CurrencyData currencyData = new CurrencyData(); currencyData.setIsocode(b2BPermissionForm.getCurrency()); b2BPermissionData.setCurrency(currencyData); b2BPermissionData.setUnit( companyB2BCommerceFacade.getUnitForUid(b2BPermissionForm.getParentUnitName())); final String permissionTimespan = b2BPermissionForm.getTimeSpan(); if (StringUtils.isNotEmpty(permissionTimespan)) { b2BPermissionData.setPeriodRange(B2BPeriodRange.valueOf(b2BPermissionForm.getTimeSpan())); } final String monetaryValue = b2BPermissionForm.getValue(); if (StringUtils.isNotEmpty(monetaryValue)) { b2BPermissionData.setValue( Double.valueOf(formatFactory.createNumberFormat().parse(monetaryValue).doubleValue())); } return b2BPermissionData; }
public String editPermission( final B2BPermissionForm b2BPermissionForm, final BindingResult bindingResult, final Model model, final RedirectAttributes redirectModel) throws CMSItemNotFoundException, ParseException { b2BPermissionFormValidator.validate(b2BPermissionForm, bindingResult); if (bindingResult.hasErrors()) { model.addAttribute(b2BPermissionForm); GlobalMessages.addErrorMessage(model, "form.global.error"); return editPermission(b2BPermissionForm.getOriginalCode(), model); } final B2BPermissionData b2BPermissionData = populateB2BPermissionDataFromForm(b2BPermissionForm); try { b2bCommercePermissionFacade.updatePermissionDetails(b2BPermissionData); } catch (final Exception e) { LOG.warn("Exception while saving the permission details " + e); model.addAttribute(b2BPermissionForm); GlobalMessages.addErrorMessage(model, "form.global.error"); bindingResult.rejectValue("code", "text.company.managePermissions.code.exists.error.title"); return editPermission(b2BPermissionForm.getOriginalCode(), model); } storeCmsPageInModel(model, getContentPageForLabelOrId(ORGANIZATION_MANAGEMENT_CMS_PAGE)); setUpMetaDataForContentPage( model, getContentPageForLabelOrId(ORGANIZATION_MANAGEMENT_CMS_PAGE)); final List<Breadcrumb> breadcrumbs = myCompanyBreadcrumbBuilder.createManagePermissionsBreadcrumb(); breadcrumbs.add( new Breadcrumb( "/my-company/organization-management/manage-budgets/update", getMessageSource() .getMessage( "text.company.budget.editPage", null, getI18nService().getCurrentLocale()), null)); model.addAttribute("breadcrumbs", breadcrumbs); GlobalMessages.addFlashMessage( redirectModel, GlobalMessages.CONF_MESSAGES_HOLDER, "text.confirmation.permission.updated"); return String.format(REDIRECT_TO_PERMISSION_DETAILS, urlEncode(b2BPermissionData.getCode())); }
public String editPermission(final String permissionCode, final Model model) throws CMSItemNotFoundException { if (!model.containsAttribute("b2BPermissionForm")) { final B2BPermissionData b2BPermissionData = b2bCommercePermissionFacade.getPermissionDetails(permissionCode); final B2BPermissionForm b2BPermissionForm = new B2BPermissionForm(); b2BPermissionForm.setCode(b2BPermissionData.getCode()); b2BPermissionForm.setOriginalCode(b2BPermissionData.getCode()); b2BPermissionForm.setParentUnitName(b2BPermissionData.getUnit().getUid()); b2BPermissionForm.setPermissionType(b2BPermissionData.getB2BPermissionTypeData().getName()); b2BPermissionForm.setB2BPermissionTypeData(b2BPermissionData.getB2BPermissionTypeData()); if (!(B2BPermissionTypeEnum.B2BBUDGETEXCEEDEDPERMISSION.equals( B2BPermissionTypeEnum.valueOf(b2BPermissionData.getB2BPermissionTypeData().getCode())))) { b2BPermissionForm.setTimeSpan(b2BPermissionData.getTimeSpan()); b2BPermissionForm.setValue( formatFactory.createNumberFormat().format(b2BPermissionData.getValue())); b2BPermissionForm.setCurrency(b2BPermissionData.getCurrency().getIsocode()); } model.addAttribute(b2BPermissionForm); } storeCmsPageInModel(model, getContentPageForLabelOrId(ORGANIZATION_MANAGEMENT_CMS_PAGE)); setUpMetaDataForContentPage( model, getContentPageForLabelOrId(ORGANIZATION_MANAGEMENT_CMS_PAGE)); final List<Breadcrumb> breadcrumbs = myCompanyBreadcrumbBuilder.createManagePermissionsBreadcrumb(); breadcrumbs.add( new Breadcrumb( String.format(MANAGE_PERMISSIONS_EDIT_URL, permissionCode), getMessageSource() .getMessage( "text.company.managePermissions.edit.page", new Object[] {permissionCode}, "Edit Order Threshold {0}", getI18nService().getCurrentLocale()), null)); model.addAttribute("breadcrumbs", breadcrumbs); model.addAttribute("metaRobots", "no-index,no-follow"); return ControllerConstants.Views.Pages.MyCompany.MyCompanyManagePermissionsEditPage; }
protected String assignPermissionName(final B2BPermissionForm b2BPermissionForm) { final StringBuilder permissionCode = new StringBuilder(); final String permissionType = b2BPermissionForm.getB2BPermissionTypeData().getCode(); if (!B2BPermissionTypeEnum.B2BBUDGETEXCEEDEDPERMISSION.equals( B2BPermissionTypeEnum.valueOf(permissionType))) { final String currency = b2BPermissionForm.getCurrency(); permissionCode.append((StringUtils.isNotEmpty(currency) ? currency : "")); permissionCode.append(SINGLE_WHITEPSACE); permissionCode.append(b2BPermissionForm.getValue()); permissionCode.append(SINGLE_WHITEPSACE); permissionCode.append( getMessageSource() .getMessage( "text.company.managePermissions.assignName.per", null, getI18nService().getCurrentLocale())); permissionCode.append(SINGLE_WHITEPSACE); final String timespan = b2BPermissionForm.getTimeSpan(); permissionCode.append( (StringUtils.isNotEmpty(timespan) ? timespan : getMessageSource() .getMessage( "text.company.managePermissions.assignName.order", null, getI18nService().getCurrentLocale()))); } else { permissionCode.append( getMessageSource() .getMessage( "text.company.managePermissions.assignName.budget", null, getI18nService().getCurrentLocale())); permissionCode.append(SINGLE_WHITEPSACE); permissionCode.append(b2BPermissionForm.getParentUnitName()); } b2BPermissionForm.setCode(permissionCode.toString()); return permissionCode.toString(); }