Merge branch 'master' of github.com:ZUGFeRD/mustangproject
This commit is contained in:
@@ -203,12 +203,10 @@ public class TradeParty implements IZUGFeRDExportableTradeParty {
|
|||||||
if (taxChilds.item(taxChildIndex).getAttributes().getNamedItem("schemeID") != null) {
|
if (taxChilds.item(taxChildIndex).getAttributes().getNamedItem("schemeID") != null) {
|
||||||
Node firstChild = taxChilds.item(taxChildIndex).getFirstChild();
|
Node firstChild = taxChilds.item(taxChildIndex).getFirstChild();
|
||||||
if (firstChild != null) {
|
if (firstChild != null) {
|
||||||
if (taxChilds.item(taxChildIndex).getAttributes()
|
if (taxChilds.item(taxChildIndex).getAttributes().getNamedItem("schemeID").getNodeValue().equals("VA")) {
|
||||||
.getNamedItem("schemeID").getNodeValue().equals("VA")) {
|
|
||||||
setVATID(firstChild.getNodeValue());
|
setVATID(firstChild.getNodeValue());
|
||||||
}
|
}
|
||||||
if (taxChilds.item(taxChildIndex).getAttributes()
|
if (taxChilds.item(taxChildIndex).getAttributes().getNamedItem("schemeID").getNodeValue().equals("FC")) {
|
||||||
.getNamedItem("schemeID").getNodeValue().equals("FC")) {
|
|
||||||
setTaxID(firstChild.getNodeValue());
|
setTaxID(firstChild.getNodeValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -298,6 +296,9 @@ public class TradeParty implements IZUGFeRDExportableTradeParty {
|
|||||||
NodeList itemChilds = currentItemNode.getChildNodes();
|
NodeList itemChilds = currentItemNode.getChildNodes();
|
||||||
for (int itemChildIndex = 0; itemChildIndex < itemChilds.getLength(); itemChildIndex++) {
|
for (int itemChildIndex = 0; itemChildIndex < itemChilds.getLength(); itemChildIndex++) {
|
||||||
if (itemChilds.item(itemChildIndex).getLocalName() != null) {
|
if (itemChilds.item(itemChildIndex).getLocalName() != null) {
|
||||||
|
if (itemChilds.item(itemChildIndex).getLocalName().equals("ID")) {
|
||||||
|
setID(itemChilds.item(itemChildIndex).getTextContent());
|
||||||
|
}
|
||||||
if (itemChilds.item(itemChildIndex).getLocalName().equals("Name")) {
|
if (itemChilds.item(itemChildIndex).getLocalName().equals("Name")) {
|
||||||
setName(itemChilds.item(itemChildIndex).getTextContent());
|
setName(itemChilds.item(itemChildIndex).getTextContent());
|
||||||
}
|
}
|
||||||
@@ -358,12 +359,10 @@ public class TradeParty implements IZUGFeRDExportableTradeParty {
|
|||||||
if (taxChilds.item(taxChildIndex).getAttributes().getNamedItem("schemeID") != null) {
|
if (taxChilds.item(taxChildIndex).getAttributes().getNamedItem("schemeID") != null) {
|
||||||
Node firstChild = taxChilds.item(taxChildIndex).getFirstChild();
|
Node firstChild = taxChilds.item(taxChildIndex).getFirstChild();
|
||||||
if (firstChild != null) {
|
if (firstChild != null) {
|
||||||
if (taxChilds.item(taxChildIndex).getAttributes()
|
if (taxChilds.item(taxChildIndex).getAttributes().getNamedItem("schemeID").getNodeValue().equals("VA")) {
|
||||||
.getNamedItem("schemeID").getNodeValue().equals("VA")) {
|
|
||||||
setVATID(firstChild.getNodeValue());
|
setVATID(firstChild.getNodeValue());
|
||||||
}
|
}
|
||||||
if (taxChilds.item(taxChildIndex).getAttributes()
|
if (taxChilds.item(taxChildIndex).getAttributes().getNamedItem("schemeID").getNodeValue().equals("FC")) {
|
||||||
.getNamedItem("schemeID").getNodeValue().equals("FC")) {
|
|
||||||
setTaxID(firstChild.getNodeValue());
|
setTaxID(firstChild.getNodeValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -630,9 +629,7 @@ public class TradeParty implements IZUGFeRDExportableTradeParty {
|
|||||||
if (bankDetails.isEmpty() && debitDetails.isEmpty()) {
|
if (bankDetails.isEmpty() && debitDetails.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
List<IZUGFeRDTradeSettlement> tradeSettlements = Stream.concat(bankDetails.stream(), debitDetails.stream())
|
List<IZUGFeRDTradeSettlement> tradeSettlements = Stream.concat(bankDetails.stream(), debitDetails.stream()).map(IZUGFeRDTradeSettlement.class::cast).collect(Collectors.toList());
|
||||||
.map(IZUGFeRDTradeSettlement.class::cast)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
IZUGFeRDTradeSettlement[] result = new IZUGFeRDTradeSettlement[tradeSettlements.size()];
|
IZUGFeRDTradeSettlement[] result = new IZUGFeRDTradeSettlement[tradeSettlements.size()];
|
||||||
for (int i = 0; i < tradeSettlements.size(); i++) {
|
for (int i = 0; i < tradeSettlements.size(); i++) {
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
public Invoice extractInto(Invoice zpp) throws XPathExpressionException, ParseException {
|
public Invoice extractInto(Invoice zpp) throws XPathExpressionException, ParseException {
|
||||||
|
|
||||||
String number = "";
|
String number = "";
|
||||||
|
String typeCode = null;
|
||||||
/*
|
/*
|
||||||
* dummywerte sind derzeit noch setDueDate setIssueDate setDeliveryDate
|
* dummywerte sind derzeit noch setDueDate setIssueDate setDeliveryDate
|
||||||
* setSender setRecipient setnumber bspw. due date
|
* setSender setRecipient setnumber bspw. due date
|
||||||
@@ -86,26 +87,26 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
Date issueDate = null;
|
Date issueDate = null;
|
||||||
Date dueDate = null;
|
Date dueDate = null;
|
||||||
Date deliveryDate = null;
|
Date deliveryDate = null;
|
||||||
|
String despatchAdviceReferencedDocument = null;
|
||||||
for (int i = 0; i < ExchangedDocumentNodes.getLength(); i++) {
|
for (int i = 0; i < ExchangedDocumentNodes.getLength(); i++) {
|
||||||
|
|
||||||
// nodes.item(i).getTextContent())) {
|
// nodes.item(i).getTextContent())) {
|
||||||
Node exchangedDocumentNode = ExchangedDocumentNodes.item(i);
|
Node exchangedDocumentNode = ExchangedDocumentNodes.item(i);
|
||||||
NodeList exchangedDocumentChilds = exchangedDocumentNode.getChildNodes();
|
NodeList exchangedDocumentChilds = exchangedDocumentNode.getChildNodes();
|
||||||
for (int documentChildIndex = 0; documentChildIndex < exchangedDocumentChilds
|
for (int documentChildIndex = 0; documentChildIndex < exchangedDocumentChilds.getLength(); documentChildIndex++) {
|
||||||
.getLength(); documentChildIndex++) {
|
|
||||||
Node item = exchangedDocumentChilds.item(documentChildIndex);
|
Node item = exchangedDocumentChilds.item(documentChildIndex);
|
||||||
if ((item.getLocalName() != null) && (item.getLocalName().equals("ID"))) {
|
if ((item.getLocalName() != null) && (item.getLocalName().equals("ID"))) {
|
||||||
number = item.getTextContent();
|
number = item.getTextContent();
|
||||||
}
|
}
|
||||||
|
if ((item.getLocalName() != null) && (item.getLocalName().equals("TypeCode"))) {
|
||||||
|
typeCode = item.getTextContent();
|
||||||
|
}
|
||||||
if ((item.getLocalName() != null) && (item.getLocalName().equals("IssueDateTime"))) {
|
if ((item.getLocalName() != null) && (item.getLocalName().equals("IssueDateTime"))) {
|
||||||
NodeList issueDateTimeChilds = item.getChildNodes();
|
NodeList issueDateTimeChilds = item.getChildNodes();
|
||||||
for (int issueDateChildIndex = 0; issueDateChildIndex < issueDateTimeChilds
|
for (int issueDateChildIndex = 0; issueDateChildIndex < issueDateTimeChilds.getLength(); issueDateChildIndex++) {
|
||||||
.getLength(); issueDateChildIndex++) {
|
|
||||||
if ((issueDateTimeChilds.item(issueDateChildIndex).getLocalName() != null)
|
if ((issueDateTimeChilds.item(issueDateChildIndex).getLocalName() != null)
|
||||||
&& (issueDateTimeChilds.item(issueDateChildIndex).getLocalName()
|
&& (issueDateTimeChilds.item(issueDateChildIndex).getLocalName().equals("DateTimeString"))) {
|
||||||
.equals("DateTimeString"))) {
|
issueDate = new SimpleDateFormat("yyyyMMdd").parse(issueDateTimeChilds.item(issueDateChildIndex).getTextContent());
|
||||||
issueDate = new SimpleDateFormat("yyyyMMdd")
|
|
||||||
.parse(issueDateTimeChilds.item(issueDateChildIndex).getTextContent());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -115,17 +116,14 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
if (rootNode.equals("Invoice")) {
|
if (rootNode.equals("Invoice")) {
|
||||||
// UBL...
|
// UBL...
|
||||||
number = extractString("//*[local-name()=\"Invoice\"]/*[local-name()=\"ID\"]").trim();
|
number = extractString("//*[local-name()=\"Invoice\"]/*[local-name()=\"ID\"]").trim();
|
||||||
issueDate = new SimpleDateFormat("yyyy-MM-dd")
|
issueDate = new SimpleDateFormat("yyyy-MM-dd").parse(extractString("//*[local-name()=\"Invoice\"]/*[local-name()=\"IssueDate\"]").trim());
|
||||||
.parse(extractString("//*[local-name()=\"Invoice\"]/*[local-name()=\"IssueDate\"]").trim());
|
|
||||||
String dueDt = extractString("//*[local-name()=\"Invoice\"]/*[local-name()=\"DueDate\"]").trim();
|
String dueDt = extractString("//*[local-name()=\"Invoice\"]/*[local-name()=\"DueDate\"]").trim();
|
||||||
if (dueDt.length() > 0) {
|
if (dueDt.length() > 0) {
|
||||||
dueDate = new SimpleDateFormat("yyyy-MM-dd")
|
dueDate = new SimpleDateFormat("yyyy-MM-dd").parse(dueDt);
|
||||||
.parse(dueDt);
|
|
||||||
}
|
}
|
||||||
String deliveryDt = extractString("//*[local-name()=\"Delivery\"]/*[local-name()=\"ActualDeliveryDate\"]").trim();
|
String deliveryDt = extractString("//*[local-name()=\"Delivery\"]/*[local-name()=\"ActualDeliveryDate\"]").trim();
|
||||||
if (deliveryDt.length() > 0) {
|
if (deliveryDt.length() > 0) {
|
||||||
deliveryDate = new SimpleDateFormat("yyyy-MM-dd")
|
deliveryDate = new SimpleDateFormat("yyyy-MM-dd").parse(deliveryDt);
|
||||||
.parse(deliveryDt);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
xpr = xpath.compile("//*[local-name()=\"ApplicableHeaderTradeDelivery\"]");
|
xpr = xpath.compile("//*[local-name()=\"ApplicableHeaderTradeDelivery\"]");
|
||||||
@@ -135,30 +133,33 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
// nodes.item(i).getTextContent())) {
|
// nodes.item(i).getTextContent())) {
|
||||||
Node headerTradeDeliveryNode = headerTradeDeliveryNodes.item(i);
|
Node headerTradeDeliveryNode = headerTradeDeliveryNodes.item(i);
|
||||||
NodeList headerTradeDeliveryChilds = headerTradeDeliveryNode.getChildNodes();
|
NodeList headerTradeDeliveryChilds = headerTradeDeliveryNode.getChildNodes();
|
||||||
for (int deliveryChildIndex = 0; deliveryChildIndex < headerTradeDeliveryChilds
|
for (int deliveryChildIndex = 0; deliveryChildIndex < headerTradeDeliveryChilds.getLength(); deliveryChildIndex++) {
|
||||||
.getLength(); deliveryChildIndex++) {
|
if (headerTradeDeliveryChilds.item(deliveryChildIndex).getLocalName() != null) {
|
||||||
if ((headerTradeDeliveryChilds.item(deliveryChildIndex).getLocalName() != null)
|
if (headerTradeDeliveryChilds.item(deliveryChildIndex).getLocalName().equals("ActualDeliverySupplyChainEvent")) {
|
||||||
&& (headerTradeDeliveryChilds.item(deliveryChildIndex).getLocalName()
|
NodeList actualDeliveryChilds = headerTradeDeliveryChilds.item(deliveryChildIndex).getChildNodes();
|
||||||
.equals("ActualDeliverySupplyChainEvent"))) {
|
for (int actualDeliveryChildIndex = 0; actualDeliveryChildIndex < actualDeliveryChilds.getLength(); actualDeliveryChildIndex++) {
|
||||||
NodeList actualDeliveryChilds = headerTradeDeliveryChilds.item(deliveryChildIndex).getChildNodes();
|
if ((actualDeliveryChilds.item(actualDeliveryChildIndex).getLocalName() != null)
|
||||||
for (int actualDeliveryChildIndex = 0; actualDeliveryChildIndex < actualDeliveryChilds
|
&& (actualDeliveryChilds.item(actualDeliveryChildIndex).getLocalName().equals("OccurrenceDateTime"))) {
|
||||||
.getLength(); actualDeliveryChildIndex++) {
|
NodeList occurenceChilds = actualDeliveryChilds.item(actualDeliveryChildIndex).getChildNodes();
|
||||||
if ((actualDeliveryChilds.item(actualDeliveryChildIndex).getLocalName() != null)
|
for (int occurenceChildIndex = 0; occurenceChildIndex < occurenceChilds.getLength(); occurenceChildIndex++) {
|
||||||
&& (actualDeliveryChilds.item(actualDeliveryChildIndex).getLocalName()
|
if ((occurenceChilds.item(occurenceChildIndex).getLocalName() != null)
|
||||||
.equals("OccurrenceDateTime"))) {
|
&& (occurenceChilds.item(occurenceChildIndex).getLocalName().equals("DateTimeString"))) {
|
||||||
NodeList occurenceChilds = actualDeliveryChilds.item(actualDeliveryChildIndex)
|
deliveryDate = new SimpleDateFormat("yyyyMMdd").parse(occurenceChilds.item(occurenceChildIndex).getTextContent());
|
||||||
.getChildNodes();
|
}
|
||||||
for (int occurenceChildIndex = 0; occurenceChildIndex < occurenceChilds
|
|
||||||
.getLength(); occurenceChildIndex++) {
|
|
||||||
if ((occurenceChilds.item(occurenceChildIndex).getLocalName() != null)
|
|
||||||
&& (occurenceChilds.item(occurenceChildIndex).getLocalName()
|
|
||||||
.equals("DateTimeString"))) {
|
|
||||||
deliveryDate = new SimpleDateFormat("yyyyMMdd")
|
|
||||||
.parse(occurenceChilds.item(occurenceChildIndex).getTextContent());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (headerTradeDeliveryChilds.item(deliveryChildIndex).getLocalName().equals("DespatchAdviceReferencedDocument")) {
|
||||||
|
NodeList despatchAdviceChilds = headerTradeDeliveryChilds.item(deliveryChildIndex).getChildNodes();
|
||||||
|
for (int despatchAdviceChildIndex = 0; despatchAdviceChildIndex < despatchAdviceChilds.getLength(); despatchAdviceChildIndex++) {
|
||||||
|
if (despatchAdviceChilds.item(despatchAdviceChildIndex).getLocalName() != null
|
||||||
|
&& despatchAdviceChilds.item(despatchAdviceChildIndex).getLocalName().equals("IssuerAssignedID")) {
|
||||||
|
despatchAdviceReferencedDocument = despatchAdviceChilds.item(despatchAdviceChildIndex).getTextContent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -171,31 +172,25 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
// nodes.item(i).getTextContent())) {
|
// nodes.item(i).getTextContent())) {
|
||||||
Node headerTradeAgreementNode = headerTradeAgreementNodes.item(i);
|
Node headerTradeAgreementNode = headerTradeAgreementNodes.item(i);
|
||||||
NodeList headerTradeAgreementChilds = headerTradeAgreementNode.getChildNodes();
|
NodeList headerTradeAgreementChilds = headerTradeAgreementNode.getChildNodes();
|
||||||
for (int agreementChildIndex = 0; agreementChildIndex < headerTradeAgreementChilds
|
for (int agreementChildIndex = 0; agreementChildIndex < headerTradeAgreementChilds.getLength(); agreementChildIndex++) {
|
||||||
.getLength(); agreementChildIndex++) {
|
if (headerTradeAgreementChilds.item(agreementChildIndex).getLocalName() != null) {
|
||||||
if ((headerTradeAgreementChilds.item(agreementChildIndex).getLocalName() != null)
|
if (headerTradeAgreementChilds.item(agreementChildIndex).getLocalName().equals("BuyerOrderReferencedDocument")) {
|
||||||
&& (headerTradeAgreementChilds.item(agreementChildIndex).getLocalName()
|
NodeList buyerOrderChilds = headerTradeAgreementChilds.item(agreementChildIndex).getChildNodes();
|
||||||
.equals("BuyerOrderReferencedDocument"))) {
|
for (int buyerOrderChildIndex = 0; buyerOrderChildIndex < buyerOrderChilds.getLength(); buyerOrderChildIndex++) {
|
||||||
NodeList buyerOrderChilds = headerTradeAgreementChilds.item(agreementChildIndex).getChildNodes();
|
if ((buyerOrderChilds.item(buyerOrderChildIndex).getLocalName() != null)
|
||||||
for (int buyerOrderChildIndex = 0; buyerOrderChildIndex < buyerOrderChilds
|
&& (buyerOrderChilds.item(buyerOrderChildIndex).getLocalName().equals("IssuerAssignedID"))) {
|
||||||
.getLength(); buyerOrderChildIndex++) {
|
buyerOrderIssuerAssignedID = buyerOrderChilds.item(buyerOrderChildIndex).getTextContent();
|
||||||
if ((buyerOrderChilds.item(buyerOrderChildIndex).getLocalName() != null)
|
}
|
||||||
&& (buyerOrderChilds.item(buyerOrderChildIndex).getLocalName()
|
|
||||||
.equals("IssuerAssignedID"))) {
|
|
||||||
buyerOrderIssuerAssignedID = buyerOrderChilds.item(buyerOrderChildIndex).getTextContent();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if ((headerTradeAgreementChilds.item(agreementChildIndex).getLocalName() != null)
|
if (headerTradeAgreementChilds.item(agreementChildIndex).getLocalName().equals("SellerOrderReferencedDocument")) {
|
||||||
&& (headerTradeAgreementChilds.item(agreementChildIndex).getLocalName()
|
NodeList sellerOrderChilds = headerTradeAgreementChilds.item(agreementChildIndex).getChildNodes();
|
||||||
.equals("SellerOrderReferencedDocument"))) {
|
for (int sellerOrderChildIndex = 0; sellerOrderChildIndex < sellerOrderChilds.getLength(); sellerOrderChildIndex++) {
|
||||||
NodeList sellerOrderChilds = headerTradeAgreementChilds.item(agreementChildIndex).getChildNodes();
|
if ((sellerOrderChilds.item(sellerOrderChildIndex).getLocalName() != null)
|
||||||
for (int sellerOrderChildIndex = 0; sellerOrderChildIndex < sellerOrderChilds
|
&& (sellerOrderChilds.item(sellerOrderChildIndex).getLocalName().equals("IssuerAssignedID"))) {
|
||||||
.getLength(); sellerOrderChildIndex++) {
|
sellerOrderIssuerAssignedID = sellerOrderChilds.item(sellerOrderChildIndex).getTextContent();
|
||||||
if ((sellerOrderChilds.item(sellerOrderChildIndex).getLocalName() != null)
|
}
|
||||||
&& (sellerOrderChilds.item(sellerOrderChildIndex).getLocalName()
|
|
||||||
.equals("IssuerAssignedID"))) {
|
|
||||||
sellerOrderIssuerAssignedID = sellerOrderChilds.item(sellerOrderChildIndex).getTextContent();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -212,23 +207,16 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
// nodes.item(i).getTextContent())) {
|
// nodes.item(i).getTextContent())) {
|
||||||
Node headerTradeSettlementNode = headerTradeSettlementNodes.item(i);
|
Node headerTradeSettlementNode = headerTradeSettlementNodes.item(i);
|
||||||
NodeList headerTradeSettlementChilds = headerTradeSettlementNode.getChildNodes();
|
NodeList headerTradeSettlementChilds = headerTradeSettlementNode.getChildNodes();
|
||||||
for (int settlementChildIndex = 0; settlementChildIndex < headerTradeSettlementChilds
|
for (int settlementChildIndex = 0; settlementChildIndex < headerTradeSettlementChilds.getLength(); settlementChildIndex++) {
|
||||||
.getLength(); settlementChildIndex++) {
|
|
||||||
if ((headerTradeSettlementChilds.item(settlementChildIndex).getLocalName() != null)
|
if ((headerTradeSettlementChilds.item(settlementChildIndex).getLocalName() != null)
|
||||||
&& (headerTradeSettlementChilds.item(settlementChildIndex).getLocalName()
|
&& (headerTradeSettlementChilds.item(settlementChildIndex).getLocalName().equals("SpecifiedTradePaymentTerms"))) {
|
||||||
.equals("SpecifiedTradePaymentTerms"))) {
|
|
||||||
NodeList paymentTermChilds = headerTradeSettlementChilds.item(settlementChildIndex).getChildNodes();
|
NodeList paymentTermChilds = headerTradeSettlementChilds.item(settlementChildIndex).getChildNodes();
|
||||||
for (int paymentTermChildIndex = 0; paymentTermChildIndex < paymentTermChilds
|
for (int paymentTermChildIndex = 0; paymentTermChildIndex < paymentTermChilds.getLength(); paymentTermChildIndex++) {
|
||||||
.getLength(); paymentTermChildIndex++) {
|
if ((paymentTermChilds.item(paymentTermChildIndex).getLocalName() != null) && (paymentTermChilds.item(paymentTermChildIndex).getLocalName().equals("DueDateDateTime"))) {
|
||||||
if ((paymentTermChilds.item(paymentTermChildIndex).getLocalName() != null) && (paymentTermChilds
|
|
||||||
.item(paymentTermChildIndex).getLocalName().equals("DueDateDateTime"))) {
|
|
||||||
NodeList dueDateChilds = paymentTermChilds.item(paymentTermChildIndex).getChildNodes();
|
NodeList dueDateChilds = paymentTermChilds.item(paymentTermChildIndex).getChildNodes();
|
||||||
for (int dueDateChildIndex = 0; dueDateChildIndex < dueDateChilds
|
for (int dueDateChildIndex = 0; dueDateChildIndex < dueDateChilds.getLength(); dueDateChildIndex++) {
|
||||||
.getLength(); dueDateChildIndex++) {
|
if ((dueDateChilds.item(dueDateChildIndex).getLocalName() != null) && (dueDateChilds.item(dueDateChildIndex).getLocalName().equals("DateTimeString"))) {
|
||||||
if ((dueDateChilds.item(dueDateChildIndex).getLocalName() != null) && (dueDateChilds
|
dueDate = new SimpleDateFormat("yyyyMMdd").parse(dueDateChilds.item(dueDateChildIndex).getTextContent());
|
||||||
.item(dueDateChildIndex).getLocalName().equals("DateTimeString"))) {
|
|
||||||
dueDate = new SimpleDateFormat("yyyyMMdd")
|
|
||||||
.parse(dueDateChilds.item(dueDateChildIndex).getTextContent());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -236,30 +224,22 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((headerTradeSettlementChilds.item(settlementChildIndex).getLocalName() != null)
|
if ((headerTradeSettlementChilds.item(settlementChildIndex).getLocalName() != null)
|
||||||
&& (headerTradeSettlementChilds.item(settlementChildIndex).getLocalName()
|
&& (headerTradeSettlementChilds.item(settlementChildIndex).getLocalName().equals("SpecifiedTradeSettlementPaymentMeans"))) {
|
||||||
.equals("SpecifiedTradeSettlementPaymentMeans"))) {
|
|
||||||
NodeList paymentMeansChilds = headerTradeSettlementChilds.item(settlementChildIndex).getChildNodes();
|
NodeList paymentMeansChilds = headerTradeSettlementChilds.item(settlementChildIndex).getChildNodes();
|
||||||
for (int paymentMeansChildIndex = 0; paymentMeansChildIndex < paymentMeansChilds
|
for (int paymentMeansChildIndex = 0; paymentMeansChildIndex < paymentMeansChilds.getLength(); paymentMeansChildIndex++) {
|
||||||
.getLength(); paymentMeansChildIndex++) {
|
|
||||||
String IBAN = null, BIC = null;
|
String IBAN = null, BIC = null;
|
||||||
if ((paymentMeansChilds.item(paymentMeansChildIndex).getLocalName() != null) && (paymentMeansChilds
|
if ((paymentMeansChilds.item(paymentMeansChildIndex).getLocalName() != null) && (paymentMeansChilds.item(paymentMeansChildIndex).getLocalName().equals("PayeePartyCreditorFinancialAccount"))) {
|
||||||
.item(paymentMeansChildIndex).getLocalName().equals("PayeePartyCreditorFinancialAccount"))) {
|
|
||||||
NodeList accountChilds = paymentMeansChilds.item(paymentMeansChildIndex).getChildNodes();
|
NodeList accountChilds = paymentMeansChilds.item(paymentMeansChildIndex).getChildNodes();
|
||||||
for (int accountChildIndex = 0; accountChildIndex < accountChilds
|
for (int accountChildIndex = 0; accountChildIndex < accountChilds.getLength(); accountChildIndex++) {
|
||||||
.getLength(); accountChildIndex++) {
|
if ((accountChilds.item(accountChildIndex).getLocalName() != null) && (accountChilds.item(accountChildIndex).getLocalName().equals("IBANID"))) {//CII
|
||||||
if ((accountChilds.item(accountChildIndex).getLocalName() != null) && (accountChilds
|
|
||||||
.item(accountChildIndex).getLocalName().equals("IBANID"))) {//CII
|
|
||||||
IBAN = accountChilds.item(accountChildIndex).getTextContent();
|
IBAN = accountChilds.item(accountChildIndex).getTextContent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((paymentMeansChilds.item(paymentMeansChildIndex).getLocalName() != null) && (paymentMeansChilds
|
if ((paymentMeansChilds.item(paymentMeansChildIndex).getLocalName() != null) && (paymentMeansChilds.item(paymentMeansChildIndex).getLocalName().equals("PayeePartyCreditorFinancialInstitution"))) {
|
||||||
.item(paymentMeansChildIndex).getLocalName().equals("PayeePartyCreditorFinancialInstitution"))) {
|
|
||||||
NodeList accountChilds = paymentMeansChilds.item(paymentMeansChildIndex).getChildNodes();
|
NodeList accountChilds = paymentMeansChilds.item(paymentMeansChildIndex).getChildNodes();
|
||||||
for (int accountChildIndex = 0; accountChildIndex < accountChilds
|
for (int accountChildIndex = 0; accountChildIndex < accountChilds.getLength(); accountChildIndex++) {
|
||||||
.getLength(); accountChildIndex++) {
|
if ((accountChilds.item(accountChildIndex).getLocalName() != null) && (accountChilds.item(accountChildIndex).getLocalName().equals("BICID"))) {//CII
|
||||||
if ((accountChilds.item(accountChildIndex).getLocalName() != null) && (accountChilds
|
|
||||||
.item(accountChildIndex).getLocalName().equals("BICID"))) {//CII
|
|
||||||
BIC = accountChilds.item(accountChildIndex).getTextContent();
|
BIC = accountChilds.item(accountChildIndex).getTextContent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -284,16 +264,12 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
// nodes.item(i).getTextContent())) {
|
// nodes.item(i).getTextContent())) {
|
||||||
Node paymentMeansNode = paymentMeansNodes.item(i);
|
Node paymentMeansNode = paymentMeansNodes.item(i);
|
||||||
NodeList paymentMeansChilds = paymentMeansNode.getChildNodes();
|
NodeList paymentMeansChilds = paymentMeansNode.getChildNodes();
|
||||||
for (int meansChildIndex = 0; meansChildIndex < paymentMeansChilds
|
for (int meansChildIndex = 0; meansChildIndex < paymentMeansChilds.getLength(); meansChildIndex++) {
|
||||||
.getLength(); meansChildIndex++) {
|
|
||||||
if ((paymentMeansChilds.item(meansChildIndex).getLocalName() != null)
|
if ((paymentMeansChilds.item(meansChildIndex).getLocalName() != null)
|
||||||
&& (paymentMeansChilds.item(meansChildIndex).getLocalName()
|
&& (paymentMeansChilds.item(meansChildIndex).getLocalName().equals("PayeeFinancialAccount"))) {
|
||||||
.equals("PayeeFinancialAccount"))) {
|
|
||||||
NodeList paymentTermChilds = paymentMeansChilds.item(meansChildIndex).getChildNodes();
|
NodeList paymentTermChilds = paymentMeansChilds.item(meansChildIndex).getChildNodes();
|
||||||
for (int paymentTermChildIndex = 0; paymentTermChildIndex < paymentTermChilds
|
for (int paymentTermChildIndex = 0; paymentTermChildIndex < paymentTermChilds.getLength(); paymentTermChildIndex++) {
|
||||||
.getLength(); paymentTermChildIndex++) {
|
if ((paymentTermChilds.item(paymentTermChildIndex).getLocalName() != null) && (paymentTermChilds.item(paymentTermChildIndex).getLocalName().equals("ID"))) {
|
||||||
if ((paymentTermChilds.item(paymentTermChildIndex).getLocalName() != null) && (paymentTermChilds
|
|
||||||
.item(paymentTermChildIndex).getLocalName().equals("ID"))) {
|
|
||||||
String IBAN = paymentTermChilds.item(paymentTermChildIndex).getTextContent();
|
String IBAN = paymentTermChilds.item(paymentTermChildIndex).getTextContent();
|
||||||
if (IBAN != null) {
|
if (IBAN != null) {
|
||||||
BankDetails bd = new BankDetails(IBAN);
|
BankDetails bd = new BankDetails(IBAN);
|
||||||
@@ -305,8 +281,7 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
zpp.setDueDate(dueDate).setDeliveryDate(deliveryDate).setIssueDate(issueDate)
|
zpp.setDueDate(dueDate).setDeliveryDate(deliveryDate).setIssueDate(issueDate).setSender(new TradeParty(SellerNodes)).setRecipient(new TradeParty(BuyerNodes)).setNumber(number).setDocumentCode(typeCode);
|
||||||
.setSender(new TradeParty(SellerNodes)).setRecipient(new TradeParty(BuyerNodes)).setNumber(number);
|
|
||||||
bankDetails.forEach(bankDetail -> zpp.getSender().addBankDetails(bankDetail));
|
bankDetails.forEach(bankDetail -> zpp.getSender().addBankDetails(bankDetail));
|
||||||
|
|
||||||
if (buyerOrderIssuerAssignedID != null) {
|
if (buyerOrderIssuerAssignedID != null) {
|
||||||
@@ -315,8 +290,10 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
if (sellerOrderIssuerAssignedID != null) {
|
if (sellerOrderIssuerAssignedID != null) {
|
||||||
zpp.setSellerOrderReferencedDocumentID(sellerOrderIssuerAssignedID);
|
zpp.setSellerOrderReferencedDocumentID(sellerOrderIssuerAssignedID);
|
||||||
}
|
}
|
||||||
|
if (despatchAdviceReferencedDocument != null) {
|
||||||
|
zpp.setDespatchAdviceReferencedDocumentID(despatchAdviceReferencedDocument);
|
||||||
|
}
|
||||||
|
|
||||||
//.addItem(new Item(new Product("Testprodukt","","C62",BigDecimal.ZERO),amount,new BigDecimal(1.0)))
|
|
||||||
zpp.setOwnOrganisationName(extractString("//*[local-name()=\"SellerTradeParty\"]/*[local-name()=\"Name\"]|//*[local-name()=\"AccountingSupplierParty\"]/*[local-name()=\"Party\"]/*[local-name()=\"PartyName\"]").trim());
|
zpp.setOwnOrganisationName(extractString("//*[local-name()=\"SellerTradeParty\"]/*[local-name()=\"Name\"]|//*[local-name()=\"AccountingSupplierParty\"]/*[local-name()=\"Party\"]/*[local-name()=\"PartyName\"]").trim());
|
||||||
|
|
||||||
xpr = xpath.compile("//*[local-name()=\"BuyerReference\"]");
|
xpr = xpath.compile("//*[local-name()=\"BuyerReference\"]");
|
||||||
@@ -370,13 +347,10 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
|
|
||||||
if (chargeChildName.equals("ChargeIndicator")) {
|
if (chargeChildName.equals("ChargeIndicator")) {
|
||||||
NodeList indicatorChilds = chargeNodeChilds.item(chargeChildIndex).getChildNodes();
|
NodeList indicatorChilds = chargeNodeChilds.item(chargeChildIndex).getChildNodes();
|
||||||
for (int indicatorChildIndex = 0; indicatorChildIndex < indicatorChilds
|
for (int indicatorChildIndex = 0; indicatorChildIndex < indicatorChilds.getLength(); indicatorChildIndex++) {
|
||||||
.getLength(); indicatorChildIndex++) {
|
|
||||||
if ((indicatorChilds.item(indicatorChildIndex).getLocalName() != null)
|
if ((indicatorChilds.item(indicatorChildIndex).getLocalName() != null)
|
||||||
&& (indicatorChilds.item(indicatorChildIndex).getLocalName()
|
&& (indicatorChilds.item(indicatorChildIndex).getLocalName().equals("Indicator"))) {
|
||||||
.equals("Indicator"))) {
|
isCharge = indicatorChilds.item(indicatorChildIndex).getTextContent().equalsIgnoreCase("true");
|
||||||
isCharge = indicatorChilds.item(indicatorChildIndex).getTextContent()
|
|
||||||
.equalsIgnoreCase("true");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (chargeChildName.equals("ActualAmount")) {
|
} else if (chargeChildName.equals("ActualAmount")) {
|
||||||
@@ -389,8 +363,7 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
NodeList taxChilds = chargeNodeChilds.item(chargeChildIndex).getChildNodes();
|
NodeList taxChilds = chargeNodeChilds.item(chargeChildIndex).getChildNodes();
|
||||||
for (int taxChildIndex = 0; taxChildIndex < taxChilds.getLength(); taxChildIndex++) {
|
for (int taxChildIndex = 0; taxChildIndex < taxChilds.getLength(); taxChildIndex++) {
|
||||||
String taxItemName = taxChilds.item(taxChildIndex).getLocalName();
|
String taxItemName = taxChilds.item(taxChildIndex).getLocalName();
|
||||||
if ((taxItemName != null) && (taxItemName.equals("RateApplicablePercent")
|
if ((taxItemName != null) && (taxItemName.equals("RateApplicablePercent") || taxItemName.equals("ApplicablePercent"))) {
|
||||||
|| taxItemName.equals("ApplicablePercent"))) {
|
|
||||||
taxPercent = taxChilds.item(taxChildIndex).getTextContent();
|
taxPercent = taxChilds.item(taxChildIndex).getTextContent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,105 +98,93 @@ public class CalculationTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* trade party (sender) */
|
/* trade party (sender) */
|
||||||
|
|
||||||
TradeParty sender = new TradeParty("Maier GmbH", "Musterweg 5", "11111", "Testung", "DE");
|
TradeParty sender = new TradeParty("Maier GmbH", "Musterweg 5", "11111", "Testung", "DE");
|
||||||
sender.addVATID("DE2222222222");
|
sender.addVATID("DE2222222222");
|
||||||
invoice.setSender(sender);
|
invoice.setSender(sender);
|
||||||
/* trade party (recipient) */
|
|
||||||
|
|
||||||
|
/* trade party (recipient) */
|
||||||
TradeParty recipient = new TradeParty("Teston GmbH" + " " + "Zentrale" + " " + "", "Testweg 5", "11111", "Testung", "DE");
|
TradeParty recipient = new TradeParty("Teston GmbH" + " " + "Zentrale" + " " + "", "Testweg 5", "11111", "Testung", "DE");
|
||||||
recipient.setID("111111");
|
recipient.setID("111111");
|
||||||
recipient.addVATID("DE111111111");
|
recipient.addVATID("DE111111111");
|
||||||
invoice.setRecipient(recipient);
|
invoice.setRecipient(recipient);
|
||||||
/* item */
|
|
||||||
|
|
||||||
|
/* item */
|
||||||
Product product;
|
Product product;
|
||||||
Item item;
|
Item item;
|
||||||
BigDecimal item_increase = BigDecimal.ZERO;
|
|
||||||
BigDecimal item_discount = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
product = new Product("AAA", "", "H84", sales_tax_percent1).setSellerAssignedID("1AAA");
|
product = new Product("AAA", "", "H84", sales_tax_percent1).setSellerAssignedID("1AAA");
|
||||||
item = new Item(product, new BigDecimal("4.750"), new BigDecimal(5.00));
|
item = new Item(product, new BigDecimal("4.750"), new BigDecimal(5.00));
|
||||||
|
|
||||||
item_discount = new BigDecimal("10.00");
|
// set values for additional charge and discount used for next lines
|
||||||
|
BigDecimal item_increase = BigDecimal.ZERO;
|
||||||
|
BigDecimal item_discount = BigDecimal.valueOf(10.00);
|
||||||
|
|
||||||
|
/* lines */
|
||||||
if (item_increase.compareTo(BigDecimal.ZERO) > 0) {
|
if (item_increase.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
item.addCharge(new Charge().setPercent(item_increase).setTaxPercent(sales_tax_percent1).setCategoryCode("ZZZ").setReason("Zuschlag"));
|
item.addCharge(new Charge().setPercent(item_increase).setTaxPercent(sales_tax_percent1).setReasonCode("ZZZ").setReason("Zuschlag"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item_discount.compareTo(BigDecimal.ZERO) > 0) {
|
if (item_discount.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
item.addAllowance(new Allowance().setPercent(item_discount).setTaxPercent(sales_tax_percent1).setCategoryCode("95").setReason("Rabatt"));
|
item.addAllowance(new Allowance().setPercent(item_discount).setTaxPercent(sales_tax_percent1).setReasonCode("95").setReason("Rabatt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
invoice.addItem(item);
|
invoice.addItem(item);
|
||||||
|
|
||||||
|
// reset values for additional charge and discount used for next lines
|
||||||
|
item_increase = BigDecimal.ZERO;
|
||||||
|
item_discount = BigDecimal.ZERO;
|
||||||
|
|
||||||
product = new Product("BBB", "", "H84", sales_tax_percent1).setSellerAssignedID("2BBB");
|
product = new Product("BBB", "", "H84", sales_tax_percent1).setSellerAssignedID("2BBB");
|
||||||
item = new Item(product, new BigDecimal("5.750"), new BigDecimal(4.00));
|
item = new Item(product, new BigDecimal("5.750"), new BigDecimal(4.00));
|
||||||
item_discount = BigDecimal.ZERO;
|
|
||||||
if (item_increase.compareTo(BigDecimal.ZERO) > 0) {
|
if (item_increase.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
item.addCharge(new Charge().setPercent(item_increase).setTaxPercent(sales_tax_percent1).setCategoryCode("ZZZ").setReason("Zuschlag"));
|
item.addCharge(new Charge().setPercent(item_increase).setTaxPercent(sales_tax_percent1).setReasonCode("ZZZ").setReason("Zuschlag"));
|
||||||
}
|
}
|
||||||
if (item_discount.compareTo(BigDecimal.ZERO) > 0) {
|
if (item_discount.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
item.addAllowance(new Allowance().setPercent(item_discount).setTaxPercent(sales_tax_percent1).setCategoryCode("95").setReason("Rabatt"));
|
item.addAllowance(new Allowance().setPercent(item_discount).setTaxPercent(sales_tax_percent1).setReasonCode("95").setReason("Rabatt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
invoice.addItem(item);
|
invoice.addItem(item);
|
||||||
|
|
||||||
product = new Product("CCC", "", "H84", sales_tax_percent1).setSellerAssignedID("3CCC");
|
product = new Product("CCC", "", "H84", sales_tax_percent1).setSellerAssignedID("3CCC");
|
||||||
item = new Item(product, new BigDecimal("6.750"), new BigDecimal(3.00));
|
item = new Item(product, new BigDecimal("6.750"), new BigDecimal(3.00));
|
||||||
item_discount = new BigDecimal("10.00");
|
|
||||||
if (item_increase.compareTo(BigDecimal.ZERO) > 0) {
|
if (item_increase.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
item.addCharge(new Charge().setPercent(item_increase).setTaxPercent(sales_tax_percent1).setCategoryCode("ZZZ").setReason("Zuschlag"));
|
item.addCharge(new Charge().setPercent(item_increase).setTaxPercent(sales_tax_percent1).setReasonCode("ZZZ").setReason("Zuschlag"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item_discount.compareTo(BigDecimal.ZERO) > 0) {
|
if (item_discount.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
item.addAllowance(new Allowance().setPercent(item_discount).setTaxPercent(sales_tax_percent1).setCategoryCode("95").setReason("Rabatt"));
|
item.addAllowance(new Allowance().setPercent(item_discount).setTaxPercent(sales_tax_percent1).setReasonCode("95").setReason("Rabatt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
invoice.addItem(item);
|
invoice.addItem(item);
|
||||||
|
|
||||||
|
|
||||||
product = new Product("DDD", "", "H84", sales_tax_percent1).setSellerAssignedID("4DDD");
|
product = new Product("DDD", "", "H84", sales_tax_percent1).setSellerAssignedID("4DDD");
|
||||||
item = new Item(product, new BigDecimal("7.750"), new BigDecimal(2.00));
|
item = new Item(product, new BigDecimal("7.750"), new BigDecimal(2.00));
|
||||||
|
|
||||||
item_discount = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
|
|
||||||
if (item_increase.compareTo(BigDecimal.ZERO) > 0) {
|
if (item_increase.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
item.addCharge(new Charge().setPercent(item_increase).setTaxPercent(sales_tax_percent1).setCategoryCode("ZZZ").setReason("Zuschlag"));
|
item.addCharge(new Charge().setPercent(item_increase).setTaxPercent(sales_tax_percent1).setReasonCode("ZZZ").setReason("Zuschlag"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item_discount.compareTo(BigDecimal.ZERO) > 0) {
|
if (item_discount.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
item.addAllowance(new Allowance().setPercent(item_discount).setTaxPercent(sales_tax_percent1).setCategoryCode("95").setReason("Rabatt"));
|
item.addAllowance(new Allowance().setPercent(item_discount).setTaxPercent(sales_tax_percent1).setReasonCode("95").setReason("Rabatt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
invoice.addItem(item);
|
invoice.addItem(item);
|
||||||
|
|
||||||
|
|
||||||
product = new Product("EEE", "", "H84", sales_tax_percent1).setSellerAssignedID("5EEE");
|
product = new Product("EEE", "", "H84", sales_tax_percent1).setSellerAssignedID("5EEE");
|
||||||
item = new Item(product, new BigDecimal("8.750"), new BigDecimal(1.00));
|
item = new Item(product, new BigDecimal("8.750"), new BigDecimal(1.00));
|
||||||
|
|
||||||
item_discount = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
|
|
||||||
if (item_increase.compareTo(BigDecimal.ZERO) > 0) {
|
if (item_increase.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
item.addCharge(new Charge().setPercent(item_increase).setTaxPercent(sales_tax_percent1).setCategoryCode("ZZZ").setReason("Zuschlag"));
|
item.addCharge(new Charge().setPercent(item_increase).setTaxPercent(sales_tax_percent1).setReasonCode("ZZZ").setReason("Zuschlag"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item_discount.compareTo(BigDecimal.ZERO) > 0) {
|
if (item_discount.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
item.addAllowance(new Allowance().setPercent(item_discount).setTaxPercent(sales_tax_percent1).setCategoryCode("95").setReason("Rabatt"));
|
item.addAllowance(new Allowance().setPercent(item_discount).setTaxPercent(sales_tax_percent1).setReasonCode("95").setReason("Rabatt"));
|
||||||
|
|
||||||
}
|
}
|
||||||
invoice.addItem(item);
|
invoice.addItem(item);
|
||||||
|
|
||||||
if (total_increase_percent.compareTo(BigDecimal.ZERO) > 0) {
|
// reset values for additional charge and discount used on invoice level
|
||||||
invoice.addCharge(new Charge().setPercent(total_increase_percent).setTaxPercent(sales_tax_percent1).setCategoryCode("ZZZ").setReason("Zuschläge"));
|
item_increase = BigDecimal.valueOf(3.50);
|
||||||
}
|
item_discount = BigDecimal.valueOf(10.00);
|
||||||
|
|
||||||
|
if (total_increase_percent.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
invoice.addCharge(new Charge().setPercent(total_increase_percent).setTaxPercent(sales_tax_percent1).setReasonCode("ZZZ").setReason("Zuschläge"));
|
||||||
|
}
|
||||||
if (total_discount_percent.compareTo(BigDecimal.ZERO) > 0) {
|
if (total_discount_percent.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
invoice.addAllowance(new Allowance().setPercent(total_discount_percent).setTaxPercent(sales_tax_percent1).setCategoryCode("95").setReason("Rabatte"));
|
invoice.addAllowance(new Allowance().setPercent(total_discount_percent).setTaxPercent(sales_tax_percent1).setReasonCode("95").setReason("Rabatte"));
|
||||||
}
|
}
|
||||||
TransactionCalculator calculator = new TransactionCalculator(invoice);
|
TransactionCalculator calculator = new TransactionCalculator(invoice);
|
||||||
assertEquals(valueOf(99.54).stripTrailingZeros(), calculator.getGrandTotal().stripTrailingZeros());
|
assertEquals(valueOf(101.86).stripTrailingZeros(), calculator.getGrandTotal().stripTrailingZeros());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import org.junit.runners.MethodSorters;
|
|||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
import org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants;
|
||||||
import org.mustangproject.ZUGFeRD.model.EventTimeCodeTypeConstants;
|
import org.mustangproject.ZUGFeRD.model.EventTimeCodeTypeConstants;
|
||||||
|
|
||||||
import javax.xml.xpath.XPathExpressionException;
|
import javax.xml.xpath.XPathExpressionException;
|
||||||
@@ -61,7 +62,6 @@ public class ZF2PushTest extends TestCase {
|
|||||||
public void testPushExport() {
|
public void testPushExport() {
|
||||||
|
|
||||||
// the writing part
|
// the writing part
|
||||||
|
|
||||||
String orgname = "Bei Spiel GmbH";
|
String orgname = "Bei Spiel GmbH";
|
||||||
String number = "RE-20201121/508";
|
String number = "RE-20201121/508";
|
||||||
String priceStr = "160.00";
|
String priceStr = "160.00";
|
||||||
@@ -75,8 +75,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors();
|
ze.ignorePDFAErrors();
|
||||||
ze.load(SOURCE_PDF);
|
ze.load(SOURCE_PDF);
|
||||||
ze.setProducer("My Application")
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2);
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2);
|
|
||||||
ze.setTransaction(new Invoice().setDueDate(sdf.parse("2020-12-12")).setIssueDate(sdf.parse("2020-11-21")).setDeliveryDate(sdf.parse("2020-11-10"))
|
ze.setTransaction(new Invoice().setDueDate(sdf.parse("2020-12-12")).setIssueDate(sdf.parse("2020-11-21")).setDeliveryDate(sdf.parse("2020-11-10"))
|
||||||
.setSender(new TradeParty(orgname, "Ecke 12", "12345", "Stadthausen", "DE").addBankDetails(new BankDetails("DE88200800000970375700", "COBADEFFXXX").setAccountName("Max Mustermann")).addVATID("DE136695976"))
|
.setSender(new TradeParty(orgname, "Ecke 12", "12345", "Stadthausen", "DE").addBankDetails(new BankDetails("DE88200800000970375700", "COBADEFFXXX").setAccountName("Max Mustermann")).addVATID("DE136695976"))
|
||||||
.setRecipient(new TradeParty("Theodor Est", "Bahnstr. 42", "88802", "Spielkreis", "DE")
|
.setRecipient(new TradeParty("Theodor Est", "Bahnstr. 42", "88802", "Spielkreis", "DE")
|
||||||
@@ -100,19 +99,18 @@ public class ZF2PushTest extends TestCase {
|
|||||||
|
|
||||||
assertTrue(zi.getUTF8().contains("<rsm:CrossIndustryInvoice"));
|
assertTrue(zi.getUTF8().contains("<rsm:CrossIndustryInvoice"));
|
||||||
|
|
||||||
assertTrue(zi.getUTF8().contains("EUR")); //default invoice currency
|
assertEquals("EUR", zi.getInvoiceCurrencyCode());
|
||||||
assertTrue(zi.getUTF8().contains("AB321"));
|
assertTrue(zi.getUTF8().contains("AB321"));
|
||||||
|
|
||||||
// Reading ZUGFeRD
|
// Reading ZUGFeRD
|
||||||
assertEquals("571.04", zi.getAmount());
|
assertEquals("571.04", zi.getAmount());
|
||||||
assertEquals(zi.getHolder(), orgname);
|
assertEquals(orgname, zi.getHolder());
|
||||||
assertEquals(zi.getForeignReference(), number);
|
assertEquals(number, zi.getForeignReference());
|
||||||
try {
|
try {
|
||||||
assertEquals(zi.getVersion(), 2);
|
assertEquals(zi.getVersion(), 2);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAttachmentsExport() {
|
public void testAttachmentsExport() {
|
||||||
@@ -123,8 +121,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
String taxID = "9990815";
|
String taxID = "9990815";
|
||||||
BigDecimal price = new BigDecimal(priceStr);
|
BigDecimal price = new BigDecimal(priceStr);
|
||||||
try {
|
try {
|
||||||
InputStream SOURCE_PDF = this.getClass()
|
InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors();
|
ze.ignorePDFAErrors();
|
||||||
@@ -134,8 +131,12 @@ public class ZF2PushTest extends TestCase {
|
|||||||
byte[] b = {12, 13};
|
byte[] b = {12, 13};
|
||||||
ze.attachFile("one.pdf", b, "application/pdf", "Alternative");
|
ze.attachFile("one.pdf", b, "application/pdf", "Alternative");
|
||||||
ze.attachFile("two.pdf", b, "application/pdf", "Alternative");
|
ze.attachFile("two.pdf", b, "application/pdf", "Alternative");
|
||||||
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID(taxID).addVATID("DE0815")).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE4711").setContact(new Contact("Franz Müller", "01779999999", "franz@mueller.de", "teststr. 12", "55232", "Entenhausen", "DE"))).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, new BigDecimal(1.0)))
|
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
|
||||||
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID(taxID).addVATID("DE0815"))
|
||||||
|
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE4711")
|
||||||
|
.setContact(new Contact("Franz Müller", "01779999999", "franz@mueller.de", "teststr. 12", "55232", "Entenhausen", "DE")))
|
||||||
|
.setNumber(number)
|
||||||
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, 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"));
|
||||||
@@ -147,20 +148,18 @@ public class ZF2PushTest extends TestCase {
|
|||||||
// now check the contents (like MustangReaderTest)
|
// now check the contents (like MustangReaderTest)
|
||||||
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_ATTACHMENTSPDF);
|
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_ATTACHMENTSPDF);
|
||||||
|
|
||||||
assertTrue(zi.getUTF8().contains("EUR"));
|
assertEquals("EUR", zi.getInvoiceCurrencyCode());
|
||||||
assertTrue(zi.getUTF8().contains(taxID));
|
assertTrue(zi.getUTF8().contains(taxID));
|
||||||
|
|
||||||
// Reading ZUGFeRD
|
// Reading ZUGFeRD
|
||||||
assertEquals("1.19", zi.getAmount());
|
assertEquals("1.19", zi.getAmount());
|
||||||
assertEquals(zi.getHolder(), orgname);
|
assertEquals(orgname, zi.getHolder());
|
||||||
assertEquals(zi.getForeignReference(), number);
|
assertEquals(number, zi.getForeignReference());
|
||||||
try {
|
try {
|
||||||
assertEquals(zi.getVersion(), 2);
|
assertEquals(zi.getVersion(), 2);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testBankTransferExport() {
|
public void testBankTransferExport() {
|
||||||
@@ -171,19 +170,21 @@ public class ZF2PushTest extends TestCase {
|
|||||||
String taxID = "9990815";
|
String taxID = "9990815";
|
||||||
BigDecimal price = new BigDecimal(priceStr);
|
BigDecimal price = new BigDecimal(priceStr);
|
||||||
try {
|
try {
|
||||||
InputStream SOURCE_PDF = this.getClass()
|
InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
||||||
ze.setProducer("My Application")
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2);
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2);
|
|
||||||
|
|
||||||
String IBAN = "DE999888777";
|
String IBAN = "DE999888777";
|
||||||
String BIC = "COBADEFXXX";
|
String BIC = "COBADEFXXX";
|
||||||
BankDetails bd = new BankDetails(IBAN, BIC);
|
BankDetails bd = new BankDetails(IBAN, BIC);
|
||||||
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addBankDetails(bd).addTaxID(taxID).addVATID("DE0815")).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE4711").setContact(new Contact("Franz Müller", "01779999999", "franz@mueller.de", "teststr. 12", "55232", "Entenhausen", "DE"))).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, new BigDecimal(1.0)))
|
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
|
||||||
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addBankDetails(bd).addTaxID(taxID).addVATID("DE0815"))
|
||||||
|
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE4711")
|
||||||
|
.setContact(new Contact("Franz Müller", "01779999999", "franz@mueller.de", "teststr. 12", "55232", "Entenhausen", "DE")))
|
||||||
|
.setNumber(number)
|
||||||
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, new BigDecimal(1.0)))
|
||||||
);
|
);
|
||||||
String theXML = new String(ze.getProvider().getXML());
|
String theXML = new String(ze.getProvider().getXML());
|
||||||
Invoice read = new Invoice();
|
Invoice read = new Invoice();
|
||||||
@@ -191,7 +192,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
zii.extractInto(read);
|
zii.extractInto(read);
|
||||||
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
||||||
|
|
||||||
//assertEquals(IBAN,read.getSender().getBankDetails().get(0).getIBAN());
|
assertEquals(IBAN, read.getSender().getBankDetails().get(0).getIBAN());
|
||||||
ze.export(TARGET_BANKPDF);
|
ze.export(TARGET_BANKPDF);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
fail("IOException should not be raised");
|
fail("IOException should not be raised");
|
||||||
@@ -200,8 +201,6 @@ public class ZF2PushTest extends TestCase {
|
|||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
fail("ParseException should not be raised");
|
fail("ParseException should not be raised");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testItemChargesAllowancesExport() {
|
public void testItemChargesAllowancesExport() {
|
||||||
@@ -211,23 +210,23 @@ public class ZF2PushTest extends TestCase {
|
|||||||
String amountStr = "3.00";
|
String amountStr = "3.00";
|
||||||
BigDecimal amount = new BigDecimal(amountStr);
|
BigDecimal amount = new BigDecimal(amountStr);
|
||||||
try {
|
try {
|
||||||
InputStream SOURCE_PDF = this.getClass()
|
InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
||||||
ze.setProducer("My Application")
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile("extended");
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile("extended");
|
|
||||||
// ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE0815").setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number)
|
// ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE0815").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)).addAllowance(new Allowance().setPercent(new BigDecimal(50)))));
|
// .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance().setPercent(new BigDecimal(50)))));
|
||||||
|
|
||||||
|
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date())
|
||||||
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815")).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").setContact(new Contact("contact testname", "123456", "contact.testemail@example.org").setFax("0911623562"))).setNumber(number)
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815"))
|
||||||
|
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")
|
||||||
|
.setContact(new Contact("contact testname", "123456", "contact.testemail@example.org").setFax("0911623562")))
|
||||||
|
.setNumber(number)
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance(new BigDecimal("0.1"))))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance(new BigDecimal("0.1"))))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance().setPercent(new BigDecimal(50))))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance().setPercent(new BigDecimal(50))))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(2.0)).addCharge(new Charge(new BigDecimal(1))))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(2.0)).addCharge(new Charge(new BigDecimal(1))))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addCharge(new Charge(new BigDecimal(1))).addAllowance(new Allowance(new BigDecimal("1"))))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addCharge(new Charge(new BigDecimal(1))).addAllowance(new Allowance(new BigDecimal("1"))))
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
String theXML = new String(ze.getProvider().getXML());
|
String theXML = new String(ze.getProvider().getXML());
|
||||||
@@ -240,20 +239,18 @@ public class ZF2PushTest extends TestCase {
|
|||||||
// now check the contents (like MustangReaderTest)
|
// now check the contents (like MustangReaderTest)
|
||||||
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_ITEMCHARGESALLOWANCESPDF);
|
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_ITEMCHARGESALLOWANCESPDF);
|
||||||
|
|
||||||
assertTrue(zi.getUTF8().contains("EUR"));
|
assertEquals("EUR", zi.getInvoiceCurrencyCode());
|
||||||
assertTrue(zi.getUTF8().contains("0911623562")); // fax number
|
assertTrue(zi.getUTF8().contains("0911623562")); // fax number
|
||||||
|
|
||||||
// Reading ZUGFeRD
|
// Reading ZUGFeRD
|
||||||
assertEquals("18.33", zi.getAmount());
|
assertEquals("18.33", zi.getAmount());
|
||||||
assertEquals(zi.getHolder(), orgname);
|
assertEquals(orgname, zi.getHolder());
|
||||||
assertEquals(zi.getForeignReference(), number);
|
assertEquals(number, zi.getForeignReference());
|
||||||
try {
|
try {
|
||||||
assertEquals(zi.getVersion(), 2);
|
assertEquals(zi.getVersion(), 2);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -264,20 +261,18 @@ public class ZF2PushTest extends TestCase {
|
|||||||
String amountStr = "3.00";
|
String amountStr = "3.00";
|
||||||
BigDecimal amount = new BigDecimal(amountStr);
|
BigDecimal amount = new BigDecimal(amountStr);
|
||||||
try {
|
try {
|
||||||
InputStream SOURCE_PDF = this.getClass()
|
InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
||||||
ze.setProducer("My Application")
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile("extended");
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile("extended");
|
|
||||||
// ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE0815").setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number)
|
// ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE0815").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)).addAllowance(new Allowance().setPercent(new BigDecimal(50)))));
|
// .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance().setPercent(new BigDecimal(50)))));
|
||||||
|
|
||||||
|
|
||||||
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
|
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
|
||||||
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addVATID("DE0815").addTaxID ("4711"))
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addVATID("DE0815").addTaxID ("4711"))
|
||||||
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0816").setContact(new Contact("contact testname", "123456", "contact.testemail@example.org").setFax("0911623562")))
|
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0816")
|
||||||
|
.setContact(new Contact("contact testname", "123456", "contact.testemail@example.org").setFax("0911623562")))
|
||||||
.setDeliveryAddress(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0816"))
|
.setDeliveryAddress(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0816"))
|
||||||
.setNumber(number)
|
.setNumber(number)
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)).setIntraCommunitySupply(), amount, new BigDecimal(1.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)).setIntraCommunitySupply(), amount, new BigDecimal(1.0)))
|
||||||
@@ -296,20 +291,18 @@ public class ZF2PushTest extends TestCase {
|
|||||||
// now check the contents (like MustangReaderTest)
|
// now check the contents (like MustangReaderTest)
|
||||||
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_INTRACOMMUNITYSUPPLYPDF);
|
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_INTRACOMMUNITYSUPPLYPDF);
|
||||||
|
|
||||||
assertTrue(zi.getUTF8().contains("EUR"));
|
assertEquals("EUR", zi.getInvoiceCurrencyCode());
|
||||||
assertTrue(zi.getUTF8().contains("0911623562")); // fax number
|
assertTrue(zi.getUTF8().contains("0911623562")); // fax number
|
||||||
|
|
||||||
// Reading ZUGFeRD
|
// Reading ZUGFeRD
|
||||||
assertEquals("15.00", zi.getAmount());
|
assertEquals("15.00", zi.getAmount());
|
||||||
assertEquals(zi.getHolder(), orgname);
|
assertEquals(orgname, zi.getHolder());
|
||||||
assertEquals(zi.getForeignReference(), number);
|
assertEquals(number, zi.getForeignReference());
|
||||||
try {
|
try {
|
||||||
assertEquals(zi.getVersion(), 2);
|
assertEquals(zi.getVersion(), 2);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testReverseChargeExport() {
|
public void testReverseChargeExport() {
|
||||||
@@ -319,19 +312,20 @@ public class ZF2PushTest extends TestCase {
|
|||||||
String amountStr = "3.00";
|
String amountStr = "3.00";
|
||||||
BigDecimal amount = new BigDecimal(amountStr);
|
BigDecimal amount = new BigDecimal(amountStr);
|
||||||
try {
|
try {
|
||||||
InputStream SOURCE_PDF = this.getClass()
|
InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
||||||
ze.setProducer("My Application")
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile("extended");
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile("extended");
|
|
||||||
|
|
||||||
// ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE0815").setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number)
|
// ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE0815").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)).addAllowance(new Allowance().setPercent(new BigDecimal(50)))));
|
// .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance().setPercent(new BigDecimal(50)))));
|
||||||
|
|
||||||
|
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
|
||||||
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addVATID("DE0815").addTaxID("4711")).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0816").setContact(new Contact("contact testname", "123456", "contact.testemail@example.org").setFax("0911623562"))).setNumber(number)
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addVATID("DE0815").addTaxID("4711"))
|
||||||
|
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0816")
|
||||||
|
.setContact(new Contact("contact testname", "123456", "contact.testemail@example.org").setFax("0911623562")))
|
||||||
|
.setNumber(number)
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)).setReverseCharge(), amount, new BigDecimal(1.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)).setReverseCharge(), amount, new BigDecimal(1.0)))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)).setReverseCharge(), amount, new BigDecimal(1.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)).setReverseCharge(), amount, new BigDecimal(1.0)))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)).setReverseCharge(), amount, new BigDecimal(2.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)).setReverseCharge(), amount, new BigDecimal(2.0)))
|
||||||
@@ -348,20 +342,18 @@ public class ZF2PushTest extends TestCase {
|
|||||||
// now check the contents (like MustangReaderTest)
|
// now check the contents (like MustangReaderTest)
|
||||||
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_REVERSECHARGEPDF);
|
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_REVERSECHARGEPDF);
|
||||||
|
|
||||||
assertTrue(zi.getUTF8().contains("EUR"));
|
assertEquals("EUR", zi.getInvoiceCurrencyCode());
|
||||||
assertTrue(zi.getUTF8().contains("0911623562")); // fax number
|
assertTrue(zi.getUTF8().contains("0911623562")); // fax number
|
||||||
|
|
||||||
// Reading ZUGFeRD
|
// Reading ZUGFeRD
|
||||||
assertEquals("15.00", zi.getAmount());
|
assertEquals("15.00", zi.getAmount());
|
||||||
assertEquals(zi.getHolder(), orgname);
|
assertEquals(orgname, zi.getHolder());
|
||||||
assertEquals(zi.getForeignReference(), number);
|
assertEquals(number, zi.getForeignReference());
|
||||||
try {
|
try {
|
||||||
assertEquals(zi.getVersion(), 2);
|
assertEquals(zi.getVersion(), 2);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testChargesAllowancesExport() {
|
public void testChargesAllowancesExport() {
|
||||||
@@ -371,22 +363,21 @@ public class ZF2PushTest extends TestCase {
|
|||||||
String amountStr = "3.00";
|
String amountStr = "3.00";
|
||||||
BigDecimal amount = new BigDecimal(amountStr);
|
BigDecimal amount = new BigDecimal(amountStr);
|
||||||
try {
|
try {
|
||||||
InputStream SOURCE_PDF = this.getClass()
|
InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors()
|
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
||||||
.load(SOURCE_PDF);
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile(Profiles.getByName("en16931"));
|
||||||
ze.setProducer("My Application")
|
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile(Profiles.getByName("en16931"));
|
|
||||||
|
|
||||||
ze.setTransaction(new Invoice().setCurrency("CHF").setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815")).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number)
|
ze.setTransaction(new Invoice().setCurrency("CHF").setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
|
||||||
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815"))
|
||||||
|
.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)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))
|
||||||
.addCharge(new Charge(new BigDecimal(0.5)).setTaxPercent(new BigDecimal(19)))
|
.addCharge(new Charge(new BigDecimal(0.5)).setTaxPercent(new BigDecimal(19)))
|
||||||
.addAllowance(new Allowance(new BigDecimal(0.2)).setTaxPercent(new BigDecimal(19)))
|
.addAllowance(new Allowance(new BigDecimal(0.2)).setTaxPercent(new BigDecimal(19)))
|
||||||
|
|
||||||
);
|
);
|
||||||
String theXML = new String(ze.getProvider().getXML());
|
String theXML = new String(ze.getProvider().getXML());
|
||||||
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
||||||
@@ -398,19 +389,17 @@ public class ZF2PushTest extends TestCase {
|
|||||||
// now check the contents (like MustangReaderTest)
|
// now check the contents (like MustangReaderTest)
|
||||||
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_CHARGESALLOWANCESPDF);
|
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_CHARGESALLOWANCESPDF);
|
||||||
|
|
||||||
assertFalse(zi.getUTF8().contains("EUR"));
|
assertEquals("CHF", zi.getInvoiceCurrencyCode());
|
||||||
|
|
||||||
// Reading ZUGFeRD
|
// Reading ZUGFeRD
|
||||||
assertEquals("11.07", zi.getAmount());
|
assertEquals("11.07", zi.getAmount());
|
||||||
assertEquals(zi.getHolder(), orgname);
|
assertEquals(orgname, zi.getHolder());
|
||||||
assertEquals(zi.getForeignReference(), number);
|
assertEquals(number, zi.getForeignReference());
|
||||||
try {
|
try {
|
||||||
assertEquals(zi.getVersion(), 2);
|
assertEquals(zi.getVersion(), 2);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@@ -421,34 +410,32 @@ public class ZF2PushTest extends TestCase {
|
|||||||
String occurrenceTo = "20201005";
|
String occurrenceTo = "20201005";
|
||||||
String contractID = "376zreurzu0983";
|
String contractID = "376zreurzu0983";
|
||||||
|
|
||||||
|
String orgID = "0009845";
|
||||||
String orgname = "Test company";
|
String orgname = "Test company";
|
||||||
String number = "123";
|
String number = "123";
|
||||||
String priceStr = "1.00";
|
String priceStr = "1.00";
|
||||||
String taxID = "9990815";
|
String taxID = "9990815";
|
||||||
BigDecimal price = new BigDecimal(priceStr);
|
BigDecimal price = new BigDecimal(priceStr);
|
||||||
try {
|
try {
|
||||||
InputStream SOURCE_PDF = this.getClass()
|
InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors()
|
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
||||||
.load(SOURCE_PDF);
|
|
||||||
|
|
||||||
ze.setProducer("My Application")
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile(Profiles.getByName("extended"));
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile(Profiles.getByName("extended"));
|
|
||||||
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
try {
|
try {
|
||||||
|
|
||||||
SchemedID gtin = new SchemedID("0160", "2001015001325");
|
SchemedID gtin = new SchemedID("0160", "2001015001325");
|
||||||
SchemedID gln = new SchemedID("0088", "4304171000002");
|
SchemedID gln = new SchemedID("0088", "4304171000002");
|
||||||
ze.setTransaction(new Invoice().setCurrency("CHF").addNote("document level 1/2").addNote("document level 2/2").setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
|
ze.setTransaction(new Invoice().setCurrency("CHF").addNote("document level 1/2").addNote("document level 2/2").setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
|
||||||
.setSellerOrderReferencedDocumentID("9384").setBuyerOrderReferencedDocumentID("28934")
|
.setSellerOrderReferencedDocumentID("9384").setBuyerOrderReferencedDocumentID("28934")
|
||||||
.setDetailedDeliveryPeriod(new SimpleDateFormat("yyyyMMdd").parse(occurrenceFrom), new SimpleDateFormat("yyyyMMdd").parse(occurrenceTo))
|
.setDetailedDeliveryPeriod(new SimpleDateFormat("yyyyMMdd").parse(occurrenceFrom), new SimpleDateFormat("yyyyMMdd").parse(occurrenceTo))
|
||||||
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID(taxID).setEmail("sender@test.org").setID("0009845").addVATID("DE0815"))
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID(taxID).setEmail("sender@test.org").setID(orgID).addVATID("DE0815"))
|
||||||
.setDeliveryAddress(new TradeParty("just the other side of the street", "teststr.12a", "55232", "Entenhausen", "DE").addVATID("DE47110"))
|
.setDeliveryAddress(new TradeParty("just the other side of the street", "teststr.12a", "55232", "Entenhausen", "DE").addVATID("DE47110"))
|
||||||
.setContractReferencedDocument(contractID)
|
.setContractReferencedDocument(contractID)
|
||||||
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addGlobalID(gln).setEmail("recipient@test.org").addVATID("DE4711").setContact(new Contact("Franz Müller", "01779999999", "franz@mueller.de", "teststr. 12", "55232", "Entenhausen", "DE").setFax("++49555123456")).setAdditionalAddress("Hinterhaus 3"))
|
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addGlobalID(gln).setEmail("recipient@test.org").addVATID("DE4711")
|
||||||
|
.setContact(new Contact("Franz Müller", "01779999999", "franz@mueller.de", "teststr. 12", "55232", "Entenhausen", "DE").setFax("++49555123456")).setAdditionalAddress("Hinterhaus 3"))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(16)).addGlobalID(gtin).setSellerAssignedID("4711"), price, new BigDecimal(1.0)).addReferencedLineID("xxx").addNote("item level 1/1").addAllowance(new Allowance(new BigDecimal(0.02)).setReason("item discount").setTaxPercent(new BigDecimal(16))).setDetailedDeliveryPeriod(sdf.parse("2020-01-13"), sdf.parse("2020-01-15")))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(16)).addGlobalID(gtin).setSellerAssignedID("4711"), price, new BigDecimal(1.0)).addReferencedLineID("xxx").addNote("item level 1/1").addAllowance(new Allowance(new BigDecimal(0.02)).setReason("item discount").setTaxPercent(new BigDecimal(16))).setDetailedDeliveryPeriod(sdf.parse("2020-01-13"), sdf.parse("2020-01-15")))
|
||||||
.addCharge(new Charge(new BigDecimal(0.5)).setReason("quick delivery charge").setTaxPercent(new BigDecimal(16)))
|
.addCharge(new Charge(new BigDecimal(0.5)).setReason("quick delivery charge").setTaxPercent(new BigDecimal(16)))
|
||||||
.addAllowance(new Allowance(new BigDecimal(0.2)).setReason("discount").setTaxPercent(new BigDecimal(16)))
|
.addAllowance(new Allowance(new BigDecimal(0.2)).setReason("discount").setTaxPercent(new BigDecimal(16)))
|
||||||
@@ -471,14 +458,12 @@ public class ZF2PushTest extends TestCase {
|
|||||||
|
|
||||||
assertFalse(zi.getUTF8().contains("<ram:IBANID>")); // maybe add a direct debit mandate to the class in the future then this would fail
|
assertFalse(zi.getUTF8().contains("<ram:IBANID>")); // maybe add a direct debit mandate to the class in the future then this would fail
|
||||||
assertTrue(zi.getUTF8().contains("Hinterhaus"));
|
assertTrue(zi.getUTF8().contains("Hinterhaus"));
|
||||||
assertThat(zi.getUTF8()).valueByXPath("//*[local-name()='BuyerTradeParty']/*[local-name()='GlobalID'][@schemeID=0088]").asString()
|
assertThat(zi.getUTF8()).valueByXPath("//*[local-name()='BuyerTradeParty']/*[local-name()='GlobalID'][@schemeID=0088]").asString().isEqualTo("4304171000002");
|
||||||
.isEqualTo("4304171000002");
|
assertThat(zi.getUTF8()).valueByXPath("//*[local-name()='SpecifiedTradeProduct']/*[local-name()='GlobalID'][@schemeID=0160]").asString().isEqualTo("2001015001325");
|
||||||
assertThat(zi.getUTF8()).valueByXPath("//*[local-name()='SpecifiedTradeProduct']/*[local-name()='GlobalID'][@schemeID=0160]").asString()
|
|
||||||
.isEqualTo("2001015001325");
|
|
||||||
assertTrue(zi.getUTF8().contains("2001015001325"));
|
assertTrue(zi.getUTF8().contains("2001015001325"));
|
||||||
assertTrue(zi.getUTF8().contains("4304171000002"));
|
assertTrue(zi.getUTF8().contains("4304171000002"));
|
||||||
assertTrue(zi.getUTF8().contains("0088"));
|
assertTrue(zi.getUTF8().contains("0088"));
|
||||||
assertTrue(zi.getUTF8().contains("0009845"));
|
assertTrue(zi.getUTF8().contains(orgID));
|
||||||
assertTrue(zi.getUTF8().contains("ram:BuyerOrderReferencedDocument"));
|
assertTrue(zi.getUTF8().contains("ram:BuyerOrderReferencedDocument"));
|
||||||
assertTrue(zi.getUTF8().contains(occurrenceFrom));
|
assertTrue(zi.getUTF8().contains(occurrenceFrom));
|
||||||
assertTrue(zi.getUTF8().contains(occurrenceTo));
|
assertTrue(zi.getUTF8().contains(occurrenceTo));
|
||||||
@@ -493,8 +478,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
assertTrue(zi.getUTF8().contains("document level 2/2"));
|
assertTrue(zi.getUTF8().contains("document level 2/2"));
|
||||||
assertTrue(zi.getUTF8().contains("++49555123456"));
|
assertTrue(zi.getUTF8().contains("++49555123456"));
|
||||||
assertTrue(zi.getUTF8().contains("Cash Discount")); // default description for cash discounts
|
assertTrue(zi.getUTF8().contains("Cash Discount")); // default description for cash discounts
|
||||||
assertThat(zi.getUTF8()).valueByXPath("//*[local-name()='ApplicableTradeTax']/*[local-name()='DueDateTypeCode']").asString()
|
assertThat(zi.getUTF8()).valueByXPath("//*[local-name()='ApplicableTradeTax']/*[local-name()='DueDateTypeCode']").asString().isEqualTo(EventTimeCodeTypeConstants.PAYMENT_DATE);
|
||||||
.isEqualTo(EventTimeCodeTypeConstants.PAYMENT_DATE);
|
|
||||||
|
|
||||||
ZUGFeRDInvoiceImporter zii = new ZUGFeRDInvoiceImporter(TARGET_PUSHEDGE);
|
ZUGFeRDInvoiceImporter zii = new ZUGFeRDInvoiceImporter(TARGET_PUSHEDGE);
|
||||||
try {
|
try {
|
||||||
@@ -502,7 +486,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
|
|
||||||
assertEquals("4304171000002", i.getRecipient().getGlobalID());
|
assertEquals("4304171000002", i.getRecipient().getGlobalID());
|
||||||
assertEquals("2001015001325", i.getZFItems()[0].getProduct().getGlobalID());
|
assertEquals("2001015001325", i.getZFItems()[0].getProduct().getGlobalID());
|
||||||
|
assertEquals(orgID, i.getSender().getID());
|
||||||
|
|
||||||
} catch (XPathExpressionException e) {
|
} catch (XPathExpressionException e) {
|
||||||
fail("XPathExpressionException should not be raised");
|
fail("XPathExpressionException should not be raised");
|
||||||
@@ -511,8 +495,6 @@ public class ZF2PushTest extends TestCase {
|
|||||||
/* a parseException would also be fired if the calculated grand total does not
|
/* a parseException would also be fired if the calculated grand total does not
|
||||||
match the read grand total */
|
match the read grand total */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAllowancesExport() {
|
public void testAllowancesExport() {
|
||||||
@@ -521,20 +503,19 @@ public class ZF2PushTest extends TestCase {
|
|||||||
String number = "123";
|
String number = "123";
|
||||||
BigDecimal qty = new BigDecimal("20");
|
BigDecimal qty = new BigDecimal("20");
|
||||||
try {
|
try {
|
||||||
InputStream SOURCE_PDF = this.getClass()
|
InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
||||||
|
|
||||||
ze.setProducer("My Application")
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile(Profiles.getByName("en16931"));
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile(Profiles.getByName("en16931"));
|
|
||||||
|
|
||||||
|
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
|
||||||
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815")).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number)
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815"))
|
||||||
|
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE"))
|
||||||
|
.setNumber(number)
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), new BigDecimal(500.0), qty).addAllowance(new Allowance(new BigDecimal(300)).setTaxPercent(new BigDecimal(19))))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), new BigDecimal(500.0), qty).addAllowance(new Allowance(new BigDecimal(300)).setTaxPercent(new BigDecimal(19))))
|
||||||
.addAllowance(new Allowance(new BigDecimal(600)).setTaxPercent(new BigDecimal(19)))
|
.addAllowance(new Allowance(new BigDecimal(600)).setTaxPercent(new BigDecimal(19)))
|
||||||
|
|
||||||
);
|
);
|
||||||
String theXML = new String(ze.getProvider().getXML());
|
String theXML = new String(ze.getProvider().getXML());
|
||||||
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
||||||
@@ -546,19 +527,17 @@ public class ZF2PushTest extends TestCase {
|
|||||||
// now check the contents (like MustangReaderTest)
|
// now check the contents (like MustangReaderTest)
|
||||||
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_ALLOWANCESPDF);
|
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_ALLOWANCESPDF);
|
||||||
|
|
||||||
assertTrue(zi.getUTF8().contains("EUR"));
|
assertEquals("EUR", zi.getInvoiceCurrencyCode());
|
||||||
|
|
||||||
// Reading ZUGFeRD
|
// Reading ZUGFeRD
|
||||||
assertEquals("4046.00", zi.getAmount());
|
assertEquals("4046.00", zi.getAmount());
|
||||||
assertEquals(zi.getHolder(), orgname);
|
assertEquals(orgname, zi.getHolder());
|
||||||
assertEquals(zi.getForeignReference(), number);
|
assertEquals(number, zi.getForeignReference());
|
||||||
try {
|
try {
|
||||||
assertEquals(zi.getVersion(), 2);
|
assertEquals(zi.getVersion(), 2);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testRelativeChargesAllowancesExport() {
|
public void testRelativeChargesAllowancesExport() {
|
||||||
@@ -568,22 +547,21 @@ public class ZF2PushTest extends TestCase {
|
|||||||
String priceStr = "3.00";
|
String priceStr = "3.00";
|
||||||
BigDecimal price = new BigDecimal(priceStr);
|
BigDecimal price = new BigDecimal(priceStr);
|
||||||
try {
|
try {
|
||||||
InputStream SOURCE_PDF = this.getClass()
|
InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors()
|
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
||||||
.load(SOURCE_PDF);
|
|
||||||
|
|
||||||
ze.setProducer("My Application")
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile(Profiles.getByName("extended"));
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).setProfile(Profiles.getByName("extended"));
|
|
||||||
|
|
||||||
ze.setTransaction(new Invoice().setCurrency("CHF").setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815")).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number)
|
ze.setTransaction(new Invoice().setCurrency("CHF").setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
|
||||||
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815"))
|
||||||
|
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE"))
|
||||||
|
.setNumber(number)
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, new BigDecimal(1.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, new BigDecimal(1.0)))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, new BigDecimal(1.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, new BigDecimal(1.0)))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, new BigDecimal(1.0)).addCharge(new Charge().setPercent(new BigDecimal(50)).setTaxPercent(new BigDecimal(19))))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, new BigDecimal(1.0)).addCharge(new Charge().setPercent(new BigDecimal(50)).setTaxPercent(new BigDecimal(19))))
|
||||||
.addAllowance(new Allowance().setPercent(new BigDecimal(50)).setTaxPercent(new BigDecimal(19)))
|
.addAllowance(new Allowance().setPercent(new BigDecimal(50)).setTaxPercent(new BigDecimal(19)))
|
||||||
|
|
||||||
);
|
);
|
||||||
String theXML = new String(ze.getProvider().getXML());
|
String theXML = new String(ze.getProvider().getXML());
|
||||||
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
||||||
@@ -595,19 +573,15 @@ public class ZF2PushTest extends TestCase {
|
|||||||
// now check the contents (like MustangReaderTest)
|
// now check the contents (like MustangReaderTest)
|
||||||
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_RELATIVECHARGESALLOWANCESPDF);
|
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_RELATIVECHARGESALLOWANCESPDF);
|
||||||
|
|
||||||
assertFalse(zi.getUTF8().contains("EUR"));
|
assertEquals("CHF", zi.getInvoiceCurrencyCode());
|
||||||
|
|
||||||
// Reading ZUGFeRD
|
|
||||||
assertEquals("6.25", zi.getAmount());
|
assertEquals("6.25", zi.getAmount());
|
||||||
assertEquals(zi.getHolder(), orgname);
|
assertEquals(orgname, zi.getHolder());
|
||||||
assertEquals(zi.getForeignReference(), number);
|
assertEquals(number, zi.getForeignReference());
|
||||||
try {
|
try {
|
||||||
assertEquals(zi.getVersion(), 2);
|
assertEquals(zi.getVersion(), 2);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -628,12 +602,13 @@ public class ZF2PushTest extends TestCase {
|
|||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors()
|
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
||||||
.load(SOURCE_PDF);
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2);
|
||||||
ze.setProducer("My Application")
|
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2);
|
|
||||||
// no due date, since we are not expecting money
|
// no due date, since we are not expecting money
|
||||||
Invoice i = new Invoice().setIssueDate(new Date()).setDetailedDeliveryPeriod(new Date(), new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815")).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0815")).setNumber(number)
|
Invoice i = new Invoice().setIssueDate(new Date()).setDetailedDeliveryPeriod(new Date(), new Date()).setDeliveryDate(new Date())
|
||||||
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815"))
|
||||||
|
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0815"))
|
||||||
|
.setNumber(number)
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty)).setCorrection("0815");
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty)).setCorrection("0815");
|
||||||
@@ -648,19 +623,17 @@ public class ZF2PushTest extends TestCase {
|
|||||||
// now check the contents (like MustangReaderTest)
|
// now check the contents (like MustangReaderTest)
|
||||||
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_CORRECTIONPDF);
|
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_CORRECTIONPDF);
|
||||||
|
|
||||||
assertTrue(zi.getUTF8().contains("EUR"));
|
assertEquals("EUR", zi.getInvoiceCurrencyCode());
|
||||||
//totest: typecode 384, BuyerOrderReferencedDocument
|
assertEquals(zi.getDocumentCode(), DocumentCodeTypeConstants.CORRECTEDINVOICE);
|
||||||
// Reading ZUGFeRD
|
//totest: BuyerOrderReferencedDocument
|
||||||
assertEquals("-3.57", zi.getAmount());
|
assertEquals("-3.57", zi.getAmount());
|
||||||
assertEquals(zi.getHolder(), orgname);
|
assertEquals(orgname, zi.getHolder());
|
||||||
assertEquals(zi.getForeignReference(), number);
|
assertEquals(number, zi.getForeignReference());
|
||||||
try {
|
try {
|
||||||
assertEquals(zi.getVersion(), 2);
|
assertEquals(zi.getVersion(), 2);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@@ -673,20 +646,20 @@ public class ZF2PushTest extends TestCase {
|
|||||||
|
|
||||||
String orgname = "Test company";
|
String orgname = "Test company";
|
||||||
String number = "123";
|
String number = "123";
|
||||||
|
String despatchAdviceReferencedDocumentID = "DESADV-4711";
|
||||||
String priceStr = "1.00";
|
String priceStr = "1.00";
|
||||||
BigDecimal price = new BigDecimal(priceStr);
|
BigDecimal price = new BigDecimal(priceStr);
|
||||||
BigDecimal qty = new BigDecimal(1.0);
|
BigDecimal qty = new BigDecimal(1.0);
|
||||||
try {
|
try {
|
||||||
InputStream SOURCE_PDF = this.getClass()
|
InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
|
||||||
ze.ignorePDFAErrors()
|
ze.ignorePDFAErrors().load(SOURCE_PDF);
|
||||||
.load(SOURCE_PDF);
|
ze.setProducer("My Application").setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2);
|
||||||
ze.
|
Invoice i = new Invoice().setIssueDate(new Date()).setDueDate(new Date()).setDetailedDeliveryPeriod(new Date(), new Date()).setDeliveryDate(new Date())
|
||||||
setProducer("My Application")
|
.setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815").addBankDetails(new BankDetails("DE88200800000970375700", "COBADEFFXXX")))
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2);
|
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0815"))
|
||||||
Invoice i = new Invoice().setIssueDate(new Date()).setDueDate(new Date()).setDetailedDeliveryPeriod(new Date(), new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815").addBankDetails(new BankDetails("DE88200800000970375700", "COBADEFFXXX"))).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0815")).setNumber(number)
|
.setNumber(number).setDespatchAdviceReferencedDocumentID(despatchAdviceReferencedDocumentID)
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty)).setCreditNote();
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty)).setCreditNote();
|
||||||
@@ -701,20 +674,30 @@ public class ZF2PushTest extends TestCase {
|
|||||||
// now check the contents (like MustangReaderTest)
|
// now check the contents (like MustangReaderTest)
|
||||||
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_CREDITNOTEPDF);
|
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_CREDITNOTEPDF);
|
||||||
|
|
||||||
assertTrue(zi.getUTF8().contains("EUR"));
|
assertEquals("EUR", zi.getInvoiceCurrencyCode());
|
||||||
//totest: typecode 384, BuyerOrderReferencedDocument
|
assertEquals(DocumentCodeTypeConstants.CREDITNOTE, zi.getDocumentCode());
|
||||||
// Reading ZUGFeRD
|
//totest: BuyerOrderReferencedDocument
|
||||||
assertEquals("3.57", zi.getAmount());
|
assertEquals("3.57", zi.getAmount());
|
||||||
assertEquals(zi.getHolder(), orgname);
|
assertEquals(orgname, zi.getHolder());
|
||||||
assertEquals(zi.getForeignReference(), number);
|
assertEquals(number, zi.getForeignReference());
|
||||||
try {
|
try {
|
||||||
assertEquals(zi.getVersion(), 2);
|
assertEquals(zi.getVersion(), 2);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ZUGFeRDInvoiceImporter zii = new ZUGFeRDInvoiceImporter(TARGET_CREDITNOTEPDF);
|
||||||
|
try {
|
||||||
|
Invoice i = zii.extractInvoice();
|
||||||
|
|
||||||
|
assertEquals(despatchAdviceReferencedDocumentID, i.getDespatchAdviceReferencedDocumentID());
|
||||||
|
|
||||||
|
} catch (XPathExpressionException e) {
|
||||||
|
fail("XPathExpressionException should not be raised");
|
||||||
|
} catch (ParseException e) {
|
||||||
|
fail("ParseException should not be raised");
|
||||||
|
/* a parseException would also be fired if the calculated grand total does not
|
||||||
|
match the read grand total */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user