2 * Copyright (C) 2017 Roland Haeder<roland@mxchange.org>
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jfinancials.model.receipt.entry;
19 import java.io.Serializable;
20 import java.util.Calendar;
21 import org.mxchange.jfinancials.model.receipt.Billable;
22 import org.mxchange.jproduct.model.product.Product;
25 * An interface for receipt entries
27 * @author Roland Haeder<roland@mxchange.org>
29 public interface BillableReceiptEntry extends Serializable {
32 * Getter when this receipt entry has been created in database
34 * @return When this entry has been created
36 Calendar getEntryCreated ();
39 * Setter when this receipt entry has been created in database
41 * @param entryCreated When this entry has been created
43 void setEntryCreated (final Calendar entryCreated);
46 * Getter for primary key
53 * Setter for primary key
55 * @param entryId Primary key
57 void setEntryId (final Long entryId);
60 * Getter for receipt instance
62 * @return Receipt instance
64 Billable getEntryReceipt ();
67 * Setter for receipt instance
69 * @param entryReceipt Receipt instance
71 void setEntryReceipt (final Billable entryReceipt);
74 * Getter for linked product
78 Product getEntryProduct ();
81 * Setter for linked product
83 * @param entryProduct Product
85 void setEntryProduct (final Product entryProduct);
88 * Getter for product quantity
90 * @return Product quantity
92 Long getEntryProductQuantity ();
95 * Setter for product quantity
97 * @param entryProductQuantity Product quantity
99 void setEntryProductQuantity (final Long entryProductQuantity);
102 * Getter for product single price (copied from GenericProduct)
104 * @return Product single price
106 Float getEntryProductPrice ();
109 * Setter for product single price (copied from GenericProduct)
111 * @param entryProductPrice Product single price
113 void setEntryProductPrice (final Float entryProductPrice);
116 boolean equals (final Object object);