use of com.salesmanager.core.model.reference.language.Language in project shopizer by shopizer-ecommerce.
the class InitializationDatabaseImpl method createCountries.
private void createCountries() throws ServiceException {
LOGGER.info(String.format("%s : Populating Countries ", name));
List<Language> languages = languageService.list();
for (String code : SchemaConstant.COUNTRY_ISO_CODE) {
Locale locale = SchemaConstant.LOCALES.get(code);
if (locale != null) {
Country country = new Country(code);
countryService.create(country);
for (Language language : languages) {
String name = locale.getDisplayCountry(new Locale(language.getCode()));
// byte[] ptext = value.getBytes(Constants.ISO_8859_1);
// String name = new String(ptext, Constants.UTF_8);
CountryDescription description = new CountryDescription(language, name);
countryService.addCountryDescription(country, description);
}
}
}
}
use of com.salesmanager.core.model.reference.language.Language in project shopizer by shopizer-ecommerce.
the class ZonesLoader method loadZones.
public Map<String, Zone> loadZones(String jsonFilePath) throws Exception {
List<Language> languages = languageService.list();
List<Country> countries = countryService.list();
Map<String, Country> countriesMap = new HashMap<String, Country>();
for (Country country : countries) {
countriesMap.put(country.getIsoCode(), country);
}
ObjectMapper mapper = new ObjectMapper();
try {
InputStream in = this.getClass().getClassLoader().getResourceAsStream(jsonFilePath);
@SuppressWarnings("unchecked") Map<String, Object> data = mapper.readValue(in, Map.class);
Map<String, Zone> zonesMap = new HashMap<String, Zone>();
Map<String, List<ZoneDescription>> zonesDescriptionsMap = new HashMap<String, List<ZoneDescription>>();
Map<String, String> zonesMark = new HashMap<String, String>();
for (Language l : languages) {
@SuppressWarnings("rawtypes") List langList = (List) data.get(l.getCode());
if (langList != null) {
/**
* submethod
*/
for (Object z : langList) {
@SuppressWarnings("unchecked") Map<String, String> e = (Map<String, String>) z;
this.mapZone(l, zonesDescriptionsMap, countriesMap, zonesMap, zonesMark, e);
/**
* String zoneCode = e.get("zoneCode"); ZoneDescription
* zoneDescription = new ZoneDescription();
* zoneDescription.setLanguage(l);
* zoneDescription.setName(e.get("zoneName")); Zone zone
* = null; List<ZoneDescription> descriptions = null; if
* (!zonesMap.containsKey(zoneCode)) { zone = new
* Zone(); Country country =
* countriesMap.get(e.get("countryCode")); if (country
* == null) { LOGGER.warn("Country is null for " +
* zoneCode + " and country code " +
* e.get("countryCode")); continue; }
* zone.setCountry(country); zonesMap.put(zoneCode,
* zone); zone.setCode(zoneCode);
*
* }
*
* if (zonesMark.containsKey(l.getCode() + "_" +
* zoneCode)) { LOGGER.warn("This zone seems to be a
* duplicate ! " + zoneCode + " and language code " +
* l.getCode()); continue; }
*
* zonesMark.put(l.getCode() + "_" + zoneCode,
* l.getCode() + "_" + zoneCode);
*
* if (zonesDescriptionsMap.containsKey(zoneCode)) {
* descriptions = zonesDescriptionsMap.get(zoneCode); }
* else { descriptions = new
* ArrayList<ZoneDescription>();
* zonesDescriptionsMap.put(zoneCode, descriptions); }
*
* descriptions.add(zoneDescription);
*/
}
}
}
for (Map.Entry<String, Zone> entry : zonesMap.entrySet()) {
String key = entry.getKey();
Zone value = entry.getValue();
// get descriptions
List<ZoneDescription> descriptions = zonesDescriptionsMap.get(key);
if (descriptions != null) {
value.setDescriptons(descriptions);
}
}
return zonesMap;
} catch (Exception e) {
throw new ServiceException(e);
}
}
use of com.salesmanager.core.model.reference.language.Language in project shopizer by shopizer-ecommerce.
the class ZonesLoader method loadIndividualZones.
//
@SuppressWarnings({ "rawtypes", "unchecked" })
public List<Map<String, Zone>> loadIndividualZones() throws Exception {
List<Map<String, Zone>> loadedZones = new ArrayList<Map<String, Zone>>();
try {
List<Resource> files = geZoneFiles(PATH);
List<Language> languages = languageService.list();
ObjectMapper mapper = new ObjectMapper();
List<Country> countries = countryService.list();
Map<String, Country> countriesMap = new HashMap<String, Country>();
for (Country country : countries) {
countriesMap.put(country.getIsoCode(), country);
}
Map<String, Zone> zonesMap = new LinkedHashMap<String, Zone>();
Map<String, List<ZoneDescription>> zonesDescriptionsMap = new LinkedHashMap<String, List<ZoneDescription>>();
Map<String, String> zonesMark = new LinkedHashMap<String, String>();
// load files individually
for (Resource resource : files) {
InputStream in = resource.getInputStream();
if (in == null) {
continue;
}
Map<String, Object> data = mapper.readValue(in, Map.class);
if (resource.getFilename().contains("_")) {
for (Language l : languages) {
if (resource.getFilename().contains("_" + l.getCode())) {
// lead for this
// language
List langList = (List) data.get(l.getCode());
if (langList != null) {
/**
* submethod
*/
for (Object z : langList) {
Map<String, String> e = (Map<String, String>) z;
mapZone(l, zonesDescriptionsMap, countriesMap, zonesMap, zonesMark, e);
}
}
}
}
} else {
List langList = (List) data.get(ALL_REGIONS);
if (langList != null) {
/**
* submethod
*/
for (Language l : languages) {
for (Object z : langList) {
Map<String, String> e = (Map<String, String>) z;
mapZone(l, zonesDescriptionsMap, countriesMap, zonesMap, zonesMark, e);
}
}
}
}
for (Map.Entry<String, Zone> entry : zonesMap.entrySet()) {
String key = entry.getKey();
Zone value = entry.getValue();
// get descriptions
List<ZoneDescription> descriptions = zonesDescriptionsMap.get(key);
if (descriptions != null) {
value.setDescriptons(descriptions);
}
}
loadedZones.add(zonesMap);
}
return loadedZones;
} catch (Exception e) {
throw new ServiceException(e);
}
}
use of com.salesmanager.core.model.reference.language.Language in project shopizer by shopizer-ecommerce.
the class ProductFacadeV2Impl method getProductPrice.
@Override
public ReadableProductPrice getProductPrice(Long id, ProductPriceRequest priceRequest, MerchantStore store, Language language) {
Validate.notNull(id, "Product id cannot be null");
Validate.notNull(priceRequest, "Product price request cannot be null");
Validate.notNull(store, "MerchantStore cannot be null");
Validate.notNull(language, "Language cannot be null");
try {
Product model = productService.findOne(id, store);
List<ProductAttribute> attributes = null;
if (!CollectionUtils.isEmpty(priceRequest.getOptions())) {
List<Long> attrinutesIds = priceRequest.getOptions().stream().map(p -> p.getId()).collect(Collectors.toList());
attributes = productAttributeService.getByAttributeIds(store, model, attrinutesIds);
for (ProductAttribute attribute : attributes) {
if (attribute.getProduct().getId().longValue() != id.longValue()) {
// throw unauthorized
throw new OperationNotAllowedException("Attribute with id [" + attribute.getId() + "] is not attached to product id [" + id + "]");
}
}
}
if (!StringUtils.isBlank(priceRequest.getSku())) {
// change default availability with sku (instance availability)
List<ProductAvailability> availabilityList = productAvailabilityService.getBySku(priceRequest.getSku(), store);
if (CollectionUtils.isNotEmpty(availabilityList)) {
model.setAvailabilities(new HashSet(availabilityList));
}
}
FinalPrice price;
// attributes can be null;
price = pricingService.calculateProductPrice(model, attributes);
ReadableProductPrice readablePrice = new ReadableProductPrice();
ReadableFinalPricePopulator populator = new ReadableFinalPricePopulator();
populator.setPricingService(pricingService);
return populator.populate(price, readablePrice, store, language);
} catch (Exception e) {
throw new ServiceRuntimeException("An error occured while getting product price", e);
}
}
use of com.salesmanager.core.model.reference.language.Language in project shopizer by shopizer-ecommerce.
the class ProductInstanceFacadeImpl method create.
@Override
public Long create(PersistableProductInstance productInstance, Long productId, MerchantStore store, Language language) {
Validate.notNull(store, "MerchantStore cannot be null");
Validate.notNull(productInstance, "ProductInstance cannot be null");
Validate.notNull(productId, "Product id cannot be null");
// variation and variation value should not be of same product option code
if (productInstance.getVariant() != null && productInstance.getVariant().longValue() > 0 && productInstance.getVariantValue() != null && productInstance.getVariantValue().longValue() > 0) {
List<ProductVariation> variations = productVariationService.getByIds(Arrays.asList(productInstance.getVariant(), productInstance.getVariantValue()), store);
boolean differentOption = variations.stream().map(i -> i.getProductOption().getCode()).distinct().count() > 1;
if (!differentOption) {
throw new ConstraintException("Product option of instance.variant and instance.variantValue must be different");
}
}
productInstance.setProductId(productId);
productInstance.setId(null);
ProductInstance instance = persistableProductInstanceMapper.convert(productInstance, store, language);
try {
productInstanceService.save(instance);
} catch (ServiceException e) {
throw new ServiceRuntimeException("Cannot save product instance for store [" + store.getCode() + "] and productId [" + productId + "]", e);
}
return instance.getId();
}
Aggregations