Search in sources :

Example 6 with PriceEngineResult

use of eu.ggnet.dwoss.price.engine.PriceEngineResult in project dwoss by gg-net.

the class ExporterOperation method load.

/**
 * Loads exactly one Unit as PriceEngineResult.
 *
 * @param refurbishId the unitid
 * @return The PriceEngineResult or Null if Id not found
 * @throws UserInfoException if the unitId is not a Number
 */
@Override
public PriceEngineResult load(String refurbishId) throws UserInfoException {
    UniqueUnit uu = new UniqueUnitEao(uuEm).findByIdentifier(Identifier.REFURBISHED_ID, refurbishId);
    PriceEngineResult per = new PriceEngineResult(uu);
    per.setRetailerPrice(uu.getPrice(PriceType.RETAILER));
    per.setCustomerPrice(uu.getPrice(PriceType.CUSTOMER));
    return per;
}
Also used : PriceEngineResult(eu.ggnet.dwoss.price.engine.PriceEngineResult) UniqueUnitEao(eu.ggnet.dwoss.uniqueunit.ee.eao.UniqueUnitEao)

Example 7 with PriceEngineResult

use of eu.ggnet.dwoss.price.engine.PriceEngineResult in project dwoss by gg-net.

the class ExporterOperation method toXls.

/**
 * Export PriceManagement as Xls.
 * <p/>
 * @return PriceManagement as Xls.
 */
@Override
public FileJacket toXls() {
    SubMonitor m = monitorFactory.newSubMonitor("Exporting the PriceManagement II", 100);
    List<PriceEngineResult> pers = priceCore.loadAndCalculate(m.newChild(80));
    Collections.sort(pers);
    m.setWorkRemaining(pers.size() + 1);
    m.worked(1);
    CFormat euro = new CFormat(RIGHT, CURRENCY_EURO);
    CFormat date = new CFormat(CENTER, SHORT_DATE);
    CFormat percent = new CFormat(ITALIC, BLUE, null, null, null, PERCENT_FLOAT);
    STable table = new STable();
    table.setTableFormat(new CFormat(BLACK, WHITE));
    table.setHeadlineFormat(new CFormat(BOLD_ITALIC, BLACK, YELLOW, CENTER, new CBorder(BLACK)));
    table.add(new STableColumn("UnitId", 8).setAction(SUtil.getBeanProperty(PROP_REFURBISHED_ID)));
    table.add(new STableColumn("Gruppe", 14).setAction(SUtil.getBeanProperty(PROP_COMMODITY_GROUP)));
    table.add(new STableColumn("Artikelnummer", 15).setAction(SUtil.getBeanProperty(PROP_MANUFACTURER_PART_NO)));
    table.add(new STableColumn("Name", 30).setAction(SUtil.getBeanProperty(PROP_PRODUCT_NAME)));
    table.add(new STableColumn("Hek", 11, euro).setAction(SUtil.getBeanProperty(PROP_RETAILER_PRICE)));
    table.add(new STableColumn("%Cost", 10, percent).setAction(new SFormulaAction(SR(4), "/", SR(17))));
    table.add(new STableColumn("%Reference", 10, percent).setAction(new SFormulaAction(SR(4), "/", SR(18))));
    table.add(new STableColumn("EvP netto", 11, euro).setAction(new SActionAdapter<PriceEngineResult>() {

        @Override
        public Object getValue(int relativeColumnIndex, int relativeRowIndex, int absoluteColumnIndex, int absoluteRowIndex, PriceEngineResult lineModel) {
            CCellReference x = new CCellReferenceAdapter(absoluteRowIndex, 4);
            // TODO: Change this, in the case of a fixed price. Here should be no formula if we have fixed prices.
            double p = 1 + lineModel.getRetailerToCustomerPricePercentage();
            double t = 1 + lineModel.getTax();
            return new SFormula("RUNDEN", "((", "RUNDEN", "(", x, "*", p, "*", t, ",", 0, ")", ")/", t, ",", 2, ")");
        }
    }));
    table.add(new STableColumn("EvP brutto", 11, euro).setAction(new SActionAdapter<PriceEngineResult>() {

        @Override
        public Object getValue(int relativeColumnIndex, int relativeRowIndex, int absoluteColumnIndex, int absoluteRowIndex, PriceEngineResult lineModel) {
            return new SFormula(new CCellReferenceAdapter(absoluteRowIndex, 7), "*", 1 + lineModel.getTax());
        }
    }));
    table.add(new STableColumn("UnitFix", 4, new CFormat(CENTER)).setAction(new SActionAdapter<PriceEngineResult>() {

        @Override
        public Object getValue(int relativeColumnIndex, int relativeRowIndex, int absoluteColumnIndex, int absoluteRowIndex, PriceEngineResult lineModel) {
            if (lineModel.getUnitPriceFixed() == PriceEngineResult.Change.SET)
                return 1;
            else if (lineModel.getUnitPriceFixed() == PriceEngineResult.Change.UNSET)
                return -1;
            return 0;
        }
    }));
    table.add(new STableColumn("PartFix", 4, new CFormat(CENTER)).setAction(SUtil.getConstant(0)));
    table.add(new STableColumn("Gar.-Id", 4, new CFormat(CENTER)).setAction(SUtil.getBeanProperty(PROP_WARRANTY_ID)));
    table.add(new STableColumn("Mfg-Date", 12, date).setAction(SUtil.getBeanProperty(PROP_MFG_DATE)));
    table.add(new STableColumn("Input-Date", 12, date).setAction(SUtil.getBeanProperty(PROP_INPUT_DATE)));
    table.add(new STableColumn("Eol-Date", 12, date).setAction(SUtil.getBeanProperty(PROP_EOL)));
    table.add(new STableColumn("First-Priced", 12, date).setAction(SUtil.getBeanProperty(PROP_DATE_FIRST_PRICED)));
    table.add(new STableColumn("Zustand", 16).setAction(SUtil.getBeanProperty(PROP_CONDITION_LEVEL)));
    table.add(new STableColumn("Manufacturer CP", 11, euro).setAction(SUtil.getBeanProperty(PROP_COST_PRICE)));
    table.add(new STableColumn("Contractor Reference CP", 11, euro).setAction(SUtil.getBeanProperty(PROP_CONTRACTOR_REFERENCE_PRICE)));
    table.add(new STableColumn("Ref.-Price", 11, euro).setAction(SUtil.getBeanProperty(PROP_REFERENCE_PRICE)));
    table.add(new STableColumn("Rules", 50).setAction(SUtil.getBeanProperty(PROP_RULES_LOG)));
    table.add(new STableColumn("Beschreibung", 50).setAction(SUtil.getBeanProperty(PROP_PRODUCT_DESCRIPTION)));
    table.add(new STableColumn("Bemerkung", 50).setAction(SUtil.getBeanProperty(PROP_COMMENT)));
    table.add(new STableColumn("Interne Bemerkungen", 50).setAction(SUtil.getBeanProperty(PROP_INTERNAL_COMMENT)));
    table.add(new STableColumn("Verkaufskanal", 18).setAction(SUtil.getBeanProperty(PROP_SALES_CHANNEL)));
    table.add(new STableColumn("Special", 12).setAction(SUtil.getBeanProperty(PROP_SPECIAL)));
    table.add(new STableColumn("Last Retailer", 12, euro).setAction(SUtil.getBeanProperty(PROP_LAST_RETAILER_PRICE)));
    table.add(new STableColumn("Last Customer", 12, euro).setAction(SUtil.getBeanProperty(PROP_LAST_CUSTOMER_PRICE)));
    table.add(new STableColumn("Warrenty Valid", 12, date).setAction(SUtil.getBeanProperty(PROP_WARRENTYVALID)));
    table.add(new STableColumn("Lager", 12).setAction(SUtil.getBeanProperty(PROP_STOCK)));
    table.setRowFormater((SRowFormater<PriceEngineResult>) (i, p) -> {
        if (p.isError())
            return new CFormat(RED, null);
        else if (p.isWarning())
            return new CFormat(new Color(0x80, 0x80, 0), null);
        else if (p.getManufacturerPartPriceFixed() == PriceEngineResult.Change.SET)
            return new CFormat(CYAN, null);
        return null;
    });
    table.setModel(new STableModelList<>(pers));
    CCalcDocument cdoc = new TempCalcDocument("PriceManagement_");
    cdoc.add(new CSheet("PriceManagement", table));
    File file = LucidCalc.createWriter(LucidCalc.Backend.XLS).write(cdoc);
    FileJacket result = new FileJacket("PriceManagement", ".xls", file);
    try {
        Thread.sleep(4000);
    } catch (InterruptedException ex) {
    }
    m.finish();
    return result;
}
Also used : Color(java.awt.Color) ProductSpecEao(eu.ggnet.dwoss.spec.ee.eao.ProductSpecEao) java.util(java.util) UniqueUnitEao(eu.ggnet.dwoss.uniqueunit.ee.eao.UniqueUnitEao) ProductFormater(eu.ggnet.dwoss.uniqueunit.ee.format.ProductFormater) SubMonitor(eu.ggnet.dwoss.progress.SubMonitor) Representation(eu.ggnet.lucidcalc.CFormat.Representation) LoggerFactory(org.slf4j.LoggerFactory) DocumentEao(eu.ggnet.dwoss.redtape.ee.eao.DocumentEao) UserInfoException(eu.ggnet.dwoss.util.UserInfoException) RIGHT(eu.ggnet.lucidcalc.CFormat.HorizontalAlignment.RIGHT) Specs(eu.ggnet.dwoss.spec.ee.assist.Specs) Identifier(eu.ggnet.dwoss.uniqueunit.ee.entity.UniqueUnit.Identifier) Stocks(eu.ggnet.dwoss.stock.ee.assist.Stocks) Inject(javax.inject.Inject) ProductSpec(eu.ggnet.dwoss.spec.ee.entity.ProductSpec) RedTapes(eu.ggnet.dwoss.redtape.ee.assist.RedTapes) SR(eu.ggnet.lucidcalc.SUtil.SR) BOLD_ITALIC(eu.ggnet.lucidcalc.CFormat.FontStyle.BOLD_ITALIC) UniqueUnits(eu.ggnet.dwoss.uniqueunit.ee.assist.UniqueUnits) PriceEngine(eu.ggnet.dwoss.price.engine.PriceEngine) Stateless(javax.ejb.Stateless) Logger(org.slf4j.Logger) ITALIC(eu.ggnet.lucidcalc.CFormat.FontStyle.ITALIC) eu.ggnet.dwoss.uniqueunit.ee.entity(eu.ggnet.dwoss.uniqueunit.ee.entity) FileJacket(eu.ggnet.dwoss.util.FileJacket) JExcelLucidCalcReader(eu.ggnet.lucidcalc.jexcel.JExcelLucidCalcReader) EntityManager(javax.persistence.EntityManager) File(java.io.File) StockUnitEao(eu.ggnet.dwoss.stock.ee.eao.StockUnitEao) CENTER(eu.ggnet.lucidcalc.CFormat.HorizontalAlignment.CENTER) eu.ggnet.lucidcalc(eu.ggnet.lucidcalc) MonitorFactory(eu.ggnet.dwoss.progress.MonitorFactory) Document(eu.ggnet.dwoss.redtape.ee.entity.Document) Position(eu.ggnet.dwoss.redtape.ee.entity.Position) PriceEngineResult(eu.ggnet.dwoss.price.engine.PriceEngineResult) PriceEngineResult(eu.ggnet.dwoss.price.engine.PriceEngineResult) Color(java.awt.Color) SubMonitor(eu.ggnet.dwoss.progress.SubMonitor) FileJacket(eu.ggnet.dwoss.util.FileJacket) File(java.io.File)

Example 8 with PriceEngineResult

use of eu.ggnet.dwoss.price.engine.PriceEngineResult in project dwoss by gg-net.

the class ImporterOperation method direct.

/**
 * Uses the Engine in the Background, and imports all Prices direct.
 * <p/>
 * @param arranger the arranger.
 */
@Override
public void direct(String arranger) {
    SubMonitor m = monitorFactory.newSubMonitor("Preise erzeugen und importieren", 100);
    List<PriceEngineResult> pers = core.loadAndCalculate(m.newChild(60));
    core.store(pers, "PriceUtilOperation.directExportImport()", arranger, m);
    m.finish();
}
Also used : PriceEngineResult(eu.ggnet.dwoss.price.engine.PriceEngineResult) SubMonitor(eu.ggnet.dwoss.progress.SubMonitor)

Example 9 with PriceEngineResult

use of eu.ggnet.dwoss.price.engine.PriceEngineResult in project dwoss by gg-net.

the class ImporterOperation method fromXls.

/**
 * Imports the Pricemanagement from an XLS file with a defined form.
 * The Form is as follows
 * <ul>
 * <li>Column 1 (A) = Refurbished Id, Type:Integer</li>
 * <li>Column 2 (C) = Manufacturer PartNo, Type:String</li>
 * <li>Column 4 (E) = Retailer Price, Type:Double</li>
 * <li>Column 7 (H) = Customer Price without Tax, Type:Double</li>
 * <li>Column 9 (J) = Set/Unset PartNoFixed Price, Type:Integer</li>
 * <li>Column 10 (K) = Warranty Id, Type:Integer</li>
 * </ul>
 *
 * @param jacket  the file in a jacket
 * @param arranger
 * @return a Reply of FileJacket
 * @throws UserInfoException
 */
@Override
public Reply<File> fromXls(FileJacket jacket, String arranger) throws UserInfoException {
    final SubMonitor m = monitorFactory.newSubMonitor("Import from Xls", 10);
    m.start();
    File f = jacket.toTemporaryFile();
    LucidCalcReader reader = new JExcelLucidCalcReader();
    // RefurbishedId
    reader.addColumn(0, String.class);
    // PartNo
    reader.addColumn(2, String.class);
    // RetailerPrice
    reader.addColumn(4, Double.class);
    // CustomerPrice
    reader.addColumn(7, Double.class);
    // UnitFixPrice
    reader.addColumn(9, Integer.class);
    // PartFixPrice
    reader.addColumn(10, Integer.class);
    // WarrantyId
    reader.addColumn(11, Integer.class);
    List<PriceEngineResult> imports = reader.read(f, new PriceEngineResult());
    m.worked(2);
    if (reader.isError()) {
        m.finish();
        throw new UserInfoException(reader.getErrors());
    }
    core.store(imports, "ImportPriceManagementOperation.fromXls()", arranger, m);
    return Reply.success(f);
}
Also used : JExcelLucidCalcReader(eu.ggnet.lucidcalc.jexcel.JExcelLucidCalcReader) PriceEngineResult(eu.ggnet.dwoss.price.engine.PriceEngineResult) SubMonitor(eu.ggnet.dwoss.progress.SubMonitor) JExcelLucidCalcReader(eu.ggnet.lucidcalc.jexcel.JExcelLucidCalcReader) LucidCalcReader(eu.ggnet.lucidcalc.LucidCalcReader) UserInfoException(eu.ggnet.dwoss.util.UserInfoException) File(java.io.File)

Aggregations

PriceEngineResult (eu.ggnet.dwoss.price.engine.PriceEngineResult)9 SubMonitor (eu.ggnet.dwoss.progress.SubMonitor)6 UniqueUnitEao (eu.ggnet.dwoss.uniqueunit.ee.eao.UniqueUnitEao)5 File (java.io.File)4 ProductSpecEao (eu.ggnet.dwoss.spec.ee.eao.ProductSpecEao)3 StockUnitEao (eu.ggnet.dwoss.stock.ee.eao.StockUnitEao)3 Product (eu.ggnet.dwoss.uniqueunit.ee.entity.Product)3 UniqueUnit (eu.ggnet.dwoss.uniqueunit.ee.entity.UniqueUnit)3 FileJacket (eu.ggnet.dwoss.util.FileJacket)3 DocumentEao (eu.ggnet.dwoss.redtape.ee.eao.DocumentEao)2 Document (eu.ggnet.dwoss.redtape.ee.entity.Document)2 ProductSpec (eu.ggnet.dwoss.spec.ee.entity.ProductSpec)2 UserInfoException (eu.ggnet.dwoss.util.UserInfoException)2 JExcelLucidCalcReader (eu.ggnet.lucidcalc.jexcel.JExcelLucidCalcReader)2 Test (org.junit.Test)2 ImporterOperation (eu.ggnet.dwoss.price.ImporterOperation)1 PriceCoreOperation (eu.ggnet.dwoss.price.PriceCoreOperation)1 PriceEngine (eu.ggnet.dwoss.price.engine.PriceEngine)1 MonitorFactory (eu.ggnet.dwoss.progress.MonitorFactory)1 ProgressProducerForTests (eu.ggnet.dwoss.progress.ProgressProducerForTests)1