package gcom.faturamento.credito;
import gcom.financeiro.lancamento.LancamentoItemContabil;
import gcom.interceptor.ObjetoTransacao;
import gcom.util.filtro.Filtro;
import gcom.util.filtro.ParametroSimples;
import java.math.BigDecimal;
import java.util.Date;
import org.apache.commons.lang.builder.ToStringBuilder;
public class CreditoTipo extends ObjetoTransacao {
private static final long serialVersionUID = 1L;
public final static Integer CREDITO_NITRATO = new Integer(0);
public final static Integer DESCONTO_ACRESCIMOS_IMPONTUALIDADE = new Integer(1);
public final static Integer DESCONTO_ANTIGUIDADE_DEBITO = new Integer(2);
public final static Integer DESCONTO_INATIVIDADE_LIGACAO_AGUA = new Integer(3);
public final static Integer CREDITOS_ANTERIORES_CURTO_PRAZO = new Integer(4);
public final static Integer DEVOLUCAO_PAGAMENTOS_DUPLICIDADE = new Integer(5);
public final static Integer DEVOLUCAO_OUTROS_VALORES = new Integer(7);
public final static Integer DESCONTOS_CONCEDIDOS = new Integer(8);
public final static Integer DEVOLUCAO_ACRESCIMOS_IMPONTUALIDADE = new Integer(9);
public final static Integer DESCONTO_SANCOES = new Integer(10);
public final static Integer DESCONTO_TARIFA_SOCIAL = new Integer(11);
public final static Integer PAGAMENTO_PARCIAL = new Integer(856);
public final static Integer PAGAMENTO_NAO_CONFERE = new Integer(860);
public final static Integer DESCONTO_FAIXA_REFERENCIA_CONTA = new Integer(863);
public final static Integer CREDITOS_ANTERIORES_LONGO_PRAZO = new Integer(864);
private Integer id;
private String descricao;
private String descricaoAbreviada;
private Integer indicadorUso;
private Date ultimaAlteracao;
private BigDecimal valorLimite;
private Short indicadorGeracaoAutomatica;
private LancamentoItemContabil lancamentoItemContabil;
private Integer codigoConstante;
public CreditoTipo(String descricao, String descricaoAbreviada,
Integer indicadorUso, Date ultimaAlteracao, BigDecimal valorLimite,
Short indicadorGeracaoAutomatica,
LancamentoItemContabil lancamentoItemContabil) {
this.descricao = descricao;
this.descricaoAbreviada = descricaoAbreviada;
this.indicadorUso = indicadorUso;
this.ultimaAlteracao = ultimaAlteracao;
this.valorLimite = valorLimite;
this.indicadorGeracaoAutomatica = indicadorGeracaoAutomatica;
this.lancamentoItemContabil = lancamentoItemContabil;
}
public CreditoTipo() {
}
public CreditoTipo(Integer id, String descricao) {
this.id = id;
this.descricao = descricao;
}
public CreditoTipo(Integer id) {
this.id = id;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDescricao() {
return this.descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getDescricaoAbreviada() {
return this.descricaoAbreviada;
}
public void setDescricaoAbreviada(String descricaoAbreviada) {
this.descricaoAbreviada = descricaoAbreviada;
}
public Integer getIndicadorUso() {
return this.indicadorUso;
}
public void setIndicadorUso(Integer indicadorUso) {
this.indicadorUso = indicadorUso;
}
public Date getUltimaAlteracao() {
return this.ultimaAlteracao;
}
public void setUltimaAlteracao(Date ultimaAlteracao) {
this.ultimaAlteracao = ultimaAlteracao;
}
public BigDecimal getValorLimite() {
return this.valorLimite;
}
public void setValorLimite(BigDecimal valorLimite) {
this.valorLimite = valorLimite;
}
public Short getIndicadorGeracaoAutomatica() {
return this.indicadorGeracaoAutomatica;
}
public void setIndicadorGeracaoAutomatica(Short indicadorGeracaoAutomatica) {
this.indicadorGeracaoAutomatica = indicadorGeracaoAutomatica;
}
public String toString() {
return new ToStringBuilder(this).append("id", getId()).toString();
}
public LancamentoItemContabil getLancamentoItemContabil() {
return lancamentoItemContabil;
}
public void setLancamentoItemContabil(LancamentoItemContabil lancamentoItemContabil) {
this.lancamentoItemContabil = lancamentoItemContabil;
}
public String[] retornaCamposChavePrimaria() {
String[] retorno = new String[1];
retorno[0] = "id";
return retorno;
}
public Filtro retornaFiltro() {
FiltroCreditoTipo filtroCreditoTipo = new FiltroCreditoTipo();
filtroCreditoTipo.adicionarParametro(new ParametroSimples(FiltroCreditoTipo.ID, this.getId()));
filtroCreditoTipo.adicionarCaminhoParaCarregamentoEntidade("lancamentoItemContabil");
return filtroCreditoTipo;
}
@Override
public String getDescricaoParaRegistroTransacao() {
return getDescricao();
}
public Integer getCodigoConstante() {
return codigoConstante;
}
public void setCodigoConstante(Integer codigoConstante) {
this.codigoConstante = codigoConstante;
}
@Override
public boolean equals(Object obj) {
boolean retorno = false;
if (obj instanceof CreditoTipo) {
CreditoTipo castOther = (CreditoTipo) obj;
retorno = this.getId().compareTo(castOther.getId())==0;
}
return retorno;
}
@Override
public int hashCode() {
return this.getId();
}
}