package com.rjconsultores.ventaboletos.vo.comissao;

import java.math.BigDecimal;
import java.util.Date;

import com.rjconsultores.ventaboletos.constantes.DescricaoTipoVenta;
import com.rjconsultores.ventaboletos.entidad.Conferencia;
import com.rjconsultores.ventaboletos.enums.comissao.StatusLogConferencia;
import com.rjconsultores.ventaboletos.enums.comissao.TipoLogConferencia;

public class LogConferenciaVO {

	private Long logconferenciaId;
	private String observacao;
	private BigDecimal preco;
	private Integer status;
	private String numfoliosistema;
	private Long boletoId;
	private Long eventoextraId;
	private Long ocdId;
	private Integer tipo;
	private String numoperacion;
	private String desctipoevento;
	private String nombusuario;
	private Date fecmodif;
	private Short indcredito;
	private String nombempresa;
	private String nombpuntoventa;
	private Date datamovimento;
	private String desccategoria;
	private Integer tipoventa;
	private String descinfoevento;
	private String desctipoinformativo;
	private String descpendencia;
	private String descComportamentoData;
	private Long cajaId;
	private Conferencia conferencia;
	private Integer pendenciaId;

	public LogConferenciaVO() {
		super();
	}

	public LogConferenciaVO(Long logconferenciaId, String observacao, BigDecimal preco, Integer status, String numfoliosistema) {
		this();
		this.logconferenciaId = logconferenciaId;
		this.observacao = observacao;
		this.preco = preco;
		this.status = status;
		this.numfoliosistema = numfoliosistema;
	}

	public LogConferenciaVO(Long logconferenciaId) {
		this();
		this.logconferenciaId = logconferenciaId;
	}

	public Long getLogconferenciaId() {
		return logconferenciaId;
	}

	public void setLogconferenciaId(Long logconferenciaId) {
		this.logconferenciaId = logconferenciaId;
	}

	public String getObservacao() {
		return observacao;
	}

	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}

	public BigDecimal getPreco() {
		return preco;
	}

	public void setPreco(BigDecimal preco) {
		this.preco = preco;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public String getNumfoliosistema() {
		return numfoliosistema;
	}

	public void setNumfoliosistema(String numfoliosistema) {
		this.numfoliosistema = numfoliosistema;
	}

	public String getStatusDescricao() {
		StatusLogConferencia statusLogConferencia = StatusLogConferencia.getStatusLogConferencia(status);
		if (statusLogConferencia != null) {
			return statusLogConferencia.toString();
		}
		return "";
	}

	public Long getEventoextraId() {
		return eventoextraId;
	}

	public void setEventoextraId(Long eventoextraId) {
		this.eventoextraId = eventoextraId;
	}

	public Long getOcdId() {
		return ocdId;
	}

	public void setOcdId(Long ocdId) {
		this.ocdId = ocdId;
	}

	public Integer getTipo() {
		return tipo;
	}

	public void setTipo(Integer tipo) {
		this.tipo = tipo;
	}

	public String getTipoDescricao() {
		TipoLogConferencia tipoLogConferencia = TipoLogConferencia.getTipoLogConferencia(tipo);
		if (tipoLogConferencia != null) {
			return tipoLogConferencia.toString();
		}
		return "";
	}

	public String getNumoperacion() {
		return numoperacion;
	}

	public void setNumoperacion(String numoperacion) {
		this.numoperacion = numoperacion;
	}

	public String getDesctipoevento() {
		return desctipoevento;
	}

	public void setDesctipoevento(String desctipoevento) {
		this.desctipoevento = desctipoevento;
	}

	public Long getBoletoId() {
		return boletoId;
	}

	public void setBoletoId(Long boletoId) {
		this.boletoId = boletoId;
	}

	public String getNombusuario() {
		return nombusuario;
	}

	public void setNombusuario(String nombusuario) {
		this.nombusuario = nombusuario;
	}

	public Date getFecmodif() {
		return fecmodif;
	}

	public void setFecmodif(Date fecmodif) {
		this.fecmodif = fecmodif;
	}

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

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

	public Short isIndcredito() {
		return indcredito;
	}

	public void setIndcredito(Short indcredito) {
		this.indcredito = indcredito;
	}

	public String getNombempresa() {
		return nombempresa;
	}

	public void setNombempresa(String nombempresa) {
		this.nombempresa = nombempresa;
	}

	public String getNombpuntoventa() {
		return nombpuntoventa;
	}

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

	public Date getDatamovimento() {
		return datamovimento;
	}

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

	public String getDesccategoria() {
		return desccategoria;
	}

	public void setDesccategoria(String desccategoria) {
		this.desccategoria = desccategoria;
	}

	public String getDebitoCredito() {
		return isIndcredito().equals((short) 0) ? "D" : isIndcredito().equals((short) 1) ? "C" : "I";
	}

	public Integer getTipoventa() {
		return tipoventa;
	}

	public void setTipoventa(Integer tipoventa) {
		this.tipoventa = tipoventa;
	}

	public String getDescinfoevento() {
		return descinfoevento;
	}

	public void setDescinfoevento(String descinfoevento) {
		this.descinfoevento = descinfoevento;
	}

	public String getDescricaoTipoventa() {
		return DescricaoTipoVenta.getDescricaoTipoVenta(getTipoventa());
	}

	public String getDescdebitocredito() {
		return isIndcredito().equals((short) 0) ? "D" : isIndcredito().equals((short) 1) ? "C" : "I";
	}

	public String getDesctipoinformativo() {
		return desctipoinformativo;
	}

	public void setDesctipoinformativo(String desctipoinformativo) {
		this.desctipoinformativo = desctipoinformativo;
	}

	public String getDescpendencia() {
		return descpendencia;
	}

	public void setDescpendencia(String descpendencia) {
		this.descpendencia = descpendencia;
	}

	public String getDescComportamentoData() {
		return descComportamentoData != null ? descComportamentoData.equals("0") ? "Dia posterior" : "Mesmo dia" : null;
	}

	public void setDescComportamentoData(String descComportamentoData) {
		this.descComportamentoData = descComportamentoData;
	}

	public Long getCajaId() {
		return cajaId;
	}

	public void setCajaId(Long cajaId) {
		this.cajaId = cajaId;
	}

	public Conferencia getConferencia() {
		return conferencia;
	}

	public void setConferencia(Conferencia conferencia) {
		this.conferencia = conferencia;
	}
	
	public Date getOrderDataMovimento(){
		return conferencia.getDatamovimento();
	}
	
	public Integer getPendenciaId() {
		return pendenciaId;
	}
	
	public void setPendenciaId(Integer pendenciaId) {
		this.pendenciaId = pendenciaId;
	}
}
