Subversion Repositories SmartDukaan

Rev

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