Search in sources :

Example 21 with HeaderAlignment

use of com.qcadoo.report.api.pdf.HeaderAlignment in project mes by qcadoo.

the class OfferReportPdf method createProductsTable.

private void createProductsTable(final Document document, final Entity offer, final Locale locale) throws DocumentException {
    List<Entity> columnsForOffers = supplyNegotiationsService.getColumnsForOffers();
    if (!columnsForOffers.isEmpty()) {
        List<Entity> offerProducts = offer.getHasManyField(OFFER_PRODUCTS);
        Map<Entity, Map<String, String>> offerProductsColumnValues = offerColumnFetcher.getOfferProductsColumnValues(offerProducts);
        List<Entity> filteredColumnsForOffers = getOfferReportColumns(columnsForOffers, offerProducts, offerProductsColumnValues);
        if (!filteredColumnsForOffers.isEmpty()) {
            List<String> columnsName = Lists.newArrayList();
            for (Entity entity : filteredColumnsForOffers) {
                columnsName.add(entity.getStringField(IDENTIFIER));
            }
            Map<String, HeaderAlignment> alignments = prepareHeaderAlignment(filteredColumnsForOffers, locale);
            PdfPTable productsTable = pdfHelper.createTableWithHeader(filteredColumnsForOffers.size(), prepareProductsTableHeader(document, filteredColumnsForOffers, locale, offer), false, pdfHelper.getReportColumnWidths(REPORT_WIDTH, parameterService.getReportColumnWidths(), columnsName), alignments);
            for (Entity offerProduct : offerProducts) {
                for (Entity columnForRequests : filteredColumnsForOffers) {
                    String identifier = columnForRequests.getStringField(IDENTIFIER);
                    String alignment = columnForRequests.getStringField(ALIGNMENT);
                    String value = offerProductsColumnValues.get(offerProduct).get(identifier);
                    prepareProductColumnAlignment(productsTable.getDefaultCell(), ColumnAlignment.parseString(alignment));
                    productsTable.addCell(new Phrase(value, FontUtils.getDejavuRegular7Dark()));
                }
            }
            addTotalRow(productsTable, locale, columnsName, offer);
            document.add(productsTable);
            document.add(Chunk.NEWLINE);
        }
    }
}
Also used : Entity(com.qcadoo.model.api.Entity) PdfPTable(com.lowagie.text.pdf.PdfPTable) HeaderAlignment(com.qcadoo.report.api.pdf.HeaderAlignment)

Example 22 with HeaderAlignment

use of com.qcadoo.report.api.pdf.HeaderAlignment in project mes by qcadoo.

the class RequestForQuotationReportPdf method createProductsTable.

private void createProductsTable(final Document document, final Entity requestForQuotation, final Locale locale) throws DocumentException {
    List<Entity> columnsForRequests = supplyNegotiationsService.getColumnsForRequests();
    if (!columnsForRequests.isEmpty()) {
        List<Entity> requestForQuotationProducts = requestForQuotation.getHasManyField(REQUEST_FOR_QUOTATION_PRODUCTS);
        Map<Entity, Map<String, String>> requestForQuotationProductsColumnValues = requestForQuotationColumnFetcher.getRequestForQuotationProductsColumnValues(requestForQuotationProducts);
        List<Entity> filteredColumnsForRequests = getRequestForQuotationReportColumns(columnsForRequests, requestForQuotationProducts, requestForQuotationProductsColumnValues);
        if (!filteredColumnsForRequests.isEmpty()) {
            List<String> columnsName = Lists.newArrayList();
            for (Entity entity : filteredColumnsForRequests) {
                columnsName.add(entity.getStringField(IDENTIFIER));
            }
            Map<String, HeaderAlignment> alignments = prepareHeaderAlignment(filteredColumnsForRequests, locale);
            PdfPTable productsTable = pdfHelper.createTableWithHeader(filteredColumnsForRequests.size(), prepareProductsTableHeader(document, filteredColumnsForRequests, locale), false, pdfHelper.getReportColumnWidths(REPORT_WIDTH, parameterService.getReportColumnWidths(), columnsName), alignments);
            for (Entity requestForQuotationProduct : requestForQuotationProducts) {
                for (Entity columnForRequests : filteredColumnsForRequests) {
                    String identifier = columnForRequests.getStringField(IDENTIFIER);
                    String alignment = columnForRequests.getStringField(ALIGNMENT);
                    String value = requestForQuotationProductsColumnValues.get(requestForQuotationProduct).get(identifier);
                    prepareProductColumnAlignment(productsTable.getDefaultCell(), ColumnAlignment.parseString(alignment));
                    productsTable.addCell(new Phrase(value, FontUtils.getDejavuRegular7Dark()));
                }
            }
            document.add(productsTable);
            document.add(Chunk.NEWLINE);
        }
    }
}
Also used : Entity(com.qcadoo.model.api.Entity) PdfPTable(com.lowagie.text.pdf.PdfPTable) HeaderAlignment(com.qcadoo.report.api.pdf.HeaderAlignment)

Example 23 with HeaderAlignment

use of com.qcadoo.report.api.pdf.HeaderAlignment in project mes by qcadoo.

the class RequestForQuotationReportPdf method prepareHeaderAlignment.

private Map<String, HeaderAlignment> prepareHeaderAlignment(List<Entity> filteredColumnsForDeliveries, Locale locale) {
    Map<String, HeaderAlignment> alignments = Maps.newHashMap();
    for (Entity column : filteredColumnsForDeliveries) {
        String alignment = column.getStringField(ColumnForDeliveriesFields.ALIGNMENT);
        HeaderAlignment headerAlignment = HeaderAlignment.RIGHT;
        if (ColumnAlignment.LEFT.equals(ColumnAlignment.parseString(alignment))) {
            headerAlignment = HeaderAlignment.LEFT;
        } else if (ColumnAlignment.RIGHT.equals(ColumnAlignment.parseString(alignment))) {
            headerAlignment = HeaderAlignment.RIGHT;
        }
        alignments.put(prepareHeaderTranslation(column.getStringField(ColumnForDeliveriesFields.NAME), locale), headerAlignment);
    }
    return alignments;
}
Also used : Entity(com.qcadoo.model.api.Entity) HeaderAlignment(com.qcadoo.report.api.pdf.HeaderAlignment)

Aggregations

HeaderAlignment (com.qcadoo.report.api.pdf.HeaderAlignment)23 PdfPTable (com.lowagie.text.pdf.PdfPTable)16 Entity (com.qcadoo.model.api.Entity)16 Map (java.util.Map)7 PdfPCell (com.lowagie.text.pdf.PdfPCell)5 ArrayList (java.util.ArrayList)5 Phrase (com.lowagie.text.Phrase)4 Date (java.util.Date)4 Paragraph (com.lowagie.text.Paragraph)3 ColumnAlignment (com.qcadoo.mes.columnExtension.constants.ColumnAlignment)3 HashMap (java.util.HashMap)3 List (java.util.List)3 Lists (com.google.common.collect.Lists)2 Maps (com.google.common.collect.Maps)2 Document (com.lowagie.text.Document)2 DocumentException (com.lowagie.text.DocumentException)2 Element (com.lowagie.text.Element)2 TranslationService (com.qcadoo.localization.api.TranslationService)2 ProductFields (com.qcadoo.mes.basic.constants.ProductFields)2 DataDefinitionService (com.qcadoo.model.api.DataDefinitionService)2