removed pdfa3-sample submodule, made mustang main (and only) module, corrected the POM, released 1.4.0 via maven, updated the developer documentation, updated toecount to 0.0.9 to use mustang 1.4.0 via maven repo

This commit is contained in:
Jochen Staerk
2017-05-18 08:41:47 +02:00
parent a60cb07c9b
commit 52f997f271
103 changed files with 395 additions and 1102 deletions

277
doc/MustangWriter.java Normal file
View File

@@ -0,0 +1,277 @@
package zugferd;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Calendar;
import javax.xml.transform.TransformerException;
import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.mustangproject.ZUGFeRD.IZUGFeRDExportableContact;
import org.mustangproject.ZUGFeRD.IZUGFeRDExportableItem;
import org.mustangproject.ZUGFeRD.IZUGFeRDExportableProduct;
import org.mustangproject.ZUGFeRD.IZUGFeRDExportableTransaction;
import org.mustangproject.ZUGFeRD.ZUGFeRDExporter;
class Contact implements IZUGFeRDExportableContact {
@Override
public String getCountry() {
return "DE";
}
@Override
public String getLocation() {
return "Spielkreis";
}
@Override
public String getName() {
return "Theodor Est";
}
@Override
public String getStreet() {
return "Bahnstr. 42";
}
@Override
public String getVATID() {
return "DE999999999";
}
@Override
public String getZIP() {
return "88802";
}
}
class Item implements IZUGFeRDExportableItem {
private BigDecimal price, quantity;
public Item(BigDecimal price, BigDecimal quantity, Product product) {
super();
this.price = price;
this.quantity = quantity;
this.product = product;
}
private Product product;
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public BigDecimal getQuantity() {
return quantity;
}
public void setQuantity(BigDecimal quantity) {
this.quantity = quantity;
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
}
class Product implements IZUGFeRDExportableProduct {
private String description, name, unit;
public Product(String description, String name, String unit,
BigDecimal VATPercent) {
super();
this.description = description;
this.name = name;
this.unit = unit;
this.VATPercent = VATPercent;
}
private BigDecimal VATPercent;
@Override
public String getDescription() {
return description;
}
@Override
public String getName() {
return name;
}
@Override
public String getUnit() {
return unit;
}
@Override
public BigDecimal getVATPercent() {
return VATPercent;
}
public void setDescription(String description) {
this.description = description;
}
public void setName(String name) {
this.name = name;
}
public void setUnit(String unit) {
this.unit = unit;
}
public void setVATPercent(BigDecimal vATPercent) {
VATPercent = vATPercent;
}
}
public class MustangWriter implements IZUGFeRDExportableTransaction {
public static void main(String[] args) {
MustangWriter w=new MustangWriter();
w.apply();
}
@Override
public Date getDeliveryDate() {
return new GregorianCalendar(2017, Calendar.MAY, 7).getTime();
}
@Override
public Date getDueDate() {
return new GregorianCalendar(2017, Calendar.MAY, 30).getTime();
}
@Override
public Date getIssueDate() {
return new GregorianCalendar(2017, Calendar.MAY, 9).getTime();
}
@Override
public String getNumber() {
return "RE-20170509/505";
}
@Override
public String getOwnBIC() {
return "COBADEFFXXX";
}
@Override
public String getOwnBankName() {
return "Commerzbank";
}
@Override
public String getOwnCountry() {
return "DE";
}
@Override
public String getOwnIBAN() {
return "DE88 2008 0000 0970 3757 00";
}
@Override
public String getOwnLocation() {
return "Stadthausen";
}
@Override
public String getOwnOrganisationName() {
return "Bei Spiel GmbH";
}
@Override
public String getOwnStreet() {
return "Ecke 12";
}
@Override
public String getOwnTaxID() {
return "22/815/0815/4";
}
@Override
public String getOwnVATID() {
return "DE136695976";
}
@Override
public String getOwnZIP() {
return "12345";
}
@Override
public IZUGFeRDExportableContact getRecipient() {
return new Contact();
}
@Override
public IZUGFeRDExportableItem[] getZFItems() {
Item[] allItems = new Item[3];
Product designProduct = new Product("",
"Künstlerische Gestaltung (Stunde)", "HUR", new BigDecimal(
"7.000000"));
Product balloonProduct = new Product("", "Luftballon", "C62",
new BigDecimal("19.000000"));
Product airProduct = new Product("", "Heiße Luft pro Liter", "LTR",
new BigDecimal("19.000000"));
allItems[0] = new Item(new BigDecimal("160"),
new BigDecimal("1"), designProduct);
allItems[1] = new Item(new BigDecimal("0.79"),
new BigDecimal("400"), balloonProduct);
allItems[2] = new Item(new BigDecimal("0.10"),
new BigDecimal("200"), airProduct);
return allItems;
}
private void apply() {
PDDocument doc;
try {
System.out.println("Reading blank PDF");
doc = PDDocument
.load("/Users/jstaerk/workspace/zugferd/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
ZUGFeRDExporter ze = new ZUGFeRDExporter();
System.out.println("Converting to PDF/A-3u");
ze.PDFmakeA3compliant(doc, "Mustangproject",
System.getProperty("user.name"), true);
System.out.println("Generating and attaching ZUGFeRD-Data");
ze.setTest();
ze.PDFattachZugferdFile(doc, this);
System.out.println("Writing ZUGFeRD-PDF");
doc.save("/Users/jstaerk/workspace/zugferd/MustangGnuaccountingBeispielRE-20170509_505.pdf");
System.out.println("Done.");
} catch (IOException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
} catch (COSVisitorException e) {
e.printStackTrace();
}
}
@Override
public String getOwnOrganisationFullPlaintextInfo() {
return "Bei Spiel GmbH\n"
+ "Ecke 12\n"
+ "12345 Stadthausen\n"
+ "Geschäftsführer: Max Mustermann";
}
}