libs.jpa20-persistence.classpath=\
${base}/jpa20-persistence/javax.persistence_2.1.0.v201304241213.jar
libs.jpa20-persistence.displayName=Persistence (JPA 2.1)
+libs.jpa20-persistence.javadoc=\
+ https://docs.oracle.com/javaee/7/api/
libs.jpa20-persistence.prop-maven-dependencies=org.eclipse.persistence:javax.persistence:2.1.0:jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
+file.reference.jcontacts-business-core.jar=lib/jcontacts-business-core.jar
file.reference.jcontacts-core.jar=lib/jcontacts-core.jar
file.reference.jcore-logger-lib.jar=lib/jcore-logger-lib.jar
file.reference.jcoreee.jar=lib/jcoreee.jar
file.reference.jcountry-core.jar=lib/jcountry-core.jar
file.reference.jmailer-ee.jar=lib/jmailer-ee.jar
file.reference.jphone-core.jar=lib/jphone-core.jar
+file.reference.jshop-core.jar=lib/jshop-core.jar
file.reference.juser-core.jar=lib/juser-core.jar
includes=**
jar.archive.disabled=${jnlp.enabled}
${file.reference.jphone-core.jar}:\
${file.reference.juser-core.jar}:\
${file.reference.jcontacts-core.jar}:\
+ ${file.reference.jcontacts-business-core.jar}:\
${file.reference.jmailer-ee.jar}:\
+ ${file.reference.jshop-core.jar}:\
${libs.jpa20-persistence.classpath}:\
${libs.javaee-api-7.0.classpath}
# Space-separated list of extra javac options
${javac.test.classpath}:\
${build.test.classes.dir}
source.encoding=UTF-8
+source.reference.jcontacts-business-core.jar=../jcontacts-business-core/src/
source.reference.jcontacts-core.jar=../jcontacts-core/src/
source.reference.jcore-logger-lib.jar=../jcore-logger-lib/src/
source.reference.jcoreee.jar=../jcoreee/src/
source.reference.jcountry-core.jar=../jcountry-core/src/
source.reference.jmailer-ee.jar=../jmailer-ee/src/
source.reference.jphone-core.jar=../jphone-core/src/
+source.reference.jshop-core.jar=../jshop-core/src/
source.reference.juser-core.jar=../juser-core/src/
src.dir=src
test.src.dir=test
}
/**
- * Updates all contacts's phone entry's created timestamps
+ * Updates all contact's phone entry's created timestamps
* <p>
* @param contact Contact instance to update
*/
}
/**
- * Returnes a detached instance from given mobile instance
+ * Returns a detached instance from given mobile instance
* <p>
* @param mobileNumber Mobile instance
* @param fetchedNumber Found mobile number in database
}
/**
- * Returnes a detached instance from given land-line instance
+ * Returns a detached instance from given land-line instance
* <p>
* @param landLineNumber Land-line instance
* @param fetchedNumber Found land-line number in database
}
/**
- * Returnes a detached instance from given fax instance
+ * Returns a detached instance from given fax instance
* <p>
* @param faxNumber Fax instance
* @param fetchedNumber Found fax number in database
}
/**
- * Updates all contacts's phone entry's updated timestamps
+ * Updates all contact's phone entry's updated timestamps
* <p>
* @param contact Contact instance to update
* @param isMobileUnlinked Whether a mobile entry has been unlinked in
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Haeder<roland@mxchange.org>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.receipt;
+
+import java.io.Serializable;
+import java.util.Calendar;
+import org.mxchange.jcontactsbusiness.BusinessContact;
+import org.mxchange.jshopcore.model.payment.PaymentType;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * An interface for receipts
+ * <p>
+ * @author Roland Haeder<roland@mxchange.org>
+ */
+public interface Billable extends Serializable {
+
+ /**
+ * Getter for when this receipt has been created in database
+ * <p>
+ * @return Receipt creation timestamp
+ */
+ Calendar getReceiptCreated ();
+
+ /**
+ * Setter for when this receipt has been created in database
+ * <p>
+ * @param receiptCreated Receipt creation timestamp
+ */
+ void setReceiptCreated (final Calendar receiptCreated);
+
+ /**
+ * Getter for primary key
+ * <p>
+ * @return Primary key
+ */
+ Long getReceiptId ();
+
+ /**
+ * Setter for primary key
+ * <p>
+ * @param receiptId Primary key
+ */
+ void setReceiptId (final Long receiptId);
+
+ /**
+ * Getter for receipt's user
+ * <p>
+ * @return Receipt's user
+ */
+ User getReceiptUser ();
+
+ /**
+ * Setter for receipt's user
+ * <p>
+ * @param receiptUser Receipt's user
+ */
+ void setReceiptUser (final User receiptUser);
+
+ /**
+ * Getter for seller instance
+ * <p>
+ * @return Seller instance
+ */
+ BusinessContact getReceiptSeller ();
+
+ /**
+ * Setter for seller instance
+ * <p>
+ * @param receiptSeller Seller instance
+ */
+ void setReceiptSeller (final BusinessContact receiptSeller);
+
+ /**
+ * Getter for payment type
+ * <p>
+ * @return Payment type
+ */
+ PaymentType getReceiptPaymentType ();
+
+ /**
+ * Setter for payment type
+ * <p>
+ * @param receiptPaymentType Payment type
+ */
+ void setReceiptPaymentType (final PaymentType receiptPaymentType);
+
+ @Override
+ boolean equals (final Object object);
+
+ @Override
+ int hashCode ();
+
+}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Haeder<roland@mxchange.org>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.receipt;
+
+import java.util.Calendar;
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import javax.persistence.Transient;
+import org.mxchange.jcontactsbusiness.BusinessContact;
+import org.mxchange.jcontactsbusiness.CompanyContact;
+import org.mxchange.jshopcore.model.payment.PaymentType;
+import org.mxchange.jusercore.model.user.LoginUser;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ *
+ * @author Roland Haeder<roland@mxchange.org>
+ */
+@Entity (name = "receipts")
+@Table (
+ name = "receipts"
+)
+@SuppressWarnings ("PersistenceUnitPresent")
+public class Receipt implements Billable {
+
+ /**
+ * Serial number
+ */
+ @Transient
+ private static final long serialVersionUID = 185_867_217_461L;
+
+ /**
+ * When this receipt has been created
+ */
+ @Basic (optional = false)
+ @Temporal (TemporalType.TIMESTAMP)
+ @Column (name = "receipt_created", nullable = false)
+ private Calendar receiptCreated;
+
+ /**
+ * Primary key
+ */
+ @Id
+ @GeneratedValue (strategy = GenerationType.AUTO)
+ @Column (name = "receipt_id", nullable = false, updatable = false)
+ private Long receiptId;
+
+ /**
+ * Payment type (cash, credit card, EC card ...)
+ */
+ @Basic (optional = false)
+ @Column (name = "receipt_payment_type", nullable = false)
+ @Enumerated (EnumType.STRING)
+ private PaymentType receiptPaymentType;
+
+ /**
+ * Seller instance
+ */
+ @JoinColumn (name = "receipt_seller_id", referencedColumnName = "company_id", nullable = false, updatable = false)
+ @OneToOne (targetEntity = CompanyContact.class, cascade = CascadeType.REFRESH, optional = false)
+ private BusinessContact receiptSeller;
+
+ /**
+ * Which user this receipt belongs to
+ */
+ @JoinColumn (name = "receipt_user_id", referencedColumnName = "user_id", nullable = false, updatable = false)
+ @OneToOne (targetEntity = LoginUser.class, cascade = CascadeType.REFRESH, optional = false)
+ private User receiptUser;
+
+ @Override
+ @SuppressWarnings ("ReturnOfDateField")
+ public Calendar getReceiptCreated () {
+ return this.receiptCreated;
+ }
+
+ @Override
+ @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+ public void setReceiptCreated (final Calendar receiptCreated) {
+ this.receiptCreated = receiptCreated;
+ }
+
+ @Override
+ public Long getReceiptId () {
+ return this.receiptId;
+ }
+
+ @Override
+ public void setReceiptId (final Long receiptId) {
+ this.receiptId = receiptId;
+ }
+
+ @Override
+ public PaymentType getReceiptPaymentType () {
+ return this.receiptPaymentType;
+ }
+
+ @Override
+ public void setReceiptPaymentType (final PaymentType receiptPaymentType) {
+ this.receiptPaymentType = receiptPaymentType;
+ }
+
+ @Override
+ public BusinessContact getReceiptSeller () {
+ return this.receiptSeller;
+ }
+
+ @Override
+ public void setReceiptSeller (final BusinessContact receiptSeller) {
+ this.receiptSeller = receiptSeller;
+ }
+
+ @Override
+ public User getReceiptUser () {
+ return this.receiptUser;
+ }
+
+ @Override
+ public void setReceiptUser (final User receiptUser) {
+ this.receiptUser = receiptUser;
+ }
+
+}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Haeder<roland@mxchange.org>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.receipt.entry;
+
+import java.io.Serializable;
+import java.util.Calendar;
+import org.mxchange.jfinancials.receipt.Billable;
+import org.mxchange.jshopcore.model.product.Product;
+
+/**
+ * An interface for receipt entries
+ * <p>
+ * @author Roland Haeder<roland@mxchange.org>
+ */
+public interface BillableReceiptEntry extends Serializable {
+
+ /**
+ * Getter when this receipt entry has been created in database
+ * <p>
+ * @return When this entry has been created
+ */
+ Calendar getEntryCreated ();
+
+ /**
+ * Setter when this receipt entry has been created in database
+ * <p>
+ * @param entryCreated When this entry has been created
+ */
+ void setEntryCreated (final Calendar entryCreated);
+
+ /**
+ * Getter for primary key
+ * <p>
+ * @return Primary key
+ */
+ Long getEntryId ();
+
+ /**
+ * Setter for primary key
+ * <p>
+ * @param entryId Primary key
+ */
+ void setEntryId (final Long entryId);
+
+ /**
+ * Getter for receipt instance
+ * <p>
+ * @return Receipt instance
+ */
+ Billable getEntryReceipt ();
+
+ /**
+ * Setter for receipt instance
+ * <p>
+ * @param entryReceipt Receipt instance
+ */
+ void setEntryReceipt (final Billable entryReceipt);
+
+ /**
+ * Getter for linked product
+ * <p>
+ * @return Product
+ */
+ Product getEntryProduct ();
+
+ /**
+ * Setter for linked product
+ * <p>
+ * @param entryProduct Product
+ */
+ void setEntryProduct (final Product entryProduct);
+
+ /**
+ * Getter for product quantity
+ * <p>
+ * @return Product quantity
+ */
+ Long getEntryProductQuantity ();
+
+ /**
+ * Setter for product quantity
+ * <p>
+ * @param entryProductQuantity Product quantity
+ */
+ void setEntryProductQuantity (final Long entryProductQuantity);
+
+ /**
+ * Getter for product single price (copied from GenericProduct)
+ * <p>
+ * @return Product single price
+ */
+ Float getEntryProductPrice ();
+
+ /**
+ * Setter for product single price (copied from GenericProduct)
+ * <p>
+ * @param entryProductPrice Product single price
+ */
+ void setEntryProductPrice (final Float entryProductPrice);
+
+ @Override
+ boolean equals (final Object object);
+
+ @Override
+ int hashCode ();
+
+}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Haeder<roland@mxchange.org>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.receipt.entry;
+
+import java.util.Calendar;
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Index;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import javax.persistence.Transient;
+import org.mxchange.jfinancials.receipt.Billable;
+import org.mxchange.jfinancials.receipt.Receipt;
+import org.mxchange.jshopcore.model.product.GenericProduct;
+import org.mxchange.jshopcore.model.product.Product;
+
+/**
+ * A class for entryReceipt entries
+ * <p>
+ * @author Roland Haeder<roland@mxchange.org>
+ */
+@Entity (name = "receipt_entries")
+@Table (
+ name = "receipt_entries",
+ indexes = {
+ @Index (name = "entry_receipt_product", columnList = "entry_receipt_id,entry_product_id", unique = true)
+ }
+)
+@SuppressWarnings ("PersistenceUnitPresent")
+public class ReceiptEntry implements BillableReceiptEntry {
+
+ /**
+ * Serial number
+ */
+ @Transient
+ private static final long serialVersionUID = 126_498_698_378_571L;
+
+ /**
+ * When this entry has been created in database
+ */
+ @Basic (optional = false)
+ @Temporal (TemporalType.TIMESTAMP)
+ @Column (name = "entry_created", nullable = false)
+ private Calendar entryCreated;
+
+ /**
+ * Primary key
+ */
+ @Id
+ @GeneratedValue (strategy = GenerationType.IDENTITY)
+ @Column (name = "entry_id", nullable = false, updatable = false)
+ private Long entryId;
+
+ /**
+ * Product being linked in this entryReceipt item
+ */
+ @JoinColumn (name = "entry_product_id", referencedColumnName = "product_id", nullable = false, updatable = false, unique = true)
+ @OneToOne (targetEntity = GenericProduct.class, cascade = CascadeType.ALL, optional = false)
+ private Product entryProduct;
+
+ /**
+ * Single product price (being copied here from GenericProduct)
+ */
+ @Basic (optional = false)
+ @Column (name = "entry_product_price", nullable = false)
+ private Float entryProductPrice;
+
+ /**
+ * Product quantity
+ */
+ @Basic (optional = false)
+ @Column (name = "entry_product_quantity", nullable = false)
+ private Long entryProductQuantity;
+
+ /**
+ * Connected entryReceipt entry
+ */
+ @JoinColumn (name = "entry_receipt_id", referencedColumnName = "receipt_id", nullable = false, updatable = false, unique = true)
+ @OneToOne (targetEntity = Receipt.class, cascade = CascadeType.REFRESH, optional = false)
+ private Billable entryReceipt;
+
+ @Override
+ @SuppressWarnings ("ReturnOfDateField")
+ public Calendar getEntryCreated () {
+ return this.entryCreated;
+ }
+
+ @Override
+ @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+ public void setEntryCreated (final Calendar entryCreated) {
+ this.entryCreated = entryCreated;
+ }
+
+ @Override
+ public Long getEntryId () {
+ return this.entryId;
+ }
+
+ @Override
+ public void setEntryId (final Long entryId) {
+ this.entryId = entryId;
+ }
+
+ @Override
+ public Product getEntryProduct () {
+ return this.entryProduct;
+ }
+
+ @Override
+ public void setEntryProduct (final Product entryProduct) {
+ this.entryProduct = entryProduct;
+ }
+
+ @Override
+ public Float getEntryProductPrice () {
+ return this.entryProductPrice;
+ }
+
+ @Override
+ public void setEntryProductPrice (final Float entryProductPrice) {
+ this.entryProductPrice = entryProductPrice;
+ }
+
+ @Override
+ public Long getEntryProductQuantity () {
+ return this.entryProductQuantity;
+ }
+
+ @Override
+ public void setEntryProductQuantity (final Long entryProductQuantity) {
+ this.entryProductQuantity = entryProductQuantity;
+ }
+
+ @Override
+ public Billable getEntryReceipt () {
+ return this.entryReceipt;
+ }
+
+ @Override
+ public void setEntryReceipt (final Billable entryReceipt) {
+ this.entryReceipt = entryReceipt;
+ }
+
+}