Subversion Repositories SmartDukaan

Rev

Rev 24402 | Rev 24718 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21714 ashik.ali 1
package com.spice.profitmandi.dao.entity.fofo;
21552 ashik.ali 2
 
3
import java.time.LocalDateTime;
23509 amit.gupta 4
import java.time.format.DateTimeFormatter;
21552 ashik.ali 5
 
21653 ashik.ali 6
import javax.persistence.CascadeType;
21552 ashik.ali 7
import javax.persistence.Column;
21639 kshitij.so 8
import javax.persistence.Convert;
21552 ashik.ali 9
import javax.persistence.Entity;
10
import javax.persistence.EnumType;
11
import javax.persistence.Enumerated;
21653 ashik.ali 12
import javax.persistence.FetchType;
21552 ashik.ali 13
import javax.persistence.GeneratedValue;
14
import javax.persistence.GenerationType;
15
import javax.persistence.Id;
21653 ashik.ali 16
import javax.persistence.JoinColumn;
21552 ashik.ali 17
import javax.persistence.NamedQueries;
18
import javax.persistence.NamedQuery;
21653 ashik.ali 19
import javax.persistence.OneToOne;
21552 ashik.ali 20
import javax.persistence.Table;
23509 amit.gupta 21
import javax.persistence.Transient;
21552 ashik.ali 22
 
22216 ashik.ali 23
import org.hibernate.annotations.UpdateTimestamp;
24
 
21639 kshitij.so 25
import com.spice.profitmandi.dao.convertor.LocalDateTimeAttributeConverter;
21714 ashik.ali 26
import com.spice.profitmandi.dao.entity.catalog.Item;
27
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
21552 ashik.ali 28
 
29
@NamedQueries({
21585 ashik.ali 30
	@NamedQuery(
21589 ashik.ali 31
		name = "InventoryItem.selectScannedCount",
21596 ashik.ali 32
		query = "select ii.itemId, sum(ii.initialQuantity) from InventoryItem ii "
23329 ashik.ali 33
				+ "where ii.itemId in :itemIds and ii.fofoId = :fofoId and ii.purchaseId = :purchaseId group by ii.itemId")
21552 ashik.ali 34
})
35
@Entity
36
@Table(name="fofo.inventory_item", schema = "fofo")
23983 amit.gupta 37
public class InventoryItem implements Comparable {
24607 amit.gupta 38
 
39
	public InventoryItem(String serialNumber) {
40
		this.serialNumber = serialNumber;
41
	}
42
 
43
	public InventoryItem() {
44
 
45
	}
46
 
21552 ashik.ali 47
	@Id
48
	@Column(name="id", unique=true, updatable=false)
49
	@GeneratedValue(strategy = GenerationType.IDENTITY)
50
	private int id;
51
 
52
	@Column(name = "item_id")
53
	private int itemId; 
54
 
55
	@Column(name = "fofo_id")
56
	private int fofoId; 
57
 
21609 ashik.ali 58
	@Column(name = "serial_number", length = 100)
59
	private String serialNumber; 
21552 ashik.ali 60
 
21613 kshitij.so 61
	@Column(name = "initial_quantity")
21552 ashik.ali 62
	private int initialQuantity;
63
 
64
	@Column(name = "good_quantity")
65
	private int goodQuantity; 
66
 
67
	@Column(name = "bad_quantity")
68
	private int badQuantity;
69
 
70
	@Column(name = "last_scan_type")
71
	@Enumerated(EnumType.STRING)
72
	private ScanType lastScanType;
73
 
21633 ashik.ali 74
	@Column(name = "purchase_id")
75
	private int purchaseId;
21552 ashik.ali 76
 
21662 kshitij.so 77
	@Column(name="unit_price")
23110 ashik.ali 78
	private float unitPrice;
21662 kshitij.so 79
 
21710 ashik.ali 80
	@Column(name = "price_drop_amount")
23110 ashik.ali 81
	private float priceDropAmount;
21710 ashik.ali 82
 
22352 ashik.ali 83
	@Column(name = "buy_back", columnDefinition = "tinyint(1) default 1")
84
	private boolean buyBack;
85
 
22859 ashik.ali 86
	@Column(name = "igst_rate")
87
	private float igstRate;
88
 
89
	@Column(name = "cgst_rate")
90
	private float cgstRate;
91
 
92
	@Column(name = "sgst_rate")
93
	private float sgstRate;
94
 
95
	@Column(name = "hsn_code")
96
	private String hsnCode;
97
 
21639 kshitij.so 98
	@Convert(converter = LocalDateTimeAttributeConverter.class)
21552 ashik.ali 99
	@Column(name = "create_timestamp")
21640 kshitij.so 100
	private LocalDateTime createTimestamp = LocalDateTime.now();
21653 ashik.ali 101
 
21710 ashik.ali 102
	@Convert(converter = LocalDateTimeAttributeConverter.class)
103
	@Column(name = "update_timestamp")
22216 ashik.ali 104
	@UpdateTimestamp
21710 ashik.ali 105
	private LocalDateTime updateTimestamp = LocalDateTime.now();
106
 
21653 ashik.ali 107
	@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
108
	@JoinColumn(name="item_id",insertable=false,updatable=false,nullable=false, referencedColumnName = "id")
109
	private Item item;
23019 ashik.ali 110
 
111
	@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
112
	@JoinColumn(name="purchase_id",insertable=false,updatable=false,nullable=false, referencedColumnName = "id")
113
	private Purchase purchase;
23527 ashik.ali 114
 
115
	@Transient
116
	private String itemDescription;
21552 ashik.ali 117
 
118
	public int getId() {
119
		return id;
120
	}
121
 
122
	public void setId(int id) {
123
		this.id = id;
124
	}
125
 
126
	public int getItemId() {
127
		return itemId;
128
	}
129
 
130
	public void setItemId(int itemId) {
131
		this.itemId = itemId;
132
	}
21984 kshitij.so 133
 
134
	public void setFofoId(int fofoId) {
135
		this.fofoId = fofoId;
136
	}
21552 ashik.ali 137
 
138
	public int getFofoId() {
139
		return fofoId;
140
	}
141
 
21609 ashik.ali 142
	public String getSerialNumber() {
143
		return serialNumber;
21552 ashik.ali 144
	}
21609 ashik.ali 145
	public void setSerialNumber(String serialNumber) {
146
		this.serialNumber = serialNumber;
21552 ashik.ali 147
	}
21567 ashik.ali 148
 
21552 ashik.ali 149
	public int getInitialQuantity() {
150
		return initialQuantity;
151
	}
152
 
23110 ashik.ali 153
	public float getUnitPrice() {
21984 kshitij.so 154
		return unitPrice;
155
	}
156
 
157
	public void setUnitPrice(Float unitPrice) {
158
		this.unitPrice = unitPrice;
159
	}
160
 
21552 ashik.ali 161
	public void setInitialQuantity(int initialQuantity) {
162
		this.initialQuantity = initialQuantity;
163
	}
23110 ashik.ali 164
 
165
	public float getNetPrice(){
166
		return unitPrice - priceDropAmount;
167
	}
21552 ashik.ali 168
 
169
	public int getGoodQuantity() {
170
		return goodQuantity;
171
	}
172
 
173
	public void setGoodQuantity(int goodQuantity) {
174
		this.goodQuantity = goodQuantity;
175
	}
176
 
177
	public int getBadQuantity() {
178
		return badQuantity;
179
	}
180
 
181
	public void setBadQuantity(int badQuantity) {
182
		this.badQuantity = badQuantity;
183
	}
184
 
185
	public ScanType getLastScanType() {
186
		return lastScanType;
187
	}
188
 
189
	public void setLastScanType(ScanType lastScanType) {
190
		this.lastScanType = lastScanType;
191
	}
21633 ashik.ali 192
 
193
	public int getPurchaseId() {
194
		return purchaseId;
21552 ashik.ali 195
	}
21633 ashik.ali 196
	public void setPurchaseId(int purchaseId) {
197
		this.purchaseId = purchaseId;
21552 ashik.ali 198
	}
21710 ashik.ali 199
 
23110 ashik.ali 200
	public float getPriceDropAmount() {
21710 ashik.ali 201
		return priceDropAmount;
202
	}
23110 ashik.ali 203
	public void setPriceDropAmount(float priceDropAmount) {
21710 ashik.ali 204
		this.priceDropAmount = priceDropAmount;
205
	}
22859 ashik.ali 206
 
207
	public float getIgstRate() {
208
		return igstRate;
209
	}
210
	public void setIgstRate(float igstRate) {
211
		this.igstRate = igstRate;
212
	}
213
	public float getCgstRate() {
214
		return cgstRate;
215
	}
216
	public void setCgstRate(float cgstRate) {
217
		this.cgstRate = cgstRate;
218
	}
219
	public float getSgstRate() {
220
		return sgstRate;
221
	}
222
	public void setSgstRate(float sgstRate) {
223
		this.sgstRate = sgstRate;
224
	}
225
	public String getHsnCode() {
226
		return hsnCode;
227
	}
228
	public void setHsnCode(String hsnCode) {
229
		this.hsnCode = hsnCode;
230
	}
21552 ashik.ali 231
 
232
	public LocalDateTime getCreateTimestamp() {
233
		return createTimestamp;
234
	}
235
 
236
	public void setCreateTimestamp(LocalDateTime createTimestamp) {
237
		this.createTimestamp = createTimestamp;
238
	}
21653 ashik.ali 239
 
21710 ashik.ali 240
	public LocalDateTime getUpdateTimestamp() {
241
		return updateTimestamp;
242
	}
243
	public void setUpdateTimestamp(LocalDateTime updateTimestamp) {
244
		this.updateTimestamp = updateTimestamp;
245
	}
246
 
21653 ashik.ali 247
	public Item getItem() {
248
		return item;
249
	}
250
	public void setItem(Item item) {
251
		this.item = item;
252
	}
21602 ashik.ali 253
 
22352 ashik.ali 254
	public boolean isBuyBack() {
255
		return buyBack;
256
	}
22009 ashik.ali 257
 
22352 ashik.ali 258
	public void setBuyBack(boolean buyBack) {
259
		this.buyBack = buyBack;
260
	}
261
 
23019 ashik.ali 262
	public Purchase getPurchase() {
263
		return purchase;
264
	}
265
 
266
	public void setPurchase(Purchase purchase) {
267
		this.purchase = purchase;
268
	}
269
 
23527 ashik.ali 270
	public String getFormattedCreateTimestamp(){
271
		if(createTimestamp == null){
272
			return null;
273
		}
24402 amit.gupta 274
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");
23527 ashik.ali 275
		return createTimestamp.format(formatter);
276
    }
277
 
278
	public String getItemDescription() {
279
		return itemDescription;
280
	}
281
 
282
	public void setItemDescription(String itemDescription) {
283
		this.itemDescription = itemDescription;
284
	}
285
 
21602 ashik.ali 286
	@Override
22009 ashik.ali 287
	public int hashCode() {
288
		final int prime = 31;
289
		int result = 1;
290
		result = prime * result + id;
291
		return result;
292
	}
293
 
294
	@Override
295
	public boolean equals(Object obj) {
296
		if (this == obj)
297
			return true;
298
		if (obj == null)
299
			return false;
300
		if (getClass() != obj.getClass())
301
			return false;
302
		InventoryItem other = (InventoryItem) obj;
303
		if (id != other.id)
304
			return false;
305
		return true;
306
	}
307
 
308
	@Override
21602 ashik.ali 309
	public String toString() {
21662 kshitij.so 310
		return "InventoryItem [id=" + id + ", itemId=" + itemId + ", fofoId=" + fofoId + ", serialNumber="
311
				+ serialNumber + ", initialQuantity=" + initialQuantity + ", goodQuantity=" + goodQuantity
312
				+ ", badQuantity=" + badQuantity + ", lastScanType=" + lastScanType + ", purchaseId=" + purchaseId
22352 ashik.ali 313
				+ ", unitPrice=" + unitPrice + ", priceDropAmount=" + priceDropAmount + ", buyBack=" + buyBack
22859 ashik.ali 314
				+ ", igstRate=" + igstRate + ", cgstRate=" + cgstRate + ", sgstRate=" + sgstRate + ", hsnCode="
315
				+ hsnCode + ", createTimestamp=" + createTimestamp + ", updateTimestamp=" + updateTimestamp + ", item="
23019 ashik.ali 316
				+ item + ", purchase=" + purchase + "]";
21602 ashik.ali 317
	}
23983 amit.gupta 318
 
319
	@Override
320
	public int compareTo(Object o) {
321
		return o.hashCode() - this.hashCode();
322
	}
21552 ashik.ali 323
 
324
}