UBL updates

This commit is contained in:
Bharti
2024-11-29 14:03:21 +01:00
parent 736f297dfa
commit 477613b21c
4 changed files with 83 additions and 90 deletions

View File

@@ -115,7 +115,7 @@ public class Item implements IZUGFeRDExportableItem {
}); });
itemMap.getAllNodes("DocumentReference").map(ReferencedDocument::fromNode) itemMap.getAllNodes("DocumentReference").map(ReferencedDocument::fromNode)
.forEach(this::addReferencedDocument); .forEach(this::addAdditionalReference);
// ubl // ubl

View File

@@ -70,8 +70,8 @@ public class ReferencedDocument implements IReferencedDocument {
return null; return null;
} }
NodeMap nodes = new NodeMap(node); NodeMap nodes = new NodeMap(node);
return new ReferencedDocument(nodes.getAsStringOrNull("IssuerAssignedID"), return new ReferencedDocument(nodes.getAsStringOrNull("IssuerAssignedID", "ID"),
nodes.getAsStringOrNull("TypeCode"), nodes.getAsStringOrNull("TypeCode", "DocumentTypeCode"),
nodes.getAsStringOrNull("ReferenceTypeCode")); nodes.getAsStringOrNull("ReferenceTypeCode"));
} }
} }

View File

@@ -74,35 +74,34 @@ public class TradeParty implements IZUGFeRDExportableTradeParty {
if (currentItemNode.getLocalName() != null) { if (currentItemNode.getLocalName() != null) {
String currentUBLChild = currentItemNode.getLocalName(); String currentUBLChild = currentItemNode.getLocalName();
if (currentUBLChild.equals("Delivery")) { // if (currentUBLChild.equals("Delivery")) {
NodeList delivery = currentItemNode.getChildNodes(); // NodeList delivery = currentItemNode.getChildNodes();
for (int deliveryIndex = 0; deliveryIndex < delivery.getLength(); deliveryIndex++) { // for (int deliveryIndex = 0; deliveryIndex < delivery.getLength(); deliveryIndex++) {
if (delivery.item(deliveryIndex).getLocalName() != null) { // if (delivery.item(deliveryIndex).getLocalName() != null) {
Node currentNode = delivery.item(deliveryIndex); // Node currentNode = delivery.item(deliveryIndex);
if (currentNode.getLocalName().equals("DeliveryLocation")) { // if (currentNode.getLocalName().equals("DeliveryLocation")) {
NodeList deliveryLocation = currentNode.getChildNodes(); // NodeList deliveryLocation = currentNode.getChildNodes();
for (int deliveryLocationIndex = 0; deliveryLocationIndex < deliveryLocation.getLength(); deliveryLocationIndex++) { // for (int deliveryLocationIndex = 0; deliveryLocationIndex < deliveryLocation.getLength(); deliveryLocationIndex++) {
if (deliveryLocation.item(deliveryLocationIndex).getLocalName() != null) { // if (deliveryLocation.item(deliveryLocationIndex).getLocalName() != null) {
if (deliveryLocation.item(deliveryLocationIndex).getLocalName().equals("ID")) { // if (deliveryLocation.item(deliveryLocationIndex).getLocalName().equals("ID")) {
//Node currentNode = partyID.item(partyIDIndex); // //Node currentNode = partyID.item(partyIDIndex);
setID(deliveryLocation.item(deliveryLocationIndex).getTextContent()); // setID(deliveryLocation.item(deliveryLocationIndex).getTextContent());
if ((deliveryLocation.item(deliveryLocationIndex).getAttributes() != null && // if ((deliveryLocation.item(deliveryLocationIndex).getAttributes() != null &&
(deliveryLocation.item(deliveryLocationIndex).getAttributes().getNamedItem("schemeID") != null)) // (deliveryLocation.item(deliveryLocationIndex).getAttributes().getNamedItem("schemeID") != null))
) { // ) {
SchemedID sID = new SchemedID().setScheme(deliveryLocation.item(deliveryLocationIndex).getAttributes().getNamedItem("schemeID").getTextContent()); // SchemedID sID = new SchemedID().setScheme(deliveryLocation.item(deliveryLocationIndex).getAttributes().getNamedItem("schemeID").getTextContent());
addGlobalID(sID); // addGlobalID(sID);
} // }
} // }
} // }
} // }
} // }
//
} // }
} // }
} // }
if (currentUBLChild.equals("Party")) { if (currentUBLChild.equals("Party")) {
NodeList party = currentItemNode.getChildNodes(); NodeList party = currentItemNode.getChildNodes();
for (int partyIndex = 0; partyIndex < party.getLength(); partyIndex++) { for (int partyIndex = 0; partyIndex < party.getLength(); partyIndex++) {
if (party.item(partyIndex).getLocalName() != null) { if (party.item(partyIndex).getLocalName() != null) {
@@ -130,68 +129,27 @@ public class TradeParty implements IZUGFeRDExportableTradeParty {
} }
} }
// if (party.item(partyIndex).getLocalName().equals("AccountingSupplierParty")) { if (currentTopElementName.equals("PartyIdentification")) {
// NodeList payeeParty = party.item(partyIndex).getChildNodes(); NodeList partyID = party.item(partyIndex).getChildNodes();
// for (int payeePartyIndex = 0; payeePartyIndex < payeeParty.getLength(); payeePartyIndex++) { for (int partyIDIndex = 0; partyIDIndex < partyID.getLength(); partyIDIndex++) {
// if (payeeParty.item(payeePartyIndex).getLocalName() != null) { if (partyID.item(partyIDIndex).getLocalName() != null) {
if (currentTopElementName.equals("PartyIdentification")) { if (partyID.item(partyIDIndex).getLocalName().equals("ID")) {
NodeList partyID = party.item(partyIndex).getChildNodes(); Node currentNode = partyID.item(partyIDIndex);
for (int partyIDIndex = 0; partyIDIndex < partyID.getLength(); partyIDIndex++) { if ((currentNode.getAttributes() != null &&
if (partyID.item(partyIDIndex).getLocalName() != null) { (currentNode.getAttributes().getNamedItem("schemeID") != null))
if (partyID.item(partyIDIndex).getLocalName().equals("ID")) { ) {
Node currentNode = partyID.item(partyIDIndex); SchemedID sID = new SchemedID().setScheme(currentNode.getAttributes().getNamedItem("schemeID").getTextContent()).setId(currentNode.getTextContent());
if ((currentNode.getAttributes() != null && addGlobalID(sID);
(currentNode.getAttributes().getNamedItem("schemeID") != null))
) {
//SchemedID gid = new SchemedID().setScheme(nodes.item(nodeIndex).getAttributes().getNamedItem("schemeID").getNodeValue()).setId(nodes.item(nodeIndex).getTextContent());
// addGlobalID(gid);
SchemedID sID = new SchemedID().setScheme(currentNode.getAttributes().getNamedItem("schemeID").getTextContent()).setId(currentNode.getTextContent());
addGlobalID(sID);
//&& ((currentNode.getAttributes().getNamedItem("schemeID").getNodeValue().equals("0110") && currentNode.getAttributes().getNamedItem("schemeID").getNodeValue().equals("0100"))
}
// else {
// setID(currentNode.getTextContent());
// }
}
}
} }
else {
setID(currentNode.getTextContent());
}
} }
// } }
// } }
// } }
// if (currentTopElementName.equals("AccountingCustomerParty")) {
// NodeList partyID = party.item(partyIndex).getChildNodes();
// for (int partyIDIndex = 0; partyIDIndex < partyID.getLength(); partyIDIndex++) {
// if (partyID.item(partyIDIndex).getLocalName() != null) {
// if (partyID.item(partyIDIndex).getLocalName().equals("ID")) {
// Node currentNode = partyID.item(partyIDIndex);
// //setID(currentNode.getTextContent());
//
// if ((currentNode.getAttributes() != null &&
// (currentNode.getAttributes().getNamedItem("schemeID") != null))
// ) {
// //SchemedID gid = new SchemedID().setScheme(nodes.item(nodeIndex).getAttributes().getNamedItem("schemeID").getNodeValue()).setId(nodes.item(nodeIndex).getTextContent());
// //addGlobalID(gid);
// //SchemedID sID = new SchemedID(currentNode.getAttributes().getNamedItem("schemeID").getTextContent(), currentNode.getTextContent());
// //addGlobalID(sID);
// // SchemedID sID = new SchemedID().setScheme(deliveryLocation.item(deliveryLocationIndex).getAttributes().getNamedItem("schemeID").getTextContent());
// // addGlobalID(sID);
// SchemedID sID = new SchemedID().setScheme(currentNode.getAttributes().getNamedItem("schemeID").getTextContent()).setId(currentNode.getTextContent());
// addGlobalID(sID);
//
// //&& ((currentNode.getAttributes().getNamedItem("schemeID").getNodeValue().equals("0110") && currentNode.getAttributes().getNamedItem("schemeID").getNodeValue().equals("0100"))
// } else {
// setID(currentNode.getTextContent());
// }
//
// }
// }
// }
// }
if (currentTopElementName.equals("PartyTaxScheme")) { if (currentTopElementName.equals("PartyTaxScheme")) {
NodeList partyTaxScheme = party.item(partyIndex).getChildNodes(); NodeList partyTaxScheme = party.item(partyIndex).getChildNodes();

View File

@@ -306,6 +306,7 @@ public class ZUGFeRDInvoiceImporter {
} }
//UBL... //UBL...
XPathExpression shipExUBL = xpath.compile("//*[local-name()=\"Delivery\"]"); XPathExpression shipExUBL = xpath.compile("//*[local-name()=\"Delivery\"]");
Node deliveryNode = (Node) shipExUBL.evaluate(getDocument(), XPathConstants.NODE); Node deliveryNode = (Node) shipExUBL.evaluate(getDocument(), XPathConstants.NODE);
@@ -381,9 +382,40 @@ public class ZUGFeRDInvoiceImporter {
xpr = xpath.compile("//*[local-name()=\"BuyerTradeParty\"]|//*[local-name()=\"AccountingCustomerParty\"]/*"); xpr = xpath.compile("//*[local-name()=\"BuyerTradeParty\"]|//*[local-name()=\"AccountingCustomerParty\"]/*");
NodeList BuyerNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET); NodeList BuyerNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
xpr = xpath.compile("//*[local-name()=\"PayeeTradeParty\"]|//*[local-name()=\"PayeeParty\"]/*"); xpr = xpath.compile("//*[local-name()=\"PayeeTradeParty\"]");
NodeList payeeNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET); NodeList payeeNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
// UBL
XPathExpression shipPayee = xpath.compile("//*[local-name()=\"PayeeParty\"]/*");
NodeList ublPayeeNodes = (NodeList) shipPayee.evaluate(getDocument(), XPathConstants.NODESET);
// if(ublPayeeNodes != null) {
// TradeParty payee = new TradeParty();
// NodeMap nodeMap = new NodeMap(ublPayeeNodes).getAsNodeMap("PayeeParty").get();
// nodeMap.getNode("ID").ifPresent(s -> {
// SchemedID sID = new SchemedID().setScheme(s.getAttributes().getNamedItem("schemeID").getTextContent()).setId(s.getTextContent());
// payee.addGlobalID(sID);
// });
// }
//NodeList UBLpayeeNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
zpp.setPayee(new TradeParty(ublPayeeNodes));
// TradeParty payee =new TradeParty();
// NodeMap payeeID = new NodeMap(UBLpayeeNodes).getAsNodeMap("PartyIdentification").get();
// if (payeeID !=null) {
// payeeID.getAsString("Name").ifPresent(t->payee.setName(t));
// }
// if (payeeNodes != null) {
// TradeParty payee =new TradeParty();
// NodeMap nodeMap = new NodeMap(payeeNodes).getAsNodeMap("PartyIdentification").get();
// if (nodeMap != null) {
// nodeMap.getNode("ID").ifPresent(s -> {
// SchemedID sID = new SchemedID().setScheme(s.getAttributes().getNamedItem("schemeID").getTextContent()).setId(s.getTextContent());
// payee.addGlobalID(sID);
// });
// }
// }
xpr = xpath.compile("//*[local-name()=\"ExchangedDocument\"]|//*[local-name()=\"HeaderExchangedDocument\"]"); xpr = xpath.compile("//*[local-name()=\"ExchangedDocument\"]|//*[local-name()=\"HeaderExchangedDocument\"]");
NodeList ExchangedDocumentNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET); NodeList ExchangedDocumentNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
@@ -505,6 +537,9 @@ public class ZUGFeRDInvoiceImporter {
deliveryDate = new SimpleDateFormat("yyyy-MM-dd").parse(deliveryDt); deliveryDate = new SimpleDateFormat("yyyy-MM-dd").parse(deliveryDt);
} }
} }
xpr = xpath.compile("//*[local-name()=\"Invoice\"]/*[local-name()=\"Note\"]");
Node note = (Node) xpr.evaluate(getDocument(), XPathConstants.NODESET);
xpr = xpath.compile("//*[local-name()=\"ApplicableHeaderTradeDelivery\"]|//*[local-name()=\"Delivery\"]"); xpr = xpath.compile("//*[local-name()=\"ApplicableHeaderTradeDelivery\"]|//*[local-name()=\"Delivery\"]");
NodeList headerTradeDeliveryNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET); NodeList headerTradeDeliveryNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);