Rev 31163 | Rev 33015 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed
package com.spice.profitmandi.dao.entity.fofo;import com.spice.profitmandi.dao.convertor.LocalDateTimeAttributeConverter;import com.spice.profitmandi.dao.entity.catalog.Item;import com.spice.profitmandi.dao.enumuration.fofo.ScanType;import org.hibernate.annotations.UpdateTimestamp;import javax.persistence.*;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import java.util.Objects;@NamedQueries({@NamedQuery(name = "InventoryItem.selectScannedCount", query = "select ii.itemId, sum(ii.initialQuantity) from InventoryItem ii "+ "where ii.itemId in :itemIds and ii.fofoId = :fofoId and ii.purchaseId = :purchaseId group by ii.itemId"),//For Serialized models@NamedQuery(name = "InventoryItem.selectAllLineItemIdsByInventoryIds", query = "select new com.spice.profitmandi.dao.model.InventoryItemSaleModel(ii.id, lii.id) from InventoryItem ii" +" join Purchase p on p.id = ii.purchaseId join Order o on o.invoiceNumber = p.purchaseReference" +" join LineItem li on li.orderId = o.id join LineItemImei lii on (lii.id=li.id and lii.serialNumber=ii.serialNumber)" +"where ii.id in :inventoryItemIds")})@Entity@Table(name = "fofo.inventory_item")public class InventoryItem implements Comparable {public InventoryItem(String serialNumber) {this.serialNumber = serialNumber;}public InventoryItem() {}@Id@Column(name = "id", unique = true, updatable = false)@GeneratedValue(strategy = GenerationType.IDENTITY)private int id;@Column(name = "item_id")private int itemId;@Column(name = "fofo_id")private int fofoId;@Column(name = "serial_number", length = 100)private String serialNumber;@Column(name = "initial_quantity")private int initialQuantity;@Column(name = "good_quantity")private int goodQuantity;@Column(name = "bad_quantity")private int badQuantity;@Column(name = "activation_timestamp")private LocalDateTime activationTimestamp;@Column(name = "last_scan_type")@Enumerated(EnumType.STRING)private ScanType lastScanType;@Column(name = "purchase_id")private int purchaseId;@Column(name = "unit_price")private float unitPrice;@Column(name = "price_drop_amount")private float priceDropAmount;@Column(name = "buy_back", columnDefinition = "tinyint(1) default 1")private boolean buyBack;@Column(name = "igst_rate")private float igstRate;@Column(name = "cgst_rate")private float cgstRate;@Column(name = "sgst_rate")private float sgstRate;@Column(name = "hsn_code")private String hsnCode;@Convert(converter = LocalDateTimeAttributeConverter.class)@Column(name = "create_timestamp")private LocalDateTime createTimestamp = LocalDateTime.now();@Convert(converter = LocalDateTimeAttributeConverter.class)@Column(name = "update_timestamp")@UpdateTimestampprivate LocalDateTime updateTimestamp = LocalDateTime.now();@OneToOne(fetch = FetchType.LAZY)@JoinColumn(name = "item_id", insertable = false, updatable = false, nullable = false, referencedColumnName = "id")private Item item;@OneToOne(fetch = FetchType.LAZY)@JoinColumn(name = "purchase_id", insertable = false, updatable = false, nullable = false, referencedColumnName = "id")private Purchase purchase;public void setUnitPrice(float unitPrice) {this.unitPrice = unitPrice;}@Transientprivate String itemDescription;@Transientprivate LocalDateTime activatedTimestamp;@Transientprivate boolean priceDropValidated = true;@Transientprivate String pdValidationFailedReason = null;@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;InventoryItem that = (InventoryItem) o;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);}@Overridepublic int hashCode() {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);}public String getPdValidationFailedReason() {return pdValidationFailedReason;}public void setPdValidationFailedReason(String pdValidationFailedReason) {this.pdValidationFailedReason = pdValidationFailedReason;}@Overridepublic String toString() {return "InventoryItem{" +"id=" + id +", itemId=" + itemId +", fofoId=" + fofoId +", serialNumber='" + serialNumber + '\'' +", initialQuantity=" + initialQuantity +", goodQuantity=" + goodQuantity +", badQuantity=" + badQuantity +", activationTimestamp=" + activationTimestamp +", lastScanType=" + lastScanType +", purchaseId=" + purchaseId +", unitPrice=" + unitPrice +", priceDropAmount=" + priceDropAmount +", buyBack=" + buyBack +", igstRate=" + igstRate +", cgstRate=" + cgstRate +", sgstRate=" + sgstRate +", hsnCode='" + hsnCode + '\'' +", createTimestamp=" + createTimestamp +", updateTimestamp=" + updateTimestamp +", item=" + item +", purchase=" + purchase +", itemDescription='" + itemDescription + '\'' +", activatedTimestamp=" + activatedTimestamp +", priceDropValidated=" + priceDropValidated +", pdValidationFailedReason='" + pdValidationFailedReason + '\'' +'}';}public LocalDateTime getActivatedTimestamp() {return activatedTimestamp;}public void setActivatedTimestamp(LocalDateTime activatedTimestamp) {this.activatedTimestamp = activatedTimestamp;}public int getId() {return id;}public void setId(int id) {this.id = id;}public int getItemId() {return itemId;}public void setItemId(int itemId) {this.itemId = itemId;}public void setFofoId(int fofoId) {this.fofoId = fofoId;}public int getFofoId() {return fofoId;}public String getSerialNumber() {return serialNumber;}public void setSerialNumber(String serialNumber) {this.serialNumber = serialNumber;}public int getInitialQuantity() {return initialQuantity;}public float getUnitPrice() {return unitPrice;}public void setUnitPrice(Float unitPrice) {this.unitPrice = unitPrice;}public void setInitialQuantity(int initialQuantity) {this.initialQuantity = initialQuantity;}public float getNetPrice() {return unitPrice - priceDropAmount;}public int getGoodQuantity() {return goodQuantity;}public void setGoodQuantity(int goodQuantity) {this.goodQuantity = goodQuantity;}public int getBadQuantity() {return badQuantity;}public void setBadQuantity(int badQuantity) {this.badQuantity = badQuantity;}public ScanType getLastScanType() {return lastScanType;}public void setLastScanType(ScanType lastScanType) {this.lastScanType = lastScanType;}public int getPurchaseId() {return purchaseId;}public void setPurchaseId(int purchaseId) {this.purchaseId = purchaseId;}public float getPriceDropAmount() {return priceDropAmount;}public void setPriceDropAmount(float priceDropAmount) {this.priceDropAmount = priceDropAmount;}public float getIgstRate() {return igstRate;}public void setIgstRate(float igstRate) {this.igstRate = igstRate;}public float getCgstRate() {return cgstRate;}public void setCgstRate(float cgstRate) {this.cgstRate = cgstRate;}public float getSgstRate() {return sgstRate;}public void setSgstRate(float sgstRate) {this.sgstRate = sgstRate;}public String getHsnCode() {return hsnCode;}public void setHsnCode(String hsnCode) {this.hsnCode = hsnCode;}public LocalDateTime getCreateTimestamp() {return createTimestamp;}public void setCreateTimestamp(LocalDateTime createTimestamp) {this.createTimestamp = createTimestamp;}public LocalDateTime getUpdateTimestamp() {return updateTimestamp;}public void setUpdateTimestamp(LocalDateTime updateTimestamp) {this.updateTimestamp = updateTimestamp;}public Item getItem() {return item;}public void setItem(Item item) {this.item = item;}public boolean isBuyBack() {return buyBack;}public void setBuyBack(boolean buyBack) {this.buyBack = buyBack;}public Purchase getPurchase() {return purchase;}public double getMarginPercentage(double amount) {return amount / this.getNetPrice() * (100 + this.getCgstRate() + this.getIgstRate() + this.getSgstRate());}public void setPurchase(Purchase purchase) {this.purchase = purchase;}public String getFormattedCreateTimestamp() {if (createTimestamp == null) {return null;}DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");return createTimestamp.format(formatter);}public String getItemDescription() {return itemDescription;}public void setItemDescription(String itemDescription) {this.itemDescription = itemDescription;}public LocalDateTime getActivationTimestamp() {return activationTimestamp;}public void setActivationTimestamp(LocalDateTime activationTimestamp) {this.activationTimestamp = activationTimestamp;}public boolean isPriceDropValidated() {return priceDropValidated;}public void setPriceDropValidated(boolean priceDropValidated) {this.priceDropValidated = priceDropValidated;}@Overridepublic int compareTo(Object o) {return o.hashCode() - this.hashCode();}}