use of com.qcadoo.report.api.pdf.HeaderAlignment in project mes by qcadoo.
the class ModelCardPdfService method addMaterialsTable.
private void addMaterialsTable(Document document, List<ModelCardMaterialEntry> entries, Entity materialAttribute, Locale locale) throws DocumentException {
Map<String, HeaderAlignment> headersWithAlignments = getMaterialHeaders(materialAttribute, locale);
List<String> headers = com.google.common.collect.Lists.newLinkedList(headersWithAlignments.keySet());
PdfPTable table = pdfHelper.createTableWithHeader(headersWithAlignments.size(), headers, true, defaultModelCardMaterialsColumnWidth, headersWithAlignments);
for (ModelCardMaterialEntry modelCardMaterialEntry : entries) {
if (Objects.isNull(modelCardMaterialEntry.getId())) {
addProductInputTypeRow(table, modelCardMaterialEntry);
} else if (!Objects.isNull(modelCardMaterialEntry.getSizeGroupId())) {
addProductBySizeRow(table, modelCardMaterialEntry, materialAttribute);
} else {
addProductRow(table, modelCardMaterialEntry, materialAttribute);
}
}
document.add(table);
}
use of com.qcadoo.report.api.pdf.HeaderAlignment in project mes by qcadoo.
the class OperationProductOutTable method print.
public void print(final Entity workPlan, final GroupingContainer groupingContainer, final OrderOperationComponent orderOperationComponent, final Document document, final Locale locale) throws DocumentException {
Entity operationComponent = orderOperationComponent.getOperationComponent();
Map<Long, Map<OperationProductColumn, ColumnAlignment>> map = groupingContainer.getOperationComponentIdProductOutColumnToAlignment();
Map<OperationProductColumn, ColumnAlignment> operationProductColumnAlignmentMap = map.get(operationComponent.getId());
int columnCount = operationProductColumnAlignmentMap.size();
Map<String, HeaderAlignment> headerAlignments = new HashMap<String, HeaderAlignment>(columnCount);
List<String> headers = new ArrayList<String>(columnCount);
fill(locale, operationProductColumnAlignmentMap, headers, headerAlignments);
PdfPTable table = pdfHelper.createTableWithHeader(columnCount, headers, false, headerAlignments);
PdfPCell defaultCell = table.getDefaultCell();
List<OperationProductHelper> operationProductsValue = prepareOperationProductsValue(orderOperationComponent.getProductionCountingQuantitiesOut(), operationProductColumnAlignmentMap.entrySet());
operationProductsValue = workPlansService.sortByColumn(workPlan, operationProductsValue, headers);
for (OperationProductHelper operationProduct : operationProductsValue) {
for (OperationProductColumnHelper e : operationProduct.getOperationProductColumnHelpers()) {
alignColumn(defaultCell, e.getColumnAlignment());
table.addCell(operationProductPhrase(e.getValue()));
}
}
int additionalRows = workPlansService.getAdditionalRowsFromParameter(ParameterFieldsWP.ADDITIONAL_OUTPUT_ROWS);
for (int i = 0; i < additionalRows; i++) {
for (Map.Entry<OperationProductColumn, ColumnAlignment> e : operationProductColumnAlignmentMap.entrySet()) {
alignColumn(defaultCell, e.getValue());
table.addCell(" ");
}
}
table.setSpacingAfter(18);
table.setSpacingBefore(9);
document.add(table);
}
use of com.qcadoo.report.api.pdf.HeaderAlignment in project mes by qcadoo.
the class OrderTable method print.
public void print(GroupingContainer groupingContainer, Document document, Locale locale) throws DocumentException {
document.add(ordersTableHeaderParagraph(locale));
Map<OrderColumn, ColumnAlignment> orderColumnToAlignment = groupingContainer.getOrderColumnToAlignment();
int columnCount = orderColumnToAlignment.size();
Map<String, HeaderAlignment> headerAlignments = new HashMap<String, HeaderAlignment>(columnCount);
List<String> headers = new ArrayList<String>(columnCount);
fill(locale, orderColumnToAlignment, headers, headerAlignments);
PdfPTable orderTable = pdfHelper.createTableWithHeader(columnCount, headers, false, headerAlignments);
PdfPCell defaultCell = orderTable.getDefaultCell();
for (Entity order : groupingContainer.getOrders()) {
for (Map.Entry<OrderColumn, ColumnAlignment> e : orderColumnToAlignment.entrySet()) {
alignColumn(defaultCell, e.getValue());
orderTable.addCell(orderColumnValuePhrase(order, e.getKey()));
}
}
document.add(orderTable);
document.add(Chunk.NEWLINE);
}
use of com.qcadoo.report.api.pdf.HeaderAlignment in project mes by qcadoo.
the class DispositionOrderPdfService method addPositionsTable.
private void addPositionsTable(Document document, Entity documentEntity, Locale locale) throws DocumentException {
List<Integer> headerWidthsList = new ArrayList<>(Arrays.asList(25, 50, 50, 50, 65, 90, 40, 35));
int numOfColumns = 8;
if (acceptanceOfDocumentBeforePrinting) {
headerWidthsList.add(45);
numOfColumns++;
}
int[] headerWidths = headerWidthsList.stream().mapToInt(i -> i).toArray();
Map<String, HeaderAlignment> headerValues = getPositionsTableHeaderLabels(locale);
PdfPTable positionsTable = pdfHelper.createTableWithHeader(numOfColumns, Lists.newArrayList(headerValues.keySet()), false, headerWidths, headerValues);
positionsTable.getDefaultCell().disableBorderSide(PdfPCell.RIGHT);
positionsTable.getDefaultCell().disableBorderSide(PdfPCell.LEFT);
positionsTable.setHeaderRows(1);
List<Entity> positions = PositionDataProvider.getPositions(documentEntity);
PositionsHolder positionsHolder = new PositionsHolder(numberService);
fillPositions(positionsHolder, positions);
List<Position> _positions = positionsHolder.getPositions();
if (acceptanceOfDocumentBeforePrinting) {
Collections.sort(_positions, new Comparator<Position>() {
@Override
public int compare(Position p1, Position p2) {
return ComparisonChain.start().compare(p1.getTargetPallet(), p2.getTargetPallet()).compare(p1.getStorageLocation(), p2.getStorageLocation()).result();
}
});
} else {
Collections.sort(_positions, new Comparator<Position>() {
@Override
public int compare(Position p1, Position p2) {
return ComparisonChain.start().compare(p1.getStorageLocation(), p2.getStorageLocation()).result();
}
});
}
Integer index = 1;
for (Position position : _positions) {
positionsTable.addCell(createCell(index.toString(), Element.ALIGN_LEFT));
positionsTable.addCell(createCell(position.getStorageLocation(), Element.ALIGN_LEFT));
positionsTable.addCell(createCell(position.getPalletNumber(), Element.ALIGN_LEFT));
positionsTable.addCell(createCell(position.getTypeOfPallet(), Element.ALIGN_LEFT));
positionsTable.addCell(createCell(position.getAdditionalCodeAndBatch(), Element.ALIGN_LEFT));
positionsTable.addCell(createCell(position.getProductName(), Element.ALIGN_LEFT));
positionsTable.addCell(createCell(PositionDataProvider.quantity(position.getQuantity()), Element.ALIGN_LEFT));
positionsTable.addCell(createCell(position.getUnit(), Element.ALIGN_LEFT));
if (acceptanceOfDocumentBeforePrinting) {
positionsTable.addCell(createCell(position.getTargetPallet(), Element.ALIGN_LEFT));
}
index++;
}
positionsTable.setSpacingAfter(20);
document.add(positionsTable);
}
use of com.qcadoo.report.api.pdf.HeaderAlignment in project mes by qcadoo.
the class DeliveryReportPdf 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