package com.rjconsultores.ventaboletos.relatorios.utilitarios;

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

public class RelatorioVendasPacotesBoletosBean {

	private String cveorigen;
	private String cvedestino;
	private String descorigen;
	private String descdestino;

	private List<RelatorioVendasPacotesBoletosItemBean> relatorioVendasPacotesBoletosItemBeans;
	private List<RelatorioVendasPacotesBoletosItemBean> relatorioVendasPacotesBoletosItemBeansCancelados;

	public String getDescorigen() {
		return descorigen;
	}

	public void setDescorigen(String descorigen) {
		this.descorigen = descorigen;
	}

	public String getDescdestino() {
		return descdestino;
	}

	public void setDescdestino(String descdestino) {
		this.descdestino = descdestino;
	}

	public List<RelatorioVendasPacotesBoletosItemBean> getRelatorioVendasPacotesBoletosItemBeans() {
		return relatorioVendasPacotesBoletosItemBeans;
	}

	public void setRelatorioVendasPacotesBoletosItemBeans(List<RelatorioVendasPacotesBoletosItemBean> relatorioVendasPacotesBoletosItemBeans) {
		this.relatorioVendasPacotesBoletosItemBeans = relatorioVendasPacotesBoletosItemBeans;
	}

	public class RelatorioVendasPacotesBoletosItemBean {

		private String nomconvenio;
		private String desctipotarifa;
		private String desccategoria;
		private Long qtde;
		private BigDecimal simportetaxaembarque;
		private BigDecimal simportepedagio;
		private BigDecimal simporteoutros;
		private BigDecimal simporteseguro;
		private BigDecimal desconto;
		private BigDecimal spreciobase;

		public String getNomconvenio() {
			return nomconvenio;
		}

		public void setNomconvenio(String nomconvenio) {
			this.nomconvenio = nomconvenio;
		}

		public String getDesctipotarifa() {
			return desctipotarifa;
		}

		public void setDesctipotarifa(String desctipotarifa) {
			this.desctipotarifa = desctipotarifa;
		}

		public Long getQtde() {
			return qtde;
		}

		public void setQtde(Long qtde) {
			this.qtde = qtde;
		}

		public BigDecimal getSimportetaxaembarque() {
			return simportetaxaembarque;
		}

		public void setSimportetaxaembarque(BigDecimal simportetaxaembarque) {
			this.simportetaxaembarque = simportetaxaembarque;
		}

		public BigDecimal getSimportepedagio() {
			return simportepedagio;
		}

		public void setSimportepedagio(BigDecimal simportepedagio) {
			this.simportepedagio = simportepedagio;
		}

		public BigDecimal getSimporteoutros() {
			return simporteoutros;
		}

		public void setSimporteoutros(BigDecimal simporteoutros) {
			this.simporteoutros = simporteoutros;
		}

		public BigDecimal getSimporteseguro() {
			return simporteseguro;
		}

		public void setSimporteseguro(BigDecimal simporteseguro) {
			this.simporteseguro = simporteseguro;
		}

		public BigDecimal getDesconto() {
			return desconto;
		}

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

		public BigDecimal getSpreciopagado() {
			BigDecimal spreciopagado = BigDecimal.ZERO;
			spreciopagado = getSpreciototal();
			spreciopagado = desconto != null ? spreciopagado.subtract(desconto) : spreciopagado;

			return spreciopagado;
		}

		public BigDecimal getSpreciototal() {
			BigDecimal spreciototal = BigDecimal.ZERO;

			spreciototal = simportetaxaembarque != null ? spreciototal.add(simportetaxaembarque) : spreciototal;
			spreciototal = simportepedagio != null ? spreciototal.add(simportepedagio) : spreciototal;
			spreciototal = simporteoutros != null ? spreciototal.add(simporteoutros) : spreciototal;
			spreciototal = simporteseguro != null ? spreciototal.add(simporteseguro) : spreciototal;
			spreciototal = spreciobase != null ? spreciototal.add(spreciobase) : spreciototal;

			return spreciototal;
		}

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

		public BigDecimal getSpreciobase() {
			return spreciobase;
		}

		public void setSpreciobase(BigDecimal spreciobase) {
			this.spreciobase = spreciobase;
		}

		public String getDesccategoria() {
			return desccategoria;
		}

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

	}

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

	public List<RelatorioVendasPacotesBoletosItemBean> getRelatorioVendasPacotesBoletosItemBeansCancelados() {
		return relatorioVendasPacotesBoletosItemBeansCancelados;
	}

	public void setRelatorioVendasPacotesBoletosItemBeansCancelados(List<RelatorioVendasPacotesBoletosItemBean> relatorioVendasPacotesBoletosItemBeansCancelados) {
		this.relatorioVendasPacotesBoletosItemBeansCancelados = relatorioVendasPacotesBoletosItemBeansCancelados;
	}

	public class RelatorioVendasPacotesBoletosItemTotaisBean {
	
		private String trecho;
		private String categoria;
		private Long qtde;

		public String getTrecho() {
			return trecho;
		}

		public void setTrecho(String trecho) {
			this.trecho = trecho;
		}

		public Long getQtde() {
			return qtde;
		}

		public void setQtde(Long qtde) {
			this.qtde = qtde;
		}

		public String getCategoria() {
			return categoria;
		}

		public void setCategoria(String categoria) {
			this.categoria = categoria;
		}

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

	}

	public String getCveorigen() {
		return cveorigen;
	}

	public void setCveorigen(String cveorigen) {
		this.cveorigen = cveorigen;
	}

	public String getCvedestino() {
		return cvedestino;
	}

	public void setCvedestino(String cvedestino) {
		this.cvedestino = cvedestino;
	}

}
