]> git.mxchange.org Git - jbonuscard-core.git/blob - src/org/mxchange/jfinancials/model/receipt_item/BillableReceiptItem.java
Continued:
[jbonuscard-core.git] / src / org / mxchange / jfinancials / model / receipt_item / BillableReceiptItem.java
1 /*
2  * Copyright (C) 2016 - 2018 Free Software Foundation
3  *
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.
8  *
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.
13  *
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/>.
16  */
17 package org.mxchange.jfinancials.model.receipt_item;
18
19 import java.io.Serializable;
20 import java.math.BigDecimal;
21 import java.util.Date;
22 import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
23 import org.mxchange.jfinancials.model.receipt.BillableReceipt;
24 import org.mxchange.jproduct.model.category.Category;
25 import org.mxchange.jproduct.model.product.Product;
26
27 /**
28  * An interface for receipt items
29  * <p>
30  * @author Roland Häder<roland@mxchange.org>
31  */
32 public interface BillableReceiptItem extends Comparable<BillableReceiptItem>, Serializable {
33
34         /**
35          * Getter for item's product category
36          * <p>
37          * @return Item's product category
38          */
39         Category getItemCategory ();
40
41         /**
42          * Setter for item's product category
43          * <p>
44          * @param itemCategory Item's product category
45          */
46         void setItemCategory (final Category itemCategory);
47
48         /**
49          * Getter when this receipt item has been created in database
50          * <p>
51          * @return When this item has been created
52          */
53         Date getItemCreated ();
54
55         /**
56          * Setter when this receipt item has been created in database
57          * <p>
58          * @param itemCreated When this item has been created
59          */
60         void setItemCreated (final Date itemCreated);
61
62         /**
63          * Getter for primary key
64          * <p>
65          * @return Primary key
66          */
67         Long getItemId ();
68
69         /**
70          * Setter for primary key
71          * <p>
72          * @param itemId Primary key
73          */
74         void setItemId (final Long itemId);
75
76         /**
77          * Getter for whether the item is a discount on whole receipt
78          * <p>
79          * @return Whether the item is a discount on whole receipt
80          */
81         Boolean getItemIsDiscount ();
82
83         /**
84          * Setter for whether the item is a discount on whole receipt or item
85          * <p>
86          * @param itemIsDiscount Whether the item is a discount on whole receipt or
87          *                       item
88          */
89         void setItemIsDiscount (final Boolean itemIsDiscount);
90
91         /**
92          * Getter for whether the item is a refund
93          * <p>
94          * @return Whether the item is a refund
95          */
96         Boolean getItemIsRefund ();
97
98         /**
99          * Setter for whether the item is a refund
100          * <p>
101          * @param itemIsRefund Whether the item is a refund
102          */
103         void setItemIsRefund (final Boolean itemIsRefund);
104
105         /**
106          * Getter for receipt instance
107          * <p>
108          * @return Receipt instance
109          */
110         BillableReceipt getItemReceipt ();
111
112         /**
113          * Setter for receipt instance
114          * <p>
115          * @param itemReceipt Receipt instance
116          */
117         void setItemReceipt (final BillableReceipt itemReceipt);
118
119         /**
120          * Getter for linked product
121          * <p>
122          * @return Product
123          */
124         Product getItemProduct ();
125
126         /**
127          * Setter for linked product
128          * <p>
129          * @param itemProduct Product
130          */
131         void setItemProduct (final Product itemProduct);
132
133         /**
134          * Getter for product quantity
135          * <p>
136          * @return Product quantity
137          */
138         BigDecimal getItemProductQuantity ();
139
140         /**
141          * Setter for product quantity
142          * <p>
143          * @param itemProductQuantity Product quantity
144          */
145         void setItemProductQuantity (final BigDecimal itemProductQuantity);
146
147         /**
148          * Getter for item's net price
149          * <p>
150          * @return Item's net price
151          */
152         BigDecimal getItemNetPrice ();
153
154         /**
155          * Setter for item's net price
156          * <p>
157          * @param itemNetPrice Item's net price
158          */
159         void setItemNetPrice (final BigDecimal itemNetPrice);
160
161         /**
162          * Getter for item's tax rate
163          * <p>
164          * @return Item's tax rate
165          */
166         BigDecimal getItemTaxRate ();
167
168         /**
169          * Setter for item's tax rate
170          * <p>
171          * @param itemTaxRate Item's tax rate
172          */
173         void setItemTaxRate (final BigDecimal itemTaxRate);
174
175         /**
176          * Getter for item's gross price
177          * <p>
178          * @return Item's gross price
179          */
180         BigDecimal getItemGrossPrice ();
181
182         /**
183          * Setter for item's gross price
184          * <p>
185          * @param itemGrossPrice Item's gross price
186          */
187         void setItemGrossPrice (final BigDecimal itemGrossPrice);
188
189         /**
190          * Getter for manufacturer/producer of this item
191          * <p>
192          * @return Manufacturer/producer of this item
193          */
194         BasicData getItemManufacturer ();
195
196         /**
197          * Setter for manufacturer/producer of this item
198          * <p>
199          * @param itemManufacturer Manufacturer/producer of this item
200          */
201         void setItemManufacturer (final BasicData itemManufacturer);
202
203         /**
204          * Getter for item brand name
205          * <p>
206          * @return Item brand name
207          */
208         String getItemBrandName ();
209
210         /**
211          * Setter for item brand name
212          * <p>
213          * @param itemBrandName Item brand name
214          */
215         void setItemBrandName (final String itemBrandName);
216
217         /**
218          * Getter for item number
219          * <p>
220          * @return Item number
221          */
222         Long getItemNumber ();
223
224         /**
225          * Setter for item number
226          * <p>
227          * @param itemNumber Item number
228          */
229         void setItemNumber (final Long itemNumber);
230
231         /**
232          * Getter for item's coupon number
233          * <p>
234          * @return Item's coupon number
235          */
236         String getItemCouponNumber ();
237
238         /**
239          * Setter for item's coupon number
240          * <p>
241          * @param itemCouponNumber Item's coupon number
242          */
243         void setItemCouponNumber (final String itemCouponNumber);
244
245         @Override
246         boolean equals (final Object object);
247
248         @Override
249         int hashCode ();
250
251 }