/** * Most of the code in the Qalingo project is copyrighted Hoteia and licensed * under the Apache License Version 2.0 (release version 0.8.0) * http://www.apache.org/licenses/LICENSE-2.0 * * Copyright (c) Hoteia, 2012-2014 * http://www.hoteia.com - http://twitter.com/hoteia - contact@hoteia.com * */ package org.hoteia.qalingo.core.web.mvc.factory; import java.text.DateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.hibernate.Hibernate; import org.hoteia.qalingo.core.Constants; import org.hoteia.qalingo.core.domain.AbstractAttribute; import org.hoteia.qalingo.core.domain.AbstractCatalog; import org.hoteia.qalingo.core.domain.AbstractCatalogCategory; import org.hoteia.qalingo.core.domain.AbstractPaymentGateway; import org.hoteia.qalingo.core.domain.AbstractRuleReferential; import org.hoteia.qalingo.core.domain.Asset; import org.hoteia.qalingo.core.domain.AttributeDefinition; import org.hoteia.qalingo.core.domain.BatchProcessObject; import org.hoteia.qalingo.core.domain.CatalogCategoryMaster; import org.hoteia.qalingo.core.domain.CatalogCategoryVirtual; import org.hoteia.qalingo.core.domain.Company; import org.hoteia.qalingo.core.domain.Customer; import org.hoteia.qalingo.core.domain.DeliveryMethod; import org.hoteia.qalingo.core.domain.EngineSetting; import org.hoteia.qalingo.core.domain.EngineSettingValue; import org.hoteia.qalingo.core.domain.Localization; import org.hoteia.qalingo.core.domain.Market; import org.hoteia.qalingo.core.domain.MarketArea; import org.hoteia.qalingo.core.domain.MarketPlace; import org.hoteia.qalingo.core.domain.OrderPurchase; import org.hoteia.qalingo.core.domain.PaymentGatewayAttribute; import org.hoteia.qalingo.core.domain.PaymentGatewayOption; import org.hoteia.qalingo.core.domain.ProductAssociationLink; import org.hoteia.qalingo.core.domain.ProductMarketing; import org.hoteia.qalingo.core.domain.ProductSku; import org.hoteia.qalingo.core.domain.Retailer; import org.hoteia.qalingo.core.domain.Store; import org.hoteia.qalingo.core.domain.Tax; import org.hoteia.qalingo.core.domain.User; import org.hoteia.qalingo.core.domain.Warehouse; import org.hoteia.qalingo.core.domain.enumtype.BoUrls; import org.hoteia.qalingo.core.domain.enumtype.FoUrls; import org.hoteia.qalingo.core.fetchplan.FetchPlan; import org.hoteia.qalingo.core.i18n.BoMessageKey; import org.hoteia.qalingo.core.i18n.enumtype.I18nKeyValueUniverse; import org.hoteia.qalingo.core.i18n.enumtype.ScopeCommonMessage; import org.hoteia.qalingo.core.i18n.enumtype.ScopeReferenceDataMessage; import org.hoteia.qalingo.core.i18n.enumtype.ScopeWebMessage; import org.hoteia.qalingo.core.service.BackofficeUrlService; import org.hoteia.qalingo.core.web.mvc.viewbean.AssetViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.AttributeDefinitionViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.AttributeValueViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.BatchViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.CatalogCategoryViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.CatalogViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.CommonViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.CompanyViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.CustomerViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.DeliveryMethodViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.EngineSettingValueViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.EngineSettingViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.GlobalSearchViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.LegalTermsViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.LocalizationViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.MarketAreaViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.MarketViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.MenuViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.OrderViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.PaymentGatewayViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.ProductAssociationLinkViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.ProductMarketingViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.ProductSkuViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.RetailerViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.RuleViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.SecurityViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.SeoDataViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.StoreViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.TaxViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.UserViewBean; import org.hoteia.qalingo.core.web.mvc.viewbean.WarehouseViewBean; import org.hoteia.qalingo.core.web.resolver.RequestData; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * */ @Service("backofficeViewBeanFactory") public class BackofficeViewBeanFactory extends ViewBeanFactory { @Autowired protected BackofficeUrlService backofficeUrlService; @Override public CommonViewBean buildViewBeanCommon(final RequestData requestData) throws Exception { final CommonViewBean commonViewBean = super.buildViewBeanCommon(requestData); commonViewBean.setHomeUrl(backofficeUrlService.generateUrl(BoUrls.HOME, requestData)); commonViewBean.setLoginUrl(backofficeUrlService.generateUrl(BoUrls.LOGIN, requestData)); commonViewBean.setForgottenPasswordUrl(backofficeUrlService.generateUrl(BoUrls.FORGOTTEN_PASSWORD, requestData)); commonViewBean.setLogoutUrl(backofficeUrlService.generateUrl(BoUrls.LOGOUT, requestData)); commonViewBean.setPersonalDetailsUrl(backofficeUrlService.generateUrl(BoUrls.PERSONAL_DETAILS, requestData)); commonViewBean.setContextJsonUrl(backofficeUrlService.generateUrl(BoUrls.CONTEXT, requestData)); commonViewBean.setCurrentBackofficeLocalization(buildViewBeanLocalization(requestData, requestData.getBackofficeLocalization())); return commonViewBean; } @Override public SeoDataViewBean buildViewSeoData(final RequestData requestData) throws Exception { final Locale locale = requestData.getLocale(); final SeoDataViewBean seoDataViewBean = super.buildViewSeoData(requestData); // TODO : canonical urls String pageTitle = getCommonMessage(ScopeCommonMessage.SEO, BoMessageKey.PAGE_META_OG_TITLE, locale); seoDataViewBean.setPageTitle(pageTitle); String metaAuthor = getCommonMessage(ScopeCommonMessage.SEO, BoMessageKey.SEO_META_AUTHOR, locale); seoDataViewBean.setMetaAuthor(metaAuthor); String metaKeywords = getCommonMessage(ScopeCommonMessage.SEO, BoMessageKey.SEO_META_KEYWORDS, locale); seoDataViewBean.setMetaKeywords(metaKeywords); String metaDescription = getCommonMessage(ScopeCommonMessage.SEO, BoMessageKey.SEO_META_DESCRIPTION, locale); seoDataViewBean.setMetaDescription(metaDescription); String metaOgTitle = getSpecificMessage(ScopeWebMessage.SEO, BoMessageKey.PAGE_META_OG_TITLE, locale); seoDataViewBean.setMetaOgTitle(metaOgTitle); String metaOgDescription = getSpecificMessage(ScopeWebMessage.SEO, BoMessageKey.PAGE_META_OG_DESCRIPTION, locale); seoDataViewBean.setMetaOgDescription(metaOgDescription); String metaOgImage = getSpecificMessage(ScopeWebMessage.SEO, BoMessageKey.PAGE_META_OG_IMAGE, locale); seoDataViewBean.setMetaOgImage(metaOgImage); return seoDataViewBean; } public List<MenuViewBean> buildListViewBeanHeaderNav(final RequestData requestData) throws Exception { List<MenuViewBean> menuViewBeans = new ArrayList<MenuViewBean>(); return menuViewBeans; } public List<MenuViewBean> buildListViewBeanHeaderMenu(final RequestData requestData) throws Exception { List<MenuViewBean> menuViewBeans = new ArrayList<MenuViewBean>(); return menuViewBeans; } public List<MenuViewBean> buildListViewBeanMorePageMenu(final RequestData requestData) throws Exception { final HttpServletRequest request = requestData.getRequest(); final User currentUser = requestData.getUser(); final Locale locale = requestData.getLocale(); final String currentUrl = requestUtil.getCurrentRequestUrl(request); final List<MenuViewBean> menuViewBeans = new ArrayList<MenuViewBean>(); // TODO : denis : move this part in the global list menu java/vm int ordering = 1; MenuViewBean menuViewBean = new MenuViewBean(); menuViewBean.setCssIcon("fa fa-question"); menuViewBean.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "faq", locale)); menuViewBean.setUrl(backofficeUrlService.generateUrl(BoUrls.FAQ, requestData)); menuViewBean.setActive(currentUrl.contains(BoUrls.FAQ.getUrlPatternKey())); menuViewBean.setOrdering(ordering++); menuViewBeans.add(menuViewBean); menuViewBean = new MenuViewBean(); menuViewBean.setCssIcon("fa fa-user"); menuViewBean.setName(getSpecificMessage(ScopeWebMessage.COMMON, "header_link_my_account", locale)); menuViewBean.setUrl(backofficeUrlService.generateUrl(BoUrls.PERSONAL_DETAILS, requestData, currentUser)); menuViewBean.setActive(currentUrl.contains(BoUrls.PERSONAL_DETAILS.getUrlPatternKey())); menuViewBean.setOrdering(ordering++); menuViewBeans.add(menuViewBean); menuViewBean = new MenuViewBean(); menuViewBean.setCssIcon("fa fa-lock"); if(currentUser != null){ menuViewBean.setName(getSpecificMessage(ScopeWebMessage.AUTH, "header_title_logout", locale)); menuViewBean.setUrl(backofficeUrlService.generateUrl(BoUrls.LOGOUT, requestData)); menuViewBean.setOrdering(ordering++); menuViewBean.setActive(currentUrl.contains(BoUrls.LOGOUT.getUrlPatternKey())); } else { menuViewBean.setName(getSpecificMessage(ScopeWebMessage.AUTH, "header_title_login", locale)); menuViewBean.setUrl(backofficeUrlService.generateUrl(BoUrls.LOGIN, requestData)); menuViewBean.setOrdering(ordering++); menuViewBean.setActive(currentUrl.contains(BoUrls.LOGIN.getUrlPatternKey())); } menuViewBeans.add(menuViewBean); return menuViewBeans; } /** * */ public List<MenuViewBean> buildListViewBeanFooterMenu(final RequestData requestData) throws Exception { final Locale locale = requestData.getLocale(); List<MenuViewBean> MenuViewBeans = new ArrayList<MenuViewBean>(); String MENU_TYPE_CUSTOMER_CARE = "MENU_TYPE_CUSTOMER_CARE"; String MENU_TYPE_OUR_COMPANY = "MENU_TYPE_OUR_COMPANY"; int ordering = 1; MenuViewBean menuViewBean = new MenuViewBean(); menuViewBean.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "conditionsofuse", locale)); menuViewBean.setUrl(urlService.generateUrl(FoUrls.CONDITIONS_OF_USE, requestData)); menuViewBean.setType(MENU_TYPE_CUSTOMER_CARE); menuViewBean.setOrdering(ordering++); MenuViewBeans.add(menuViewBean); menuViewBean = new MenuViewBean(); menuViewBean.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "faq", locale)); menuViewBean.setUrl(urlService.generateUrl(FoUrls.FAQ, requestData)); menuViewBean.setType(MENU_TYPE_CUSTOMER_CARE); menuViewBean.setOrdering(ordering++); MenuViewBeans.add(menuViewBean); menuViewBean = new MenuViewBean(); menuViewBean.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "legal_terms", locale)); menuViewBean.setUrl(urlService.generateUrl(FoUrls.LEGAL_TERMS, requestData)); menuViewBean.setType(MENU_TYPE_OUR_COMPANY); menuViewBean.setOrdering(ordering++); MenuViewBeans.add(menuViewBean); menuViewBean = new MenuViewBean(); menuViewBean.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "contactus", locale)); menuViewBean.setUrl(urlService.generateUrl(FoUrls.CONTACT, requestData)); menuViewBean.setType(MENU_TYPE_OUR_COMPANY); menuViewBean.setOrdering(ordering++); MenuViewBeans.add(menuViewBean); menuViewBean = new MenuViewBean(); menuViewBean.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "followus", locale)); menuViewBean.setUrl(urlService.generateUrl(FoUrls.FOLLOW_US, requestData)); menuViewBean.setType(MENU_TYPE_OUR_COMPANY); menuViewBean.setOrdering(ordering++); MenuViewBeans.add(menuViewBean); return MenuViewBeans; } /** * */ public List<MenuViewBean> buildListViewBeanFooterNav(final RequestData requestData) throws Exception { final Locale locale = requestData.getLocale(); List<MenuViewBean> MenuViewBeans = new ArrayList<MenuViewBean>(); String MENU_TYPE_CUSTOMER_CARE = "MENU_TYPE_CUSTOMER_CARE"; String MENU_TYPE_OUR_COMPANY = "MENU_TYPE_OUR_COMPANY"; String MENU_TYPE_PRODUCT = "MENU_TYPE_PRODUCT"; String MENU_TYPE_MORE = "MENU_TYPE_MORE"; MenuViewBean footerMenuList = new MenuViewBean(); footerMenuList.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "conditionsofuse", locale)); footerMenuList.setUrl(urlService.generateUrl(FoUrls.CONDITIONS_OF_USE, requestData)); footerMenuList.setType(MENU_TYPE_CUSTOMER_CARE); MenuViewBeans.add(footerMenuList); footerMenuList = new MenuViewBean(); footerMenuList.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "faq", locale)); footerMenuList.setUrl(urlService.generateUrl(FoUrls.FAQ, requestData)); footerMenuList.setType(MENU_TYPE_CUSTOMER_CARE); MenuViewBeans.add(footerMenuList); footerMenuList = new MenuViewBean(); footerMenuList.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "legal_terms", locale)); footerMenuList.setUrl(urlService.generateUrl(FoUrls.LEGAL_TERMS, requestData)); footerMenuList.setType(MENU_TYPE_OUR_COMPANY); MenuViewBeans.add(footerMenuList); footerMenuList = new MenuViewBean(); footerMenuList.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "contactus", locale)); footerMenuList.setUrl(urlService.generateUrl(FoUrls.CONTACT, requestData)); footerMenuList.setType(MENU_TYPE_OUR_COMPANY); MenuViewBeans.add(footerMenuList); footerMenuList = new MenuViewBean(); footerMenuList.setName(getSpecificMessage(ScopeWebMessage.HEADER_MENU, "followus", locale)); footerMenuList.setUrl(urlService.generateUrl(FoUrls.FOLLOW_US, requestData)); footerMenuList.setType(MENU_TYPE_OUR_COMPANY); MenuViewBeans.add(footerMenuList); return MenuViewBeans; } public List<MarketViewBean> buildListViewBeanMarketByMarketPlace(final RequestData requestData, final MarketPlace marketPlace, final List<Market> markets) throws Exception { List<MarketViewBean> marketViewBeans = new ArrayList<MarketViewBean>(); for (Iterator<Market> iteratorMarket = markets.iterator(); iteratorMarket.hasNext();) { final Market marketNavigation = (Market) iteratorMarket.next(); marketViewBeans.add(buildViewBeanMarket(requestData, marketNavigation)); } return marketViewBeans; } public List<MarketAreaViewBean> buildListViewBeanMarketAreaByMarket(final RequestData requestData, final Market market, final List<MarketArea> marketAreas) throws Exception { List<MarketAreaViewBean> marketAreaViewBeans = new ArrayList<MarketAreaViewBean>(); for (Iterator<MarketArea> iteratorMarketArea = marketAreas.iterator(); iteratorMarketArea.hasNext();) { final MarketArea marketArea = (MarketArea) iteratorMarketArea.next(); marketAreaViewBeans.add(buildViewBeanMarketArea(requestData, marketArea)); } return marketAreaViewBeans; } public LocalizationViewBean buildViewBeanLocalizationByMarketArea(final RequestData requestData, final Localization localization) throws Exception { final Locale locale = localization.getLocale(); final String localeCodeNavigation = localization.getCode(); RequestData requestDataChangecontext = new RequestData(); BeanUtils.copyProperties(requestData, requestDataChangecontext); requestDataChangecontext.setMarketAreaLocalization(localization); final LocalizationViewBean localizationViewBean = new LocalizationViewBean(); if (StringUtils.isNotEmpty(localeCodeNavigation) && localeCodeNavigation.length() == 2) { localizationViewBean.setName(getReferenceData(ScopeReferenceDataMessage.LANGUAGE, localeCodeNavigation.toLowerCase(), locale)); } else { localizationViewBean.setName(getReferenceData(ScopeReferenceDataMessage.LANGUAGE, localeCodeNavigation, locale)); } localizationViewBean.setChangeContextUrl(backofficeUrlService.buildChangeContextUrl(requestDataChangecontext)); return localizationViewBean; } public List<LocalizationViewBean> buildListViewBeanLocalizationByMarketArea(final RequestData requestData, final List<Localization> localizations) throws Exception { final List<LocalizationViewBean> localizationViewBeans = new ArrayList<LocalizationViewBean>(); if (localizations != null) { for (Iterator<Localization> iterator = localizations.iterator(); iterator.hasNext();) { Localization localization = (Localization) iterator.next(); localizationViewBeans.add(buildViewBeanLocalizationByMarketArea(requestData, localization)); } } return localizationViewBeans; } public List<LocalizationViewBean> buildListViewBeanLocalization(final RequestData requestData, final List<Localization> localizations) throws Exception { final List<LocalizationViewBean> localizationViewBeans = new ArrayList<LocalizationViewBean>(); if (localizations != null) { for (Iterator<Localization> iterator = localizations.iterator(); iterator.hasNext();) { Localization localization = (Localization) iterator.next(); localizationViewBeans.add(buildViewBeanLocalization(requestData, localization)); } } return localizationViewBeans; } public List<RetailerViewBean> buildListViewBeanRetailer(final RequestData requestData) throws Exception { final MarketArea currentMarketArea = requestData.getMarketArea(); final List<Retailer> retailers = new ArrayList<Retailer>(currentMarketArea.getRetailers()); List<RetailerViewBean> retailerViewBeans = new ArrayList<RetailerViewBean>(); for (Iterator<Retailer> iterator = retailers.iterator(); iterator.hasNext();) { final Retailer retailerIt = (Retailer) iterator.next(); retailerViewBeans.add(buildViewBeanRetailer(requestData, retailerIt)); } return retailerViewBeans; } @Override public RetailerViewBean buildViewBeanRetailer(final RequestData requestData, final Retailer retailer) throws Exception { final RetailerViewBean retailerViewBean = super.buildViewBeanRetailer(requestData, retailer); retailerViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.RETAILER_DETAILS, requestData, retailer)); retailerViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.RETAILER_EDIT, requestData, retailer)); retailerViewBean.setStoreListUrl(backofficeUrlService.generateUrl(BoUrls.STORE_LIST, requestData, retailer)); return retailerViewBean; } @Override public StoreViewBean buildViewBeanStore(RequestData requestData, Store store) throws Exception { final StoreViewBean storeViewBean = super.buildViewBeanStore(requestData, store); storeViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.STORE_DETAILS, requestData, store)); storeViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.STORE_EDIT, requestData, store)); return storeViewBean; } // public CatalogViewBean buildViewBeanMasterCatalog(final RequestData requestData, final AbstractCatalog catalogMaster, final List<AbstractCatalogCategory> catalogCategories) throws Exception { // final CatalogViewBean catalogViewBean = new CatalogViewBean(); // catalogViewBean.setName(catalogMaster.getName()); // catalogViewBean.setCode(catalogMaster.getCode()); // // if (catalogCategories != null) { // final List<CatalogCategoryViewBean> catalogCategoryViewBeans = new ArrayList<CatalogCategoryViewBean>(); // for (AbstractCatalogCategory catalogCategoryMaster : catalogCategories) { // CatalogCategoryViewBean catalogCategoryViewBean = buildViewBeanCatalogCategory(requestData, catalogCategoryMaster, true, false); // catalogCategoryViewBeans.add(catalogCategoryViewBean); // } // catalogViewBean.setCategories(catalogCategoryViewBeans); // } // // catalogViewBean.setAddRootCategoryUrl(backofficeUrlService.generateUrl(BoUrls.MASTER_CATEGORY_ADD, requestData)); // // return catalogViewBean; // } public CatalogViewBean buildViewBeanCatalog(final RequestData requestData, final AbstractCatalog catalog, final List<AbstractCatalogCategory> catalogCategories, final FetchPlan categoryFetchPlan) throws Exception { final CatalogViewBean catalogViewBean = new CatalogViewBean(); catalogViewBean.setName(catalog.getName()); catalogViewBean.setCode(catalog.getCode()); if (catalogCategories != null) { final List<CatalogCategoryViewBean> catalogCategoryViewBeans = new ArrayList<CatalogCategoryViewBean>(); for (AbstractCatalogCategory catalogCategoryVirtual : catalogCategories) { CatalogCategoryViewBean catalogCategoryViewBean = buildViewBeanCatalogCategory(requestData, catalogCategoryVirtual); catalogCategoryViewBeans.add(catalogCategoryViewBean); } catalogViewBean.setCategories(catalogCategoryViewBeans); } catalogViewBean.setAddRootCategoryUrl(backofficeUrlService.generateUrl(BoUrls.VIRTUAL_CATEGORY_ADD, requestData)); return catalogViewBean; } // public List<CatalogCategoryViewBean> buildListViewBeanMasterCatalogCategory(final RequestData requestData, final List<AbstractCatalogCategory> catalogCategories, boolean fullPopulate) throws Exception { // List<CatalogCategoryViewBean> categoryViewBeans = new ArrayList<CatalogCategoryViewBean>(); // for (Iterator<AbstractCatalogCategory> iterator = catalogCategories.iterator(); iterator.hasNext();) { // final AbstractCatalogCategory catalogCategory = (AbstractCatalogCategory) iterator.next(); // // // TODO : Denis : fetch optim - cache : we reload entity to fetch the defaultParentCatalogCategory // AbstractCatalogCategory reloadedCategory = catalogCategoryService.getMasterCatalogCategoryById(catalogCategory.getId(), FetchPlanGraphCategory.masterCategoriesWithoutProductsAndAssetsFetchPlan()); // // categoryViewBeans.add(buildViewBeanMasterCatalogCategory(requestData, reloadedCategory, fullPopulate)); // } // return categoryViewBeans; // } // public List<CatalogCategoryViewBean> buildListViewBeanVirtualCatalogCategory(final RequestData requestData, final List<CatalogCategoryVirtual> catalogCategories, boolean fullPopulate) // throws Exception { // List<CatalogCategoryViewBean> categoryViewBeans = new ArrayList<CatalogCategoryViewBean>(); // for (Iterator<CatalogCategoryVirtual> iterator = catalogCategories.iterator(); iterator.hasNext();) { // final CatalogCategoryVirtual catalogCategory = (CatalogCategoryVirtual) iterator.next(); // // // TODO : Denis : fetch optim - cache : we reload entity to fetch the defaultParentCatalogCategory // CatalogCategoryVirtual reloadedCategory = catalogCategoryService.getVirtualCatalogCategoryById(catalogCategory.getId(), FetchPlanGraphCategory.virtualCategoriesWithoutProductsAndAssetsFetchPlan()); // // categoryViewBeans.add(buildViewBeanVirtualCatalogCategory(requestData, reloadedCategory, fullPopulate)); // } // return categoryViewBeans; // } // public CatalogCategoryViewBean buildViewBeanMasterCatalogCategory(final RequestData requestData, final AbstractCatalogCategory catalogCategory, boolean fullPopulate) throws Exception { // final MarketArea currentMarketArea = requestData.getMarketArea(); // final CatalogCategoryViewBean catalogCategoryViewBean = new CatalogCategoryViewBean(); // // if (catalogCategory != null) { // final String categoryCode = catalogCategory.getCode(); // // catalogCategoryViewBean.setName(catalogCategory.getName()); // catalogCategoryViewBean.setCode(categoryCode); // catalogCategoryViewBean.setDescription(catalogCategory.getDescription()); // // if (catalogCategory.getParentCatalogCategory() != null) { // // TODO : Denis : fetch optim - cache : we reload entity to fetch the defaultParentCatalogCategory // AbstractCatalogCategory defaultParentCatalogCategory = catalogCategoryService.getMasterCatalogCategoryById(catalogCategory.getParentCatalogCategory().getId(), FetchPlanGraphCategory.masterCategoriesWithoutProductsAndAssetsFetchPlan()); // catalogCategoryViewBean.setDefaultParentCategory(buildViewBeanMasterCatalogCategory(requestData, defaultParentCatalogCategory, false)); // } // // DateFormat dateFormat = requestUtil.getFormatDate(requestData, DateFormat.MEDIUM, DateFormat.MEDIUM); // Date createdDate = catalogCategory.getDateCreate(); // if (createdDate != null) { // catalogCategoryViewBean.setDateCreate(dateFormat.format(createdDate)); // } else { // catalogCategoryViewBean.setDateCreate(Constants.NOT_AVAILABLE); // } // Date updatedDate = catalogCategory.getDateUpdate(); // if (updatedDate != null) { // catalogCategoryViewBean.setDateUpdate(dateFormat.format(updatedDate)); // } else { // catalogCategoryViewBean.setDateUpdate(Constants.NOT_AVAILABLE); // } // // if (fullPopulate) { // if (catalogCategory.getCatalogCategories() != null) { // catalogCategoryViewBean.setSubCategories(buildListViewBeanMasterCatalogCategory(requestData, new ArrayList<AbstractCatalogCategory>(catalogCategory.getCatalogCategories()), fullPopulate)); // } // // List<AbstractCatalogCategoryAttribute> globalAttributes = catalogCategory.getCatalogCategoryGlobalAttributes(); // for (Iterator<AbstractCatalogCategoryAttribute> iterator = globalAttributes.iterator(); iterator.hasNext();) { // AbstractCatalogCategoryAttribute catalogCategoryMasterAttribute = (AbstractCatalogCategoryAttribute) iterator.next(); // catalogCategoryViewBean.getGlobalAttributes().put(catalogCategoryMasterAttribute.getAttributeDefinition().getCode(), catalogCategoryMasterAttribute.getValueAsString()); // } // // List<AbstractCatalogCategoryAttribute> marketAreaAttributes = catalogCategory.getCatalogCategoryMarketAreaAttributes(currentMarketArea.getId()); // for (Iterator<AbstractCatalogCategoryAttribute> iterator = marketAreaAttributes.iterator(); iterator.hasNext();) { // AbstractCatalogCategoryAttribute catalogCategoryMasterAttribute = (AbstractCatalogCategoryAttribute) iterator.next(); // catalogCategoryViewBean.getMarketAreaAttributes().put(catalogCategoryMasterAttribute.getAttributeDefinition().getCode(), catalogCategoryMasterAttribute.getValueAsString()); // } // // List<ProductMarketingViewBean> productMarketingViewBeans = buildListViewBeanProductMarketing(requestData, catalogCategory, new ArrayList<ProductMarketing>(catalogCategory.getProductMarketings()), true); // catalogCategoryViewBean.setProductMarketings(productMarketingViewBeans); // // int countProduct = catalogCategory.getProductMarketings().size(); // for (Iterator<CatalogCategoryViewBean> iterator = catalogCategoryViewBean.getSubCategories().iterator(); iterator.hasNext();) { // CatalogCategoryViewBean subCategoryViewBean = (CatalogCategoryViewBean) iterator.next(); // countProduct = countProduct + subCategoryViewBean.getCountProduct(); // } // catalogCategoryViewBean.setCountProduct(countProduct); // // List<Asset> assets = catalogCategory.getAssetsIsGlobal(); // for (Iterator<Asset> iterator = assets.iterator(); iterator.hasNext();) { // Asset asset = (Asset) iterator.next(); // catalogCategoryViewBean.getAssets().add(buildViewBeanAsset(requestData, asset)); // } // } // // catalogCategoryViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.MASTER_CATEGORY_DETAILS, requestData, catalogCategory)); // catalogCategoryViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.MASTER_CATEGORY_EDIT, requestData, catalogCategory)); // } // // return catalogCategoryViewBean; // } // public CatalogCategoryViewBean buildViewBeanVirtualCatalogCategory(final RequestData requestData, final CatalogCategoryVirtual catalogCategory, boolean fullPopulate) throws Exception { // final MarketArea currentMarketArea = requestData.getMarketArea(); // final CatalogCategoryViewBean catalogCategoryViewBean = new CatalogCategoryViewBean(); // // if (catalogCategory != null) { // final String categoryCode = catalogCategory.getCode(); // // catalogCategoryViewBean.setName(catalogCategory.getName()); // catalogCategoryViewBean.setCode(categoryCode); // catalogCategoryViewBean.setDescription(catalogCategory.getDescription()); // // if (catalogCategory.getParentCatalogCategory() != null) { // // TODO : Denis : fetch optim - cache : we reload entity to fetch the defaultParentCatalogCategory // CatalogCategoryVirtual defaultParentCatalogCategory = catalogCategoryService.getVirtualCatalogCategoryById(catalogCategory.getParentCatalogCategory().getId(), FetchPlanGraphCategory.virtualCategoriesWithoutProductsAndAssetsFetchPlan()); // catalogCategoryViewBean.setDefaultParentCategory(buildViewBeanVirtualCatalogCategory(requestData, defaultParentCatalogCategory, false)); // } // // DateFormat dateFormat = requestUtil.getFormatDate(requestData, DateFormat.MEDIUM, DateFormat.MEDIUM); // Date createdDate = catalogCategory.getDateCreate(); // if (createdDate != null) { // catalogCategoryViewBean.setDateCreate(dateFormat.format(createdDate)); // } else { // catalogCategoryViewBean.setDateCreate(Constants.NOT_AVAILABLE); // } // Date updatedDate = catalogCategory.getDateUpdate(); // if (updatedDate != null) { // catalogCategoryViewBean.setDateUpdate(dateFormat.format(updatedDate)); // } else { // catalogCategoryViewBean.setDateUpdate(Constants.NOT_AVAILABLE); // } // // if (fullPopulate) { // if (catalogCategory.getSortedChildCatalogCategories() != null) { // catalogCategoryViewBean.setSubCategories(buildListViewBeanVirtualCatalogCategory(requestData, new ArrayList<CatalogCategoryVirtual>(catalogCategory.getSortedChildCatalogCategories()), fullPopulate)); // } // // List<CatalogCategoryVirtualAttribute> globalAttributes = catalogCategory.getCatalogCategoryGlobalAttributes(); // for (Iterator<CatalogCategoryVirtualAttribute> iterator = globalAttributes.iterator(); iterator.hasNext();) { // CatalogCategoryVirtualAttribute catalogCategoryVirtualAttribute = (CatalogCategoryVirtualAttribute) iterator.next(); // catalogCategoryViewBean.getGlobalAttributes().put(catalogCategoryVirtualAttribute.getAttributeDefinition().getCode(), catalogCategoryVirtualAttribute.getValueAsString()); // } // // List<CatalogCategoryVirtualAttribute> marketAreaAttributes = catalogCategory.getCatalogCategoryMarketAreaAttributes(currentMarketArea.getId()); // for (Iterator<CatalogCategoryVirtualAttribute> iterator = marketAreaAttributes.iterator(); iterator.hasNext();) { // CatalogCategoryVirtualAttribute catalogCategoryVirtualAttribute = (CatalogCategoryVirtualAttribute) iterator.next(); // catalogCategoryViewBean.getMarketAreaAttributes().put(catalogCategoryVirtualAttribute.getAttributeDefinition().getCode(), catalogCategoryVirtualAttribute.getValueAsString()); // } // // new ArrayList<ProductMarketing>(catalogCategory.getProductMarketings()) // List<ProductMarketingViewBean> productMarketingViewBeans = buildListViewBeanProductMarketing(requestData, catalogCategory, , true); // catalogCategoryViewBean.setProductMarketings(productMarketingViewBeans); // // int countProduct = catalogCategory.getProductMarketings().size(); // for (Iterator<CatalogCategoryViewBean> iterator = catalogCategoryViewBean.getSubCategories().iterator(); iterator.hasNext();) { // CatalogCategoryViewBean subCategoryViewBean = (CatalogCategoryViewBean) iterator.next(); // countProduct = countProduct + subCategoryViewBean.getCountProduct(); // } // catalogCategoryViewBean.setCountProduct(countProduct); // // List<Asset> assets = catalogCategory.getAssetsIsGlobal(); // for (Iterator<Asset> iterator = assets.iterator(); iterator.hasNext();) { // Asset asset = (Asset) iterator.next(); // catalogCategoryViewBean.getAssets().add(buildViewBeanAsset(requestData, asset)); // } // } // // catalogCategoryViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.VIRTUAL_CATEGORY_DETAILS, requestData, catalogCategory)); // catalogCategoryViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.VIRTUAL_CATEGORY_EDIT, requestData, catalogCategory)); // } // // return catalogCategoryViewBean; // } /** * */ @Override public CatalogCategoryViewBean buildViewBeanMasterCatalogCategory(final RequestData requestData, final CatalogCategoryMaster catalogCategory) throws Exception { final CatalogCategoryViewBean catalogCategoryViewBean = super.buildViewBeanMasterCatalogCategory(requestData, catalogCategory); catalogCategoryViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.MASTER_CATEGORY_DETAILS, requestData, catalogCategory)); catalogCategoryViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.MASTER_CATEGORY_EDIT, requestData, catalogCategory)); return catalogCategoryViewBean; } /** * */ @Override public CatalogCategoryViewBean buildViewBeanVirtualCatalogCategory(final RequestData requestData, final CatalogCategoryVirtual catalogCategory) throws Exception { final CatalogCategoryViewBean catalogCategoryViewBean = super.buildViewBeanVirtualCatalogCategory(requestData, catalogCategory); catalogCategoryViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.VIRTUAL_CATEGORY_DETAILS, requestData, catalogCategory)); catalogCategoryViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.VIRTUAL_CATEGORY_EDIT, requestData, catalogCategory)); return catalogCategoryViewBean; } public List<ProductMarketingViewBean> buildListViewBeanProductMarketing(final RequestData requestData, final AbstractCatalogCategory catalogCategory, final List<ProductMarketing> productMarketings, boolean withDependency) throws Exception { List<ProductMarketingViewBean> products = new ArrayList<ProductMarketingViewBean>(); for (Iterator<ProductMarketing> iterator = productMarketings.iterator(); iterator.hasNext();) { ProductMarketing productMarketing = (ProductMarketing) iterator.next(); // TODO : Denis : fetch optim - cache ProductMarketing reloadedProductMarketing = (ProductMarketing) productService.getProductMarketingById(productMarketing.getId()); products.add(buildViewBeanProductMarketing(requestData, catalogCategory, reloadedProductMarketing, null)); // products.add(buildProductMarketingViewBean(requestData, reloadedProductMarketing, withDependency)); } return products; } /** * @throws Exception * */ public List<ProductMarketingViewBean> buildListViewBeanProductMarketing(final RequestData requestData, final CatalogCategoryVirtual catalogCategory, final List<ProductMarketing> productMarketings, boolean withDependency) throws Exception { List<ProductMarketingViewBean> products = new ArrayList<ProductMarketingViewBean>(); for (Iterator<ProductMarketing> iterator = productMarketings.iterator(); iterator.hasNext();) { ProductMarketing productMarketing = (ProductMarketing) iterator.next(); // TODO : Denis : fetch optim - cache ProductMarketing reloadedProductMarketing = (ProductMarketing) productService.getProductMarketingById(productMarketing.getId()); products.add(buildViewBeanProductMarketing(requestData, catalogCategory, reloadedProductMarketing, null)); // products.add(buildProductMarketingViewBean(requestData, reloadedProductMarketing, withDependency)); } return products; } // public ProductMarketingViewBean buildViewBeanProductMarketing(final RequestData requestData, ProductMarketing productMarketing) throws Exception { // AbstractCatalogCategory catalogCategory = null; // if(!Hibernate.isInitialized(productMarketing.getDefaultCatalogCategory().getCategoryMaster())){ // CatalogCategoryVirtual categoryVirtual = catalogCategoryService.getVirtualCatalogCategoryById(productMarketing.getDefaultCatalogCategory().getId(), FetchPlanGraphCategory.virtualCategoriesWithoutProductsAndAssetsFetchPlan()); // catalogCategory = catalogCategoryService.getMasterCatalogCategoryById(categoryVirtual.getCategoryMaster().getId(), FetchPlanGraphCategory.masterCategoriesWithoutProductsAndAssetsFetchPlan()); // } else { // catalogCategory = catalogCategoryService.getMasterCatalogCategoryById(productMarketing.getDefaultCatalogCategory().getCategoryMaster().getId(), FetchPlanGraphCategory.masterCategoriesWithoutProductsAndAssetsFetchPlan()); // } // final ProductMarketingViewBean productMarketingViewBean = buildViewBeanProductMarketing(requestData, catalogCategory, productMarketing); // return productMarketingViewBean; // } @Override public ProductMarketingViewBean buildViewBeanProductMarketing(final RequestData requestData, final ProductMarketing productMarketing) throws Exception { final ProductMarketingViewBean productMarketingViewBean = super.buildViewBeanProductMarketing(requestData, productMarketing); productMarketingViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_MARKETING_DETAILS, requestData, productMarketing)); productMarketingViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_MARKETING_EDIT, requestData, productMarketing)); productMarketingViewBean.setAddSkuUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_SKU_EDIT, requestData, productMarketing)); return productMarketingViewBean; } public ProductAssociationLinkViewBean buildProductAssociationLinkViewBean(final RequestData requestData, final ProductAssociationLink productAssociationLink) throws Exception { final ProductAssociationLinkViewBean productAssociationLinkViewBean = new ProductAssociationLinkViewBean(); productAssociationLinkViewBean.setOrderItem(productAssociationLink.getRankPosition()); productAssociationLinkViewBean.setName(productAssociationLink.getProductSku().getProductMarketing().getName()); productAssociationLinkViewBean.setType(productAssociationLink.getType().name()); productAssociationLinkViewBean.setDescription(productAssociationLink.getType().name()); productAssociationLinkViewBean.setProductDetailsUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_MARKETING_DETAILS, requestData, productAssociationLink.getProductSku().getProductMarketing())); return productAssociationLinkViewBean; } // @Override // public ProductSkuViewBean buildViewBeanProductSku(final RequestData requestData, final ProductSku productSku) throws Exception { // ProductMarketing productMarketing = productSku.getProductMarketing(); // if(!Hibernate.isInitialized(productMarketing.getDefaultCatalogCategory())){ // productMarketing = productService.getProductMarketingById(productMarketing.getId(), FetchPlanGraphProduct.productMarketingBackofficeCatalogueViewFetchPlan()); // } // AbstractCatalogCategory catalogCategory = null; // if(!Hibernate.isInitialized(productMarketing.getDefaultCatalogCategory().getCategoryMaster())){ // CatalogCategoryVirtual categoryVirtual = catalogCategoryService.getVirtualCatalogCategoryById(productMarketing.getDefaultCatalogCategory().getId(), FetchPlanGraphCategory.virtualCategoriesWithoutProductsAndAssetsFetchPlan()); // catalogCategory = catalogCategoryService.getMasterCatalogCategoryById(categoryVirtual.getCategoryMaster().getId(), FetchPlanGraphCategory.masterCategoriesWithoutProductsAndAssetsFetchPlan()); // } else { // catalogCategory = catalogCategoryService.getMasterCatalogCategoryById(productMarketing.getDefaultCatalogCategory().getCategoryMaster().getId(), FetchPlanGraphCategory.masterCategoriesWithoutProductsAndAssetsFetchPlan()); // } // final ProductSkuViewBean productSkuViewBean = buildViewBeanProductSku(requestData, catalogCategory, productMarketing, productSku); // return productSkuViewBean; // } @Override public ProductSkuViewBean buildViewBeanProductSku(final RequestData requestData, final AbstractCatalogCategory catalogCategory, final ProductMarketing productMarketing, final ProductSku productSku) throws Exception { final ProductSkuViewBean productSkuViewBean = buildViewBeanProductSku(requestData, productSku); productSkuViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_SKU_DETAILS, requestData, productSku)); productSkuViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_SKU_EDIT, requestData, productSku)); return productSkuViewBean; } @Override public ProductSkuViewBean buildViewBeanProductSku(final RequestData requestData, final ProductSku productSku) throws Exception { final ProductSkuViewBean productSkuViewBean = super.buildViewBeanProductSku(requestData, productSku); productSkuViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_SKU_DETAILS, requestData, productSku)); productSkuViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_SKU_EDIT, requestData, productSku)); return productSkuViewBean; } // /** // * @throws Exception // * // */ // @Override // public ProductSkuViewBean buildViewBeanProductSku(final RequestData requestData, final CatalogCategoryVirtual catalogCategory, // final ProductMarketing productMarketing, final ProductSku productSku) throws Exception { // final ProductSkuViewBean productSkuViewBean = super.buildViewBeanProductSku(requestData, catalogCategory, productMarketing, productSku); // // productSkuViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_SKU_DETAILS, requestData, productSku)); // productSkuViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_SKU_EDIT, requestData, productSku)); // // return productSkuViewBean; // } // /** // * // */ // public BrandViewBean buildBrandViewBean(final RequestData requestData, final ProductBrand productBrand) throws Exception { // final BrandViewBean brandViewBean = new BrandViewBean(); // // brandViewBean.setBusinessName(productBrand.getName()); // brandViewBean.setCode(productBrand.getCode()); // // brandViewBean.setBrandDetailsUrl(brandDetailsUrl); // // brandViewBean.setBrandLineDetailsUrl(brandLineDetailsUrl); // // return brandViewBean; // } /** * @throws Exception * */ @Override public AssetViewBean buildViewBeanAsset(final RequestData requestData, final Asset asset) throws Exception { AssetViewBean assetViewBean = super.buildViewBeanAsset(requestData, asset); assetViewBean.setAbsoluteWebPath(engineSettingService.getProductMarketingImageWebPath(asset)); DateFormat dateFormat = requestUtil.getCommonFormatDate(requestData, DateFormat.MEDIUM, DateFormat.MEDIUM); Date createdDate = asset.getDateCreate(); if (createdDate != null) { assetViewBean.setDateCreate(dateFormat.format(createdDate)); } else { assetViewBean.setDateCreate(Constants.NOT_AVAILABLE); } Date updatedDate = asset.getDateUpdate(); if (updatedDate != null) { assetViewBean.setDateUpdate(dateFormat.format(updatedDate)); } else { assetViewBean.setDateUpdate(Constants.NOT_AVAILABLE); } if(!Asset.ASSET_TYPE_DEFAULT.equals(asset.getType())){ assetViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.ASSET_DETAILS, requestData, asset)); assetViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.ASSET_EDIT, requestData, asset)); } return assetViewBean; } /** * @throws Exception * */ public LegalTermsViewBean buildViewBeanLegalTerms(final RequestData requestData) throws Exception { final Localization localization = requestData.getMarketAreaLocalization(); final Locale locale = localization.getLocale(); final LegalTermsViewBean legalTerms = new LegalTermsViewBean(); legalTerms.setWarning(getCommonMessage(ScopeCommonMessage.LEGAL_TERMS, "warning", locale)); legalTerms.setCopyright(getCommonMessage(ScopeCommonMessage.LEGAL_TERMS, "copyright", locale)); return legalTerms; } /** * @throws Exception * */ public SecurityViewBean buildViewBeanSecurity(final RequestData requestData) throws Exception { final SecurityViewBean security = new SecurityViewBean(); security.setLoginUrl(backofficeUrlService.generateUrl(BoUrls.LOGIN, requestData)); security.setSubmitLoginUrl(backofficeUrlService.buildSpringSecurityCheckUrl(requestData)); security.setForgottenPasswordUrl(backofficeUrlService.generateUrl(BoUrls.FORGOTTEN_PASSWORD, requestData)); security.setResetPasswordUrl(backofficeUrlService.generateUrl(BoUrls.RESET_PASSWORD, requestData)); security.setCreateAccountUrl(backofficeUrlService.generateUrl(BoUrls.USER_CREATE_ACCOUNT, requestData)); return security; } /** * @throws Exception * */ @Override public UserViewBean buildViewBeanUser(final RequestData requestData, final User user) throws Exception { final UserViewBean userViewBean = super.buildViewBeanUser(requestData, user); userViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.USER_DETAILS, requestData, user)); userViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.USER_EDIT, requestData, user)); userViewBean.setPersonalDetailsUrl(backofficeUrlService.generateUrl(BoUrls.PERSONAL_DETAILS, requestData, user)); userViewBean.setPersonalEditUrl(backofficeUrlService.generateUrl(BoUrls.PERSONAL_EDIT, requestData, user)); return userViewBean; } /** * @throws Exception * */ @Override public CompanyViewBean buildViewBeanCompany(final RequestData requestData, final Company company) throws Exception { final CompanyViewBean companyViewBean = super.buildViewBeanCompany(requestData, company); companyViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.COMPANY_DETAILS, requestData, company)); companyViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.COMPANY_EDIT, requestData, company)); return companyViewBean; } /** * @throws Exception * */ @Override public DeliveryMethodViewBean buildViewBeanDeliveryMethod(final RequestData requestData, final DeliveryMethod deliveryMethod) throws Exception { final DeliveryMethodViewBean deliveryMethodViewBean = super.buildViewBeanDeliveryMethod(requestData, deliveryMethod); deliveryMethodViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.DELIVERY_METHOD_DETAILS, requestData, deliveryMethod)); deliveryMethodViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.DELIVERY_METHOD_EDIT, requestData, deliveryMethod)); return deliveryMethodViewBean; } /** * @throws Exception * */ @Override public TaxViewBean buildViewBeanTax(final RequestData requestData, final Tax tax) throws Exception { final TaxViewBean taxViewBean = super.buildViewBeanTax(requestData, tax); taxViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.TAX_DETAILS, requestData, tax)); taxViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.TAX_EDIT, requestData, tax)); return taxViewBean; } /** * @throws Exception * */ @Override public OrderViewBean buildViewBeanOrder(final RequestData requestData, final OrderPurchase order) throws Exception { OrderViewBean orderViewBean = super.buildViewBeanOrder(requestData, order); orderViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.ORDER_DETAILS, requestData, order)); orderViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.ORDER_DETAILS, requestData, order)); return orderViewBean; } /** * @throws Exception * */ public RuleViewBean buildViewBeanRule(final RequestData requestData, final AbstractRuleReferential rule) throws Exception { RuleViewBean ruleViewBean = new RuleViewBean(); if(rule.getId() != null){ ruleViewBean.setId(rule.getId().toString()); } ruleViewBean.setVersion(rule.getVersion()); ruleViewBean.setCode(rule.getCode()); ruleViewBean.setName(rule.getName()); ruleViewBean.setDescription(rule.getDescription()); ruleViewBean.setSalience(rule.getSalience()); DateFormat dateFormat = requestUtil.getCommonFormatDate(requestData, DateFormat.MEDIUM, DateFormat.MEDIUM); if (rule.getDateCreate() != null) { ruleViewBean.setDateCreate(dateFormat.format(rule.getDateCreate())); } else { ruleViewBean.setDateCreate(Constants.NOT_AVAILABLE); } if (rule.getDateUpdate() != null) { ruleViewBean.setDateUpdate(dateFormat.format(rule.getDateUpdate())); } else { ruleViewBean.setDateUpdate(Constants.NOT_AVAILABLE); } ruleViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.RULE_DETAILS, requestData, rule)); ruleViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.RULE_EDIT, requestData, rule)); return ruleViewBean; } /** * @throws Exception * */ @Override public CustomerViewBean buildViewBeanCustomer(final RequestData requestData, final Customer customer) throws Exception { CustomerViewBean customerViewBean = super.buildViewBeanCustomer(requestData, customer); customerViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.CUSTOMER_DETAILS, requestData, customer)); customerViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.CUSTOMER_EDIT, requestData, customer)); return customerViewBean; } /** * @throws Exception * */ public List<GlobalSearchViewBean> buildListViewBeanGlobalSearch(final RequestData requestData, final String searchText) throws Exception { final MarketArea currentMarketArea = requestData.getMarketArea(); final List<GlobalSearchViewBean> globalSearchViewBeans = new ArrayList<GlobalSearchViewBean>(); final List<ProductMarketing> productMarketings = productService.findProductMarketings(currentMarketArea.getId(), searchText); for (Iterator<ProductMarketing> iterator = productMarketings.iterator(); iterator.hasNext();) { ProductMarketing productMarketing = (ProductMarketing) iterator.next(); final GlobalSearchViewBean globalSearchViewBean = new GlobalSearchViewBean(); globalSearchViewBean.setValue(productMarketing.getName() + " : " + productMarketing.getCode()); globalSearchViewBean.setType("ProductMarketing"); globalSearchViewBean.setUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_MARKETING_DETAILS, requestData, productMarketing)); globalSearchViewBeans.add(globalSearchViewBean); } final List<ProductSku> productSkus = productService.findProductSkus(searchText); for (Iterator<ProductSku> iterator = productSkus.iterator(); iterator.hasNext();) { ProductSku productSku = (ProductSku) iterator.next(); final GlobalSearchViewBean globalSearchViewBean = new GlobalSearchViewBean(); globalSearchViewBean.setValue(productSku.getName() + " : " + productSku.getCode()); globalSearchViewBean.setType("ProductSku"); globalSearchViewBean.setUrl(backofficeUrlService.generateUrl(BoUrls.PRODUCT_SKU_DETAILS, requestData, productSku)); globalSearchViewBeans.add(globalSearchViewBean); } return globalSearchViewBeans; } /** * */ public List<EngineSettingViewBean> buildListViewBeanEngineSetting(final RequestData requestData, final List<EngineSetting> engineSettings) throws Exception { final List<EngineSettingViewBean> engineSettingViewBeans = new ArrayList<EngineSettingViewBean>(); for (Iterator<EngineSetting> iterator = engineSettings.iterator(); iterator.hasNext();) { EngineSetting engineSetting = (EngineSetting) iterator.next(); engineSettingViewBeans.add(buildViewBeanEngineSetting(requestData, engineSetting)); } return engineSettingViewBeans; } /** * */ public EngineSettingViewBean buildViewBeanEngineSetting(final RequestData requestData, final EngineSetting engineSetting) throws Exception { final EngineSettingViewBean engineSettingViewBean = new EngineSettingViewBean(); engineSettingViewBean.setName(engineSetting.getName()); engineSettingViewBean.setCode(engineSetting.getCode()); engineSettingViewBean.setDescription(engineSetting.getDescription()); if(StringUtils.isNotEmpty(engineSetting.getDefaultValue())){ engineSettingViewBean.setDefaultValue(engineSetting.getDefaultValue()); } else { engineSettingViewBean.setDefaultValue(Constants.NOT_AVAILABLE); } Set<EngineSettingValue> engineSettingValues = engineSetting.getEngineSettingValues(); if (engineSettingValues != null) { for (Iterator<EngineSettingValue> iterator = engineSettingValues.iterator(); iterator.hasNext();) { EngineSettingValue engineSettingValue = (EngineSettingValue) iterator.next(); engineSettingViewBean.getEngineSettingValues().add(buildViewBeanEngineSettingValue(requestData, engineSettingValue)); } } DateFormat dateFormat = requestUtil.getCommonFormatDate(requestData, DateFormat.MEDIUM, DateFormat.MEDIUM); Date dateCreate = engineSetting.getDateCreate(); if (dateCreate != null) { engineSettingViewBean.setDateCreate(dateFormat.format(dateCreate)); } else { engineSettingViewBean.setDateCreate(Constants.NOT_AVAILABLE); } Date dateUpdate = engineSetting.getDateUpdate(); if (dateUpdate != null) { engineSettingViewBean.setDateUpdate(dateFormat.format(dateUpdate)); } else { engineSettingViewBean.setDateUpdate(Constants.NOT_AVAILABLE); } engineSettingViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.ENGINE_SETTING_DETAILS, requestData, engineSetting)); engineSettingViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.ENGINE_SETTING_EDIT, requestData, engineSetting)); return engineSettingViewBean; } /** * */ public EngineSettingValueViewBean buildViewBeanEngineSettingValue(final RequestData requestData, final EngineSettingValue engineSettingValue) throws Exception { final EngineSettingValueViewBean engineSettingValueViewBean = new EngineSettingValueViewBean(); engineSettingValueViewBean.setContext(engineSettingValue.getContext()); engineSettingValueViewBean.setValue(engineSettingValue.getValue()); engineSettingValueViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.ENGINE_SETTING_VALUE_EDIT, requestData, engineSettingValue)); return engineSettingValueViewBean; } /** * */ public List<BatchViewBean> buildListViewBeanBatch(final RequestData requestData, final List<BatchProcessObject> batchProcessObjects) throws Exception { final List<BatchViewBean> batchViewBeans = new ArrayList<BatchViewBean>(); for (Iterator<BatchProcessObject> iterator = batchProcessObjects.iterator(); iterator.hasNext();) { BatchProcessObject batchProcessObject = (BatchProcessObject) iterator.next(); batchViewBeans.add(buildViewBeanBatch(requestData, batchProcessObject)); } return batchViewBeans; } /** * */ public BatchViewBean buildViewBeanBatch(final RequestData requestData, final BatchProcessObject batchProcessObject) throws Exception { final BatchViewBean batchViewBean = new BatchViewBean(); if(batchProcessObject.getId() != null){ batchViewBean.setId(batchProcessObject.getId().toString()); } batchViewBean.setStatus(batchProcessObject.getStatus()); batchViewBean.setTypeObject(batchProcessObject.getTypeObject().getPropertyKey()); batchViewBean.setProcessedCount(batchProcessObject.getProcessedCount()); return batchViewBean; } /** * */ public List<WarehouseViewBean> buildListViewBeanWarehouse(final RequestData requestData, final List<Warehouse> warehouses) throws Exception { final List<WarehouseViewBean> warehouseViewBeans = new ArrayList<WarehouseViewBean>(); if (warehouses != null) { for (Iterator<Warehouse> iterator = warehouses.iterator(); iterator.hasNext();) { Warehouse warehouse = (Warehouse) iterator.next(); warehouseViewBeans.add(buildViewBeanWarehouse(requestData, warehouse)); } } return warehouseViewBeans; } /** * */ public WarehouseViewBean buildViewBeanWarehouse(final RequestData requestData, final Warehouse warehouse) throws Exception { final WarehouseViewBean warehouseViewBean = new WarehouseViewBean(); if (warehouse != null) { warehouseViewBean.setCode(warehouse.getCode()); warehouseViewBean.setName(warehouse.getName()); warehouseViewBean.setDescription(warehouse.getDescription()); warehouseViewBean.setAddress1(warehouse.getAddress1()); warehouseViewBean.setAddress2(warehouse.getAddress2()); warehouseViewBean.setAddressAdditionalInformation(warehouse.getAddressAdditionalInformation()); warehouseViewBean.setPostalCode(warehouse.getPostalCode()); // I18n values warehouseViewBean.setCity(warehouse.getCity()); warehouseViewBean.setStateCode(warehouse.getStateCode()); warehouseViewBean.setCountry(warehouse.getCountryCode()); warehouseViewBean.setCountryCode(warehouse.getCountryCode()); warehouseViewBean.setLongitude(warehouse.getLongitude()); warehouseViewBean.setLatitude(warehouse.getLatitude()); DateFormat dateFormat = requestUtil.getCommonFormatDate(requestData, DateFormat.MEDIUM, DateFormat.MEDIUM); Date dateCreate = warehouse.getDateCreate(); if (dateCreate != null) { warehouseViewBean.setDateCreate(dateFormat.format(dateCreate)); } else { warehouseViewBean.setDateCreate(Constants.NOT_AVAILABLE); } Date dateUpdate = warehouse.getDateUpdate(); if (dateUpdate != null) { warehouseViewBean.setDateUpdate(dateFormat.format(dateUpdate)); } else { warehouseViewBean.setDateUpdate(Constants.NOT_AVAILABLE); } warehouseViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.WAREHOUSE_DETAILS, requestData, warehouse)); warehouseViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.WAREHOUSE_EDIT, requestData, warehouse)); } return warehouseViewBean; } /** * */ public List<PaymentGatewayViewBean> buildListViewBeanPaymentGateway(final RequestData requestData, final List<AbstractPaymentGateway> paymentGateways) throws Exception { final List<PaymentGatewayViewBean> paymentGatewayViewBeans = new ArrayList<PaymentGatewayViewBean>(); if (paymentGateways != null) { for (Iterator<AbstractPaymentGateway> iterator = paymentGateways.iterator(); iterator.hasNext();) { AbstractPaymentGateway paymentGateway = (AbstractPaymentGateway) iterator.next(); paymentGatewayViewBeans.add(buildViewBeanPaymentGateway(requestData, paymentGateway)); } } return paymentGatewayViewBeans; } /** * */ public PaymentGatewayViewBean buildViewBeanPaymentGateway(final RequestData requestData, final AbstractPaymentGateway paymentGateway) throws Exception { final MarketArea marketArea = requestData.getMarketArea(); final PaymentGatewayViewBean paymentGatewayViewBean = new PaymentGatewayViewBean(); if (paymentGateway != null) { paymentGatewayViewBean.setCode(paymentGateway.getCode()); paymentGatewayViewBean.setName(paymentGateway.getName()); paymentGatewayViewBean.setDescription(paymentGateway.getDescription()); if(Hibernate.isInitialized(paymentGateway.getMarketAreas()) && paymentGateway.getMarketAreas() != null){ paymentGatewayViewBean.setActive(paymentGateway.getMarketAreas().contains(marketArea)); } List<PaymentGatewayAttribute> globalAttributes = paymentGateway.getGlobalAttributes(); if(globalAttributes != null){ for (Iterator<PaymentGatewayAttribute> iterator = globalAttributes.iterator(); iterator.hasNext();) { PaymentGatewayAttribute attribute = (PaymentGatewayAttribute) iterator.next(); paymentGatewayViewBean.getGlobalAttributes().put(attribute.getAttributeDefinition().getCode(), attribute.getValueAsString()); } } List<PaymentGatewayAttribute> marketAreaAttributes = paymentGateway.getMarketAreaAttributes(marketArea.getId()); if(marketAreaAttributes != null){ for (Iterator<PaymentGatewayAttribute> iterator = marketAreaAttributes.iterator(); iterator.hasNext();) { PaymentGatewayAttribute attribute = (PaymentGatewayAttribute) iterator.next(); paymentGatewayViewBean.getMarketAreaAttributes().put(attribute.getAttributeDefinition().getCode(), attribute.getValueAsString()); } } Set<PaymentGatewayOption> options = paymentGateway.getOptions(); if(options != null){ for (Iterator<PaymentGatewayOption> iterator = options.iterator(); iterator.hasNext();) { PaymentGatewayOption option = (PaymentGatewayOption) iterator.next(); paymentGatewayViewBean.getOptions().put(option.getCode(), option.getOptionValue()); } } DateFormat dateFormat = requestUtil.getCommonFormatDate(requestData, DateFormat.MEDIUM, DateFormat.MEDIUM); Date dateCreate = paymentGateway.getDateCreate(); if (dateCreate != null) { paymentGatewayViewBean.setDateCreate(dateFormat.format(dateCreate)); } else { paymentGatewayViewBean.setDateCreate(Constants.NOT_AVAILABLE); } Date dateUpdate = paymentGateway.getDateUpdate(); if (dateUpdate != null) { paymentGatewayViewBean.setDateUpdate(dateFormat.format(dateUpdate)); } else { paymentGatewayViewBean.setDateUpdate(Constants.NOT_AVAILABLE); } paymentGatewayViewBean.setDetailsUrl(backofficeUrlService.generateUrl(BoUrls.PAYMENT_GATEWAY_DETAILS, requestData, paymentGateway)); paymentGatewayViewBean.setEditUrl(backofficeUrlService.generateUrl(BoUrls.PAYMENT_GATEWAY_EDIT, requestData, paymentGateway)); } return paymentGatewayViewBean; } public List<AttributeValueViewBean> buildListViewBeanAttributeValue(final RequestData requestData, final List<AbstractAttribute> attributes) throws Exception { final List<AttributeValueViewBean> attributeValueViewBeans = new ArrayList<AttributeValueViewBean>(); if (attributes != null) { for (Iterator<AbstractAttribute> iterator = attributes.iterator(); iterator.hasNext();) { AbstractAttribute attribute = (AbstractAttribute) iterator.next(); attributeValueViewBeans.add(buildViewBeanAttributeValue(requestData, attribute)); } } return attributeValueViewBeans; } /** * */ public List<AttributeDefinitionViewBean> buildListViewBeanAttributeDefinition(final RequestData requestData, final List<AttributeDefinition> attributeDefinitions) throws Exception { final List<AttributeDefinitionViewBean> attributeDefinitionViewBeans = new ArrayList<AttributeDefinitionViewBean>(); if (attributeDefinitions != null) { for (Iterator<AttributeDefinition> iterator = attributeDefinitions.iterator(); iterator.hasNext();) { AttributeDefinition attributeDefinition = (AttributeDefinition) iterator.next(); attributeDefinitionViewBeans.add(buildViewBeanAttributeDefinition(requestData, attributeDefinition)); } } return attributeDefinitionViewBeans; } protected String getSpecificMessage(ScopeWebMessage scope, String key, Locale locale) { return getSpecificMessage(scope.getPropertyKey(), key, locale); } protected String getSpecificMessage(ScopeWebMessage scope, String key, Object[] params, Locale locale) { return getSpecificMessage(scope.getPropertyKey(), key, params, locale); } protected String getSpecificMessage(String scope, String key, Locale locale) { return coreMessageSource.getSpecificMessage(I18nKeyValueUniverse.BO.getPropertyKey(), scope, key, locale); } protected String getSpecificMessage(String scope, String key, Object[] params, Locale locale) { return coreMessageSource.getSpecificMessage(I18nKeyValueUniverse.BO.getPropertyKey(), scope, key, params, locale); } }