package com.rjconsultores.ventaboletos.entidad;

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

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * @author vjcor
 *
 */
@Entity
@SequenceGenerator(name = "COBRANCA_ADC_HIST_SEQ", sequenceName = "COBRANCA_ADC_HIST_SEQ", allocationSize = 1)
@Table(name = "COBRANCA_ADICIONAL_HISTORICO")
public class CobrancaAdicionalHistorico implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@Basic(optional = false)
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "COBRANCA_ADC_HIST_SEQ")
	@Column(name = "COBRANCAADICIONALHISTORICO_ID")
	private Long cobrancaAdicionalHistoricoID;
	
	@JoinColumn(name = "COBRANCAADDPUNTOVENTA_ID")
	@ManyToOne
	private CobrancaAdcPuntoVenta cobrancaAdicional;
	
	@Column(name = "CONTACORRENTEPTOVTA_ID")
	private Long contaCorrentePtoVtaId;
	
	@Column(name = "PUNTOVENTA_ID")
	private Integer puntoVentaId;
	
	@Column(name = "VALOR_COBRANCA")
	private BigDecimal valorCobranca;
	
	@Column(name = "VALOR_ACUMULADO")
	private BigDecimal valorAcumulado;
	
	@Column(name = "VALOR_APLICADO")
	private BigDecimal valorAplicado;
	
	@Column(name = "COBRANCA_EFETUADA")
	private Boolean cobrancaEfetuada;
	
	@Column(name = "FREQUENCIA_NA_DATA")
	private String frequenciaNaData;
	
	@Column(name = "DATA_REGISTRO")
	@Temporal(TemporalType.TIMESTAMP)
	private Date dataRegistro;
	
	@Column(name = "MOTIVO")
	private String motivo;
	
	@Column(name = "USUARIO_ID")
	private Integer usuarioId;

	public Long getCobrancaAdicionalHistoricoID() {
		return cobrancaAdicionalHistoricoID;
	}

	public void setCobrancaAdicionalHistoricoID(Long cobrancaAdicionalHistoricoID) {
		this.cobrancaAdicionalHistoricoID = cobrancaAdicionalHistoricoID;
	}

	public CobrancaAdcPuntoVenta getCobrancaAdicional() {
		return cobrancaAdicional;
	}

	public void setCobrancaAdicional(CobrancaAdcPuntoVenta cobrancaAdicional) {
		this.cobrancaAdicional = cobrancaAdicional;
	}

	public Long getContaCorrentePtoVtaId() {
		return contaCorrentePtoVtaId;
	}

	public void setContaCorrentePtoVtaId(Long contaCorrentePtoVtaId) {
		this.contaCorrentePtoVtaId = contaCorrentePtoVtaId;
	}

	public Integer getPuntoVentaId() {
		return puntoVentaId;
	}

	public void setPuntoVentaId(Integer puntoVentaId) {
		this.puntoVentaId = puntoVentaId;
	}

	public BigDecimal getValorCobranca() {
		return valorCobranca;
	}

	public void setValorCobranca(BigDecimal valorCobranca) {
		this.valorCobranca = valorCobranca;
	}

	public BigDecimal getValorAcumulado() {
		return valorAcumulado;
	}

	public void setValorAcumulado(BigDecimal valorAcumulado) {
		this.valorAcumulado = valorAcumulado;
	}

	public BigDecimal getValorAplicado() {
		return valorAplicado;
	}

	public void setValorAplicado(BigDecimal valorAplicado) {
		this.valorAplicado = valorAplicado;
	}

	public Boolean getCobrancaEfetuada() {
		return cobrancaEfetuada == null ? false : cobrancaEfetuada;
	}

	public void setCobrancaEfetuada(Boolean cobrancaEfetuada) {
		this.cobrancaEfetuada = cobrancaEfetuada;
	}

	public String getFrequenciaNaData() {
		return frequenciaNaData;
	}

	public void setFrequenciaNaData(String frequenciaNaData) {
		this.frequenciaNaData = frequenciaNaData;
	}

	public Date getDataRegistro() {
		return dataRegistro;
	}

	public void setDataRegistro(Date dataRegistro) {
		this.dataRegistro = dataRegistro;
	}

	public String getMotivo() {
		return motivo;
	}

	public void setMotivo(String motivo) {
		this.motivo = motivo;
	}

	public Integer getUsuarioId() {
		return usuarioId;
	}

	public void setUsuarioId(Integer usuarioId) {
		this.usuarioId = usuarioId;
	}
}
