Subversion Repositories SmartDukaan

Rev

Rev 23531 | Rev 23574 | 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.dtr;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

import javax.persistence.Column;
import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.UpdateTimestamp;

import com.spice.profitmandi.common.util.FormattingUtils;
import com.spice.profitmandi.dao.convertor.LocalDateTimeAttributeConverter;
import com.spice.profitmandi.dao.enumuration.catalog.AmountType;

/**
 * This class basically contains recharge operator details
 * 
 * @author ashikali
 *
 */

@Entity
@Table(name="dtr.recharge_commission", schema = "dtr")
public class RechargeCommission implements Serializable{
        
        private static final long serialVersionUID = 1L;
        
        public RechargeCommission() {
        }
        
        @Id
        @Column(name="operator_id", unique=true, updatable=false)
        //@GeneratedValue(strategy = GenerationType.IDENTITY)
        private int operatorId;
        
        @Column(name="our_commission")
        private float ourCommission;
        
        @Column(name="our_commission_type")
        @Enumerated(EnumType.STRING)
        private AmountType ourCommissionType;
        
        public float getOurCommission() {
                return ourCommission;
        }

        public void setOurCommission(float ourCommission) {
                this.ourCommission = ourCommission;
        }

        public AmountType getOurCommissionType() {
                return ourCommissionType;
        }

        public void setOurCommissionType(AmountType ourCommissionType) {
                this.ourCommissionType = ourCommissionType;
        }

        @Column(name="amount")
        private float amount;
        
        @Column(name = "amount_type")
        @Enumerated(EnumType.STRING)
        private AmountType amountType;
        
        public String getFormattedAmount() {
                return FormattingUtils.formatDecimalTwoDigits(this.getAmount());
        }
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="create_timestamp", updatable = false)
        private LocalDateTime createTimestamp = LocalDateTime.now();
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="update_timestamp", updatable = false)
        @UpdateTimestamp
        private LocalDateTime updateTimestamp = LocalDateTime.now();

        public int getOperatorId() {
                return operatorId;
        }
        
        public void setOperatorId(int operatorId) {
                this.operatorId = operatorId;
        }
        
        public float getAmount() {
                return amount;
        }
        
        public void setAmount(float amount) {
                this.amount = amount;
        }
        
        public AmountType getAmountType() {
                return amountType;
        }
        
        public void setAmountType(AmountType amountType) {
                this.amountType = amountType;
        }

        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 String getFormattedCreateTimestamp(){
                if(createTimestamp == null){
                        return null;
                }
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm");
                return createTimestamp.format(formatter);
    }
        
        public String getFormattedUpdateTimestamp(){
                if(updateTimestamp == null){
                        return null;
                }
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm");
                return updateTimestamp.format(formatter);
    }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + Float.floatToIntBits(amount);
                result = prime * result + ((amountType == null) ? 0 : amountType.hashCode());
                result = prime * result + ((createTimestamp == null) ? 0 : createTimestamp.hashCode());
                result = prime * result + operatorId;
                result = prime * result + Float.floatToIntBits(ourCommission);
                result = prime * result + ((ourCommissionType == null) ? 0 : ourCommissionType.hashCode());
                result = prime * result + ((updateTimestamp == null) ? 0 : updateTimestamp.hashCode());
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                RechargeCommission other = (RechargeCommission) obj;
                if (Float.floatToIntBits(amount) != Float.floatToIntBits(other.amount))
                        return false;
                if (amountType != other.amountType)
                        return false;
                if (createTimestamp == null) {
                        if (other.createTimestamp != null)
                                return false;
                } else if (!createTimestamp.equals(other.createTimestamp))
                        return false;
                if (operatorId != other.operatorId)
                        return false;
                if (Float.floatToIntBits(ourCommission) != Float.floatToIntBits(other.ourCommission))
                        return false;
                if (ourCommissionType != other.ourCommissionType)
                        return false;
                if (updateTimestamp == null) {
                        if (other.updateTimestamp != null)
                                return false;
                } else if (!updateTimestamp.equals(other.updateTimestamp))
                        return false;
                return true;
        }

        @Override
        public String toString() {
                return "RechargeCommission [operatorId=" + operatorId + ", ourCommission=" + ourCommission
                                + ", ourCommissionType=" + ourCommissionType + ", amount=" + amount + ", amountType=" + amountType
                                + ", createTimestamp=" + createTimestamp + ", updateTimestamp=" + updateTimestamp + "]";
        }
        
}