package gcom.faturamento.conta; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.Subcategoria; import gcom.interceptor.ControleAlteracao; import gcom.interceptor.ObjetoTransacao; import gcom.util.filtro.Filtro; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.Date; import java.util.Set; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; @ControleAlteracao() public class ContaCategoria extends ObjetoTransacao implements IContaCategoria { private static final long serialVersionUID = 1L; private ContaCategoriaPK comp_id; @ControleAlteracao(funcionalidade=Conta.ATRIBUTOS_RETIFICAR_CONTA) private short quantidadeEconomia; private Date ultimaAlteracao; private BigDecimal valorAgua; private Integer consumoAgua; private BigDecimal valorEsgoto; private Integer consumoEsgoto; private BigDecimal valorTarifaMinimaAgua; private Integer consumoMinimoAgua; private BigDecimal valorTarifaMinimaEsgoto; private Integer consumoMinimoEsgoto; @SuppressWarnings("rawtypes") private Set contaCategoriaConsumoFaixas; @SuppressWarnings("rawtypes") public ContaCategoria(ContaCategoriaPK comp_id, short quantidadeEconomia, Date ultimaAlteracao, BigDecimal valorAgua, Integer consumoAgua, BigDecimal valorEsgoto, Integer consumoEsgoto, BigDecimal valorTarifaMinimaAgua, Integer consumoMinimoAgua, BigDecimal valorTarifaMinimaEsgoto, Integer consumoMinimoEsgoto, Set contaCategoriaConsumoFaixas) { this.comp_id = comp_id; this.quantidadeEconomia = quantidadeEconomia; this.ultimaAlteracao = ultimaAlteracao; this.valorAgua = valorAgua; this.consumoAgua = consumoAgua; this.valorEsgoto = valorEsgoto; this.consumoEsgoto = consumoEsgoto; this.valorTarifaMinimaAgua = valorTarifaMinimaAgua; this.consumoMinimoAgua = consumoMinimoAgua; this.valorTarifaMinimaEsgoto = valorTarifaMinimaEsgoto; this.consumoMinimoEsgoto = consumoMinimoEsgoto; this.contaCategoriaConsumoFaixas = contaCategoriaConsumoFaixas; } public ContaCategoria() { this.comp_id = new ContaCategoriaPK(); } public ContaCategoria(Conta conta, Categoria categoria) { this.comp_id = new ContaCategoriaPK(conta, categoria); } public ContaCategoria(Conta conta, Categoria categoria, Subcategoria subcategoria) { this.comp_id = new ContaCategoriaPK(conta.getId(), categoria, subcategoria); } @SuppressWarnings("rawtypes") public ContaCategoria(ContaCategoriaPK comp_id, short quantidadeEconomia, Set contaCategoriaConsumoFaixas) { this.comp_id = comp_id; this.quantidadeEconomia = quantidadeEconomia; this.contaCategoriaConsumoFaixas = contaCategoriaConsumoFaixas; } public ContaCategoriaPK getComp_id() { return this.comp_id; } public void setComp_id(ContaCategoriaPK comp_id) { this.comp_id = comp_id; } public short getQuantidadeEconomia() { return this.quantidadeEconomia; } public void setQuantidadeEconomia(short quantidadeEconomia) { this.quantidadeEconomia = quantidadeEconomia; } public Date getUltimaAlteracao() { return this.ultimaAlteracao; } public void setUltimaAlteracao(Date ultimaAlteracao) { this.ultimaAlteracao = ultimaAlteracao; } public BigDecimal getValorAgua() { return this.valorAgua; } public void setValorAgua(BigDecimal valorAgua) { this.valorAgua = valorAgua; } public Integer getConsumoAgua() { return this.consumoAgua; } public void setConsumoAgua(Integer consumoAgua) { this.consumoAgua = consumoAgua; } public BigDecimal getValorEsgoto() { return this.valorEsgoto; } public void setValorEsgoto(BigDecimal valorEsgoto) { this.valorEsgoto = valorEsgoto; } public Integer getConsumoEsgoto() { return this.consumoEsgoto; } public void setConsumoEsgoto(Integer consumoEsgoto) { this.consumoEsgoto = consumoEsgoto; } public BigDecimal getValorTarifaMinimaAgua() { return this.valorTarifaMinimaAgua; } public void setValorTarifaMinimaAgua(BigDecimal valorTarifaMinimaAgua) { this.valorTarifaMinimaAgua = valorTarifaMinimaAgua; } public Integer getConsumoMinimoAgua() { return this.consumoMinimoAgua; } public void setConsumoMinimoAgua(Integer consumoMinimoAgua) { this.consumoMinimoAgua = consumoMinimoAgua; } public BigDecimal getValorTarifaMinimaEsgoto() { return this.valorTarifaMinimaEsgoto; } public void setValorTarifaMinimaEsgoto(BigDecimal valorTarifaMinimaEsgoto) { this.valorTarifaMinimaEsgoto = valorTarifaMinimaEsgoto; } public Integer getConsumoMinimoEsgoto() { return this.consumoMinimoEsgoto; } public void setConsumoMinimoEsgoto(Integer consumoMinimoEsgoto) { this.consumoMinimoEsgoto = consumoMinimoEsgoto; } public Set getContaCategoriaConsumoFaixas() { return this.contaCategoriaConsumoFaixas; } public void setContaCategoriaConsumoFaixas(Set contaCategoriaConsumoFaixas) { this.contaCategoriaConsumoFaixas = contaCategoriaConsumoFaixas; } public String toString() { return new ToStringBuilder(this) .append("comp_id", getComp_id()) .toString(); } public boolean equals(Object other) { if ( (this == other ) ) return true; if ( !(other instanceof ContaCategoria) ) return false; ContaCategoria castOther = (ContaCategoria) other; return new EqualsBuilder() .append(this.getComp_id(), castOther.getComp_id()) .isEquals(); } public int hashCode() { return new HashCodeBuilder() .append(getComp_id()) .toHashCode(); } public String[] retornaCamposChavePrimaria(){ String[] retorno = {"comp_id"}; return retorno; } public Filtro retornaFiltro(){ FiltroContaCategoria filtro = new FiltroContaCategoria(); filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroContaCategoria.CATEGORIA); filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroContaCategoria.SUBCATEGORIA); filtro.adicionarParametro( new ParametroSimples(FiltroContaCategoria.CATEGORIA_ID, this.getComp_id().getCategoria().getId())); filtro.adicionarParametro( new ParametroSimples(FiltroContaCategoria.SUBCATEGORIA_ID, this.getComp_id().getSubcategoria().getId())); filtro.adicionarParametro( new ParametroSimples(FiltroContaCategoria.CONTA_ID, this.getComp_id().getConta().getId())); return filtro; } public void initializeLazy(){ if (this.getComp_id() != null){ this.comp_id.initializeLazy(); } } public String getDescricao(){ return this.getComp_id().getDescricao(); } public void setDescricao(String descricao) { if (this.getComp_id() == null) { this.comp_id = new ContaCategoriaPK(); } if (this.comp_id.getCategoria() == null) { this.comp_id.setCategoria(new Categoria()); } this.comp_id.getCategoria().setDescricao(descricao); } @Override public String getDescricaoParaRegistroTransacao() { return this.getDescricao(); } public void setConta(IConta conta){ if (comp_id == null){ comp_id = new ContaCategoriaPK(); } comp_id.setConta(conta); } public void setCategoria(Categoria categoria){ if (comp_id == null){ comp_id = new ContaCategoriaPK(); } comp_id.setCategoria(categoria); } public void setSubcategoria(Subcategoria subCategoria){ if (comp_id == null){ comp_id = new ContaCategoriaPK(); } comp_id.setSubcategoria(subCategoria); } public IConta getConta(){ return comp_id != null ? comp_id.getConta() : null; } public Categoria getCategoria(){ return comp_id != null ? comp_id.getCategoria() : null; } public Subcategoria getSubcategoria(){ return comp_id != null ? comp_id.getSubcategoria() : null; } }