package com.rjconsultores.ventaboletos.vo.comissao;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class ConferenciaComissaoVO implements Comparable<ConferenciaComissaoVO> {

	private Integer puntoventaId;
	private String nombpuntoventa;
	private String numPuntoVenta;
	private String competencia;
	private Date datamovimento;
	private Date dataInicial;
	private Date dataFinal;

	private Set<Integer> diasSemMovimentos = new TreeSet<Integer>();

	private List<DiaConferenciaComissaoVO> dias = new ArrayList<DiaConferenciaComissaoVO>();

	public ConferenciaComissaoVO() {
		super();
	}

	public ConferenciaComissaoVO(Integer puntoventaId, String competencia) {
		this();
		this.puntoventaId = puntoventaId;
		this.competencia = competencia;
	}

	public String getNombpuntoventa() {
		return nombpuntoventa;
	}

	public void setNombpuntoventa(String nombpuntoventa) {
		this.nombpuntoventa = nombpuntoventa;
	}

	public String getNumPuntoVenta() {
		return numPuntoVenta;
	}

	public void setNumPuntoVenta(String numPuntoVenta) {
		this.numPuntoVenta = numPuntoVenta;
	}

	public List<DiaConferenciaComissaoVO> getDias() {
		return dias;
	}

	public void setDias(List<DiaConferenciaComissaoVO> dias) {
		this.dias = dias;
	}

	public Integer getPuntoventaId() {
		return puntoventaId;
	}

	public void setPuntoventaId(Integer puntoventaId) {
		this.puntoventaId = puntoventaId;
	}

	public String getCompetencia() {
		return competencia;
	}

	public void setCompetencia(String competencia) {
		this.competencia = competencia;
	}

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

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		ConferenciaComissaoVO other = (ConferenciaComissaoVO) obj;
		if (competencia == null) {
			if (other.competencia != null)
				return false;
		} else if (!competencia.equals(other.competencia))
			return false;
		if (puntoventaId == null) {
			if (other.puntoventaId != null)
				return false;
		} else if (!puntoventaId.equals(other.puntoventaId))
			return false;
		return true;
	}

	public Set<Integer> getDiasSemMovimentos() {
		return diasSemMovimentos;
	}

	public void setDiasSemMovimentos(Set<Integer> diasSemMovimentos) {
		this.diasSemMovimentos = diasSemMovimentos;
	}

	public List<DiaConferenciaComissaoVO> getDiasOrdenado() {
		if(getDias() != null){
		Collections.sort(getDias());
		}
		return getDias();
	}

	@Override
	public int compareTo(ConferenciaComissaoVO o) {
		return this.getNombpuntoventa().compareToIgnoreCase(o.getNombpuntoventa());
	}

	public Date getDataMovimento() {
		return datamovimento;
	}

	public void setDataMovimento(Date datamovimento) {
		this.datamovimento = datamovimento;
	}

	public Date getDataInicial() {
		return dataInicial;
	}

	public void setDataInicial(Date dataInicial) {
		this.dataInicial = dataInicial;
	}

	public Date getDataFinal() {
		return dataFinal;
	}

	public void setDataFinal(Date dataFinal) {
		this.dataFinal = dataFinal;
	}
	
}
