Search in sources :

Example 1 with SR

use of eu.ggnet.lucidcalc.SUtil.SR 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)

Aggregations

PriceEngine (eu.ggnet.dwoss.price.engine.PriceEngine)1 PriceEngineResult (eu.ggnet.dwoss.price.engine.PriceEngineResult)1 MonitorFactory (eu.ggnet.dwoss.progress.MonitorFactory)1 SubMonitor (eu.ggnet.dwoss.progress.SubMonitor)1 RedTapes (eu.ggnet.dwoss.redtape.ee.assist.RedTapes)1 DocumentEao (eu.ggnet.dwoss.redtape.ee.eao.DocumentEao)1 Document (eu.ggnet.dwoss.redtape.ee.entity.Document)1 Position (eu.ggnet.dwoss.redtape.ee.entity.Position)1 Specs (eu.ggnet.dwoss.spec.ee.assist.Specs)1 ProductSpecEao (eu.ggnet.dwoss.spec.ee.eao.ProductSpecEao)1 ProductSpec (eu.ggnet.dwoss.spec.ee.entity.ProductSpec)1 Stocks (eu.ggnet.dwoss.stock.ee.assist.Stocks)1 StockUnitEao (eu.ggnet.dwoss.stock.ee.eao.StockUnitEao)1 UniqueUnits (eu.ggnet.dwoss.uniqueunit.ee.assist.UniqueUnits)1 UniqueUnitEao (eu.ggnet.dwoss.uniqueunit.ee.eao.UniqueUnitEao)1 eu.ggnet.dwoss.uniqueunit.ee.entity (eu.ggnet.dwoss.uniqueunit.ee.entity)1 Identifier (eu.ggnet.dwoss.uniqueunit.ee.entity.UniqueUnit.Identifier)1 ProductFormater (eu.ggnet.dwoss.uniqueunit.ee.format.ProductFormater)1 FileJacket (eu.ggnet.dwoss.util.FileJacket)1 UserInfoException (eu.ggnet.dwoss.util.UserInfoException)1