Rev 30454 | Rev 30896 | 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.convertor.LocalDateTimeAttributeConverter;import com.spice.profitmandi.dao.entity.fofo.PartnerType;import com.spice.profitmandi.dao.enumuration.catalog.AmountType;import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;import javax.persistence.*;import java.io.Serializable;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import java.util.*;/*** This class basically contains scheme details** @author ashikali**/@Entity@Table(name = "catalog.scheme", schema = "catalog")public class Scheme implements Serializable {public PartnerType getPartnerType() {return partnerType;}public void setPartnerType(PartnerType partnerType) {this.partnerType = partnerType;}private static final long serialVersionUID = 1L;public Scheme() {}@Id@Column(name = "id")@GeneratedValue(strategy = GenerationType.IDENTITY)private int id;@Column(name = "name")private String name;@Column(name = "description")private String description;@Column(name = "type")@Enumerated(EnumType.STRING)private SchemeType type;@Column(name = "amount_type")@Enumerated(EnumType.STRING)private AmountType amountType;@Column(name = "base_plus_gst_calc")private boolean basePlusGstCalc;@Column(name = "amount")private float amount;@Convert(converter = LocalDateTimeAttributeConverter.class)@Column(name = "start_date_time")private LocalDateTime startDateTime = LocalDateTime.now();@Convert(converter = LocalDateTimeAttributeConverter.class)@Column(name = "end_date_time")private LocalDateTime endDateTime = LocalDateTime.now();@Convert(converter = LocalDateTimeAttributeConverter.class)@Column(name = "create_timestamp")private LocalDateTime createTimestamp = LocalDateTime.now();@Convert(converter = LocalDateTimeAttributeConverter.class)@Column(name = "active_timestamp")private LocalDateTime activeTimestamp = null;@Convert(converter = LocalDateTimeAttributeConverter.class)@Column(name = "expire_timestamp")private LocalDateTime expireTimestamp = null;@Column(name = "created_by")private int createdBy;@Columnprivate boolean cashback;@Transientprivate Set<Integer> retailerIds = new HashSet<>();@Transientprivate String amountModel;@Transientprivate float schemeValue;public float getSchemeValue() {return schemeValue;}public void setSchemeValue(float schemeValue) {this.schemeValue = schemeValue;}@Column(name = "partner_type")@Enumerated(EnumType.STRING)private PartnerType partnerType;@Overridepublic String toString() {return "Scheme{" +"id=" + id +", name='" + name + '\'' +", description='" + description + '\'' +", type=" + type +", amountType=" + amountType +", gstReversal=" + basePlusGstCalc +", amount=" + amount +", startDateTime=" + startDateTime +", endDateTime=" + endDateTime +", createTimestamp=" + createTimestamp +", activeTimestamp=" + activeTimestamp +", expireTimestamp=" + expireTimestamp +", createdBy=" + createdBy +", cashback=" + cashback +", retailerIds=" + retailerIds +", amountModel='" + amountModel + '\'' +", schemeValue=" + schemeValue +", partnerType=" + partnerType +", catalogStringMap=" + catalogStringMap +'}';}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Scheme scheme = (Scheme) o;return id == scheme.id && basePlusGstCalc == scheme.basePlusGstCalc && Float.compare(scheme.amount, amount) == 0 && createdBy == scheme.createdBy && cashback == scheme.cashback && Float.compare(scheme.schemeValue, schemeValue) == 0 && Objects.equals(name, scheme.name) && Objects.equals(description, scheme.description) && type == scheme.type && amountType == scheme.amountType && Objects.equals(startDateTime, scheme.startDateTime) && Objects.equals(endDateTime, scheme.endDateTime) && Objects.equals(createTimestamp, scheme.createTimestamp) && Objects.equals(activeTimestamp, scheme.activeTimestamp) && Objects.equals(expireTimestamp, scheme.expireTimestamp) && Objects.equals(retailerIds, scheme.retailerIds) && Objects.equals(amountModel, scheme.amountModel) && partnerType == scheme.partnerType && Objects.equals(catalogStringMap, scheme.catalogStringMap);}@Overridepublic int hashCode() {return Objects.hash(id, name, description, type, amountType, basePlusGstCalc, amount, startDateTime, endDateTime, createTimestamp, activeTimestamp, expireTimestamp, createdBy, cashback, retailerIds, amountModel, schemeValue, partnerType, catalogStringMap);}@Transientprivate Map<Integer, String> catalogStringMap = new HashMap<>();public int getId() {return id;}public void setId(int id) {this.id = id;}public String getAmountModel() {return amountModel;}public void setAmountModel(String amountModel) {this.amountModel = amountModel;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public boolean isCashback() {return cashback;}public void setCashback(boolean cashback) {this.cashback = cashback;}public SchemeType getType() {return type;}public void setType(SchemeType type) {this.type = type;}public AmountType getAmountType() {return amountType;}public void setAmountType(AmountType amountType) {this.amountType = amountType;}public float getAmount() {return amount;}public void setAmount(float amount) {this.amount = amount;}public LocalDateTime getStartDateTime() {return startDateTime;}public void setStartDateTime(LocalDateTime startDateTime) {this.startDateTime = startDateTime;}public LocalDateTime getEndDateTime() {return endDateTime;}public void setEndDateTime(LocalDateTime endDateTime) {this.endDateTime = endDateTime;}public LocalDateTime getCreateTimestamp() {return createTimestamp;}public void setCreateTimestamp(LocalDateTime createTimestamp) {this.createTimestamp = createTimestamp;}public int getCreatedBy() {return createdBy;}public void setCreatedBy(int createdBy) {this.createdBy = createdBy;}public LocalDateTime getActiveTimestamp() {return activeTimestamp;}public void setActiveTimestamp(LocalDateTime activeTimestamp) {this.activeTimestamp = activeTimestamp;}public LocalDateTime getExpireTimestamp() {return expireTimestamp;}public void setExpireTimestamp(LocalDateTime expireTimestamp) {this.expireTimestamp = expireTimestamp;}public String getFormattedStartDateTime() {if (startDateTime == null) {return null;}DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");return startDateTime.format(formatter);}public String getFormattedEndDateTime() {if (endDateTime == null) {return null;}DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");return endDateTime.format(formatter);}public String getFormattedCreateTimestamp() {if (createTimestamp == null) {return null;}DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");return createTimestamp.format(formatter);}public String getFormattedActiveTimestamp() {if (activeTimestamp == null) {return null;}DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");return activeTimestamp.format(formatter);}public String getFormattedExpireTimestamp() {if (expireTimestamp == null) {return null;}DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");return expireTimestamp.format(formatter);}public Set<Integer> getRetailerIds() {return retailerIds;}public void setRetailerIds(Set<Integer> retailerIds) {this.retailerIds = retailerIds;}public String getRetailerIdsString() {Set<String> stringRetailerIds = new HashSet<>();if (!retailerIds.isEmpty()) {for (int retailerId : retailerIds) {stringRetailerIds.add(String.valueOf(retailerId));}}return String.join(", ", stringRetailerIds);}public boolean isBasePlusGstCalc() {return basePlusGstCalc;}public void setBasePlusGstCalc(boolean gstReversal) {this.basePlusGstCalc = gstReversal;}public Map<Integer, String> getCatalogStringMap() {return catalogStringMap;}public void setCatalogStringMap(Map<Integer, String> catalogStringMap) {this.catalogStringMap = catalogStringMap;}public boolean isWithinRange(LocalDateTime testDate) {return !(testDate.isBefore(this.startDateTime) || testDate.isAfter(endDateTime));}}