This commit is contained in:
jstaerk
2025-02-11 13:36:24 +01:00
parent 6f19c3996a
commit e76c522639
6 changed files with 257 additions and 4 deletions

View File

@@ -129,7 +129,13 @@ public class XMLTools extends XMLWriter {
* @return a util.Date, or null, if not parseable
*/
public static Date tryDate(String toParse) {
final SimpleDateFormat formatter = ZUGFeRDDateFormat.DATE.getFormatter();
SimpleDateFormat formatter = null;
if (toParse.contains("-")) {
// from ubl
formatter = new SimpleDateFormat("yyyy-MM-dd");
} else {
formatter = ZUGFeRDDateFormat.DATE.getFormatter();
}
try {
return formatter.parse(toParse);
} catch (final Exception e) {

View File

@@ -775,6 +775,21 @@ public class ZUGFeRDInvoiceImporter {
}
}
xpr = xpath.compile("/*[local-name()=\"Invoice\"]/*[local-name()=\"InvoicePeriod\"]/*"); //UBL only
NodeList periodNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
for (int periodChildIndex = 0; periodChildIndex < periodNodes.getLength(); periodChildIndex++) {
String localName=periodNodes.item(periodChildIndex).getLocalName();
if ((localName != null) && (periodNodes.item(periodChildIndex).getLocalName().equals("StartDate"))) {
deliveryPeriodStart = XMLTools.trimOrNull(periodNodes.item(periodChildIndex));
}
if ((localName != null) && (periodNodes.item(periodChildIndex).getLocalName().equals("EndDate"))) {
deliveryPeriodEnd = XMLTools.trimOrNull(periodNodes.item(periodChildIndex));
}
}
if ((deliveryPeriodStart != null) && (deliveryPeriodEnd != null)) {
zpp.setDetailedDeliveryPeriod(XMLTools.tryDate(deliveryPeriodStart), XMLTools.tryDate(deliveryPeriodEnd));
} else if (deliveryPeriodStart != null) {