Search in sources :

Example 36 with ProductAvailability

use of com.salesmanager.core.model.catalog.product.availability.ProductAvailability in project shopizer by shopizer-ecommerce.

the class ProductFacadeImpl method update.

@Override
public void update(Long productId, LightPersistableProduct product, MerchantStore merchant, Language language) {
    // Get product
    Product modified = productService.findOne(productId, merchant);
    // Update product with minimal set
    modified.setAvailable(product.isAvailable());
    for (ProductAvailability availability : modified.getAvailabilities()) {
        availability.setProductQuantity(product.getQuantity());
        if (!StringUtils.isBlank(product.getPrice())) {
            // set default price
            for (ProductPrice price : availability.getPrices()) {
                if (price.isDefaultPrice()) {
                    try {
                        price.setProductPriceAmount(pricingService.getAmount(product.getPrice()));
                    } catch (ServiceException e) {
                        throw new ServiceRuntimeException("Invalid product price format");
                    }
                }
            }
        }
    }
    try {
        productService.save(modified);
    } catch (ServiceException e) {
        throw new ServiceRuntimeException("Cannot update product ", e);
    }
}
Also used : ProductAvailability(com.salesmanager.core.model.catalog.product.availability.ProductAvailability) ServiceException(com.salesmanager.core.business.exception.ServiceException) PersistableProduct(com.salesmanager.shop.model.catalog.product.PersistableProduct) ReadableProduct(com.salesmanager.shop.model.catalog.product.ReadableProduct) Product(com.salesmanager.core.model.catalog.product.Product) LightPersistableProduct(com.salesmanager.shop.model.catalog.product.LightPersistableProduct) ProductPrice(com.salesmanager.core.model.catalog.product.price.ProductPrice) ReadableProductPrice(com.salesmanager.shop.model.catalog.product.ReadableProductPrice) ServiceRuntimeException(com.salesmanager.shop.store.api.exception.ServiceRuntimeException)

Aggregations

ProductAvailability (com.salesmanager.core.model.catalog.product.availability.ProductAvailability)36 Product (com.salesmanager.core.model.catalog.product.Product)28 ProductPrice (com.salesmanager.core.model.catalog.product.price.ProductPrice)17 Language (com.salesmanager.core.model.reference.language.Language)17 MerchantStore (com.salesmanager.core.model.merchant.MerchantStore)15 ServiceException (com.salesmanager.core.business.exception.ServiceException)14 ProductDescription (com.salesmanager.core.model.catalog.product.description.ProductDescription)13 ResourceNotFoundException (com.salesmanager.shop.store.api.exception.ResourceNotFoundException)13 Date (java.util.Date)13 Category (com.salesmanager.core.model.catalog.category.Category)12 ProductAttribute (com.salesmanager.core.model.catalog.product.attribute.ProductAttribute)12 ServiceRuntimeException (com.salesmanager.shop.store.api.exception.ServiceRuntimeException)12 ProductPriceDescription (com.salesmanager.core.model.catalog.product.price.ProductPriceDescription)11 ArrayList (java.util.ArrayList)11 HashSet (java.util.HashSet)11 ProductType (com.salesmanager.core.model.catalog.product.type.ProductType)10 FinalPrice (com.salesmanager.core.model.catalog.product.price.FinalPrice)9 ReadableProduct (com.salesmanager.shop.model.catalog.product.ReadableProduct)9 BigDecimal (java.math.BigDecimal)9 Manufacturer (com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer)8