Database schema and prepare jasper report

master
Markus Kreth 4 years ago
parent 903453bf41
commit 013df232ec
  1. 2
      .gitignore
  2. 4
      .project
  3. 21
      pom.xml
  4. 26
      src/main/java/de/kreth/invoice/data/BaseEntity.java
  5. 13
      src/main/java/de/kreth/invoice/data/Invoice.java
  6. 39
      src/main/java/de/kreth/invoice/data/InvoiceItem.java
  7. 16
      src/main/java/de/kreth/invoice/data/User.java
  8. 229
      src/main/java/de/kreth/invoice/report/InvoiceReportSource.java
  9. 59
      src/main/java/de/kreth/invoice/report/Signature.java
  10. 2
      src/main/java/de/kreth/invoice/security/UserManager.java
  11. 227
      src/main/java/de/kreth/invoice/views/UserDetailsDialog.java
  12. 586
      src/main/resources/reports/mtv_gross_buchholz.jrxml
  13. 782
      src/main/resources/reports/mtv_gross_buchholz_trainer.jrxml
  14. 71
      src/main/resources/schema.sql

2
.gitignore vendored

@ -12,3 +12,5 @@ buildNumber.properties
frontend/ frontend/
node_modules/ node_modules/
data/

@ -11,12 +11,12 @@
</arguments> </arguments>
</buildCommand> </buildCommand>
<buildCommand> <buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name> <name>org.springframework.ide.eclipse.boot.validation.springbootbuilder</name>
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>
<buildCommand> <buildCommand>
<name>org.springframework.ide.eclipse.boot.validation.springbootbuilder</name> <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>

@ -1,6 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<!-- Project from https://start.vaadin.com/project/21111318-49ac-485b-92f4-892e176b446f --> <!-- Project from https://start.vaadin.com/project/21111318-49ac-485b-92f4-892e176b446f -->
<groupId>de.kreth.invoice</groupId> <groupId>de.kreth.invoice</groupId>
@ -163,6 +161,23 @@
<version>5.0.3</version> <version>5.0.3</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.19.1</version>
</dependency>
<!-- <dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.3</version>
</dependency>
-->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

@ -5,22 +5,26 @@ import java.time.LocalDateTime;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.MappedSuperclass; import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist; import javax.persistence.PrePersist;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
@MappedSuperclass @MappedSuperclass
public class BaseEntity implements Serializable { public class BaseEntity implements Serializable {
private static final long serialVersionUID = 6953593432069408729L; private static final long serialVersionUID = 6953593432069408729L;
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue
private int id; private int id;
@Column(name = "created") @Column(name = "created")
@CreationTimestamp
private LocalDateTime createdDate; private LocalDateTime createdDate;
@Column(name = "updated") @Column(name = "updated")
@UpdateTimestamp
private LocalDateTime changeDate; private LocalDateTime changeDate;
public int getId() { public int getId() {
@ -70,20 +74,26 @@ public class BaseEntity implements Serializable {
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
if (this == obj) if (this == obj) {
return true; return true;
if (obj == null) }
if (obj == null) {
return false; return false;
if (getClass() != obj.getClass()) }
if (getClass() != obj.getClass()) {
return false; return false;
}
BaseEntity other = (BaseEntity) obj; BaseEntity other = (BaseEntity) obj;
if (createdDate == null) { if (createdDate == null) {
if (other.createdDate != null) if (other.createdDate != null) {
return false; return false;
} else if (!createdDate.equals(other.createdDate)) }
} else if (!createdDate.equals(other.createdDate)) {
return false; return false;
if (id != other.id) }
if (id != other.id) {
return false; return false;
}
return true; return true;
} }

@ -6,8 +6,11 @@ import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
import javax.persistence.Table; import javax.persistence.Table;
@ -21,11 +24,13 @@ public class Invoice extends BaseEntity {
private String invoiceId; private String invoiceId;
private LocalDateTime invoiceDate; private LocalDateTime invoiceDate;
private String signImagePath;
@OneToMany(mappedBy = "invoice") @OneToMany(mappedBy = "invoice")
private List<InvoiceItem> items; private List<InvoiceItem> items;
// @ManyToOne(cascade = CascadeType.REFRESH) @ManyToOne(cascade = CascadeType.REFRESH)
// @JoinColumn(name = "user_id", nullable = false, updatable = false) @JoinColumn(name = "user_id", nullable = false, updatable = false)
private User user; private User user;
public String getInvoiceId() { public String getInvoiceId() {
@ -68,6 +73,10 @@ public class Invoice extends BaseEntity {
BigDecimal::add); BigDecimal::add);
} }
public String getSignImagePath() {
return signImagePath;
}
@Override @Override
public String toString() { public String toString() {
return "Invoice [invoiceId=" + invoiceId + ", itemscount=" return "Invoice [invoiceId=" + invoiceId + ", itemscount="

@ -21,6 +21,8 @@ public class InvoiceItem extends BaseEntity {
private LocalDateTime end; private LocalDateTime end;
@Column(nullable = true, length = 15) @Column(nullable = true, length = 15)
private String participants; private String participants;
@Column(nullable = true, length = 255)
private String description;
@ManyToOne(optional = false) @ManyToOne(optional = false)
@JoinColumn(name = "article_id", nullable = false, updatable = false) @JoinColumn(name = "article_id", nullable = false, updatable = false)
@ -33,6 +35,8 @@ public class InvoiceItem extends BaseEntity {
@Column(name = "sum_price") @Column(name = "sum_price")
private BigDecimal sumPrice; private BigDecimal sumPrice;
private BigDecimal pricePerHour;
public String getTitle() { public String getTitle() {
return getArticle().getTitle(); return getArticle().getTitle();
} }
@ -101,6 +105,14 @@ public class InvoiceItem extends BaseEntity {
return start.until(end, ChronoUnit.MINUTES); return start.until(end, ChronoUnit.MINUTES);
} }
public String getDescription() {
return description;
}
public BigDecimal getPricePerHour() {
return pricePerHour;
}
@Override @Override
public String toString() { public String toString() {
return "InvoiceItem [id=" + getId() + ", start=" + start + ", end=" return "InvoiceItem [id=" + getId() + ", start=" + start + ", end="
@ -119,28 +131,37 @@ public class InvoiceItem extends BaseEntity {
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
if (this == obj) if (this == obj) {
return true; return true;
if (obj == null) }
if (obj == null) {
return false; return false;
if (getClass() != obj.getClass()) }
if (getClass() != obj.getClass()) {
return false; return false;
}
InvoiceItem other = (InvoiceItem) obj; InvoiceItem other = (InvoiceItem) obj;
if (article == null) { if (article == null) {
if (other.article != null) if (other.article != null) {
return false; return false;
} else if (!article.equals(other.article)) }
} else if (!article.equals(other.article)) {
return false; return false;
}
if (end == null) { if (end == null) {
if (other.end != null) if (other.end != null) {
return false; return false;
} else if (!end.equals(other.end)) }
} else if (!end.equals(other.end)) {
return false; return false;
}
if (start == null) { if (start == null) {
if (other.start != null) if (other.start != null) {
return false; return false;
} else if (!start.equals(other.start)) }
} else if (!start.equals(other.start)) {
return false; return false;
}
return true; return true;
} }

@ -2,10 +2,13 @@ package de.kreth.invoice.data;
import java.util.Objects; import java.util.Objects;
import javax.persistence.CascadeType;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Inheritance; import javax.persistence.Inheritance;
import javax.persistence.InheritanceType; import javax.persistence.InheritanceType;
import javax.persistence.OneToOne;
import javax.persistence.Table; import javax.persistence.Table;
import org.keycloak.representations.AccessToken; import org.keycloak.representations.AccessToken;
@ -21,6 +24,12 @@ public class User extends BaseEntity {
private String familyName; private String familyName;
private String email; private String email;
@OneToOne(fetch = FetchType.LAZY, mappedBy = "user", cascade = CascadeType.ALL)
private UserBank bank;
@OneToOne(fetch = FetchType.LAZY, mappedBy = "user", cascade = CascadeType.ALL)
private UserAdress adress;
@Column(name = "PRINCIPAL_ID", nullable = false, length = 40, updatable = false, insertable = true, unique = true) @Column(name = "PRINCIPAL_ID", nullable = false, length = 40, updatable = false, insertable = true, unique = true)
public String getPrincipalId() { public String getPrincipalId() {
return principalId; return principalId;
@ -55,4 +64,11 @@ public class User extends BaseEntity {
return email; return email;
} }
public UserBank getBank() {
return bank;
}
public UserAdress getAdress() {
return adress;
}
} }

@ -0,0 +1,229 @@
package de.kreth.invoice.report;
import java.math.BigDecimal;
import java.nio.file.Path;
import java.time.LocalDateTime;
import java.util.Iterator;
import java.util.List;
import de.kreth.invoice.data.Invoice;
import de.kreth.invoice.data.InvoiceItem;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRDataSourceProvider;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.base.JRBaseField;
public class InvoiceReportSource implements JRDataSource, JRDataSourceProvider {
public static final String FIELD_INVOICE_NO = "INVOICE_NO";
public static final String FIELD_INVOICE_DATE = "INVOICE_DATE";
public static final String FIELD_INVOICE_SUM = "INVOICE_SUM";
public static final String FIELD_USER_PRENAME = "USER_PRENAME";
public static final String FIELD_USER_SURNAME = "USER_SURNAME";
public static final String FIELD_USER_ADRESS1 = "USER_ADRESS1";
public static final String FIELD_USER_ADRESS2 = "USER_ADRESS2";
public static final String FIELD_USER_ZIP = "USER_ZIPCODE";
public static final String FIELD_USER_CITY = "USER_CITY";
public static final String FIELD_BANK_NAME = "BANK_NAME";
public static final String FIELD_BANK_IBAN = "BANK_IBAN";
public static final String FIELD_BANK_BIC = "BANK_BIC";
public static final String FIELD_SIGNATURE_PATH = "FIELD_SIGNATURE_PATH";
public static final String FIELD_ARTICLE_TITLE = "ARTICLE_TITLE";
public static final String FIELD_ARTICLE_DESCRIPTION = "ARTICLE_DESCRIPTION";
public static final String FIELD_ARTICLE_PRICE_PER_HOUR = "ARTICLE_PRICE_PER_HOUR";
public static final String FIELD_ITEM_START = "ITEM_START";
public static final String FIELD_ITEM_END = "ITEM_END";
public static final String FIELD_ITEM_PARTICIPANTS = "FIELD_ITEM_PARTICIPANTS";
public static final String FIELD_ITEM_DURATION_MINUTES = "ITEM_DURATION_MINUTES";
public static final String FIELD_ITEM_SUM = "ITEM_SUM";
private Invoice invoice;
private Iterator<InvoiceItem> itemIterator;
private InvoiceItem currentItem;
public InvoiceReportSource() {
}
public void setInvoice(Invoice invoice) {
this.invoice = invoice;
List<InvoiceItem> items = invoice.getItems();
items.sort(this::compare);
itemIterator = items.iterator();
}
private int compare(InvoiceItem i1, InvoiceItem i2) {
return i1.getStart().compareTo(i2.getStart());
}
@Override
public boolean next() throws JRException {
if (itemIterator.hasNext() == false) {
currentItem = null;
return false;
}
currentItem = itemIterator.next();
return true;
}
@Override
public Object getFieldValue(JRField jrField) throws JRException {
switch (jrField.getName()) {
case FIELD_INVOICE_NO:
return invoice.getInvoiceId();
case FIELD_INVOICE_DATE:
return invoice.getInvoiceDate();
case FIELD_INVOICE_SUM:
return invoice.getSum();
case FIELD_USER_PRENAME:
return invoice.getUser().getGivenName();
case FIELD_USER_SURNAME:
return invoice.getUser().getFamilyName();
case FIELD_BANK_NAME:
return invoice.getUser().getBank().getBankName();
case FIELD_BANK_IBAN:
return invoice.getUser().getBank().getIban();
case FIELD_BANK_BIC:
return invoice.getUser().getBank().getBic();
case FIELD_USER_ADRESS1:
return invoice.getUser().getAdress().getAdress1();
case FIELD_USER_ADRESS2:
return invoice.getUser().getAdress().getAdress2();
case FIELD_USER_ZIP:
return invoice.getUser().getAdress().getZip();
case FIELD_USER_CITY:
return invoice.getUser().getAdress().getCity();
case FIELD_SIGNATURE_PATH:
return invoice.getSignImagePath();
default:
break;
}
if (currentItem != null) {
switch (jrField.getName()) {
case FIELD_ARTICLE_TITLE:
return currentItem.getTitle();
case FIELD_ARTICLE_DESCRIPTION:
return currentItem.getDescription();
case FIELD_ARTICLE_PRICE_PER_HOUR:
return currentItem.getPricePerHour();
case FIELD_ITEM_START:
return currentItem.getStart();
case FIELD_ITEM_END:
return currentItem.getEnd();
case FIELD_ITEM_DURATION_MINUTES:
return currentItem.getDurationInMinutes();
case FIELD_ITEM_SUM:
return currentItem.getSumPrice();
case FIELD_ITEM_PARTICIPANTS:
return currentItem.getParticipants();
default:
break;
}
}
return null;
}
public static JRDataSource getDataSource() {
return new InvoiceReportSource();
}
@Override
public boolean supportsGetFieldsOperation() {
return true;
}
@Override
public JRField[] getFields(JasperReport report)
throws JRException, UnsupportedOperationException {
JRField[] fields = {
new InternalField(FIELD_INVOICE_NO, "Invoice No", String.class),
new InternalField(FIELD_INVOICE_DATE, "Invoice date",
LocalDateTime.class),
new InternalField(FIELD_INVOICE_SUM, "Invoice sum",
BigDecimal.class),
new InternalField(FIELD_USER_PRENAME, "User Prename",
String.class),
new InternalField(FIELD_USER_SURNAME, "User Surname",
String.class),
new InternalField(FIELD_USER_ADRESS1, "User Adress1",
String.class),
new InternalField(FIELD_USER_ADRESS2, "User Âdress2",
String.class),
new InternalField(FIELD_USER_ZIP, "User Zipcode", String.class),
new InternalField(FIELD_USER_CITY, "User City", String.class),
new InternalField(FIELD_BANK_NAME, "Bank Name", String.class),
new InternalField(FIELD_BANK_IBAN, "Bank IBAN", String.class),
new InternalField(FIELD_BANK_BIC, "Bank Bic", String.class),
new InternalField(FIELD_ARTICLE_TITLE, "Article Title",
String.class),
new InternalField(FIELD_ARTICLE_DESCRIPTION,
"Article Description", String.class),
new InternalField(FIELD_ARTICLE_PRICE_PER_HOUR,
"Article Price per Hour", BigDecimal.class),
new InternalField(FIELD_ITEM_START, "Item Start",
LocalDateTime.class),
new InternalField(FIELD_ITEM_END, "Item End",
LocalDateTime.class),
new InternalField(FIELD_ITEM_DURATION_MINUTES,
"Item Duration in Minutes", Long.class),
new InternalField(FIELD_ITEM_PARTICIPANTS, "Item Participants",
String.class),
new InternalField(FIELD_ITEM_SUM, "Item Sum",
BigDecimal.class),
new InternalField(FIELD_SIGNATURE_PATH, "Signature Image Path",
Path.class) };
return fields;
}
@Override
public JRDataSource create(JasperReport report) throws JRException {
return this;
}
@Override
public void dispose(JRDataSource dataSource) throws JRException {
}
static class InternalField extends JRBaseField {
private static final long serialVersionUID = -495777796541981790L;
InternalField(String name, String desc, Class<?> clazz) {
this.name = name;
this.description = desc;
this.valueClass = clazz;
this.valueClassName = clazz.getName();
}
}
}

@ -0,0 +1,59 @@
package de.kreth.invoice.report;
import java.io.File;
import java.io.FileFilter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Objects;
import org.apache.commons.io.FilenameUtils;
import de.kreth.invoice.data.User;
public class Signature {
private final User user;
public Signature(User user) {
super();
this.user = Objects.requireNonNull(user);
}
public OutputStream createOutputStream(String fileName) throws IOException {
File dir = new File("images");
dir.mkdirs();
return new FileOutputStream(new File(dir, user.getId() + "." + FilenameUtils.getExtension(fileName)));
}
public boolean isSignatureImageExists() {
File[] listFiles = new File("images").listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().startsWith(user.getId() + ".");
}
});
return listFiles != null && listFiles.length > 0;
}
/**
* Check with {@link #isSignatureImageExists()} existence first.
*
* @return
* @throws NullPointerException if image does not exist.
*/
public File getSignatureUrl() {
File[] listFiles = new File("images").listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().startsWith(user.getId() + ".");
}
});
if (listFiles == null || listFiles.length == 0) {
throw new NullPointerException("Image file does not exist");
}
return listFiles[0];
}
}

@ -49,7 +49,7 @@ public class UserManager {
User user = new User(); User user = new User();
AccessToken accessToken = getAccessToken(); AccessToken accessToken = getAccessToken();
user.setPrincipal(accessToken); user.setPrincipal(accessToken);
return user; return save(user);
} }
} }

@ -0,0 +1,227 @@
package de.kreth.invoice.views;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UncheckedIOException;
import java.util.Objects;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dialog.Dialog;
import com.vaadin.flow.component.html.Hr;
import com.vaadin.flow.component.html.Image;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.component.upload.Upload;
import com.vaadin.flow.data.binder.Binder;
import com.vaadin.flow.data.binder.BinderValidationStatus;
import com.vaadin.flow.server.AbstractStreamResource;
import com.vaadin.flow.server.InputStreamFactory;
import com.vaadin.flow.server.StreamResource;
import de.kreth.invoice.data.Adress;
import de.kreth.invoice.data.User;
import de.kreth.invoice.data.UserAdress;
import de.kreth.invoice.data.UserBank;
import de.kreth.invoice.persistence.UserAdressRepository;
import de.kreth.invoice.persistence.UserBankRepository;
import de.kreth.invoice.report.Signature;
public class UserDetailsDialog extends Dialog {
private static final long serialVersionUID = -6255487997073609068L;
private Logger logger = LoggerFactory.getLogger(getClass());
private final Binder<UserBank> bankBinder = new Binder<>();
private final Binder<UserAdress> adressBinder = new Binder<>();
private final TextField loginName;
private final TextField prename;
private final TextField surname;
private final TextField bankName;
private final TextField iban;
private final TextField bic;
private final TextField adress1;
private final TextField adress2;
private final TextField zipCode;
private final TextField city;
private final Button okButton;
private final Image signatureImage;
private final UserBankRepository bankRepository;
private final UserAdressRepository adressRepository;
private User user;
private UserBank bank;
private UserAdress adress;
public UserDetailsDialog(UserBankRepository bankRepository, UserAdressRepository adressRepository) {
this.bankRepository = bankRepository;
this.adressRepository = adressRepository;
loginName = new TextField();
loginName.setLabel("Login Name");
loginName.setEnabled(false);
prename = new TextField();
prename.setLabel("Vorname");
prename.setEnabled(false);
surname = new TextField();
surname.setLabel("Nachname");
bankName = new TextField();
bankName.setLabel("Name der Bank");
bankBinder.forField(bankName)
.asRequired("Der BankName darf nicht leer sein.")
.bind(UserBank::getBankName, UserBank::setBankName);
iban = new TextField();
iban.setLabel("IBAN");
bankBinder.forField(iban)
.asRequired("Die IBAN darf nicht leer sein.")
.bind(UserBank::getIban, UserBank::setIban);
bic = new TextField();
bic.setLabel("BIC");
bankBinder.forField(bic).bind(UserBank::getBic, UserBank::setBic);
adress1 = new TextField();
adress1.setLabel("Straße");
adressBinder.forField(adress1)
.asRequired("Die Straße muss angegeben sein.")
.bind(Adress::getAdress1, Adress::setAdress1);
adress2 = new TextField();
adress2.setLabel("Adresszusatz");
adressBinder.forField(adress2)
.bind(Adress::getAdress2, Adress::setAdress2);
zipCode = new TextField();
zipCode.setLabel("Postleitzahl");
adressBinder.forField(zipCode)
.asRequired("Die Postleitzahl muss angegeben sein.")
.bind(Adress::getZip, Adress::setZip);
city = new TextField();
city.setLabel("Ort");
adressBinder.forField(city)
.asRequired("Der Ort muss angegeben sein.")
.bind(Adress::getCity, Adress::setCity);
signatureImage = new Image();
signatureImage.setWidth("192px");
signatureImage.setHeight("62px");
signatureImage.setAlt("Keine Unterschrift konfiguriert");
Upload upload = new Upload(this::receiveUpload);
upload.addFinishedListener(ev -> updateSignatureImage());
VerticalLayout layout = new VerticalLayout();
layout.add(loginName, prename, surname);
layout.add(new Hr());
layout.add(bankName, iban, bic);
layout.add(new Hr());
HorizontalLayout cityLayout = new HorizontalLayout();
cityLayout.add(zipCode, city);
layout.add(adress1, adress2, cityLayout, new HorizontalLayout(signatureImage, upload));
okButton = new Button("OK", ev -> {
BinderValidationStatus<UserBank> bankValidation = bankBinder.validate();
BinderValidationStatus<UserAdress> adressValidation = adressBinder.validate();
if (bankValidation.isOk() && adressValidation.isOk()) {
close();
}
});
Button cancel = new Button("Abbrechen", ev -> close());
HorizontalLayout buttons = new HorizontalLayout();
buttons.add(okButton, cancel);
layout.add(buttons);
add(layout);
}
private OutputStream receiveUpload(String filename, String mimeType) {
Signature signature = new Signature(user);
try {
return signature.createOutputStream(filename);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
//
// public Registration addOkClickListener(ClickListener listener) {
// return okButton.addClickListener(listener);
// }
public void setUser(User user) {
this.user = Objects.requireNonNull(user);
this.bank = bankRepository.findByUser(user);
this.adress = adressRepository.findByUser(user);
if (this.bank == null) {
this.bank = new UserBank();
}
if (this.adress == null) {
this.adress = new UserAdress();
}
updateSignatureImage();
}
private void updateSignatureImage() {
if (user != null) {
Signature signature = new Signature(user);
if (signature.isSignatureImageExists()) {
File signatureUrl = signature.getSignatureUrl();
logger.info("Showing signature: {}", signatureUrl);
StreamResource resource = new StreamResource(getAriaLabelString(), new InputStreamFactory() {
private static final long serialVersionUID = 1L;
@Override
public InputStream createInputStream() {
try {
return new FileInputStream(signatureUrl);
} catch (FileNotFoundException e) {
throw new UncheckedIOException(e);
}
}
});
signatureImage.setSrc(resource);
} else {
signatureImage.setSrc((AbstractStreamResource) null);
}
}
}
public User getUser() {
return user;
}
}

@ -0,0 +1,586 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="mtv_gross_buchholz" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ba0e72ff-086d-4045-a69c-ff65b323c201">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<property name="com.jaspersoft.studio.property.dataset.dialog.DatasetDialog.sash.w1" value="380"/>
<property name="com.jaspersoft.studio.property.dataset.dialog.DatasetDialog.sash.w2" value="606"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="INVOICE_NO" class="java.lang.String">
<fieldDescription><![CDATA[Invoice No]]></fieldDescription>
</field>
<field name="INVOICE_DATE" class="java.time.LocalDateTime">
<fieldDescription><![CDATA[Invoice date]]></fieldDescription>
</field>
<field name="INVOICE_SUM" class="java.math.BigDecimal">
<fieldDescription><![CDATA[Invoice sum]]></fieldDescription>
</field>
<field name="USER_PRENAME" class="java.lang.String">
<fieldDescription><![CDATA[User Prename]]></fieldDescription>
</field>
<field name="USER_SURNAME" class="java.lang.String">
<fieldDescription><![CDATA[User Surname]]></fieldDescription>
</field>
<field name="ARTICLE_TITLE" class="java.lang.String">
<fieldDescription><![CDATA[Article Title]]></fieldDescription>
</field>
<field name="ARTICLE_DESCRIPTION" class="java.lang.String">
<fieldDescription><![CDATA[Article Description]]></fieldDescription>
</field>
<field name="ARTICLE_PRICE_PER_HOUR" class="java.math.BigDecimal">
<fieldDescription><![CDATA[Article Price per Hour]]></fieldDescription>
</field>
<field name="ITEM_START" class="java.time.LocalDateTime">
<fieldDescription><![CDATA[Item Start]]></fieldDescription>
</field>
<field name="ITEM_END" class="java.time.LocalDateTime">
<fieldDescription><![CDATA[Item End]]></fieldDescription>
</field>
<field name="ITEM_DURATION_MINUTES" class="java.lang.Long">
<fieldDescription><![CDATA[Item Duration in Minutes]]></fieldDescription>
</field>
<field name="ITEM_SUM" class="java.math.BigDecimal">
<fieldDescription><![CDATA[Item Sum]]></fieldDescription>
</field>
<field name="USER_ADRESS1" class="java.lang.String"/>
<field name="USER_ADRESS2" class="java.lang.String"/>
<field name="USER_ZIPCODE" class="java.lang.String"/>
<field name="USER_CITY" class="java.lang.String"/>
<field name="BANK_NAME" class="java.lang.String"/>
<field name="BANK_BIC" class="java.lang.String"/>
<field name="BANK_IBAN" class="java.lang.String"/>
<field name="FIELD_ITEM_PARTICIPANTS" class="java.lang.String"/>
<field name="FIELD_SIGNATURE_PATH" class="java.nio.file.Path">
<fieldDescription><![CDATA[Signature Image Path]]></fieldDescription>
</field>
<variable name="ITEM_SUM1" class="java.lang.Integer" calculation="Count">
<variableExpression><![CDATA[$F{ITEM_SUM}]]></variableExpression>
</variable>
<variable name="ITEM_SUM2" class="java.math.BigDecimal" calculation="Sum">
<variableExpression><![CDATA[$F{ITEM_SUM}]]></variableExpression>
</variable>
<variable name="DURATION" class="java.lang.Double" calculation="Sum">
<variableExpression><![CDATA[$F{ITEM_DURATION_MINUTES}.doubleValue()/60.0]]></variableExpression>
</variable>
<variable name="DURATION_PER_ITEM" class="java.lang.Double" resetType="Column">
<variableExpression><![CDATA[$F{ITEM_DURATION_MINUTES}.doubleValue()/60.0]]></variableExpression>
</variable>
<group name="ARTICLE_TITLE">
<groupExpression><![CDATA[$F{ARTICLE_TITLE}]]></groupExpression>
</group>
<group name="ARTICLE_DESCRIPTION">
<groupExpression><![CDATA[$F{ARTICLE_DESCRIPTION}]]></groupExpression>
</group>
<group name="ARTICLE_PRICE_PER_HOUR">
<groupExpression><![CDATA[$F{ARTICLE_PRICE_PER_HOUR}]]></groupExpression>
</group>
<group name="ITEM_START">
<groupExpression><![CDATA[$F{ITEM_START}]]></groupExpression>
</group>
<group name="ITEM_END">
<groupExpression><![CDATA[$F{ITEM_END}]]></groupExpression>
</group>
<group name="ITEM_DURATION_MINUTES">
<groupExpression><![CDATA[$F{ITEM_DURATION_MINUTES}]]></groupExpression>
</group>
<group name="ITEM_SUM">
<groupExpression><![CDATA[$F{ITEM_SUM}]]></groupExpression>
</group>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="89" splitType="Stretch">
<staticText>
<reportElement x="0" y="25" width="556" height="20" uuid="38e32426-ceb9-40ee-af7a-ab84b566d96b"/>
<textElement textAlignment="Center">
<font fontName="Arial" size="12" isBold="false"/>
</textElement>
<text><![CDATA[MTV Groß-Buchholz von 1898 e.V.]]></text>
</staticText>
<staticText>
<reportElement x="0" y="37" width="556" height="15" uuid="88043ee4-db2c-43ca-96f2-fa078918d134">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement textAlignment="Center">
<font size="9"/>
</textElement>
<text><![CDATA[Rotekreuzstraße 25 - 30627 Hannover - Tel.: 0511/57 11 86 - Fax: 0511/57 11 61]]></text>
</staticText>
<staticText>
<reportElement x="376" y="0" width="103" height="12" uuid="7927de72-6eab-475d-821b-5267f0fea03e">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement verticalAlignment="Middle">
<font size="8"/>
</textElement>
<text><![CDATA[Lfd Nr. Rechnungsbuch:
]]></text>
</staticText>
<staticText>
<reportElement x="376" y="12" width="103" height="13" uuid="85798559-a680-4640-a1c4-2283b1304317"/>
<textElement verticalAlignment="Middle">
<font size="8"/>
</textElement>
<text><![CDATA[Datum Rechnungsbuch:
]]></text>
</staticText>
<line>
<reportElement x="474" y="8" width="81" height="1" uuid="b5037544-4ab0-4b5c-a92d-4191bba0a0b1">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
</line>
<line>
<reportElement x="474" y="20" width="81" height="1" uuid="788013ff-1f4a-4420-b4b6-3dd9e405eea2">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
</line>
<staticText>
<reportElement x="3" y="73" width="550" height="14" uuid="195e05ca-09bb-4890-8444-6cba59da2388">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="Arial" size="6"/>
</textElement>
<text><![CDATA[(o. Übungsleiter-Lizenz)]]></text>
</staticText>
<staticText>
<reportElement x="0" y="48" width="556" height="25" uuid="762705d5-be9c-476f-b2ff-dc07cab925f9"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="16" isUnderline="true"/>
</textElement>
<text><![CDATA[Monatsabrechnung Übungsleitervergütung
]]></text>
</staticText>
</band>
</title>
<pageHeader>
<band height="110" splitType="Stretch">
<line>
<reportElement x="3" y="-2" width="550" height="1" uuid="0da2201f-3619-4a24-977a-eccb4f05b6f9">
<property name="local_mesure_unitheight" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
</line>
<staticText>
<reportElement x="29" y="20" width="170" height="12" uuid="db1896f4-7c34-4f30-91da-ca8155c4528c">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement textAlignment="Center">
<font size="8"/>
</textElement>
<text><![CDATA[Vor- u. Zuname des Übungsleiters/ der Übungsleiterin]]></text>
</staticText>
<textField>
<reportElement x="29" y="6" width="170" height="13" uuid="8363dd3c-d88b-4f6c-ba0b-4ef4b974f43e"/>
<box>
<pen lineWidth="0.0"/>
<bottomPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{USER_PRENAME}+$F{USER_SURNAME}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="250" y="19" width="300" height="12" uuid="c1efbd82-4ef0-48fd-92cd-902880a56ab1">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement textAlignment="Center">
<font size="8"/>
</textElement>
<text><![CDATA[Anschrift]]></text>
</staticText>
<textField>
<reportElement x="250" y="6" width="300" height="13" uuid="3c457055-6dc3-47ed-8cff-3ff8ffec0a53"/>
<box>
<pen lineWidth="0.0"/>
<bottomPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{USER_ADRESS1} + ", " + $F{USER_ZIPCODE} + " " + $F{USER_CITY}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="7" y="52" width="170" height="15" uuid="90c35b76-5cae-483a-a831-a8b5e635eda3">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.x" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<box topPadding="1">
<topPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Top">
<font size="8"/>
</textElement>
<text><![CDATA[Bankverbindung]]></text>
</staticText>
<textField>
<reportElement x="7" y="38" width="170" height="15" uuid="0966a793-6dd3-4438-8482-1702dfe5b1e9">
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{BANK_NAME}]]></textFieldExpression>
</textField>
<staticText>
<reportElement positionType="Float" x="192" y="52" width="170" height="15" uuid="c5ad223c-9226-4b57-9126-d177d16e461e">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.x" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<box topPadding="1">
<topPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Top">
<font size="8"/>
</textElement>
<text><![CDATA[IBAN]]></text>
</staticText>
<textField>
<reportElement positionType="Float" x="192" y="37" width="170" height="15" uuid="1065c5a7-69b5-4f45-86a0-011a6901df70">
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{BANK_IBAN}]]></textFieldExpression>
</textField>
<staticText>
<reportElement positionType="Float" x="381" y="52" width="170" height="15" uuid="95383888-5270-4792-8427-906608b60200">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.x" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<box topPadding="1">
<topPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Top">
<font size="8"/>
</textElement>
<text><![CDATA[BIC]]></text>
</staticText>
<textField>
<reportElement positionType="Float" x="381" y="37" width="170" height="15" uuid="81c06fa2-8a43-43c0-9cfb-99ae5ba347ab">
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{BANK_BIC}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="64" y="72" width="135" height="15" uuid="87ccf811-b309-4bc1-a3e9-96249fa1b372">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<box>
<bottomPen lineWidth="1.0"/>
</box>
<textElement>
<font isBold="true"/>
</textElement>
<text><![CDATA[Abrechnung für Monat: ]]></text>
</staticText>
<textField pattern="MMMM yyyy">
<reportElement x="199" y="72" width="154" height="15" uuid="94289187-33c3-4d31-9d8f-aad1f6f3a809">
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement>
<font isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{ITEM_START}.format( java.time.format.DateTimeFormatter.ofPattern("MMMM uuuu") )]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="119" y="89" width="170" height="15" uuid="0cf5ebb2-49f1-4e41-8ab9-ea99cc0226c1">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Die Vergütung je Stunde beträgt: ]]></text>
</staticText>
<textField pattern="####0.00 EUR">
<reportElement x="289" y="89" width="64" height="15" uuid="db6a26fc-6e5a-4907-8a99-5da571c58328">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<textElement verticalAlignment="Middle">
<font isUnderline="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{ARTICLE_PRICE_PER_HOUR}]]></textFieldExpression>
</textField>
</band>
</pageHeader>
<columnHeader>
<band height="24" splitType="Stretch">
<staticText>
<reportElement x="4" y="0" width="66" height="24" uuid="a4b7f758-ac69-4638-8cb8-ef586cbabbe6">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="aefb51e0-3482-4d43-8586-b00fd9c4bed1"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Tag]]></text>
</staticText>
<staticText>
<reportElement x="70" y="0" width="80" height="24" uuid="ddc1ec32-6d07-4e00-a7ce-5c86b814dfec">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="d61cd2ce-beaa-4a89-b660-f95abf03ca29"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Uhrzeit]]></text>
</staticText>
<staticText>
<reportElement x="495" y="0" width="60" height="24" uuid="28555860-eb98-42b1-8c83-b6448cfc2a94">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="1c7835af-a8af-4c26-8ccb-26be8172ce29"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Betrag]]></text>
</staticText>
<staticText>
<reportElement x="442" y="0" width="53" height="24" uuid="f9e76a5e-4764-4ba5-86c7-00bb2dd5df5c">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="ffb2463c-981a-4639-a49a-a237aebf96ad"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Stunden
-zahl]]></text>
</staticText>
<staticText>
<reportElement x="151" y="0" width="90" height="24" uuid="81eaafcc-1ba3-4ba8-aac7-8b95ae9c1e32"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Art
des Unterrichts]]></text>
</staticText>
<staticText>
<reportElement x="241" y="0" width="88" height="24" uuid="fefd07ed-faa1-4c4d-b0d5-04eb64bb1602"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Ort]]></text>
</staticText>
<staticText>
<reportElement x="329" y="0" width="112" height="24" uuid="0bb3541b-0a40-40c6-8727-726dfc6082c3">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="7141045b-35fa-4d89-bd0a-5dff9fe6e263"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Teilnehmerzahl]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="15" splitType="Stretch">
<textField>
<reportElement x="4" y="0" width="66" height="15" uuid="4750ef82-cbe7-454b-942e-b70954e8a3b2">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="aefb51e0-3482-4d43-8586-b00fd9c4bed1"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{ITEM_START}.format( java.time.format.DateTimeFormatter.ofPattern("dd.MM.uuuu") )]]></textFieldExpression>
</textField>
<textField>
<reportElement x="70" y="0" width="80" height="15" uuid="c204f2f3-cf50-48bb-8461-0ecc56a45f57">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="d61cd2ce-beaa-4a89-b660-f95abf03ca29"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{ITEM_START}.format( java.time.format.DateTimeFormatter.ofPattern("HH:mm") ) + " - " + $F{ITEM_END}.format( java.time.format.DateTimeFormatter.ofPattern("HH:mm") )]]></textFieldExpression>
</textField>
<textField pattern="#,##0.00¤;#,##0.00- ¤">
<reportElement x="495" y="0" width="60" height="15" uuid="ec2a503b-4264-4ed4-903a-86d60c3a2e12">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="1c7835af-a8af-4c26-8ccb-26be8172ce29"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{ITEM_SUM}]]></textFieldExpression>
</textField>
<textField pattern="#,##0.0##;(#,##0.0##-)">
<reportElement x="442" y="0" width="53" height="15" uuid="2e105e00-0a68-4a95-a6a5-c416584db2da">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="ffb2463c-981a-4639-a49a-a237aebf96ad"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$V{DURATION_PER_ITEM}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="151" y="0" width="90" height="15" uuid="7593911e-405a-49c4-89bc-4da3a4c53e7c"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="false"/>
</textElement>
<text><![CDATA[Trampolinturnen]]></text>
</staticText>
<staticText>
<reportElement x="241" y="0" width="88" height="15" uuid="13055bef-6718-4c0d-8060-dfb1f307654e"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="false"/>
</textElement>
<text><![CDATA[IGS Roderbruch]]></text>
</staticText>
<textField>
<reportElement x="329" y="0" width="113" height="15" uuid="f92bf1eb-4dc0-4c56-b478-1559caa3d7e6">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="7141045b-35fa-4d89-bd0a-5dff9fe6e263"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{FIELD_ITEM_PARTICIPANTS}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="32" splitType="Stretch">
<textField pattern="#,##0.00¤;#,##0.00- ¤">
<reportElement x="495" y="4" width="60" height="14" uuid="97cc81ab-b30d-4bec-ac00-894f07714615"/>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{INVOICE_SUM}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="58" y="4" width="100" height="14" uuid="0c3fb889-83ef-4f37-9095-5a4100bbf7b7"/>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA[$V{ITEM_SUM1}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="158" y="4" width="54" height="14" uuid="884d43d5-2b34-40ee-bb6c-17f682a5d253"/>
<text><![CDATA[ Einheiten]]></text>
</staticText>
<textField pattern="#,##0.0##;(#,##0.0##-)">
<reportElement x="212" y="4" width="61" height="14" uuid="4ecef20c-3185-4a9e-bc43-f21206745b19">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="ffb2463c-981a-4639-a49a-a237aebf96ad"/>
</reportElement>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA[$V{DURATION}]]></textFieldExpression>
</textField>
<staticText>
<reportElement stretchType="ContainerHeight" x="274" y="4" width="50" height="14" uuid="f6e94973-9423-4576-8484-a966de108b3e"/>
<text><![CDATA[Stunden]]></text>
</staticText>
<staticText>
<reportElement x="428" y="4" width="66" height="14" uuid="2ac20436-92e6-4078-9d21-b2f287a3dc91"/>
<textElement textAlignment="Right"/>
<text><![CDATA[Summe:]]></text>
</staticText>
</band>
</columnFooter>
<pageFooter>
<band height="83" splitType="Stretch">
<staticText>
<reportElement x="7" y="55" width="161" height="20" uuid="8deca167-570b-4feb-b3bb-23af38af502f"/>
<box>
<topPen lineWidth="1.25"/>
</box>
<text><![CDATA[Unterschrift Abt.Leiter/In
]]></text>
</staticText>
<staticText>
<reportElement x="359" y="55" width="185" height="20" uuid="eaea1eea-e4b7-438b-ba8f-37875ecd30e6"/>
<box>
<topPen lineWidth="1.25"/>
</box>
<text><![CDATA[Unterschrift Übungsleiter/In
]]></text>
</staticText>
<image>
<reportElement x="353" y="0" width="197" height="55" printWhenGroupChanges="ITEM_DURATION_MINUTES" uuid="dd399aee-21eb-498a-bf73-8347ca5f97f6">
<printWhenExpression><![CDATA[$F{FIELD_SIGNATURE_PATH}!=null]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA[$F{FIELD_SIGNATURE_PATH}.toString()]]></imageExpression>
</image>
</band>
</pageFooter>
</jasperReport>

@ -0,0 +1,782 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="mtv_gross_buchholz" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ba0e72ff-086d-4045-a69c-ff65b323c201">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Invoice2"/>
<property name="com.jaspersoft.studio.property.dataset.dialog.DatasetDialog.sash.w1" value="380"/>
<property name="com.jaspersoft.studio.property.dataset.dialog.DatasetDialog.sash.w2" value="606"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="INVOICE_NO" class="java.lang.String">
<fieldDescription><![CDATA[Invoice No]]></fieldDescription>
</field>
<field name="INVOICE_DATE" class="java.time.LocalDateTime">
<fieldDescription><![CDATA[Invoice date]]></fieldDescription>
</field>
<field name="INVOICE_SUM" class="java.math.BigDecimal">
<fieldDescription><![CDATA[Invoice sum]]></fieldDescription>
</field>
<field name="USER_PRENAME" class="java.lang.String">
<fieldDescription><![CDATA[User Prename]]></fieldDescription>
</field>
<field name="USER_SURNAME" class="java.lang.String">
<fieldDescription><![CDATA[User Surname]]></fieldDescription>
</field>
<field name="ARTICLE_TITLE" class="java.lang.String">
<fieldDescription><![CDATA[Article Title]]></fieldDescription>
</field>
<field name="ARTICLE_DESCRIPTION" class="java.lang.String">
<fieldDescription><![CDATA[Article Description]]></fieldDescription>
</field>
<field name="ARTICLE_PRICE_PER_HOUR" class="java.math.BigDecimal">
<fieldDescription><![CDATA[Article Price per Hour]]></fieldDescription>
</field>
<field name="ITEM_START" class="java.time.LocalDateTime">
<fieldDescription><![CDATA[Item Start]]></fieldDescription>
</field>
<field name="ITEM_END" class="java.time.LocalDateTime">
<fieldDescription><![CDATA[Item End]]></fieldDescription>
</field>
<field name="ITEM_DURATION_MINUTES" class="java.lang.Long">
<fieldDescription><![CDATA[Item Duration in Minutes]]></fieldDescription>
</field>
<field name="ITEM_SUM" class="java.math.BigDecimal">
<fieldDescription><![CDATA[Item Sum]]></fieldDescription>
</field>
<field name="USER_ADRESS1" class="java.lang.String"/>
<field name="USER_ADRESS2" class="java.lang.String"/>
<field name="USER_ZIPCODE" class="java.lang.String"/>
<field name="USER_CITY" class="java.lang.String"/>
<field name="BANK_NAME" class="java.lang.String"/>
<field name="BANK_BIC" class="java.lang.String"/>
<field name="BANK_IBAN" class="java.lang.String"/>
<field name="FIELD_ITEM_PARTICIPANTS" class="java.lang.String"/>
<field name="FIELD_SIGNATURE_PATH" class="java.nio.file.Path">
<fieldDescription><![CDATA[Signature Image Path]]></fieldDescription>
</field>
<variable name="ITEM_SUM1" class="java.lang.Integer" calculation="Count">
<variableExpression><![CDATA[$F{ITEM_SUM}]]></variableExpression>
</variable>
<variable name="ITEM_SUM2" class="java.math.BigDecimal" calculation="Sum">
<variableExpression><![CDATA[$F{ITEM_SUM}]]></variableExpression>
</variable>
<variable name="DURATION" class="java.lang.Double" calculation="Sum">
<variableExpression><![CDATA[$F{ITEM_DURATION_MINUTES}.doubleValue()/60.0]]></variableExpression>
</variable>
<variable name="DURATION_PER_ITEM" class="java.lang.Double" resetType="Column">
<variableExpression><![CDATA[$F{ITEM_DURATION_MINUTES}.doubleValue()/60.0]]></variableExpression>
</variable>
<group name="ARTICLE_TITLE">
<groupExpression><![CDATA[$F{ARTICLE_TITLE}]]></groupExpression>
</group>
<group name="ARTICLE_DESCRIPTION">
<groupExpression><![CDATA[$F{ARTICLE_DESCRIPTION}]]></groupExpression>
</group>
<group name="ARTICLE_PRICE_PER_HOUR">
<groupExpression><![CDATA[$F{ARTICLE_PRICE_PER_HOUR}]]></groupExpression>
</group>
<group name="ITEM_START">
<groupExpression><![CDATA[$F{ITEM_START}]]></groupExpression>
</group>
<group name="ITEM_END">
<groupExpression><![CDATA[$F{ITEM_END}]]></groupExpression>
</group>
<group name="ITEM_DURATION_MINUTES">
<groupExpression><![CDATA[$F{ITEM_DURATION_MINUTES}]]></groupExpression>
</group>
<group name="ITEM_SUM">
<groupExpression><![CDATA[$F{ITEM_SUM}]]></groupExpression>
</group>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="89" splitType="Stretch">
<staticText>
<reportElement x="0" y="25" width="556" height="15" uuid="38e32426-ceb9-40ee-af7a-ab84b566d96b"/>
<textElement textAlignment="Center">
<font fontName="Arial" size="12" isBold="false"/>
</textElement>
<text><![CDATA[MTV Groß-Buchholz von 1898 e.V.]]></text>
</staticText>
<staticText>
<reportElement x="0" y="37" width="556" height="15" uuid="88043ee4-db2c-43ca-96f2-fa078918d134">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="9"/>
</textElement>
<text><![CDATA[Rotekreuzstraße 25 - 30627 Hannover]]></text>
</staticText>
<staticText>
<reportElement x="376" y="0" width="103" height="10" uuid="7927de72-6eab-475d-821b-5267f0fea03e">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement verticalAlignment="Middle">
<font size="8"/>
</textElement>
<text><![CDATA[Lfd Nr. Rechnungsbuch:
]]></text>
</staticText>
<staticText>
<reportElement x="376" y="12" width="103" height="10" uuid="85798559-a680-4640-a1c4-2283b1304317"/>
<textElement verticalAlignment="Middle">
<font size="8"/>
</textElement>
<text><![CDATA[Datum Rechnungsbuch:
]]></text>
</staticText>
<line>
<reportElement x="474" y="8" width="81" height="1" uuid="b5037544-4ab0-4b5c-a92d-4191bba0a0b1">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
</line>
<line>
<reportElement x="474" y="20" width="81" height="1" uuid="788013ff-1f4a-4420-b4b6-3dd9e405eea2">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
</line>
<staticText>
<reportElement x="3" y="78" width="550" height="10" uuid="195e05ca-09bb-4890-8444-6cba59da2388">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="Arial" size="6"/>
</textElement>
<text><![CDATA[zur Inanspruchnahme eines städtischen Zuschusses zu den Personalkosten von Sportübungsleitern]]></text>
</staticText>
<staticText>
<reportElement x="0" y="72" width="550" height="10" uuid="6e3eed4f-1c4d-4383-a358-c58f73d4d103">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="Arial" size="6"/>
</textElement>
<text><![CDATA[zur Vorlage bei der Landeshauptstadt Hannover]]></text>
</staticText>
<staticText>
<reportElement x="0" y="52" width="556" height="21" uuid="762705d5-be9c-476f-b2ff-dc07cab925f9"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="16" isUnderline="true"/>
</textElement>
<text><![CDATA[Monatsabrechnung Übungsleitervergütung
]]></text>
</staticText>
</band>
</title>
<pageHeader>
<band height="110" splitType="Stretch">
<line>
<reportElement x="3" y="-2" width="550" height="1" uuid="0da2201f-3619-4a24-977a-eccb4f05b6f9">
<property name="local_mesure_unitheight" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
</line>
<staticText>
<reportElement x="29" y="20" width="170" height="12" uuid="db1896f4-7c34-4f30-91da-ca8155c4528c">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement textAlignment="Center">
<font size="8"/>
</textElement>
<text><![CDATA[Vor- u. Zuname des Übungsleiters/ der Übungsleiterin]]></text>
</staticText>
<textField>
<reportElement x="29" y="6" width="170" height="13" uuid="8363dd3c-d88b-4f6c-ba0b-4ef4b974f43e"/>
<box>
<pen lineWidth="0.0"/>
<bottomPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{USER_PRENAME}+$F{USER_SURNAME}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="250" y="19" width="300" height="12" uuid="c1efbd82-4ef0-48fd-92cd-902880a56ab1">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement textAlignment="Center">
<font size="8"/>
</textElement>
<text><![CDATA[Anschrift]]></text>
</staticText>
<textField>
<reportElement x="250" y="6" width="300" height="13" uuid="3c457055-6dc3-47ed-8cff-3ff8ffec0a53"/>
<box>
<pen lineWidth="0.0"/>
<bottomPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{USER_ADRESS1} + ", " + $F{USER_ZIPCODE} + " " + $F{USER_CITY}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="7" y="52" width="170" height="15" uuid="90c35b76-5cae-483a-a831-a8b5e635eda3">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.x" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<box topPadding="1">
<topPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Top">
<font size="8"/>
</textElement>
<text><![CDATA[Bankverbindung]]></text>
</staticText>
<textField>
<reportElement x="7" y="38" width="170" height="15" uuid="0966a793-6dd3-4438-8482-1702dfe5b1e9">
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{BANK_NAME}]]></textFieldExpression>
</textField>
<staticText>
<reportElement positionType="Float" x="192" y="52" width="170" height="15" uuid="c5ad223c-9226-4b57-9126-d177d16e461e">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.x" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<box topPadding="1">
<topPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Top">
<font size="8"/>
</textElement>
<text><![CDATA[IBAN]]></text>
</staticText>
<textField>
<reportElement positionType="Float" x="192" y="37" width="170" height="15" uuid="1065c5a7-69b5-4f45-86a0-011a6901df70">
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{BANK_IBAN}]]></textFieldExpression>
</textField>
<staticText>
<reportElement positionType="Float" x="381" y="52" width="170" height="15" uuid="95383888-5270-4792-8427-906608b60200">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.x" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<box topPadding="1">
<topPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Top">
<font size="8"/>
</textElement>
<text><![CDATA[BIC]]></text>
</staticText>
<textField>
<reportElement positionType="Float" x="381" y="37" width="170" height="15" uuid="81c06fa2-8a43-43c0-9cfb-99ae5ba347ab">
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{BANK_BIC}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="64" y="72" width="135" height="15" uuid="87ccf811-b309-4bc1-a3e9-96249fa1b372">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<box>
<bottomPen lineWidth="1.0"/>
</box>
<textElement>
<font isBold="true"/>
</textElement>
<text><![CDATA[Abrechnung für Monat: ]]></text>
</staticText>
<textField pattern="MMMM yyyy">
<reportElement x="199" y="72" width="154" height="15" uuid="94289187-33c3-4d31-9d8f-aad1f6f3a809">
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement>
<font isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{ITEM_START}.format( java.time.format.DateTimeFormatter.ofPattern("MMMM uuuu") )]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="119" y="89" width="170" height="15" uuid="0cf5ebb2-49f1-4e41-8ab9-ea99cc0226c1">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Die Vergütung je Stunde beträgt: ]]></text>
</staticText>
<textField pattern="####0.00 EUR">
<reportElement x="289" y="89" width="64" height="15" uuid="db6a26fc-6e5a-4907-8a99-5da571c58328">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<textElement verticalAlignment="Middle">
<font isUnderline="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{ARTICLE_PRICE_PER_HOUR}]]></textFieldExpression>
</textField>
</band>
</pageHeader>
<columnHeader>
<band height="24" splitType="Stretch">
<staticText>
<reportElement x="4" y="0" width="66" height="24" uuid="a4b7f758-ac69-4638-8cb8-ef586cbabbe6">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="aefb51e0-3482-4d43-8586-b00fd9c4bed1"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Tag]]></text>
</staticText>
<staticText>
<reportElement x="70" y="0" width="80" height="24" uuid="ddc1ec32-6d07-4e00-a7ce-5c86b814dfec">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="d61cd2ce-beaa-4a89-b660-f95abf03ca29"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Uhrzeit]]></text>
</staticText>
<staticText>
<reportElement x="495" y="0" width="60" height="24" uuid="28555860-eb98-42b1-8c83-b6448cfc2a94">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="1c7835af-a8af-4c26-8ccb-26be8172ce29"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Betrag]]></text>
</staticText>
<staticText>
<reportElement x="442" y="0" width="53" height="24" uuid="f9e76a5e-4764-4ba5-86c7-00bb2dd5df5c">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="ffb2463c-981a-4639-a49a-a237aebf96ad"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Stunden
-zahl]]></text>
</staticText>
<staticText>
<reportElement x="151" y="0" width="90" height="24" uuid="81eaafcc-1ba3-4ba8-aac7-8b95ae9c1e32"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Art
des Unterrichts]]></text>
</staticText>
<staticText>
<reportElement x="241" y="0" width="88" height="24" uuid="fefd07ed-faa1-4c4d-b0d5-04eb64bb1602"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Ort]]></text>
</staticText>
<staticText>
<reportElement x="329" y="0" width="112" height="24" uuid="0bb3541b-0a40-40c6-8727-726dfc6082c3">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="7141045b-35fa-4d89-bd0a-5dff9fe6e263"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Teilnehmerzahl]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="15" splitType="Stretch">
<textField>
<reportElement x="4" y="0" width="66" height="15" uuid="4750ef82-cbe7-454b-942e-b70954e8a3b2">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="aefb51e0-3482-4d43-8586-b00fd9c4bed1"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{ITEM_START}.format( java.time.format.DateTimeFormatter.ofPattern("dd.MM.uuuu") )]]></textFieldExpression>
</textField>
<textField>
<reportElement x="70" y="0" width="80" height="15" uuid="c204f2f3-cf50-48bb-8461-0ecc56a45f57">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="d61cd2ce-beaa-4a89-b660-f95abf03ca29"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{ITEM_START}.format( java.time.format.DateTimeFormatter.ofPattern("HH:mm") ) + " - " + $F{ITEM_END}.format( java.time.format.DateTimeFormatter.ofPattern("HH:mm") )]]></textFieldExpression>
</textField>
<textField pattern="#,##0.00¤;#,##0.00- ¤">
<reportElement x="495" y="0" width="60" height="15" uuid="ec2a503b-4264-4ed4-903a-86d60c3a2e12">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="1c7835af-a8af-4c26-8ccb-26be8172ce29"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{ITEM_SUM}]]></textFieldExpression>
</textField>
<textField pattern="#,##0.0##;(#,##0.0##-)">
<reportElement x="442" y="0" width="53" height="15" uuid="2e105e00-0a68-4a95-a6a5-c416584db2da">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="ffb2463c-981a-4639-a49a-a237aebf96ad"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$V{DURATION_PER_ITEM}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="151" y="0" width="90" height="15" uuid="7593911e-405a-49c4-89bc-4da3a4c53e7c"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="false"/>
</textElement>
<text><![CDATA[Trampolinturnen]]></text>
</staticText>
<staticText>
<reportElement x="241" y="0" width="88" height="15" uuid="13055bef-6718-4c0d-8060-dfb1f307654e"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="false"/>
</textElement>
<text><![CDATA[IGS Roderbruch]]></text>
</staticText>
<textField>
<reportElement x="329" y="0" width="113" height="15" uuid="f92bf1eb-4dc0-4c56-b478-1559caa3d7e6">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="7141045b-35fa-4d89-bd0a-5dff9fe6e263"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{FIELD_ITEM_PARTICIPANTS}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="20" splitType="Stretch">
<textField pattern="#,##0.00¤;#,##0.00- ¤">
<reportElement x="495" y="4" width="60" height="14" uuid="97cc81ab-b30d-4bec-ac00-894f07714615"/>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{INVOICE_SUM}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="58" y="4" width="100" height="14" uuid="0c3fb889-83ef-4f37-9095-5a4100bbf7b7"/>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA[$V{ITEM_SUM1}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="158" y="4" width="54" height="14" uuid="884d43d5-2b34-40ee-bb6c-17f682a5d253"/>
<text><![CDATA[ Einheiten]]></text>
</staticText>
<textField pattern="#,##0.0##;(#,##0.0##-)">
<reportElement x="212" y="4" width="61" height="14" uuid="4ecef20c-3185-4a9e-bc43-f21206745b19">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="ffb2463c-981a-4639-a49a-a237aebf96ad"/>
</reportElement>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA[$V{DURATION}]]></textFieldExpression>
</textField>
<staticText>
<reportElement stretchType="ContainerHeight" x="274" y="4" width="50" height="14" uuid="f6e94973-9423-4576-8484-a966de108b3e"/>
<text><![CDATA[Stunden]]></text>
</staticText>
<staticText>
<reportElement x="428" y="4" width="66" height="14" uuid="2ac20436-92e6-4078-9d21-b2f287a3dc91"/>
<textElement textAlignment="Right"/>
<text><![CDATA[Summe:]]></text>
</staticText>
</band>
</columnFooter>
<pageFooter>
<band height="184" splitType="Stretch">
<staticText>
<reportElement x="14" y="10" width="384" height="12" uuid="71d9d40c-d319-43bf-a244-e2c0aabacd15"/>
<text><![CDATA[Die Richtigkeit der vorstehenden Angaben wird hiermit bestätigt.
]]></text>
</staticText>
<staticText>
<reportElement x="29" y="78" width="161" height="20" uuid="8deca167-570b-4feb-b3bb-23af38af502f"/>
<text><![CDATA[Unterschrift Abt.Leiter/In
]]></text>
</staticText>
<staticText>
<reportElement x="27" y="162" width="185" height="18" uuid="eaea1eea-e4b7-438b-ba8f-37875ecd30e6"/>
<text><![CDATA[Unterschrift Übungsleiter/In
]]></text>
</staticText>
<staticText>
<reportElement x="340" y="162" width="201" height="12" uuid="9e84f80c-3160-48c8-a553-4a02afab0c1f">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<textElement>
<font fontName="Serif" size="9" isBold="true"/>
</textElement>
<text><![CDATA[*zu überweisender Betrag: netto EUR
]]></text>
</staticText>
<staticText>
<reportElement x="510" y="147" width="30" height="12" uuid="ec58eaa7-2b8d-4406-b479-63dc47aa1afd">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[EUR]]></text>
</staticText>
<staticText>
<reportElement x="340" y="147" width="92" height="12" uuid="4e8623ca-b81c-4b8b-bfe6-d06bb44dd489">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[LKiSt kath.
]]></text>
</staticText>
<staticText>
<reportElement x="340" y="135" width="92" height="12" uuid="b660623b-4e27-46c1-8b20-72e18f881452">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[LKiSt ev.
]]></text>
</staticText>
<staticText>
<reportElement x="340" y="123" width="92" height="12" uuid="f0caaef2-7915-4c9b-83c7-7cd42091d9ee">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[Sol.-Steuer
]]></text>
</staticText>
<staticText>
<reportElement x="340" y="111" width="92" height="12" uuid="a79ebd35-c68b-4cc5-b2a0-4eef0223aca6">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[Lohnsteuer
]]></text>
</staticText>
<staticText>
<reportElement x="510" y="135" width="30" height="12" uuid="a84dfa91-7521-4b02-8109-45da6e3aca20">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[EUR]]></text>
</staticText>
<staticText>
<reportElement x="510" y="123" width="30" height="12" uuid="1305c1d0-168f-405a-84c7-f2a2272a3d0c">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[EUR]]></text>
</staticText>
<staticText>
<reportElement x="510" y="111" width="30" height="12" uuid="cce624b8-5bf8-465d-8a98-4a4efb4b9ade">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[EUR]]></text>
</staticText>
<staticText>
<reportElement x="510" y="99" width="30" height="12" uuid="11c9c782-304c-43f0-bf11-ebd4e9115f2e">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[EUR]]></text>
</staticText>
<staticText>
<reportElement x="510" y="87" width="30" height="12" uuid="aba60deb-e035-4689-8b4f-22bb9d9ab084">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[EUR]]></text>
</staticText>
<staticText>
<reportElement x="510" y="75" width="30" height="12" uuid="11ab0a56-8c2a-44b3-b578-797c455ef33a">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[EUR]]></text>
</staticText>
<staticText>
<reportElement x="402" y="99" width="30" height="12" uuid="91dc2b58-1692-425d-b916-e59aac3a83d4">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Left"/>
<text><![CDATA[% RV
]]></text>
</staticText>
<staticText>
<reportElement x="402" y="87" width="30" height="12" uuid="5fd23cda-b3cb-49dc-9d24-a962043f007e">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Left"/>
<text><![CDATA[% PV
]]></text>
</staticText>
<staticText>
<reportElement x="402" y="75" width="30" height="12" uuid="12891e8f-edef-4b5b-a83d-b9ef9a0ff3bf">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Left"/>
<text><![CDATA[% KV
]]></text>
</staticText>
<staticText>
<reportElement x="402" y="63" width="100" height="12" uuid="36006289-c0f3-4aec-a83e-2e98adee609f">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Left"/>
<text><![CDATA[Sozialversicherung
]]></text>
</staticText>
<staticText>
<reportElement stretchType="ElementGroupHeight" x="340" y="38" width="146" height="25" uuid="d315654c-5c49-41a4-9d1e-b0e7a579707a">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<text><![CDATA[(Unter Berücksichtigung des
Freibetrages §3 Nr. 26 EStG)
]]></text>
</staticText>
<staticText>
<reportElement x="341" y="25" width="100" height="13" uuid="568cfee0-40fc-4fdc-8915-ddc48a1dc2b7">
<printWhenExpression><![CDATA[1==2]]></printWhenExpression>
</reportElement>
<textElement>
<font fontName="Serif" size="9" isBold="true"/>
</textElement>
<text><![CDATA[Abzüge]]></text>
</staticText>
<image scaleImage="RetainShape" vAlign="Bottom" onErrorType="Blank">
<reportElement x="20" y="99" width="192" height="62" uuid="0fee9023-e15d-445f-8478-6f5a0d15d5ba">
<printWhenExpression><![CDATA[$F{FIELD_SIGNATURE_PATH}!=null]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA[$F{FIELD_SIGNATURE_PATH}.toString()]]></imageExpression>
</image>
</band>
</pageFooter>
</jasperReport>

@ -0,0 +1,71 @@
CREATE TABLE USER (
ID INT(11) NOT NULL,
EMAIL VARCHAR(45) NOT NULL,
GIVEN_NAME VARCHAR(45) NOT NULL,
FAMILY_NAME VARCHAR(45) NOT NULL,
PRINCIPAL_ID VARCHAR(45) NOT NULL,
UPDATED TIMESTAMP NOT NULL,
CREATED TIMESTAMP NOT NULL
);
CREATE TABLE ADRESS (
ID INT(11) NOT NULL,
ADRESS_TYPE VARCHAR(31) NOT NULL,
ADRESS1 VARCHAR(255) DEFAULT NULL,
ADRESS2 VARCHAR(255) DEFAULT NULL,
ZIP VARCHAR(45) DEFAULT NULL,
CITY VARCHAR(155) DEFAULT NULL,
UPDATED TIMESTAMP NOT NULL,
CREATED TIMESTAMP NOT NULL
);
CREATE TABLE ARTICLE (
ID INT(11) NOT NULL,
PRICE DOUBLE NOT NULL,
TITLE VARCHAR(50) NOT NULL,
DESCRIPTION VARCHAR(255) DEFAULT NULL,
USER_ID INT(11) NOT NULL,
REPORT VARCHAR(45) NOT NULL DEFAULT '/REPORTS/MTV_GROSS_BUCHHOLZ.JRXML',
UPDATED TIMESTAMP NOT NULL,
CREATED TIMESTAMP NOT NULL
);
CREATE TABLE BANKING_CONNECTION (
ID INT(11) NOT NULL,
OWNER_TYPE VARCHAR(31) NOT NULL,
BANKNAME VARCHAR(255) DEFAULT NULL,
BIC VARCHAR(255) DEFAULT NULL,
IBAN VARCHAR(255) DEFAULT NULL,
UPDATED TIMESTAMP NOT NULL,
CREATED TIMESTAMP NOT NULL
);
CREATE TABLE INVOICE (
ID INT(11) NOT NULL,
INVOICE_DATE DATETIME NOT NULL,
INVOICE_ID VARCHAR(150) NOT NULL,
USER_ID INT(11) NOT NULL,
SIGN_IMAGE_PATH VARCHAR(255) DEFAULT NULL,
UPDATED TIMESTAMP NOT NULL,
CREATED TIMESTAMP NOT NULL
);
CREATE TABLE INVOICE_ITEM (
ID INT(11) NOT NULL,
START DATETIME NOT NULL,
END VARCHAR(45) NOT NULL,
ARTICLE_ID INT(11) NOT NULL,
PARTICIPANTS VARCHAR(15) DEFAULT NULL,
SUM_PRICE DECIMAL(7,2) NOT NULL,
RECHNUNG_ID INT(11) DEFAULT NULL,
INVOICE_ID INT(11) DEFAULT NULL,
UPDATED TIMESTAMP NOT NULL,
CREATED TIMESTAMP NOT NULL,
TITLE VARCHAR(100) NOT NULL,
DESCRIPTION VARCHAR(255) DEFAULT NULL,
USER_ID INT(11) NOT NULL,
PRICEPERHOUR DECIMAL(7,2) NOT NULL,
REPORT VARCHAR(255) DEFAULT NULL
);
Loading…
Cancel
Save