package com.rjconsultores.ventaboletos.entidad;

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

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "NOTA_CREDITO_VENDA_PACOTE", schema = "VTABOL")
public class NotaCreditoVendaPacote implements java.io.Serializable {

	private static final long serialVersionUID = -4838838474645281215L;

	@Id
	@Column(name = "NOTACREDITOVENDAPACOTE_ID", unique = true, nullable = false, precision = 7, scale = 0)
	private Long notaCreditoVendaPacoteId;

	@Column(name = "MOTIVOCANCELVENDAPACOTE_ID", precision = 7, scale = 0)
	private Integer motivocancelvendapacoteId;

	@ManyToOne
	@JoinColumn(name = "VENDAPACOTECANCELAMENTO_ID")
	private VendaPacote vendapacotecancelamento;

	@ManyToOne
	@JoinColumn(name = "VENDAPACOTEPAGAMENTO_ID")
	private VendaPacote vendapacotepagamento;

	@Temporal(TemporalType.DATE)
	@Column(name = "DATAPAGAMENTO", length = 7)
	private Date datapagamento;

	@Column(name = "VALOR", nullable = false, precision = 7)
	private BigDecimal valor;

	@Column(name = "SITUACAO", nullable = false, precision = 1, scale = 0)
	private Integer situacao;

	@Column(name = "USUARIO_ID", precision = 7, scale = 0)
	private Integer usuarioId;

	@Temporal(TemporalType.DATE)
	@Column(name = "FECMODIF", nullable = false, length = 7)
	private Date fecmodif;

	@Column(name = "ACTIVO", nullable = false, precision = 1, scale = 0)
	private Boolean activo;

	@Column(name = "SALDO_PAGAR", precision = 7)
	private BigDecimal saldoPagar;

	@Column(name = "PUNTOVENTA_ID", precision = 7, scale = 0)
	private Integer puntoventaId;

	@Column(name = "PUNTOVENTAPAGAMENTO_ID", precision = 7, scale = 0)
	private Integer puntoventapagamentoId;

	@Column(name = "USUARIOPAGAMENTO_ID", precision = 7, scale = 0)
	private Integer usuariopagamentoId;

	@Temporal(TemporalType.DATE)
	@Column(name = "DATANOTACREDITO", length = 7)
	private Date datanotacredito;

	@OneToMany(mappedBy = "notaCreditoVendaPacote")
	private List<CajaDiversos> cajaDiversosList;
	
	@OneToMany(mappedBy = "notaCreditoVendaPacote")
	private List<OCDDatosPagamento> ocdDatosPagamentoList;

	public Long getNotaCreditoVendaPacoteId() {
		return notaCreditoVendaPacoteId;
	}

	public void setNotaCreditoVendaPacoteId(Long notaCreditoVendaPacoteId) {
		this.notaCreditoVendaPacoteId = notaCreditoVendaPacoteId;
	}

	public Integer getMotivocancelvendapacoteId() {
		return motivocancelvendapacoteId;
	}

	public void setMotivocancelvendapacoteId(Integer motivocancelvendapacoteId) {
		this.motivocancelvendapacoteId = motivocancelvendapacoteId;
	}

	public Date getDatapagamento() {
		return datapagamento;
	}

	public void setDatapagamento(Date datapagamento) {
		this.datapagamento = datapagamento;
	}

	public BigDecimal getValor() {
		return valor;
	}

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

	public Integer isSituacao() {
		return situacao;
	}

	public void setSituacao(Integer situacao) {
		this.situacao = situacao;
	}

	public Integer getUsuarioId() {
		return usuarioId;
	}

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

	public Date getFecmodif() {
		return fecmodif;
	}

	public void setFecmodif(Date fecmodif) {
		this.fecmodif = fecmodif;
	}

	public Boolean getActivo() {
		return activo;
	}

	public void setActivo(Boolean activo) {
		this.activo = activo;
	}

	public BigDecimal getSaldoPagar() {
		return saldoPagar;
	}

	public void setSaldoPagar(BigDecimal saldoPagar) {
		this.saldoPagar = saldoPagar;
	}

	public Integer getPuntoventaId() {
		return puntoventaId;
	}

	public void setPuntoventaId(Integer puntoventaId) {
		this.puntoventaId = puntoventaId;
	}

	public Integer getPuntoventapagamentoId() {
		return puntoventapagamentoId;
	}

	public void setPuntoventapagamentoId(Integer puntoventapagamentoId) {
		this.puntoventapagamentoId = puntoventapagamentoId;
	}

	public Integer getUsuariopagamentoId() {
		return usuariopagamentoId;
	}

	public void setUsuariopagamentoId(Integer usuariopagamentoId) {
		this.usuariopagamentoId = usuariopagamentoId;
	}

	public Date getDatanotacredito() {
		return datanotacredito;
	}

	public void setDatanotacredito(Date datanotacredito) {
		this.datanotacredito = datanotacredito;
	}

	public List<CajaDiversos> getCajaDiversosList() {
		return cajaDiversosList;
	}

	public void setCajaDiversosList(List<CajaDiversos> cajaDiversos) {
		this.cajaDiversosList = cajaDiversos;
	}

	public List<OCDDatosPagamento> getOcdDatosPagamentoList() {
		return ocdDatosPagamentoList;
	}

	public void setOcdDatosPagamentoList(List<OCDDatosPagamento> ocdDatosPagamentos) {
		this.ocdDatosPagamentoList = ocdDatosPagamentos;
	}

	public Integer getSituacao() {
		return situacao;
	}

	public VendaPacote getVendapacotecancelamento() {
		return vendapacotecancelamento;
	}

	public void setVendapacotecancelamento(VendaPacote vendapacotecancelamento) {
		this.vendapacotecancelamento = vendapacotecancelamento;
	}

	public VendaPacote getVendapacotepagamento() {
		return vendapacotepagamento;
	}

	public void setVendapacotepagamento(VendaPacote vendapacotepagamento) {
		this.vendapacotepagamento = vendapacotepagamento;
	}

}
