Subversion Repositories SmartDukaan

Rev

Rev 24402 | 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.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

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

import com.spice.profitmandi.dao.convertor.LocalDateAttributeConverter;
import com.spice.profitmandi.dao.convertor.LocalDateTimeAttributeConverter;

/**
 * This class basically contains punch in/out details
 * 
 * @author ashikali
 *
 */

@Entity
@Table(name="dtr.punch_in_out")
public class PunchInOut implements Serializable{
        
        private static final long serialVersionUID = 1L;
        
        public PunchInOut() {
        }
        
        @Id
        @Column(name = "fofo_id")
        private int fofoId;
        
        @Id
        @Convert(converter = LocalDateAttributeConverter.class)
        @Column(name="create_date", updatable = false, unique = true)
        private LocalDate createDate = LocalDate.now();
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="punch_in_timestamp", updatable = false)
        private LocalDateTime punchInTimestamp = null;
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="punch_out_timestamp")
        private LocalDateTime punchOutTimestamp = null;
        
        public int getFofoId() {
                return fofoId;
        }
        
        public void setFofoId(int fofoId) {
                this.fofoId = fofoId;
        }
        
        public LocalDateTime getPunchInTimestamp() {
                return punchInTimestamp;
        }
        
        public void setPunchInTimestamp(LocalDateTime punchInTimestamp) {
                this.punchInTimestamp = punchInTimestamp;
        }
        
        public LocalDateTime getPunchOutTimestamp() {
                return punchOutTimestamp;
        }
        
        public void setPunchOutTimestamp(LocalDateTime punchOutTimestamp) {
                this.punchOutTimestamp = punchOutTimestamp;
        }
        
        public String getFormattedCreateDate(){
                if(createDate == null){
                        return null;
                }
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
                return createDate.format(formatter);
    }
        
        public String getFormattedPunchInTimestamp(){
                if(punchInTimestamp == null){
                        return null;
                }
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");
                return punchInTimestamp.format(formatter);
    }
        
        public String getFormattedPunchOutTimestamp(){
                if(punchOutTimestamp == null){
                        return null;
                }
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");
                return punchOutTimestamp.format(formatter);
    }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + ((createDate == null) ? 0 : createDate.hashCode());
                result = prime * result + fofoId;
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                PunchInOut other = (PunchInOut) obj;
                if (createDate == null) {
                        if (other.createDate != null)
                                return false;
                } else if (!createDate.equals(other.createDate))
                        return false;
                if (fofoId != other.fofoId)
                        return false;
                return true;
        }

        @Override
        public String toString() {
                return "PunchInOut [fofoId=" + fofoId + ", createDate=" + createDate + ", punchInTimestamp=" + punchInTimestamp
                                + ", punchOutTimestamp=" + punchOutTimestamp + "]";
        }
        
                
}