From f623ea33ff251e7e2c4b71006031f15b925f9c4e Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Wed, 9 Apr 2025 18:49:49 +0200 Subject: [PATCH] excel export --- .../mahnlauf/ExcelExportController.java | 20 +++++++++--------- .../admin/excel_export_rechnungsausgang.xhtml | 18 ++++++++++------ .../ausgangsrechnungen-export_template.xlsx | Bin 49953 -> 50072 bytes 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/ExcelExportController.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/ExcelExportController.java index c4d887e..d046104 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/ExcelExportController.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/ExcelExportController.java @@ -122,7 +122,7 @@ public class ExcelExportController implements Serializable { } // query zeit - String query = "(type:workitem OR type:workitemarchive) "; + String query = "(type:workitem OR type:workitemarchive) AND ($workflowgroup:Rechnungsausgang) "; if (start != null && stop != null) { query += "AND (invoice.date:[" + sDateFrom + " TO " + sDateTo + "]) "; } else { @@ -132,8 +132,9 @@ public class ExcelExportController implements Serializable { // query Sachprüfung - if (!filter.getItemValueString("space.name").isEmpty()) { - query += " AND (space.name:" + filter.getItemValueString("space.name") + ")"; + if (!filter.getItemValueString("space.ref").isEmpty() + && !"-".equals(filter.getItemValueString("space.ref"))) { + query += " AND ($uniqueidref:" + filter.getItemValueString("space.ref") + ")"; } if (workflowController.getWorkitem() != null && !workflowController.getWorkitem().getItemValueString("dbtr.number").isEmpty()) { @@ -154,7 +155,7 @@ public class ExcelExportController implements Serializable { } String targetName = "ausgangsrechnungen-export_" + dateformat.format(new Date()) + ".xlsx"; try { - List invoices = documentService.find(query, MAX_ROWS, 0); + List invoices = documentService.find(query, MAX_ROWS, 0, "invoice.date", true); if (invoices.size() > 0) { insertInvoiceRows(invoices, fileData); } @@ -287,12 +288,11 @@ public class ExcelExportController implements Serializable { // insert values row.getCell(0).setCellValue(invoice.getItemValueString("invoice.number")); row.getCell(1).setCellValue(invoice.getItemValueString("dbtr.number")); - row.getCell(2).setCellValue(invoice.getItemValueString("invoice.text")); - - row.getCell(3).setCellValue(invoice.getItemValueDate("invoice.date")); - row.getCell(4).setCellValue(invoice.getItemValueDate("invoice.duedate")); - - row.getCell(5).setCellValue(invoice.getItemValueDouble("invoice.total")); + row.getCell(2).setCellValue(invoice.getItemValueString("space.name")); + row.getCell(3).setCellValue(invoice.getItemValueString("invoice.text")); + row.getCell(4).setCellValue(invoice.getItemValueDate("invoice.date")); + row.getCell(5).setCellValue(invoice.getItemValueDate("invoice.duedate")); + row.getCell(6).setCellValue(invoice.getItemValueDouble("invoice.total")); rowPos++; } diff --git a/office-alexander-logistics-app/src/main/webapp/pages/admin/excel_export_rechnungsausgang.xhtml b/office-alexander-logistics-app/src/main/webapp/pages/admin/excel_export_rechnungsausgang.xhtml index 64f9bc8..1508cae 100644 --- a/office-alexander-logistics-app/src/main/webapp/pages/admin/excel_export_rechnungsausgang.xhtml +++ b/office-alexander-logistics-app/src/main/webapp/pages/admin/excel_export_rechnungsausgang.xhtml @@ -27,7 +27,7 @@
-

Excle Export Ausgangsrechnungen

+

Excel Export Ausgangsrechnungen

@@ -64,11 +64,17 @@
Abteilung:
-
- - - +
+ + + + + + + +
diff --git a/templates/ausgangsrechnungen-export_template.xlsx b/templates/ausgangsrechnungen-export_template.xlsx index 82a50e0b92d62ab4a4f1f96c8a9a1e084ccbab02..bb61fd352cdb0bd6171c30686804f5193da593c6 100644 GIT binary patch delta 10397 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 ANB{r;