/*
- * Copyright (C) 2016 Roland Häder
+ * Copyright (C) 2016, 2017 Roland Häder
*
* 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
+++ /dev/null
-/*
- * Copyright (C) 2017 Roland Häder<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.model.receipt;
-
-import java.io.Serializable;
-import java.util.Calendar;
-import org.mxchange.jcontactsbusiness.BusinessContact;
-import org.mxchange.jproduct.model.payment.PaymentType;
-import org.mxchange.jusercore.model.user.User;
-
-/**
- * An interface for receipts
- * <p>
- * @author Roland Häder<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) 2016, 2017 Roland Häder<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.model.receipt;
+
+import java.io.Serializable;
+import java.util.Calendar;
+import org.mxchange.jcontactsbusiness.BusinessContact;
+import org.mxchange.jproduct.model.payment.PaymentType;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * An interface for receipts
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+public interface BillableReceipt 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) 2016, 2017 Roland Häder<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.model.receipt;
+
+import java.util.Calendar;
+import java.util.Objects;
+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.jproduct.model.payment.PaymentType;
+import org.mxchange.jusercore.model.user.LoginUser;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ *
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@Entity (name = "receipts")
+@Table (
+ name = "receipts"
+)
+@SuppressWarnings ("PersistenceUnitPresent")
+public class FinancialReceipt implements BillableReceipt {
+
+ /**
+ * 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.IDENTITY)
+ @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;
+
+ /**
+ * Default constructor
+ */
+ public FinancialReceipt () {
+ }
+
+ /**
+ * Constructor with payment type, seller and user
+ * <p>
+ * @param receiptPaymentType Payment type
+ * @param receiptSeller Seller instance
+ * @param receiptUser User instance
+ */
+ public FinancialReceipt (final PaymentType receiptPaymentType, final BusinessContact receiptSeller, final User receiptUser) {
+ // Call other constructor first
+ this();
+
+ // Set all
+ this.receiptPaymentType = receiptPaymentType;
+ this.receiptSeller = receiptSeller;
+ this.receiptUser = receiptUser;
+ }
+
+ @Override
+ public boolean equals (final Object object) {
+ if (this == object) {
+ return true;
+ }
+ if (null == object) {
+ return false;
+ } else if (this.getClass() != object.getClass()) {
+ return false;
+ }
+
+ final BillableReceipt receipt = (BillableReceipt) object;
+
+ if (!Objects.equals(this.getReceiptId(), receipt.getReceiptId())) {
+ return false;
+ } else if (this.getReceiptPaymentType() != receipt.getReceiptPaymentType()) {
+ return false;
+ } else if (!Objects.equals(this.getReceiptSeller(), receipt.getReceiptSeller())) {
+ return false;
+ } else if (!Objects.equals(this.getReceiptUser(), receipt.getReceiptUser())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @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;
+ }
+
+ @Override
+ public int hashCode () {
+ int hash = 5;
+
+ hash = 89 * hash + Objects.hashCode(this.getReceiptId());
+ hash = 89 * hash + Objects.hashCode(this.getReceiptPaymentType());
+ hash = 89 * hash + Objects.hashCode(this.getReceiptSeller());
+ hash = 89 * hash + Objects.hashCode(this.getReceiptUser());
+
+ return hash;
+ }
+
+}
+++ /dev/null
-/*
- * Copyright (C) 2017 Roland Häder<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.model.receipt;
-
-import java.util.Calendar;
-import java.util.Objects;
-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.jproduct.model.payment.PaymentType;
-import org.mxchange.jusercore.model.user.LoginUser;
-import org.mxchange.jusercore.model.user.User;
-
-/**
- *
- * @author Roland Häder<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.IDENTITY)
- @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;
-
- /**
- * Default constructor
- */
- public Receipt () {
- }
-
- /**
- * Constructor with payment type, seller and user
- * <p>
- * @param receiptPaymentType Payment type
- * @param receiptSeller Seller instance
- * @param receiptUser User instance
- */
- public Receipt (final PaymentType receiptPaymentType, final BusinessContact receiptSeller, final User receiptUser) {
- // Call other constructor first
- this();
-
- // Set all
- this.receiptPaymentType = receiptPaymentType;
- this.receiptSeller = receiptSeller;
- this.receiptUser = receiptUser;
- }
-
- @Override
- public boolean equals (final Object object) {
- if (this == object) {
- return true;
- }
- if (null == object) {
- return false;
- } else if (this.getClass() != object.getClass()) {
- return false;
- }
-
- final Billable receipt = (Billable) object;
-
- if (!Objects.equals(this.getReceiptId(), receipt.getReceiptId())) {
- return false;
- } else if (this.getReceiptPaymentType() != receipt.getReceiptPaymentType()) {
- return false;
- } else if (!Objects.equals(this.getReceiptSeller(), receipt.getReceiptSeller())) {
- return false;
- } else if (!Objects.equals(this.getReceiptUser(), receipt.getReceiptUser())) {
- return false;
- }
-
- return true;
- }
-
- @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;
- }
-
- @Override
- public int hashCode () {
- int hash = 5;
-
- hash = 89 * hash + Objects.hashCode(this.getReceiptId());
- hash = 89 * hash + Objects.hashCode(this.getReceiptPaymentType());
- hash = 89 * hash + Objects.hashCode(this.getReceiptSeller());
- hash = 89 * hash + Objects.hashCode(this.getReceiptUser());
-
- return hash;
- }
-
-}
/*
- * Copyright (C) 2017 Roland Häder<roland@mxchange.org>
+ * Copyright (C) 2016, 2017 Roland Häder<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
import java.io.Serializable;
import java.util.Calendar;
-import org.mxchange.jfinancials.model.receipt.Billable;
import org.mxchange.jproduct.model.product.Product;
+import org.mxchange.jfinancials.model.receipt.BillableReceipt;
/**
* An interface for receipt entries
* <p>
* @return Receipt instance
*/
- Billable getEntryReceipt ();
+ BillableReceipt getEntryReceipt ();
/**
* Setter for receipt instance
* <p>
* @param entryReceipt Receipt instance
*/
- void setEntryReceipt (final Billable entryReceipt);
+ void setEntryReceipt (final BillableReceipt entryReceipt);
/**
* Getter for linked product
/*
- * Copyright (C) 2017 Roland Häder<roland@mxchange.org>
+ * Copyright (C) 2016, 2017 Roland Häder<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
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
-import org.mxchange.jfinancials.model.receipt.Billable;
-import org.mxchange.jfinancials.model.receipt.Receipt;
+import org.mxchange.jfinancials.model.receipt.FinancialReceipt;
import org.mxchange.jproduct.model.product.GenericProduct;
import org.mxchange.jproduct.model.product.Product;
+import org.mxchange.jfinancials.model.receipt.BillableReceipt;
/**
* A class for entryReceipt entries
* 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;
+ @OneToOne (targetEntity = FinancialReceipt.class, cascade = CascadeType.REFRESH, optional = false)
+ private BillableReceipt entryReceipt;
/**
* Default constructor
* @param entryProduct Product instance
* @param entryProductPrice Product price (copied)
* @param entryProductQuantity Product quantity
- * @param entryReceipt Receipt instance
+ * @param entryReceipt FinancialReceipt instance
*/
- public ReceiptEntry (final Product entryProduct, final Float entryProductPrice, final Long entryProductQuantity, final Billable entryReceipt) {
+ public ReceiptEntry (final Product entryProduct, final Float entryProductPrice, final Long entryProductQuantity, final BillableReceipt entryReceipt) {
this.entryProduct = entryProduct;
this.entryProductPrice = entryProductPrice;
this.entryProductQuantity = entryProductQuantity;
}
@Override
- public Billable getEntryReceipt () {
+ public BillableReceipt getEntryReceipt () {
return this.entryReceipt;
}
@Override
- public void setEntryReceipt (final Billable entryReceipt) {
+ public void setEntryReceipt (final BillableReceipt entryReceipt) {
this.entryReceipt = entryReceipt;
}