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.FetchType;
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;

@Entity
@SequenceGenerator(name = "COMISSAO_SEQ", sequenceName = "COMISSAO_SEQ", allocationSize = 1)
@Table(name = "COMISSAO")
public class Comissao implements Serializable {

	private static final long serialVersionUID = 1L;
	
	@Id
	@Basic(optional = false)
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "COMISSAO_SEQ")
	@Column(name = "COMISSAO_ID")
	private Integer comissaoId;
	
	@Column(name = "COMPETENCIA")
	private String competencia;
	
	@Column(name = "DATAPAGAMENTO")
	@Temporal(TemporalType.TIMESTAMP)
	private Date dataPagamento;
	
	@Column(name = "INDPAGO")
	private Boolean indPago;
	
	@Column(name = "COMISSAO_BPR")
	private BigDecimal comissaoBpr;
	
	@Column(name = "RECEITA_EXCESSOBAGAGEM")
	private BigDecimal receitaExcessobagagem;
	
	@Column(name = "RECEITA_SEGUROOPCIONAL")
	private BigDecimal receitaSeguroopcional;
	
	@Column(name = "RECEITA_SEGURO")
	private BigDecimal receitaSeguro;
	
	@Column(name = "RECEITA_OUTROS")
	private BigDecimal receitaOutros;
	
	@Column(name = "DESCONTOS_FIXOS")
	private BigDecimal descontosFixos;
	
	@Column(name = "DESCONTOS_EVENTUAIS")
	private BigDecimal descontosEventuais;
	
	@Column(name = "ROYATIES")
	private BigDecimal royaties;
	
	@Column(name = "ISS_RETIDO")
	private BigDecimal issRetido;
	
	@Column(name = "BONIFICACAO_METAS")
	private BigDecimal bonificacaoMetas;
	
	@Column(name = "ENTREGAS_PASSAGEM")
	private BigDecimal entregasPassagem;
	
	@Column(name = "USUARIOPAGAMENTO_ID")
	private Integer usuarioPagamentoId;
	
	@Column(name = "ACTIVO")
	private Boolean activo;
	
	@Column(name = "FECMODIF")
	@Temporal(TemporalType.TIMESTAMP)
	private Date fecmodif;
	
	@Column(name = "USUARIO_ID")
	private Integer usuarioId;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "PUNTOVENTA_ID")
	private PuntoVenta puntoVenta;
	
	@Column(name = "EMPRESA_ID")
	private Integer empresaId;

	@Column(name = "RECEITA_BPR")
	private BigDecimal receitaBPR;

	@Column(name = "DEVOLVIDOS")
	private BigDecimal devolvidos;

	@Column(name = "RECEITA_BRUTA_EXCESSOBAGAGEM")
	private BigDecimal receitaBrutaExcessoBagagem;

	@Column(name = "RECEITA_BRUTA_SEGURO")
	private BigDecimal receitaBrutaSeguro;
	
	@Column(name = "RECEITA_BRUTA_SEGUROOPCIONAL")
	private BigDecimal receitaBrutaSeguroopcional;

	@Column(name = "DATA_INICIAL")
	@Temporal(TemporalType.DATE)
	private Date dataInicial;

	@Column(name = "DATA_FINAL")
	@Temporal(TemporalType.DATE)
	private Date dataFinal;

	@Column(name = "RECEITA_GAP")
	private BigDecimal receitaGAP;

	public Comissao() {
		super();
		setComissaoBpr(BigDecimal.ZERO);
		setReceitaExcessobagagem(BigDecimal.ZERO);
		setReceitaSeguroopcional(BigDecimal.ZERO);
		setReceitaOutros(BigDecimal.ZERO);
		setDescontosFixos(BigDecimal.ZERO);
		setDescontosEventuais(BigDecimal.ZERO);
		setRoyaties(BigDecimal.ZERO);
		setIssRetido(BigDecimal.ZERO);
		setBonificacaoMetas(BigDecimal.ZERO);
		setEntregasPassagem(BigDecimal.ZERO);
		setReceitaBPR(BigDecimal.ZERO);
		setDevolvidos(BigDecimal.ZERO);
		setReceitaBrutaExcessoBagagem(BigDecimal.ZERO);
		setReceitaBrutaSeguroopcional(BigDecimal.ZERO);
		setReceitaGAP(BigDecimal.ZERO);
	}

	public Integer getComissaoId() {
		return comissaoId;
	}

	public void setComissaoId(Integer comissaoId) {
		this.comissaoId = comissaoId;
	}

	public String getCompetencia() {
		return competencia;
	}

	public void setCompetencia(String competencia) {
		this.competencia = competencia;
	}

	public Date getDataPagamento() {
		return dataPagamento;
	}

	public void setDataPagamento(Date dataPagamento) {
		this.dataPagamento = dataPagamento;
	}

	public Boolean getIndPago() {
		return indPago;
	}

	public void setIndPago(Boolean indPago) {
		this.indPago = indPago;
	}

	public BigDecimal getComissaoBpr() {
		return comissaoBpr;
	}

	public void setComissaoBpr(BigDecimal comissaoBpr) {
		this.comissaoBpr = comissaoBpr;
	}

	public BigDecimal getReceitaExcessobagagem() {
		return receitaExcessobagagem;
	}

	public void setReceitaExcessobagagem(BigDecimal receitaExcessobagagem) {
		this.receitaExcessobagagem = receitaExcessobagagem;
	}

	public BigDecimal getReceitaSeguroopcional() {
		return receitaSeguroopcional;
	}

	public void setReceitaSeguroopcional(BigDecimal receitaSeguroopcional) {
		this.receitaSeguroopcional = receitaSeguroopcional;
	}

	public BigDecimal getReceitaSeguro() {
		return receitaSeguro;
	}

	public void setReceitaSeguro(BigDecimal receitaSeguro) {
		this.receitaSeguro = receitaSeguro;
	}

	public BigDecimal getDescontosFixos() {
		return descontosFixos;
	}

	public void setDescontosFixos(BigDecimal descontosFixos) {
		this.descontosFixos = descontosFixos;
	}

	public BigDecimal getDescontosEventuais() {
		return descontosEventuais;
	}

	public void setDescontosEventuais(BigDecimal descontosEventuais) {
		this.descontosEventuais = descontosEventuais;
	}

	public BigDecimal getRoyaties() {
		return royaties;
	}

	public void setRoyaties(BigDecimal royaties) {
		this.royaties = royaties;
	}

	public BigDecimal getIssRetido() {
		return issRetido;
	}

	public void setIssRetido(BigDecimal issRetido) {
		this.issRetido = issRetido;
	}

	public BigDecimal getBonificacaoMetas() {
		return bonificacaoMetas;
	}

	public void setBonificacaoMetas(BigDecimal bonificacaoMetas) {
		this.bonificacaoMetas = bonificacaoMetas;
	}

	public BigDecimal getEntregasPassagem() {
		return entregasPassagem;
	}

	public void setEntregasPassagem(BigDecimal entregasPassagem) {
		this.entregasPassagem = entregasPassagem;
	}

	public Integer getUsuarioPagamentoId() {
		return usuarioPagamentoId;
	}

	public void setUsuarioPagamentoId(Integer usuarioPagamentoId) {
		this.usuarioPagamentoId = usuarioPagamentoId;
	}

	public Boolean getActivo() {
		return activo;
	}

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

	public Date getFecmodif() {
		return fecmodif;
	}

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

	public Integer getUsuarioId() {
		return usuarioId;
	}

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

	public Integer getEmpresaId() {
		return empresaId;
	}

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

	public BigDecimal getReceitaOutros() {
		return receitaOutros;
	}

	public void setReceitaOutros(BigDecimal receitaOutros) {
		this.receitaOutros = receitaOutros;
	}

	public PuntoVenta getPuntoVenta() {
		return puntoVenta;
	}

	public void setPuntoVenta(PuntoVenta puntoVenta) {
		this.puntoVenta = puntoVenta;
	}

	public BigDecimal getReceitaBPR() {
		return receitaBPR;
	}

	public void setReceitaBPR(BigDecimal receitaBPR) {
		this.receitaBPR = receitaBPR;
	}

	public BigDecimal getDevolvidos() {
		return devolvidos;
	}

	public void setDevolvidos(BigDecimal devolvidos) {
		this.devolvidos = devolvidos;
	}

	public BigDecimal getReceitaBrutaExcessoBagagem() {
		return receitaBrutaExcessoBagagem;
	}

	public void setReceitaBrutaExcessoBagagem(BigDecimal receitaBrutaExcessoBagagem) {
		this.receitaBrutaExcessoBagagem = receitaBrutaExcessoBagagem;
	}

	public BigDecimal getReceitaBrutaSeguroopcional() {
		return receitaBrutaSeguroopcional;
	}

	public void setReceitaBrutaSeguroopcional(BigDecimal receitaBrutaSeguroopcional) {
		this.receitaBrutaSeguroopcional = receitaBrutaSeguroopcional;
	}

	public Date getDataInicial() {
		return dataInicial;
	}

	public void setDataInicial(Date dataInicial) {
		this.dataInicial = dataInicial;
	}

	public Date getDataFinal() {
		return dataFinal;
	}

	public void setDataFinal(Date dataFinal) {
		this.dataFinal = dataFinal;
	}

	public BigDecimal getReceitaGAP() {
		return receitaGAP;
	}

	public void setReceitaGAP(BigDecimal receitaGAP) {
		this.receitaGAP = receitaGAP;
	}

	public BigDecimal getReceitaBrutaSeguro() {
		return receitaBrutaSeguro;
	}

	public void setReceitaBrutaSeguro(BigDecimal receitaBrutaSeguro) {
		this.receitaBrutaSeguro = receitaBrutaSeguro;
	}

}
