package com.rjconsultores.ventaboletos.relatorios.utilitarios;

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

import oracle.net.aso.s;

import org.apache.commons.lang.StringUtils;

import com.rjconsultores.ventaboletos.enums.LocalEnderecoApanhe;
import com.rjconsultores.ventaboletos.enums.SituacaoVendaPacote;

public class RelatorioVendasPacotesDetalhadoBean {

	private Long pacoteId;
	private String nompacote;
	private List<RelatorioVendasPacotesDetalhadoItemBean> relatorioVendasPacotesDetalhadoItemBeans;

	public Long getPacoteId() {
		return pacoteId;
	}

	public void setPacoteId(Long pacoteId) {
		this.pacoteId = pacoteId;
	}

	public String getNompacote() {
		return nompacote;
	}

	public void setNompacote(String nompacote) {
		this.nompacote = nompacote;
	}

	public List<RelatorioVendasPacotesDetalhadoItemBean> getRelatorioVendasPacotesDetalhadoItemBeans() {
		return relatorioVendasPacotesDetalhadoItemBeans;
	}

	public void setRelatorioVendasPacotesDetalhadoItemBeans(List<RelatorioVendasPacotesDetalhadoItemBean> relatorioVendasPacotesDetalhadoItemBeans) {
		this.relatorioVendasPacotesDetalhadoItemBeans = relatorioVendasPacotesDetalhadoItemBeans;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((pacoteId == null) ? 0 : pacoteId.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;
		RelatorioVendasPacotesDetalhadoBean other = (RelatorioVendasPacotesDetalhadoBean) obj;
		if (pacoteId == null) {
			if (other.pacoteId != null)
				return false;
		} else if (!pacoteId.equals(other.pacoteId))
			return false;
		return true;
	}

	public class RelatorioVendasPacotesDetalhadoItemBean {

		private Long vendapacoteId;
		private String numoperacion;
		private String deschotel;
		private LocalEnderecoApanhe localEnderecoApanhe;
		private Date datavenda;
		private Date datapacote;
		private Long qtdeTarifas;
		private BigDecimal subTotal;
		private BigDecimal desconto;
		private BigDecimal total;
		private String nombusuario;
		private String razaoSocialCliente;
		private SituacaoVendaPacote situacaoVendaPacote;

		public Long getVendapacoteId() {
			return vendapacoteId;
		}

		public void setVendapacoteId(Long vendapacoteId) {
			this.vendapacoteId = vendapacoteId;
		}

		public String getNumoperacion() {
			return numoperacion;
		}

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

		public String getDeschotel() {
			return deschotel;
		}

		public void setDeschotel(String deschotel) {
			this.deschotel = deschotel;
		}

		public LocalEnderecoApanhe getLocalEnderecoApanhe() {
			return localEnderecoApanhe;
		}

		public void setLocalEnderecoApanhe(LocalEnderecoApanhe localEnderecoApanhe) {
			this.localEnderecoApanhe = localEnderecoApanhe;
		}

		public Date getDatavenda() {
			return datavenda;
		}

		public void setDatavenda(Date datavenda) {
			this.datavenda = datavenda;
		}

		public Date getDatapacote() {
			return datapacote;
		}

		public void setDatapacote(Date datapacote) {
			this.datapacote = datapacote;
		}

		public Long getQtdeTarifas() {
			return qtdeTarifas;
		}

		public void setQtdeTarifas(Long qtdeTarifas) {
			this.qtdeTarifas = qtdeTarifas;
		}

		public BigDecimal getSubTotal() {
			return subTotal;
		}

		public void setSubTotal(BigDecimal subTotal) {
			this.subTotal = subTotal;
		}

		public BigDecimal getDesconto() {
			return desconto;
		}

		public void setDesconto(BigDecimal desconto) {
			this.desconto = desconto;
		}

		public BigDecimal getTotal() {
			return total;
		}

		public void setTotal(BigDecimal total) {
			this.total = total;
		}

		public String getNombusuario() {
			return nombusuario;
		}

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

		public String getRazaoSocialCliente() {
			return razaoSocialCliente;
		}

		public void setRazaoSocialCliente(String razaoSocialCliente) {
			this.razaoSocialCliente = razaoSocialCliente;
		}
		
		public String getDescLocalEnderecoApanhe() {
			return StringUtils.isNotBlank(deschotel) ? deschotel : localEnderecoApanhe != null ? localEnderecoApanhe.toString() : "";
		}

		public String getDescSituacaoVendaPacote() {
			return situacaoVendaPacote != null ? situacaoVendaPacote.toString() : "";
		}

		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result + ((vendapacoteId == null) ? 0 : vendapacoteId.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;
			RelatorioVendasPacotesDetalhadoItemBean other = (RelatorioVendasPacotesDetalhadoItemBean) obj;
			if (vendapacoteId == null) {
				if (other.vendapacoteId != null)
					return false;
			} else if (!vendapacoteId.equals(other.vendapacoteId))
				return false;
			return true;
		}

		public SituacaoVendaPacote getSituacaoVendaPacote() {
			return situacaoVendaPacote;
		}

		public void setSituacaoVendaPacote(SituacaoVendaPacote situacaoVendaPacote) {
			this.situacaoVendaPacote = situacaoVendaPacote;
		}

	}

}
