Subversion Repositories SmartDukaan

Rev

Rev 32868 | Rev 32950 | 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.catalog;

import com.spice.profitmandi.dao.enumuration.catalog.AchievementType;
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;

import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;
@NamedQueries({


//@NamedQuery(name = "Offer.selectOfferPayoutDumpReport", query = "select new com.spice.profitmandi.dao.model.OfferPayoutDumpModel(fs.id,  fs.code, "+
                //" ua.name,ua.city, ua.state,  i.brand, i.modelName, i.modelNumber i.color, op.id, op.serialNumber, op.offerId, o.name, o.schemeType, o.startDate, o.endDate, op.description," +
                //" op.slabAmount, op.amount, op.createTimestamp, op.rejectTimestamp" +
                //" FROM FofoStore fs join User u on u.id = fs.id join Address ua on u.addressId = ua.id " +
                //" join  OfferPayout op  on op.fofoId=fs.id + join Offer o on o.id=op.offerId +" +
                //"left join InventoryItem ii on ii.serialNumber=op.serialNumber  left join Item i on i.id=ii.itemId " +
                //"where  (op.createTimestamp between :startDate and :endDate) "  +
                //"or (op.rejectTimestamp  between :startDate and :endDate) " )
                //group by op.id
                //" where 1=1 and  o.billingTimestamp between :startDate and :endDate and o.retailerId = :fofoId "),
                @NamedQuery(name = "Offer.selectOfferPayoutDumpReport", query = "select new com.spice.profitmandi.dao.model.OfferPayoutDumpModel(fs.id, fs.code, " +
                                "ua.name, ua.city, ua.state, i.brand, i.modelName, i.modelNumber, i.color,  op.serialNumber, op.offerId, o.name, o.schemeType, o.startDate, o.endDate, op.description, " +
                                "op.slabAmount, op.amount, op.createTimestamp, op.rejectTimestamp) " +
                                "FROM FofoStore fs " +
                                "JOIN User u ON u.id = fs.id " +
                                "JOIN Address ua ON u.addressId = ua.id " +
                                "JOIN OfferPayout op ON op.fofoId = fs.id " +
                                "JOIN Offer o ON o.id = op.offerId " +
                                "LEFT JOIN InventoryItem ii ON ii.serialNumber = op.serialNumber " +
                                "LEFT JOIN Item i ON i.id = ii.itemId " +
                                "WHERE (op.createTimestamp BETWEEN :startDate AND :endDate) " +
                                "OR (op.rejectTimestamp BETWEEN :startDate AND :endDate)")


})
@Entity
@Table(name = "catalog.offer")
public class Offer implements Serializable {

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

        @Column(name = "brand_share_percentage", nullable = false)
        private double brandSharePercentage;

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

        @Column(name = "offer_notes")
        private String offerNotes;

        @Column(name = "terms")
        private String terms;

        @Column(name = "scheme_type")
        @Enumerated(EnumType.STRING)
        private OfferSchemeType schemeType;

        @Column(name = "base_criteria", nullable = false)
        private boolean baseCriteia;

        @Column(name = "sellin_percentage")
        private double sellinPercentage;

        @Column(name = "target_type")
        @Enumerated(EnumType.STRING)
        private AchievementType targetType;

        @Column(name = "payout_type")
        @Enumerated(EnumType.STRING)
        private AchievementType payoutType;

        @Column(name = "activation_brands")
        private String activationBrands;

        @Column(name = "item_criteria")
        private String itemCriteria;

        @Column(name = "partner_criteria")
        private String partnerCriteria;

        @Column(name = "start_date")
        private LocalDateTime startDate = LocalDateTime.now();

        @Column(name = "end_date")
        private LocalDateTime endDate = LocalDateTime.now();

        @Column(name = "created_timestamp")
        private LocalDateTime createdTimestamp = LocalDateTime.now();

        @Column(name = "booster")
        private boolean booster = false;


        @Column(name = "discount")
        private boolean discount = false;

        @Column(name = "active", columnDefinition = "TINYINT(1)")
        private boolean active;

        public LocalDateTime getProcessedTimestamp() {
                return processedTimestamp;
        }

        public void setProcessedTimestamp(LocalDateTime processedTimestamp) {
                this.processedTimestamp = processedTimestamp;
        }

        @Column(name = "processed_timestamp")
        private LocalDateTime processedTimestamp;


        public AchievementType getPayoutType() {
                return payoutType;
        }

        public void setPayoutType(AchievementType payoutType) {
                this.payoutType = payoutType;
        }

        public boolean isBaseCriteia() {
                return baseCriteia;
        }

        public void setBaseCriteia(boolean baseCriteia) {
                this.baseCriteia = baseCriteia;
        }

        public boolean isBooster() {
                return booster;
        }

        public void setBooster(boolean booster) {
                this.booster = booster;
        }

        @Transient




        public String getActivationBrands() {
                return activationBrands;
        }

        public void setActivationBrands(String activationBrands) {
                this.activationBrands = activationBrands;
        }


        public int getId() {
                return id;
        }

        public double getBrandSharePercentage() {
                return brandSharePercentage;
        }

        public void setBrandSharePercentage(double brandSharePercentage) {
                this.brandSharePercentage = brandSharePercentage;
        }

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

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public String getOfferNotes() {
                return offerNotes;
        }

        public void setOfferNotes(String offerNotes) {
                this.offerNotes = offerNotes;
        }

        public String getTerms() {
                return terms;
        }

        public void setTerms(String terms) {
                this.terms = terms;
        }

        public OfferSchemeType getSchemeType() {
                return schemeType;
        }

        public void setSchemeType(OfferSchemeType schemeType) {
                this.schemeType = schemeType;
        }

        public double getSellinPercentage() {
                return sellinPercentage;
        }

        public void setSellinPercentage(double sellinPercentage) {
                this.sellinPercentage = sellinPercentage;
        }

        public AchievementType getTargetType() {
                return targetType;
        }

        public void setTargetType(AchievementType targetType) {
                this.targetType = targetType;
        }

        public String getItemCriteria() {
                return itemCriteria;
        }

        public void setItemCriteria(String itemCriteria) {
                this.itemCriteria = itemCriteria;
        }

        public String getPartnerCriteria() {
                return partnerCriteria;
        }

        public void setPartnerCriteria(String partnerCriteria) {
                this.partnerCriteria = partnerCriteria;
        }

        public LocalDateTime getStartDate() {
                return startDate;
        }

        public void setStartDate(LocalDateTime startDate) {
                this.startDate = startDate;
        }

        public LocalDateTime getEndDate() {
                return endDate;
        }

        public void setEndDate(LocalDateTime endDate) {
                this.endDate = endDate;
        }

        public LocalDateTime getCreatedTimestamp() {
                return createdTimestamp;
        }

        public void setCreatedTimestamp(LocalDateTime createdTimestamp) {
                this.createdTimestamp = createdTimestamp;
        }

        public boolean isActive() {
                return active;
        }

        public void setActive(boolean active) {
                this.active = active;
        }

        @Override
        public String toString() {
                return "Offer{" +
                                "id=" + id +
                                ", brandSharePercentage=" + brandSharePercentage +
                                ", name='" + name + '\'' +
                                ", offerNotes='" + offerNotes + '\'' +
                                ", terms='" + terms + '\'' +
                                ", schemeType=" + schemeType +
                                ", baseCriteia=" + baseCriteia +
                                ", sellinPercentage=" + sellinPercentage +
                                ", targetType=" + targetType +
                                ", payoutType=" + payoutType +
                                ", activationBrands='" + activationBrands + '\'' +
                                ", itemCriteria='" + itemCriteria + '\'' +
                                ", partnerCriteria='" + partnerCriteria + '\'' +
                                ", startDate=" + startDate +
                                ", endDate=" + endDate +
                                ", createdTimestamp=" + createdTimestamp +
                                ", booster=" + booster +
                                ", discount=" + discount +
                                ", active=" + active +
                                ", processedTimestamp=" + processedTimestamp +

                                '}';
        }

        public boolean isDiscount() {
                return discount;
        }

        public void setDiscount(boolean discount) {
                this.discount = discount;
        }
}