Search in sources :

Example 41 with Product

use of eu.ggnet.dwoss.uniqueunit.ee.entity.Product in project dwoss by gg-net.

the class UniqueUnitAgentIT method testCreateOrUpdateCategoryProduct.

@Test
public void testCreateOrUpdateCategoryProduct() throws Exception {
    // Create a some Products.
    utx.begin();
    em.joinTransaction();
    Product p1 = new Product(ProductGroup.DESKTOP, TradeName.ACER, "LX.11111.222", "Verition Stein");
    p1.setDescription("Ein Tolles Gerät");
    p1.setPrice(PriceType.MANUFACTURER_COST, 200.0, "JUnit - Testcase");
    p1.setPrice(PriceType.CONTRACTOR_REFERENCE, 240.0, "JUnit - Testcase");
    p1.addFlag(Product.Flag.PRICE_FIXED);
    Product p2 = new Product(ProductGroup.COMMENTARY, TradeName.DELL, "DL", "Dienstleistung 1h");
    p2.setDescription("Eine Dienstleistungs Stunde");
    em.persist(p1);
    em.persist(p2);
    utx.commit();
    // Store a simple cp.
    CategoryProductDto dto1 = new CategoryProductDto();
    dto1.setName("CP1");
    dto1.setDescription("Some Description");
    CategoryProduct cp = agent.createOrUpdate(dto1, "Test");
    assertThat(cp).as("CategroyProduct").isNotNull();
    dto1.setId(cp.getId());
    dto1.getProducts().add(new PicoProduct(p1.getId(), "irrelevant"));
    dto1.getPrices().put(PriceType.SALE, 200.0);
    long lastid = cp.getId();
    cp = agent.createOrUpdate(dto1, "TEst");
    assertThat(cp).as("CategroyProtuct").isNotNull().as("CategroyProtuct id is equal").returns(lastid, CategoryProduct::getId);
    assertThat(cp.getProducts()).contains(p1);
    assertThat(cp.getPrice(PriceType.SALE)).isEqualTo(200.0);
    Reply<Void> reply = agent.deleteCategoryProduct(cp.getId());
    assertThat(reply).isNotNull().returns(true, Reply::hasSucceded);
    CategoryProduct notFound = agent.findById(CategoryProduct.class, cp.getId());
    assertThat(notFound).isNull();
}
Also used : CategoryProduct(eu.ggnet.dwoss.uniqueunit.ee.entity.CategoryProduct) PicoProduct(eu.ggnet.dwoss.uniqueunit.api.PicoProduct) CategoryProduct(eu.ggnet.dwoss.uniqueunit.ee.entity.CategoryProduct) Product(eu.ggnet.dwoss.uniqueunit.ee.entity.Product) Reply(eu.ggnet.saft.api.Reply) CategoryProductDto(eu.ggnet.dwoss.uniqueunit.ee.entity.dto.CategoryProductDto) PicoProduct(eu.ggnet.dwoss.uniqueunit.api.PicoProduct) Test(org.junit.Test)

Example 42 with Product

use of eu.ggnet.dwoss.uniqueunit.ee.entity.Product in project dwoss by gg-net.

the class UniqueUnitEaoFindsIT method testFinds.

/**
 * Multiple tests on find.
 *
 * @throws Exception
 */
@Test
public void testFinds() throws Exception {
    Product p = new Product(ProductGroup.MONITOR, TradeName.FUJITSU, PARTNO_1, "The Notebook");
    UniqueUnitEao eao = new UniqueUnitEao(em);
    UniqueUnit unit1 = new UniqueUnit();
    unit1.setMfgDate(new Date());
    unit1.setIdentifier(SERIAL, "ROFFFLAASSS");
    unit1.setIdentifier(REFURBISHED_ID, "22223");
    unit1.setContractor(TradeName.ONESELF);
    unit1.setCondition(Condition.AS_NEW);
    unit1.setProduct(p);
    UniqueUnit unit2 = new UniqueUnit();
    unit2.setIdentifier(SERIAL, "FASREAGFSGSWE");
    unit2.setIdentifier(REFURBISHED_ID, "54422");
    unit2.setContractor(TradeName.ONESELF);
    unit2.setCondition(Condition.AS_NEW);
    unit2.setProduct(p);
    UniqueUnit unit3 = new UniqueUnit();
    unit3.setIdentifier(SERIAL, "FHASKHFUAERHFAGTQ5");
    unit3.setIdentifier(REFURBISHED_ID, "33323");
    unit3.setContractor(TradeName.ONESELF);
    unit3.setCondition(Condition.AS_NEW);
    unit3.setProduct(p);
    UniqueUnit unit4 = new UniqueUnit();
    unit4.setIdentifier(SERIAL, "GFSKLFDIACVHDAIERQ");
    unit4.setIdentifier(REFURBISHED_ID, "54142");
    unit4.setContractor(TradeName.ONESELF);
    unit4.setCondition(Condition.AS_NEW);
    unit4.setProduct(p);
    UniqueUnit unit5 = new UniqueUnit();
    unit5.setIdentifier(SERIAL, "FDALOIFUOWE");
    unit5.setIdentifier(REFURBISHED_ID, "29471");
    unit5.setContractor(TradeName.ONESELF);
    unit5.setCondition(Condition.AS_NEW);
    unit5.setProduct(p);
    Set<ConstraintViolation<UniqueUnit>> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(unit1);
    assertTrue(ConstraintViolationFormater.toMultiLine(new HashSet<>(validate), true), validate.isEmpty());
    utx.begin();
    em.joinTransaction();
    em.persist(p);
    em.persist(unit1);
    em.persist(unit2);
    em.persist(unit3);
    em.persist(unit4);
    em.persist(unit5);
    utx.commit();
    utx.begin();
    em.joinTransaction();
    assertThat(eao.findByIdentifier(REFURBISHED_ID, "22223").getId()).as("Id of Unit1 via findByIdentifier 22223").isEqualTo(unit1.getId());
    assertThat(eao.findByIdentifier(REFURBISHED_ID, "54422").getId()).as("Id of Unit2 via findByIdentifier 54422").isEqualTo(unit2.getId());
    assertThat(eao.findByPartialIdentifier(REFURBISHED_ID, "54*")).as("Result of 54* should contation unit2 and unit4").contains(unit2, unit4);
    assertThat(eao.findByPartialIdentifier(REFURBISHED_ID, "*22*")).as("Result of *22* should contation unit1 and unit2").contains(unit1, unit2);
    assertThat(eao.countFind("*5*")).as("Counting *5*").isEqualTo(3);
    assertThat(eao.find("*5*")).as("Find of *5*").contains(unit2, unit3, unit4);
    utx.commit();
    SearchProvider search = null;
    for (Iterator<SearchProvider> iterator = searchProviders.iterator(); iterator.hasNext(); ) {
        SearchProvider next = iterator.next();
        if (next.getSource() == UNIQUE_UNIT)
            search = next;
    }
    assertThat(search.estimateMaxResults(new SearchRequest("*5*"))).as("Counting via Searchprovider *5*").isEqualTo(3);
    assertThat(search.search(new SearchRequest("*5*"), 0, 1000)).as("Find of *5*").extracting(ShortSearchResult::getKey).contains(new GlobalKey(GlobalKey.Component.UNIQUE_UNIT, unit2.getId()), new GlobalKey(GlobalKey.Component.UNIQUE_UNIT, unit3.getId()), new GlobalKey(GlobalKey.Component.UNIQUE_UNIT, unit4.getId()));
}
Also used : UniqueUnit(eu.ggnet.dwoss.uniqueunit.ee.entity.UniqueUnit) ConstraintViolation(javax.validation.ConstraintViolation) Product(eu.ggnet.dwoss.uniqueunit.ee.entity.Product) UniqueUnitEao(eu.ggnet.dwoss.uniqueunit.ee.eao.UniqueUnitEao) Test(org.junit.Test)

Example 43 with Product

use of eu.ggnet.dwoss.uniqueunit.ee.entity.Product in project dwoss by gg-net.

the class UniqueUnitEaoIT method setUp.

@Before
public void setUp() throws Exception {
    utx.begin();
    em.joinTransaction();
    product = new Product(ProductGroup.MONITOR, TradeName.ACER, PARTNO_1, "The Notebook");
    em.persist(product);
    Product p2 = new Product(ProductGroup.MONITOR, TradeName.ACER, PARTNO_2, "The Notebook");
    em.persist(p2);
    Product p3 = new Product(ProductGroup.MONITOR, TradeName.ACER, PARTNO_3, "The Notebook");
    em.persist(p3);
    unit_62325 = new UniqueUnit();
    unit_62325.setIdentifier(UniqueUnit.Identifier.REFURBISHED_ID, REFURBISHID_62325);
    unit_62325.setContractor(TradeName.AMAZON);
    unit_62325.setCondition(UniqueUnit.Condition.ALMOST_NEW);
    unit_62325.setProduct(product);
    unit_62325.setInputDate(_2012_12_02_);
    em.persist(unit_62325);
    UniqueUnit u2 = new UniqueUnit();
    u2.setIdentifier(UniqueUnit.Identifier.REFURBISHED_ID, "99999");
    u2.setContractor(TradeName.ACER);
    u2.setCondition(UniqueUnit.Condition.ALMOST_NEW);
    u2.setInputDate(_2012_12_10_);
    u2.setProduct(product);
    em.persist(u2);
    UniqueUnit u3 = new UniqueUnit();
    u3.setIdentifier(UniqueUnit.Identifier.REFURBISHED_ID, "99998");
    u3.setContractor(TradeName.ACER);
    u3.setCondition(UniqueUnit.Condition.AS_NEW);
    u3.setProduct(p2);
    u3.setInputDate(_2012_12_10_);
    em.persist(u3);
    UniqueUnit u4 = new UniqueUnit();
    u4.setIdentifier(UniqueUnit.Identifier.REFURBISHED_ID, "99997");
    u4.setContractor(TradeName.ACER);
    u4.setCondition(UniqueUnit.Condition.AS_NEW);
    u4.setProduct(p3);
    u4.setInputDate(_2012_12_10_);
    em.persist(u4);
    UniqueUnit u5 = new UniqueUnit();
    u5.setIdentifier(UniqueUnit.Identifier.REFURBISHED_ID, "99996");
    u5.setContractor(TradeName.ACER);
    u5.setCondition(UniqueUnit.Condition.AS_NEW);
    u5.setProduct(p3);
    u5.setInputDate(_2012_12_20_);
    em.persist(u5);
    utx.commit();
}
Also used : UniqueUnit(eu.ggnet.dwoss.uniqueunit.ee.entity.UniqueUnit) Product(eu.ggnet.dwoss.uniqueunit.ee.entity.Product)

Example 44 with Product

use of eu.ggnet.dwoss.uniqueunit.ee.entity.Product in project dwoss by gg-net.

the class ProductOperation method updatePrice.

/**
 * Update a price of a product by id.
 * <p/>
 * @param productId the product id
 * @param priceType the type of price to update
 * @param price     the price
 * @param comment   the comment for the price history
 * @return the updated product
 */
public Product updatePrice(long productId, PriceType priceType, double price, String comment) {
    Product product = new ProductEao(uus).findById(productId);
    if (product == null)
        return null;
    product.setPrice(priceType, price, comment);
    return product;
}
Also used : Product(eu.ggnet.dwoss.uniqueunit.ee.entity.Product) ProductEao(eu.ggnet.dwoss.uniqueunit.ee.eao.ProductEao)

Example 45 with Product

use of eu.ggnet.dwoss.uniqueunit.ee.entity.Product in project dwoss by gg-net.

the class PersistenceIT method testPersistence.

@Test
public void testPersistence() throws Exception {
    utx.begin();
    em.joinTransaction();
    Date now = new Date();
    CategoryProduct cp1 = new CategoryProduct();
    cp1.setName("Mixup");
    cp1.setPrice(PriceType.SALE, 100.0, "The Salepreice");
    cp1.setSalesChannel(SalesChannel.RETAILER);
    Product p1 = new Product(ProductGroup.DESKTOP, TradeName.ACER, "LX.11111.222", "Verition Stein");
    p1.setDescription("Ein Tolles Gerät");
    p1.setPrice(PriceType.MANUFACTURER_COST, 200.0, "JUnit - Testcase");
    p1.setPrice(PriceType.CONTRACTOR_REFERENCE, 240.0, "JUnit - Testcase");
    p1.addFlag(Product.Flag.PRICE_FIXED);
    p1.setCategoryProduct(cp1);
    Product p2 = new Product(ProductGroup.COMMENTARY, TradeName.DELL, "DL", "Dienstleistung 1h");
    p2.setDescription("Eine Dienstleistungs Stunde");
    p2.setCategoryProduct(cp1);
    UnitCollection uc1 = new UnitCollection();
    uc1.setProduct(p1);
    uc1.setPartNoExtension("demo1");
    uc1.setNameExtension("Demo1");
    UnitCollection uc2 = new UnitCollection();
    uc2.setProduct(p1);
    uc2.setPartNoExtension("demo2");
    uc2.setNameExtension("Demo2");
    UniqueUnit unit1 = new UniqueUnit(p1, now, "");
    unit1.setIdentifier(SERIAL, "ROFFFLAASSS");
    unit1.setPrice(PriceType.SALE, 125, "JUnit - Testcase");
    unit1.addFlag(UniqueUnit.Flag.PRICE_FIXED);
    unit1.setContractor(TradeName.ONESELF);
    unit1.setComment("Ein Commentar");
    unit1.setCondition(UniqueUnit.Condition.AS_NEW);
    unit1.setUnitCollection(uc1);
    UniqueUnit unit2 = new UniqueUnit(p1, now, "lila");
    unit2.addHistory("Aufgenommen als Sopo 332");
    unit2.addHistory("Zerlegt weil kaput");
    unit2.setIdentifier(SERIAL, "DBCFDASFDSADEF");
    unit2.setContractor(TradeName.ONESELF);
    unit2.setComment("Auch ein Commentar");
    unit2.setCondition(UniqueUnit.Condition.AS_NEW);
    unit2.setUnitCollection(uc2);
    UniqueUnit unit3 = new UniqueUnit();
    unit3.setProduct(p1);
    unit3.setMfgDate(now);
    unit3.setIdentifier(SERIAL, "ABCDEFJKHKZHJI");
    unit3.setContractor(TradeName.ONESELF);
    unit3.setCondition(UniqueUnit.Condition.AS_NEW);
    unit3.setUnitCollection(uc2);
    UniqueUnit unit4 = new UniqueUnit(p2, now, "");
    unit4.setIdentifier(SERIAL, "ABCDEFFEQGSDFD");
    unit4.setContractor(TradeName.ONESELF);
    unit4.setCondition(UniqueUnit.Condition.USED);
    unit4.setComment("Ein sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr langer Kommentar");
    unit4.setInternalComment("Ein sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr" + " sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr langer Kommentar");
    em.persist(cp1);
    em.persist(p1);
    em.persist(p2);
    em.persist(uc1);
    em.persist(uc2);
    em.persist(unit1);
    em.persist(unit2);
    em.persist(unit3);
    em.persist(unit4);
    utx.commit();
    List<CategoryProduct> allCp = agent.findAll(CategoryProduct.class);
    assertThat(allCp).as("findAllCategoryProducts").isNotEmpty().hasSize(1).contains(cp1);
    CategoryProduct getCp1 = allCp.get(0);
    assertThat(getCp1.getSalesChannel()).as("saleschanel of categoryproduct").isEqualTo(SalesChannel.RETAILER);
    assertThat(getCp1.hasPrice(PriceType.SALE)).as("price sale is set on categoryproduct").isTrue();
    assertThat(agent.findAll(UniqueUnit.class)).as("findAllUniqueUnits").isNotNull().isNotEmpty().hasSize(4);
    UniqueUnit unit3_1 = agent.findById(UniqueUnit.class, unit3.getId());
    assertThat(unit3_1).as("Expected unit3").isNotNull().satisfies(u -> {
        assertThat(u.getComment()).isNull();
        assertThat(u.getInternalComment()).isNull();
        assertThat(u.getUnitCollection()).isEqualTo(uc2);
    });
    UniqueUnit unit4_1 = agent.findById(UniqueUnit.class, unit4.getId());
    assertThat(unit4_1).as("Expected unit4").isNotNull();
    assertThat(unit4_1.getComment()).as("Comment of unit4").isNotBlank();
    assertThat(unit4_1.getInternalComment()).as("InternalComment of unit4").isNotBlank();
}
Also used : UniqueUnit(eu.ggnet.dwoss.uniqueunit.ee.entity.UniqueUnit) CategoryProduct(eu.ggnet.dwoss.uniqueunit.ee.entity.CategoryProduct) UnitCollection(eu.ggnet.dwoss.uniqueunit.ee.entity.UnitCollection) CategoryProduct(eu.ggnet.dwoss.uniqueunit.ee.entity.CategoryProduct) Product(eu.ggnet.dwoss.uniqueunit.ee.entity.Product) Date(java.util.Date) Test(org.junit.Test)

Aggregations

Product (eu.ggnet.dwoss.uniqueunit.ee.entity.Product)50 UniqueUnit (eu.ggnet.dwoss.uniqueunit.ee.entity.UniqueUnit)29 Test (org.junit.Test)16 SubMonitor (eu.ggnet.dwoss.progress.SubMonitor)13 StockUnit (eu.ggnet.dwoss.stock.ee.entity.StockUnit)11 ProductEao (eu.ggnet.dwoss.uniqueunit.ee.eao.ProductEao)11 UniqueUnitEao (eu.ggnet.dwoss.uniqueunit.ee.eao.UniqueUnitEao)9 ProductSpec (eu.ggnet.dwoss.spec.ee.entity.ProductSpec)8 StockUnitEao (eu.ggnet.dwoss.stock.ee.eao.StockUnitEao)5 LogicTransaction (eu.ggnet.dwoss.stock.ee.entity.LogicTransaction)5 PriceType (eu.ggnet.dwoss.uniqueunit.ee.entity.PriceType)5 java.util (java.util)5 Stock (eu.ggnet.dwoss.stock.ee.entity.Stock)4 StockTransaction (eu.ggnet.dwoss.stock.ee.entity.StockTransaction)4 CategoryProduct (eu.ggnet.dwoss.uniqueunit.ee.entity.CategoryProduct)4 UnitCollection (eu.ggnet.dwoss.uniqueunit.ee.entity.UnitCollection)4 JExcelLucidCalcReader (eu.ggnet.lucidcalc.jexcel.JExcelLucidCalcReader)4 PriceEngineResult (eu.ggnet.dwoss.price.engine.PriceEngineResult)3 TradeName (eu.ggnet.dwoss.rules.TradeName)3 CustomerMetaData (eu.ggnet.dwoss.customer.opi.CustomerMetaData)2