Subversion Repositories SmartDukaan

Rev

Rev 30644 | 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 javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * This class basically contains api details
 *
 * @author ashikali
 */
@Entity
@Table(name = "fofo.purchase")
@NamedQueries({
                @NamedQuery(name = "Purchase.selectByModelsAndSaleBetween", query = "select p from Purchase p join InventoryItem ii on p.id = ii.purchaseId"
                                + " join Item i on i.id=ii.itemId where i.catalogItemId in :catalogItemIds"
                                + " and p.createTimestamp between :startDate and :endDate")
})


public class Purchase implements Serializable {

        private static final long serialVersionUID = 1L;

        public Purchase() {
        }

        @Id
        @Column(name = "id")
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;

        @Column(name = "fofo_id")
        private int fofoId;

        @Column(name = "purchase_reference")
        private String purchaseReference;

        @Column(name = "serialized_quantity")
        private int serializedQuantity;

        @Column(name = "non_serialized_quantity")
        private int nonSerializedQuantity;

        @Column(name = "unfullfilled_serialized_quantity")
        private int unfullfilledSerializedQuantity;

        @Column(name = "unfullfilled_non_serialized_quantity")
        private int unfullfilledNonSerializedQuantity;

        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name = "complete_timestamp")
        private LocalDateTime completeTimestamp = null;

        @Column(name = "cashback")
        private float cashback;

        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name = "create_timestamp")
        private LocalDateTime createTimestamp = LocalDateTime.now();

        @Transient
        private LocalDateTime invoiceTimeStamp;

        public LocalDateTime getInvoiceTimeStamp() {
                return invoiceTimeStamp;
        }

        public void setInvoiceTimeStamp(LocalDateTime invoiceTimeStamp) {
                this.invoiceTimeStamp = invoiceTimeStamp;
        }

        public int getId() {
                return id;
        }

        public void setId(int id) {
                this.id = id;
        }

        public int getFofoId() {
                return fofoId;
        }

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

        public String getPurchaseReference() {
                return purchaseReference;
        }

        public void setPurchaseReference(String purchaseReference) {
                this.purchaseReference = purchaseReference;
        }

        public int getSerializedQuantity() {
                return serializedQuantity;
        }

        public void setSerializedQuantity(int serializedQuantity) {
                this.serializedQuantity = serializedQuantity;
        }

        public int getNonSerializedQuantity() {
                return nonSerializedQuantity;
        }

        public void setNonSerializedQuantity(int nonSerializedQuantity) {
                this.nonSerializedQuantity = nonSerializedQuantity;
        }

        public int getUnfullfilledSerializedQuantity() {
                return unfullfilledSerializedQuantity;
        }

        public void setUnfullfilledSerializedQuantity(int unfullfilledSerializedQuantity) {
                this.unfullfilledSerializedQuantity = unfullfilledSerializedQuantity;
        }

        public int getUnfullfilledNonSerializedQuantity() {
                return unfullfilledNonSerializedQuantity;
        }

        public void setUnfullfilledNonSerializedQuantity(int unfullfilledNonSerializedQuantity) {
                this.unfullfilledNonSerializedQuantity = unfullfilledNonSerializedQuantity;
        }

        public LocalDateTime getCompleteTimestamp() {
                return completeTimestamp;
        }

        public void setCompleteTimestamp(LocalDateTime completeTimestamp) {
                this.completeTimestamp = completeTimestamp;
        }

        public float getCashback() {
                return cashback;
        }

        public void setCashback(float cashback) {
                this.cashback = cashback;
        }

        public LocalDateTime getCreateTimestamp() {
                return createTimestamp;
        }

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

        public String getFormattedDate() {
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");
                return this.createTimestamp.format(formatter);
        }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + id;
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Purchase other = (Purchase) obj;
                if (id != other.id)
                        return false;
                return true;
        }

        @Override
        public String toString() {
                return "Purchase [id=" + id + ", purchaseReference=" + purchaseReference + ", serializedQuantity="
                                + serializedQuantity + ", nonSerializedQuantity=" + nonSerializedQuantity
                                + ", unfullfilledSerializedQuantity=" + unfullfilledSerializedQuantity
                                + ", unfullfilledNonSerializedQuantity=" + unfullfilledNonSerializedQuantity + ", completedTimestamp="
                                + completeTimestamp + ", cashback=" + cashback + ", createTimestamp=" + createTimestamp + "]";
        }

}