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);
}
}
}
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);
}
}
}
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;
}
Aggregations