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