changed additional references by line from String to List and
implemented it on Item
This commit is contained in:
@@ -465,6 +465,29 @@ public class Item implements IZUGFeRDExportableItem {
|
||||
return referencedDocuments.toArray(new IReferencedDocument[0]);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* adds item level references along with their typecodes and issuerassignedIDs (contract ID, cost centre, ...)
|
||||
* @param doc the ReferencedDocument to add
|
||||
* @return fluent setter
|
||||
*/
|
||||
public Item addAdditionalReference(ReferencedDocument doc) {
|
||||
if (referencedDocuments == null) {
|
||||
referencedDocuments = new ArrayList<>();
|
||||
}
|
||||
referencedDocuments.add(doc);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IReferencedDocument[] getAdditionalReferences() {
|
||||
if (referencedDocuments == null) {
|
||||
return null;
|
||||
}
|
||||
return referencedDocuments.toArray(new IReferencedDocument[0]);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* specify a item level delivery period
|
||||
* (apart from the document level delivery period, and the document level
|
||||
|
||||
@@ -91,10 +91,10 @@ public interface IZUGFeRDExportableItem extends IAbsoluteValueProvider{
|
||||
}
|
||||
|
||||
/***
|
||||
* the ID of an additionally referenced document for this item
|
||||
* @return the id as string
|
||||
* allows to specify multiple references (billing information)
|
||||
* @return the referenced documents
|
||||
*/
|
||||
default String getAdditionalReferencedDocumentID() {
|
||||
default IReferencedDocument[] getAdditionalReferences() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -387,8 +387,8 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider {
|
||||
+ "<ram:LineTotalAmount currencyID=\"" + trans.getCurrency() + "\">" + currencyFormat(lc.getItemTotalNetAmount())
|
||||
+ "</ram:LineTotalAmount>"
|
||||
+ "</ram:SpecifiedTradeSettlementMonetarySummation>";
|
||||
if (currentItem.getAdditionalReferencedDocumentID() != null) {
|
||||
xml += "<ram:AdditionalReferencedDocument><ram:ID>" + currentItem.getAdditionalReferencedDocumentID() + "</ram:ID><ram:TypeCode>130</ram:TypeCode></ram:AdditionalReferencedDocument>";
|
||||
if (currentItem.getAdditionalReferences() != null) {
|
||||
xml += "<ram:AdditionalReferencedDocument><ram:ID>" + currentItem.getAdditionalReferences()[0].getIssuerAssignedID() + "</ram:ID><ram:TypeCode>130</ram:TypeCode></ram:AdditionalReferencedDocument>";
|
||||
|
||||
}
|
||||
xml += "</ram:SpecifiedSupplyChainTradeSettlement>"
|
||||
|
||||
@@ -503,9 +503,14 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
|
||||
+ "<ram:LineTotalAmount>" + currencyFormat(lc.getItemTotalNetAmount())
|
||||
+ "</ram:LineTotalAmount>" // currencyID=\"EUR\"
|
||||
+ "</ram:SpecifiedTradeSettlementLineMonetarySummation>";
|
||||
if (currentItem.getAdditionalReferencedDocumentID() != null) {
|
||||
xml += "<ram:AdditionalReferencedDocument><ram:IssuerAssignedID>" + currentItem.getAdditionalReferencedDocumentID() + "</ram:IssuerAssignedID><ram:TypeCode>130</ram:TypeCode></ram:AdditionalReferencedDocument>";
|
||||
|
||||
if (currentItem.getAdditionalReferences() != null) {
|
||||
for (final IReferencedDocument currentReference : currentItem.getAdditionalReferences()) {
|
||||
xml += "<ram:AdditionalReferencedDocument>" +
|
||||
"<ram:IssuerAssignedID>" + XMLTools.encodeXML(currentReference.getIssuerAssignedID()) + "</ram:IssuerAssignedID>" +
|
||||
"<ram:TypeCode>130</ram:TypeCode>" +
|
||||
"<ram:ReferenceTypeCode>" + XMLTools.encodeXML(currentReference.getReferenceTypeCode()) + "</ram:ReferenceTypeCode>" +
|
||||
"</ram:AdditionalReferencedDocument>";
|
||||
}
|
||||
}
|
||||
xml += "</ram:SpecifiedLineTradeSettlement>"
|
||||
+ "</ram:IncludedSupplyChainTradeLineItem>";
|
||||
|
||||
Reference in New Issue
Block a user