diff --git a/mustang/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java b/mustang/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java index fb4d5963..050d0272 100644 --- a/mustang/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java +++ b/mustang/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java @@ -28,18 +28,6 @@ public interface IZUGFeRDExportableTransaction { Date getIssueDate(); - /** - * total amount incl. taxes - * @return - */ - BigDecimal getTotalGross(); - - /** - * total amount excl. taxes - * @return - */ - BigDecimal getTotal(); - /** * when the invoice is to be paid * @return diff --git a/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java b/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java index 76a26401..8b168e91 100644 --- a/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java +++ b/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java @@ -113,6 +113,7 @@ public class ZUGFeRDExporter { */ byte[] zugferdData = null; private boolean isTest; + IZUGFeRDExportableTransaction trans=null; private String nDigitFormat(BigDecimal value, int scale) { @@ -262,6 +263,8 @@ public class ZUGFeRDExporter { } private String getZugferdXMLForTransaction(IZUGFeRDExportableTransaction trans) { + this.trans=trans; + SimpleDateFormat germanDateFormat = new SimpleDateFormat("dd.MM.yyyy"); //$NON-NLS-1$ SimpleDateFormat zugferdDateFormat = new SimpleDateFormat("yyyyMMdd"); //$NON-NLS-1$ String testBooleanStr="false"; @@ -367,7 +370,7 @@ public class ZUGFeRDExporter { - HashMap VATPercentAmountMap=getVATPercentAmountMap(trans); + HashMap VATPercentAmountMap=getVATPercentAmountMap(); for (BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) { VATAmount amount = VATPercentAmountMap.get(currentTaxPercent); if (amount != null) { @@ -421,16 +424,16 @@ public class ZUGFeRDExporter { + " "+zugferdDateFormat.format(trans.getDueDate())+"\n"//20130704 //$NON-NLS-1$ //$NON-NLS-2$ + " \n" //$NON-NLS-1$ + " \n" //$NON-NLS-1$ - + " "+currencyFormat(trans.getTotal())+"\n" //$NON-NLS-1$ //$NON-NLS-2$ + + " "+currencyFormat(getTotal())+"\n" //$NON-NLS-1$ //$NON-NLS-2$ + " 0.00\n" //$NON-NLS-1$ + " 0.00\n" //$NON-NLS-1$ // + " 5.80\n" // + " 14.73\n" - + " "+currencyFormat(trans.getTotal())+"\n" //$NON-NLS-1$ //$NON-NLS-2$ - + " "+currencyFormat(trans.getTotalGross().subtract(trans.getTotal()))+"\n" //$NON-NLS-1$ //$NON-NLS-2$ - + " "+currencyFormat(trans.getTotalGross())+"\n" //$NON-NLS-1$ //$NON-NLS-2$ + + " "+currencyFormat(getTotal())+"\n" //$NON-NLS-1$ //$NON-NLS-2$ + + " "+currencyFormat(getTotalGross().subtract(getTotal()))+"\n" //$NON-NLS-1$ //$NON-NLS-2$ + + " "+currencyFormat(getTotalGross())+"\n" //$NON-NLS-1$ //$NON-NLS-2$ // + " 0.00\n" - + " "+currencyFormat(trans.getTotalGross())+"\n" //$NON-NLS-1$ //$NON-NLS-2$ + + " "+currencyFormat(getTotalGross())+"\n" //$NON-NLS-1$ //$NON-NLS-2$ + " \n" //$NON-NLS-1$ + " \n"; //$NON-NLS-1$ // + " \n" @@ -501,6 +504,28 @@ public class ZUGFeRDExporter { } + private BigDecimal getTotalGross() { + + BigDecimal res=getTotal(); + HashMap VATPercentAmountMap=getVATPercentAmountMap(); + for (BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) { + VATAmount amount = VATPercentAmountMap.get(currentTaxPercent); + res=res.add(amount.getCalculated()); + } + + + return res; + } + + private BigDecimal getTotal() { + BigDecimal res=new BigDecimal(0); + for (IZUGFeRDExportableItem currentItem : trans.getZFItems()) { + LineCalc lc=new LineCalc(currentItem); + res=res.add(lc.getItemTotalNetAmount()); + } + return res; + } + /** * which taxes have been used with which amounts in this transaction, * empty for no taxes, or e.g. 19=>190 and 7=>14 if 1000 Eur were applicable @@ -509,7 +534,7 @@ public class ZUGFeRDExporter { * @return * */ - private HashMap getVATPercentAmountMap(IZUGFeRDExportableTransaction trans) { + private HashMap getVATPercentAmountMap() { HashMap hm=new HashMap (); for (IZUGFeRDExportableItem currentItem : trans.getZFItems()) {