also write recipienttradeparty with getTradePartyAsXML, not only sender
This commit is contained in:
@@ -5,9 +5,9 @@ import org.mustangproject.ZUGFeRD.IZUGFeRDExportableTradeParty;
|
|||||||
|
|
||||||
public class TradeParty implements IZUGFeRDExportableTradeParty {
|
public class TradeParty implements IZUGFeRDExportableTradeParty {
|
||||||
|
|
||||||
protected String name,zip,street,location,country;
|
protected String name, zip, street, location, country;
|
||||||
protected String taxID=null, vatID=null;
|
protected String taxID = null, vatID = null;
|
||||||
protected Contact contact=null;
|
protected Contact contact = null;
|
||||||
|
|
||||||
public TradeParty(String name, String street, String zip, String location, String country) {
|
public TradeParty(String name, String street, String zip, String location, String country) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
@@ -24,12 +24,12 @@ public class TradeParty implements IZUGFeRDExportableTradeParty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public TradeParty addTaxID(String taxID) {
|
public TradeParty addTaxID(String taxID) {
|
||||||
this.taxID=taxID;
|
this.taxID = taxID;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TradeParty addVATID(String vatID) {
|
public TradeParty addVATID(String vatID) {
|
||||||
this.vatID=vatID;
|
this.vatID = vatID;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,4 +91,18 @@ public class TradeParty implements IZUGFeRDExportableTradeParty {
|
|||||||
this.country = country;
|
this.country = country;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getVatID() {
|
||||||
|
return vatID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getZip() {
|
||||||
|
return zip;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IZUGFeRDExportableContact getContact() {
|
||||||
|
return contact;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,38 +159,54 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
|
|||||||
return "urn:cen.eu:en16931:2017";
|
return "urn:cen.eu:en16931:2017";
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String getTradePartyAsXML(IZUGFeRDExportableTradeParty contact) {
|
protected String getTradePartyAsXML(IZUGFeRDExportableTradeParty party) {
|
||||||
String xml = "";
|
String xml = "";
|
||||||
// According EN16931 either GlobalID or seller assigned ID might be present for BuyerTradeParty
|
// According EN16931 either GlobalID or seller assigned ID might be present for BuyerTradeParty
|
||||||
// and ShipToTradeParty, but not both. Prefer seller assigned ID for now.
|
// and ShipToTradeParty, but not both. Prefer seller assigned ID for now.
|
||||||
if (contact.getID()!=null) {
|
if (party.getID()!=null) {
|
||||||
xml += " <ram:ID>" + XMLTools.encodeXML(contact.getID()) + "</ram:ID>\n";
|
xml += " <ram:ID>" + XMLTools.encodeXML(party.getID()) + "</ram:ID>\n";
|
||||||
}
|
}
|
||||||
else if ((contact.getGlobalIDScheme()!=null)&&(contact.getGlobalID()!=null)) {
|
else if ((party.getGlobalIDScheme()!=null)&&(party.getGlobalID()!=null)) {
|
||||||
xml = xml + " <ram:GlobalID schemeID=\"" + XMLTools.encodeXML(contact.getGlobalIDScheme()) + "\">"
|
xml = xml + " <ram:GlobalID schemeID=\"" + XMLTools.encodeXML(party.getGlobalIDScheme()) + "\">"
|
||||||
+ XMLTools.encodeXML(contact.getGlobalID()) + "</ram:GlobalID>\n";
|
+ XMLTools.encodeXML(party.getGlobalID()) + "</ram:GlobalID>\n";
|
||||||
|
}
|
||||||
|
xml += " <ram:Name>" + XMLTools.encodeXML(party.getName()) + "</ram:Name>\n"; //$NON-NLS-2$
|
||||||
|
|
||||||
|
if (party.getContact() != null) {
|
||||||
|
xml = xml + "<ram:DefinedTradeContact>\n" + " <ram:PersonName>" + XMLTools.encodeXML(party.getContact().getName())
|
||||||
|
+ "</ram:PersonName>\n";
|
||||||
|
if (party.getContact().getPhone() != null) {
|
||||||
|
|
||||||
|
xml = xml + " <ram:TelephoneUniversalCommunication>\n" + " <ram:CompleteNumber>"
|
||||||
|
+ XMLTools.encodeXML(party.getContact().getPhone()) + "</ram:CompleteNumber>\n"
|
||||||
|
+ " </ram:TelephoneUniversalCommunication>\n";
|
||||||
|
}
|
||||||
|
if (party.getContact().getEMail() != null) {
|
||||||
|
|
||||||
|
xml = xml + " <ram:EmailURIUniversalCommunication>\n" + " <ram:URIID>"
|
||||||
|
+ XMLTools.encodeXML(party.getContact().getEMail()) + "</ram:URIID>\n"
|
||||||
|
+ " </ram:EmailURIUniversalCommunication>\n";
|
||||||
|
}
|
||||||
|
xml = xml + " </ram:DefinedTradeContact>";
|
||||||
|
|
||||||
}
|
}
|
||||||
xml += " <ram:Name>" + XMLTools.encodeXML(contact.getName()) + "</ram:Name>\n"; //$NON-NLS-2$
|
|
||||||
// + " <DefinedTradeContact>\n"
|
|
||||||
// + " <PersonName>xxx</PersonName>\n"
|
|
||||||
// + " </DefinedTradeContact>\n"
|
|
||||||
xml += " <ram:PostalTradeAddress>\n"
|
xml += " <ram:PostalTradeAddress>\n"
|
||||||
+ " <ram:PostcodeCode>" + XMLTools.encodeXML(contact.getZIP())
|
+ " <ram:PostcodeCode>" + XMLTools.encodeXML(party.getZIP())
|
||||||
+ "</ram:PostcodeCode>\n"
|
+ "</ram:PostcodeCode>\n"
|
||||||
+ " <ram:LineOne>" + XMLTools.encodeXML(contact.getStreet())
|
+ " <ram:LineOne>" + XMLTools.encodeXML(party.getStreet())
|
||||||
+ "</ram:LineOne>\n";
|
+ "</ram:LineOne>\n";
|
||||||
if (contact.getAdditionalAddress() != null) {
|
if (party.getAdditionalAddress() != null) {
|
||||||
xml += " <ram:LineTwo>" + XMLTools.encodeXML(contact.getAdditionalAddress())
|
xml += " <ram:LineTwo>" + XMLTools.encodeXML(party.getAdditionalAddress())
|
||||||
+ "</ram:LineTwo>\n";
|
+ "</ram:LineTwo>\n";
|
||||||
}
|
}
|
||||||
xml += " <ram:CityName>" + XMLTools.encodeXML(contact.getLocation())
|
xml += " <ram:CityName>" + XMLTools.encodeXML(party.getLocation())
|
||||||
+ "</ram:CityName>\n"
|
+ "</ram:CityName>\n"
|
||||||
+ " <ram:CountryID>" + XMLTools.encodeXML(contact.getCountry())
|
+ " <ram:CountryID>" + XMLTools.encodeXML(party.getCountry())
|
||||||
+ "</ram:CountryID>\n"
|
+ "</ram:CountryID>\n"
|
||||||
+ " </ram:PostalTradeAddress>\n";
|
+ " </ram:PostalTradeAddress>\n";
|
||||||
if (contact.getVATID() != null) {
|
if (party.getVATID() != null) {
|
||||||
xml += " <ram:SpecifiedTaxRegistration>\n"
|
xml += " <ram:SpecifiedTaxRegistration>\n"
|
||||||
+ " <ram:ID schemeID=\"VA\">" + XMLTools.encodeXML(contact.getVATID())
|
+ " <ram:ID schemeID=\"VA\">" + XMLTools.encodeXML(party.getVATID())
|
||||||
+ "</ram:ID>\n"
|
+ "</ram:ID>\n"
|
||||||
+ " </ram:SpecifiedTaxRegistration>\n";
|
+ " </ram:SpecifiedTaxRegistration>\n";
|
||||||
}
|
}
|
||||||
@@ -369,55 +385,8 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
|
|||||||
xml = xml + " <ram:BuyerReference>" + XMLTools.encodeXML(trans.getReferenceNumber()) + "</ram:BuyerReference>\n";
|
xml = xml + " <ram:BuyerReference>" + XMLTools.encodeXML(trans.getReferenceNumber()) + "</ram:BuyerReference>\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
xml = xml + " <ram:SellerTradeParty>\n";
|
xml = xml + " <ram:SellerTradeParty>\n"
|
||||||
if (trans.getOwnForeignOrganisationID() != null) {
|
+ getTradePartyAsXML(trans.getSender())
|
||||||
xml = xml + " <ram:ID>" + XMLTools.encodeXML(trans.getOwnForeignOrganisationID()) + "</ram:ID>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((trans.getSender() != null) && (trans.getSender().getGlobalID() != null) && (trans.getSender().getGlobalIDScheme() != null)) {
|
|
||||||
xml = xml + " <ram:GlobalID schemeID=\"" + XMLTools.encodeXML(trans.getSender().getGlobalIDScheme()) + "\">"
|
|
||||||
+ XMLTools.encodeXML(trans.getSender().getGlobalID()) + "</ram:GlobalID>\n";
|
|
||||||
}
|
|
||||||
xml = xml + " <ram:Name>" + XMLTools.encodeXML(trans.getSender().getName()) + "</ram:Name>\n"; //$NON-NLS-2$
|
|
||||||
|
|
||||||
if ((trans.getOwnVATID() != null) && (trans.getOwnOrganisationName() != null)) {
|
|
||||||
|
|
||||||
xml = xml + " <ram:SpecifiedLegalOrganization>\n" + " <ram:ID>"
|
|
||||||
+ XMLTools.encodeXML(trans.getOwnVATID()) + "</ram:ID>\n" + " <ram:TradingBusinessName>"
|
|
||||||
+ XMLTools.encodeXML(trans.getOwnOrganisationName()) + "</ram:TradingBusinessName>\n"
|
|
||||||
+ " </ram:SpecifiedLegalOrganization>";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (trans.getSender().getContact() != null) {
|
|
||||||
xml = xml + "<ram:DefinedTradeContact>\n" + " <ram:PersonName>" + XMLTools.encodeXML(trans.getSender().getContact().getName())
|
|
||||||
+ "</ram:PersonName>\n";
|
|
||||||
if (trans.getSender().getContact().getPhone() != null) {
|
|
||||||
|
|
||||||
xml = xml + " <ram:TelephoneUniversalCommunication>\n" + " <ram:CompleteNumber>"
|
|
||||||
+ XMLTools.encodeXML(trans.getSender().getContact().getPhone()) + "</ram:CompleteNumber>\n"
|
|
||||||
+ " </ram:TelephoneUniversalCommunication>\n";
|
|
||||||
}
|
|
||||||
if (trans.getSender().getContact().getEMail() != null) {
|
|
||||||
|
|
||||||
xml = xml + " <ram:EmailURIUniversalCommunication>\n" + " <ram:URIID>"
|
|
||||||
+ XMLTools.encodeXML(trans.getSender().getContact().getEMail()) + "</ram:URIID>\n"
|
|
||||||
+ " </ram:EmailURIUniversalCommunication>\n";
|
|
||||||
}
|
|
||||||
xml = xml + " </ram:DefinedTradeContact>";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
xml = xml + " <ram:PostalTradeAddress>\n" + " <ram:PostcodeCode>"
|
|
||||||
+ XMLTools.encodeXML(trans.getOwnZIP()) + "</ram:PostcodeCode>\n" + " <ram:LineOne>"
|
|
||||||
+ XMLTools.encodeXML(trans.getOwnStreet()) + "</ram:LineOne>\n" + " <ram:CityName>" + XMLTools.encodeXML(trans.getOwnLocation())
|
|
||||||
+ "</ram:CityName>\n" + " <ram:CountryID>" + XMLTools.encodeXML(trans.getOwnCountry())
|
|
||||||
+ "</ram:CountryID>\n" + " </ram:PostalTradeAddress>\n"
|
|
||||||
+ " <ram:SpecifiedTaxRegistration>\n"
|
|
||||||
+ " <ram:ID schemeID=\"FC\">" + XMLTools.encodeXML(trans.getOwnTaxID()) + "</ram:ID>\n" //$NON-NLS-2$
|
|
||||||
+ " </ram:SpecifiedTaxRegistration>\n"
|
|
||||||
+ " <ram:SpecifiedTaxRegistration>\n"
|
|
||||||
+ " <ram:ID schemeID=\"VA\">" + XMLTools.encodeXML(trans.getOwnVATID()) + "</ram:ID>\n" //$NON-NLS-2$
|
|
||||||
+ " </ram:SpecifiedTaxRegistration>\n"
|
|
||||||
+ " </ram:SellerTradeParty>\n"
|
+ " </ram:SellerTradeParty>\n"
|
||||||
+ " <ram:BuyerTradeParty>\n";
|
+ " <ram:BuyerTradeParty>\n";
|
||||||
// + " <ID>GE2020211</ID>\n"
|
// + " <ID>GE2020211</ID>\n"
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ public abstract class MustangReaderTestCase extends TestCase implements IExporta
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getZIP() {
|
public String getZIP() {
|
||||||
return "55232";
|
return "12345";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors()
|
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors()
|
||||||
.load(SOURCE_PDF)) {
|
.load(SOURCE_PDF)) {
|
||||||
|
|
||||||
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setContractReferencedDocument("0815").setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE19990815").setRecipient(new TradeParty("Franz Müller","teststr.12", "55232", "Entenhausen", "DE")).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0))));
|
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setContractReferencedDocument("0815").setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE19990815").setRecipient(new TradeParty("Franz Müller","teststr.12", "55232", "Entenhausen", "DE").setContact(new Contact("nameRep", "phoneRep", "emailRep@test.com"))).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0))));
|
||||||
String theXML = new String(ze.getProvider().getXML());
|
String theXML = new String(ze.getProvider().getXML());
|
||||||
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
||||||
ze.export(TARGET_PDF);
|
ze.export(TARGET_PDF);
|
||||||
|
|||||||
Reference in New Issue
Block a user