package com.rjconsultores.ventaboletos.utilerias.fiscal.vo;

import java.math.BigDecimal;

public class FiscalRdi implements Comparable<FiscalRdi> {

	private String estado;
	private String tipoViagem;
	private String tipoReceita;
	private BigDecimal quantBilhetes;
	private BigDecimal tarifa;
	private BigDecimal seguro;
	private BigDecimal txEmbarque;
	private BigDecimal pedagio;
	private BigDecimal passagem;
	private BigDecimal isentos;
	private BigDecimal outros;
	private BigDecimal rbc;
	private BigDecimal baseCalculo;
	private BigDecimal aliquota;
	private BigDecimal icms;
	private BigDecimal cp;
	private BigDecimal credPres;
	private BigDecimal icmsRec;

	public FiscalRdi() {
		super();
	}

	public FiscalRdi(String estado, String tipoViagem, String tipoReceita) {
		super();
		this.estado = estado;
		this.tipoViagem = tipoViagem;
		this.tipoReceita = tipoReceita;
		initDados();
	}

	public FiscalRdi(String estado, String tipoViagem, String tipoReceita, BigDecimal tarifa, BigDecimal seguro, BigDecimal txEmbarque, BigDecimal pedagio, BigDecimal passagem, BigDecimal isentos, BigDecimal outros, BigDecimal rbc, BigDecimal baseCalculo, BigDecimal aliquota, BigDecimal icms, BigDecimal cp, BigDecimal credPres, BigDecimal icmsRec) {
		super();
		this.estado = estado;
		this.tipoViagem = tipoViagem;
		this.tipoReceita = tipoReceita;
		this.tarifa = tarifa;
		this.seguro = seguro;
		this.txEmbarque = txEmbarque;
		this.pedagio = pedagio;
		this.passagem = passagem;
		this.isentos = isentos;
		this.outros = outros;
		this.rbc = rbc;
		this.baseCalculo = baseCalculo;
		this.aliquota = aliquota;
		this.icms = icms;
		this.cp = cp;
		this.credPres = credPres;
		this.icmsRec = icmsRec;
	}

	public void initDados() {
		this.quantBilhetes = BigDecimal.ZERO;
		this.tarifa = BigDecimal.ZERO;
		this.seguro = BigDecimal.ZERO;
		this.txEmbarque = BigDecimal.ZERO;
		this.pedagio = BigDecimal.ZERO;
		this.passagem = BigDecimal.ZERO;
		this.isentos = BigDecimal.ZERO;
		this.outros = BigDecimal.ZERO;
		this.rbc = BigDecimal.ZERO;
		this.baseCalculo = BigDecimal.ZERO;
		this.aliquota = BigDecimal.ZERO;
		this.icms = BigDecimal.ZERO;
		this.cp = BigDecimal.ZERO;
		this.credPres = BigDecimal.ZERO;
		this.icmsRec = BigDecimal.ZERO;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public String getTipoViagem() {
		return tipoViagem;
	}

	public void setTipoViagem(String tipoViagem) {
		this.tipoViagem = tipoViagem;
	}

	public String getTipoReceita() {
		return tipoReceita;
	}

	public void setTipoReceita(String tipoReceita) {
		this.tipoReceita = tipoReceita;
	}

	public BigDecimal getQuantBilhetes() {
		return quantBilhetes;
	}

	public void setQuantBilhetes(BigDecimal quantBilhetes) {
		this.quantBilhetes = quantBilhetes;
	}

	public BigDecimal getTarifa() {
		return tarifa;
	}

	public void setTarifa(BigDecimal tarifa) {
		this.tarifa = tarifa;
	}

	public BigDecimal getSeguro() {
		return seguro;
	}

	public void setSeguro(BigDecimal seguro) {
		this.seguro = seguro;
	}

	public BigDecimal getTxEmbarque() {
		return txEmbarque;
	}

	public void setTxEmbarque(BigDecimal txEmbarque) {
		this.txEmbarque = txEmbarque;
	}

	public BigDecimal getPedagio() {
		return pedagio;
	}

	public void setPedagio(BigDecimal pedagio) {
		this.pedagio = pedagio;
	}

	public BigDecimal getPassagem() {
		return passagem;
	}

	public void setPassagem(BigDecimal passagem) {
		this.passagem = passagem;
	}

	public BigDecimal getIsentos() {
		return isentos;
	}

	public void setIsentos(BigDecimal isentos) {
		this.isentos = isentos;
	}

	public BigDecimal getOutros() {
		return outros;
	}

	public void setOutros(BigDecimal outros) {
		this.outros = outros;
	}

	public BigDecimal getRbc() {
		return rbc;
	}

	public void setRbc(BigDecimal rbc) {
		this.rbc = rbc;
	}

	public BigDecimal getBaseCalculo() {
		return baseCalculo;
	}

	public void setBaseCalculo(BigDecimal baseCalculo) {
		this.baseCalculo = baseCalculo;
	}

	public BigDecimal getAliquota() {
		return aliquota;
	}

	public void setAliquota(BigDecimal aliquota) {
		this.aliquota = aliquota;
	}

	public BigDecimal getIcms() {
		return icms;
	}

	public void setIcms(BigDecimal icms) {
		this.icms = icms;
	}

	public BigDecimal getCp() {
		return cp;
	}

	public void setCp(BigDecimal cp) {
		this.cp = cp;
	}

	public BigDecimal getCredPres() {
		return credPres;
	}

	public void setCredPres(BigDecimal credPres) {
		this.credPres = credPres;
	}

	public BigDecimal getIcmsRec() {
		return icmsRec;
	}

	public void setIcmsRec(BigDecimal icmsRec) {
		this.icmsRec = icmsRec;
	}

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

	@Override
	public int compareTo(FiscalRdi o) {
		int result = this.estado.compareToIgnoreCase(o.estado);
		if (result == 0) {
			result = o.tipoViagem.compareToIgnoreCase(this.tipoViagem);
		}
		if (result == 0) {
			return o.tipoReceita.compareToIgnoreCase(this.tipoReceita);
		}
		return result;
	}
}
