package gcom.arrecadacao;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.localidade.Localidade;
import gcom.financeiro.lancamento.LancamentoItem;
import gcom.financeiro.lancamento.LancamentoItemContabil;
import gcom.financeiro.lancamento.LancamentoTipo;
import java.math.BigDecimal;
import java.util.Date;
public class ResumoArrecadacaoBuilder {
public static ResumoArrecadacao buildResumoRecebimentosClassificadosContas(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.CONTAS);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosParcelamentosCobrados(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.PARCELAMENTOS_COBRADOS_SUP_CONTAS);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosCreditosRealizados(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.CREDITOS_REALIZADOS_SUP_CONTAS);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosImpostosRetidos(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.IMPOSTOS_RETIDOS_NAS_CONTAS_RECEBIDAS);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosGuiasPagamento(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.GUIAS_PAGAMENTO);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosDoacoes(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.DOACOES_RECEBIDAS_EM_CONTA);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosDebitosACobrar(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.DEBITOS_A_COBRAR);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosTotalCreditos(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.TOTAL_CREDITOS_REALIZADOS);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosTotal(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.TOTAL_DOS_RECEBIMENTOS_CLASSIFICADOS);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosTotalContas(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.TOTAL_DOS_RECEBIMENTOS_DE_CONTA_CLASSIFICADOS);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosRecuperacaoCredito(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS_RECUPERACAO_CREDITO);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.RECUPERACAO_CREDITO);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosClassificadosRecuperacaoCreditoMesesAnteriores(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_CLASSIFICADOS_RECUPERACAO_CREDITO_MESES_ANTERIORES);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.RECUPERACAO_CREDITO);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
public static ResumoArrecadacao buildResumoRecebimentosNaoClassificadosDuplicidade(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
RecebimentoTipo recebimentoTipo = new RecebimentoTipo(RecebimentoTipo.RECEBIMENTOS_NAO_CLASSIFICADOS);
LancamentoTipo lancamentoTipo = new LancamentoTipo(LancamentoTipo.PAGAMENTO_EM_DUPLICIDADE);
ResumoArrecadacao resumo = buildResumo(localidade, categoria, referencia, valor, recebimentoTipo, lancamentoTipo, lancamentoItem, lancamentoItemContabil, seqTipoLancamento, seqItemTipoLancamento);
return resumo;
}
private static ResumoArrecadacao buildResumo(Localidade localidade, Categoria categoria,
Integer referencia, BigDecimal valor,
RecebimentoTipo recebimentoTipo, LancamentoTipo lancamentoTipo,
LancamentoItem lancamentoItem, LancamentoItemContabil lancamentoItemContabil,
Short seqTipoLancamento, Short seqItemTipoLancamento) {
ResumoArrecadacao resumo = new ResumoArrecadacao();
resumo.setGerenciaRegional(localidade.getGerenciaRegional());
resumo.setLocalidade(localidade);
resumo.setCategoria(categoria);
resumo.setAnoMesReferencia(referencia);
resumo.setRecebimentoTipo(recebimentoTipo);
resumo.setLancamentoTipo(lancamentoTipo);
resumo.setLancamentoItem(lancamentoItem);
resumo.setLancamentoItemContabil(lancamentoItemContabil);
resumo.setSequenciaTipoLancamento(seqTipoLancamento);
resumo.setSequenciaItemTipoLancamento(seqItemTipoLancamento);
resumo.setValorItemArrecadacao(valor);
resumo.setUltimaAlteracao(new Date());
return resumo;
}
}