/** * [UC0393] Atualizar Valor de Cobrança do Serviço * * <p>Este caso de uso permite alterar um valor de cobrança de serviço * * @author Rômulo Aurélio - Hugo Loenardo * @date 31/10/2006 - 22/04/2010 * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute( ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("atualizarValorCobrancaServico"); HttpSession sessao = httpServletRequest.getSession(false); AtualizarValorCobrancaServicoActionForm form = (AtualizarValorCobrancaServicoActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); ServicoCobrancaValor servicoCobrancaValor = null; String idServicoCobrancaValor = (String) sessao.getAttribute("idRegistroAtualizar"); if (idServicoCobrancaValor != null && !idServicoCobrancaValor.equals("")) { FiltroServicoCobrancaValor filtroServicoCobrancaValor = new FiltroServicoCobrancaValor(); filtroServicoCobrancaValor.adicionarCaminhoParaCarregamentoEntidade("servicoTipo"); filtroServicoCobrancaValor.adicionarCaminhoParaCarregamentoEntidade( FiltroServicoCobrancaValor.CATEGORIA_ENTIDADE); filtroServicoCobrancaValor.adicionarCaminhoParaCarregamentoEntidade( FiltroServicoCobrancaValor.SUBCATEGORIA_ENTIDADE); filtroServicoCobrancaValor.adicionarParametro( new ParametroSimples(FiltroServicoCobrancaValor.ID, new Integer(idServicoCobrancaValor))); servicoCobrancaValor = (ServicoCobrancaValor) fachada .pesquisar(filtroServicoCobrancaValor, ServicoCobrancaValor.class.getName()) .iterator() .next(); idServicoCobrancaValor = servicoCobrancaValor.getId().toString(); } if (servicoCobrancaValor == null) { FiltroServicoCobrancaValor filtroServicoCobrancaValor = new FiltroServicoCobrancaValor(); filtroServicoCobrancaValor.adicionarCaminhoParaCarregamentoEntidade("servicoTipo"); filtroServicoCobrancaValor.adicionarCaminhoParaCarregamentoEntidade( FiltroServicoCobrancaValor.CATEGORIA_ENTIDADE); filtroServicoCobrancaValor.adicionarCaminhoParaCarregamentoEntidade( FiltroServicoCobrancaValor.SUBCATEGORIA_ENTIDADE); filtroServicoCobrancaValor.adicionarParametro( new ParametroSimples( FiltroServicoCobrancaValor.ID, new Integer(form.getIdServicoCobrancaValor()))); servicoCobrancaValor = (ServicoCobrancaValor) fachada .pesquisar(filtroServicoCobrancaValor, ServicoCobrancaValor.class.getName()) .iterator() .next(); } if ((httpServletRequest.getParameter("manter") != null && httpServletRequest.getParameter("manter").toString().equals("sim")) || (httpServletRequest.getAttribute("manter") != null && httpServletRequest.getAttribute("manter").toString().equals("sim"))) { form.setIdServicoCobrancaValor(servicoCobrancaValor.getId().toString()); form.setTipoServico(servicoCobrancaValor.getServicoTipo().getId().toString()); form.setNomeTipoServico(servicoCobrancaValor.getServicoTipo().getDescricao()); form.setIndicadorMedido("" + servicoCobrancaValor.getIndicadorMedido()); form.setIndicativoTipoSevicoEconomias( servicoCobrancaValor.getIndicadorConsideraEconomias().toString()); String dataVigenciaInicial = Util.formatarData(servicoCobrancaValor.getDataVigenciaInicial()); String dataVigenciaFinal = Util.formatarData(servicoCobrancaValor.getDataVigenciaFinal()); String valorServico = Util.formatarMoedaReal(servicoCobrancaValor.getValor()); if (servicoCobrancaValor.getId() != null && !servicoCobrancaValor.getId().equals("")) { form.setIdServicoCobrancaValor(servicoCobrancaValor.getId().toString()); } if (servicoCobrancaValor.getServicoTipo().getId() != null && !servicoCobrancaValor.getServicoTipo().getId().equals("")) { form.setTipoServico(servicoCobrancaValor.getServicoTipo().getId().toString()); } if (servicoCobrancaValor.getServicoTipo().getDescricao() != null && !servicoCobrancaValor.getServicoTipo().getDescricao().equals("")) { form.setNomeTipoServico(servicoCobrancaValor.getServicoTipo().getDescricao()); } if (servicoCobrancaValor.getSubCategoria() != null && !servicoCobrancaValor.getSubCategoria().getId().equals("-1") && form.getIdSubCategoria() == null || (httpServletRequest.getParameter("desfazer") != null && httpServletRequest.getParameter("desfazer").toString().equalsIgnoreCase("S"))) { form.setIdSubCategoria(servicoCobrancaValor.getSubCategoria().getId().toString()); } if (servicoCobrancaValor.getCategoria() != null && !servicoCobrancaValor.getCategoria().getId().equals("-1") && form.getIdCategoria() == null || (httpServletRequest.getParameter("desfazer") != null && httpServletRequest.getParameter("desfazer").toString().equalsIgnoreCase("S"))) { form.setIdCategoria(servicoCobrancaValor.getCategoria().getId().toString()); } if (servicoCobrancaValor.getHidrometroCapacidade() != null && servicoCobrancaValor.getHidrometroCapacidade().getId() != null && !servicoCobrancaValor.getHidrometroCapacidade().getId().equals("")) { form.setCapacidadeHidrometro( servicoCobrancaValor.getHidrometroCapacidade().getId().toString()); } if (servicoCobrancaValor.getImovelPerfil() != null && servicoCobrancaValor.getImovelPerfil().getId() != null && !servicoCobrancaValor.getImovelPerfil().getId().equals("-1")) { form.setPerfilImovel(servicoCobrancaValor.getImovelPerfil().getId().toString()); form.setIndicadorMedido("" + servicoCobrancaValor.getIndicadorMedido()); } if (servicoCobrancaValor.getSubCategoria() != null && servicoCobrancaValor.getSubCategoria().getId() != null && !servicoCobrancaValor.getSubCategoria().getId().equals("-1")) { form.setIdSubCategoria(servicoCobrancaValor.getSubCategoria().getId().toString()); } if (servicoCobrancaValor.getValor() != null && !servicoCobrancaValor.getValor().equals("")) { form.setValorServico(valorServico); } if (servicoCobrancaValor.getDataVigenciaInicial() != null && !servicoCobrancaValor.getDataVigenciaInicial().equals("")) { form.setDataVigenciaInicial(dataVigenciaInicial); } if (servicoCobrancaValor.getDataVigenciaFinal() != null && !servicoCobrancaValor.getDataVigenciaFinal().equals("")) { form.setDataVigenciaFinal(dataVigenciaFinal); } if (servicoCobrancaValor.getIndicadorConsideraEconomias() != null && !servicoCobrancaValor.getIndicadorConsideraEconomias().equals("")) { form.setIndicativoTipoSevicoEconomias( servicoCobrancaValor.getIndicadorConsideraEconomias().toString()); } if (servicoCobrancaValor.getQuantidadeEconomiasInicial() != null && !servicoCobrancaValor.getQuantidadeEconomiasInicial().equals("")) { form.setQuantidadeEconomiasInicial( servicoCobrancaValor.getQuantidadeEconomiasInicial().toString()); } if (servicoCobrancaValor.getQuantidadeEconomiasFinal() != null && !servicoCobrancaValor.getQuantidadeEconomiasFinal().equals("")) { form.setQuantidadeEconomiasFinal( servicoCobrancaValor.getQuantidadeEconomiasFinal().toString()); } if (servicoCobrancaValor.getIndicadorGeracaoDebito() != null && !servicoCobrancaValor.getIndicadorConsideraEconomias().toString().equals("")) { form.setIndicadorGeracaoDebito(servicoCobrancaValor.getIndicadorGeracaoDebito().toString()); } } Date timeStamp = servicoCobrancaValor.getUltimaAlteracao(); sessao.setAttribute("idServicoCobrancaValor", idServicoCobrancaValor); sessao.setAttribute("servicoCobrancaValor", servicoCobrancaValor); sessao.setAttribute("timeStamp", timeStamp); sessao.setAttribute("servicoTipo", servicoCobrancaValor.getServicoTipo()); sessao.setAttribute("subCategoria", servicoCobrancaValor.getSubCategoria()); sessao.setAttribute("imovelPerfil", servicoCobrancaValor.getImovelPerfil()); sessao.setAttribute("indicadorMedido", servicoCobrancaValor.getIndicadorMedido()); sessao.setAttribute("hidrometroCapacidade", servicoCobrancaValor.getHidrometroCapacidade()); sessao.setAttribute("valor", servicoCobrancaValor.getValor()); sessao.setAttribute("dataVigenciaInicial", servicoCobrancaValor.getDataVigenciaInicial()); sessao.setAttribute("dataVigenciaFinal", servicoCobrancaValor.getDataVigenciaFinal()); sessao.setAttribute( "indicadorConsideraEconomias", servicoCobrancaValor.getIndicadorConsideraEconomias()); sessao.setAttribute( "quantidadeEconomiasInicial", servicoCobrancaValor.getQuantidadeEconomiasInicial()); sessao.setAttribute( "quantidadeEconomiasFinal", servicoCobrancaValor.getQuantidadeEconomiasFinal()); httpServletRequest.setAttribute("idServicoCobrancaValor", form.getIdServicoCobrancaValor()); // Pesquisar Categoria this.pesquisarCategoria(httpServletRequest, form); // pesquisar SubCategoria this.pesquisarSubCategoria(httpServletRequest, form); if (form.getIndicadorMedido() != null && form.getIndicadorMedido().equals(ConstantesSistema.SIM.toString())) { if ((form.getIdCategoria() != null && !form.getIdCategoria().equals(ConstantesSistema.NUMERO_NAO_INFORMADO + "")) || (form.getIdSubCategoria() != null && !form.getIdSubCategoria().equals(ConstantesSistema.NUMERO_NAO_INFORMADO + ""))) { sessao.setAttribute("capacidadeObrigatoria", "sim"); } else { sessao.setAttribute("capacidadeObrigatoria", "nao"); } } else { sessao.setAttribute("capacidadeObrigatoria", "nao"); } if (form.getIndicadorGeracaoDebito() != null && form.getIndicadorGeracaoDebito().equals(ConstantesSistema.SIM.toString())) { sessao.setAttribute("valorObrigatorio", "sim"); } else { sessao.setAttribute("valorObrigatorio", "nao"); } return retorno; }
/** * [UC0355] Efetuar Corte de Ligação de Água * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return forward */ public ActionForward execute( ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("efetuarCorteLigacaoAgua"); HttpSession sessao = httpServletRequest.getSession(false); EfetuarCorteLigacaoAguaActionForm form = (EfetuarCorteLigacaoAguaActionForm) actionForm; Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); // Veio de Encerrar OS Boolean veioEncerrarOS = null; if (httpServletRequest.getAttribute("veioEncerrarOS") != null) { veioEncerrarOS = Boolean.TRUE; } else { if (form.getVeioEncerrarOS() != null && !form.getVeioEncerrarOS().equals("")) { if (form.getVeioEncerrarOS().toLowerCase().equals("true")) { veioEncerrarOS = veioEncerrarOS = Boolean.TRUE; } else { veioEncerrarOS = veioEncerrarOS = Boolean.FALSE; } } else { veioEncerrarOS = Boolean.FALSE; } } // Seta Coleções getMotivoCorteCollection(sessao); getTipoCorteCollection(sessao); getMotivoNaoCobrancaCollection(sessao); String idOrdemServico = null; if (form.getIdOrdemServico() != null) { idOrdemServico = form.getIdOrdemServico(); } else { idOrdemServico = (String) httpServletRequest.getAttribute("veioEncerrarOS"); form.setDataCorte((String) httpServletRequest.getAttribute("dataEncerramento")); sessao.setAttribute( "caminhoRetornoIntegracaoComercial", httpServletRequest.getAttribute("caminhoRetornoIntegracaoComercial")); } if (httpServletRequest.getAttribute("semMenu") != null) { sessao.setAttribute("semMenu", "SIM"); } else { sessao.removeAttribute("semMenu"); } // Testa OS if (idOrdemServico != null && !idOrdemServico.trim().equals("")) { OrdemServico ordemServico = this.getFachada().recuperaOSPorId(new Integer(idOrdemServico)); if (ordemServico != null) { sessao.setAttribute("ordemServico", ordemServico); // Valida Exibição de Corte de Ligação de Água this.getFachada().validarExibirCorteLigacaoAgua(ordemServico, veioEncerrarOS); form.setVeioEncerrarOS("" + veioEncerrarOS); // OS form.setIdOrdemServico(ordemServico.getId() + ""); form.setNomeOrdemServico(ordemServico.getServicoTipo().getDescricao()); // Preencher dados do imovel this.preencherDadosImovel(form, ordemServico); // Preencher dados do Corte da Ligação this.pesquisarDadosCorteLigacao(sessao, form, ordemServico); // Preencher dados da Geração // Tipo Débito if (ordemServico.getServicoTipo().getDebitoTipo() != null) { form.setIdTipoDebito(ordemServico.getServicoTipo().getDebitoTipo().getId() + ""); form.setDescricaoTipoDebito( ordemServico.getServicoTipo().getDebitoTipo().getDescricao() + ""); } else { form.setIdTipoDebito(""); form.setDescricaoTipoDebito(""); } // [FS0013] - Alteração de Valor this.permitirAlteracaoValor(ordemServico.getServicoTipo(), form); String calculaValores = httpServletRequest.getParameter("calculaValores"); BigDecimal valorDebito = new BigDecimal(0); SistemaParametro sistemaParametro = this.getFachada().pesquisarParametrosDoSistema(); Integer qtdeParcelas = null; if (calculaValores != null && calculaValores.equals("S")) { // [UC0186] - Calcular Prestação BigDecimal taxaJurosFinanciamento = null; qtdeParcelas = new Integer(form.getQuantidadeParcelas()); if (ordemServico.getServicoTipo().getIndicadorCobrarJuros() == ConstantesSistema.SIM.shortValue() && qtdeParcelas.intValue() != 1) { taxaJurosFinanciamento = sistemaParametro.getPercentualTaxaJurosFinanciamento(); } else { taxaJurosFinanciamento = new BigDecimal(0); } BigDecimal valorPrestacao = null; if (taxaJurosFinanciamento != null) { valorDebito = new BigDecimal(form.getValorDebito().replace(",", ".")); String percentualCobranca = form.getPercentualCobranca(); if (percentualCobranca.equals("70")) { valorDebito = valorDebito.multiply(new BigDecimal(0.7)); } else if (percentualCobranca.equals("50")) { valorDebito = valorDebito.multiply(new BigDecimal(0.5)); } valorPrestacao = this.getFachada() .calcularPrestacao( taxaJurosFinanciamento, qtdeParcelas, valorDebito, new BigDecimal("0.00")); valorPrestacao.setScale(2, BigDecimal.ROUND_HALF_UP); } if (valorPrestacao != null) { String valorPrestacaoComVirgula = Util.formataBigDecimal(valorPrestacao, 2, true); form.setValorParcelas(valorPrestacaoComVirgula); } else { form.setValorParcelas("0,00"); } } else { valorDebito = this.getFachada() .obterValorDebito( ordemServico.getServicoTipo().getId(), ordemServico.getImovel().getId(), new Short(LigacaoTipo.LIGACAO_AGUA + "")); if (valorDebito != null) { String valorDebitoComVirgula = valorDebito + ""; form.setValorDebito(valorDebitoComVirgula.replace(".", ",")); } else { form.setValorDebito("0,00"); } } form.setQtdeMaxParcelas(sistemaParametro.getNumeroMaximoParcelasFinanciamento() + ""); if (ordemServico.getServicoNaoCobrancaMotivo() != null) { form.setMotivoNaoCobranca(ordemServico.getServicoNaoCobrancaMotivo().getId().toString()); } if (ordemServico.getServicoNaoCobrancaMotivo() != null) { form.setPercentualCobranca(ordemServico.getPercentualCobranca().toString()); } // Verificar permissão especial boolean temPermissaoMotivoNaoCobranca = this.getFachada().verificarPermissaoInformarMotivoNaoCobranca(usuarioLogado); if (temPermissaoMotivoNaoCobranca) { httpServletRequest.setAttribute( "permissaoMotivoNaoCobranca", temPermissaoMotivoNaoCobranca); } else { form.setPercentualCobranca("100"); form.setQuantidadeParcelas("1"); form.setValorParcelas(Util.formataBigDecimal(valorDebito, 2, true)); } sessao.setAttribute("osEncontrada", "true"); } else { sessao.removeAttribute("osEncontrada"); sessao.removeAttribute("ordemServico"); form.setNomeOrdemServico("Ordem de Serviço inexistente"); form.setIdOrdemServico(""); } } else { httpServletRequest.setAttribute("nomeCampo", "idOrdemServico"); form.reset(); } return retorno; }