package com.rjconsultores.ventaboletos.vo.pricing;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import com.rjconsultores.ventaboletos.entidad.PricingClase;
import com.rjconsultores.ventaboletos.entidad.PricingTipoPtoVta;
import com.rjconsultores.ventaboletos.entidad.PricingTipoServicio;

public class Pricing implements Serializable {

	private static final long serialVersionUID = 1L;

	private Integer pricingId;
	private String nomePricing;
	private String aplicaFeriadoDtViagem;
	private String aplicaFeriadoDtVenda;
	private Integer empresaId;
	private Integer qtdePoltronas;
	private Integer tipoPricingPorcentagem;
	private BigDecimal porcentagemIda;
	private BigDecimal porcentagemIdaVolta;
	private Integer podeTransferir;
	private Integer podeCancelar;
	private Integer podeReservar;
	private Integer diasAtencipacao;
	private Integer exibirVenda;
	private BigDecimal valor;

	private String pricingoperacao;

	private List<PricingAsiento> poltronas; // 
	private List<PricingCanalVenta> canalvendas; //
	private List<PricingCategoria> categorias; //
	private List<PricingClasse> classes; //
	private List<PricingCorrida> servicos; //
	private List<PricingDia> dias; //
	private List<PricingOcupaAntecipa> ocupacoes; //
	private List<PricingPuntoVenta> puntoventas; //
	private List<PricingRuta> linhas; //
	private List<PricingTipoCorrida> tiposervicos; //
	private List<PricingMercado> mercados; //
	private List<PricingVigencia> vigencias; //
	private List<PricingMarca> marcas; //
	
	public Pricing() {
		super();
	}

	public Pricing(com.rjconsultores.ventaboletos.entidad.Pricing pricing) {
		this();
		pricingId = pricing.getPricingId();
		nomePricing = pricing.getNombPricing();
		aplicaFeriadoDtViagem = pricing.getIndGeneraFeriadoViaje();
		aplicaFeriadoDtVenda = pricing.getIndGeneraFeriadoVenta();
		empresaId = pricing.getEmpresa().getEmpresaId();
		qtdePoltronas = pricing.getCantboleto() != null ? pricing.getCantboleto().intValue() : null;
		tipoPricingPorcentagem = pricing.getDescuentoporcentaje() != null ? 1 : 0;
		porcentagemIda = pricing.getDescuentoporcentaje();
		porcentagemIdaVolta = pricing.getDescuentoporcredondo();
		podeTransferir = pricing.getIndtransferible() ? 1 : 0;
		podeCancelar = pricing.getIndcancelable() ? 1 : 0;
		podeReservar = pricing.getIndreservable() ? 1 : 0;
		diasAtencipacao = pricing.getCantdiasanticipacion();
		exibirVenda = pricing.getExibeVenda() ? 1 : 0;
		
		poltronas = new ArrayList<PricingAsiento>(0);
		for (com.rjconsultores.ventaboletos.entidad.PricingAsiento pricingAsiento : pricing.getPricingAsientoList()) {
			PricingAsiento pricingasientoVO = new PricingAsiento(pricingAsiento);
			poltronas.add(pricingasientoVO);
		}
		
		canalvendas = new ArrayList<PricingCanalVenta>(0);
		for (PricingTipoPtoVta pricingTipoPtoVta : pricing.getPricingTipoptovtaList()) {
			PricingCanalVenta pricingCanalVenta = new PricingCanalVenta(pricingTipoPtoVta);
			canalvendas.add(pricingCanalVenta);
		}
		
		categorias = new ArrayList<PricingCategoria>(0);
		for (com.rjconsultores.ventaboletos.entidad.PricingCategoria pricingCategoria : pricing.getPricingCategoriaList()) {
			PricingCategoria pricingCategoriaVO = new PricingCategoria(pricingCategoria);
			categorias.add(pricingCategoriaVO);
		}
		
		classes = new ArrayList<PricingClasse>(0);
		for (PricingClase pricingClase : pricing.getPricingClaseList()) {
			PricingClasse pricingClasse = new PricingClasse(pricingClase);
			classes.add(pricingClasse);
		}
		
		servicos = new ArrayList<PricingCorrida>(0);
		for (com.rjconsultores.ventaboletos.entidad.PricingCorrida pricingCorrida : pricing.getPricingCorridaList()) {
			PricingCorrida pricingCorridaVO = new PricingCorrida(pricingCorrida);
			servicos.add(pricingCorridaVO);
		}
		
		dias = new ArrayList<PricingDia>(0);
		for (com.rjconsultores.ventaboletos.entidad.PricingDia pricingDia : pricing.getPricingDiaList()) {
			PricingDia pricingDiaVO = new PricingDia(pricingDia);
			dias.add(pricingDiaVO);
		}
		
		ocupacoes = new ArrayList<PricingOcupaAntecipa>(0);
		for (com.rjconsultores.ventaboletos.entidad.PricingOcupaAntecipa pricingOcupaAntecipa : pricing.getPricingOcupaAntecipaList()) {
			PricingOcupaAntecipa pricingOcupaAntecipaVO = new PricingOcupaAntecipa(pricingOcupaAntecipa);
			ocupacoes.add(pricingOcupaAntecipaVO);
		}
		
		puntoventas = new ArrayList<PricingPuntoVenta>(0);
		for (com.rjconsultores.ventaboletos.entidad.PricingPuntoVenta pricingPuntoVenta : pricing.getPricingPuntoventaList()) {
			PricingPuntoVenta pricingPuntoVentaVO = new PricingPuntoVenta(pricingPuntoVenta);
			puntoventas.add(pricingPuntoVentaVO);
		}
		
		linhas = new ArrayList<PricingRuta>(0);
		for (com.rjconsultores.ventaboletos.entidad.PricingRuta pricingRuta : pricing.getPricingRutaList()) {
			PricingRuta pricingRutaVO = new PricingRuta(pricingRuta);
			linhas.add(pricingRutaVO);
		}
		
		tiposervicos = new ArrayList<PricingTipoCorrida>(0);
		for (PricingTipoServicio pricingTipoServicio: pricing.getPricingTipoServicioList()) {
			PricingTipoCorrida pricingTipoCorrida = new PricingTipoCorrida(pricingTipoServicio);
			tiposervicos.add(pricingTipoCorrida);
		}
		
		mercados = new ArrayList<PricingMercado>(0);
		for (com.rjconsultores.ventaboletos.entidad.PricingMercado pricingMercado : pricing.getPricingMercadoList()) {
			PricingMercado pricingMercadoVO = new PricingMercado(pricingMercado);
			mercados.add(pricingMercadoVO);
		}
		
		vigencias = new ArrayList<PricingVigencia>(0);
		for (com.rjconsultores.ventaboletos.entidad.PricingVigencia pricingVigencia : pricing.getPricingVigenciaList()) {
			PricingVigencia pricingVigenciaVO = new PricingVigencia(pricingVigencia);
			vigencias.add(pricingVigenciaVO);
		}
		
		marcas = new ArrayList<PricingMarca>();
		for (com.rjconsultores.ventaboletos.entidad.PricingMarca pricingMarca : pricing.getPricingMarcaList()) {
			PricingMarca pricingMarcaVO = new PricingMarca(pricingMarca);
			marcas.add(pricingMarcaVO);
		}
		
	}

	public Integer getPricingId() {
		return pricingId;
	}

	public void setPricingId(Integer pricingId) {
		this.pricingId = pricingId;
	}

	public String getNomePricing() {
		return nomePricing;
	}

	public void setNomePricing(String nomePricing) {
		this.nomePricing = nomePricing;
	}

	public String getAplicaFeriadoDtViagem() {
		return aplicaFeriadoDtViagem;
	}

	public void setAplicaFeriadoDtViagem(String aplicaFeriadoDtViagem) {
		this.aplicaFeriadoDtViagem = aplicaFeriadoDtViagem;
	}

	public String getAplicaFeriadoDtVenda() {
		return aplicaFeriadoDtVenda;
	}

	public void setAplicaFeriadoDtVenda(String aplicaFeriadoDtVenda) {
		this.aplicaFeriadoDtVenda = aplicaFeriadoDtVenda;
	}

	public Integer getEmpresaId() {
		return empresaId;
	}

	public void setEmpresaId(Integer empresaId) {
		this.empresaId = empresaId;
	}

	public Integer getQtdePoltronas() {
		return qtdePoltronas;
	}

	public void setQtdePoltronas(Integer qtdePoltronas) {
		this.qtdePoltronas = qtdePoltronas;
	}

	public Integer getTipoPricingPorcentagem() {
		return tipoPricingPorcentagem;
	}

	public void setTipoPricingPorcentagem(Integer tipoPricingPorcentagem) {
		this.tipoPricingPorcentagem = tipoPricingPorcentagem;
	}

	public BigDecimal getPorcentagemIda() {
		return porcentagemIda;
	}

	public void setPorcentagemIda(BigDecimal porcentagemIda) {
		this.porcentagemIda = porcentagemIda;
	}

	public BigDecimal getPorcentagemIdaVolta() {
		return porcentagemIdaVolta;
	}

	public void setPorcentagemIdaVolta(BigDecimal porcentagemIdaVolta) {
		this.porcentagemIdaVolta = porcentagemIdaVolta;
	}

	public Integer getPodeTransferir() {
		return podeTransferir;
	}

	public void setPodeTransferir(Integer podeTransferir) {
		this.podeTransferir = podeTransferir;
	}

	public Integer getPodeCancelar() {
		return podeCancelar;
	}

	public void setPodeCancelar(Integer podeCancelar) {
		this.podeCancelar = podeCancelar;
	}

	public Integer getPodeReservar() {
		return podeReservar;
	}

	public void setPodeReservar(Integer podeReservar) {
		this.podeReservar = podeReservar;
	}

	public Integer getDiasAtencipacao() {
		return diasAtencipacao;
	}

	public void setDiasAtencipacao(Integer diasAtencipacao) {
		this.diasAtencipacao = diasAtencipacao;
	}

	public BigDecimal getValor() {
		return valor;
	}

	public void setValor(BigDecimal valor) {
		this.valor = valor;
	}

	public String getPricingoperacao() {
		return pricingoperacao;
	}

	public void setPricingoperacao(String pricingoperacao) {
		this.pricingoperacao = pricingoperacao;
	}

	public List<PricingAsiento> getPoltronas() {
		return poltronas;
	}

	public void setPoltronas(List<PricingAsiento> poltronas) {
		this.poltronas = poltronas;
	}

	public List<PricingCanalVenta> getCanalvendas() {
		return canalvendas;
	}

	public void setCanalvendas(List<PricingCanalVenta> canalvendas) {
		this.canalvendas = canalvendas;
	}

	public List<PricingCategoria> getCategorias() {
		return categorias;
	}

	public void setCategorias(List<PricingCategoria> categorias) {
		this.categorias = categorias;
	}

	public List<PricingClasse> getClasses() {
		return classes;
	}

	public void setClasses(List<PricingClasse> classes) {
		this.classes = classes;
	}

	public List<PricingCorrida> getServicos() {
		return servicos;
	}

	public void setServicos(List<PricingCorrida> servicos) {
		this.servicos = servicos;
	}

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

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

	public List<PricingOcupaAntecipa> getOcupacoes() {
		return ocupacoes;
	}

	public void setOcupacoes(List<PricingOcupaAntecipa> ocupacoes) {
		this.ocupacoes = ocupacoes;
	}

	public List<PricingPuntoVenta> getPuntoventas() {
		return puntoventas;
	}

	public void setPuntoventas(List<PricingPuntoVenta> puntoventas) {
		this.puntoventas = puntoventas;
	}

	public List<PricingRuta> getLinhas() {
		return linhas;
	}

	public void setLinhas(List<PricingRuta> linhas) {
		this.linhas = linhas;
	}

	public List<PricingTipoCorrida> getTiposervicos() {
		return tiposervicos;
	}

	public void setTiposervicos(List<PricingTipoCorrida> tiposervicos) {
		this.tiposervicos = tiposervicos;
	}

	public Integer getExibirVenda() {
		return exibirVenda;
	}

	public void setExibirVenda(Integer exibirVenda) {
		this.exibirVenda = exibirVenda;
	}

	public List<PricingMercado> getMercados() {
		return mercados;
	}

	public void setMercados(List<PricingMercado> mercados) {
		this.mercados = mercados;
	}

	public List<PricingVigencia> getVigencias() {
		return vigencias;
	}

	public void setVigencias(List<PricingVigencia> vigencias) {
		this.vigencias = vigencias;
	}

	public List<PricingMarca> getMarcas() {
		return marcas;
	}

	public void setMarcas(List<PricingMarca> marcas) {
		this.marcas = marcas;
	}

}
