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.jcontactsbusiness.model.basicdata.BasicData;
22 import org.mxchange.jfinancials.model.receipt.BillableReceipt;
23 import org.mxchange.jproduct.model.category.Category;
24 import org.mxchange.jproduct.model.product.Product;
27 * An interface for receipt items
29 * @author Roland Häder<roland@mxchange.org>
31 public interface BillableReceiptItem extends Serializable {
34 * Getter for item's product category
36 * @return Item's product category
38 Category getItemCategory ();
41 * Setter for item's product category
43 * @param itemCategory Item's product category
45 void setItemCategory (final Category itemCategory);
48 * Getter when this receipt item has been created in database
50 * @return When this item has been created
52 Date getItemCreated ();
55 * Setter when this receipt item has been created in database
57 * @param itemCreated When this item has been created
59 void setItemCreated (final Date itemCreated);
62 * Getter for primary key
69 * Setter for primary key
71 * @param itemId Primary key
73 void setItemId (final Long itemId);
76 * Getter for receipt instance
78 * @return Receipt instance
80 BillableReceipt getItemReceipt ();
83 * Setter for receipt instance
85 * @param itemReceipt Receipt instance
87 void setItemReceipt (final BillableReceipt itemReceipt);
90 * Getter for linked product
94 Product getItemProduct ();
97 * Setter for linked product
99 * @param itemProduct Product
101 void setItemProduct (final Product itemProduct);
104 * Getter for product discount as fixed value
106 * @return Product discount as fixed value
108 Float getItemDiscountFixed ();
111 * Setter for product discount as fixed value
113 * @param itemDiscountFixed Product discount as fixed value
115 void setItemDiscountFixed (final Float itemDiscountFixed);
118 * Getter for product discount in percents
120 * @return Product discount in percents
122 Float getItemDiscountPercent ();
125 * Setter for product discount in percents
127 * @param itemDiscountPercent Product discount in percents
129 void setItemDiscountPercent (final Float itemDiscountPercent);
132 * Getter for product quantity
134 * @return Product quantity
136 Short getItemProductQuantity ();
139 * Setter for product quantity
141 * @param itemProductQuantity Product quantity
143 void setItemProductQuantity (final Short itemProductQuantity);
146 * Getter for item's net price
148 * @return Item's net price
150 Float getItemNetPrice ();
153 * Setter for item's net price
155 * @param itemNetPrice Item's net price
157 void setItemNetPrice (final Float itemNetPrice);
160 * Getter for item's tax rate
162 * @return Item's tax rate
164 Float getItemTaxRate ();
167 * Setter for item's tax rate
169 * @param itemTaxRate Item's tax rate
171 void setItemTaxRate (final Float itemTaxRate);
174 * Getter for item's gross price
176 * @return Item's gross price
178 Float getItemGrossPrice ();
181 * Setter for item's gross price
183 * @param itemGrossPrice Item's gross price
185 void setItemGrossPrice (final Float itemGrossPrice);
188 * Getter for manufacturer/producer of this item
190 * @return Manufacturer/producer of this item
192 BasicData getItemManufacturer ();
195 * Setter for manufacturer/producer of this item
197 * @param itemManufacturer Manufacturer/producer of this item
199 void setItemManufacturer (final BasicData itemManufacturer);
202 * Getter for item brand name
204 * @return Item brand name
206 String getItemBrandName ();
209 * Setter for item brand name
211 * @param itemBrandName Item brand name
213 void setItemBrandName (final String itemBrandName);
216 * Getter for item number
218 * @return Item number
220 Long getItemNumber ();
223 * Setter for item number
225 * @param itemNumber Item number
227 void setItemNumber (final Long itemNumber);
230 boolean equals (final Object object);