package gcom.gui.atendimentopublico.hidrometro; import gcom.atendimentopublico.bean.IntegracaoComercialHelper; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.ServicoNaoCobrancaMotivo; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.interceptor.RegistradorOperacao; import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico; import gcom.micromedicao.hidrometro.HidrometroLocalInstalacao; import gcom.micromedicao.hidrometro.HidrometroProtecao; import gcom.seguranca.acesso.Operacao; import gcom.seguranca.acesso.OperacaoEfetuada; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAcao; import gcom.seguranca.acesso.usuario.UsuarioAcaoUsuarioHelper; import gcom.util.ConstantesSistema; import java.math.BigDecimal; import java.util.Date; 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; /** * Descri��o da classe * * @author R�mulo Aur�lio * @date 28/06/2006 */ public class EfetuarRemanejamentoHidrometroAction extends GcomAction { /** * [UC0365] Efetuar Remanejamento de Hidr�metro * * Este caso de uso permite efetuar o remanejamento de hidrometro, sendo * chamado pela funcionalidade que encerra a execu��o da ordem de servi�o ou * chamada diretamente do Menu. * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); EfetuarRemanejamentoHidrometroActionForm efetuarRemanejamentoHidrometroActionForm = (EfetuarRemanejamentoHidrometroActionForm) actionForm; // Usuario logado no sistema Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); /* * -------------[UC0107] Registrar Transa��o----------------------- * */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_REMANEJAMENTO_HIDROMETRO_EFETUAR, new UsuarioAcaoUsuarioHelper(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_REMANEJAMENTO_HIDROMETRO_EFETUAR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); // ----------------[UC0107] -Fim- Registrar Transa��o----------- String localInstalacao = efetuarRemanejamentoHidrometroActionForm .getLocalInstalacao(); String protecao = efetuarRemanejamentoHidrometroActionForm .getProtecao(); String cavalete = efetuarRemanejamentoHidrometroActionForm .getTipoCavalete(); String idServicoMotivoNaoCobranca = efetuarRemanejamentoHidrometroActionForm .getMotivoNaoCobranca(); String valorPercentual = efetuarRemanejamentoHidrometroActionForm .getPercentualCobranca(); String qtdParcelas = efetuarRemanejamentoHidrometroActionForm .getQuantidadeParcelas(); OrdemServico ordemServico = (OrdemServico) sessao .getAttribute("ordemServico"); Imovel imovel = null; if (ordemServico.getRegistroAtendimento() != null && ordemServico.getRegistroAtendimento().getImovel() != null) { imovel = ordemServico.getRegistroAtendimento().getImovel(); } else if (ordemServico.getImovel() != null) { imovel = ordemServico.getImovel(); } HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = (HidrometroInstalacaoHistorico) sessao .getAttribute("hidrometroInstalacaoHistorico"); HidrometroLocalInstalacao hidrometroLocalInstalacao = new HidrometroLocalInstalacao(); hidrometroLocalInstalacao.setId(new Integer(localInstalacao)); HidrometroProtecao hidrometroProtecao = new HidrometroProtecao(); hidrometroProtecao.setId(new Integer(protecao)); hidrometroInstalacaoHistorico .setHidrometroLocalInstalacao(hidrometroLocalInstalacao); hidrometroInstalacaoHistorico.setHidrometroProtecao(hidrometroProtecao); hidrometroInstalacaoHistorico.setUltimaAlteracao(new Date()); hidrometroInstalacaoHistorico.setIndicadorExistenciaCavalete(new Short( cavalete)); // regitrando operacao hidrometroInstalacaoHistorico.setOperacaoEfetuada(operacaoEfetuada); hidrometroInstalacaoHistorico.adicionarUsuario(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(hidrometroInstalacaoHistorico); // if (ordemServico != null // && efetuarRemanejamentoHidrometroActionForm.getVeioEncerrarOS() // .equalsIgnoreCase("true") // && efetuarRemanejamentoHidrometroActionForm.getIdTipoDebito() != // null) { // // ServicoNaoCobrancaMotivo servicoNaoCobrancaMotivo = null; // // ordemServico.setIndicadorComercialAtualizado(new Short("1")); // // if (efetuarRemanejamentoHidrometroActionForm.getValorDebito() != // null) { // ordemServico // .setValorAtual(new BigDecimal( // efetuarRemanejamentoHidrometroActionForm // .getValorDebito().toString().replace( // ",", "."))); // } // // if (idServicoMotivoNaoCobranca != null) { // servicoNaoCobrancaMotivo = new ServicoNaoCobrancaMotivo(); // servicoNaoCobrancaMotivo.setId(new Integer( // idServicoMotivoNaoCobranca)); // } // ordemServico.setServicoNaoCobrancaMotivo(servicoNaoCobrancaMotivo); // // if (valorPercentual != null) { // ordemServico.setPercentualCobranca(new BigDecimal( // efetuarRemanejamentoHidrometroActionForm // .getPercentualCobranca())); // } // // if (idServicoMotivoNaoCobranca != null) { // servicoNaoCobrancaMotivo = new ServicoNaoCobrancaMotivo(); // servicoNaoCobrancaMotivo.setId(new Integer( // idServicoMotivoNaoCobranca)); // } // ordemServico.setServicoNaoCobrancaMotivo(servicoNaoCobrancaMotivo); // // if (valorPercentual != null) { // ordemServico.setPercentualCobranca(new BigDecimal( // efetuarRemanejamentoHidrometroActionForm // .getPercentualCobranca())); // } // // BigDecimal valorAtual = new BigDecimal(0); // if (efetuarRemanejamentoHidrometroActionForm.getValorDebito() != // null) { // valorAtual = new BigDecimal( // efetuarRemanejamentoHidrometroActionForm // .getValorDebito().toString().replace(",", ".")); // } // // if (ordemServico.getServicoTipo().getDebitoTipo() != null // && (ordemServico.getServicoNaoCobrancaMotivo() == null || // ordemServico // .getServicoNaoCobrancaMotivo().getId() == // ConstantesSistema.NUMERO_NAO_INFORMADO)) { // fachada.gerarDebitoOrdemServico(ordemServico.getId(), // ordemServico.getServicoTipo().getDebitoTipo().getId(), // valorAtual, new Integer( // efetuarRemanejamentoHidrometroActionForm // .getQuantidadeParcelas()).intValue()); // } // } BigDecimal valorAtual = new BigDecimal(0); if (ordemServico != null && efetuarRemanejamentoHidrometroActionForm.getIdTipoDebito() != null) { ServicoNaoCobrancaMotivo servicoNaoCobrancaMotivo = null; ordemServico.setIndicadorComercialAtualizado(ConstantesSistema.SIM); if (efetuarRemanejamentoHidrometroActionForm.getValorDebito() != null) { String valorDebito = efetuarRemanejamentoHidrometroActionForm .getValorDebito().toString().replace(".", ""); valorDebito = valorDebito.replace(",", "."); valorAtual = new BigDecimal(valorDebito); ordemServico.setValorAtual(valorAtual); } if (idServicoMotivoNaoCobranca != null && !idServicoMotivoNaoCobranca .equals("-1")) { servicoNaoCobrancaMotivo = new ServicoNaoCobrancaMotivo(); servicoNaoCobrancaMotivo.setId(new Integer( idServicoMotivoNaoCobranca)); } ordemServico.setServicoNaoCobrancaMotivo(servicoNaoCobrancaMotivo); if (valorPercentual != null) { ordemServico.setPercentualCobranca(new BigDecimal( efetuarRemanejamentoHidrometroActionForm .getPercentualCobranca())); } ordemServico.setUltimaAlteracao(new Date()); } IntegracaoComercialHelper integracaoComercialHelper = new IntegracaoComercialHelper(); integracaoComercialHelper.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico); integracaoComercialHelper.setImovel(imovel); integracaoComercialHelper.setOrdemServico(ordemServico); integracaoComercialHelper.setQtdParcelas(qtdParcelas); if(efetuarRemanejamentoHidrometroActionForm.getVeioEncerrarOS().equalsIgnoreCase("FALSE")){ integracaoComercialHelper.setVeioEncerrarOS(Boolean.FALSE); fachada.efetuarRemanejamentoHidrometro(integracaoComercialHelper); }else{ integracaoComercialHelper.setVeioEncerrarOS(Boolean.TRUE); sessao.setAttribute("integracaoComercialHelper", integracaoComercialHelper); if(sessao.getAttribute("semMenu") == null){ retorno = actionMapping.findForward("encerrarOrdemServicoAction"); }else{ retorno = actionMapping.findForward("encerrarOrdemServicoPopupAction"); } sessao.removeAttribute("caminhoRetornoIntegracaoComercial"); } /*fachada.efetuarRemanejamentoHidrometro(hidrometroInstalacaoHistorico, ordemServico, efetuarRemanejamentoHidrometroActionForm .getVeioEncerrarOS(), qtdParcelas);*/ if(retorno.getName().equalsIgnoreCase("telaSucesso")){ montarPaginaSucesso(httpServletRequest, "Remanejamento do Hidr�metro no im�vel " + imovel.getId() + " efetuada com sucesso", "Efetuar outro Remanejamento de hidr�metro", "exibirEfetuarRemanejamentoHidrometroAction.do?menu=sim"); } return retorno; } }