package gcom.gui.cobranca.contratoparcelamento;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.cliente.ClienteTipo;
import gcom.cadastro.cliente.FiltroClienteRelacaoTipo;
import gcom.cobranca.CobrancaForma;
import gcom.cobranca.CobrancaSituacao;
import gcom.cobranca.DocumentoTipo;
import gcom.cobranca.FiltroCobrancaForma;
import gcom.cobranca.bean.ContaValoresHelper;
import gcom.cobranca.bean.GuiaPagamentoValoresHelper;
import gcom.cobranca.bean.ObterDebitoImovelOuClienteHelper;
import gcom.cobranca.contratoparcelamento.ComparatorParcela;
import gcom.cobranca.contratoparcelamento.ComparatorPrestacaoContratoParcelamento;
import gcom.cobranca.contratoparcelamento.ContratoParcelamento;
import gcom.cobranca.contratoparcelamento.ContratoParcelamentoCliente;
import gcom.cobranca.contratoparcelamento.ContratoParcelamentoItem;
import gcom.cobranca.contratoparcelamento.ContratoParcelamentoRD;
import gcom.cobranca.contratoparcelamento.FiltroContratoParcelamentoCliente;
import gcom.cobranca.contratoparcelamento.FiltroContratoParcelamentoItem;
import gcom.cobranca.contratoparcelamento.FiltroContratoParcelamentoRD;
import gcom.cobranca.contratoparcelamento.FiltroPrestacaoContratoParcelamento;
import gcom.cobranca.contratoparcelamento.FiltroQuantidadePrestacoes;
import gcom.cobranca.contratoparcelamento.FiltroTipoRelacao;
import gcom.cobranca.contratoparcelamento.InserirContratoParcelamentoValoresParcelasHelper;
import gcom.cobranca.contratoparcelamento.PrestacaoContratoParcelamento;
import gcom.cobranca.contratoparcelamento.QuantidadePrestacoes;
import gcom.cobranca.contratoparcelamento.QuantidadePrestacoesRDHelper;
import gcom.cobranca.contratoparcelamento.TipoRelacao;
import gcom.cobranca.parcelamento.Parcelamento;
import gcom.cobranca.parcelamento.ParcelamentoSituacao;
import gcom.fachada.Fachada;
import gcom.faturamento.conta.ContaMotivoRevisao;
import gcom.faturamento.credito.CreditoARealizar;
import gcom.faturamento.credito.CreditoOrigem;
import gcom.faturamento.debito.DebitoACobrar;
import gcom.faturamento.debito.DebitoTipo;
import gcom.financeiro.FinanciamentoTipo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.PermissaoEspecial;
import gcom.seguranca.acesso.usuario.FiltroUsuario;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ComparacaoTexto;
import gcom.util.filtro.ParametroSimples;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Action que define o pr�-processamento da p�gina de Atualizar Contrato Parcelamento por Cliente
*
* @author Paulo Diniz, Mariana Victor
* @created 16/03/2011, 27/06/2011
*/
public class ExibirAtualizarContratoParcelamentoPorClienteAction extends GcomAction {
/**
* [UC1139] Atualizar Contrato de Parcelamento por Cliente
*
* Este caso de uso permite a altera��o de um contrato parcelamento por cliente
*
* @author Paulo Diniz, Mariana Victor
* @date 04/04/2011, 27/06/2011
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Seta o retorno
ActionForward retorno = actionMapping.findForward("exibirAtualizar");
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
AtualizarContratoParcelamentoPorClienteActionForm form = (AtualizarContratoParcelamentoPorClienteActionForm) actionForm;
String contratoAtualizarNumero = httpServletRequest.getParameter("contratoAtualizarNumero");
Fachada fachada = Fachada.getInstancia();
this.carregarObjetosSessao(sessao, usuarioLogado);
String method = httpServletRequest.getParameter("method");
ContratoParcelamento contratoAtualizar = (ContratoParcelamento) sessao.getAttribute("contratoAtualizar");
sessao.removeAttribute("mensagemAlerta");
if (httpServletRequest.getParameter("consulta") != null
&& httpServletRequest.getParameter("consulta").trim().equalsIgnoreCase("contratoAnt")
&& form.getNumeroContratoAnt() != null
&& !form.getNumeroContratoAnt().equals("")) {
// [FS0008 - Verificar exist�ncia do contrato anterior]
if (!fachada.verificarExistenciaContratoAnterior(form.getNumeroContratoAnt())) {
throw new ActionServletException(
"atencao.nao_existe.numero.contrato_parcelamento");
}
// [FS0037 - Verificar situa��o do contrato anterior]
if (fachada.verificarSituacaoContratoAnterior(form.getNumeroContratoAnt())) {
throw new ActionServletException(
"atencao.contrato_parcelamento_anterior.nao_esta_encerrado");
}
if (contratoAtualizar != null) {
ContratoParcelamento contratoParcelamentoAnt = new ContratoParcelamento();
contratoParcelamentoAnt.setNumero(form.getNumeroContratoAnt());
contratoAtualizar.setContratoAnterior(contratoParcelamentoAnt);
}
sessao.setAttribute("etapa", "primeira");
} else if (httpServletRequest.getParameter("consulta") != null
&& httpServletRequest.getParameter("consulta").toString().trim().equalsIgnoreCase("usuario")) {
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(FiltroUsuario.LOGIN, form.getLoginUsuario()));
Collection colecaoUsuario = fachada.pesquisar(filtroUsuario, Usuario.class.getName());
// [FS0009] - Verificar exist�ncia do usu�rio
if (colecaoUsuario != null && !colecaoUsuario.isEmpty()) {
Usuario usuario = (Usuario) Util.retonarObjetoDeColecao(colecaoUsuario);
form.setNomeUsuario(usuario.getNomeUsuario());
form.setLoginUsuario(usuario.getLogin());
contratoAtualizar.setUsuarioResponsavel(usuario);
sessao.setAttribute("usuarioEncontrado","true");
} else {
sessao.removeAttribute("usuarioEncontrado");
form.setLoginUsuario("");
form.setNomeUsuario("Usu�rio Inexistente");
contratoAtualizar.setUsuarioResponsavel(null);
}
sessao.setAttribute("etapa", "primeira");
} else if (contratoAtualizar == null || (contratoAtualizarNumero != null && !contratoAtualizarNumero.equals(""))) {
// Se a requisi��o veio do Consultar Contrato ou do Inserir Contrato
this.apagarDadosSessao(sessao, form);
this.carregarDadosPrimeiraEtapa(sessao, form, httpServletRequest,
contratoAtualizarNumero, contratoAtualizar);
this.atualizarValoresForm(sessao, form);
} else if(method != null && method.equals("desfazerContrato")){
// Se o usu�rio clicou no bot�o "Desfazer"
this.apagarDadosSessao(sessao, form);
contratoAtualizarNumero = this.getContrato(sessao, form).getNumero();
contratoAtualizar = null;
this.carregarDadosPrimeiraEtapa(sessao, form, httpServletRequest,
contratoAtualizarNumero, contratoAtualizar);
this.atualizarValoresForm(sessao, form);
}else if(method != null && method.equals("mostrarPrimeiraEtapa")){
validarCampos(form, sessao, method, contratoAtualizar);
sessao.setAttribute("etapa", "primeira");
} else if(method != null && method.equals("mostrarSegundaEtapa")) {
if((sessao.getAttribute("alterouCamposPrimeiraEtapa") == null
|| !sessao.getAttribute("alterouCamposPrimeiraEtapa").toString().equalsIgnoreCase("sim"))){
if (this.verificarCampoAlteradoPrimeiraEtapa(sessao, form, contratoAtualizar)) {
// 2� etapa
this.removerListaDebitos(sessao, form);
this.removerDebitos(sessao, form);
// 3� etapa
this.removerValoresParcelas(sessao, form);
form.setFormaPgto("-1");
form.setResolucaoDiretoria("");
contratoAtualizar.setResolucaoDiretoria(null);
sessao.removeAttribute("colecaoQuantidadePrestacoesRDHelper");
form.setParcelaSelecao(null);
GregorianCalendar dataVencPrimeiraParc = new GregorianCalendar();
if(dataVencPrimeiraParc.get(Calendar.DAY_OF_MONTH) > 28){
dataVencPrimeiraParc.set(Calendar.MONTH, dataVencPrimeiraParc.get(Calendar.MONTH) + 1);
dataVencPrimeiraParc.set(Calendar.DAY_OF_MONTH, 28);
}else{
dataVencPrimeiraParc.set(Calendar.DAY_OF_MONTH, 28);
}
form.setDataVencimentoPrimParcela(Util.formatarData(dataVencPrimeiraParc.getTime()));
contratoAtualizar.setDataVencimentoPrimParcela(dataVencPrimeiraParc.getTime());
if (form.getAutocompleteCliente() != null && !"".equals(form.getAutocompleteCliente())
&& form.getAutocompleteCliente().contains("-")){
int id = Integer.parseInt(form.getAutocompleteCliente().split(" - ")[0].trim());
Cliente cliente = fachada.pesquisarDadosCliente(id);
ContratoParcelamento contratoParcelamento = fachada.
pesquisarContratoParcelamentoCompleto(contratoAtualizar.getId(), null);
ContratoParcelamentoCliente clienteContrato = new ContratoParcelamentoCliente();
clienteContrato.setCliente(cliente);
clienteContrato.setContrato(contratoParcelamento);
sessao.setAttribute("clienteContrato", clienteContrato);
sessao.setAttribute("tipoConsulta", "cliente");
}else{
sessao.removeAttribute("clienteContrato");
sessao.removeAttribute("tipoConsulta");
}
if (form.getAutocompleteClienteSuperior() != null && !"".equals(form.getAutocompleteClienteSuperior())
&& form.getAutocompleteClienteSuperior().contains("-")){
int id = Integer.parseInt(form.getAutocompleteClienteSuperior().split(" - ")[0].trim());
Cliente cliente = fachada.pesquisarDadosCliente(id);
ContratoParcelamento contratoParcelamento = fachada.
pesquisarContratoParcelamentoCompleto(contratoAtualizar.getId(), null);
ContratoParcelamentoCliente clienteSuperiorContrato = new ContratoParcelamentoCliente();
clienteSuperiorContrato.setCliente(cliente);
clienteSuperiorContrato.setContrato(contratoParcelamento);
sessao.setAttribute("clienteSuperiorContrato", clienteSuperiorContrato);
sessao.setAttribute("tipoConsulta", "clienteSuperior");
}else{
sessao.removeAttribute("clienteSuperiorContrato");
sessao.removeAttribute("tipoConsulta");
}
this.validarCampos(form, sessao, method, contratoAtualizar);
this.calcularDebitosCliente(sessao, form, contratoAtualizar, false);
}
}
sessao.setAttribute("etapa", "segunda");
} else if (httpServletRequest.getParameter("limparTotalizacaoParcelas") != null
&& httpServletRequest.getParameter("limparTotalizacaoParcelas")
.toString().trim().equalsIgnoreCase("sim")) {
this.removerValoresParcelas(sessao, form);
} else if (httpServletRequest.getParameter("limparListaParcelas") != null
&& httpServletRequest.getParameter("limparListaParcelas")
.toString().trim().equalsIgnoreCase("sim")) {
this.removerValoresListasParcelas(sessao, form);
} else if(method != null && method.equals("mostrarTerceiraEtapa")) {
if(sessao.getAttribute("finalizou") == null){
sessao.setAttribute("finalizou", true);
}
if((sessao.getAttribute("alterouCamposPrimeiraEtapa") == null
|| !sessao.getAttribute("alterouCamposPrimeiraEtapa").toString().equalsIgnoreCase("sim"))
&&(sessao.getAttribute("alterouCamposSegundaEtapa") == null
|| !sessao.getAttribute("alterouCamposSegundaEtapa").toString().equalsIgnoreCase("sim"))
&& this.verificarCampoAlteradoPrimeiraEtapa(sessao, form, contratoAtualizar)) {
// 2� etapa
this.removerListaDebitos(sessao, form);
// 3� etapa
this.removerValoresParcelas(sessao, form);
form.setFormaPgto("-1");
form.setResolucaoDiretoria("");
contratoAtualizar.setResolucaoDiretoria(null);
sessao.removeAttribute("colecaoQuantidadePrestacoesRDHelper");
form.setParcelaSelecao(null);
GregorianCalendar dataVencPrimeiraParc = new GregorianCalendar();
if(dataVencPrimeiraParc.get(Calendar.DAY_OF_MONTH) > 28){
dataVencPrimeiraParc.set(Calendar.MONTH, dataVencPrimeiraParc.get(Calendar.MONTH) + 1);
dataVencPrimeiraParc.set(Calendar.DAY_OF_MONTH, 28);
}else{
dataVencPrimeiraParc.set(Calendar.DAY_OF_MONTH, 28);
}
form.setDataVencimentoPrimParcela(Util.formatarData(dataVencPrimeiraParc.getTime()));
contratoAtualizar.setDataVencimentoPrimParcela(dataVencPrimeiraParc.getTime());
} else if ((sessao.getAttribute("alterouCamposSegundaEtapa") == null
|| !sessao.getAttribute("alterouCamposSegundaEtapa").toString().equalsIgnoreCase("sim"))
&& this.verificarCampoAlteradoSegundaEtapa(sessao, form)){
// 3� etapa
this.removerValoresParcelas(sessao, form);
form.setFormaPgto("-1");
form.setResolucaoDiretoria("");
contratoAtualizar.setResolucaoDiretoria(null);
sessao.removeAttribute("colecaoQuantidadePrestacoesRDHelper");
form.setParcelaSelecao(null);
GregorianCalendar dataVencPrimeiraParc = new GregorianCalendar();
if(dataVencPrimeiraParc.get(Calendar.DAY_OF_MONTH) > 28){
dataVencPrimeiraParc.set(Calendar.MONTH, dataVencPrimeiraParc.get(Calendar.MONTH) + 1);
dataVencPrimeiraParc.set(Calendar.DAY_OF_MONTH, 28);
}else{
dataVencPrimeiraParc.set(Calendar.DAY_OF_MONTH, 28);
}
form.setDataVencimentoPrimParcela(Util.formatarData(dataVencPrimeiraParc.getTime()));
contratoAtualizar.setDataVencimentoPrimParcela(dataVencPrimeiraParc.getTime());
}
boolean carregarForm = true, atualizarListasParcelas = true;
if (form.getPacerlaAdd() != null && !form.getPacerlaAdd().toString().trim().equals("")) {
sessao.removeAttribute("numeroParcelasPopUp");
form.setNumeroParcelasPopUp(null);
sessao.setAttribute("etapa", "terceira");
} else {
String numeroParcelasPopUp = httpServletRequest.getParameter("numeroParcelasPopUp");
if(numeroParcelasPopUp != null && !numeroParcelasPopUp.equals("") ){
sessao.setAttribute("numeroParcelasPopUp", form.getNumeroParcelasPopUp());
sessao.setAttribute("etapa", "informarParcela");
carregarForm = false;
atualizarListasParcelas = false;
}
String indicadorTela = httpServletRequest.getParameter("indicadorTela");
if(indicadorTela != null && indicadorTela.equals("popup")){
sessao.setAttribute("etapa", "informarParcela");
carregarForm = false;
atualizarListasParcelas = false;
}else{
sessao.setAttribute("etapa", "terceira");
}
}
String escolheuRD = httpServletRequest.getParameter("escolheuRD");
if(escolheuRD != null && !escolheuRD.equals("") && escolheuRD.equals("true")){
contratoAtualizar.setValorTotalParcelado(null);
contratoAtualizar.setValorParcelamentoACobrar(null);
}
if (carregarForm) {
this.carregarCamposDoFormulario(form, sessao,
httpServletRequest);
}
this.carregarDadosTerceiraEtapa(sessao, form,
httpServletRequest, contratoAtualizar, true, false, atualizarListasParcelas);
// se alterou o n�mero de parcelas/taxa de juros
if (!atualizarListasParcelas) {
sessao.removeAttribute("listaDeParcelas");
sessao.removeAttribute("listaValoresDistintos");
sessao.removeAttribute("listaDeParcelasPopUp");
sessao.removeAttribute("listaValoresDistintosPopUp");
}
} else if(method != null && method.equals("inserirParcela")) {
sessao.setAttribute("etapa", "informarParcela");
String parcelaInicial = httpServletRequest.getParameter("parcelaInicial");
String parcelaFinal = httpServletRequest.getParameter("parcelaFinal");
String valorParcela = httpServletRequest.getParameter("valorParcela");
String numeroParcelasPopUp = httpServletRequest.getParameter("numeroParcelasPopUp");
List<PrestacaoContratoParcelamento> listaDeParcelasPopUp = (List<PrestacaoContratoParcelamento>) sessao.getAttribute("listaDeParcelasPopUp");
if(listaDeParcelasPopUp == null){
listaDeParcelasPopUp = new ArrayList<PrestacaoContratoParcelamento>();
}
//[FS0024]
verificaNumeroParcelas(numeroParcelasPopUp, parcelaInicial, parcelaFinal, listaDeParcelasPopUp, sessao);
List<Float> listaValoresDistintosPopUp = (List<Float>) sessao.getAttribute("listaValoresDistintosPopUp");
if(listaValoresDistintosPopUp == null){
listaValoresDistintosPopUp = new ArrayList<Float>();
}
if(!listaDeParcelasPopUp.isEmpty()){
//verifica se a(s) parcelas a serem adicionas estao na sequencia correta, comparando com a ultima parcela da lista
if(listaDeParcelasPopUp.get(listaDeParcelasPopUp.size()-1).getNumero() +1 == Integer.parseInt(parcelaInicial)){
int numeroParcelInicial = Integer.parseInt(parcelaInicial);
int numeroParcelFinal = Integer.parseInt(parcelaFinal);
valorParcela = valorParcela.replace(".", "");
valorParcela = valorParcela.replace(",", ".");
BigDecimal valorParcelaBigDec = new BigDecimal("0");
try{
valorParcelaBigDec = new BigDecimal(valorParcela);
}catch (Exception e) {
ActionServletException ex = new ActionServletException(
"atencao.campo.numero.parcelas.invalido", null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", "terceira");
throw ex;
}
for(;numeroParcelInicial <= numeroParcelFinal; numeroParcelInicial++){
PrestacaoContratoParcelamento prestacao = new PrestacaoContratoParcelamento();
prestacao.setNumero(numeroParcelInicial);
prestacao.setValor(valorParcelaBigDec);
listaDeParcelasPopUp.add(prestacao);
}
if(listaValoresDistintosPopUp.isEmpty()
|| new BigDecimal(valorParcela).floatValue() != listaValoresDistintosPopUp.get(listaValoresDistintosPopUp.size()-1)){
listaValoresDistintosPopUp.add(new BigDecimal(valorParcela).floatValue());
}
}else{
ActionServletException ex = new ActionServletException("atencao.lista.parcelas.descontinuas",null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", "informarParcela");
throw ex;
}
}else{
int numeroParcelInicial = Integer.parseInt(parcelaInicial);
int numeroParcelFinal = Integer.parseInt(parcelaFinal);
if(numeroParcelInicial != 1){
ActionServletException ex = new ActionServletException("atencao.lista.parcelas.descontinuas",null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", "informarParcela");
throw ex;
}
valorParcela = valorParcela.replace(".", "");
valorParcela = valorParcela.replace(",", ".");
BigDecimal valorParcelaBigDec = new BigDecimal("0");
try{
valorParcelaBigDec = new BigDecimal(valorParcela);
}catch (Exception e) {
ActionServletException ex = new ActionServletException(
"atencao.campo.numero.parcelas.invalido", null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", "terceira");
throw ex;
}
for(;numeroParcelInicial <= numeroParcelFinal; numeroParcelInicial++){
PrestacaoContratoParcelamento prestacao = new PrestacaoContratoParcelamento();
prestacao.setNumero(numeroParcelInicial);
prestacao.setValor(valorParcelaBigDec);
listaDeParcelasPopUp.add(prestacao);
}
listaValoresDistintosPopUp.add(new BigDecimal(valorParcela).floatValue());
}
Collections.sort(listaDeParcelasPopUp, new ComparatorPrestacaoContratoParcelamento());
BigDecimal valorParcelTotal = new BigDecimal(0);
for (PrestacaoContratoParcelamento prestacaoContratoParcelamento : listaDeParcelasPopUp) {
valorParcelTotal = valorParcelTotal.add(prestacaoContratoParcelamento.getValor());
}
sessao.setAttribute("listaDeParcelasPopUp", listaDeParcelasPopUp);
sessao.setAttribute("numeroParcelasPopUp", numeroParcelasPopUp);
sessao.setAttribute("listaValoresDistintosPopUp", listaValoresDistintosPopUp);
sessao.setAttribute("listaDeParcelas", listaDeParcelasPopUp);
sessao.setAttribute("listaValoresDistintos", listaValoresDistintosPopUp);
sessao.setAttribute("etapa", "informarParcela");
sessao.setAttribute("valorParcelTotal", valorParcelTotal);
}else if(method != null && method.equals("cancelarParcela")){
carregarCamposDoFormulario(form, sessao, httpServletRequest);
sessao.removeAttribute("listaDeParcelasPopUp");
sessao.removeAttribute("listaValoresDistintosPopUp");
sessao.removeAttribute("listaDeParcelas");
sessao.removeAttribute("listaValoresDistintos");
sessao.removeAttribute("numeroParcelasPopUp");
sessao.setAttribute("valorParcelTotal", new BigDecimal(0));
sessao.setAttribute("etapa", "terceira");
}else if(method != null && method.equals("removerParcela")){
carregarCamposDoFormulario(form, sessao, httpServletRequest);
String parcelaInicial = httpServletRequest.getParameter("parcelaInicial");
String parcelaFinal = httpServletRequest.getParameter("parcelaFinal");
String grupoValoresRemover = httpServletRequest.getParameter("grupoValoresRemover");
List<PrestacaoContratoParcelamento> listaDeParcelasPopUp = (List<PrestacaoContratoParcelamento>) sessao.getAttribute("listaDeParcelasPopUp");
int numInicial = Integer.parseInt(parcelaInicial);
int numFinal = Integer.parseInt(parcelaFinal);
for(int i = 0; i < listaDeParcelasPopUp.size(); i++){
if(listaDeParcelasPopUp.get(i).getNumero().intValue() >= numInicial
&& listaDeParcelasPopUp.get(i).getNumero().intValue() <= numFinal){
listaDeParcelasPopUp.remove(i);
i--;
}
}
List<Float> listaValoresDistintosPopUp = (List<Float>) sessao.getAttribute("listaValoresDistintosPopUp");
listaValoresDistintosPopUp.remove(Integer.parseInt(grupoValoresRemover));
Collections.sort(listaDeParcelasPopUp, new ComparatorPrestacaoContratoParcelamento());
BigDecimal valorParcelTotal = new BigDecimal(0);
for (PrestacaoContratoParcelamento prestacaoContratoParcelamento : listaDeParcelasPopUp) {
valorParcelTotal = valorParcelTotal.add(prestacaoContratoParcelamento.getValor());
}
sessao.setAttribute("listaDeParcelasPopUp", listaDeParcelasPopUp);
sessao.setAttribute("listaValoresDistintosPopUp", listaValoresDistintosPopUp);
sessao.setAttribute("listaDeParcelas", listaDeParcelasPopUp);
sessao.setAttribute("listaValoresDistintos", listaValoresDistintosPopUp);
sessao.setAttribute("etapa", "informarParcela");
sessao.setAttribute("valorParcelTotal", valorParcelTotal);
}else if(method != null && method.equals("informarParcela")){
carregarCamposDoFormulario(form, sessao, httpServletRequest);
List<PrestacaoContratoParcelamento> listaDeParcelasPopUp = (List<PrestacaoContratoParcelamento>) sessao.getAttribute("listaDeParcelasPopUp");
List<Float> listaValoresDistintosPopUp = (List<Float>) sessao.getAttribute("listaValoresDistintosPopUp");
String indicadorDebitoAcresc = form.getIndicadorDebitoAcresc();
BigDecimal valorParcelado = null;
if(Integer.parseInt(indicadorDebitoAcresc) == ContratoParcelamento.DEBITO_ACRESCIMO_SIM.intValue()){
BigDecimal acrescimo = (BigDecimal) sessao.getAttribute("valorContaAcrescimoSelecao");
valorParcelado = acrescimo;
}else{
BigDecimal valorConta = (BigDecimal) sessao.getAttribute("valorContaSelecao");
valorParcelado = valorConta;
}
//[FS0025]
verificaValorParceladoTotal(listaDeParcelasPopUp, valorParcelado);
//[FS0026]
verificaContinuidadeParcelas(listaDeParcelasPopUp);
//[FS0029]
if(contratoAtualizar.getResolucaoDiretoria() != null){
verificaNumeroParcelasComRD(listaDeParcelasPopUp, contratoAtualizar.getResolucaoDiretoria(), form, sessao,
"informarParcela", listaDeParcelasPopUp.size());
}else{
verificaNumeroParcelasSemRD(listaDeParcelasPopUp, form, sessao, "informarParcela");
}
sessao.setAttribute("listaDeParcelas", listaDeParcelasPopUp);
sessao.setAttribute("listaValoresDistintos", listaValoresDistintosPopUp);
sessao.setAttribute("etapa", "informouParcelas");
}
if(form.getSelecionouContas() == null || !form.getSelecionouContas().trim().equalsIgnoreCase("sim")) {
sessao.removeAttribute("contasSelecionadas");
form.setContasSelecao(null);
form.setContasSelecionadas(null);
}
if(form.getSelecionouDebitosACobrar() == null || !form.getSelecionouDebitosACobrar().trim().equalsIgnoreCase("sim")) {
sessao.removeAttribute("debitosACobrarSelecionados");
form.setDebitosSelecao(null);
form.setDebitosACobrarSelecionados(null);
}
String[] contasSelecionadas = form.getContasSelecao();
if (contasSelecionadas != null && contasSelecionadas.length > 0) {
form.setContasSelecionadas(Arrays.toString(contasSelecionadas).replace("[","").replace("]",""));
sessao.setAttribute("contasSelecionadas",form.getContasSelecionadas());
} else {
form.setContasSelecionadas(null);
sessao.removeAttribute("contasSelecionadas");
}
String[] debitosACobrarSelecionados = form.getDebitosSelecao();
if (debitosACobrarSelecionados != null && debitosACobrarSelecionados.length > 0) {
form.setDebitosACobrarSelecionados(Arrays.toString(debitosACobrarSelecionados).replace("[","").replace("]",""));
sessao.setAttribute("debitosACobrarSelecionados",form.getDebitosACobrarSelecionados());
} else {
form.setDebitosACobrarSelecionados(null);
sessao.removeAttribute("debitosACobrarSelecionados");
}
if (contratoAtualizar != null
&& ((contratoAtualizar.getIndicadorParcelamentoJuros() != null
&& contratoAtualizar.getIndicadorParcelamentoJuros().compareTo(ConstantesSistema.NAO) == 0)
|| (contratoAtualizar.getResolucaoDiretoria() != null
&& sessao.getAttribute("colecaoQuantidadePrestacoesRDHelper") != null
&& !sessao.getAttribute("colecaoQuantidadePrestacoesRDHelper").equals("")))) {
sessao.setAttribute("taxaJurosDesabilitada", true);
} else {
sessao.removeAttribute("taxaJurosDesabilitada");
}
if (contratoAtualizar != null
&& (contratoAtualizar.getResolucaoDiretoria() != null
&& sessao.getAttribute("colecaoQuantidadePrestacoesRDHelper") != null
&& !sessao.getAttribute("colecaoQuantidadePrestacoesRDHelper").equals(""))) {
sessao.setAttribute("numeroParcelasDesabilitada", true);
} else {
sessao.removeAttribute("numeroParcelasDesabilitada");
}
if (contratoAtualizar != null
&& contratoAtualizar.getResolucaoDiretoria() != null
&& contratoAtualizar.getResolucaoDiretoria().getId() != null) {
CobrancaForma cobrancaForma = fachada.pesquisarFormaPagamentoRD(
contratoAtualizar.getResolucaoDiretoria().getId());
form.setFormaPagamentoRD(cobrancaForma.getDescricao());
sessao.setAttribute("formaPagamentoDesabilitada", true);
} else {
sessao.removeAttribute("formaPagamentoDesabilitada");
}
return retorno;
}
private void carregarCamposDoFormulario(AtualizarContratoParcelamentoPorClienteActionForm form, HttpSession sessao,
HttpServletRequest httpServletRequest){
ContratoParcelamento contratoAtualizar = this.getContrato(sessao, form);
Fachada fachada = Fachada.getInstancia();
boolean pegarValoresDoForm = false;
if (form.getNumeroContratoAnt() != null && !"".equals(form.getNumeroContratoAnt())){
ContratoParcelamento contratoAnterior = fachada.
pesquisarContratoParcelamentoCompleto(null, form.getNumeroContratoAnt());
if(contratoAnterior != null){
contratoAtualizar.setContratoAnterior(contratoAnterior);
}
if(form.getRelacaoAnterior() != null && !form.getRelacaoAnterior().equals("")){
TipoRelacao relacao = new TipoRelacao();
relacao.setId(Integer.parseInt(form.getRelacaoAnterior()));
contratoAtualizar.setRelacaoAnterior(relacao);
}
}else{
contratoAtualizar.setContratoAnterior(null);
}
if (form.getDataContrato() != null && !"".equals(form.getDataContrato())){
contratoAtualizar.setDataContrato(Util.converteStringParaDate(form.getDataContrato()));
}else{
contratoAtualizar.setDataContrato(null);
}
if (form.getLoginUsuario() != null && !form.getLoginUsuario().toString().trim().equals("")){
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(FiltroUsuario.LOGIN, form.getLoginUsuario()));
Collection colecaoUsuario = fachada.pesquisar(filtroUsuario, Usuario.class.getName());
if (colecaoUsuario != null && !colecaoUsuario.isEmpty()) {
Usuario usuario = (Usuario) Util.retonarObjetoDeColecao(colecaoUsuario);
contratoAtualizar.setUsuarioResponsavel(usuario);
} else {
contratoAtualizar.setUsuarioResponsavel(null);
}
}else{
contratoAtualizar.setUsuarioResponsavel(null);
}
if (form.getAutocompleteCliente() != null && !"".equals(form.getAutocompleteCliente())
&& form.getAutocompleteCliente().contains("-")){
if (sessao.getAttribute("clienteContrato") == null
|| sessao.getAttribute("clienteContrato").toString().trim().equals("")) {
int id = Integer.parseInt(form.getAutocompleteCliente().split(" - ")[0].trim());
ContratoParcelamentoCliente clienteContrato = fachada.
pesquisarClienteContrato(contratoAtualizar.getId(), id);
sessao.setAttribute("clienteContrato", clienteContrato);
sessao.setAttribute("tipoConsulta", "cliente");
}
}else{
sessao.removeAttribute("clienteContrato");
sessao.removeAttribute("tipoConsulta");
}
if (form.getAutocompleteClienteSuperior() != null && !"".equals(form.getAutocompleteClienteSuperior())
&& form.getAutocompleteClienteSuperior().contains("-")){
if (sessao.getAttribute("clienteSuperiorContrato") == null
|| sessao.getAttribute("clienteSuperiorContrato").toString().trim().equals("")) {
int id = Integer.parseInt(form.getAutocompleteClienteSuperior().split(" - ")[0].trim());
ContratoParcelamentoCliente clienteSuperiorContrato = fachada.
pesquisarClienteContrato(contratoAtualizar.getId(), id);
sessao.setAttribute("clienteSuperiorContrato", clienteSuperiorContrato);
sessao.setAttribute("tipoConsulta", "clienteSuperior");
}
}else{
sessao.removeAttribute("clienteSuperiorContrato");
sessao.removeAttribute("tipoConsulta");
}
if(form.getRelacaoCliente() != null && !form.getRelacaoCliente().equals("") ){
ClienteRelacaoTipo relacaoCliente = new ClienteRelacaoTipo();
if(form.getRelacaoCliente().equals("" + ClienteRelacaoTipo.PROPRIETARIO)){
relacaoCliente.setId(ClienteRelacaoTipo.PROPRIETARIO.intValue());
}else if(form.getRelacaoCliente().equals("" + ClienteRelacaoTipo.RESPONSAVEL)){
relacaoCliente.setId(ClienteRelacaoTipo.RESPONSAVEL.intValue());
}else if(form.getRelacaoCliente().equals("" + ClienteRelacaoTipo.USUARIO)){
relacaoCliente.setId(ClienteRelacaoTipo.USUARIO.intValue());
}
contratoAtualizar.setRelacaoCliente(relacaoCliente);
}else{
contratoAtualizar.setRelacaoCliente(null);
}
if(form.getIndicadorResponsavel() != null && !form.getIndicadorResponsavel().equals("")){
if(form.getIndicadorResponsavel().equals("" + ContratoParcelamento.RESP_ATUAL_DO_IMOVEL)){
contratoAtualizar.setIndicadorResponsavel(ContratoParcelamento.RESP_ATUAL_DO_IMOVEL);
}else if(form.getIndicadorResponsavel().equals("" + ContratoParcelamento.RESP_INDICADOR_NA_CONTA)){
contratoAtualizar.setIndicadorResponsavel(ContratoParcelamento.RESP_INDICADOR_NA_CONTA);
}else if(form.getIndicadorResponsavel().equals("" + ContratoParcelamento.RESP_TODOS)){
contratoAtualizar.setIndicadorResponsavel(ContratoParcelamento.RESP_TODOS);
}
}
if(form.getDataVencimentoInicio() != null && !form.getDataVencimentoInicio().equals("")){
Date dataVencimentoInicio = Util.converteStringParaDate(form.getDataVencimentoInicio());
contratoAtualizar.setDataVencimentoInicio(dataVencimentoInicio);
}else{
contratoAtualizar.setDataVencimentoInicio(null);
}
if(form.getDataVencimentoFinal() != null && !form.getDataVencimentoFinal().equals("")){
Date dataVencimentoFinal = Util.converteStringParaDate(form.getDataVencimentoFinal());
contratoAtualizar.setDataVencimentoFinal(dataVencimentoFinal);
}else{
contratoAtualizar.setDataVencimentoFinal(null);
}
if(form.getAnoMesDebitoInicio() != null && !form.getAnoMesDebitoInicio().equals("")){
boolean mesAnoValido = Util.validarMesAno(form.getAnoMesDebitoInicio());
if(mesAnoValido){
String anoMes = form.getAnoMesDebitoInicio().replace("/", "");
anoMes = anoMes.substring(2,6) + anoMes.substring(0,2);
contratoAtualizar.setAnoMesDebitoInicio(Integer.parseInt(anoMes));
}
}else{
contratoAtualizar.setAnoMesDebitoInicio(null);
}
if(form.getAnoMesDebitoFinal() != null && !form.getAnoMesDebitoFinal().equals("")){
boolean mesAnoValido = Util.validarMesAno(form.getAnoMesDebitoFinal());
if(mesAnoValido){
String anoMes = form.getAnoMesDebitoFinal().replace("/", "");
anoMes = anoMes.substring(2,6) + anoMes.substring(0,2);
contratoAtualizar.setAnoMesDebitoFinal(Integer.parseInt(anoMes));
}
}else{
contratoAtualizar.setAnoMesDebitoFinal(null);
}
if(form.getObservacao() != null && !form.getObservacao().equals("")){
contratoAtualizar.setObservacao(form.getObservacao());
}else{
contratoAtualizar.setObservacao(null);
}
if(form.getResolucaoDiretoria() != null && !form.getResolucaoDiretoria().equals("")){
ContratoParcelamentoRD resolucao = fachada.pesquisarContratoParcelamentoRDPorNumero(form.getResolucaoDiretoria());
contratoAtualizar.setResolucaoDiretoria(resolucao);
contratoAtualizar.setIndicadorDebitosAcrescimos(resolucao.getIndicadorDebitoAcrescimo());
contratoAtualizar.setIndicadorParcelamentoJuros(resolucao.getIndicadorParcelamentoJuros());
contratoAtualizar.setIndicadorPermiteInformarValorParcel(resolucao.getIndicadorInformarParcela());
contratoAtualizar.setCobrancaForma(resolucao.getCobrancaForma());
form.setFormaPgto(resolucao.getCobrancaForma().getId().toString());
List<QuantidadePrestacoes> parcelas = null;
FiltroQuantidadePrestacoes filtroQtdPrestacoes = new FiltroQuantidadePrestacoes(FiltroQuantidadePrestacoes.QTD_FATURAS_PARCELADAS);
filtroQtdPrestacoes.adicionarParametro(new ComparacaoTexto(
FiltroQuantidadePrestacoes.CONTRATO_PARCELAMENTO_RD_NUMERO,
contratoAtualizar.getResolucaoDiretoria().getNumero().toUpperCase()));
parcelas = new ArrayList<QuantidadePrestacoes>(fachada.pesquisar(filtroQtdPrestacoes,QuantidadePrestacoes.class.getName()));
Collections.sort(parcelas, new ComparatorParcela());
if(parcelas == null || parcelas.size() <= 0){
sessao.removeAttribute("colecaoQuantidadePrestacoesRDHelper");
form.setParcelaSelecao(null);
} else {
QuantidadePrestacoes quantidadePrestacoesRD = contratoAtualizar.getQtdPrestacoesDaRDEscolhida();
Iterator iterator = parcelas.iterator();
BigDecimal valorContaSelecao = (BigDecimal) sessao.getAttribute("valorContaSelecao");
BigDecimal valorContaComAcrescimo = (BigDecimal) sessao.getAttribute("valorContaAcrescimoSelecao");
Collection<QuantidadePrestacoesRDHelper> colecaoQuantidadePrestacoesRDHelper =
new ArrayList<QuantidadePrestacoesRDHelper>();
while(iterator.hasNext()) {
QuantidadePrestacoes quantidadePrestacoes = (QuantidadePrestacoes) iterator.next();
QuantidadePrestacoesRDHelper quantidadePrestacoesRDHelper = new QuantidadePrestacoesRDHelper();
InserirContratoParcelamentoValoresParcelasHelper helper = fachada
.calcularValoresParcelasContratoParcelamentoRD(valorContaSelecao, valorContaComAcrescimo,
form.getIndicadorDebitoAcresc(), form.getIndicadorParcelJuros(), contratoAtualizar,
quantidadePrestacoes);
quantidadePrestacoesRDHelper.setIdQuantidadePrestacoes(quantidadePrestacoes.getId());
quantidadePrestacoesRDHelper.setTaxaJuros(quantidadePrestacoes.getTaxaJuros());
quantidadePrestacoesRDHelper.setQuantidadeParcelas(quantidadePrestacoes.getQtdFaturasParceladas());
quantidadePrestacoesRDHelper.setValorDaParcela(
helper.getValorParcelado().divide(new BigDecimal(
quantidadePrestacoes.getQtdFaturasParceladas())));
colecaoQuantidadePrestacoesRDHelper.add(quantidadePrestacoesRDHelper);
if (form.getParcelaSelecao() != null
&& form.getParcelaSelecao().compareTo(
quantidadePrestacoes.getId().toString()) == 0) {
form.setValorDaParcela(Util.formatarMoedaReal(
helper.getValorParcelado().divide(new BigDecimal(
quantidadePrestacoes.getQtdFaturasParceladas()))));
}
}
sessao.setAttribute("colecaoQuantidadePrestacoesRDHelper", colecaoQuantidadePrestacoesRDHelper);
fachada
.calcularValoresParcelasContratoParcelamentoRD(valorContaSelecao, valorContaComAcrescimo,
form.getIndicadorDebitoAcresc(), form.getIndicadorParcelJuros(), contratoAtualizar,
quantidadePrestacoesRD);
}
Integer idRDNaBase = null;
if (sessao.getAttribute("ultimaRD") != null
&& !sessao.getAttribute("ultimaRD").toString().trim().equals("")) {
idRDNaBase = new Integer(sessao.getAttribute("ultimaRD").toString());
} else if (sessao.getAttribute("ultimaRD") == null
|| !sessao.getAttribute("ultimaRD").toString().trim().equals("0")){
idRDNaBase = fachada.pesquisarRDContratoParcelamento(contratoAtualizar.getId());
}
// remover as cole��es apenas se a RD for alterada
if (idRDNaBase == null || idRDNaBase.compareTo(resolucao.getId()) != 0) {
this.removerValoresParcelas(sessao, form);
sessao.setAttribute("alterouRD", "sim");
sessao.setAttribute("ultimaRD", resolucao.getId());
}
}else{
contratoAtualizar.setResolucaoDiretoria(null);
sessao.removeAttribute("colecaoQuantidadePrestacoesRDHelper");
form.setParcelaSelecao(null);
Integer idRDNaBase = fachada.pesquisarRDContratoParcelamento(contratoAtualizar.getId());
if (idRDNaBase != null
&& (sessao.getAttribute("alterouRD") == null
|| !sessao.getAttribute("alterouRD").toString().trim().equals("sim")
|| (sessao.getAttribute("ultimaRD") != null
&& !sessao.getAttribute("ultimaRD").toString().trim().equals("0")))) {
this.removerValoresParcelas(sessao, form);
sessao.setAttribute("alterouRD", "sim");
sessao.setAttribute("ultimaRD", 0);
pegarValoresDoForm = true;
}
if(form.getIndicadorDebitoAcresc() != null && !form.getIndicadorDebitoAcresc().equals("")){
contratoAtualizar.setIndicadorDebitosAcrescimos(Short.parseShort(form.getIndicadorDebitoAcresc()));
}
if(form.getIndicadorParcelJuros() != null && !form.getIndicadorParcelJuros().equals("")){
contratoAtualizar.setIndicadorParcelamentoJuros(Short.parseShort(form.getIndicadorParcelJuros()));
}
if(form.getIndicadorInfoVlParcel() != null && !form.getIndicadorInfoVlParcel().equals("")){
contratoAtualizar.setIndicadorPermiteInformarValorParcel(Short.parseShort(form.getIndicadorInfoVlParcel()));
}
if(form.getFormaPgto() != null && !form.getFormaPgto().equals("")){
FiltroCobrancaForma filtroCobranca = new FiltroCobrancaForma();
filtroCobranca.adicionarParametro(new ParametroSimples(FiltroCobrancaForma.ID, form.getFormaPgto()));
Collection<CobrancaForma> formasPagto = fachada.pesquisar(filtroCobranca, CobrancaForma.class.getName());
for (CobrancaForma formaPgto : formasPagto) {
if(formaPgto.getId() == Integer.parseInt(form.getFormaPgto())){
contratoAtualizar.setCobrancaForma(formaPgto);
}
}
}else{
contratoAtualizar.setCobrancaForma(null);
}
}
this.carregaValoresContas(sessao, form, contratoAtualizar, pegarValoresDoForm, httpServletRequest, true);
if(form.getDataVencimentoPrimParcela() != null && !form.getDataVencimentoPrimParcela().equals("")){
Date dataVencimentoPrimParcela = Util.converteStringParaDate(form.getDataVencimentoPrimParcela());
contratoAtualizar.setDataVencimentoPrimParcela(dataVencimentoPrimParcela);
}
List<QuantidadePrestacoesRDHelper> colecaoQuantidadePrestacoesRDHelper =
(List<QuantidadePrestacoesRDHelper>) sessao.getAttribute("colecaoQuantidadePrestacoesRDHelper");
if(form.getPacerlaAdd() != null && !form.getPacerlaAdd().equals("")
&& (colecaoQuantidadePrestacoesRDHelper == null || colecaoQuantidadePrestacoesRDHelper.size() == 0)){
contratoAtualizar.setNumeroPrestacoes(Integer.parseInt(form.getPacerlaAdd()));
}else{
contratoAtualizar.setNumeroPrestacoes(null);
}
if(form.getTaxaJurosAdd() != null && !form.getTaxaJurosAdd().equals("")
&& (colecaoQuantidadePrestacoesRDHelper == null || colecaoQuantidadePrestacoesRDHelper.size() == 0)){
String juros = form.getTaxaJurosAdd().replace(".", ",");
juros = juros.replace(",", ".");
try{
BigDecimal jurosBigDec = new BigDecimal(juros);
contratoAtualizar.setTaxaJuros(jurosBigDec);
}catch (Exception e) {
contratoAtualizar.setTaxaJuros(null);
}
}else{
contratoAtualizar.setTaxaJuros(null);
}
sessao.setAttribute("contratoAtualizar", contratoAtualizar);
}
private void calcularDebitosCliente(HttpSession sessao,
AtualizarContratoParcelamentoPorClienteActionForm form,
ContratoParcelamento contratoAtualizar,
boolean pegarContasContrato) throws ActionServletException{
Fachada fachada = Fachada.getInstancia();
ArrayList<ObterDebitoImovelOuClienteHelper> colecaoClientesDebitosImoveis = new ArrayList<ObterDebitoImovelOuClienteHelper>();
ContratoParcelamentoCliente clienteContrato = (ContratoParcelamentoCliente) sessao.getAttribute("clienteContrato");
ContratoParcelamentoCliente clienteSuperiorContrato = (ContratoParcelamentoCliente) sessao.getAttribute("clienteSuperiorContrato");
if (contratoAtualizar == null || contratoAtualizar.getId() == null) {
contratoAtualizar = this.getContrato(sessao, form);
}
// Para auxiliar na formata��o de uma data
SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
Date dataVencimentoDebitoI;
Date dataVencimentoDebitoF;
try {
dataVencimentoDebitoI = formatoData.parse(contratoAtualizar.getDataVencimentoInicioFormatada());
} catch (ParseException ex) {
dataVencimentoDebitoI = null;
}
try {
dataVencimentoDebitoF = formatoData.parse(contratoAtualizar.getDataVencimentoFinalFormatada());
} catch (ParseException ex) {
dataVencimentoDebitoF = null;
}
String referenciaInicial = "01/0001";
String referenciaFinal = "12/9999";
String anoMesInicial = contratoAtualizar.getAnoMesDebitoInicio()+"";
String anoMesFinal = contratoAtualizar.getAnoMesDebitoFinal()+"";
if(contratoAtualizar.getAnoMesDebitoInicio() == null || contratoAtualizar.getAnoMesDebitoFinal() == null){
String mesInicial = referenciaInicial.substring(0, 2);
String anoInicial = referenciaInicial.substring(3, referenciaInicial.length());
// Para auxiliar na formata��o de uma data
String mesFinal = referenciaFinal.substring(0, 2);
String anoFinal = referenciaFinal.substring(3, referenciaFinal.length());
anoMesInicial = anoInicial + mesInicial;
anoMesFinal = anoFinal + mesFinal;
}
if(dataVencimentoDebitoF == null || dataVencimentoDebitoI == null){
try {
dataVencimentoDebitoI = formatoData.parse("01/01/0001");
} catch (ParseException ex) {
dataVencimentoDebitoI = null;
}
try {
dataVencimentoDebitoF = formatoData.parse("31/12/9999");
} catch (ParseException ex) {
dataVencimentoDebitoF = null;
}
}
// seta valores constantes para chamar o metodo que consulta debitos do imovel
Integer indicadorPagamento = new Integer(1);
Integer indicadorContaRevisao = new Integer(1);
Integer indicadorDebito = new Integer(1);//Modificado
Integer indicadorCredito = new Integer(2);//Modificado
Integer indicadorNotas = new Integer(2);//Modificado
Integer indicadorGuias = new Integer(2);//Modificado
Integer indicadorAtualizar = new Integer(1);
Short relacaoTipo = null;
Integer tipoImovel = null;
if(clienteContrato != null){
if(contratoAtualizar.getRelacaoCliente() != null ){
if(contratoAtualizar.getRelacaoCliente().getId().intValue() == ClienteRelacaoTipo.PROPRIETARIO){
relacaoTipo = ClienteRelacaoTipo.PROPRIETARIO;
}else if(contratoAtualizar.getRelacaoCliente().getId().intValue() == ClienteRelacaoTipo.RESPONSAVEL){
relacaoTipo = ClienteRelacaoTipo.RESPONSAVEL;
}else if(contratoAtualizar.getRelacaoCliente().getId().intValue() == ClienteRelacaoTipo.USUARIO){
relacaoTipo = ClienteRelacaoTipo.USUARIO;
}
}
if(relacaoTipo == null || relacaoTipo.equals(ClienteRelacaoTipo.RESPONSAVEL)){
if(contratoAtualizar.getIndicadorResponsavel() != null && contratoAtualizar.getIndicadorResponsavel().intValue() == ContratoParcelamento.RESP_TODOS){
tipoImovel = new Integer(4);
}else if(contratoAtualizar.getIndicadorResponsavel() != null && contratoAtualizar.getIndicadorResponsavel().intValue() == ContratoParcelamento.RESP_ATUAL_DO_IMOVEL){
tipoImovel = new Integer(3);
}else{
tipoImovel = new Integer(2);
}
}else{
tipoImovel = new Integer(2);
}
// Obtendo os d�bitos do imovel
if(contratoAtualizar.getIndicadorResponsavel().intValue() == ContratoParcelamento.RESP_INDICADOR_NA_CONTA
|| contratoAtualizar.getIndicadorResponsavel().intValue() == ContratoParcelamento.RESP_ATUAL_DO_IMOVEL
|| contratoAtualizar.getIndicadorResponsavel().intValue() == ContratoParcelamento.RESP_TODOS){
ObterDebitoImovelOuClienteHelper colecao = fachada.obterDebitoImovelOuCliente(
tipoImovel.intValue(), null, "" + clienteContrato.getCliente().getId(), relacaoTipo,
anoMesInicial, anoMesFinal, dataVencimentoDebitoI,
dataVencimentoDebitoF, indicadorPagamento.intValue(),
indicadorContaRevisao.intValue(), indicadorDebito.intValue(),
indicadorCredito.intValue(), indicadorNotas.intValue(),
indicadorGuias.intValue(), indicadorAtualizar.intValue(),
null, 3);
List<DebitosClienteHelper> listaDebitos = new ArrayList<DebitosClienteHelper>();
Collection<ContaValoresHelper> contaValoresFinal = new ArrayList<ContaValoresHelper>();
Collection<ContaValoresHelper> contaValoresFinalAuxiliar = new ArrayList<ContaValoresHelper>();
List<Integer> idsContas = new ArrayList();
for (ContaValoresHelper contaValoresHelper : colecao.getColecaoContasValores()) {
if(form.verificaContaSelecionada(contaValoresHelper.getConta().getId().intValue())){
DebitosClienteHelper debito = new DebitosClienteHelper();
debito.setIdentificadorItem(contaValoresHelper.getConta().getId());
debito.setTipoDocumento(DocumentoTipo.CONTA);
debito.setValorItem(contaValoresHelper.getConta().getValorTotal());
debito.setValorAcrescImpont(contaValoresHelper.getValorTotalContaValores());
listaDebitos.add(debito);
contaValoresFinalAuxiliar.add(contaValoresHelper);
idsContas.add(contaValoresHelper.getConta().getId());
}else {
if(contaValoresHelper.getConta().getDataRevisao() == null){
contaValoresFinalAuxiliar.add(contaValoresHelper);
idsContas.add(contaValoresHelper.getConta().getId());
}else{
if(contaValoresHelper.getConta().getContaMotivoRevisao().getId().intValue() != ContaMotivoRevisao.CONTA_EM_CONTRATO_PARCELAMENTO){
contaValoresFinalAuxiliar.add(contaValoresHelper);
idsContas.add(contaValoresHelper.getConta().getId());
}
}
}
}
if (pegarContasContrato) {
Collection<ContaValoresHelper> colecaoContaValoresHelper =
fachada.pesquisarDadosDasContasContratoParcelamento(contratoAtualizar.getId());
// 3. Caso j� existam contas vinculadas ao contrato
if (colecaoContaValoresHelper != null && !colecaoContaValoresHelper.isEmpty()) {
Iterator iterator = colecaoContaValoresHelper.iterator();
while(iterator.hasNext()) {
ContaValoresHelper helper = (ContaValoresHelper) iterator.next();
//E que n�o existam na lista de contas retornada pelo UC0067
if (!idsContas.contains(helper.getConta().getId())) {
contaValoresFinal.add(helper);
DebitosClienteHelper debito = new DebitosClienteHelper();
debito.setIdentificadorItem(helper.getConta().getId());
debito.setTipoDocumento(DocumentoTipo.CONTA);
debito.setValorItem(helper.getConta().getValorTotal());
debito.setValorAcrescImpont(helper.getValorTotalContaValores());
//adiciona a conta na lista de contas que devem estar selecionadas
listaDebitos.add(debito);
} else {
continue;
}
}
}
}
contaValoresFinal.addAll(contaValoresFinalAuxiliar);
colecao.setColecaoContasValores(contaValoresFinal);
sessao.setAttribute("listaDebitos",listaDebitos);
form.setContasSelecionadas(this.retornarContasDebitosACobrarSelecionados(listaDebitos));
sessao.setAttribute("contasSelecionadas",form.getContasSelecionadas());
colecaoClientesDebitosImoveis.add(colecao);
}
} else {
if(contratoAtualizar.getIndicadorResponsavel().intValue() == ContratoParcelamento.RESP_ATUAL_DO_IMOVEL){
tipoImovel = new Integer(3);//Modificado
ObterDebitoImovelOuClienteHelper colecao = fachada.obterDebitoImovelOuCliente(
tipoImovel.intValue(), null, ""+clienteSuperiorContrato.getCliente().getId(), new Short("99"),
anoMesInicial, anoMesFinal, dataVencimentoDebitoI,
dataVencimentoDebitoF, indicadorPagamento.intValue(),
indicadorContaRevisao.intValue(), indicadorDebito.intValue(),
indicadorCredito.intValue(), indicadorNotas.intValue(),
indicadorGuias.intValue(), indicadorAtualizar.intValue(),
null, 3);
List<DebitosClienteHelper> listaDebitos = new ArrayList<DebitosClienteHelper>();
Collection<ContaValoresHelper> contaValoresFinal = new ArrayList<ContaValoresHelper>();
Collection<ContaValoresHelper> contaValoresFinalAuxiliar = new ArrayList<ContaValoresHelper>();
List<Integer> idsContas = new ArrayList();
for (ContaValoresHelper contaValoresHelper : colecao.getColecaoContasValores()) {
if(form.verificaContaSelecionada(contaValoresHelper.getConta().getId().intValue())){
DebitosClienteHelper debito = new DebitosClienteHelper();
debito.setIdentificadorItem(contaValoresHelper.getConta().getId());
debito.setTipoDocumento(DocumentoTipo.CONTA);
debito.setValorItem(contaValoresHelper.getConta().getValorTotal());
debito.setValorAcrescImpont(contaValoresHelper.getValorTotalContaValores());
listaDebitos.add(debito);
contaValoresFinalAuxiliar.add(contaValoresHelper);
idsContas.add(contaValoresHelper.getConta().getId());
}else {
if(contaValoresHelper.getConta().getDataRevisao() == null){
contaValoresFinalAuxiliar.add(contaValoresHelper);
idsContas.add(contaValoresHelper.getConta().getId());
}else{
if(contaValoresHelper.getConta().getContaMotivoRevisao().getId().intValue() != ContaMotivoRevisao.CONTA_EM_CONTRATO_PARCELAMENTO){
contaValoresFinalAuxiliar.add(contaValoresHelper);
idsContas.add(contaValoresHelper.getConta().getId());
}
}
}
}
if (pegarContasContrato) {
Collection<ContaValoresHelper> colecaoContaValoresHelper =
fachada.pesquisarDadosDasContasContratoParcelamento(contratoAtualizar.getId());
// 3. Caso j� existam contas vinculadas ao contrato
if (colecaoContaValoresHelper != null && !colecaoContaValoresHelper.isEmpty()) {
Iterator iterator = colecaoContaValoresHelper.iterator();
while(iterator.hasNext()) {
ContaValoresHelper helper = (ContaValoresHelper) iterator.next();
//E que n�o existam na lista de contas retornada pelo UC0067
if (!idsContas.contains(helper.getConta().getId())) {
contaValoresFinal.add(helper);
DebitosClienteHelper debito = new DebitosClienteHelper();
debito.setIdentificadorItem(helper.getConta().getId());
debito.setTipoDocumento(DocumentoTipo.CONTA);
debito.setValorItem(helper.getConta().getValorTotal());
debito.setValorAcrescImpont(helper.getValorTotalContaValores());
listaDebitos.add(debito);
} else {
continue;
}
}
}
}
contaValoresFinal.addAll(contaValoresFinalAuxiliar);
colecao.setColecaoContasValores(contaValoresFinal);
colecaoClientesDebitosImoveis.add(colecao);
sessao.setAttribute("listaDebitos",listaDebitos);
form.setContasSelecionadas(this.retornarContasDebitosACobrarSelecionados(listaDebitos));
sessao.setAttribute("contasSelecionadas",form.getContasSelecionadas());
}
}
/////////////////////////////////////////CARREGA VALORES DEFAULT PARA TODAS VARIAVEIS ////////////////////////////////////////////
//Criando uma lista para adicao de todas colecoesContaValores para todos Clientes (Caso selecione Cliente Superior)
Collection<ContaValoresHelper> colecaoContaValoresTotal = new ArrayList<ContaValoresHelper>();
//Criando uma lista para adicao de todas colecaoDebitoACobrar para todos Clientes (Caso selecione Cliente Superior)
Collection<DebitoACobrar> colecaoDebitoACobrarTotal = new ArrayList<DebitoACobrar>();
Collection<DebitoACobrar> colecaoDebitoACobrarTotalFinal = new ArrayList<DebitoACobrar>();
//Criando uma lista para adicao de todas colecaoCreditoARealizar para todos Clientes (Caso selecione Cliente Superior)
Collection<CreditoARealizar> colecaoCreditoARealizarTotal = new ArrayList<CreditoARealizar>();
//Criando uma lista para adicao de todas colecaoGuiaPagamentoValores para todos Clientes (Caso selecione Cliente Superior)
Collection<GuiaPagamentoValoresHelper> colecaoGuiaPagamentoValoresTotal = new ArrayList<GuiaPagamentoValoresHelper>();
//pesquisa todas as situa��es de cobran�a ativa do imovel
Collection colecaoCobrancaSituacao = new ArrayList<CobrancaSituacao>();
ContaValoresHelper dadosConta = null;
BigDecimal valorConta = new BigDecimal("0.00");
BigDecimal valorAcrescimo = new BigDecimal("0.00");
BigDecimal valorAgua = new BigDecimal("0.00");
BigDecimal valorEsgoto = new BigDecimal("0.00");
BigDecimal valorDebito = new BigDecimal("0.00");
BigDecimal valorCredito = new BigDecimal("0.00");
BigDecimal valorImposto = new BigDecimal("0.00");
BigDecimal valorAtualizacaoMonetaria = new BigDecimal("0.00");
BigDecimal valorJurosMora = new BigDecimal("0.00");
BigDecimal valorMulta = new BigDecimal("0.00");
BigDecimal valorDebitoACobrar = new BigDecimal("0.00");
BigDecimal valorDebitoACobrarSemJurosParcelamento = new BigDecimal("0.00");
DebitoACobrar dadosDebito = null;
BigDecimal valorRestanteACobrar = new BigDecimal("0.00");
BigDecimal valorTotalRestanteParcelamentosACobrarCurtoPrazo = new BigDecimal("0.00");
BigDecimal valorTotalRestanteParcelamentosACobrarLongoPrazo = new BigDecimal("0.00");
int indiceCurtoPrazo = 0;
int indiceLongoPrazo = 1;
BigDecimal valorCreditoARealizar = new BigDecimal("0.00");
BigDecimal valorCreditoARealizarSemDescontosParcelamento = new BigDecimal("0.00");
CreditoARealizar dadosCredito = null;
BigDecimal valorGuiaPagamento = new BigDecimal("0.00");
GuiaPagamentoValoresHelper dadosGuiaPagamentoValoresHelper = null;
/////////////////////////////////////////FIM - CARREGA VALORES DEFAULT PARA TODAS VARIAVEIS ////////////////////////////////////////////
for (ObterDebitoImovelOuClienteHelper colecaoDebitoImovel : colecaoClientesDebitosImoveis) {
//////////////////////ITERACAO NA COLECAO DE CONTAVALORES////////////////////////////////////
Collection<ContaValoresHelper> colecaoContaValores = new ArrayList<ContaValoresHelper>();
if(colecaoDebitoImovel.getColecaoContasValores() != null){
colecaoContaValoresTotal.addAll(colecaoDebitoImovel.getColecaoContasValores());
colecaoContaValores.addAll(colecaoDebitoImovel.getColecaoContasValores());
}
if (!colecaoContaValores.isEmpty()) {
java.util.Iterator<ContaValoresHelper> colecaoContaValoresIterator = colecaoContaValores.iterator();
// percorre a colecao de conta somando o valor para obter um valor total
while (colecaoContaValoresIterator.hasNext()) {
dadosConta = (ContaValoresHelper) colecaoContaValoresIterator.next();
if (dadosConta.getConta().getValorTotal() != null) {
valorConta = valorConta.add(dadosConta.getConta().getValorTotal());
}
if (dadosConta.getValorTotalContaValores() != null) {
valorAcrescimo = valorAcrescimo.add(dadosConta.getValorTotalContaValores());
}
if (dadosConta.getConta().getValorAgua() != null) {
valorAgua = valorAgua.add(dadosConta.getConta().getValorAgua());
}
if (dadosConta.getConta().getValorEsgoto() != null) {
valorEsgoto = valorEsgoto.add(dadosConta.getConta().getValorEsgoto());
}
if (dadosConta.getConta().getDebitos() != null) {
valorDebito = valorDebito.add(dadosConta.getConta().getDebitos());
}
if (dadosConta.getConta().getValorCreditos() != null) {
valorCredito = valorCredito.add(dadosConta.getConta().getValorCreditos());
}
if (dadosConta.getConta().getValorImposto() != null) {
valorImposto = valorImposto.add(dadosConta.getConta().getValorImposto());
}
if (dadosConta.getValorAtualizacaoMonetaria() != null && !dadosConta.getValorAtualizacaoMonetaria().equals("")) {
valorAtualizacaoMonetaria.setScale(
Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO);
valorAtualizacaoMonetaria = valorAtualizacaoMonetaria.add(
dadosConta.getValorAtualizacaoMonetaria().setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO));
}
if (dadosConta.getValorJurosMora() != null && !dadosConta.getValorJurosMora().equals("")) {
valorJurosMora.setScale(
Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO);
valorJurosMora = valorJurosMora.add(
dadosConta.getValorJurosMora().setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO));
}
if (dadosConta.getValorMulta() != null && !dadosConta.getValorMulta().equals("")) {
valorMulta.setScale(
Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO);
valorMulta = valorMulta.add(
dadosConta.getValorMulta().setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO));
}
}
}
//////////////////////FIM ITERACAO NA COLECAO DE CONTAVALORES////////////////////////////////////
//////////////////////ITERACAO NA COLECAO DE DEBITOACOBRAR////////////////////////////////////
Collection<DebitoACobrar> colecaoDebitoACobrar = new ArrayList<DebitoACobrar>();
List<Integer> idsDebitoACobrar = new ArrayList();
List<DebitosClienteHelper> listaDebitosACobrar = new ArrayList<DebitosClienteHelper>();
if(colecaoDebitoImovel.getColecaoDebitoACobrar() != null){
colecaoDebitoACobrar.addAll(colecaoDebitoImovel.getColecaoDebitoACobrar());
colecaoDebitoACobrarTotal.addAll(colecaoDebitoImovel.getColecaoDebitoACobrar());
}
if (!colecaoDebitoACobrar.isEmpty()) {
java.util.Iterator<DebitoACobrar> colecaoDebitoACobrarIterator = colecaoDebitoACobrar.iterator();
// percorre a colecao de debito a cobrar somando o valor para obter um valor total
while (colecaoDebitoACobrarIterator.hasNext()) {
dadosDebito = (DebitoACobrar) colecaoDebitoACobrarIterator.next();
valorDebitoACobrar = valorDebitoACobrar.add(dadosDebito.getValorTotal());
idsDebitoACobrar.add(dadosDebito.getId());
DebitosClienteHelper debito = new DebitosClienteHelper();
debito.setIdentificadorItem(dadosDebito.getId());
debito.setTipoDocumento(DocumentoTipo.DEBITO_A_COBRAR);
debito.setValorItem(dadosDebito.getValorTotal());
debito.setValorAcrescImpont(null);
listaDebitosACobrar.add(debito);
if (dadosDebito.getDebitoTipo() != null &&
!dadosDebito.getDebitoTipo().getId().equals(DebitoTipo.JUROS_SOBRE_PARCELAMENTO)){
valorDebitoACobrarSemJurosParcelamento = valorDebitoACobrarSemJurosParcelamento.add(dadosDebito.getValorTotalComBonus());
}
//Debitos A Cobrar - Parcelamento
if (dadosDebito.getFinanciamentoTipo().getId().equals(FinanciamentoTipo.PARCELAMENTO_AGUA)
|| dadosDebito.getFinanciamentoTipo().getId().equals(FinanciamentoTipo.PARCELAMENTO_ESGOTO)
|| dadosDebito.getFinanciamentoTipo().getId().equals(FinanciamentoTipo.PARCELAMENTO_SERVICO)) {
// [SB0001] Obter Valores de Curto e Longo Prazo
valorRestanteACobrar = dadosDebito.getValorTotalComBonus();
BigDecimal[] valoresDeCurtoELongoPrazo = fachada.obterValorCurtoELongoPrazo(
dadosDebito.getNumeroPrestacaoDebito(),
dadosDebito.getNumeroPrestacaoCobradasMaisBonus(),
valorRestanteACobrar);
valorTotalRestanteParcelamentosACobrarCurtoPrazo.setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO);
valorTotalRestanteParcelamentosACobrarCurtoPrazo = valorTotalRestanteParcelamentosACobrarCurtoPrazo.add(valoresDeCurtoELongoPrazo[indiceCurtoPrazo]);
valorTotalRestanteParcelamentosACobrarLongoPrazo.setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO);
valorTotalRestanteParcelamentosACobrarLongoPrazo = valorTotalRestanteParcelamentosACobrarLongoPrazo.add(valoresDeCurtoELongoPrazo[indiceLongoPrazo]);
}
}
}
//////////////////////FIM ITERACAO NA COLECAO DE DEBITOACOBRAR////////////////////////////////////
//////////////////////CONSULTA DE DEBITOACOBRAR DO CONTRATO////////////////////////////////////
if (pegarContasContrato) {
Collection<DebitoACobrar> colecaoDebitoACobrarContrato =
fachada.pesquisarDadosDosDebitosACobrarContratoParcelamento(contratoAtualizar.getId());
// 3. Caso j� existam contas vinculadas ao contrato
if (colecaoDebitoACobrarContrato != null && !colecaoDebitoACobrarContrato.isEmpty()) {
Iterator iterator = colecaoDebitoACobrarContrato.iterator();
while(iterator.hasNext()) {
DebitoACobrar debitoACobrar = (DebitoACobrar) iterator.next();
//E que n�o existam na lista de contas retornada pelo UC0067
if (!idsDebitoACobrar.contains(debitoACobrar.getId())) {
colecaoDebitoACobrarTotalFinal.add(debitoACobrar);
valorDebitoACobrar = valorDebitoACobrar.add(debitoACobrar.getValorTotal());
DebitosClienteHelper debito = new DebitosClienteHelper();
debito.setIdentificadorItem(debitoACobrar.getId());
debito.setTipoDocumento(DocumentoTipo.DEBITO_A_COBRAR);
debito.setValorItem(debitoACobrar.getValorTotal());
debito.setValorAcrescImpont(null);
//adiciona a conta na lista de d�bitos que devem estar selecionadas
listaDebitosACobrar.add(debito);
} else {
continue;
}
}
}
}
if (colecaoDebitoACobrarTotal != null && !colecaoDebitoACobrarTotal.isEmpty()) {
colecaoDebitoACobrarTotalFinal.addAll(colecaoDebitoACobrarTotal);
}
sessao.setAttribute("listaDebitosACobrar",listaDebitosACobrar);
form.setDebitosACobrarSelecionados(this.retornarContasDebitosACobrarSelecionados(listaDebitosACobrar));
sessao.setAttribute("debitosACobrarSelecionados",form.getDebitosACobrarSelecionados());
//////////////////////FIM CONSULTA DE DEBITOACOBRAR DO CONTRATO////////////////////////////////////
//////////////////////ITERACAO NA COLECAO DE CREDITOAREALIZAR////////////////////////////////////
Collection<CreditoARealizar> colecaoCreditoARealizar = new ArrayList<CreditoARealizar>();
if(colecaoDebitoImovel.getColecaoCreditoARealizar() != null){
colecaoCreditoARealizar.addAll(colecaoDebitoImovel.getColecaoCreditoARealizar());
colecaoCreditoARealizarTotal.addAll(colecaoDebitoImovel.getColecaoCreditoARealizar());
}
if (!colecaoCreditoARealizar.isEmpty()) {
java.util.Iterator<CreditoARealizar> colecaoCreditoARealizarIterator = colecaoCreditoARealizar.iterator();
// percorre a colecao de credito a realizar somando o valor para obter um valor total
while (colecaoCreditoARealizarIterator.hasNext()) {
dadosCredito = (CreditoARealizar) colecaoCreditoARealizarIterator.next();
valorCreditoARealizar = valorCreditoARealizar.add(dadosCredito.getValorTotalComBonus());
if (dadosCredito.getCreditoOrigem() != null &&
!dadosCredito.getCreditoOrigem().getId().equals(CreditoOrigem.DESCONTOS_CONCEDIDOS_NO_PARCELAMENTO)){
valorCreditoARealizarSemDescontosParcelamento = valorCreditoARealizarSemDescontosParcelamento.add(dadosCredito.getValorTotalComBonus());
}
}
}
//////////////////////FIM ITERACAO NA COLECAO DE CREDITOAREALIZAR////////////////////////////////////
//////////////////////ITERACAO NA COLECAO DE GUIASPAGAMENTOVALORES////////////////////////////////////
Collection<GuiaPagamentoValoresHelper> colecaoGuiaPagamentoValores = new ArrayList<GuiaPagamentoValoresHelper>();
if(colecaoDebitoImovel.getColecaoGuiasPagamentoValores() != null){
colecaoGuiaPagamentoValores.addAll(colecaoDebitoImovel.getColecaoGuiasPagamentoValores());
colecaoGuiaPagamentoValoresTotal.addAll(colecaoDebitoImovel.getColecaoGuiasPagamentoValores());
}
if (!colecaoGuiaPagamentoValores.isEmpty()) {
java.util.Iterator<GuiaPagamentoValoresHelper> colecaoGuiaPagamentoValoresHelperIterator = colecaoGuiaPagamentoValores.iterator();
// percorre a colecao de guia de pagamento somando o valor para obter um valor total
while (colecaoGuiaPagamentoValoresHelperIterator.hasNext()) {
dadosGuiaPagamentoValoresHelper = (GuiaPagamentoValoresHelper) colecaoGuiaPagamentoValoresHelperIterator.next();
valorGuiaPagamento = valorGuiaPagamento.add(dadosGuiaPagamentoValoresHelper.getGuiaPagamento().getValorDebito());
if (dadosGuiaPagamentoValoresHelper.getValorAtualizacaoMonetaria() != null && !dadosGuiaPagamentoValoresHelper.getValorAtualizacaoMonetaria().equals("")) {
valorAtualizacaoMonetaria.setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO);
valorAtualizacaoMonetaria = valorAtualizacaoMonetaria.add(dadosGuiaPagamentoValoresHelper.getValorAtualizacaoMonetaria().setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO));
}
if (dadosGuiaPagamentoValoresHelper.getValorJurosMora() != null && !dadosGuiaPagamentoValoresHelper.getValorJurosMora().equals("")) {
valorJurosMora.setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO);
valorJurosMora = valorJurosMora.add(dadosGuiaPagamentoValoresHelper.getValorJurosMora().setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO));
}
if (dadosGuiaPagamentoValoresHelper.getValorMulta() != null && !dadosGuiaPagamentoValoresHelper.getValorMulta().equals("")) {
valorMulta.setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO);
valorMulta = valorMulta.add(dadosGuiaPagamentoValoresHelper.getValorMulta().setScale(Parcelamento.CASAS_DECIMAIS,Parcelamento.TIPO_ARREDONDAMENTO));
}
}
}
//////////////////////FIM ITERACAO NA COLECAO DE GUIASPAGAMENTOVALORES////////////////////////////////////
if(dadosConta != null){
Collection<CobrancaSituacao> situacoesCobranca = fachada.pesquisarImovelCobrancaSituacaoPorImovel(dadosConta.getConta().getImovel().getId());
if(situacoesCobranca != null && !situacoesCobranca.isEmpty()){
colecaoCobrancaSituacao.addAll(situacoesCobranca);
}
}
}
if (colecaoContaValoresTotal.isEmpty() && colecaoDebitoACobrarTotalFinal.isEmpty()
&& colecaoCreditoARealizarTotal.isEmpty() && colecaoGuiaPagamentoValoresTotal.isEmpty()) {
if (colecaoContaValoresTotal.isEmpty()){
sessao.removeAttribute("colecaoContaValores");
sessao.removeAttribute("valorConta");
sessao.removeAttribute("valorAcrescimo");
sessao.removeAttribute("valorAgua");
sessao.removeAttribute("valorEsgoto");
sessao.removeAttribute("valorDebito");
sessao.removeAttribute("valorCredito");
sessao.removeAttribute("valorContaAcrescimo");
sessao.removeAttribute("valorImposto");
sessao.removeAttribute("valorTotalSemAcrescimo");
sessao.removeAttribute("valorTotalComAcrescimo");
sessao.removeAttribute("valorToralSemAcrescimoESemJurosParcelamento");
}
if (colecaoDebitoACobrarTotalFinal.isEmpty()){
sessao.removeAttribute("colecaoDebitoACobrar");
sessao.removeAttribute("valorDebitoACobrar");
}
if (colecaoCreditoARealizarTotal.isEmpty()){
sessao.removeAttribute("colecaoCreditoARealizar");
sessao.removeAttribute("valorCreditoARealizar");
sessao.removeAttribute("valorCreditoARealizarSemDescontosParcelamento");
}
if (colecaoGuiaPagamentoValoresTotal.isEmpty()){
sessao.removeAttribute("colecaoGuiaPagamentoValores");
sessao.removeAttribute("valorGuiaPagamento");
}
if(colecaoCobrancaSituacao.isEmpty()){
sessao.removeAttribute("colecaoCobrancaSituacao");
}
ActionServletException ex = new ActionServletException(
"atencao.cliente.sem.debitos", null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do?contratoAtualizarNumero="+contratoAtualizar.getNumero());
sessao.setAttribute("etapa", "primeira");
throw ex;
} else {
// Manda a colecao pelo request
sessao.setAttribute("colecaoContaValores",colecaoContaValoresTotal);
// Manda a colecao e os valores total de conta pelo request
sessao.setAttribute("colecaoDebitoACobrar",colecaoDebitoACobrarTotalFinal);
sessao.setAttribute("valorConta", Util.formatarMoedaReal(valorConta));
sessao.setAttribute("valorAcrescimo", Util.formatarMoedaReal(valorAcrescimo));
sessao.setAttribute("valorAgua", Util.formatarMoedaReal(valorAgua));
sessao.setAttribute("valorEsgoto", Util.formatarMoedaReal(valorEsgoto));
sessao.setAttribute("valorDebito", Util.formatarMoedaReal(valorDebito));
sessao.setAttribute("valorCredito", Util.formatarMoedaReal(valorCredito));
sessao.setAttribute("valorContaAcrescimo", Util.formatarMoedaReal(valorConta.add(valorAcrescimo)));
sessao.setAttribute("valorImposto", Util.formatarMoedaReal(valorImposto));
// Manda a colecao e o valor total de DebitoACobrar pelo request
sessao.setAttribute("colecaoDebitoACobrar",colecaoDebitoACobrarTotalFinal);
sessao.setAttribute("valorDebitoACobrar", Util.formatarMoedaReal(valorDebitoACobrar));
// Manda a colecao e o valor total de CreditoARealizar pelo request
sessao.setAttribute("colecaoCreditoARealizar",colecaoCreditoARealizarTotal);
sessao.setAttribute("valorCreditoARealizar", Util.formatarMoedaReal(valorCreditoARealizar));
sessao.setAttribute("valorCreditoARealizarSemDescontosParcelamento",Util.formatarMoedaReal(valorCreditoARealizarSemDescontosParcelamento));
// Manda a colecao e o valor total de GuiaPagamento pelo request
sessao.setAttribute("colecaoGuiaPagamentoValores",colecaoGuiaPagamentoValoresTotal);
sessao.setAttribute("valorGuiaPagamento", Util.formatarMoedaReal(valorGuiaPagamento));
// Soma o valor total dos debitos e subtrai dos creditos
BigDecimal valorTotalSemAcrescimo = valorConta.add(valorDebitoACobrar);
valorTotalSemAcrescimo = valorTotalSemAcrescimo.add(valorGuiaPagamento);
valorTotalSemAcrescimo = valorTotalSemAcrescimo.subtract(valorCreditoARealizar);
BigDecimal valorTotalComAcrescimo = valorTotalSemAcrescimo.add(valorAcrescimo);
BigDecimal valorToralSemAcrescimoESemJurosParcelamento =
valorConta.add(valorDebitoACobrarSemJurosParcelamento);
valorToralSemAcrescimoESemJurosParcelamento =
valorToralSemAcrescimoESemJurosParcelamento.add(valorGuiaPagamento);
sessao.setAttribute("valorTotalSemAcrescimo", Util
.formatarMoedaReal(valorTotalSemAcrescimo));
sessao.setAttribute("valorTotalComAcrescimo", Util
.formatarMoedaReal(valorTotalComAcrescimo));
sessao.setAttribute("valorToralSemAcrescimoESemJurosParcelamento",
Util.formatarMoedaReal(valorToralSemAcrescimoESemJurosParcelamento));
sessao.setAttribute("colecaoCobrancaSituacao", colecaoCobrancaSituacao);
}
}
private void validarCampos(AtualizarContratoParcelamentoPorClienteActionForm form, HttpSession sessao, String method, ContratoParcelamento contratoAtualizar) throws ActionServletException{
ActionServletException ex = null;
Fachada fachada = Fachada.getInstancia();
if (ex == null && form.getNumeroContratoAnt() != null && !"".equals(form.getNumeroContratoAnt()) ){
ContratoParcelamento contratoAnterior = fachada.
pesquisarContratoParcelamentoCompleto(null, form.getNumeroContratoAnt());
if(contratoAnterior == null || contratoAnterior.getId() == null){
ex = new ActionServletException(
"atencao.numero.contrato.nao.existe",null, "");
}else if(contratoAnterior != null && contratoAnterior.getId() != null){
if(contratoAnterior.getParcelamentoSituacao().getId().intValue() == ParcelamentoSituacao.NORMAL.intValue()){
ex = new ActionServletException(
"atencao.contrato.parcelamento.anterior.nao.encerrado",null, "");
}
if(ex == null && (form.getRelacaoAnterior() == null || "".equals(form.getRelacaoAnterior()))){
ex = new ActionServletException(
"atencao.informe.a.relacao.anterior.contrato",null, "");
}
}
}
if (ex == null && (form.getDataContrato() == null || "".equals(form.getDataContrato()))){
ex = new ActionServletException(
"atencao.required", null, "Data do Contrato");
}else if(ex == null && !"".equals(form.getDataContrato())){
boolean dtValida = Util.validarDiaMesAnoSemBarraNovo(form.getDataContrato().replace("/", ""));
if(!dtValida){
ex = new ActionServletException(
"atencao.data.invalida",null, "Data");
}else if(Util.converteStringParaDate(form.getDataContrato()).after(new Date())){
ex = new ActionServletException(
"atencao.contrato.superio.data.corrente", null, Util.formatarData(new Date()));
}
}
if (ex == null && (form.getLoginUsuario() == null || "".equals(form.getLoginUsuario()))){
ex = new ActionServletException(
"atencao.required", null, "Usu�rio Respons�vel");
}
if(ex == null && (form.getDataVencimentoInicio()!= null && !"".equals(form.getDataVencimentoInicio())
&& !Util.validarDiaMesAnoSemBarraNovo(form.getDataVencimentoInicio().replace("/", "")))){
ex = new ActionServletException(
"atencao.data.invalida",null, "Data");
}
if (ex == null && form.getDataVencimentoFinal()!= null && !"".equals(form.getDataVencimentoFinal()) && !Util.validarDiaMesAnoSemBarraNovo(form.getDataVencimentoFinal().replace("/", ""))){
ex = new ActionServletException(
"atencao.data.invalida",null, "Data");
}else{
if (ex == null
&& form.getDataVencimentoFinal()!= null
&& !form.getDataVencimentoFinal().toString().trim().equals("")
&& Util.converteStringParaDate(form.getDataVencimentoFinal()).after(new Date())){
ex = new ActionServletException(
"atencao.data.vencimento.final.superior.data.atual" ,null,Util.formatarData(new Date()));
}
}
if (ex == null && form.getDataVencimentoFinal()!= null && !"".equals(form.getDataVencimentoFinal())){
Date dataInicial = Util.converteStringParaDate(form.getDataVencimentoInicio());
Date dataFinal = Util.converteStringParaDate(form.getDataVencimentoFinal());
if(dataInicial != null && dataFinal != null){
if(dataFinal.before(dataInicial)){
ex = new ActionServletException(
"atencao.data.intervalo.invalido",null, "");
}
}
}
if(ex == null && form.getAnoMesDebitoInicio()!= null && !"".equals(form.getAnoMesDebitoInicio())){
boolean mesAnoValido = Util.validarMesAno(form.getAnoMesDebitoInicio());
if(!mesAnoValido){
ex = new ActionServletException(
"atencao.referencia.debito.invalida",null, "");
}
}
if(ex == null && form.getAnoMesDebitoFinal()!= null && !"".equals(form.getAnoMesDebitoFinal())){
boolean mesAnoValido = Util.validarMesAno(form.getAnoMesDebitoFinal());
if(!mesAnoValido){
ex = new ActionServletException(
"atencao.referencia.debito.invalida",null, "");
}else{
boolean anoMesFinalMenor = (Util.formatarMesAnoComBarraParaAnoMes(form.getAnoMesDebitoFinal()) <= Util.recuperaAnoMesDaData(new Date()));
if(!anoMesFinalMenor){
ex = new ActionServletException(
"atencao.referencia.final.superior.data.atual",null, Util.formatarMesAnoReferencia(Util.recuperaAnoMesDaData(new Date())));
}
}
}
if(ex == null && form.getAnoMesDebitoInicio()!= null && !"".equals(form.getAnoMesDebitoInicio())
&& form.getAnoMesDebitoFinal()!= null && !"".equals(form.getAnoMesDebitoFinal())){
int anoMesIni = Integer.parseInt(form.getAnoMesDebitoInicio().substring(3,7) + form.getAnoMesDebitoInicio().substring(0,2));
int anoMesFim = Integer.parseInt(form.getAnoMesDebitoFinal().substring(3,7) + form.getAnoMesDebitoFinal().substring(0,2));
if(anoMesFim < anoMesIni){
ex = new ActionServletException(
"atencao.ano.mes.intervalo.invalido",null, "");
}
}
ContratoParcelamentoCliente clienteContrato = (ContratoParcelamentoCliente) sessao.getAttribute("clienteContrato");
if(ex == null && clienteContrato != null && clienteContrato.getCliente() != null){
if(clienteContrato.getCliente().getClienteTipo().getIndicadorPessoaFisicaJuridica().intValue() != ClienteTipo.INDICADOR_PESSOA_JURIDICA.intValue()){
ex = new ActionServletException(
"atencao.cliente.nao.juridico",null, "");
}else if(clienteContrato.getCliente().getCnpj() == null || clienteContrato.getCliente().getCnpj().equals("")){
ex = new ActionServletException(
"atencao.cliente.sem.cnpj", null, "");
}
}
ContratoParcelamentoCliente clienteContratoSuperior = (ContratoParcelamentoCliente) sessao.getAttribute("clienteSuperiorContrato");
if (ex == null && clienteContratoSuperior != null && clienteContratoSuperior.getCliente() != null){
clienteContratoSuperior.setCliente(fachada.pesquisarDadosCliente(clienteContratoSuperior.getCliente().getId()));
if(clienteContratoSuperior.getCliente().getClienteTipo().getIndicadorPessoaFisicaJuridica().intValue() != ClienteTipo.INDICADOR_PESSOA_JURIDICA.intValue()){
ex = new ActionServletException(
"atencao.cliente.superior.nao.juridico",null, "");
}else if(clienteContratoSuperior.getCliente().getCnpj() == null || clienteContratoSuperior.getCliente().getCnpj().equals("")){
ex = new ActionServletException(
"atencao.cliente.superior.sem.cnpj", null, "");
}
Integer qtdClientes = fachada.pesquisarQtdClientesAssociadosResponsavelNaoJuridica(clienteContratoSuperior.getCliente().getId().intValue());
if(ex == null && qtdClientes != 0 && !method.equals("mostrarPrimeiraEtapa") ){
sessao.setAttribute("etapa", "segunda");
sessao.setAttribute("mensagemAlerta",
"H� clientes vinculados ao cliente "
+ clienteContratoSuperior.getCliente().getNome()
+ " que n�o s�o pessoas jur�dicas e/ou que n�o t�m o CNPJ informado no sistema.");
}
}
if(ex == null && (clienteContratoSuperior == null || clienteContratoSuperior.getCliente() == null)
&& (clienteContrato == null || clienteContrato.getCliente() == null)){
ex = new ActionServletException(
"atencao.informe.cliente.ou.clientesuperior", null, "");
}
if(ex == null && (form.getDataVencimentoPrimParcela() == null || form.getDataVencimentoPrimParcela().equals("") )){
ex = new ActionServletException(
"atencao.data.invalida",null, "Data");
}else{
int dataVencPrimParcel = Integer.parseInt(Util.recuperaAnoMesDiaDaData(Util.converteStringParaDate(form.getDataVencimentoPrimParcela())));
int dataAtual = Integer.parseInt(Util.recuperaAnoMesDiaDaData(new Date()));
String etapa = (String) sessao.getAttribute("etapa");
if(dataVencPrimParcel < dataAtual && !etapa.equals("primeira") && !etapa.equals("segunda")){
ex = new ActionServletException(
"atencao.data.vencimento.primeira.parcel.anterior.corrente",null, form.getDataVencimentoPrimParcela());
sessao.setAttribute("etapa", "terceira");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
throw ex;
}
}
if(ex != null){
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do?contratoAtualizarNumero="+contratoAtualizar.getNumero());
sessao.setAttribute("etapa", "primeira");
throw ex;
}
}
//[FS0024]
private void verificaNumeroParcelas(String numeroParcelasPopUp, String parcelaInicial, String parcelaFinal, List<PrestacaoContratoParcelamento> listaDeParcelas, HttpSession sessao){
int total = Integer.parseInt(numeroParcelasPopUp);
int parcelIni = Integer.parseInt(parcelaInicial);
int parcelFim = Integer.parseInt(parcelaFinal);
int novas = parcelFim - parcelIni + 1;
if(novas + listaDeParcelas.size() > total ){
sessao.setAttribute("etapa", "informarParcela");
ActionServletException ex = new ActionServletException("atencao.lista.parcelas.quantidade.nao.corresponde",novas + listaDeParcelas.size()+"", total+"");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
throw ex;
}
}
//[FS0026]
private void verificaContinuidadeParcelas(List<PrestacaoContratoParcelamento> listaDeParcelas){
ActionServletException ex = new ActionServletException("atencao.lista.parcelas.descontinuas", null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
if(listaDeParcelas.size() > 1){
for (int i = 1; i < listaDeParcelas.size(); i++) {
if(listaDeParcelas.get(i).getNumero().intValue() != listaDeParcelas.get(i - 1).getNumero().intValue() + 1){
throw ex;
}
}
}else{
if(listaDeParcelas.get(0).getNumero().intValue() != 1){
throw ex;
}
}
}
//[FS0025]
private void verificaValorParceladoTotal(List<PrestacaoContratoParcelamento> listaDeParcelas, BigDecimal valorParceladoTotal){
BigDecimal valorParcelTotal = new BigDecimal("0");
for (PrestacaoContratoParcelamento prestacaoContratoParcelamento : listaDeParcelas) {
valorParcelTotal = valorParcelTotal.add(prestacaoContratoParcelamento.getValor());
}
if(valorParcelTotal.floatValue() != valorParceladoTotal.floatValue()){
ActionServletException ex = new ActionServletException("atencao.lista.parcelas.valor.total.nao.corresponde", Util.formatarMoedaReal(valorParcelTotal), Util.formatarMoedaReal(valorParceladoTotal));
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
throw ex;
}
}
//[FS0029]
private void verificaNumeroParcelasComRD(List<PrestacaoContratoParcelamento> listaDeParcelas, ContratoParcelamentoRD resolucao,
AtualizarContratoParcelamentoPorClienteActionForm form, HttpSession sessao, String etapa,
Integer numeroParcelas){
if( (listaDeParcelas != null && listaDeParcelas.size() > resolucao.getQtdFaturasParceladas().intValue()) ||
(numeroParcelas != null && numeroParcelas > resolucao.getQtdFaturasParceladas().intValue())){
ActionServletException ex = new ActionServletException("atencao.numero.parcelas.informado.superior.rd", null, resolucao.getQtdFaturasParceladas()+"");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", etapa);
throw ex;
}
}
//[FS0029]
private void verificaNumeroParcelasSemRD(List<PrestacaoContratoParcelamento> listaDeParcelas, AtualizarContratoParcelamentoPorClienteActionForm form, HttpSession sessao, String etapa){
int numeroMax = 0;
try{
numeroMax = this.getFachada().pesquisarParametrosDoSistema().getNumeroMaximoParcelasContratosParcelamento();
}catch (Exception e) {
ActionServletException ex = new ActionServletException(
"atencao.numero.maximo.parcela.sistema.parametros.nao.cadastrado", null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", etapa);
throw ex;
}
if(etapa.equals("terceira")){
if((listaDeParcelas != null && listaDeParcelas.size() > numeroMax) ||
(form.getPacerlaAdd() != null && !form.getPacerlaAdd().equals("")
&& Integer.parseInt(form.getPacerlaAdd()) > numeroMax)){
ActionServletException ex = new ActionServletException(
"atencao.numero.parcelas.superior.ao.maximo", null, numeroMax+"");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", etapa);
throw ex;
}
}else {
if((listaDeParcelas != null && listaDeParcelas.size() > numeroMax) ||
(form.getNumeroParcelasPopUp() != null && !form.getNumeroParcelasPopUp().equals("")
&& Integer.parseInt(form.getNumeroParcelasPopUp()) > numeroMax)){
ActionServletException ex = new ActionServletException(
"atencao.numero.parcelas.superior.ao.maximo", null, numeroMax+"");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", etapa);
throw ex;
}
}
}
private void calcularListaParcelasDiretoTela(AtualizarContratoParcelamentoPorClienteActionForm form,
HttpSession sessao, ContratoParcelamento contratoAtualizar) throws ActionServletException{
List<PrestacaoContratoParcelamento> listaDeParcelas = (List<PrestacaoContratoParcelamento>) sessao.getAttribute("listaDeParcelas");
String etapa = (String) sessao.getAttribute("etapa") + "";
if(listaDeParcelas != null && etapa.equals("informouEtapa")){
ActionServletException ex = new ActionServletException(
"atencao.lista.parcelas.ja.informadas", null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", "terceira");
throw ex;
}else{
boolean popup = false;
String numeroParcelas = null;
String juros = null;
if (form.getPacerlaAdd() != null && !form.getPacerlaAdd().toString().trim().equals("")) {
numeroParcelas = form.getPacerlaAdd();
} else if (form.getNumeroParcelasPopUp() != null && !form.getNumeroParcelasPopUp().toString().trim().equals("")) {
popup = true;
numeroParcelas = form.getNumeroParcelasPopUp();
}
if (form.getTaxaJurosAdd() != null && !form.getTaxaJurosAdd().toString().trim().equals("")) {
juros = form.getTaxaJurosAdd();
}
List<Float> listaValoresDistintos = new ArrayList<Float>();
listaDeParcelas = new ArrayList<PrestacaoContratoParcelamento>();
int numeroParcelInicial = 1;
int numeroParcelFinal = Integer.parseInt(numeroParcelas);
if(numeroParcelFinal <= 0){
ActionServletException ex = new ActionServletException(
"atencao.numero.parcelas.invalido", null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", "terceira");
throw ex;
}
int numeroMax = 0;
try{
numeroMax = this.getFachada().pesquisarParametrosDoSistema().getNumeroMaximoParcelasContratosParcelamento();
}catch (Exception e) {
ActionServletException ex = new ActionServletException(
"atencao.numero.maximo.parcela.sistema.parametros.nao.cadastrado", null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", "terceira");
throw ex;
}
if(numeroParcelFinal > numeroMax){
ActionServletException ex = new ActionServletException(
"atencao.numero.parcelas.superior.ao.maximo", null, numeroMax+"");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", "terceira");
throw ex;
}
if (juros == null) {
juros = "0";
}
juros = juros.replace(",", ".");
if(form.getResolucaoDiretoria() != null && !form.getResolucaoDiretoria().equals("")
&& (form.getTaxaJurosAdd() == null || form.getTaxaJurosAdd().equals(""))){
juros = "0";
}
BigDecimal jurosBigDec = new BigDecimal("0");
try{
jurosBigDec = new BigDecimal(juros);
}catch (Exception e) {
ActionServletException ex = new ActionServletException(
"atencao.campo.taxa.juros.invalido", null, "");
ex.setUrlBotaoVoltar("/gsan/exibirAtualizarContratoParcelamentoClienteAction.do");
sessao.setAttribute("etapa", "terceira");
throw ex;
}
String indicadorDebitoAcresc = form.getIndicadorDebitoAcresc();
if(indicadorDebitoAcresc == null || indicadorDebitoAcresc.equals("")) {
if (contratoAtualizar.getResolucaoDiretoria() != null) {
indicadorDebitoAcresc = ConstantesSistema.SIM.toString();
} else {
indicadorDebitoAcresc = contratoAtualizar.getIndicadorDebitosAcrescimos().toString();
}
}
String indicadorParcelJuros = form.getIndicadorParcelJuros();
if(indicadorParcelJuros == null || indicadorParcelJuros.equals("")) {
indicadorParcelJuros = contratoAtualizar.getIndicadorParcelamentoJuros().toString();
}
if (indicadorParcelJuros != null
&& indicadorParcelJuros.trim().equalsIgnoreCase(ConstantesSistema.SIM.toString())
&& (jurosBigDec == null || jurosBigDec.compareTo(BigDecimal.ZERO) == 0)) {
sessao.removeAttribute("taxaJurosDesabilitada");
throw new ActionServletException(
"atencao.campo_selecionado.obrigatorio", "Taxa de Juros");
}
BigDecimal valorParcelado = null;
BigDecimal valorContaSelecao = (BigDecimal) sessao.getAttribute("valorContaSelecao");
BigDecimal acrescimo = (BigDecimal) sessao.getAttribute("valorContaAcrescimoSelecao");
if (!popup) {
InserirContratoParcelamentoValoresParcelasHelper helper = Fachada.getInstancia()
.calcularValoresParcelasContratoParcelamento(valorContaSelecao, acrescimo,
indicadorDebitoAcresc, indicadorParcelJuros, jurosBigDec,
numeroParcelInicial, numeroParcelFinal);
valorParcelado = helper.getValorParcelado();
listaDeParcelas = helper.getListaDeParcelas();
listaValoresDistintos = helper.getListaValoresDistintos();
contratoAtualizar.setValorTotalParcelado(valorParcelado);
contratoAtualizar.setValorParcelamentoACobrar(valorParcelado);
sessao.setAttribute("listaValoresDistintos", listaValoresDistintos);
sessao.setAttribute("listaDeParcelas", listaDeParcelas);
}
sessao.setAttribute("etapa","informouParcelas");
sessao.setAttribute("contratoAtualizar", contratoAtualizar);
}
}
/**
* Retorna um array com os ids das contas da lista passada como par�metro
*
* @author Mariana Victor
* @date 04/07/2011
* */
private String retornarContasDebitosACobrarSelecionados(List<DebitosClienteHelper> listaDebitos){
if (listaDebitos != null && !listaDebitos.isEmpty()){
String[] contasSelecionadas = new String[listaDebitos.size()];
Iterator iterator = listaDebitos.iterator();
int i = 0;
while(iterator.hasNext()) {
DebitosClienteHelper helper = (DebitosClienteHelper) iterator.next();
contasSelecionadas[i] = helper.getIdentificadorItem().toString();
i++;
}
return Arrays.toString(contasSelecionadas).replace("[","").replace("]","");
}
return null;
}
private FiltroContratoParcelamentoCliente carregarFiltroContratoParcelamentoCliente(FiltroContratoParcelamentoCliente filtro){
filtro.adicionarCaminhoParaCarregamentoEntidade("contrato");
filtro.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtro.adicionarCaminhoParaCarregamentoEntidade("contrato.contratoAnterior");
filtro.adicionarCaminhoParaCarregamentoEntidade("contrato.parcelamentoSituacao");
filtro.adicionarCaminhoParaCarregamentoEntidade("contrato.usuarioResponsavel");
filtro.adicionarCaminhoParaCarregamentoEntidade("contrato.relacaoAnterior");
filtro.adicionarCaminhoParaCarregamentoEntidade("contrato.relacaoCliente");
filtro.adicionarCaminhoParaCarregamentoEntidade("contrato.resolucaoDiretoria");
filtro.adicionarCaminhoParaCarregamentoEntidade("contrato.cobrancaForma");
filtro.adicionarCaminhoParaCarregamentoEntidade("contrato.motivoDesfazer");
filtro.adicionarCaminhoParaCarregamentoEntidade("contrato.qtdPrestacoesDaRDEscolhida");
return filtro;
}
private void removerValoresParcelas(HttpSession sessao, AtualizarContratoParcelamentoPorClienteActionForm form){
sessao.removeAttribute("listaDeParcelas");
sessao.removeAttribute("listaValoresDistintos");
sessao.removeAttribute("listaDeParcelasPopUp");
sessao.removeAttribute("listaValoresDistintosPopUp");
sessao.removeAttribute("pacerlaAdd");
sessao.removeAttribute("taxaJurosAdd");
sessao.removeAttribute("numeroParcelasPopUp");
sessao.removeAttribute("valorParcelTotal");
form.setPacerlaAdd(null);
form.setTaxaJurosAdd(null);
form.setNumeroParcelasPopUp(null);
}
private void removerValoresListasParcelas(HttpSession sessao, AtualizarContratoParcelamentoPorClienteActionForm form){
sessao.removeAttribute("listaDeParcelas");
sessao.removeAttribute("listaValoresDistintos");
sessao.removeAttribute("listaDeParcelasPopUp");
sessao.removeAttribute("listaValoresDistintosPopUp");
sessao.removeAttribute("valorParcelTotal");
}
private void removerListaDebitos(HttpSession sessao, AtualizarContratoParcelamentoPorClienteActionForm form){
sessao.removeAttribute("contasSelecionadas");
form.setContasSelecao(null);
form.setContasSelecionadas(null);
sessao.removeAttribute("debitosACobrarSelecionados");
form.setDebitosSelecao(null);
form.setDebitosACobrarSelecionados(null);
}
private void removerDebitos(HttpSession sessao, AtualizarContratoParcelamentoPorClienteActionForm form){
sessao.removeAttribute("colecaoContaValores");
sessao.removeAttribute("colecaoDebitoACobrar");
sessao.removeAttribute("listaDebitos");
sessao.removeAttribute("listaDebitosACobrar");
}
private void carregarObjetosSessao(HttpSession sessao, Usuario usuarioLogado) {
Fachada fachada = Fachada.getInstancia();
// objetos utilizados na primeira etapa
Collection collTipoRelacao = (Collection) sessao.getAttribute("collTipoRelacao");
if(collTipoRelacao == null){
FiltroTipoRelacao filtroTipoRelacao = new FiltroTipoRelacao();
filtroTipoRelacao.adicionarParametro(new ParametroSimples(FiltroTipoRelacao.INDICADOR_USO, 1));
collTipoRelacao = fachada.pesquisar(filtroTipoRelacao, TipoRelacao.class.getName());
}
sessao.setAttribute("collTipoRelacao", collTipoRelacao);
Collection collRelacaoCliente = (Collection) sessao.getAttribute("collRelacaoCliente");
if(collRelacaoCliente == null){
FiltroClienteRelacaoTipo filtroClienteRelacTipo = new FiltroClienteRelacaoTipo("descricao");
filtroClienteRelacTipo.adicionarParametro(new ParametroSimples(FiltroClienteRelacaoTipo.INDICADOR_USO, 1));
collRelacaoCliente = fachada.pesquisar(filtroClienteRelacTipo, ClienteRelacaoTipo.class.getName());
}
sessao.setAttribute("collRelacaoCliente", collRelacaoCliente);
// objetos utilizados na terceira etapa
boolean permissaoEspecial = Fachada.getInstancia().verificarPermissaoEspecial(
PermissaoEspecial.CONSULTAR_DEBITOS_ATUAL_DO_IMOVEL_OU_TODOS,
usuarioLogado);
sessao.setAttribute("permissaoEspecial", permissaoEspecial);
boolean permissaoEspecialDebitoAcrescimos = Fachada.getInstancia().verificarPermissaoEspecial(
PermissaoEspecial.PARCELAR_SEM_INCLUIR_ACRESCIMOS_POR_IMPONTUALIDADE,
usuarioLogado);
sessao.setAttribute("permissaoEspecialDebitoAcrescimos", permissaoEspecialDebitoAcrescimos);
if(sessao.getAttribute("collResolucoesDiretoria") == null){
FiltroContratoParcelamentoRD filtro = new FiltroContratoParcelamentoRD(
FiltroContratoParcelamentoRD.NUMERO);
Collection<ContratoParcelamentoRD> resolucoesDiretoria = fachada.pesquisar(
filtro, ContratoParcelamentoRD.class.getName());
sessao.setAttribute("collResolucoesDiretoria", resolucoesDiretoria);
}
if(sessao.getAttribute("collFormaPgto") == null){
FiltroCobrancaForma filtroCobranca = new FiltroCobrancaForma();
filtroCobranca.adicionarParametro(new ParametroSimples(FiltroCobrancaForma.IC_USO_CONTRATO_PARCEL_CLIENTE, "1"));
Collection coll = fachada.pesquisar(filtroCobranca, CobrancaForma.class.getName());
sessao.setAttribute("collFormaPgto", coll);
}
}
/**
* Carrega os dados referentes � 1�, 2� e 3� etapa
* */
private void carregarDadosPrimeiraEtapa(HttpSession sessao,
AtualizarContratoParcelamentoPorClienteActionForm form,
HttpServletRequest httpServletRequest,
String contratoAtualizarNumero,
ContratoParcelamento contratoAtualizar){
Fachada fachada = Fachada.getInstancia();
if (contratoAtualizarNumero == null || contratoAtualizarNumero.trim().equals("")) {
contratoAtualizarNumero = contratoAtualizar.getNumero();
}
FiltroContratoParcelamentoCliente filtroClienteContratoSuperior = new FiltroContratoParcelamentoCliente();
filtroClienteContratoSuperior = this.carregarFiltroContratoParcelamentoCliente(filtroClienteContratoSuperior);
filtroClienteContratoSuperior.adicionarParametro(new ComparacaoTexto(
FiltroContratoParcelamentoCliente.NUMERO_CONTRATO, contratoAtualizarNumero));
filtroClienteContratoSuperior.adicionarParametro(new ParametroSimples(
FiltroContratoParcelamentoCliente.INDICADOR_CLIENTE_SUPERIOR, ConstantesSistema.SIM));
Collection collClienteContratoSuperior = fachada.pesquisar(
filtroClienteContratoSuperior, ContratoParcelamentoCliente.class.getName());
// 1.6. Cliente Superior
// caso o contrato tenha sido implantado para um cliente superior
if (collClienteContratoSuperior != null && !collClienteContratoSuperior.isEmpty()) {
ContratoParcelamentoCliente contratoClienteAtualizar = (ContratoParcelamentoCliente) collClienteContratoSuperior.iterator().next();
contratoAtualizar = (ContratoParcelamento) contratoClienteAtualizar.getContrato();
sessao.setAttribute("clienteSuperiorContrato", contratoClienteAtualizar);
sessao.setAttribute("tipoConsulta", "clienteSuperior");
sessao.setAttribute("clienteContrato", null);
sessao.setAttribute("idClienteContratoConsultar", contratoClienteAtualizar.getId());
} else {
// 1.8. Cliente
// caso o contrato tenha sido implantado para um cliente
FiltroContratoParcelamentoCliente filtroClienteContrato = new FiltroContratoParcelamentoCliente();
filtroClienteContrato = this.carregarFiltroContratoParcelamentoCliente(filtroClienteContrato);
filtroClienteContrato.adicionarParametro(new ComparacaoTexto(FiltroContratoParcelamentoCliente.NUMERO_CONTRATO,contratoAtualizarNumero));
Collection<ContratoParcelamentoCliente> collClienteContrato = fachada.pesquisar(
filtroClienteContrato, ContratoParcelamentoCliente.class.getName());
ContratoParcelamentoCliente contratoClienteAtualizar = (ContratoParcelamentoCliente) collClienteContrato.iterator().next();
contratoAtualizar = (ContratoParcelamento) contratoClienteAtualizar.getContrato();
sessao.setAttribute("clienteContrato", contratoClienteAtualizar);
sessao.setAttribute("tipoConsulta", "cliente");
sessao.setAttribute("clienteSuperiorContrato", null);
sessao.setAttribute("idClienteContratoConsultar", contratoClienteAtualizar.getId());
}
sessao.setAttribute("contratoAtualizar", contratoAtualizar);
sessao.setAttribute("contratoAtualizarBase", contratoAtualizar);
this.carregarDadosSegundaEtapa(sessao, contratoAtualizar, form, httpServletRequest);
List<Float> listaValoresDistintos = new ArrayList<Float>();
FiltroPrestacaoContratoParcelamento filtroPrestacao = new FiltroPrestacaoContratoParcelamento();
filtroPrestacao.adicionarParametro(new ParametroSimples(
FiltroPrestacaoContratoParcelamento.CONTRATO_PARCELAMENTO_ID, contratoAtualizar.getId()));
List<PrestacaoContratoParcelamento> listaDeParcelas = new ArrayList<PrestacaoContratoParcelamento>
(fachada.pesquisar(filtroPrestacao, PrestacaoContratoParcelamento.class.getName()));
Collections.sort(listaDeParcelas, new ComparatorPrestacaoContratoParcelamento());
int indice = 0;
for (PrestacaoContratoParcelamento prestacao : listaDeParcelas) {
if(indice == 0){
listaValoresDistintos.add(prestacao.getValor().floatValue());
}else{
if(prestacao.getValor().floatValue() != listaDeParcelas.get(indice-1).getValor().floatValue()){
listaValoresDistintos.add(prestacao.getValor().floatValue());
}
}
indice++;
}
if (contratoAtualizar.getNumeroPrestacoes() != null) {
form.setPacerlaAdd(contratoAtualizar.getNumeroPrestacoes().toString());
}
if (contratoAtualizar.getTaxaJuros() != null && contratoAtualizar.getTaxaJuros().compareTo(BigDecimal.ZERO) > 0) {
form.setTaxaJurosAdd(Util.formatarMoedaReal(contratoAtualizar.getTaxaJuros()));
}
sessao.setAttribute("listaDeParcelas", listaDeParcelas);
sessao.setAttribute("listaValoresDistintos", listaValoresDistintos);
this.carregarDadosTerceiraEtapa(sessao, form, httpServletRequest, contratoAtualizar, false, true, true);
sessao.setAttribute("etapa", "primeira");
if ((httpServletRequest.getParameter("method") != null
&& httpServletRequest.getParameter("method")
.toString().trim().equals("desfazerContrato"))
|| (httpServletRequest.getParameter("contratoAtualizarNumero") != null
&& !httpServletRequest.getParameter("contratoAtualizarNumero")
.toString().trim().equals(""))) {
if (form.getContasSelecao() != null && form.getContasSelecao().length > 0) {
form.setSelecionouContas("sim");
}
if (form.getDebitosSelecao() != null && form.getDebitosSelecao().length > 0) {
form.setSelecionouDebitosACobrar("sim");
}
}
}
/**
* Carrega os dados referentes � 2� etapa
* */
private void carregarDadosSegundaEtapa(HttpSession sessao,
ContratoParcelamento contratoAtualizar,
AtualizarContratoParcelamentoPorClienteActionForm form,
HttpServletRequest httpServletRequest) {
Fachada fachada = Fachada.getInstancia();
Collection<ContratoParcelamentoItem> colecaoContaItens = (Collection<ContratoParcelamentoItem>) sessao.getAttribute("colecaoContaItens");
if(colecaoContaItens == null){
FiltroContratoParcelamentoItem filtroItem = new FiltroContratoParcelamentoItem();
filtroItem.adicionarCaminhoParaCarregamentoEntidade(
FiltroContratoParcelamentoItem.CONTA_GERAL);
filtroItem.adicionarCaminhoParaCarregamentoEntidade(
FiltroContratoParcelamentoItem.DOCUMENTO_TIPO);
filtroItem.adicionarCaminhoParaCarregamentoEntidade(
FiltroContratoParcelamentoItem.CONTA_GERAL_CONTA);
filtroItem.adicionarCaminhoParaCarregamentoEntidade(
FiltroContratoParcelamentoItem.CONTA_GERAL_CONTA_DEBITO_CREDITO_SITUACAO_ATUAL);
filtroItem.adicionarParametro(new ParametroSimples(
FiltroContratoParcelamentoItem.CONTRATO_ID, contratoAtualizar.getId()));
filtroItem.adicionarParametro(new ParametroSimples(
FiltroContratoParcelamentoItem.DOCUMENTO_TIPO, DocumentoTipo.CONTA));
colecaoContaItens = fachada.pesquisar(filtroItem, ContratoParcelamentoItem.class.getName());
}
if (colecaoContaItens != null && !colecaoContaItens.isEmpty()) {
// carrega as contas que j� devem vir selecionadas
String[] contasSelecionadas = new String[colecaoContaItens.size()];
int indiceVez = 0;
for (ContratoParcelamentoItem contratoParcelamentoItem : colecaoContaItens) {
contasSelecionadas[indiceVez] = contratoParcelamentoItem.getContaGeral().getConta().getId().intValue()+"";
indiceVez++;
}
form.setContasSelecao(contasSelecionadas);
}
Collection<ContratoParcelamentoItem> colecaoDebitosItens = (Collection<ContratoParcelamentoItem>) sessao.getAttribute("colecaoDebitosItens");
if(colecaoDebitosItens == null){
FiltroContratoParcelamentoItem filtroItem = new FiltroContratoParcelamentoItem();
filtroItem.adicionarCaminhoParaCarregamentoEntidade(
FiltroContratoParcelamentoItem.DEBITO_A_COBRAR_GERAL);
filtroItem.adicionarCaminhoParaCarregamentoEntidade(
FiltroContratoParcelamentoItem.DOCUMENTO_TIPO);
filtroItem.adicionarCaminhoParaCarregamentoEntidade(
FiltroContratoParcelamentoItem.DEBITO_A_COBRAR_GERAL_DEBITO);
filtroItem.adicionarCaminhoParaCarregamentoEntidade(
FiltroContratoParcelamentoItem.DEBITO_A_COBRAR_GERAL_DEBITO_TIPO);
filtroItem.adicionarParametro(new ParametroSimples(
FiltroContratoParcelamentoItem.CONTRATO_ID, contratoAtualizar.getId()));
filtroItem.adicionarParametro(new ParametroSimples(
FiltroContratoParcelamentoItem.DOCUMENTO_TIPO, DocumentoTipo.DEBITO_A_COBRAR));
colecaoDebitosItens = fachada.pesquisar(filtroItem, ContratoParcelamentoItem.class.getName());
}
if (colecaoDebitosItens != null && !colecaoDebitosItens.isEmpty()) {
// carrega os d�bitos a cobrar que j� devem vir selecionados
String[] debitosSelecionadas = new String[colecaoDebitosItens.size()];
int indiceVez = 0;
for (ContratoParcelamentoItem contratoParcelamentoItem : colecaoDebitosItens) {
debitosSelecionadas[indiceVez] = contratoParcelamentoItem.getDebitoACobrarGeral().getDebitoACobrar().getId().intValue()+"";
indiceVez++;
}
form.setDebitosSelecao(debitosSelecionadas);
}
calcularDebitosCliente(sessao, form, contratoAtualizar, true);
sessao.setAttribute("finalizou", true);
}
/**
* Carrega os dados referentes � 3� etapa
* */
private void carregarDadosTerceiraEtapa(HttpSession sessao,
AtualizarContratoParcelamentoPorClienteActionForm form,
HttpServletRequest httpServletRequest,
ContratoParcelamento contratoAtualizar,
boolean pegarValoresDoForm, boolean icPrimeiraVez,
boolean atualizarListasParcelas){
List<PrestacaoContratoParcelamento> listaDeParcelas =
(List<PrestacaoContratoParcelamento>) sessao.getAttribute("listaDeParcelas");
//if (!icPrimeiraVez) {
this.carregaValoresContas(sessao, form, contratoAtualizar, pegarValoresDoForm, httpServletRequest, atualizarListasParcelas);
//}
Integer numeroParcelas = null;
if (form.getPacerlaAdd() != null && !form.getPacerlaAdd().equals("")) {
numeroParcelas = new Integer(form.getPacerlaAdd());
} else if (form.getNumeroParcelasPopUp() != null && !form.getNumeroParcelasPopUp().equals("")) {
numeroParcelas = new Integer(form.getNumeroParcelasPopUp());
}
if(numeroParcelas != null){
//[FS0029]
if(contratoAtualizar.getResolucaoDiretoria() != null){
verificaNumeroParcelasComRD(listaDeParcelas, contratoAtualizar.getResolucaoDiretoria(),
form, sessao, "terceira", numeroParcelas);
}else{
verificaNumeroParcelasSemRD(listaDeParcelas, form, sessao, "terceira");
}
List<Float> listaValoresDistintos = (List<Float>) sessao.getAttribute("listaValoresDistintos");
List<QuantidadePrestacoesRDHelper> colecaoQuantidadePrestacoesRDHelper = (List<QuantidadePrestacoesRDHelper>) sessao.getAttribute("colecaoQuantidadePrestacoesRDHelper");
if (atualizarListasParcelas
&& (listaValoresDistintos == null || listaValoresDistintos.size() <= 2)
&& (contratoAtualizar.getResolucaoDiretoria() == null
|| contratoAtualizar.getResolucaoDiretoria().getId() == null)
|| ((colecaoQuantidadePrestacoesRDHelper == null || colecaoQuantidadePrestacoesRDHelper.isEmpty()) && !icPrimeiraVez)) {
calcularListaParcelasDiretoTela(form, sessao, contratoAtualizar);
}
} else {
sessao.removeAttribute("listaDeParcelas");
sessao.removeAttribute("listaValoresDistintos");
}
this.carregaValoresContas(sessao, form, contratoAtualizar, pegarValoresDoForm, httpServletRequest, atualizarListasParcelas);
}
private void carregaValoresContas(HttpSession sessao,
AtualizarContratoParcelamentoPorClienteActionForm form,
ContratoParcelamento contratoAtualizar,
boolean pegarValoresDoForm,
HttpServletRequest httpServletRequest,
boolean atualizarListasParcelas){
if (!(httpServletRequest.getParameter("method") != null
&& httpServletRequest.getParameter("method")
.toString().trim().equals("desfazerContrato"))
&& !(httpServletRequest.getParameter("contratoAtualizarNumero") != null
&& !httpServletRequest.getParameter("contratoAtualizarNumero")
.toString().trim().equals(""))) {
if(form.getSelecionouContas() == null || !form.getSelecionouContas().trim().equalsIgnoreCase("sim")) {
sessao.removeAttribute("contasSelecionadas");
form.setContasSelecao(null);
form.setContasSelecionadas(null);
}
if(form.getSelecionouDebitosACobrar() == null || !form.getSelecionouDebitosACobrar().trim().equalsIgnoreCase("sim")) {
sessao.removeAttribute("debitosACobrarSelecionados");
form.setDebitosSelecao(null);
form.setDebitosACobrarSelecionados(null);
}
}
BigDecimal valorConta = BigDecimal.ZERO;
BigDecimal valorAcresc = BigDecimal.ZERO;
BigDecimal valorDebitosACobrar = BigDecimal.ZERO;
//2.4. N�mero de Parcelas
Integer numeroParcelasPopup = new Integer(0);
if(form.getContasSelecao() != null && form.getContasSelecao().length > 0){
Collection<ContaValoresHelper> colecaoContaValores = (Collection<ContaValoresHelper>) sessao.getAttribute("colecaoContaValores");
List<DebitosClienteHelper> listaDebitos = new ArrayList<DebitosClienteHelper>();
if(colecaoContaValores != null){
for (ContaValoresHelper contaValoresHelper : colecaoContaValores) {
if(form.verificaContaSelecionada(contaValoresHelper.getConta().getId().intValue())){
DebitosClienteHelper debito = new DebitosClienteHelper();
debito.setIdentificadorItem(contaValoresHelper.getConta().getId());
debito.setTipoDocumento(DocumentoTipo.CONTA);
debito.setValorItem(contaValoresHelper.getConta().getValorTotal());
debito.setValorAcrescImpont(contaValoresHelper.getValorTotalContaValores());
listaDebitos.add(debito);
valorConta = valorConta.add(contaValoresHelper.getConta().getValorTotal());
valorAcresc = valorAcresc.add(contaValoresHelper.getValorTotalContaValores());
}
}
sessao.setAttribute("listaDebitos",listaDebitos);
sessao.setAttribute("valorContasSelecao",valorConta);
sessao.setAttribute("valorAcrescSelecao",valorAcresc);
sessao.setAttribute("valorContaComAcrescimoSelecao",valorAcresc.add(valorConta));
form.setContasSelecionadas(this.retornarContasDebitosACobrarSelecionados(listaDebitos));
sessao.setAttribute("contasSelecionadas",form.getContasSelecionadas());
}
}else{
sessao.removeAttribute("listaDebitos");
sessao.setAttribute("valorContasSelecao",BigDecimal.ZERO);
sessao.setAttribute("valorAcrescSelecao",BigDecimal.ZERO);
sessao.setAttribute("valorContaComAcrescimoSelecao",BigDecimal.ZERO);
form.setContasSelecionadas(null);
sessao.removeAttribute("contasSelecionadas");
}
if(form.getDebitosSelecao() != null && form.getDebitosSelecao().length > 0){
Collection<DebitoACobrar> colecaoDebitoACobrarTotal = (Collection<DebitoACobrar>) sessao.getAttribute("colecaoDebitoACobrar");
List<DebitosClienteHelper> listaDebitosACobrar = new ArrayList<DebitosClienteHelper>();
if(colecaoDebitoACobrarTotal != null){
for (DebitoACobrar debitoACobrar : colecaoDebitoACobrarTotal) {
if(form.verificaDebitoACobrarSelecionada(debitoACobrar.getId().intValue())){
DebitosClienteHelper debito = new DebitosClienteHelper();
debito.setIdentificadorItem(debitoACobrar.getId());
debito.setTipoDocumento(DocumentoTipo.DEBITO_A_COBRAR);
debito.setValorItem(debitoACobrar.getValorTotal());
debito.setValorAcrescImpont(null);
listaDebitosACobrar.add(debito);
valorConta = valorConta.add(debitoACobrar.getValorTotal());
valorDebitosACobrar = valorDebitosACobrar.add(debitoACobrar.getValorTotal());
}
}
sessao.setAttribute("listaDebitosACobrar",listaDebitosACobrar);
form.setDebitosACobrarSelecionados(this.retornarContasDebitosACobrarSelecionados(listaDebitosACobrar));
sessao.setAttribute("debitosACobrarSelecionados",form.getDebitosACobrarSelecionados());
sessao.setAttribute("valorDebitosACobrarSelecao",valorDebitosACobrar);
}
}else{
sessao.removeAttribute("listaDebitosACobrar");
form.setDebitosACobrarSelecionados(null);
sessao.removeAttribute("debitosACobrarSelecionados");
sessao.setAttribute("valorDebitosACobrarSelecao",BigDecimal.ZERO);
}
if((form.getContasSelecao() != null && form.getContasSelecao().length > 0)
|| (form.getDebitosSelecao() != null && form.getDebitosSelecao().length > 0)){
List<Float> listaValoresDistintos = (List<Float>) sessao.getAttribute("listaValoresDistintos");
Integer numPrest = null;
BigDecimal juros = null;
Short icDebitosAcrescimos = null;
if(pegarValoresDoForm) {
if (form.getPacerlaAdd() != null
&& !form.getPacerlaAdd().equals("")) {
numPrest = new Integer(form.getPacerlaAdd());
contratoAtualizar.setNumeroPrestacoes(numPrest);
} else if (form.getNumeroParcelasPopUp() != null
&& !form.getNumeroParcelasPopUp().equals("")) {
numPrest = new Integer(form.getNumeroParcelasPopUp());
}
if (form.getTaxaJurosAdd() != null
&& !form.getTaxaJurosAdd().equals("")) {
juros = new BigDecimal(form.getTaxaJurosAdd().replace(".", ",").replace(",", "."));
contratoAtualizar.setTaxaJuros(juros);
}
if (form.getIndicadorDebitoAcresc() != null
&& !form.getIndicadorDebitoAcresc().equals("")) {
icDebitosAcrescimos = new Short(form.getIndicadorDebitoAcresc());
}
contratoAtualizar.setIndicadorDebitosAcrescimos(icDebitosAcrescimos);
} else {
if (contratoAtualizar.getNumeroPrestacoes() != null) {
numPrest = contratoAtualizar.getNumeroPrestacoes();
}
if (contratoAtualizar.getTaxaJuros() != null) {
juros = contratoAtualizar.getTaxaJuros();
form.setTaxaJurosAdd(Util.formatarMoedaReal(juros));
}
if (contratoAtualizar.getIndicadorDebitosAcrescimos() != null){
icDebitosAcrescimos = contratoAtualizar.getIndicadorDebitosAcrescimos();
form.setIndicadorDebitoAcresc(icDebitosAcrescimos.toString());
}
}
// caso a lista de parcelas n�o esteja vazia
if (numPrest != null) {
// atribuir o campo n�mero de parcelas da lista ao campo "N�mero de Parcelas"
numeroParcelasPopup = numPrest;
String numeroParcelasPopUp = null;
if(sessao.getAttribute("numeroParcelasPopUp") != null
&& !sessao.getAttribute("numeroParcelasPopUp").toString().trim().equals("")){
numeroParcelasPopUp = sessao.getAttribute("numeroParcelasPopUp").toString();
}
if ((numeroParcelasPopUp != null && !numeroParcelasPopUp.equals(""))
|| (listaValoresDistintos != null && listaValoresDistintos.size() > 2)) {
form.setNumeroParcelasPopUp(numeroParcelasPopup.toString());
sessao.setAttribute("numeroParcelasPopUp", numeroParcelasPopup);
form.setPacerlaAdd(null);
form.setTaxaJurosAdd(null);
sessao.removeAttribute("pacerlaAdd");
sessao.removeAttribute("taxaJurosAdd");
} else {
form.setPacerlaAdd(numeroParcelasPopup.toString());
sessao.setAttribute("pacerlaAdd", numeroParcelasPopup);
form.setNumeroParcelasPopUp(null);
sessao.removeAttribute("numeroParcelasPopUp");
}
if ((sessao.getAttribute("listaDeParcelasPopUp") == null
|| sessao.getAttribute("listaDeParcelasPopUp").equals(""))
&& sessao.getAttribute("listaDeParcelas") != null
&& !sessao.getAttribute("listaDeParcelas").equals("")) {
List<PrestacaoContratoParcelamento> listaDeParcelasPopUp = (ArrayList) sessao.getAttribute("listaDeParcelas");
List<Float> listaValoresDistintosPopUp = new ArrayList<Float>();
Collections.sort(listaDeParcelasPopUp, new ComparatorPrestacaoContratoParcelamento());
int indice = 0;
for (PrestacaoContratoParcelamento prestacao : listaDeParcelasPopUp) {
if(indice == 0){
listaValoresDistintosPopUp.add(prestacao.getValor().floatValue());
}else{
if(prestacao.getValor().floatValue() != listaDeParcelasPopUp.get(indice-1).getValor().floatValue()){
listaValoresDistintosPopUp.add(prestacao.getValor().floatValue());
}
}
indice++;
}
BigDecimal valorParcelTotal = new BigDecimal(0);
for (PrestacaoContratoParcelamento prestacaoContratoParcelamento : listaDeParcelasPopUp) {
valorParcelTotal = valorParcelTotal.add(prestacaoContratoParcelamento.getValor());
}
if (atualizarListasParcelas) {
if (form.getPacerlaAdd() == null || form.getPacerlaAdd().toString().trim().equals("")) {
sessao.setAttribute("listaDeParcelasPopUp", listaDeParcelasPopUp);
sessao.setAttribute("listaValoresDistintosPopUp", listaValoresDistintosPopUp);
}
sessao.setAttribute("listaDeParcelas", listaDeParcelasPopUp);
sessao.setAttribute("listaValoresDistintos", listaValoresDistintosPopUp);
}
sessao.setAttribute("valorParcelTotal", valorParcelTotal);
}
}
// 2.3. Valor Parcelado
BigDecimal valorParcelado = BigDecimal.ZERO;
BigDecimal valorContaSelecao = (BigDecimal) sessao.getAttribute("valorContaSelecao");
BigDecimal acrescimo = (BigDecimal) sessao.getAttribute("valorContaAcrescimoSelecao");
Integer numeroParcelas = null;
if (form.getPacerlaAdd() != null
&& !form.getPacerlaAdd().equals("")) {
numeroParcelas = new Integer (form.getPacerlaAdd());
} else if (form.getNumeroParcelasPopUp() != null
&& !form.getNumeroParcelasPopUp().equals("")) {
numeroParcelas = new Integer (form.getNumeroParcelasPopUp());
}
if (valorContaSelecao != null && numeroParcelas != null) {
if (juros == null) {
juros = BigDecimal.ZERO;
}
InserirContratoParcelamentoValoresParcelasHelper helper = Fachada.getInstancia()
.calcularValoresParcelasContratoParcelamento(valorContaSelecao, acrescimo,
contratoAtualizar.getIndicadorDebitosAcrescimos().toString(),
contratoAtualizar.getIndicadorParcelamentoJuros().toString(),
juros, 1, numeroParcelas);
valorParcelado = helper.getValorParcelado();
}
contratoAtualizar.setValorTotalParcelado(valorParcelado);
sessao.setAttribute("valorParceladoPopUp",Util.formatarMoedaReal(valorParcelado));
form.setValorParceladoPopUp(Util.formatarMoedaReal(valorParcelado));
sessao.setAttribute("valorContaSelecao",valorConta);
sessao.setAttribute("valorAcrescimoSelecao",valorAcresc);
sessao.setAttribute("valorContaAcrescimoSelecao",valorAcresc.add(valorConta));
} else {
contratoAtualizar.setValorTotalParcelado(null);
form.setValorParceladoPopUp(null);
sessao.removeAttribute("valorContaSelecao");
sessao.removeAttribute("valorAcrescimoSelecao");
sessao.removeAttribute("valorContaAcrescimoSelecao");
sessao.removeAttribute("valorParceladoPopUp");
}
}
/**
* M�todo que verifica se algum dos campos da 1� aba que influenciam nos valores da 3� aba foram alterados
* */
private boolean verificarCampoAlteradoPrimeiraEtapa(HttpSession sessao,
AtualizarContratoParcelamentoPorClienteActionForm form,
ContratoParcelamento contratoAtualizar){
boolean retorno = false;
Fachada fachada = Fachada.getInstancia();
if(sessao.getAttribute("contratoAtualizarBase") != null
&& !sessao.getAttribute("contratoAtualizarBase").toString().trim().equals("")) {
ContratoParcelamento contratoAtualizarBase = (ContratoParcelamento) sessao.getAttribute("contratoAtualizarBase");
Collection colecaoContratoParcelamentoClienteSuperior = fachada.pesquisarClienteContrato(
contratoAtualizarBase.getId(), ConstantesSistema.SIM);
ContratoParcelamentoCliente clienteSuperiorContrato = (ContratoParcelamentoCliente)
Util.retonarObjetoDeColecao(colecaoContratoParcelamentoClienteSuperior);
Collection colecaoContratoParcelamentoCliente = fachada.pesquisarClienteContrato(
contratoAtualizarBase.getId(), ConstantesSistema.NAO);
ArrayList<Integer> idsClienteContrato = new ArrayList<Integer>();
if (colecaoContratoParcelamentoCliente != null && !colecaoContratoParcelamentoCliente.isEmpty()) {
Iterator iterator = colecaoContratoParcelamentoCliente.iterator();
while(iterator.hasNext()) {
idsClienteContrato.add(((ContratoParcelamentoCliente)iterator.next()).getCliente().getId());
}
}
if ((contratoAtualizarBase.getContratoAnterior() == null
&& form.getNumeroContratoAnt() != null
&& !form.getNumeroContratoAnt().toString().trim().equals(""))
|| (contratoAtualizarBase.getContratoAnterior() != null
&& contratoAtualizarBase.getContratoAnterior().getNumero() != null
&& !contratoAtualizarBase.getContratoAnterior().getNumero().toString().trim().equals("")
&& form.getNumeroContratoAnt() == null)) {
// No. Contrato Anterior
retorno = true;
} else if (contratoAtualizarBase.getContratoAnterior() != null
&& form.getNumeroContratoAnt() != null
&& !compararStrings(contratoAtualizarBase.getContratoAnterior().getNumero(),
form.getNumeroContratoAnt())){
// No. Contrato Anterior
retorno = true;
} else if ((form.getRelacaoAnterior() == null || form.getRelacaoAnterior().equals(""))
&& (contratoAtualizarBase.getRelacaoAnterior() != null
&& contratoAtualizarBase.getRelacaoAnterior().getId() != null)){
// Tipo Rela��o (Contrato Anterior)
retorno = true;
} else if ((form.getRelacaoAnterior() != null && !form.getRelacaoAnterior().equals(""))
&& (contratoAtualizarBase.getRelacaoAnterior() == null
|| contratoAtualizarBase.getRelacaoAnterior().getId() == null)){
// Tipo Rela��o (Contrato Anterior)
retorno = true;
} else if (contratoAtualizarBase.getRelacaoAnterior() != null
&& contratoAtualizarBase.getRelacaoAnterior().getId() != null
&& form.getRelacaoAnterior() != null
&& !compararStrings(contratoAtualizarBase.getRelacaoAnterior().getId().toString(),
form.getRelacaoAnterior())) {
// Tipo Rela��o (Contrato Anterior)
retorno = true;
} else if ((form.getDataContrato() == null || form.getDataContrato().equals(""))
&& (contratoAtualizarBase.getDataContrato() != null)){
// Data do Contrato
retorno = true;
} else if ((form.getDataContrato() != null && !form.getDataContrato().equals(""))
&& (contratoAtualizarBase.getDataContrato() == null)){
// Data do Contrato
retorno = true;
}else if (form.getDataContrato() != null
&& !form.getDataContrato().equals("")
&& contratoAtualizarBase.getDataContrato() != null
&& !Util.datasIguais(contratoAtualizarBase.getDataContrato(),
Util.converteStringParaDate(form.getDataContrato()))){
// Data do Contrato
retorno = true;
} else if ((form.getLoginUsuario() == null || form.getLoginUsuario().equals(""))
&& (contratoAtualizarBase.getUsuarioResponsavel() != null
&& contratoAtualizarBase.getUsuarioResponsavel().getId() != null)){
// Usu�rio Respons�vel
retorno = true;
} else if ((form.getLoginUsuario() != null && !form.getLoginUsuario().equals(""))
&& (contratoAtualizarBase.getUsuarioResponsavel() == null
|| contratoAtualizarBase.getUsuarioResponsavel().getId() == null)){
// Usu�rio Respons�vel
retorno = true;
} else if (form.getLoginUsuario() != null
&& !form.getLoginUsuario().equals("")
&& contratoAtualizarBase.getUsuarioResponsavel() != null
&& contratoAtualizarBase.getUsuarioResponsavel().getId() != null
&& !compararStrings(contratoAtualizarBase.getUsuarioResponsavel().getLogin(),
form.getLoginUsuario())) {
// Usu�rio Respons�vel
retorno = true;
} else if ((form.getAutocompleteClienteSuperior() == null || form.getAutocompleteClienteSuperior().equals(""))
&& (clienteSuperiorContrato != null
&& clienteSuperiorContrato.getCliente() != null
&& clienteSuperiorContrato.getId() != null)){
// Cliente Superior
retorno = true;
} else if ((form.getAutocompleteClienteSuperior() != null && !form.getAutocompleteClienteSuperior().equals(""))
&& (clienteSuperiorContrato == null
|| clienteSuperiorContrato.getCliente() == null
|| clienteSuperiorContrato.getCliente().getId() == null)){
// Cliente Superior
retorno = true;
} else if (form.getAutocompleteClienteSuperior() != null
&& !form.getAutocompleteClienteSuperior().equals("")
&& clienteSuperiorContrato != null
&& clienteSuperiorContrato.getCliente() != null
&& clienteSuperiorContrato.getId() != null
&& !compararStrings(clienteSuperiorContrato.getCliente().getId()
+ " - " + clienteSuperiorContrato.getCliente().getNome(),
form.getAutocompleteClienteSuperior())) {
// Cliente Superior
retorno = true;
} else if ((form.getAutocompleteCliente() == null || form.getAutocompleteCliente().equals(""))
&& (idsClienteContrato != null
&& idsClienteContrato.size() > 0)
&& (clienteSuperiorContrato == null
|| clienteSuperiorContrato.getCliente() == null
|| clienteSuperiorContrato.getId() == null)){
// Cliente Superior
retorno = true;
} else if ((form.getAutocompleteCliente() != null && !form.getAutocompleteCliente().equals(""))
&& (clienteSuperiorContrato == null
|| clienteSuperiorContrato.getCliente() == null
|| clienteSuperiorContrato.getCliente().getId() == null)){
// Cliente Superior
retorno = true;
} else if (form.getAutocompleteCliente() != null
&& !form.getAutocompleteCliente().equals("")
&& clienteSuperiorContrato != null
&& clienteSuperiorContrato.getCliente() != null
&& clienteSuperiorContrato.getId() != null
&& !compararStrings(clienteSuperiorContrato.getCliente().getId()
+ " - " + clienteSuperiorContrato.getCliente().getNome(),
form.getAutocompleteCliente())) {
// Cliente Superior
retorno = true;
} else if ((form.getRelacaoCliente() == null || form.getRelacaoCliente().equals(""))
&& (contratoAtualizarBase.getRelacaoCliente() != null
&& contratoAtualizarBase.getRelacaoCliente().getId() != null)){
// Tipo da Rela��o (Cliente)
retorno = true;
} else if ((form.getRelacaoCliente() != null && !form.getRelacaoCliente().equals(""))
&& (contratoAtualizarBase.getRelacaoCliente() == null
|| contratoAtualizarBase.getRelacaoCliente().getId() == null)){
// Tipo da Rela��o (Cliente)
retorno = true;
} else if (contratoAtualizarBase.getRelacaoCliente() != null
&& contratoAtualizarBase.getRelacaoCliente().getId() != null
&& form.getRelacaoCliente() != null
&& !compararStrings(contratoAtualizarBase.getRelacaoCliente().getId().toString(),
form.getRelacaoCliente())) {
// Tipo da Rela��o (Cliente)
retorno = true;
} else if (!compararStrings(contratoAtualizarBase.getAnoMesDebitoInicioFormatado(),
form.getAnoMesDebitoInicio())){
// Per�odo de Refer�ncia do D�bito (Inicial)
retorno = true;
} else if (!compararStrings(contratoAtualizarBase.getAnoMesDebitoFinalFormatado(),
form.getAnoMesDebitoFinal())){
// Per�odo de Refer�ncia do D�bito (Final)
retorno = true;
} else if (!compararStrings(contratoAtualizarBase.getDataVencimentoInicioFormatada(),
form.getDataVencimentoInicio())){
// Per�odo de Vencimento do D�bito (Inicial)
retorno = true;
} else if (!compararStrings(contratoAtualizarBase.getDataVencimentoFinalFormatada(),
form.getDataVencimentoFinal())){
// Per�odo de Vencimento do D�bito (Final)
retorno = true;
} else if ((form.getObservacao() == null || form.getObservacao().equals(""))
&& (contratoAtualizarBase.getObservacao() != null
&& !contratoAtualizarBase.getObservacao().equals(""))){
// Observa��o
retorno = true;
} else if ((form.getObservacao() != null && !form.getObservacao().equals(""))
&& (contratoAtualizarBase.getObservacao() == null
|| contratoAtualizarBase.getObservacao().equals(""))){
// Observa��o
retorno = true;
} else if (form.getObservacao() != null && !form.getObservacao().equals("")
&& contratoAtualizarBase.getObservacao() != null
&& !contratoAtualizarBase.getObservacao().equals("")
&& !compararStrings(contratoAtualizarBase.getObservacao(),
form.getObservacao())){
// Observa��o
retorno = true;
}
}
if (retorno) {
sessao.setAttribute("alterouCamposPrimeiraEtapa", "sim");
}
return retorno;
}
/**
* M�todo que verifica se algum dos campos da 2� aba que influenciam nos valores da 3� aba foram alterados
* */
private boolean verificarCampoAlteradoSegundaEtapa(HttpSession sessao,
AtualizarContratoParcelamentoPorClienteActionForm form){
boolean retorno = false;
List<DebitosClienteHelper> listaDebitos = (List<DebitosClienteHelper>) sessao.getAttribute("listaDebitos");
List<DebitosClienteHelper> listaDebitosACobrar = (List<DebitosClienteHelper>) sessao.getAttribute("listaDebitosACobrar");
String[] contasSelecionadas = form.getContasSelecao();
String[] debitosSelecionados = form.getDebitosSelecao();
if (listaDebitos != null && !listaDebitos.isEmpty()
&& (contasSelecionadas == null || contasSelecionadas.length < 1)) {
retorno = true;
} else if ((listaDebitos == null || listaDebitos.isEmpty())
&& contasSelecionadas != null && contasSelecionadas.length > 0) {
retorno = true;
} else if (listaDebitos != null && !listaDebitos.isEmpty()
&& contasSelecionadas != null && contasSelecionadas.length > 0
&& listaDebitos.size() != contasSelecionadas.length){
retorno = true;
} else if (listaDebitos != null && !listaDebitos.isEmpty()) {
Iterator iterator = listaDebitos.iterator();
ArrayList<Integer> contas = new ArrayList<Integer>();
for (int i = 0; i < contasSelecionadas.length; i++) {
contas.add(new Integer(contasSelecionadas[i]));
}
while(iterator.hasNext()) {
DebitosClienteHelper helper = (DebitosClienteHelper) iterator.next();
if (!contas.contains(helper.getIdentificadorItem())) {
retorno = true;
}
}
}
if (!retorno) {
if (listaDebitosACobrar != null && !listaDebitosACobrar.isEmpty()
&& (debitosSelecionados == null || debitosSelecionados.length < 1)) {
retorno = true;
} else if ((listaDebitosACobrar == null || listaDebitosACobrar.isEmpty())
&& debitosSelecionados != null && debitosSelecionados.length > 0) {
retorno = true;
} else if (listaDebitosACobrar != null && !listaDebitosACobrar.isEmpty()
&& debitosSelecionados != null && debitosSelecionados.length > 0
&& listaDebitosACobrar.size() != debitosSelecionados.length){
retorno = true;
} else if (listaDebitosACobrar != null && !listaDebitosACobrar.isEmpty()) {
Iterator iterator = listaDebitosACobrar.iterator();
ArrayList<Integer> debitosACobrar = new ArrayList<Integer>();
for (int i = 0; i < debitosSelecionados.length; i++) {
debitosACobrar.add(new Integer(debitosSelecionados[i]));
}
while(iterator.hasNext()) {
DebitosClienteHelper helper = (DebitosClienteHelper) iterator.next();
if (!debitosACobrar.contains(helper.getIdentificadorItem())) {
retorno = true;
}
}
}
}
if (retorno) {
sessao.setAttribute("alterouCamposSegundaEtapa", "sim");
}
return retorno;
}
private boolean compararStrings(String string01, String string02) {
if ((string01 == null || string01.equals(""))
&& (string02 != null && !string02.equals(""))) {
return false;
}
if ((string01 != null && !string01.equals(""))
&& (string02 == null || string02.equals(""))) {
return false;
}
if (!(string01.trim().equals(
string02.trim()))){
return false;
}
return true;
}
private void apagarDadosSessao(HttpSession sessao,
AtualizarContratoParcelamentoPorClienteActionForm form){
this.removerValoresParcelas(sessao, form);
sessao.removeAttribute("indicadorTela");
sessao.removeAttribute("escolheuRD");
sessao.removeAttribute("tipoConsulta");
sessao.removeAttribute("clienteContrato");
sessao.removeAttribute("clienteSuperiorContrato");
sessao.removeAttribute("contasSelecionadas");
sessao.removeAttribute("listaDebitos");
sessao.removeAttribute("colecaoQuantidadePrestacoesRDHelper");
sessao.removeAttribute("valorContaSelecao");
sessao.removeAttribute("valorAcrescimoSelecao");
sessao.removeAttribute("valorContaAcrescimoSelecao");
sessao.removeAttribute("valorParceladoPopUp");
sessao.removeAttribute("colecaoContaValores");
sessao.removeAttribute("colecaoDebitoACobrar");
sessao.removeAttribute("valorConta");
sessao.removeAttribute("valorAcrescimo");
sessao.removeAttribute("valorAgua");
sessao.removeAttribute("valorEsgoto");
sessao.removeAttribute("alterouRD");
sessao.removeAttribute("alterouCamposPrimeiraEtapa");
sessao.removeAttribute("alterouCamposSegundaEtapa");
sessao.removeAttribute("ultimaRD");
}
/**
* Retorna um objeto de contrato de parcelamento a partir dos valores do form
* */
private ContratoParcelamento getContrato(HttpSession sessao,
AtualizarContratoParcelamentoPorClienteActionForm form){
ContratoParcelamento contratoParcelamento = (ContratoParcelamento) sessao.getAttribute("contratoAtualizar");
Fachada fachada = Fachada.getInstancia();
// 1� aba
if (form.getNumeroContrato() != null
&& !form.getNumeroContrato().equals("")) {
contratoParcelamento.setNumero(form.getNumeroContrato());
} else {
contratoParcelamento.setNumero(null);
}
if (form.getNumeroContratoAnt() != null
&& !form.getNumeroContratoAnt().equals("")) {
ContratoParcelamento contratoAnterior = fachada.
pesquisarContratoParcelamentoCompleto(null, form.getNumeroContratoAnt());
if (contratoAnterior != null) {
contratoParcelamento.setContratoAnterior(contratoAnterior);
} else {
contratoParcelamento.setContratoAnterior(null);
}
} else {
contratoParcelamento.setContratoAnterior(null);
}
if (form.getRelacaoAnterior() != null
&& !form.getRelacaoAnterior().equals("")) {
FiltroTipoRelacao filtroTipoRelacao = new FiltroTipoRelacao();
filtroTipoRelacao.adicionarParametro(new ParametroSimples(
FiltroTipoRelacao.ID, form.getRelacaoAnterior()));
Collection colecaoTipoRelacao = fachada.pesquisar(filtroTipoRelacao, TipoRelacao.class.getName());
if (colecaoTipoRelacao != null && !colecaoTipoRelacao.isEmpty()) {
contratoParcelamento.setRelacaoAnterior(
(TipoRelacao) Util.retonarObjetoDeColecao(colecaoTipoRelacao));
} else {
contratoParcelamento.setRelacaoAnterior(null);
}
} else {
contratoParcelamento.setRelacaoAnterior(null);
}
if (form.getDataContrato() != null
&& !form.getDataContrato().equals("")) {
contratoParcelamento.setDataContrato(
Util.converteStringParaDate(form.getDataContrato()));
} else {
contratoParcelamento.setDataContrato(null);
}
if (form.getRelacaoCliente() != null
&& !form.getRelacaoCliente().equals("")) {
FiltroClienteRelacaoTipo filtroClienteRelacaoTipo = new FiltroClienteRelacaoTipo();
filtroClienteRelacaoTipo.adicionarParametro(new ParametroSimples(
FiltroClienteRelacaoTipo.CLIENTE_RELACAO_TIPO_ID, form.getRelacaoCliente()));
Collection colecaoClienteRelacaoTipo = fachada.pesquisar(filtroClienteRelacaoTipo, ClienteRelacaoTipo.class.getName());
if (colecaoClienteRelacaoTipo != null && !colecaoClienteRelacaoTipo.isEmpty()) {
contratoParcelamento.setRelacaoCliente(
(ClienteRelacaoTipo) Util.retonarObjetoDeColecao(colecaoClienteRelacaoTipo));
} else {
contratoParcelamento.setRelacaoCliente(null);
}
} else {
contratoParcelamento.setRelacaoCliente(null);
}
if (form.getAnoMesDebitoInicio() != null
&& !form.getAnoMesDebitoInicio().equals("")) {
contratoParcelamento.setAnoMesDebitoInicio(
Util.formatarMesAnoComBarraParaAnoMes(form.getAnoMesDebitoInicio()));
} else {
contratoParcelamento.setAnoMesDebitoInicio(null);
}
if (form.getAnoMesDebitoFinal() != null
&& !form.getAnoMesDebitoFinal().equals("")) {
contratoParcelamento.setAnoMesDebitoFinal(
Util.formatarMesAnoComBarraParaAnoMes(form.getAnoMesDebitoFinal()));
} else {
contratoParcelamento.setAnoMesDebitoFinal(null);
}
if (form.getDataVencimentoInicio() != null
&& !form.getDataVencimentoInicio().equals("")) {
contratoParcelamento.setDataVencimentoInicio(
Util.converteStringParaDate(form.getDataVencimentoInicio()));
} else {
contratoParcelamento.setDataVencimentoInicio(null);
}
if (form.getDataVencimentoFinal() != null
&& !form.getDataVencimentoFinal().equals("")) {
contratoParcelamento.setDataVencimentoFinal(
Util.converteStringParaDate(form.getDataVencimentoFinal()));
} else {
contratoParcelamento.setDataVencimentoFinal(null);
}
if (form.getObservacao() != null
&& !form.getObservacao().equals("")) {
contratoParcelamento.setObservacao(form.getObservacao());
} else {
contratoParcelamento.setObservacao(null);
}
//3� aba
if (form.getResolucaoDiretoria() != null
&& !form.getResolucaoDiretoria().equals("")) {
FiltroContratoParcelamentoRD filtroContratoParcelamentoRD = new FiltroContratoParcelamentoRD();
filtroContratoParcelamentoRD.adicionarParametro(new ParametroSimples(
FiltroContratoParcelamentoRD.NUMERO, form.getResolucaoDiretoria()));
Collection colecaoContratoParcelamentoRD = fachada.pesquisar(filtroContratoParcelamentoRD, ContratoParcelamentoRD.class.getName());
if (colecaoContratoParcelamentoRD != null && !colecaoContratoParcelamentoRD.isEmpty()) {
contratoParcelamento.setResolucaoDiretoria(
(ContratoParcelamentoRD) Util.retonarObjetoDeColecao(colecaoContratoParcelamentoRD));
} else {
contratoParcelamento.setResolucaoDiretoria(null);
}
} else {
contratoParcelamento.setResolucaoDiretoria(null);
}
if (form.getIndicadorDebitoAcresc() != null
&& !form.getIndicadorDebitoAcresc().equals("")) {
contratoParcelamento.setIndicadorDebitosAcrescimos(
new Short(form.getIndicadorDebitoAcresc()));
} else {
contratoParcelamento.setIndicadorDebitosAcrescimos(null);
}
if (form.getIndicadorParcelJuros() != null
&& !form.getIndicadorParcelJuros().equals("")) {
contratoParcelamento.setIndicadorParcelamentoJuros(
new Short(form.getIndicadorParcelJuros()));
} else {
contratoParcelamento.setIndicadorParcelamentoJuros(null);
}
if (form.getIndicadorInfoVlParcel() != null
&& !form.getIndicadorInfoVlParcel().equals("")) {
contratoParcelamento.setIndicadorPermiteInformarValorParcel(
new Short(form.getIndicadorInfoVlParcel()));
} else {
contratoParcelamento.setIndicadorPermiteInformarValorParcel(null);
}
if (form.getFormaPgto() != null
&& !form.getFormaPgto().equals("")) {
FiltroCobrancaForma filtroCobrancaForma = new FiltroCobrancaForma();
filtroCobrancaForma.adicionarParametro(new ParametroSimples(
FiltroCobrancaForma.ID, form.getFormaPgto()));
Collection colecaoCobrancaForma = fachada.pesquisar(filtroCobrancaForma, CobrancaForma.class.getName());
if (colecaoCobrancaForma != null && !colecaoCobrancaForma.isEmpty()) {
contratoParcelamento.setCobrancaForma(
(CobrancaForma) Util.retonarObjetoDeColecao(colecaoCobrancaForma));
} else {
contratoParcelamento.setCobrancaForma(null);
}
} else {
contratoParcelamento.setCobrancaForma(null);
}
if (form.getDataVencimentoPrimParcela() != null
&& !form.getDataVencimentoPrimParcela().equals("")) {
contratoParcelamento.setDataVencimentoPrimParcela(
Util.converteStringParaDate(form.getDataVencimentoPrimParcela()));
} else {
contratoParcelamento.setDataVencimentoPrimParcela(null);
}
if (form.getPacerlaAdd() != null
&& !form.getPacerlaAdd().equals("")) {
contratoParcelamento.setNumeroPrestacoes(
new Integer(form.getPacerlaAdd()));
} else {
contratoParcelamento.setNumeroPrestacoes(null);
}
if (form.getTaxaJurosAdd() != null
&& !form.getTaxaJurosAdd().equals("")) {
String juros = form.getTaxaJurosAdd().replace(".", ",");
juros = juros.replace(",", ".");
BigDecimal jurosBigDec = new BigDecimal(juros);
contratoParcelamento.setTaxaJuros(jurosBigDec);
} else {
contratoParcelamento.setTaxaJuros(null);
}
return contratoParcelamento;
}
/**
* Carrega no form os valores do contrato de parcelamento
* */
private void atualizarValoresForm(HttpSession sessao,
AtualizarContratoParcelamentoPorClienteActionForm form){
ContratoParcelamento contratoParcelamento = (ContratoParcelamento) sessao.getAttribute("contratoAtualizar");
// 1� aba
if (contratoParcelamento.getNumero() != null
&& !contratoParcelamento.getNumero().equals("")) {
form.setNumeroContrato(contratoParcelamento.getNumero());
} else {
form.setNumeroContrato(null);
}
if (contratoParcelamento.getContratoAnterior() != null
&& contratoParcelamento.getContratoAnterior().getNumero() != null) {
form.setNumeroContratoAnt(contratoParcelamento.getContratoAnterior().getNumero());
} else {
form.setNumeroContratoAnt(null);
}
if (contratoParcelamento.getRelacaoAnterior() != null
&& contratoParcelamento.getRelacaoAnterior().getId() != null) {
form.setRelacaoAnterior(contratoParcelamento.getRelacaoAnterior().getId().toString());
} else {
form.setRelacaoAnterior(null);
}
if (contratoParcelamento.getDataContrato() != null) {
form.setDataContrato(
Util.formatarData(contratoParcelamento.getDataContrato()));
} else {
form.setDataContrato(null);
}
if (contratoParcelamento.getUsuarioResponsavel() != null
&& contratoParcelamento.getUsuarioResponsavel().getLogin() != null) {
form.setLoginUsuario(contratoParcelamento.getUsuarioResponsavel().getLogin());
form.setNomeUsuario(contratoParcelamento.getUsuarioResponsavel().getNomeUsuario());
sessao.setAttribute("usuarioEncontrado","true");
} else {
form.setLoginUsuario(null);
form.setNomeUsuario(null);
}
if (contratoParcelamento.getRelacaoCliente() != null
&& contratoParcelamento.getRelacaoCliente().getId() != null) {
form.setRelacaoCliente(contratoParcelamento.getRelacaoCliente().getId().toString());
} else {
form.setRelacaoCliente(null);
}
if (contratoParcelamento.getAnoMesDebitoInicio() != null
&& contratoParcelamento.getAnoMesDebitoInicio().compareTo(new Integer(0)) != 0) {
form.setAnoMesDebitoInicio(
Util.formatarAnoMesParaMesAno(contratoParcelamento.getAnoMesDebitoInicio()));
} else {
form.setAnoMesDebitoInicio(null);
}
if (contratoParcelamento.getAnoMesDebitoFinal() != null
&& contratoParcelamento.getAnoMesDebitoFinal().compareTo(new Integer(0)) != 0) {
form.setAnoMesDebitoFinal(
Util.formatarAnoMesParaMesAno(contratoParcelamento.getAnoMesDebitoFinal()));
} else {
form.setAnoMesDebitoFinal(null);
}
if (contratoParcelamento.getDataVencimentoInicio() != null) {
form.setDataVencimentoInicio(
Util.formatarData(contratoParcelamento.getDataVencimentoInicio()));
} else {
form.setDataVencimentoInicio(null);
}
if (contratoParcelamento.getDataVencimentoFinal() != null) {
form.setDataVencimentoFinal(
Util.formatarData(contratoParcelamento.getDataVencimentoFinal()));
} else {
form.setDataVencimentoFinal(null);
}
if (contratoParcelamento.getObservacao() != null
&& !contratoParcelamento.getObservacao().equals("")) {
form.setObservacao(contratoParcelamento.getObservacao());
} else {
form.setObservacao(null);
}
//3� aba
if (contratoParcelamento.getResolucaoDiretoria() != null
&& contratoParcelamento.getResolucaoDiretoria().getNumero() != null) {
form.setResolucaoDiretoria(contratoParcelamento.getResolucaoDiretoria().getNumero());
if(contratoParcelamento.getQtdPrestacoesDaRDEscolhida() != null){
form.setParcelaSelecao(contratoParcelamento.getQtdPrestacoesDaRDEscolhida().getId().toString());
}
} else {
form.setResolucaoDiretoria(null);
}
if (contratoParcelamento.getIndicadorDebitosAcrescimos() != null
&& contratoParcelamento.getIndicadorDebitosAcrescimos().compareTo(new Short("0")) != 0) {
form.setIndicadorDebitoAcresc(
contratoParcelamento.getIndicadorDebitosAcrescimos().toString());
} else {
form.setIndicadorDebitoAcresc(null);
}
if (contratoParcelamento.getIndicadorParcelamentoJuros() != null
&& contratoParcelamento.getIndicadorParcelamentoJuros().compareTo(new Short("0")) != 0) {
form.setIndicadorParcelJuros(
contratoParcelamento.getIndicadorParcelamentoJuros().toString());
} else {
form.setIndicadorParcelJuros(null);
}
if (contratoParcelamento.getIndicadorPermiteInformarValorParcel() != null
&& contratoParcelamento.getIndicadorPermiteInformarValorParcel().compareTo(new Short("0")) != 0) {
form.setIndicadorInfoVlParcel(
contratoParcelamento.getIndicadorPermiteInformarValorParcel().toString());
} else {
form.setIndicadorInfoVlParcel(null);
}
if (contratoParcelamento.getCobrancaForma() != null
&& contratoParcelamento.getCobrancaForma().getId() != null) {
form.setFormaPgto(contratoParcelamento.getCobrancaForma().getId().toString());
} else {
form.setFormaPgto(null);
}
if (contratoParcelamento.getDataVencimentoPrimParcela() != null) {
form.setDataVencimentoPrimParcela(
Util.formatarData(contratoParcelamento.getDataVencimentoPrimParcela()));
} else {
form.setDataVencimentoPrimParcela(null);
}
if (contratoParcelamento.getNumeroPrestacoes() != null
&& contratoParcelamento.getNumeroPrestacoes().compareTo(new Integer(0)) != 0) {
form.setPacerlaAdd(
contratoParcelamento.getNumeroPrestacoes().toString());
} else {
form.setPacerlaAdd(null);
}
if (contratoParcelamento.getTaxaJuros() != null
&& contratoParcelamento.getTaxaJuros().compareTo(BigDecimal.ZERO) != 0) {
form.setTaxaJurosAdd(Util.formatarMoedaReal(contratoParcelamento.getTaxaJuros()));
} else {
form.setTaxaJurosAdd(null);
}
}
}