package com.salesmanager.core.business.services.merchant;
import java.util.List;
import javax.inject.Inject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.salesmanager.core.business.exception.ServiceException;
import com.salesmanager.core.business.repositories.merchant.MerchantRepository;
import com.salesmanager.core.business.services.catalog.product.manufacturer.ManufacturerService;
import com.salesmanager.core.business.services.catalog.product.type.ProductTypeService;
import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
import com.salesmanager.core.business.services.tax.TaxClassService;
import com.salesmanager.core.model.catalog.category.Category;
import com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer;
import com.salesmanager.core.model.customer.Customer;
import com.salesmanager.core.model.merchant.MerchantStore;
import com.salesmanager.core.model.order.Order;
import com.salesmanager.core.model.system.MerchantConfiguration;
import com.salesmanager.core.model.tax.taxclass.TaxClass;
import com.salesmanager.core.model.user.User;
@Service("merchantService")
public class MerchantStoreServiceImpl extends SalesManagerEntityServiceImpl<Integer, MerchantStore>
implements MerchantStoreService {
@Inject
protected ProductTypeService productTypeService;
@Inject
private TaxClassService taxClassService;
/* @Inject
private ContentService contentService;
@Inject
private MerchantConfigurationService merchantConfigurationService;
@Inject
private CategoryService categoryService;
@Inject
private UserService userService;
@Inject
private OrderService orderService;
@Inject
private CustomerService customerService;*/
@Inject
private ManufacturerService manufacturerService;
private MerchantRepository merchantRepository;
@Inject
public MerchantStoreServiceImpl(MerchantRepository merchantRepository) {
super(merchantRepository);
this.merchantRepository = merchantRepository;
}
public MerchantStore getMerchantStore(String merchantStoreCode) throws ServiceException {
return merchantRepository.findByCode(merchantStoreCode);
}
@Override
public void saveOrUpdate(MerchantStore store) throws ServiceException {
super.save(store);
}
@Override
public MerchantStore getByCode(String code) throws ServiceException {
return merchantRepository.findByCode(code);
}
/* @Override
public void delete(MerchantStore merchant) throws ServiceException {
merchant = this.getById(merchant.getId());
//reference
List<Manufacturer> manufacturers = manufacturerService.listByStore(merchant);
for(Manufacturer manufacturer : manufacturers) {
manufacturerService.delete(manufacturer);
}
List<MerchantConfiguration> configurations = merchantConfigurationService.listByStore(merchant);
for(MerchantConfiguration configuration : configurations) {
merchantConfigurationService.delete(configuration);
}
//TODO taxService
List<TaxClass> taxClasses = taxClassService.listByStore(merchant);
for(TaxClass taxClass : taxClasses) {
taxClassService.delete(taxClass);
}
//content
contentService.removeFiles(merchant.getCode());
//TODO staticContentService.removeImages
//category / product
List<Category> categories = categoryService.listByStore(merchant);
for(Category category : categories) {
categoryService.delete(category);
}
//users
List<User> users = userService.listByStore(merchant);
for(User user : users) {
userService.delete(user);
}
//customers
List<Customer> customers = customerService.listByStore(merchant);
for(Customer customer : customers) {
customerService.delete(customer);
}
//orders
List<Order> orders = orderService.listByStore(merchant);
for(Order order : orders) {
orderService.delete(order);
}
super.delete(merchant);
}*/
}