From f8a258a1f73d15f145cffa4fd435f3a28dd6519d Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Thu, 1 Oct 2026 12:28:01 +0200 Subject: [PATCH] rechnungsworkflow --- .../java/ai/dynamixs/InvoicePOIAdapter.java | 49 +++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/src/main/java/ai/dynamixs/InvoicePOIAdapter.java b/src/main/java/ai/dynamixs/InvoicePOIAdapter.java index 3217977..017c20f 100644 --- a/src/main/java/ai/dynamixs/InvoicePOIAdapter.java +++ b/src/main/java/ai/dynamixs/InvoicePOIAdapter.java @@ -1,8 +1,10 @@ -package com.imixs.intern; +package ai.dynamixs; +import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; +import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.imixs.archive.core.SnapshotService; import org.imixs.workflow.ItemCollection; @@ -10,6 +12,7 @@ import org.imixs.workflow.engine.DocumentService; import org.imixs.workflow.engine.WorkflowService; import org.imixs.workflow.exceptions.PluginException; import org.imixs.workflow.poi.POIFindReplaceAdapter; +import org.imixs.workflow.poi.XSSFUtil; import jakarta.inject.Inject; @@ -34,9 +37,49 @@ public class InvoicePOIAdapter extends POIFindReplaceAdapter { SnapshotService snapshotService; @Override - public void updateXSSFWorkbook(XSSFWorkbook workbook, ItemCollection document, List replaceDevList, + public void updateXSSFWorkbook(XSSFWorkbook workbook, ItemCollection workitem, List replaceDevList, String eval) throws PluginException { - super.updateXSSFWorkbook(workbook, document, replaceDevList, eval); + XSSFSheet sheet = workbook.getSheetAt(0); + // Steuer? + int steuer = workitem.getItemValueInteger("invoice.tax.rate"); + if (steuer > 0) { + XSSFUtil.replaceXSSFSheetItemValue(workbook, sheet, "TAX_INFO", "Umsatzsteuer: "); + } + Double steuerD = (double) steuer / 100; + XSSFUtil.replaceXSSFSheetItemValue(workbook, sheet, "TAX_RATE", steuerD); + + // insert invoice pos... + + ItemCollection auftrag = documentService.load(workitem.getItemValueString("$workitemref")); + List requirements = new ArrayList(); + List refs = workitem.getItemValueList("_requirements", String.class); + for (String _id : refs) { + requirements.add(documentService.load(_id)); + } + + int pos = 1; + for (ItemCollection _requirement : requirements) { + + int line = pos + 23; + + XSSFUtil.replaceXSSFSheetItemValue(workbook, sheet, "A" + line, pos); + XSSFUtil.replaceXSSFSheetItemValue(workbook, sheet, "B" + line, + _requirement.getItemValueString("_subject")); + + double rate = auftrag.getItemValueDouble("_rate"); + double capacity = _requirement.getItemValueDouble("_capacity"); + + XSSFUtil.replaceXSSFSheetItemValue(workbook, sheet, "E" + line, rate); + XSSFUtil.replaceXSSFSheetItemValue(workbook, sheet, "F" + line, capacity); + + XSSFUtil.evalXSSFSheet(workbook, sheet, "G" + line); + + pos++; + + } + + super.updateXSSFWorkbook(workbook, workitem, replaceDevList, eval); + } }