Subversion Repositories SmartDukaan

Rev

Rev 21639 | Rev 21653 | 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;

import java.time.LocalDateTime;

import javax.persistence.Column;
import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

import com.spice.profitmandi.dao.convertor.LocalDateTimeAttributeConverter;
import com.spice.profitmandi.dao.enumuration.ScanType;

@NamedQueries({
        @NamedQuery(name = "InventoryItem.selectCount", query = "select count(ii) from InventoryItem ii"), 
        @NamedQuery(name = "InventoryItem.selectByItemId", query = "select ii from InventoryItem ii where ii.itemId = :itemId"),
        @NamedQuery(name = "InventoryItem.selectByFofoId", query = "select ii from InventoryItem ii where ii.fofoId = :fofoId"),
        //@NamedQuery(name = "InventoryItem.selectBySerialNumber", query = "select ii from InventoryItem ii join Imei i on ii.imeiId = i.id where i.imei = :serialNumber"),
        //@NamedQuery(name = "InventoryItem.selectQuantitySum", query = "select sum(ii.initialQuantity) as inventoryQuantity from InventoryItem ii where ii.itemId = :itemId and ii.fofoId = :fofoId and ii.purchaseReference = :purchaseReference")
        
        @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"),
        
        @NamedQuery(
                name = "InventoryItem.selectBySerialNumbers",
                query = "select ii from InventoryItem ii where ii.serialNumber in :serialNumbers"),
        
        @NamedQuery(
                        name = "InventoryItem.selectSerialNumberBySerialNumbers",
                        query = "select ii.serialNumber from InventoryItem ii where ii.serialNumber in :serialNumbers"),
        
})
@Entity
@Table(name="fofo.inventory_item", schema = "fofo")
public class 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 = "last_scan_type")
        @Enumerated(EnumType.STRING)
        private ScanType lastScanType;
        
        @Column(name = "purchase_id")
        private int purchaseId;
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name = "create_timestamp")
        private LocalDateTime createTimestamp = LocalDateTime.now();

        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 int getFofoId() {
                return fofoId;
        }

        public void setFofoId(int fofoId) {
                this.fofoId = fofoId;
        }

        public String getSerialNumber() {
                return serialNumber;
        }
        public void setSerialNumber(String serialNumber) {
                this.serialNumber = serialNumber;
        }
        

        public int getInitialQuantity() {
                return initialQuantity;
        }

        public void setInitialQuantity(int initialQuantity) {
                this.initialQuantity = initialQuantity;
        }

        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 LocalDateTime getCreateTimestamp() {
                return createTimestamp;
        }

        public void setCreateTimestamp(LocalDateTime createTimestamp) {
                this.createTimestamp = createTimestamp;
        }

        @Override
        public String toString() {
                return "InventoryItem [id=" + id + ", itemId=" + itemId + ", fofoId=" + fofoId + ", serialNumber=" + serialNumber
                                + ", initialQuantity=" + initialQuantity + ", goodQuantity=" + goodQuantity + ", badQuantity="
                                + badQuantity + ", lastScanType=" + lastScanType + ", purchaseId=" + purchaseId
                                + ", createTimestamp=" + createTimestamp + "]";
        }
        
        
        
}