Subversion Repositories SmartDukaan

Rev

Rev 30652 | Rev 31860 | 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
 
21639 kshitij.so 3
import com.spice.profitmandi.dao.convertor.LocalDateTimeAttributeConverter;
21714 ashik.ali 4
import com.spice.profitmandi.dao.entity.catalog.Item;
5
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
30523 amit.gupta 6
import org.hibernate.annotations.UpdateTimestamp;
21552 ashik.ali 7
 
30523 amit.gupta 8
import javax.persistence.*;
9
import java.time.LocalDateTime;
10
import java.time.format.DateTimeFormatter;
11
import java.util.Objects;
12
 
21552 ashik.ali 13
@NamedQueries({
26213 amit.gupta 14
		@NamedQuery(name = "InventoryItem.selectScannedCount", query = "select ii.itemId, sum(ii.initialQuantity) from InventoryItem ii "
31163 amit.gupta 15
				+ "where ii.itemId in :itemIds and ii.fofoId = :fofoId and ii.purchaseId = :purchaseId group by ii.itemId"),
16
		//For Serialized models
17
		@NamedQuery(name = "InventoryItem.selectAllLineItemIdsByInventoryIds", query = "select new com.spice.profitmandi.dao.model.InventoryItemSaleModel(ii.id, lii.id)   from InventoryItem ii" +
18
				" join Purchase p on p.id = ii.purchaseId join Order o on o.invoiceNumber = p.purchaseReference" +
19
				" join LineItem li on li.orderId = o.id join LineItemImei lii on (lii.id=li.id and lii.serialNumber=ii.serialNumber)" +
20
				"where ii.id in :inventoryItemIds")
21
})
21552 ashik.ali 22
@Entity
26213 amit.gupta 23
@Table(name = "fofo.inventory_item", schema = "fofo")
23983 amit.gupta 24
public class InventoryItem implements Comparable {
26213 amit.gupta 25
 
24607 amit.gupta 26
	public InventoryItem(String serialNumber) {
27
		this.serialNumber = serialNumber;
28
	}
26213 amit.gupta 29
 
24607 amit.gupta 30
	public InventoryItem() {
26213 amit.gupta 31
 
24607 amit.gupta 32
	}
26213 amit.gupta 33
 
21552 ashik.ali 34
	@Id
26213 amit.gupta 35
	@Column(name = "id", unique = true, updatable = false)
21552 ashik.ali 36
	@GeneratedValue(strategy = GenerationType.IDENTITY)
37
	private int id;
26213 amit.gupta 38
 
21552 ashik.ali 39
	@Column(name = "item_id")
26213 amit.gupta 40
	private int itemId;
41
 
21552 ashik.ali 42
	@Column(name = "fofo_id")
26213 amit.gupta 43
	private int fofoId;
44
 
21609 ashik.ali 45
	@Column(name = "serial_number", length = 100)
26213 amit.gupta 46
	private String serialNumber;
47
 
21613 kshitij.so 48
	@Column(name = "initial_quantity")
21552 ashik.ali 49
	private int initialQuantity;
26213 amit.gupta 50
 
21552 ashik.ali 51
	@Column(name = "good_quantity")
26213 amit.gupta 52
	private int goodQuantity;
53
 
21552 ashik.ali 54
	@Column(name = "bad_quantity")
55
	private int badQuantity;
31163 amit.gupta 56
 
26303 amit.gupta 57
	@Column(name = "activation_timestamp")
58
	private LocalDateTime activationTimestamp;
26213 amit.gupta 59
 
21552 ashik.ali 60
	@Column(name = "last_scan_type")
61
	@Enumerated(EnumType.STRING)
62
	private ScanType lastScanType;
26213 amit.gupta 63
 
21633 ashik.ali 64
	@Column(name = "purchase_id")
65
	private int purchaseId;
26213 amit.gupta 66
 
67
	@Column(name = "unit_price")
23110 ashik.ali 68
	private float unitPrice;
26213 amit.gupta 69
 
21710 ashik.ali 70
	@Column(name = "price_drop_amount")
23110 ashik.ali 71
	private float priceDropAmount;
26213 amit.gupta 72
 
22352 ashik.ali 73
	@Column(name = "buy_back", columnDefinition = "tinyint(1) default 1")
74
	private boolean buyBack;
26213 amit.gupta 75
 
22859 ashik.ali 76
	@Column(name = "igst_rate")
77
	private float igstRate;
26213 amit.gupta 78
 
22859 ashik.ali 79
	@Column(name = "cgst_rate")
80
	private float cgstRate;
26213 amit.gupta 81
 
22859 ashik.ali 82
	@Column(name = "sgst_rate")
83
	private float sgstRate;
26213 amit.gupta 84
 
22859 ashik.ali 85
	@Column(name = "hsn_code")
86
	private String hsnCode;
26213 amit.gupta 87
 
21639 kshitij.so 88
	@Convert(converter = LocalDateTimeAttributeConverter.class)
21552 ashik.ali 89
	@Column(name = "create_timestamp")
21640 kshitij.so 90
	private LocalDateTime createTimestamp = LocalDateTime.now();
26213 amit.gupta 91
 
21710 ashik.ali 92
	@Convert(converter = LocalDateTimeAttributeConverter.class)
93
	@Column(name = "update_timestamp")
22216 ashik.ali 94
	@UpdateTimestamp
21710 ashik.ali 95
	private LocalDateTime updateTimestamp = LocalDateTime.now();
26213 amit.gupta 96
 
97
	@OneToOne(fetch = FetchType.LAZY)
98
	@JoinColumn(name = "item_id", insertable = false, updatable = false, nullable = false, referencedColumnName = "id")
21653 ashik.ali 99
	private Item item;
26213 amit.gupta 100
 
101
	@OneToOne(fetch = FetchType.LAZY)
102
	@JoinColumn(name = "purchase_id", insertable = false, updatable = false, nullable = false, referencedColumnName = "id")
23019 ashik.ali 103
	private Purchase purchase;
26213 amit.gupta 104
 
105
	public void setUnitPrice(float unitPrice) {
106
		this.unitPrice = unitPrice;
107
	}
108
 
23527 ashik.ali 109
	@Transient
110
	private String itemDescription;
21552 ashik.ali 111
 
26304 amit.gupta 112
	@Transient
113
	private LocalDateTime activatedTimestamp;
30523 amit.gupta 114
 
29093 amit.gupta 115
	@Transient
29095 amit.gupta 116
	private boolean priceDropValidated = true;
30523 amit.gupta 117
 
118
	@Transient
119
	private String pdValidationFailedReason = null;
120
 
121
	@Override
122
	public boolean equals(Object o) {
123
		if (this == o) return true;
124
		if (o == null || getClass() != o.getClass()) return false;
125
		InventoryItem that = (InventoryItem) o;
126
		return id == that.id && itemId == that.itemId && fofoId == that.fofoId && initialQuantity == that.initialQuantity && goodQuantity == that.goodQuantity && badQuantity == that.badQuantity && purchaseId == that.purchaseId && Float.compare(that.unitPrice, unitPrice) == 0 && Float.compare(that.priceDropAmount, priceDropAmount) == 0 && buyBack == that.buyBack && Float.compare(that.igstRate, igstRate) == 0 && Float.compare(that.cgstRate, cgstRate) == 0 && Float.compare(that.sgstRate, sgstRate) == 0 && priceDropValidated == that.priceDropValidated && pdValidationFailedReason == that.pdValidationFailedReason && Objects.equals(serialNumber, that.serialNumber) && Objects.equals(activationTimestamp, that.activationTimestamp) && lastScanType == that.lastScanType && Objects.equals(hsnCode, that.hsnCode) && Objects.equals(createTimestamp, that.createTimestamp) && Objects.equals(updateTimestamp, that.updateTimestamp) && Objects.equals(item, that.item) && Objects.equals(purchase, that.purchase) && Objects.equals(itemDescription, that.itemDescription) && Objects.equals(activatedTimestamp, that.activatedTimestamp);
127
	}
128
 
129
	@Override
130
	public int hashCode() {
131
		return Objects.hash(id, itemId, fofoId, serialNumber, initialQuantity, goodQuantity, badQuantity, activationTimestamp, lastScanType, purchaseId, unitPrice, priceDropAmount, buyBack, igstRate, cgstRate, sgstRate, hsnCode, createTimestamp, updateTimestamp, item, purchase, itemDescription, activatedTimestamp, priceDropValidated, pdValidationFailedReason);
132
	}
133
 
134
	public String getPdValidationFailedReason() {
135
		return pdValidationFailedReason;
136
	}
137
 
138
	public void setPdValidationFailedReason(String pdValidationFailedReason) {
139
		this.pdValidationFailedReason = pdValidationFailedReason;
140
	}
141
 
142
	@Override
143
	public String toString() {
144
		return "InventoryItem{" +
145
				"id=" + id +
146
				", itemId=" + itemId +
147
				", fofoId=" + fofoId +
148
				", serialNumber='" + serialNumber + '\'' +
149
				", initialQuantity=" + initialQuantity +
150
				", goodQuantity=" + goodQuantity +
151
				", badQuantity=" + badQuantity +
152
				", activationTimestamp=" + activationTimestamp +
153
				", lastScanType=" + lastScanType +
154
				", purchaseId=" + purchaseId +
155
				", unitPrice=" + unitPrice +
156
				", priceDropAmount=" + priceDropAmount +
157
				", buyBack=" + buyBack +
158
				", igstRate=" + igstRate +
159
				", cgstRate=" + cgstRate +
160
				", sgstRate=" + sgstRate +
161
				", hsnCode='" + hsnCode + '\'' +
162
				", createTimestamp=" + createTimestamp +
163
				", updateTimestamp=" + updateTimestamp +
164
				", item=" + item +
165
				", purchase=" + purchase +
166
				", itemDescription='" + itemDescription + '\'' +
167
				", activatedTimestamp=" + activatedTimestamp +
168
				", priceDropValidated=" + priceDropValidated +
169
				", pdValidationFailedReason='" + pdValidationFailedReason + '\'' +
170
				'}';
171
	}
172
 
26304 amit.gupta 173
	public LocalDateTime getActivatedTimestamp() {
174
		return activatedTimestamp;
175
	}
176
 
177
	public void setActivatedTimestamp(LocalDateTime activatedTimestamp) {
178
		this.activatedTimestamp = activatedTimestamp;
179
	}
180
 
21552 ashik.ali 181
	public int getId() {
182
		return id;
183
	}
184
 
185
	public void setId(int id) {
186
		this.id = id;
187
	}
188
 
189
	public int getItemId() {
190
		return itemId;
191
	}
192
 
193
	public void setItemId(int itemId) {
194
		this.itemId = itemId;
195
	}
26213 amit.gupta 196
 
21984 kshitij.so 197
	public void setFofoId(int fofoId) {
198
		this.fofoId = fofoId;
199
	}
21552 ashik.ali 200
 
201
	public int getFofoId() {
202
		return fofoId;
203
	}
204
 
21609 ashik.ali 205
	public String getSerialNumber() {
206
		return serialNumber;
21552 ashik.ali 207
	}
26213 amit.gupta 208
 
21609 ashik.ali 209
	public void setSerialNumber(String serialNumber) {
210
		this.serialNumber = serialNumber;
21552 ashik.ali 211
	}
26213 amit.gupta 212
 
21552 ashik.ali 213
	public int getInitialQuantity() {
214
		return initialQuantity;
215
	}
216
 
23110 ashik.ali 217
	public float getUnitPrice() {
21984 kshitij.so 218
		return unitPrice;
219
	}
220
 
221
	public void setUnitPrice(Float unitPrice) {
222
		this.unitPrice = unitPrice;
223
	}
224
 
21552 ashik.ali 225
	public void setInitialQuantity(int initialQuantity) {
226
		this.initialQuantity = initialQuantity;
227
	}
26213 amit.gupta 228
 
229
	public float getNetPrice() {
23110 ashik.ali 230
		return unitPrice - priceDropAmount;
231
	}
21552 ashik.ali 232
 
233
	public int getGoodQuantity() {
234
		return goodQuantity;
235
	}
236
 
237
	public void setGoodQuantity(int goodQuantity) {
238
		this.goodQuantity = goodQuantity;
239
	}
240
 
241
	public int getBadQuantity() {
242
		return badQuantity;
243
	}
244
 
245
	public void setBadQuantity(int badQuantity) {
246
		this.badQuantity = badQuantity;
247
	}
248
 
249
	public ScanType getLastScanType() {
250
		return lastScanType;
251
	}
252
 
253
	public void setLastScanType(ScanType lastScanType) {
254
		this.lastScanType = lastScanType;
255
	}
26213 amit.gupta 256
 
21633 ashik.ali 257
	public int getPurchaseId() {
258
		return purchaseId;
21552 ashik.ali 259
	}
26213 amit.gupta 260
 
21633 ashik.ali 261
	public void setPurchaseId(int purchaseId) {
262
		this.purchaseId = purchaseId;
21552 ashik.ali 263
	}
26213 amit.gupta 264
 
23110 ashik.ali 265
	public float getPriceDropAmount() {
21710 ashik.ali 266
		return priceDropAmount;
267
	}
26213 amit.gupta 268
 
23110 ashik.ali 269
	public void setPriceDropAmount(float priceDropAmount) {
21710 ashik.ali 270
		this.priceDropAmount = priceDropAmount;
271
	}
26213 amit.gupta 272
 
22859 ashik.ali 273
	public float getIgstRate() {
274
		return igstRate;
275
	}
26213 amit.gupta 276
 
22859 ashik.ali 277
	public void setIgstRate(float igstRate) {
278
		this.igstRate = igstRate;
279
	}
26213 amit.gupta 280
 
22859 ashik.ali 281
	public float getCgstRate() {
282
		return cgstRate;
283
	}
26213 amit.gupta 284
 
22859 ashik.ali 285
	public void setCgstRate(float cgstRate) {
286
		this.cgstRate = cgstRate;
287
	}
26213 amit.gupta 288
 
22859 ashik.ali 289
	public float getSgstRate() {
290
		return sgstRate;
291
	}
26213 amit.gupta 292
 
22859 ashik.ali 293
	public void setSgstRate(float sgstRate) {
294
		this.sgstRate = sgstRate;
295
	}
26213 amit.gupta 296
 
22859 ashik.ali 297
	public String getHsnCode() {
298
		return hsnCode;
299
	}
26213 amit.gupta 300
 
22859 ashik.ali 301
	public void setHsnCode(String hsnCode) {
302
		this.hsnCode = hsnCode;
303
	}
21552 ashik.ali 304
 
305
	public LocalDateTime getCreateTimestamp() {
306
		return createTimestamp;
307
	}
308
 
309
	public void setCreateTimestamp(LocalDateTime createTimestamp) {
310
		this.createTimestamp = createTimestamp;
311
	}
26213 amit.gupta 312
 
21710 ashik.ali 313
	public LocalDateTime getUpdateTimestamp() {
314
		return updateTimestamp;
315
	}
26213 amit.gupta 316
 
21710 ashik.ali 317
	public void setUpdateTimestamp(LocalDateTime updateTimestamp) {
318
		this.updateTimestamp = updateTimestamp;
319
	}
26213 amit.gupta 320
 
21653 ashik.ali 321
	public Item getItem() {
322
		return item;
323
	}
26213 amit.gupta 324
 
21653 ashik.ali 325
	public void setItem(Item item) {
326
		this.item = item;
327
	}
21602 ashik.ali 328
 
22352 ashik.ali 329
	public boolean isBuyBack() {
330
		return buyBack;
331
	}
26213 amit.gupta 332
 
22352 ashik.ali 333
	public void setBuyBack(boolean buyBack) {
334
		this.buyBack = buyBack;
335
	}
26213 amit.gupta 336
 
23019 ashik.ali 337
	public Purchase getPurchase() {
338
		return purchase;
339
	}
26213 amit.gupta 340
 
30652 amit.gupta 341
	public double getMarginPercentage(double amount) {
342
		return amount / this.getNetPrice() * (100 + this.getCgstRate() + this.getIgstRate() + this.getSgstRate());
343
	}
344
 
23019 ashik.ali 345
	public void setPurchase(Purchase purchase) {
346
		this.purchase = purchase;
347
	}
26213 amit.gupta 348
 
349
	public String getFormattedCreateTimestamp() {
350
		if (createTimestamp == null) {
23527 ashik.ali 351
			return null;
352
		}
24402 amit.gupta 353
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");
23527 ashik.ali 354
		return createTimestamp.format(formatter);
26213 amit.gupta 355
	}
356
 
23527 ashik.ali 357
	public String getItemDescription() {
358
		return itemDescription;
359
	}
26213 amit.gupta 360
 
23527 ashik.ali 361
	public void setItemDescription(String itemDescription) {
362
		this.itemDescription = itemDescription;
363
	}
26213 amit.gupta 364
 
29093 amit.gupta 365
	public LocalDateTime getActivationTimestamp() {
366
		return activationTimestamp;
367
	}
368
 
369
	public void setActivationTimestamp(LocalDateTime activationTimestamp) {
370
		this.activationTimestamp = activationTimestamp;
371
	}
372
 
373
	public boolean isPriceDropValidated() {
29095 amit.gupta 374
		return priceDropValidated;
29093 amit.gupta 375
	}
376
 
377
	public void setPriceDropValidated(boolean priceDropValidated) {
378
		this.priceDropValidated = priceDropValidated;
379
	}
380
 
22009 ashik.ali 381
	@Override
23983 amit.gupta 382
	public int compareTo(Object o) {
383
		return o.hashCode() - this.hashCode();
384
	}
26213 amit.gupta 385
 
21552 ashik.ali 386
}