some charges/allowance changes
This commit is contained in:
240
History.md
240
History.md
@@ -28,10 +28,10 @@ switch
|
|||||||
- have visualizer
|
- have visualizer
|
||||||
- validate as library doc
|
- validate as library doc
|
||||||
- unify loggers
|
- unify loggers
|
||||||
|
- release notes
|
||||||
|
|
||||||
|
|
||||||
### 2.0 still todo
|
### 2.0 still todo
|
||||||
- release notes
|
|
||||||
- verapdf as prevalidation?
|
- verapdf as prevalidation?
|
||||||
- visualization? zugferdvisualizer?
|
- visualization? zugferdvisualizer?
|
||||||
- new sample invoice
|
- new sample invoice
|
||||||
@@ -51,8 +51,15 @@ switch
|
|||||||
- *use validator in tests of library
|
- *use validator in tests of library
|
||||||
- *USt 0% wird aus invoice-klasse noch nicht sauber abgefangen
|
- *USt 0% wird aus invoice-klasse noch nicht sauber abgefangen
|
||||||
- *ownContact sollte in einen Contact schreiben
|
- *ownContact sollte in einen Contact schreiben
|
||||||
|
- new features additional docs, contract id, periods, corrected invoices, discounts
|
||||||
|
|
||||||
1.7.7
|
Mustangproject 1.7.8
|
||||||
|
=====
|
||||||
|
2020-06-14
|
||||||
|
- corrected ZF2 gross price
|
||||||
|
|
||||||
|
|
||||||
|
Mustangproject 1.7.7
|
||||||
=====
|
=====
|
||||||
2020-05-26
|
2020-05-26
|
||||||
|
|
||||||
@@ -61,7 +68,30 @@ switch
|
|||||||
- #148 support additional documents for items
|
- #148 support additional documents for items
|
||||||
- #154 german VAT ID may not be used for sellercontact scheme id
|
- #154 german VAT ID may not be used for sellercontact scheme id
|
||||||
|
|
||||||
1.7.6
|
Validator 0.9.0
|
||||||
|
=====
|
||||||
|
2020-03-24
|
||||||
|
|
||||||
|
- ZF 2.1 Schema/Schematrons
|
||||||
|
- check against URI allowing for different fragments
|
||||||
|
- #27 wrong exit code
|
||||||
|
- now context also loggs
|
||||||
|
- introduced fatal errors. new errors: filename empty (10), xml not extractable (17), En16931 CEN Schematron error (24)
|
||||||
|
- fail better if -f missing
|
||||||
|
- validate against CEN 1.3
|
||||||
|
- corrected invalidation of complete output status for broken pdfs
|
||||||
|
- mention filename in report
|
||||||
|
- escape xml in report elements, e.g. < in criterion to become <
|
||||||
|
- validation element has been removed from pdf info and added as attribute in root, duration is now direct child of info
|
||||||
|
- file not found and file too small now without filename
|
||||||
|
- XML pretty print output. (XML report may now contain header <?xml...)
|
||||||
|
- First XMLUnit tests
|
||||||
|
- Better Check of XML Validity also against documents which start with comments or not with xml header <?xml...
|
||||||
|
- prevent accidental CEN EN16931 application on extended profile
|
||||||
|
- solved issues when XML structures start with comments instead of root node
|
||||||
|
- added Symtrax signature
|
||||||
|
|
||||||
|
Mustangproject 1.7.6
|
||||||
=====
|
=====
|
||||||
2020-02-06
|
2020-02-06
|
||||||
|
|
||||||
@@ -71,7 +101,7 @@ switch
|
|||||||
- allow different currencies also for ZF2 (#150)
|
- allow different currencies also for ZF2 (#150)
|
||||||
- minor correction VAT exemptions
|
- minor correction VAT exemptions
|
||||||
|
|
||||||
1.7.5
|
Mustangproject 1.7.5
|
||||||
=====
|
=====
|
||||||
2019-11-05
|
2019-11-05
|
||||||
|
|
||||||
@@ -82,7 +112,31 @@ switch
|
|||||||
- corrected RDF metadata for ZF2
|
- corrected RDF metadata for ZF2
|
||||||
- default conformance level now EN16931, not extended
|
- default conformance level now EN16931, not extended
|
||||||
|
|
||||||
1.7.4
|
Validator 0.8.3
|
||||||
|
=====
|
||||||
|
2019-10-20
|
||||||
|
|
||||||
|
- #22 rounding errors when applying schematron
|
||||||
|
- check for 1.0 or 2p0 in RDF, not 1.0 and 2.0 like before
|
||||||
|
- updated to zf 2.0.1
|
||||||
|
|
||||||
|
Validator 0.8.2
|
||||||
|
=====
|
||||||
|
2019-10-10
|
||||||
|
|
||||||
|
- #22 rounding errors when applying schematron
|
||||||
|
|
||||||
|
Validator 0.8.1
|
||||||
|
=====
|
||||||
|
2019-09-01
|
||||||
|
|
||||||
|
- added Signature pdfMachine
|
||||||
|
- added check for additional data correctness
|
||||||
|
- #23 ZF2 basic was incorrectly checked against Minimum/Basic Without lines Schema/Schematron
|
||||||
|
- Merged -x and -z to -f
|
||||||
|
- Created ZUGFeRDValidatorClass and MiscValidatorTests for e.g. tests without existing files
|
||||||
|
|
||||||
|
Mustangproject 1.7.4
|
||||||
=====
|
=====
|
||||||
2019-08-24
|
2019-08-24
|
||||||
|
|
||||||
@@ -93,7 +147,7 @@ switch
|
|||||||
- #132 Mustangproject does not work w/ Java 11
|
- #132 Mustangproject does not work w/ Java 11
|
||||||
|
|
||||||
|
|
||||||
1.7.3
|
Mustangproject 1.7.3
|
||||||
=====
|
=====
|
||||||
2019-08-01
|
2019-08-01
|
||||||
|
|
||||||
@@ -106,93 +160,149 @@ switch
|
|||||||
- have unit tests for nDigitFormat #23
|
- have unit tests for nDigitFormat #23
|
||||||
|
|
||||||
|
|
||||||
1.7.2
|
Mustangproject 1.7.2
|
||||||
=====
|
=====
|
||||||
2019-07-08
|
2019-07-08
|
||||||
|
|
||||||
Support BuyerReference (r+w), as well as SpecifiedLegalOrganization (w) and DefinedTradeContact (w)
|
- Support BuyerReference (r+w), as well as SpecifiedLegalOrganization (w) and DefinedTradeContact (w)
|
||||||
use dom4j to format output xml document
|
- use dom4j to format output xml document
|
||||||
corrected some exception logging glitches
|
- corrected some exception logging glitches
|
||||||
upgrade PDFBox to 2.0.15+
|
- upgrade PDFBox to 2.0.15+
|
||||||
extraction to use proper filename instead of alias #98
|
- extraction to use proper filename instead of alias #98
|
||||||
NullPointerException in ZUGFeRDImporter.extractLowLevel #96
|
- NullPointerException in ZUGFeRDImporter.extractLowLevel #96
|
||||||
Removed Bankleitzahl from ZF2
|
- Removed Bankleitzahl from ZF2
|
||||||
|
|
||||||
|
Validator 0.8.0
|
||||||
|
=====
|
||||||
|
2019-07-08
|
||||||
|
|
||||||
1.7.1
|
- updated Mustang to mitigate #20 zf1 validation does not always return a section
|
||||||
|
- validate not only against schematron but also against schema files
|
||||||
|
|
||||||
|
Validator 0.7.0
|
||||||
|
=====
|
||||||
|
2019-05-31
|
||||||
|
|
||||||
|
- ZUGFeRD 2 final compatible
|
||||||
|
- now displaying number of applied and failed rules
|
||||||
|
- now failing if no rule could be applied at all
|
||||||
|
- profileoverride option no longer needed
|
||||||
|
- version dependent checks for profiles (i.e. comfort is not a valid ZF2 profile!)
|
||||||
|
- allow new ZF2 filename (zugferd-invoice.xml instead ZUGFeRD-invoice.xml)
|
||||||
|
- more JUnit tests
|
||||||
|
- include own version number in XML report
|
||||||
|
|
||||||
|
Mustangproject 1.7.1
|
||||||
=====
|
=====
|
||||||
2019-05-26
|
2019-05-26
|
||||||
|
|
||||||
Corrected EN16931 ZF2 profile name
|
Corrected EN16931 ZF2 profile name
|
||||||
|
|
||||||
1.7.0
|
Mustangproject 1.7.0
|
||||||
=====
|
=====
|
||||||
2019-05-05
|
2019-05-05
|
||||||
|
|
||||||
Export ZF2 final now seems halfway valid (new filename, new namespace prefixa)
|
- Export ZF2 final now seems halfway valid (new filename, new namespace prefixa)
|
||||||
Migrates profile names in ZF1 to ZF2 migration
|
- Migrates profile names in ZF1 to ZF2 migration
|
||||||
Nullpointerex solved with certain invalid profiles
|
- Nullpointerex solved with certain invalid profiles
|
||||||
Be able to access additional files ("additional data")
|
- Be able to access additional files ("additional data")
|
||||||
Known bugs: src/test/resources/migration/reference/ZUGFeRD2_EXTENDED_Warenrechnung.xml is invalid
|
- Known bugs: src/test/resources/migration/reference/ZUGFeRD2_EXTENDED_Warenrechnung.xml is invalid
|
||||||
|
|
||||||
|
Validator 0.6.0
|
||||||
|
=====
|
||||||
|
2019-02-15
|
||||||
|
|
||||||
|
Factur-X compatible Mention xpath location where the errors occurred JUnit tests new way to collect&handle errors XMP/PDF-A-Schema extension validation
|
||||||
|
|
||||||
|
|
||||||
1.6.0
|
Mustangproject 1.6.0
|
||||||
=====
|
=====
|
||||||
2019-02-03
|
2019-02-03
|
||||||
|
|
||||||
Closes #69.
|
- Closes #69.
|
||||||
Corrected EN 16931 XMP Schema Extension header
|
- Corrected EN 16931 XMP Schema Extension header
|
||||||
Can now read xmp metadata via ZUGFeRDImporter getXMP
|
- Can now read xmp metadata via ZUGFeRDImporter getXMP
|
||||||
Exporting valid EN16931 Factur-X when version/profile set to 2/EN16931 mode
|
- Exporting valid EN16931 Factur-X when version/profile set to 2/EN16931 mode
|
||||||
|
|
||||||
|
|
||||||
1.5.5
|
Mustangproject 1.5.5
|
||||||
=====
|
=====
|
||||||
2018-10-22
|
2018-10-22
|
||||||
|
|
||||||
Fixes by Indigo744: Issues #66 Commandline: provide a way to set input parameters and #68 Combine with ZUGFeRD v2: NullPointerException
|
- Fixes by Indigo744: Issues #66 Commandline: provide a way to set input parameters and #68 Combine with ZUGFeRD v2: NullPointerException
|
||||||
Fixes #63 PDF/A3 conversion not valid.
|
- Fixes #63 PDF/A3 conversion not valid.
|
||||||
|
|
||||||
1.5.4
|
Validator 0.5.0
|
||||||
|
=====
|
||||||
|
2018-09-10
|
||||||
|
|
||||||
|
- Non-16931 profiles are no longer automatically (but still can be manually) checked
|
||||||
|
- now writing a log file
|
||||||
|
- attempt to find out which toolkit created that particular file (issue #2)
|
||||||
|
- fixing that XML could not be extracted from certain valid PDF/A-3 files (issue #9)
|
||||||
|
- added --action parameter (has to be validate)
|
||||||
|
- -f option changes to "-o -z"
|
||||||
|
- added APL license
|
||||||
|
- added possibility to check XML files only
|
||||||
|
- fixing issues with files that contained a UTF8 BOM in the XML content ("Content not allowed in prolog")
|
||||||
|
- Upgraded VeraPDF-validation from 1.10.5 to 1.12.1
|
||||||
|
|
||||||
|
Mustangproject 1.5.4
|
||||||
=====
|
=====
|
||||||
2018-08-29
|
2018-08-29
|
||||||
|
|
||||||
Fixed #62 fail gracefully on commandline extraction of XML if none is present.
|
- Fixed #62 fail gracefully on commandline extraction of XML if none is present.
|
||||||
New public function: ZUGFeRDImporter.getUTF8 returns raw XML without Byte Order Mark, if one had been used.
|
- New public function: ZUGFeRDImporter.getUTF8 returns raw XML without Byte Order Mark, if one had been used.
|
||||||
|
|
||||||
1.5.3
|
Mustangproject 1.5.3
|
||||||
=====
|
=====
|
||||||
2018-07-20
|
2018-07-20
|
||||||
|
|
||||||
Fixed #60 nullpointerexception in ZUGFeRDimporter on some input files
|
- Fixed #60 nullpointerexception in ZUGFeRDimporter on some input files
|
||||||
and #61 missing in maven repo
|
- and #61 missing in maven repo
|
||||||
Now possible to skip parse() and go from zi.extract to e.g. zi.getAmount()
|
- Now possible to skip parse() and go from zi.extract to e.g. zi.getAmount()
|
||||||
|
|
||||||
|
Mustangproject 1.5.2
|
||||||
|
|
||||||
1.5.2
|
|
||||||
=====
|
=====
|
||||||
2018-06-10
|
2018-06-10
|
||||||
|
|
||||||
Fixed #57 commandline not converting PDF from A1 to A3 when adding XML to PDF (-c)
|
Fixed #57 commandline not converting PDF from A1 to A3 when adding XML to PDF (-c)
|
||||||
|
|
||||||
1.5.1
|
Validator 0.4.3
|
||||||
|
=====
|
||||||
|
2018-03-19
|
||||||
|
|
||||||
|
Java 8 capability (fixes issue #8)
|
||||||
|
|
||||||
|
Validator 0.4.2
|
||||||
|
=====
|
||||||
|
2018-03-11
|
||||||
|
|
||||||
|
POJO embedding VeraPDF: unable to solve some severe deployment issues
|
||||||
|
|
||||||
|
Validator 0.4.1
|
||||||
|
=====
|
||||||
|
2018-02-12
|
||||||
|
|
||||||
|
ZUGFeRD 2 public preview EN16931 validation using the schematron files the CEN had published under APL
|
||||||
|
|
||||||
|
Mustangproject 1.5.1
|
||||||
=====
|
=====
|
||||||
2018-01-13
|
2018-01-13
|
||||||
|
|
||||||
Fixed a major issue with the Maven repository (thanks to Markus Plangg, https://github.com/ZUGFeRD/mustangproject/issues/52)
|
Fixed a major issue with the Maven repository (thanks to Markus Plangg, https://github.com/ZUGFeRD/mustangproject/issues/52)
|
||||||
|
|
||||||
1.5.0
|
Mustangproject 1.5.0
|
||||||
=====
|
=====
|
||||||
2017-11-30
|
2017-11-30
|
||||||
|
|
||||||
Support for ZUGFeRD 2.0 "public review" part 1.
|
- Support for ZUGFeRD 2.0 "public review" part 1.
|
||||||
Now using factories to create/configure ZUGFeRDExporter.
|
- Now using factories to create/configure ZUGFeRDExporter.
|
||||||
Export is now also possible on OutputStream.
|
- Export is now also possible on OutputStream.
|
||||||
Removed need to call PDFattachZugferdFile(null) or exporter close();
|
- Removed need to call PDFattachZugferdFile(null) or exporter close();
|
||||||
More unit tests, e.g. for custom xml export, PDF/A Schema extensions.
|
- More unit tests, e.g. for custom xml export, PDF/A Schema extensions.
|
||||||
The command line utility "toecount" is now integrated and the main class so "java -jar mustang-1.5.0.jar" should suffice.
|
- The command line utility "toecount" is now integrated and the main class so "java -jar mustang-1.5.0.jar" should suffice.
|
||||||
It now also features options to combine PDF with XML and upgrade XML files from ZF1 to ZF2.
|
- It now also features options to combine PDF with XML and upgrade XML files from ZF1 to ZF2.
|
||||||
|
|
||||||
First attempts be able to start with a PDF/A-3 in the first place and better error messages for non-PDF/A-conformance.
|
First attempts be able to start with a PDF/A-3 in the first place and better error messages for non-PDF/A-conformance.
|
||||||
|
|
||||||
@@ -206,45 +316,59 @@ Further changes:
|
|||||||
* invalid a3 #44
|
* invalid a3 #44
|
||||||
* warn on export #39
|
* warn on export #39
|
||||||
|
|
||||||
|
Validator 0.3.0
|
||||||
|
=====
|
||||||
|
2017-07-24
|
||||||
|
|
||||||
|
First release as VeraPDF plugin
|
||||||
|
|
||||||
1.4.0
|
Mustangproject 1.4.0
|
||||||
=====
|
=====
|
||||||
2017-05-11
|
2017-05-11
|
||||||
Switched to ZUGFeRD extended, new all-in-one jar including dependencies,
|
|
||||||
switch to Apache PDFBox 2.0. Some bugfixes.
|
- Switched to ZUGFeRD extended, new all-in-one jar including dependencies,
|
||||||
|
- switch to Apache PDFBox 2.0. Some bugfixes.
|
||||||
Thanks to AlexanderSchmidt and yankee42.
|
Thanks to AlexanderSchmidt and yankee42.
|
||||||
|
|
||||||
1.3.1
|
Mustangproject 1.3.1
|
||||||
=====
|
=====
|
||||||
2016-06-01
|
2016-06-01
|
||||||
|
|
||||||
1.3.0
|
Mustangproject 1.3.0
|
||||||
=====
|
=====
|
||||||
2016-03-15
|
2016-03-15
|
||||||
|
|
||||||
Additional checks in the new version facilitate correct usage within your own applications. For example, input data (PDF/A-1) and the sequence of the calls are checked for accuracy.
|
Additional checks in the new version facilitate correct usage within your own applications. For example, input data (PDF/A-1) and the sequence of the calls are checked for accuracy.
|
||||||
A community patch (thanks to Alexander Schmidt) improves the internal functioning and removes the last known bugs.
|
A community patch (thanks to Alexander Schmidt) improves the internal functioning and removes the last known bugs.
|
||||||
|
|
||||||
1.2.0
|
Mustangproject 1.2.0
|
||||||
=====
|
=====
|
||||||
2015-10-15
|
2015-10-15
|
||||||
|
|
||||||
Compliance to GEFEG and ZUGFeRD Checker.
|
Compliance to GEFEG and ZUGFeRD Checker.
|
||||||
|
|
||||||
1.1.2
|
Mustangproject 1.1.2
|
||||||
=====
|
=====
|
||||||
2015-06-15
|
2015-06-15
|
||||||
|
|
||||||
The ZUGFeRD-Metadata now conforms to more validators like the Konik Validation Service. As a new feature it is now also possible to create test invoices.
|
The ZUGFeRD-Metadata now conforms to more validators like the Konik Validation Service. As a new feature it is now also possible to create test invoices.
|
||||||
|
|
||||||
1.1.1
|
Mustangproject 1.1.1
|
||||||
=====
|
=====
|
||||||
2015-03-31
|
2015-03-31
|
||||||
|
|
||||||
Maven and custom xml
|
Maven and custom xml
|
||||||
|
|
||||||
1.1.0
|
Mustangproject 1.1.0
|
||||||
=====
|
=====
|
||||||
2014-12-07
|
2014-12-07
|
||||||
|
|
||||||
ZUGFeRD 1.0
|
ZUGFeRD 1.0
|
||||||
|
|
||||||
1.0.0
|
Mustangproject 1.0.0
|
||||||
=====
|
=====
|
||||||
2014-05-22
|
2014-05-22
|
||||||
|
|
||||||
ZUGFeRD 1.0RC Comfort
|
ZUGFeRD 1.0RC Comfort
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
16
library/src/main/java/org/mustangproject/Allowance.java
Normal file
16
library/src/main/java/org/mustangproject/Allowance.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package org.mustangproject;
|
||||||
|
|
||||||
|
import org.mustangproject.ZUGFeRD.IZUGFeRDAllowanceCharge;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class Allowance extends Charge implements IZUGFeRDAllowanceCharge {
|
||||||
|
|
||||||
|
public Allowance() {
|
||||||
|
|
||||||
|
}
|
||||||
|
public Allowance(BigDecimal totalAmount, BigDecimal taxPercent, String reason, String categoryCode) {
|
||||||
|
super(totalAmount, taxPercent, reason, categoryCode);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
74
library/src/main/java/org/mustangproject/Charge.java
Normal file
74
library/src/main/java/org/mustangproject/Charge.java
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
package org.mustangproject;
|
||||||
|
|
||||||
|
import org.mustangproject.ZUGFeRD.IZUGFeRDAllowanceCharge;
|
||||||
|
import org.mustangproject.ZUGFeRD.IZUGFeRDExportableProduct;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class Charge implements IZUGFeRDAllowanceCharge {
|
||||||
|
|
||||||
|
protected BigDecimal percent;
|
||||||
|
protected BigDecimal totalAmount;
|
||||||
|
protected BigDecimal taxPercent;
|
||||||
|
protected String reason;
|
||||||
|
protected String categoryCode;
|
||||||
|
|
||||||
|
public Charge() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Charge(BigDecimal totalAmount, BigDecimal taxPercent, String reason, String categoryCode) {
|
||||||
|
this.totalAmount = totalAmount;
|
||||||
|
this.taxPercent = taxPercent;
|
||||||
|
this.reason = reason;
|
||||||
|
this.categoryCode = categoryCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Charge setTotalAmount(BigDecimal totalAmount) {
|
||||||
|
this.totalAmount = totalAmount;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Charge setPercent(BigDecimal percent) {
|
||||||
|
this.percent = percent;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Charge setTaxPercent(BigDecimal taxPercent) {
|
||||||
|
this.taxPercent = taxPercent;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Charge setReason(String reason) {
|
||||||
|
this.reason = reason;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Charge setCategoryCode(String categoryCode) {
|
||||||
|
this.categoryCode = categoryCode;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BigDecimal getTotalAmount() {
|
||||||
|
return totalAmount;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getReason() {
|
||||||
|
return reason;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BigDecimal getTaxPercent() {
|
||||||
|
return taxPercent;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCategoryCode() {
|
||||||
|
return categoryCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -402,6 +402,22 @@ public class Invoice implements IExportableTransaction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Invoice addCharge(IZUGFeRDAllowanceCharge charge) {
|
||||||
|
//@todo
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Invoice addAllowance(IZUGFeRDAllowanceCharge allowance) {
|
||||||
|
//@todo
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***
|
||||||
|
* checks if all required items are set in order to be able to export it
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public boolean isValid() {
|
public boolean isValid() {
|
||||||
return (dueDate != null) && (ownZIP != null) && (ownStreet != null) && (ownLocation != null) && (ownCountry != null) && (ownTaxID != null) && (ownVATID != null) && (recipient != null);
|
return (dueDate != null) && (ownZIP != null) && (ownStreet != null) && (ownLocation != null) && (ownCountry != null) && (ownTaxID != null) && (ownVATID != null) && (recipient != null);
|
||||||
//contact
|
//contact
|
||||||
|
|||||||
@@ -25,6 +25,16 @@ public class Item implements IZUGFeRDExportableItem {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Item addCharge(IZUGFeRDAllowanceCharge charge) {
|
||||||
|
//@todo
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Item addAllowance(IZUGFeRDAllowanceCharge allowance) {
|
||||||
|
//@todo
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public BigDecimal getGrossPrice() {
|
public BigDecimal getGrossPrice() {
|
||||||
return grossPrice;
|
return grossPrice;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,10 +24,7 @@ import java.io.InputStream;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import org.mustangproject.Contact;
|
import org.mustangproject.*;
|
||||||
import org.mustangproject.Invoice;
|
|
||||||
import org.mustangproject.Item;
|
|
||||||
import org.mustangproject.Product;
|
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.runners.MethodSorters;
|
import org.junit.runners.MethodSorters;
|
||||||
|
|
||||||
@@ -78,7 +75,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
public void testAttachmentsExport() {
|
public void testAttachmentsExport() {
|
||||||
|
|
||||||
String orgname = "Test company";
|
String orgname = "Test company";
|
||||||
@@ -92,9 +89,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors()
|
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors()
|
||||||
.load(SOURCE_PDF)) {
|
.load(SOURCE_PDF)) {
|
||||||
|
|
||||||
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnOrganisationName(orgname).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)))
|
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnOrganisationName(orgname).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0))));
|
||||||
.set
|
|
||||||
);
|
|
||||||
ze.attachFile("one.pdf");
|
ze.attachFile("one.pdf");
|
||||||
ze.attachFile("two.pdf");
|
ze.attachFile("two.pdf");
|
||||||
String theXML = new String(ze.getProvider().getXML());
|
String theXML = new String(ze.getProvider().getXML());
|
||||||
@@ -136,9 +131,9 @@ public class ZF2PushTest extends TestCase {
|
|||||||
.load(SOURCE_PDF)) {
|
.load(SOURCE_PDF)) {
|
||||||
|
|
||||||
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnOrganisationName(orgname).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number)
|
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnOrganisationName(orgname).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number)
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)).addCharge(new BigDecimal(0.1)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)).addCharge(new Charge(new BigDecimal(0.1),new BigDecimal(0), "", "K")))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)).addAllowance(new BigDecimal(0.07)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)).addAllowance(new Allowance(new BigDecimal(0.07),new BigDecimal(0), "", "K")))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)).addAllowance(new BigDecimal(0.07)).addCharge(new BigDecimal(0.1)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)).addAllowance(new Allowance(new BigDecimal(0.07),new BigDecimal(0), "", "K")))
|
||||||
|
|
||||||
);
|
);
|
||||||
String theXML = new String(ze.getProvider().getXML());
|
String theXML = new String(ze.getProvider().getXML());
|
||||||
@@ -166,7 +161,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testItemChargesAllowancesExport() {
|
public void testChargesAllowancesExport() {
|
||||||
|
|
||||||
String orgname = "Test company";
|
String orgname = "Test company";
|
||||||
String number = "123";
|
String number = "123";
|
||||||
@@ -183,10 +178,8 @@ public class ZF2PushTest extends TestCase {
|
|||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)))
|
||||||
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)))
|
.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)))
|
||||||
.addCharge(new BigDecimal(0.5))
|
.addCharge(new Charge(new BigDecimal(0.1),new BigDecimal(0), "", "K"))
|
||||||
.addAllowance(new BigDecimal(0.7))
|
.addAllowance(new Allowance(new BigDecimal(0.07),new BigDecimal(0), "", "K")));
|
||||||
|
|
||||||
);
|
|
||||||
String theXML = new String(ze.getProvider().getXML());
|
String theXML = new String(ze.getProvider().getXML());
|
||||||
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
|
||||||
ze.export(TARGET_PDF);
|
ze.export(TARGET_PDF);
|
||||||
@@ -212,7 +205,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
|
||||||
public void testCorrectionExport() {
|
public void testCorrectionExport() {
|
||||||
|
|
||||||
String orgname = "Test company";
|
String orgname = "Test company";
|
||||||
|
|||||||
@@ -1,110 +0,0 @@
|
|||||||
|
|
||||||
0.9.0
|
|
||||||
======
|
|
||||||
2020-03-24
|
|
||||||
* ZF 2.1 Schema/Schematrons
|
|
||||||
* check against URI allowing for different fragments
|
|
||||||
* #27 wrong exit code
|
|
||||||
* now context also loggs
|
|
||||||
* introduced fatal errors. new errors: filename empty (10), xml not extractable (17), En16931 CEN Schematron error (24)
|
|
||||||
* fail better if -f missing
|
|
||||||
* validate against CEN 1.3
|
|
||||||
* corrected invalidation of complete output status for broken pdfs
|
|
||||||
* mention filename in report
|
|
||||||
* escape xml in report elements, e.g. < in criterion to become <
|
|
||||||
* validation element has been removed from pdf info and added as attribute in root, duration is now direct child of info
|
|
||||||
* file not found and file too small now without filename
|
|
||||||
* XML pretty print output. (XML report may now contain header <?xml...)
|
|
||||||
* First XMLUnit tests
|
|
||||||
* Better Check of XML Validity also against documents which start with comments or not with xml header <?xml...
|
|
||||||
* prevent accidental CEN EN16931 application on extended profile
|
|
||||||
* solved issues when XML structures start with comments instead of root node
|
|
||||||
* added Symtrax signature
|
|
||||||
|
|
||||||
0.8.3
|
|
||||||
======
|
|
||||||
2019-10-20
|
|
||||||
* #22 rounding errors when applying schematron
|
|
||||||
* check for 1.0 or 2p0 in RDF, not 1.0 and 2.0 like before
|
|
||||||
* updated to zf 2.0.1
|
|
||||||
|
|
||||||
0.8.2
|
|
||||||
======
|
|
||||||
2019-10-10
|
|
||||||
* #22 rounding errors when applying schematron
|
|
||||||
|
|
||||||
0.8.1
|
|
||||||
======
|
|
||||||
2019-09-01
|
|
||||||
|
|
||||||
* added Signature pdfMachine
|
|
||||||
* added check for additional data correctness
|
|
||||||
* #23 ZF2 basic was incorrectly checked against Minimum/Basic Without lines Schema/Schematron
|
|
||||||
* Merged -x and -z to -f
|
|
||||||
* Created ZUGFeRDValidatorClass and MiscValidatorTests for e.g. tests without existing files
|
|
||||||
|
|
||||||
0.8.0
|
|
||||||
======
|
|
||||||
2019-07-08
|
|
||||||
|
|
||||||
* updated Mustang to mitigate #20 zf1 validation does not always return a <xml> section
|
|
||||||
* validate not only against *schematron* but also against *schema* files
|
|
||||||
|
|
||||||
0.7.0
|
|
||||||
======
|
|
||||||
2019-05-31
|
|
||||||
|
|
||||||
* ZUGFeRD 2 final compatible
|
|
||||||
* now displaying number of applied and failed rules
|
|
||||||
* now failing if no rule could be applied at all
|
|
||||||
* profileoverride option no longer needed
|
|
||||||
* version dependent checks for profiles (i.e. comfort is not a valid ZF2 profile!)
|
|
||||||
* allow new ZF2 filename (zugferd-invoice.xml instead ZUGFeRD-invoice.xml)
|
|
||||||
* more JUnit tests
|
|
||||||
* include own version number in XML report
|
|
||||||
|
|
||||||
|
|
||||||
0.6.0
|
|
||||||
=====
|
|
||||||
2019-02-15
|
|
||||||
Factur-X compatible
|
|
||||||
Mention xpath location where the errors occurred
|
|
||||||
JUnit tests
|
|
||||||
new way to collect&handle errors
|
|
||||||
XMP/PDF-A-Schema extension validation
|
|
||||||
|
|
||||||
|
|
||||||
0.5.0
|
|
||||||
=====
|
|
||||||
2018-09-10
|
|
||||||
Non-16931 profiles are no longer automatically (but still can be manually) checked,
|
|
||||||
now writing a log file, attempt to find out which toolkit created that particular file (issue #2),
|
|
||||||
fixing that XML could not be extracted from certain valid PDF/A-3 files (issue #9),
|
|
||||||
added --action parameter (has to be validate), -f option changes to "-o -z", added APL license,
|
|
||||||
added possibility to check XML files only, fixing issues with files that contained a
|
|
||||||
UTF8 BOM in the XML content ("Content not allowed in prolog"),
|
|
||||||
Upgraded VeraPDF-validation from 1.10.5 to 1.12.1
|
|
||||||
|
|
||||||
0.4.3
|
|
||||||
=====
|
|
||||||
2018-03-19
|
|
||||||
|
|
||||||
Java 8 capability (fixes issue #8)
|
|
||||||
|
|
||||||
0.4.2
|
|
||||||
=====
|
|
||||||
2018-03-11
|
|
||||||
POJO embedding VeraPDF: unable to solve some severe deployment issues
|
|
||||||
|
|
||||||
|
|
||||||
0.4.1
|
|
||||||
=====
|
|
||||||
2018-02-12
|
|
||||||
ZUGFeRD 2 public preview EN16931 validation using the schematron files the CEN had
|
|
||||||
published under APL
|
|
||||||
|
|
||||||
|
|
||||||
0.3.0
|
|
||||||
=====
|
|
||||||
2017-07-24
|
|
||||||
First release as VeraPDF plugin
|
|
||||||
@@ -189,7 +189,7 @@ Permissive Open Source APL2, see LICENSE
|
|||||||
|
|
||||||
## History
|
## History
|
||||||
|
|
||||||
see the [history file](History.md)
|
see the Mustangproject [history file](History.md)
|
||||||
|
|
||||||
|
|
||||||
## Authors
|
## Authors
|
||||||
|
|||||||
1202
validator/log/ZUV-2020-08.log
Normal file
1202
validator/log/ZUV-2020-08.log
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user