package com.rjconsultores.ventaboletos.vo.busquedapacotes;

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

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;

@XmlRootElement(name = "pacote")
@XmlType(propOrder = { "numoperacao", "datavenda", "datapacote", "dataalteracao", "datacancelamento", "nompacote", "pacoteId", "descpacote", "usuariovenda",
					   "status", "pontoVenda", "empresaId", "empresa", "quantidade", "totalTarifa", "totalSeguro", "totalOutros", "totalPedagio", "totalTaxaEmbarque",
					   "valorsubtotal", "valortotal", "valordesconto", "formaspagamento", "servico", "pax", "enderecoApanhe", "clientePacote", "itens", "indEncargoVenta" })
public class PacoteVO {

	private Long vendapacoteId;
	private Date datapacote;
	private Date datavenda;
	private Date datacancelamento;
	private Date dataalteracao;
	private Long pacoteId;
	private String nompacote;
	private String descpacote; 
	private String numoperacao;
	private Integer usuariovenda;
	private String status;
	private String pontoVenda;
	private String empresa;
	private Integer quantidade = 0;
	private BigDecimal totalTarifa = BigDecimal.ZERO;
	private BigDecimal totalSeguro = BigDecimal.ZERO;
	private BigDecimal totalOutros = BigDecimal.ZERO;
	private BigDecimal totalPedagio = BigDecimal.ZERO;
	private BigDecimal totalTaxaEmbarque = BigDecimal.ZERO;

	private BigDecimal valorsubtotal = BigDecimal.ZERO;
	private BigDecimal valortotal = BigDecimal.ZERO;
	private BigDecimal valordesconto = BigDecimal.ZERO;

	private ClientePacoteVO clientePacote;
	private ServicoVO servico;
	private EnderecoApanheVO enderecoApanhe;

	private List<PagamentoVO> formaspagamento = new ArrayList<PagamentoVO>();
	private List<PassageiroVO> pax = new ArrayList<PassageiroVO>();
	private List<ItemAdicionalVO> itens = new ArrayList<ItemAdicionalVO>();
	
	private Integer empresaId;
	
	/* Auxiliares */
	private Integer qtdePacoteFormaspago;
	
	private Boolean indEncargoVenta;

	public Integer getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(Integer quantidade) {
		this.quantidade = quantidade;
	}

	public String getNumoperacao() {
		return numoperacao;
	}

	public void setNumoperacao(String numoperacao) {
		this.numoperacao = numoperacao;
	}

	public Integer getUsuariovenda() {
		return usuariovenda;
	}

	public void setUsuariovenda(Integer usuariovenda) {
		this.usuariovenda = usuariovenda;
	}

	public Date getDatavenda() {
		return datavenda;
	}

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

	public String getStatus() {
		return status;
	}

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

	public BigDecimal getValortotal() {
		return valortotal;
	}

	public void setValortotal(BigDecimal valortotal) {
		this.valortotal = valortotal;
	}

	public BigDecimal getValordesconto() {
		return valordesconto;
	}

	public void setValordesconto(BigDecimal valordesconto) {
		this.valordesconto = valordesconto;
	}

	@XmlElementWrapper
	@XmlElement(name = "pagamento", type = PagamentoVO.class)
	public List<PagamentoVO> getFormaspagamento() {
		return formaspagamento;
	}

	public void setFormaspagamento(List<PagamentoVO> formaspagamento) {
		this.formaspagamento = formaspagamento;
	}

	public ServicoVO getServico() {
		return servico;
	}

	public void setServico(ServicoVO servico) {
		this.servico = servico;
	}

	@XmlElementWrapper
	@XmlElement(name = "passageiro", type = PassageiroVO.class)
	public List<PassageiroVO> getPax() {
		return pax;
	}

	public void setPax(List<PassageiroVO> pax) {
		this.pax = pax;
	}

	public Date getDatapacote() {
		return datapacote;
	}

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

	public String getPontoVenda() {
		return pontoVenda;
	}

	public void setPontoVenda(String pontoVenda) {
		this.pontoVenda = pontoVenda;
	}

	public String getEmpresa() {
		return empresa;
	}

	public void setEmpresa(String empresa) {
		this.empresa = empresa;
	}

	public BigDecimal getValorsubtotal() {
		return valorsubtotal;
	}

	public void setValorsubtotal(BigDecimal valorsubtotal) {
		this.valorsubtotal = valorsubtotal;
	}

	public BigDecimal getTotalTarifa() {
		return totalTarifa;
	}

	public void setTotalTarifa(BigDecimal totalTarifa) {
		this.totalTarifa = totalTarifa;
	}

	public BigDecimal getTotalSeguro() {
		return totalSeguro;
	}

	public void setTotalSeguro(BigDecimal totalSeguro) {
		this.totalSeguro = totalSeguro;
	}

	public BigDecimal getTotalOutros() {
		return totalOutros;
	}

	public void setTotalOutros(BigDecimal totalOutros) {
		this.totalOutros = totalOutros;
	}

	public ClientePacoteVO getClientePacote() {
		return clientePacote;
	}

	public void setClientePacote(ClientePacoteVO clientePacote) {
		this.clientePacote = clientePacote;
	}

	public BigDecimal getTotalTaxaEmbarque() {
		return totalTaxaEmbarque;
	}

	public void setTotalTaxaEmbarque(BigDecimal totalTaxaEmbarque) {
		this.totalTaxaEmbarque = totalTaxaEmbarque;
	}

	public BigDecimal getTotalPedagio() {
		return totalPedagio;
	}

	public void setTotalPedagio(BigDecimal totalPedagio) {
		this.totalPedagio = totalPedagio;
	}

	public String getNompacote() {
		return nompacote;
	}

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

	@XmlTransient
	public Long getVendapacoteId() {
		return vendapacoteId;
	}

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

	public EnderecoApanheVO getEnderecoApanhe() {
		return enderecoApanhe;
	}

	public void setEnderecoApanhe(EnderecoApanheVO enderecoApanhe) {
		this.enderecoApanhe = enderecoApanhe;
	}

	@XmlTransient
	public Integer getQtdePacoteFormaspago() {
		return qtdePacoteFormaspago;
	}

	public void setQtdePacoteFormaspago(Integer qtdePacoteFormaspago) {
		this.qtdePacoteFormaspago = qtdePacoteFormaspago;
	}

	public String getDescpacote() {
		return descpacote;
	}

	public void setDescpacote(String descpacote) {
		this.descpacote = descpacote;
	}

	@XmlElementWrapper
	@XmlElement(name = "itemPacote", type = ItemAdicionalVO.class)
	public List<ItemAdicionalVO> getItens() {
		return itens;
	}

	public void setItens(List<ItemAdicionalVO> itens) {
		this.itens = itens;
	}

	public Long getPacoteId() {
		return pacoteId;
	}

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

	public Date getDatacancelamento() {
		return datacancelamento;
	}

	public void setDatacancelamento(Date datacancelamento) {
		this.datacancelamento = datacancelamento;
	}

	public Date getDataalteracao() {
		return dataalteracao;
	}

	public void setDataalteracao(Date dataalteracao) {
		this.dataalteracao = dataalteracao;
	}

	public Integer getEmpresaId() {
		return empresaId;
	}

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

	public Boolean getIndEncargoVenta() {
		return indEncargoVenta;
	}

	public void setIndEncargoVenta(Boolean indEncargoVenta) {
		this.indEncargoVenta = indEncargoVenta;
	}

}
