Example usage for com.lowagie.text.pdf PdfPTable addCell

List of usage examples for com.lowagie.text.pdf PdfPTable addCell

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfPTable addCell.

Prototype

public void addCell(Phrase phrase) 

Source Link

Document

Adds a cell element.

Usage

From source file:com.qcadoo.mes.productionCounting.print.ProductionBalancePdfService.java

License:Open Source License

public void addMachineTimeBalance(final Document document, final Entity productionBalance, final Locale locale)
        throws DocumentException {
    document.add(Chunk.NEWLINE);//  ww w  .j  a  v  a2  s. co m
    document.add(new Paragraph(
            translationService.translate("productionCounting.productionBalance.report.paragraph3", locale),
            FontUtils.getDejavuBold11Dark()));

    List<String> operationsTimeTableHeader = Lists.newArrayList();

    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.operationLevel", locale));
    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.operationNumber", locale));
    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.plannedDuration", locale));
    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.registeredTime", locale));
    operationsTimeTableHeader
            .add(translationService.translate(L_PRODUCTION_BALANCE_REPORT_COLUMN_HEADER_BALANCE, locale));

    PdfPTable machineTimeTable = pdfHelper.createTableWithHeader(5, operationsTimeTableHeader, false);

    List<Entity> operationTimeComponents = productionBalance
            .getHasManyField(ProductionBalanceFields.OPERATION_TIME_COMPONENTS);

    if (!operationTimeComponents.isEmpty()) {
        for (Entity operationTimeComponent : operationTimeComponents) {
            machineTimeTable
                    .addCell(new Phrase(
                            operationTimeComponent
                                    .getBelongsToField(
                                            OperationTimeComponentFields.TECHNOLOGY_OPERATION_COMPONENT)
                                    .getStringField(TechnologyOperationComponentFields.NODE_NUMBER),
                            FontUtils.getDejavuRegular9Dark()));
            machineTimeTable
                    .addCell(new Phrase(
                            operationTimeComponent
                                    .getBelongsToField(
                                            OperationTimeComponentFields.TECHNOLOGY_OPERATION_COMPONENT)
                                    .getBelongsToField(TechnologyOperationComponentFields.OPERATION)
                                    .getStringField(OperationFields.NUMBER),
                            FontUtils.getDejavuRegular9Dark()));
            machineTimeTable.addCell(new Phrase(
                    timeConverterService.convertTimeToString(operationTimeComponent
                            .getIntegerField(OperationTimeComponentFields.PLANNED_MACHINE_TIME)),
                    FontUtils.getDejavuRegular9Dark()));
            machineTimeTable.addCell(new Phrase(
                    timeConverterService.convertTimeToString(
                            operationTimeComponent.getIntegerField(OperationTimeComponentFields.MACHINE_TIME)),
                    FontUtils.getDejavuRegular9Dark()));
            machineTimeTable.addCell(new Phrase(
                    timeConverterService.convertTimeToString(operationTimeComponent
                            .getIntegerField(OperationTimeComponentFields.MACHINE_TIME_BALANCE)),
                    FontUtils.getDejavuRegular9Dark()));
        }
    }

    machineTimeTable.addCell(new Phrase(
            translationService.translate("productionCounting.productionBalance.report.total", locale),
            FontUtils.getDejavuRegular9Dark()));
    machineTimeTable.addCell(new Phrase("", FontUtils.getDejavuRegular9Dark()));
    machineTimeTable.addCell(new Phrase(
            timeConverterService.convertTimeToString(
                    productionBalance.getIntegerField(ProductionBalanceFields.PLANNED_MACHINE_TIME)),
            FontUtils.getDejavuRegular9Dark()));
    machineTimeTable.addCell(new Phrase(
            timeConverterService.convertTimeToString(
                    productionBalance.getIntegerField(ProductionBalanceFields.MACHINE_TIME)),
            FontUtils.getDejavuRegular9Dark()));
    machineTimeTable.addCell(new Phrase(
            timeConverterService.convertTimeToString(
                    productionBalance.getIntegerField(ProductionBalanceFields.MACHINE_TIME_BALANCE)),
            FontUtils.getDejavuRegular9Dark()));

    document.add(machineTimeTable);
}

From source file:com.qcadoo.mes.productionCounting.print.ProductionBalancePdfService.java

License:Open Source License

public void addLaborTimeBalance(final Document document, final Entity productionBalance, final Locale locale)
        throws DocumentException {
    document.add(Chunk.NEWLINE);//from  w  ww .ja v  a 2s.c o  m
    document.add(new Paragraph(
            translationService.translate("productionCounting.productionBalance.report.paragraph4", locale),
            FontUtils.getDejavuBold11Dark()));

    List<String> operationsTimeTableHeader = Lists.newArrayList();

    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.operationLevel", locale));
    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.operationNumber", locale));
    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.plannedDuration", locale));
    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.registeredTime", locale));
    operationsTimeTableHeader
            .add(translationService.translate(L_PRODUCTION_BALANCE_REPORT_COLUMN_HEADER_BALANCE, locale));

    PdfPTable laborTimeTable = pdfHelper.createTableWithHeader(5, operationsTimeTableHeader, false);

    List<Entity> operationTimeComponents = productionBalance
            .getHasManyField(ProductionBalanceFields.OPERATION_TIME_COMPONENTS);

    if (!operationTimeComponents.isEmpty()) {
        for (Entity operationTimeComponent : operationTimeComponents) {
            laborTimeTable
                    .addCell(new Phrase(
                            operationTimeComponent
                                    .getBelongsToField(
                                            OperationTimeComponentFields.TECHNOLOGY_OPERATION_COMPONENT)
                                    .getStringField(TechnologyOperationComponentFields.NODE_NUMBER),
                            FontUtils.getDejavuRegular9Dark()));
            laborTimeTable
                    .addCell(new Phrase(
                            operationTimeComponent
                                    .getBelongsToField(
                                            OperationTimeComponentFields.TECHNOLOGY_OPERATION_COMPONENT)
                                    .getBelongsToField(TechnologyOperationComponentFields.OPERATION)
                                    .getStringField(OperationFields.NUMBER),
                            FontUtils.getDejavuRegular9Dark()));
            laborTimeTable.addCell(new Phrase(
                    timeConverterService.convertTimeToString(operationTimeComponent
                            .getIntegerField(OperationTimeComponentFields.PLANNED_LABOR_TIME)),
                    FontUtils.getDejavuRegular9Dark()));
            laborTimeTable.addCell(new Phrase(
                    timeConverterService.convertTimeToString(
                            operationTimeComponent.getIntegerField(OperationTimeComponentFields.LABOR_TIME)),
                    FontUtils.getDejavuRegular9Dark()));
            laborTimeTable.addCell(new Phrase(
                    timeConverterService.convertTimeToString(operationTimeComponent
                            .getIntegerField(OperationTimeComponentFields.LABOR_TIME_BALANCE)),
                    FontUtils.getDejavuRegular9Dark()));
        }
    }

    laborTimeTable.addCell(new Phrase(
            translationService.translate("productionCounting.productionBalance.report.total", locale),
            FontUtils.getDejavuRegular9Dark()));
    laborTimeTable.addCell(new Phrase("", FontUtils.getDejavuRegular9Dark()));
    laborTimeTable.addCell(new Phrase(
            timeConverterService.convertTimeToString(
                    productionBalance.getIntegerField(ProductionBalanceFields.PLANNED_LABOR_TIME)),
            FontUtils.getDejavuRegular9Dark()));
    laborTimeTable.addCell(new Phrase(
            timeConverterService
                    .convertTimeToString(productionBalance.getIntegerField(ProductionBalanceFields.LABOR_TIME)),
            FontUtils.getDejavuRegular9Dark()));
    laborTimeTable.addCell(new Phrase(
            timeConverterService.convertTimeToString(
                    productionBalance.getIntegerField(ProductionBalanceFields.LABOR_TIME_BALANCE)),
            FontUtils.getDejavuRegular9Dark()));

    document.add(laborTimeTable);
}

From source file:com.qcadoo.mes.productionCounting.print.ProductionBalancePdfService.java

License:Open Source License

public void addPieceworkBalance(final Document document, final Entity productionBalance, final Locale locale)
        throws DocumentException {
    document.add(Chunk.NEWLINE);/*from   w  ww  .ja v  a 2s . com*/
    document.add(new Paragraph(
            translationService.translate("productionCounting.productionBalance.report.paragraph5", locale),
            FontUtils.getDejavuBold11Dark()));

    List<String> operationsTimeTableHeader = Lists.newArrayList();

    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.operationLevel", locale));
    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.operationNumber", locale));
    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.plannedCycles", locale));
    operationsTimeTableHeader.add(translationService
            .translate("productionCounting.productionBalance.report.columnHeader.registeredCycles", locale));
    operationsTimeTableHeader
            .add(translationService.translate(L_PRODUCTION_BALANCE_REPORT_COLUMN_HEADER_BALANCE, locale));

    PdfPTable pieceworkTable = pdfHelper.createTableWithHeader(5, operationsTimeTableHeader, false);

    List<Entity> operationPieceworkComponents = productionBalance
            .getHasManyField(ProductionBalanceFields.OPERATION_PIECEWORK_COMPONENTS);

    BigDecimal totalPlannedCycles = BigDecimal.ZERO;
    BigDecimal totalCycles = BigDecimal.ZERO;
    BigDecimal totalCyclesBalance = BigDecimal.ZERO;

    if (!operationPieceworkComponents.isEmpty()) {
        for (Entity operationPieceworkComponent : operationPieceworkComponents) {
            BigDecimal plannedCycles = operationPieceworkComponent
                    .getDecimalField(OperationPieceworkComponentFields.PLANNED_CYCLES);
            BigDecimal cycles = operationPieceworkComponent
                    .getDecimalField(OperationPieceworkComponentFields.CYCLES);
            BigDecimal cyclesBalance = operationPieceworkComponent
                    .getDecimalField(OperationPieceworkComponentFields.CYCLES_BALANCE);

            pieceworkTable
                    .addCell(new Phrase(
                            operationPieceworkComponent
                                    .getBelongsToField(
                                            OperationTimeComponentFields.TECHNOLOGY_OPERATION_COMPONENT)
                                    .getStringField(TechnologyOperationComponentFields.NODE_NUMBER),
                            FontUtils.getDejavuRegular9Dark()));
            pieceworkTable
                    .addCell(new Phrase(
                            operationPieceworkComponent
                                    .getBelongsToField(
                                            OperationTimeComponentFields.TECHNOLOGY_OPERATION_COMPONENT)
                                    .getBelongsToField(TechnologyOperationComponentFields.OPERATION)
                                    .getStringField(OperationFields.NUMBER),
                            FontUtils.getDejavuRegular9Dark()));
            pieceworkTable.addCell(
                    new Phrase(numberService.format(plannedCycles), FontUtils.getDejavuRegular9Dark()));
            pieceworkTable.addCell(new Phrase(numberService.format(cycles), FontUtils.getDejavuRegular9Dark()));
            pieceworkTable.addCell(
                    new Phrase(numberService.format(cyclesBalance), FontUtils.getDejavuRegular9Dark()));

            totalPlannedCycles = totalPlannedCycles.add(plannedCycles, numberService.getMathContext());
            totalCycles = totalPlannedCycles.add(cycles, numberService.getMathContext());
            totalCyclesBalance = totalPlannedCycles.add(cyclesBalance, numberService.getMathContext());
        }
    }

    pieceworkTable.addCell(new Phrase(
            translationService.translate("productionCounting.productionBalance.report.total", locale),
            FontUtils.getDejavuRegular9Dark()));
    pieceworkTable.addCell(new Phrase("", FontUtils.getDejavuRegular9Dark()));
    pieceworkTable
            .addCell(new Phrase(numberService.format(totalPlannedCycles), FontUtils.getDejavuRegular9Dark()));
    pieceworkTable.addCell(new Phrase(numberService.format(totalCycles), FontUtils.getDejavuRegular9Dark()));
    pieceworkTable
            .addCell(new Phrase(numberService.format(totalCyclesBalance), FontUtils.getDejavuRegular9Dark()));

    document.add(pieceworkTable);
}

From source file:com.qcadoo.mes.productionCounting.print.ProductionTrackingReportPdfService.java

License:Open Source License

@Override
protected void buildPdfContent(final Document document, final Entity productionTrackingReport,
        final Locale locale) throws DocumentException {
    final String documentTitle = translationService
            .translate("productionCounting.productionTrackingReport.report.title", locale) + " "
            + productionTrackingReport.getId().toString();
    final String documentAuthor = translationService.translate("qcadooReport.commons.generatedBy.label",
            locale);/*ww w .java2  s.co  m*/
    pdfHelper.addDocumentHeader(document, "", documentTitle, documentAuthor,
            productionTrackingReport.getDateField(ProductionTrackingReportFields.DATE));

    final PdfPTable leftPanel = createLeftPanel(productionTrackingReport, locale);
    final PdfPTable rightPanel = createRightPanel(productionTrackingReport, locale);

    final PdfPTable panelTable = pdfHelper.createPanelTable(2);
    panelTable.addCell(leftPanel);
    panelTable.addCell(rightPanel);
    panelTable.setSpacingAfter(20);
    panelTable.setSpacingBefore(20);
    document.add(panelTable);

    Entity order = productionTrackingReport.getBelongsToField(ProductionTrackingReportFields.ORDER);

    final List<Entity> productionTrackings = productionCountingService.getProductionTrackingsForOrder(order);

    Collections.sort(productionTrackings, new EntityProductionTrackingComparator());

    for (Entity productionTracking : productionTrackings) {
        addProductionTracking(document, productionTracking, locale);
    }
}

From source file:com.qcadoo.mes.productionCounting.print.ProductionTrackingReportPdfService.java

License:Open Source License

private void addTableCellAsTable(final PdfPTable table, final String label, final Object fieldValue,
        final String nullValue, final Font headerFont, final Font valueFont, final DecimalFormat df) {
    final PdfPTable cellTable = new PdfPTable(2);
    cellTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);
    cellTable.addCell(new Phrase(label, headerFont));
    final Object value = fieldValue;
    if (value == null) {
        cellTable.addCell(new Phrase(nullValue, valueFont));
    } else {//from  www. j a  va  2s .c o  m
        if (value instanceof BigDecimal && df != null) {
            cellTable.addCell(new Phrase(df.format(value), valueFont));
        } else {
            cellTable.addCell(new Phrase(value.toString(), valueFont));
        }
    }
    table.addCell(cellTable);
}

From source file:com.qcadoo.mes.productionCounting.print.ProductionTrackingReportPdfService.java

License:Open Source License

private PdfPTable createRightPanel(final Entity productionTrackingReport, final Locale locale) {
    Entity order = productionTrackingReport.getBelongsToField(ProductionTrackingReportFields.ORDER);

    final PdfPTable rightPanel = pdfHelper.createPanelTable(1);

    rightPanel.addCell(new Phrase(
            translationService.translate(
                    "productionCounting.productionTrackingReport.report.panel.countingParameters", locale),
            FontUtils.getDejavuBold10Dark()));
    rightPanel.addCell(new Phrase(
            L_TABS + translationService.translate(
                    "productionCounting.productionTrackingReport.report.panel.registerQuantityOutProduct",
                    locale) + " "
                    + (order.getBooleanField(OrderFieldsPC.REGISTER_QUANTITY_IN_PRODUCT)
                            ? translationService.translate(L_QCADOO_VIEW_TRUE, locale)
                            : translationService.translate(L_QCADOO_VIEW_FALSE, locale)),
            FontUtils.getDejavuBold9Dark()));
    rightPanel.addCell(new Phrase(
            L_TABS + translationService.translate(
                    "productionCounting.productionTrackingReport.report.panel.registerQuantityInProduct",
                    locale) + " "
                    + (order.getBooleanField(OrderFieldsPC.REGISTER_QUANTITY_OUT_PRODUCT)
                            ? translationService.translate(L_QCADOO_VIEW_TRUE, locale)
                            : translationService.translate(L_QCADOO_VIEW_FALSE, locale)),
            FontUtils.getDejavuBold9Dark()));
    rightPanel.addCell(new Phrase(
            L_TABS + translationService.translate(
                    "productionCounting.productionTrackingReport.report.panel.registerProductionTime", locale)
                    + " "
                    + (order.getBooleanField(OrderFieldsPC.REGISTER_PRODUCTION_TIME)
                            ? translationService.translate(L_QCADOO_VIEW_TRUE, locale)
                            : translationService.translate(L_QCADOO_VIEW_FALSE, locale)),
            FontUtils.getDejavuBold9Dark()));
    rightPanel/*w  w  w . j a v a  2s  .c  o m*/
            .addCell(
                    new Phrase(
                            L_TABS + translationService.translate(
                                    "productionCounting.productionTrackingReport.report.panel.justOne", locale)
                                    + " "
                                    + (order.getBooleanField(OrderFieldsPC.JUST_ONE)
                                            ? translationService.translate(L_QCADOO_VIEW_TRUE, locale)
                                            : translationService.translate(L_QCADOO_VIEW_FALSE, locale)),
                            FontUtils.getDejavuBold9Dark()));
    rightPanel.addCell(new Phrase(
            L_TABS + translationService
                    .translate("productionCounting.productionTrackingReport.report.panel.allowToClose", locale)
                    + " "
                    + (order.getBooleanField(OrderFieldsPC.ALLOW_TO_CLOSE)
                            ? translationService.translate(L_QCADOO_VIEW_TRUE, locale)
                            : translationService.translate(L_QCADOO_VIEW_FALSE, locale)),
            FontUtils.getDejavuBold9Dark()));
    rightPanel
            .addCell(new Phrase(
                    L_TABS + translationService.translate(
                            "productionCounting.productionTrackingReport.report.panel.autoCloseOrder", locale)
                            + " "
                            + (order.getBooleanField(OrderFieldsPC.AUTO_CLOSE_ORDER)
                                    ? translationService.translate(L_QCADOO_VIEW_TRUE, locale)
                                    : translationService.translate(L_QCADOO_VIEW_FALSE, locale)),
                    FontUtils.getDejavuBold9Dark()));

    return rightPanel;
}

From source file:com.qcadoo.mes.productionCounting.print.ProductionTrackingReportPdfService.java

License:Open Source License

private void addInputProducts(final Document document, final Entity productionTracking, final Entity technology,
        final Locale locale) throws DocumentException {
    document.add(/*from w w  w  .j  a va2s.com*/
            new Paragraph(
                    translationService
                            .translate("productionCounting.productionTrackingReport.report.paragraph2", locale),
                    FontUtils.getDejavuBold11Dark()));

    List<String> inputProductsTableHeader = Lists.newArrayList();

    inputProductsTableHeader.add(translationService
            .translate("productionCounting.productionTrackingReport.report.columnHeader.number", locale));
    inputProductsTableHeader.add(translationService.translate(
            "productionCounting.productionTrackingReport.report.columnHeader.productionName", locale));
    inputProductsTableHeader.add(translationService
            .translate("productionCounting.productionTrackingReport.report.columnHeader.type", locale));
    inputProductsTableHeader.add(translationService
            .translate("productionCounting.productionTrackingReport.report.columnHeader.quantity", locale));
    inputProductsTableHeader.add(translationService.translate("basic.product.unit.label", locale));

    PdfPTable inputProductsTable = pdfHelper.createTableWithHeader(5, inputProductsTableHeader, false);

    if (productionTracking
            .getHasManyField(ProductionTrackingFields.TRACKING_OPERATION_PRODUCT_IN_COMPONENTS) != null) {
        List<Entity> trackingOperationProductInComponents = Lists.newArrayList(productionTracking
                .getHasManyField(ProductionTrackingFields.TRACKING_OPERATION_PRODUCT_IN_COMPONENTS));
        Collections.sort(trackingOperationProductInComponents, new EntityProductInOutComparator());
        for (Entity trackingOperationProductInComponent : trackingOperationProductInComponents) {
            inputProductsTable
                    .addCell(
                            new Phrase(
                                    trackingOperationProductInComponent
                                            .getBelongsToField(
                                                    TrackingOperationProductInComponentFields.PRODUCT)
                                            .getStringField(ProductFields.NUMBER),
                                    FontUtils.getDejavuRegular9Dark()));
            inputProductsTable
                    .addCell(
                            new Phrase(
                                    trackingOperationProductInComponent
                                            .getBelongsToField(
                                                    TrackingOperationProductInComponentFields.PRODUCT)
                                            .getStringField(ProductFields.NAME),
                                    FontUtils.getDejavuRegular9Dark()));

            String type = technologyService.getProductType(trackingOperationProductInComponent
                    .getBelongsToField(TrackingOperationProductInComponentFields.PRODUCT), technology);
            inputProductsTable.addCell(new Phrase(
                    translationService.translate("basic.product.globalTypeOfMaterial.value." + type, locale),
                    FontUtils.getDejavuRegular9Dark()));

            inputProductsTable.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_RIGHT);
            if (trackingOperationProductInComponent
                    .getField(TrackingOperationProductInComponentFields.USED_QUANTITY) == null) {
                inputProductsTable.addCell(new Phrase(L_N_A, FontUtils.getDejavuRegular9Dark()));
            } else {
                inputProductsTable.addCell(new Phrase(
                        numberService.format(trackingOperationProductInComponent
                                .getField(TrackingOperationProductInComponentFields.USED_QUANTITY)),
                        FontUtils.getDejavuRegular9Dark()));
            }
            inputProductsTable.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_LEFT);
            inputProductsTable
                    .addCell(
                            new Phrase(
                                    trackingOperationProductInComponent
                                            .getBelongsToField(
                                                    TrackingOperationProductInComponentFields.PRODUCT)
                                            .getStringField(ProductFields.UNIT),
                                    FontUtils.getDejavuRegular9Dark()));
        }
    }

    document.add(inputProductsTable);
}

From source file:com.qcadoo.mes.productionCounting.print.ProductionTrackingReportPdfService.java

License:Open Source License

private void addOutputProducts(final Document document, final Entity productionTracking,
        final Entity technology, final Locale locale) throws DocumentException {
    document.add(/*from w  w  w .  j av  a  2 s . c o  m*/
            new Paragraph(
                    translationService
                            .translate("productionCounting.productionTrackingReport.report.paragraph3", locale),
                    FontUtils.getDejavuBold11Dark()));

    List<String> outputProductsTableHeader = Lists.newArrayList();

    outputProductsTableHeader.add(translationService
            .translate("productionCounting.productionTrackingReport.report.columnHeader.number", locale));
    outputProductsTableHeader.add(translationService.translate(
            "productionCounting.productionTrackingReport.report.columnHeader.productionName", locale));
    outputProductsTableHeader.add(translationService
            .translate("productionCounting.productionTrackingReport.report.columnHeader.type", locale));
    outputProductsTableHeader.add(translationService
            .translate("productionCounting.productionTrackingReport.report.columnHeader.quantity", locale));
    outputProductsTableHeader.add(translationService.translate("basic.product.unit.label", locale));

    PdfPTable outputProductsTable = pdfHelper.createTableWithHeader(5, outputProductsTableHeader, false);

    if (productionTracking
            .getHasManyField(ProductionTrackingFields.TRACKING_OPERATION_PRODUCT_OUT_COMPONENTS) != null) {
        List<Entity> trackingOperationProductOutComponents = Lists.newArrayList(productionTracking
                .getHasManyField(ProductionTrackingFields.TRACKING_OPERATION_PRODUCT_OUT_COMPONENTS));
        Collections.sort(trackingOperationProductOutComponents, new EntityProductInOutComparator());
        for (Entity trackingOperationProductOutComponent : trackingOperationProductOutComponents) {
            outputProductsTable
                    .addCell(
                            new Phrase(
                                    trackingOperationProductOutComponent
                                            .getBelongsToField(
                                                    TrackingOperationProductOutComponentFields.PRODUCT)
                                            .getStringField(ProductFields.NUMBER),
                                    FontUtils.getDejavuRegular9Dark()));
            outputProductsTable
                    .addCell(
                            new Phrase(
                                    trackingOperationProductOutComponent
                                            .getBelongsToField(
                                                    TrackingOperationProductOutComponentFields.PRODUCT)
                                            .getStringField(ProductFields.NAME),
                                    FontUtils.getDejavuRegular9Dark()));

            String type = technologyService.getProductType(trackingOperationProductOutComponent
                    .getBelongsToField(TrackingOperationProductOutComponentFields.PRODUCT), technology);
            outputProductsTable.addCell(new Phrase(
                    translationService.translate("basic.product.globalTypeOfMaterial.value." + type, locale),
                    FontUtils.getDejavuRegular9Dark()));

            outputProductsTable.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_RIGHT);
            if (trackingOperationProductOutComponent
                    .getField(TrackingOperationProductOutComponentFields.USED_QUANTITY) == null) {
                outputProductsTable.addCell(new Phrase(L_N_A, FontUtils.getDejavuRegular9Dark()));
            } else {
                outputProductsTable.addCell(new Phrase(
                        numberService.format(trackingOperationProductOutComponent
                                .getField(TrackingOperationProductOutComponentFields.USED_QUANTITY)),
                        FontUtils.getDejavuRegular9Dark()));
            }
            outputProductsTable.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_LEFT);
            outputProductsTable
                    .addCell(
                            new Phrase(
                                    trackingOperationProductOutComponent
                                            .getBelongsToField(
                                                    TrackingOperationProductOutComponentFields.PRODUCT)
                                            .getStringField(ProductFields.UNIT),
                                    FontUtils.getDejavuRegular9Dark()));
        }
    }

    document.add(outputProductsTable);
}

From source file:com.qcadoo.mes.productionCountingWithCosts.pdf.ProductionBalanceWithCostsPdfService.java

License:Open Source License

@Override
protected void buildPdfContent(final Document document, final Entity productionBalance, final Locale locale)
        throws DocumentException {
    String documentTitle = translationService.translate("productionCounting.productionBalance.report.title",
            locale);//  w w w. j  av a  2  s .c  o  m
    String documentAuthor = translationService.translate("qcadooReport.commons.generatedBy.label", locale);
    pdfHelper.addDocumentHeader(document, "", documentTitle, documentAuthor,
            productionBalance.getDateField(ProductionBalanceFields.DATE));

    PdfPTable topTable = pdfHelper.createPanelTable(2);
    topTable.addCell(productionBalancePdfService.createLeftPanel(productionBalance, locale));
    topTable.addCell(productionBalancePdfService.createRightPanel(productionBalance, locale));
    topTable.setSpacingBefore(20);
    document.add(topTable);

    PdfPTable parametersForCostsPanel = createParametersForCostsPanel(productionBalance, locale);
    parametersForCostsPanel.setSpacingBefore(20);
    document.add(parametersForCostsPanel);

    Entity order = productionBalance.getBelongsToField(ProductionBalanceFields.ORDER);
    String typeOfProductionRecording = order.getStringField(OrderFieldsPC.TYPE_OF_PRODUCTION_RECORDING);
    String calculateOperationCostMode = productionBalance
            .getStringField(ProductionBalanceFields.CALCULATE_OPERATION_COST_MODE);

    final boolean isTypeOfProductionRecordingCumulated = productionCountingService
            .isTypeOfProductionRecordingCumulated(typeOfProductionRecording);
    final boolean isTypeOfProductionRecordingForEach = productionCountingService
            .isTypeOfProductionRecordingForEach(typeOfProductionRecording);
    final boolean isCalculateOperationCostModeHourly = productionCountingService
            .isCalculateOperationCostModeHourly(calculateOperationCostMode);
    final boolean isCalculateOperationCostModePiecework = productionCountingService
            .isCalculateOperationCostModePiecework(calculateOperationCostMode);

    if (isCalculateOperationCostModeHourly && isTypeOfProductionRecordingCumulated) {
        PdfPTable assumptionForCumulatedRecordsPanel = createAssumptionsForCumulatedRecordsPanel(
                productionBalance, locale);
        assumptionForCumulatedRecordsPanel.setSpacingBefore(20);
        document.add(assumptionForCumulatedRecordsPanel);
    }

    PdfPTable bottomTable = pdfHelper.createPanelTable(2);
    bottomTable.addCell(createCostsPanel(productionBalance, locale));
    bottomTable.addCell(createOverheadsAndSummaryPanel(productionBalance, locale));
    bottomTable.setSpacingBefore(20);
    bottomTable.setSpacingAfter(20);
    document.add(bottomTable);

    productionBalancePdfService.addInputProductsBalance(document, productionBalance, locale);
    addMaterialCost(document, productionBalance, locale);
    productionBalancePdfService.addOutputProductsBalance(document, productionBalance, locale);

    if (isCalculateOperationCostModeHourly) {
        if (isTypeOfProductionRecordingCumulated) {
            productionBalancePdfService.addTimeBalanceAsPanel(document, productionBalance, locale);
            addProductionCosts(document, productionBalance, locale);
        } else if (isTypeOfProductionRecordingForEach) {
            productionBalancePdfService.addMachineTimeBalance(document, productionBalance, locale);
            addCostsBalance("machine", document, productionBalance, locale);

            productionBalancePdfService.addLaborTimeBalance(document, productionBalance, locale);
            addCostsBalance("labor", document, productionBalance, locale);
        }
    } else if (isCalculateOperationCostModePiecework) {
        productionBalancePdfService.addPieceworkBalance(document, productionBalance, locale);
        addCostsBalance("cycles", document, productionBalance, locale);
    }

    costCalculationPdfService.printMaterialAndOperationNorms(document, productionBalance, locale);
}

From source file:com.qcadoo.mes.productionCountingWithCosts.pdf.ProductionBalanceWithCostsPdfService.java

License:Open Source License

private void addMaterialCost(final Document document, final Entity productionBalance, final Locale locale)
        throws DocumentException {
    List<String> materialCostTableHeader = Lists.newArrayList();

    materialCostTableHeader.add(translationService.translate(
            "productionCounting.productionBalanceDetails.window.materialCostsTab.technologyOperationProductInComponents.column.productNumber",
            locale));//w  ww.  j  a v a2 s. c o  m
    materialCostTableHeader.add(translationService.translate(
            "productionCounting.productionBalanceDetails.window.materialCostsTab.technologyOperationProductInComponents.column.plannedCost",
            locale));
    materialCostTableHeader.add(translationService.translate(
            "productionCounting.productionBalanceDetails.window.materialCostsTab.technologyOperationProductInComponents.column.registeredCost",
            locale));
    materialCostTableHeader.add(translationService.translate(
            "productionCounting.productionBalanceDetails.window.materialCostsTab.technologyOperationProductInComponents.column.balance",
            locale));
    Map<String, HeaderAlignment> alignments = Maps.newHashMap();

    alignments.put(translationService.translate(
            "productionCounting.productionBalanceDetails.window.materialCostsTab.technologyInstOperProductInComps.column.productNumber",
            locale), HeaderAlignment.LEFT);
    alignments.put(translationService.translate(
            "productionCounting.productionBalanceDetails.window.materialCostsTab.technologyInstOperProductInComps.column.plannedCost",
            locale), HeaderAlignment.RIGHT);

    alignments.put(translationService.translate(
            "productionCounting.productionBalanceDetails.window.materialCostsTab.technologyInstOperProductInComps.column.registeredCost",
            locale), HeaderAlignment.RIGHT);

    alignments.put(translationService.translate(
            "productionCounting.productionBalanceDetails.window.materialCostsTab.technologyInstOperProductInComps.column.balance",
            locale), HeaderAlignment.RIGHT);

    List<Entity> technologyOperationProductInComponents = productionBalance
            .getHasManyField(ProductionBalanceFieldsPCWC.TECHNOLOGY_OPERATION_PRODUCT_IN_COMPONENTS);

    if (!technologyOperationProductInComponents.isEmpty()) {
        document.add(Chunk.NEWLINE);

        document.add(
                new Paragraph(
                        translationService.translate(
                                "productionCounting.productionBalance.report.table.materialCost", locale),
                        FontUtils.getDejavuBold11Dark()));

        technologyOperationProductInComponents = Lists.newLinkedList(technologyOperationProductInComponents);
        Collections.sort(technologyOperationProductInComponents, new EntityProductInOutComparator());

        PdfPTable productsTable = pdfHelper.createTableWithHeader(4, materialCostTableHeader, false,
                alignments);

        String currency = " " + currencyService.getCurrencyAlphabeticCode();

        for (Entity technologyOperationProductInComponent : technologyOperationProductInComponents) {
            productsTable.addCell(new Phrase(technologyOperationProductInComponent
                    .getBelongsToField(TechnologyOperationProductInCompFields.PRODUCT)
                    .getStringField(ProductFields.NUMBER), FontUtils.getDejavuRegular7Dark()));
            productsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);

            String plannedCost = numberService.format(technologyOperationProductInComponent
                    .getField(TechnologyOperationProductInCompFields.PLANNED_COST));
            productsTable.addCell(new Phrase((plannedCost == null) ? L_NULL_OBJECT : (plannedCost + currency),
                    FontUtils.getDejavuRegular7Dark()));
            String registeredCost = numberService.format(technologyOperationProductInComponent
                    .getField(TechnologyOperationProductInCompFields.REGISTERED_COST));
            productsTable
                    .addCell(new Phrase((registeredCost == null) ? L_NULL_OBJECT : (registeredCost + currency),
                            FontUtils.getDejavuRegular7Dark()));
            String balance = numberService.format(technologyOperationProductInComponent
                    .getField(TechnologyOperationProductInCompFields.BALANCE));
            productsTable.addCell(new Phrase((balance == null) ? L_NULL_OBJECT : (balance + currency),
                    FontUtils.getDejavuRegular7Dark()));
            productsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);

        }

        productsTable.addCell(new Phrase(
                translationService.translate("productionCounting.productionBalance.report.total", locale),
                FontUtils.getDejavuRegular7Dark()));
        String plannedComponentsCosts = numberService.format(
                productionBalance.getDecimalField(ProductionBalanceFieldsPCWC.PLANNED_COMPONENTS_COSTS));
        productsTable.addCell(new Phrase(
                (plannedComponentsCosts == null) ? L_NULL_OBJECT : (plannedComponentsCosts + currency),
                FontUtils.getDejavuRegular7Dark()));
        String componentsCosts = numberService
                .format(productionBalance.getDecimalField(ProductionBalanceFieldsPCWC.COMPONENTS_COSTS));
        productsTable
                .addCell(new Phrase((componentsCosts == null) ? L_NULL_OBJECT : (componentsCosts + currency),
                        FontUtils.getDejavuRegular7Dark()));
        String componentsCostsBalance = numberService.format(
                productionBalance.getDecimalField(ProductionBalanceFieldsPCWC.COMPONENTS_COSTS_BALANCE));
        productsTable.addCell(new Phrase(
                (componentsCostsBalance == null) ? L_NULL_OBJECT : (componentsCostsBalance + currency),
                FontUtils.getDejavuRegular7Dark()));
        productsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);

        document.add(productsTable);
    }
}