2 * Copyright (C) 2016, 2017 Roland Häder
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_item;
19 import java.io.Serializable;
20 import java.util.Date;
21 import org.mxchange.jfinancials.model.receipt.BillableReceipt;
22 import org.mxchange.jproduct.model.category.Category;
23 import org.mxchange.jproduct.model.product.Product;
26 * An interface for receipt items
28 * @author Roland Häder<roland@mxchange.org>
30 public interface BillableReceiptItem extends Serializable {
33 * Getter for item's product category
35 * @return Item's product category
37 Category getItemCategory ();
40 * Setter for item's product category
42 * @param itemCategory Item's product category
44 void setItemCategory (final Category itemCategory);
47 * Getter when this receipt item has been created in database
49 * @return When this item has been created
51 Date getItemCreated ();
54 * Setter when this receipt item has been created in database
56 * @param itemCreated When this item has been created
58 void setItemCreated (final Date itemCreated);
61 * Getter for primary key
68 * Setter for primary key
70 * @param itemId Primary key
72 void setItemId (final Long itemId);
75 * Getter for receipt instance
77 * @return Receipt instance
79 BillableReceipt getItemReceipt ();
82 * Setter for receipt instance
84 * @param itemReceipt Receipt instance
86 void setItemReceipt (final BillableReceipt itemReceipt);
89 * Getter for linked product
93 Product getItemProduct ();
96 * Setter for linked product
98 * @param itemProduct Product
100 void setItemProduct (final Product itemProduct);
103 * Getter for product discount
105 * @return Product discount
107 Float getItemProductDiscount ();
110 * Setter for product discount
112 * @param productDiscount Product discount
114 void setItemProductDiscount (final Float productDiscount);
117 * Getter for product quantity
119 * @return Product quantity
121 Short getItemProductQuantity ();
124 * Setter for product quantity
126 * @param itemProductQuantity Product quantity
128 void setItemProductQuantity (final Short itemProductQuantity);
131 * Getter for item's net price
133 * @return Item's net price
135 Float getItemNetPrice ();
138 * Setter for item's net price
140 * @param itemNetPrice Item's net price
142 void setItemNetPrice (final Float itemNetPrice);
145 * Getter for item's tax rate
147 * @return Item's tax rate
149 Float getItemTaxRate ();
152 * Setter for item's tax rate
154 * @param itemTaxRate Item's tax rate
156 void setItemTaxRate (final Float itemTaxRate);
159 * Getter for item's gross price
161 * @return Item's gross price
163 Float getItemGrossPrice ();
166 * Setter for item's gross price
168 * @param itemGrossPrice Item's gross price
170 void setItemGrossPrice (final Float itemGrossPrice);
173 boolean equals (final Object object);