package com.rjconsultores.ventaboletos.relatorios.utilitarios;

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

import com.rjconsultores.ventaboletos.constantes.Constantes;

public class RelatorioOCDBean {

	private Long ocdId;
	
	private Long boletoId;
		
	private String numoperacion;
	private String numfoliosistema;
	
	private Date fechorventa;
	private Date fecpagar;
	private BigDecimal valorOcd;
	private BigDecimal valorPago;
	private BigDecimal penalizacion;
	
	private Date fecinc;
	
	private Boolean indpago;
	private Date fecpago;	
	
	private String empresa;
	private String nombusuario;
	private String nombusuarioinc;
	private String nombusuariopago;
	private String nombpuntoventa;
	private String nombpuntoventainc;
	private String nombpuntoventapago;
	private String formaPago1;
	private String formaPago2;
	private String formaPago3;
	private String origem;
	private String destino;
	private String asiento;
	private Date feccorrida;
	private BigDecimal totalBilhete;
	
	private Integer motivocancelacionId;
	
	public Long getOcdId() {
		return ocdId;
	}
	public void setOcdId(Long ocdId) {
		this.ocdId = ocdId;
	}
	public Long getBoletoId() {
		return boletoId;
	}
	public void setBoletoId(Long boletoId) {
		this.boletoId = boletoId;
	}
	public String getNumoperacion() {
		return numoperacion;
	}
	public void setNumoperacion(String numoperacion) {
		this.numoperacion = numoperacion;
	}
	public Date getFecpagar() {
		return fecpagar;
	}
	public void setFecpagar(Date fecpagar) {
		this.fecpagar = fecpagar;
	}
	public BigDecimal getPenalizacion() {
		return penalizacion;
	}
	public void setPenalizacion(BigDecimal penalizacion) {
		this.penalizacion = penalizacion;
	}
	public Date getFecinc() {
		return fecinc;
	}
	public void setFecinc(Date fecinc) {
		this.fecinc = fecinc;
	}
	public Boolean getIndpago() {
		return indpago;
	}
	public void setIndpago(Boolean indpago) {
		this.indpago = indpago;
	}
	public Date getFecpago() {
		return fecpago;
	}
	public void setFecpago(Date fecpago) {
		this.fecpago = fecpago;
	}
	public String getEmpresa() {
		return empresa;
	}
	public void setEmpresa(String empresa) {
		this.empresa = empresa;
	}
	public String getNombusuario() {
		return nombusuario;
	}
	public void setNombusuario(String nombusuario) {
		this.nombusuario = nombusuario;
	}
	public String getNombusuarioinc() {
		return nombusuarioinc;
	}
	public void setNombusuarioinc(String nombusuarioinc) {
		this.nombusuarioinc = nombusuarioinc;
	}
	public String getNombusuariopago() {
		return nombusuariopago;
	}
	public void setNombusuariopago(String nombusuariopago) {
		this.nombusuariopago = nombusuariopago;
	}
	public String getNombpuntoventa() {
		return nombpuntoventa;
	}
	public void setNombpuntoventa(String nombpuntoventa) {
		this.nombpuntoventa = nombpuntoventa;
	}
	public String getNombpuntoventapago() {
		return nombpuntoventapago;
	}
	public void setNombpuntoventapago(String nombpuntoventapago) {
		this.nombpuntoventapago = nombpuntoventapago;
	}
	public String getFormaPago1() {
		return formaPago1;
	}
	public void setFormaPago1(String formapago1) {
		this.formaPago1 = formapago1;
	}
	public String getFormaPago2() {
		return formaPago2;
	}
	public void setFormaPago2(String formapago2) {
		this.formaPago2 = formapago2;
	}
	public String getFormaPago3() {
		return formaPago3;
	}
	public void setFormaPago3(String formapago3) {
		this.formaPago3 = formapago3;
	}
	public String getOrigem() {
		return origem;
	}
	public void setOrigem(String origem) {
		this.origem = origem;
	}
	public String getDestino() {
		return destino;
	}
	public void setDestino(String destino) {
		this.destino = destino;
	}
	public String getAsiento() {
		return asiento;
	}
	public void setAsiento(String asiento) {
		this.asiento = asiento;
	}
	public Date getFeccorrida() {
		return feccorrida;
	}
	public void setFeccorrida(Date feccorrida) {
		this.feccorrida = feccorrida;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((boletoId == null) ? 0 : boletoId.hashCode());
		result = prime * result + ((ocdId == null) ? 0 : ocdId.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;
		RelatorioOCDBean other = (RelatorioOCDBean) obj;
		if (boletoId == null) {
			if (other.boletoId != null)
				return false;
		} else if (!boletoId.equals(other.boletoId))
			return false;
		if (ocdId == null) {
			if (other.ocdId != null)
				return false;
		} else if (!ocdId.equals(other.ocdId))
			return false;
		return true;
	}
	public BigDecimal getValorPago() {
		return valorPago;
	}
	public void setValorPago(BigDecimal valorPago) {
		this.valorPago = valorPago;
	}
	public BigDecimal getValorOcd() {
		return valorOcd;
	}
	public void setValorOcd(BigDecimal valorOcd) {
		this.valorOcd = valorOcd;
	}
	public String getNombpuntoventainc() {
		return nombpuntoventainc;
	}
	public void setNombpuntoventainc(String nombpuntoventainc) {
		this.nombpuntoventainc = nombpuntoventainc;
	}
	public Date getFechorventa() {
		return fechorventa;
	}
	public void setFechorventa(Date fechorventa) {
		this.fechorventa = fechorventa;
	}
	public BigDecimal getTotalBilhete() {
		return totalBilhete;
	}
	public void setTotalBilhete(BigDecimal totalBilhete) {
		this.totalBilhete = totalBilhete;
	}
	public String getNumfoliosistema() {
		return numfoliosistema;
	}
	public void setNumfoliosistema(String numfoliosistema) {
		this.numfoliosistema = numfoliosistema;
	}

	public BigDecimal getMulta() {
		if(motivocancelacionId != null && Constantes.MVO_CANCEL_GERACAO_OCD.intValue() == motivocancelacionId.intValue()) {
			return getTotalBilhete().subtract(getValorOcd());
		}
		return BigDecimal.ZERO;
	}
	public Integer getMotivocancelacionId() {
		return motivocancelacionId;
	}
	public void setMotivocancelacionId(Integer motivocancelacionId) {
		this.motivocancelacionId = motivocancelacionId;
	}
	
	public String getMotivo() {
		if(motivocancelacionId != null && Constantes.MVO_CANCEL_GERACAO_OCD.intValue() == motivocancelacionId.intValue()) {
			return "Geração OCD";
		} else if(motivocancelacionId != null && Constantes.MVO_CANCEL_TRANSFERENCIA.intValue() == motivocancelacionId.intValue()) {
			return "Transferência";
		} else if(motivocancelacionId != null && Constantes.MVO_CANCEL_TROCA.intValue() == motivocancelacionId.intValue()) {
			return "Troca";
		}
		return null;
	}
	
}
