package gcom.gui.atendimentopublico.ordemservico; import gcom.atendimentopublico.bean.IntegracaoComercialHelper; import gcom.atendimentopublico.ordemservico.FiltroServicoTipo; import gcom.atendimentopublico.ordemservico.FiltroServicoTipoOperacao; import gcom.atendimentopublico.ordemservico.FiltroTipoServico; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.OrdemServicoBoletim; import gcom.atendimentopublico.ordemservico.OrdemServicoPavimento; import gcom.atendimentopublico.ordemservico.ServicoTipo; import gcom.atendimentopublico.ordemservico.ServicoTipoOperacao; import gcom.atendimentopublico.registroatendimento.AtendimentoMotivoEncerramento; import gcom.atendimentopublico.registroatendimento.AtendimentoRelacaoTipo; import gcom.atendimentopublico.registroatendimento.RegistroAtendimento; import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoUnidade; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.bean.ObterDadosRegistroAtendimentoHelper; import gcom.cadastro.imovel.PavimentoCalcada; import gcom.cadastro.imovel.PavimentoRua; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Map; 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 encerra OS caso precise * entrar na tela * * @author S�vio Luiz * @created 18/09/2006 */ public class EncerrarOrdemServicoPopupAction extends GcomAction { /** * Execute do Consultar OS Popup * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return forward */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("encerrarOrdemServicoPopup"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); EncerrarOrdemServicoActionForm encerrarOrdemServicoActionForm = (EncerrarOrdemServicoActionForm) actionForm; String valorConfirmacao = httpServletRequest.getParameter("confirmado"); OrdemServicoBoletim ordemServicoBoletim = null; //////////////////////////////////////////////////////////////////////////////////////////////// if ( "confirmaBoletimValorZero".equals( httpServletRequest.getParameter("tipoRelatorio") ) ){ sessao.setAttribute( "confirmaBoletimValorZero", httpServletRequest.getParameter( "confirmado" ) ); } String valorConfirmacaoBoletimValorZero = ( String ) sessao.getAttribute( "confirmaBoletimValorZero" ); /////////////////////////////////////////////////////////////////////////////////////////////// Short indicadorServicoAceito = null; if(encerrarOrdemServicoActionForm.getIndicadorServicoAceito() != null && !encerrarOrdemServicoActionForm.getIndicadorServicoAceito().equals("")){ indicadorServicoAceito = new Short(encerrarOrdemServicoActionForm.getIndicadorServicoAceito()); } /* * // caso j� tenha sido perguntado se deseja gerar OS fiscaliza��o e a // * pessoa escolheu que n�o quer ent�o n�o entra nesse if if * (sessao.getAttribute("canceladoOSFiscalizacao") == null || * sessao.getAttribute("canceladoOSFiscalizacao").equals("")) { // parte * de ordem de servi�o de fiscaliza��o if ((osFiscalizacao == null || * osFiscalizacao.equals("")) && (valorConfirmacao == null || * valorConfirmacao.equals(""))) { * httpServletRequest.setAttribute("caminhoActionConclusao", * "/gsan/encerrarOrdemServicoPopupAction.do"); * httpServletRequest.setAttribute("cancelamento", "TRUE"); * httpServletRequest.setAttribute("nomeBotao1", "Sim"); * httpServletRequest.setAttribute("nomeBotao2", "N�o"); * * return montarPaginaConfirmacao("atencao.gerar_OS_Fiscalizacao", * httpServletRequest, actionMapping); } else { if ((osFiscalizacao == * null || osFiscalizacao.equals("")) && valorConfirmacao.equals("ok")) { * retorno = actionMapping * .findForward("exibirEncerrarOrdemPopupServico"); return retorno; } * else { valorConfirmacao = null; * sessao.setAttribute("canceladoOSFiscalizacao", "SIM"); } } } */ // parte da integra��o com o sistema comercial IntegracaoComercialHelper integracaoComercialHelper = (IntegracaoComercialHelper) sessao.getAttribute("integracaoComercialHelper"); if (valorConfirmacao == null || valorConfirmacao.equals("")) { // valida enter String idServicoTipo = encerrarOrdemServicoActionForm.getIdServicoTipo(); String descricaoServicoTipo = encerrarOrdemServicoActionForm.getDescricaoServicoTipo(); Collection colecaoManterDadosAtividadesOrdemServicoHelper = (Collection) sessao.getAttribute("colecaoManutencao"); if ((idServicoTipo != null && !idServicoTipo.equals("")) && (descricaoServicoTipo == null || descricaoServicoTipo.equals(""))) { FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples(FiltroServicoTipo.ID, idServicoTipo)); filtroServicoTipo.adicionarParametro(new ParametroSimples(FiltroServicoTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection servicoTipoEncontrado = fachada.pesquisar(filtroServicoTipo, ServicoTipo.class.getName()); if (servicoTipoEncontrado != null && !servicoTipoEncontrado.isEmpty()) { ServicoTipo servicoTipo = (ServicoTipo) Util.retonarObjetoDeColecao(servicoTipoEncontrado); // O servi�o tipo foi encontrado encerrarOrdemServicoActionForm.setIdServicoTipo("" + servicoTipo.getId()); encerrarOrdemServicoActionForm.setDescricaoServicoTipo(servicoTipo.getDescricao()); } else { throw new ActionServletException("atencao.label_inexistente", null, "Servi�o Tipo"); } } // caso seja a primeira vez if (integracaoComercialHelper == null || integracaoComercialHelper.equals("")) { // [FS0002] - Validar Tipo Servi�o // [FS0004] - Verificar preenchimento dos campos // [FS0007] - Validar Data de Encerramento // [FS0008] - Validar Data do roteiro fachada.validarCamposEncerrarOSPopup( encerrarOrdemServicoActionForm.getIndicadorExecucao(), encerrarOrdemServicoActionForm.getNumeroOS(), encerrarOrdemServicoActionForm.getIdMotivoEncerramento(), encerrarOrdemServicoActionForm.getDataEncerramento(), colecaoManterDadosAtividadesOrdemServicoHelper, encerrarOrdemServicoActionForm.getTipoServicoReferenciaId(), encerrarOrdemServicoActionForm.getIndicadorPavimento(), encerrarOrdemServicoActionForm.getTipoServicoOSId(), encerrarOrdemServicoActionForm.getIdTipoRetornoReferida(), encerrarOrdemServicoActionForm.getIndicadorDeferimento(), encerrarOrdemServicoActionForm.getIndicadorTrocaServico(), idServicoTipo, encerrarOrdemServicoActionForm.getDataRoteiro(), encerrarOrdemServicoActionForm.getNumeroRA(), encerrarOrdemServicoActionForm.getIndicadorVistoriaServicoTipo(), encerrarOrdemServicoActionForm.getCodigoRetornoVistoriaOs(), encerrarOrdemServicoActionForm.getIndicadorDiagnostico(), encerrarOrdemServicoActionForm.getObservacaoEncerramento(), usuarioLogado, encerrarOrdemServicoActionForm.getIdPavimentoRua(), encerrarOrdemServicoActionForm.getMetragemPavimentoRua(), encerrarOrdemServicoActionForm.getIdPavimentoCalcada(), encerrarOrdemServicoActionForm.getMetragemPavimentoCalcada(), encerrarOrdemServicoActionForm.getIdUnidadeRepavimentadora()); Map validacao = validarInformacoesBoletimMedicao( new Integer(encerrarOrdemServicoActionForm.getNumeroOS()), encerrarOrdemServicoActionForm); ordemServicoBoletim = (OrdemServicoBoletim)validacao.get("ordemServicoBoletim"); Boolean exibirMsgConfirmacao = (Boolean)validacao.get("exibirMsgConfirmacao"); if(exibirMsgConfirmacao && (valorConfirmacaoBoletimValorZero == null || !valorConfirmacaoBoletimValorZero.equalsIgnoreCase("ok"))){ httpServletRequest.setAttribute("caminhoActionConclusao","/gsan/encerrarOrdemServicoPopupAction.do"); // httpServletRequest.setAttribute("cancelamento", "TRUE"); httpServletRequest.setAttribute("nomeBotao1", "Sim"); // httpServletRequest.setAttribute("nomeBotao2", "N�o"); httpServletRequest.setAttribute("tipoRelatorio", "confirmaBoletimValorZero"); return montarPaginaConfirmacao("atencao.encerrar_OS_boletim",httpServletRequest, actionMapping); } } // indicador execu��o seja diferente de nulo if (encerrarOrdemServicoActionForm.getIndicadorExecucao() != null && !encerrarOrdemServicoActionForm.getIndicadorExecucao().equals("")) { short indicadorExecucao = Short.parseShort(encerrarOrdemServicoActionForm.getIndicadorExecucao()); Integer numeroOS = Util .converterStringParaInteger(encerrarOrdemServicoActionForm.getNumeroOS()); Date dataEncerramento = null; if(encerrarOrdemServicoActionForm.getHoraEncerramento() != null && !encerrarOrdemServicoActionForm.getHoraEncerramento().equals("")){ dataEncerramento = Util.converteStringParaDateHora(encerrarOrdemServicoActionForm .getDataEncerramento()+ " "+ encerrarOrdemServicoActionForm.getHoraEncerramento() + ":00"); }else{ dataEncerramento = Util.converteStringParaDateHora( encerrarOrdemServicoActionForm.getDataEncerramento()+ " " + Util.formatarHoraSemSegundos(new Date()) + ":00"); } Date dataUltimaAlteracao = encerrarOrdemServicoActionForm.getUltimaAlteracao(); // indicador execu��o seja igual a n�o(2) if (indicadorExecucao == AtendimentoMotivoEncerramento.INDICADOR_EXECUCAO_NAO) { OrdemServico osFiscalizacao = null; if( sessao.getAttribute("ordemServicoFiscalizacao") !=null ){ osFiscalizacao = (OrdemServico) sessao.getAttribute("ordemServicoFiscalizacao"); } // [SB0001] - Encerrar sem execu��o fachada.encerrarOSSemExecucao(numeroOS, dataEncerramento, usuarioLogado, encerrarOrdemServicoActionForm.getIdMotivoEncerramento(), dataUltimaAlteracao, encerrarOrdemServicoActionForm.getObservacaoEncerramento(), osFiscalizacao, encerrarOrdemServicoActionForm.getIndicadorVistoriaServicoTipo(), encerrarOrdemServicoActionForm.getCodigoRetornoVistoriaOs(), ordemServicoBoletim,indicadorServicoAceito); } else { // indicador execu��o seja igual a sim(1) if (indicadorExecucao == AtendimentoMotivoEncerramento.INDICADOR_EXECUCAO_SIM) { if (encerrarOrdemServicoActionForm.getIndicadorAtualizaComercial() != null && !encerrarOrdemServicoActionForm.getIndicadorAtualizaComercial().equals("")) { Short indicadorComercialAtualiza = new Short( encerrarOrdemServicoActionForm.getIndicadorAtualizaComercial()); if (indicadorComercialAtualiza.equals(ServicoTipo.INDICADOR_ATUALIZA_COMERCIAL_SIM)) { // caso n�o exista o objeto helper na sess�o // ent�o � a primeira vez if (integracaoComercialHelper == null || integracaoComercialHelper.equals("")) { // caso exista tipo de servi�o if (encerrarOrdemServicoActionForm.getTipoServicoOSId() != null && !encerrarOrdemServicoActionForm.getTipoServicoOSId().equals("")) { FiltroServicoTipoOperacao filtroServicoTipoOperacao = new FiltroServicoTipoOperacao(); filtroServicoTipoOperacao.adicionarCaminhoParaCarregamentoEntidade("operacao"); filtroServicoTipoOperacao.adicionarParametro(new ParametroSimples( FiltroServicoTipoOperacao.ID_SERVICO_TIPO, encerrarOrdemServicoActionForm.getTipoServicoOSId())); Collection colecaoServicoTipoOperacao = fachada.pesquisar( filtroServicoTipoOperacao, ServicoTipoOperacao.class.getName()); // caso exista uma funcionalidade // assiciada // ao servi�o tipo if (colecaoServicoTipoOperacao != null && !colecaoServicoTipoOperacao.isEmpty()) { ServicoTipoOperacao servicoTipoOperacao = (ServicoTipoOperacao) Util .retonarObjetoDeColecao(colecaoServicoTipoOperacao); String caminhoOperacao = servicoTipoOperacao.getOperacao().getCaminhoUrl(); // caso exista o caminho da opera��o if (caminhoOperacao != null && !caminhoOperacao.equals("")) { int tamanhoOperacao = caminhoOperacao.length(); // seta o caminho no mapeamento // para ser chamado String caminhoRetorno = caminhoOperacao.substring( 0, tamanhoOperacao - 3); httpServletRequest.setAttribute("veioEncerrarOSFuncManterRA", encerrarOrdemServicoActionForm.getNumeroOS()); httpServletRequest.setAttribute("veioEncerrarOS", encerrarOrdemServicoActionForm.getNumeroOS() ); httpServletRequest.setAttribute("semMenu","true" ); httpServletRequest.setAttribute("dataEncerramento", encerrarOrdemServicoActionForm.getDataEncerramento()); httpServletRequest.setAttribute("caminhoRetornoIntegracaoComercial", "exibirEncerrarOrdemServicoPopupAction.do?retornoConsulta=1"); retorno = actionMapping.findForward(caminhoRetorno); if (retorno == null) { throw new ActionServletException( "atencao.caminho_url_indisponivel"); } else { // caso seja chamado a // integra��o ent�o seta a // OS na sess�o com outro // nome e remove a OS da // sess�o visto que a // integra��o usa o mesmo // nome da OS que est� na // sess�o sessao.setAttribute("osFiscalizacao", sessao.getAttribute("ordemServicoFiscalizacao")); sessao.removeAttribute("ordemServicoFiscalizacao"); } } } } } } } if (retorno.getName().equalsIgnoreCase("encerrarOrdemServicoPopup")) { OrdemServico osFiscalizacao = null; if (integracaoComercialHelper == null || integracaoComercialHelper.equals("") && sessao .getAttribute("ordemServicoFiscalizacao") != null ) { osFiscalizacao = (OrdemServico) sessao.getAttribute("ordemServicoFiscalizacao"); } // caso a os fiscaliza��o n�o esteja na sess�o ent�o // n�o foi para integra��o e ent�o pode pegar o OS mesmo if (sessao.getAttribute("osFiscalizacao") != null && !sessao.getAttribute("osFiscalizacao").equals("")) { osFiscalizacao = (OrdemServico) sessao.getAttribute("osFiscalizacao"); sessao.removeAttribute("osFiscalizacao"); } if ( sessao.getAttribute("ordemServicoFiscalizacao") != null ) { osFiscalizacao = (OrdemServico) sessao.getAttribute("ordemServicoFiscalizacao"); } // se o servi�o tipo referencia seja igual a nulo if (encerrarOrdemServicoActionForm.getTipoServicoReferenciaId() == null || encerrarOrdemServicoActionForm.getTipoServicoReferenciaId().equals("")) { //----------------------------------------------------------------------------------------- // Alterado por Yara Taciane - 29/05/08, por conta do [UC457 - Encerrar Ordem de Servi�o] // 4.2. Caso o indicador de conserto do pavimento de RUA esteja indicado como sim, sistema dever� inserir //a tabela ORDEM_SERVICO_PAVIMENTO, com ORSE_ID da tabela que est� sendo encerrada. // Analista: Fab�ola Ara�jo. OrdemServicoPavimento ordemServicoPavimento = new OrdemServicoPavimento(); if(!"".equals(encerrarOrdemServicoActionForm.getIdPavimentoRua()) && encerrarOrdemServicoActionForm.getIdPavimentoRua()!=null){ PavimentoRua pavimentoRua = new PavimentoRua(); pavimentoRua.setId(Util.converterStringParaInteger(encerrarOrdemServicoActionForm.getIdPavimentoRua())); ordemServicoPavimento.setPavimentoRua(pavimentoRua); } if(!"".equals(encerrarOrdemServicoActionForm.getMetragemPavimentoRua()) && encerrarOrdemServicoActionForm.getMetragemPavimentoRua()!=null){ ordemServicoPavimento.setAreaPavimentoRua( Util.formatarMoedaRealparaBigDecimal( encerrarOrdemServicoActionForm.getMetragemPavimentoRua() )); } if(!"".equals(encerrarOrdemServicoActionForm.getIdPavimentoCalcada()) && encerrarOrdemServicoActionForm.getIdPavimentoCalcada()!=null){ PavimentoCalcada pavimentoCalcada = new PavimentoCalcada(); pavimentoCalcada.setId(Util.converterStringParaInteger(encerrarOrdemServicoActionForm.getIdPavimentoCalcada())); ordemServicoPavimento.setPavimentoCalcada(pavimentoCalcada); } if(!"".equals(encerrarOrdemServicoActionForm.getMetragemPavimentoCalcada()) && encerrarOrdemServicoActionForm.getMetragemPavimentoCalcada()!=null){ ordemServicoPavimento.setAreaPavimentoCalcada(Util.formatarMoedaRealparaBigDecimal(encerrarOrdemServicoActionForm.getMetragemPavimentoCalcada())); } // Unidade Repavimentadora if (!"-1".equals(encerrarOrdemServicoActionForm.getIdUnidadeRepavimentadora()) && encerrarOrdemServicoActionForm.getIdUnidadeRepavimentadora() != null ) { //[FS0011] � Verificar exist�ncia da unidade repavimentadora fachada.verificaUnidadeTipoRepavimentadora( encerrarOrdemServicoActionForm.getIdUnidadeRepavimentadora()); UnidadeOrganizacional unidadeOrganizacional = new UnidadeOrganizacional(); unidadeOrganizacional.setId(new Integer( encerrarOrdemServicoActionForm.getIdUnidadeRepavimentadora())); ordemServicoPavimento.setUnidadeRepavimentadora(unidadeOrganizacional); } //------------------------------------------------------------------------------------------------------- // [SB0002] - Encerrar com execu��o e sem refer�ncia fachada.encerrarOSComExecucaoSemReferencia( numeroOS, dataEncerramento, usuarioLogado, encerrarOrdemServicoActionForm.getIdMotivoEncerramento(), dataUltimaAlteracao, encerrarOrdemServicoActionForm.getObservacaoEncerramento(), encerrarOrdemServicoActionForm.getIndicadorPavimento(), encerrarOrdemServicoActionForm.getPavimento(), colecaoManterDadosAtividadesOrdemServicoHelper, integracaoComercialHelper, encerrarOrdemServicoActionForm.getTipoServicoOSId(), osFiscalizacao, encerrarOrdemServicoActionForm.getIndicadorVistoriaServicoTipo(), encerrarOrdemServicoActionForm.getCodigoRetornoVistoriaOs(), ordemServicoPavimento, ordemServicoBoletim,indicadorServicoAceito); } else { // [SB0003] - Encerrar com execu��o e com refer�ncia fachada.encerrarOSComExecucaoComReferencia( numeroOS, dataEncerramento, usuarioLogado, encerrarOrdemServicoActionForm.getIdMotivoEncerramento(), dataUltimaAlteracao, encerrarOrdemServicoActionForm.getObservacaoEncerramento(), encerrarOrdemServicoActionForm.getIndicadorPavimento(), encerrarOrdemServicoActionForm.getPavimento(), encerrarOrdemServicoActionForm.getIdTipoRetornoReferida(), encerrarOrdemServicoActionForm.getIndicadorDeferimento(), encerrarOrdemServicoActionForm.getIndicadorTrocaServico(), encerrarOrdemServicoActionForm.getIdServicoTipo(), encerrarOrdemServicoActionForm.getNumeroOSReferencia(), encerrarOrdemServicoActionForm.getServicoTipoReferenciaOS(), colecaoManterDadosAtividadesOrdemServicoHelper, integracaoComercialHelper, encerrarOrdemServicoActionForm.getTipoServicoOSId(), osFiscalizacao, encerrarOrdemServicoActionForm.getIndicadorVistoriaServicoTipo(), encerrarOrdemServicoActionForm.getCodigoRetornoVistoriaOs(), ordemServicoBoletim,indicadorServicoAceito); } } } } } if (retorno.getName().equalsIgnoreCase("encerrarOrdemServicoPopup")) { /** * [UC0457] Encerrar Ordem de Servi�o * 5.4 do Fluxo Principal * * @author Hugo Leonardo * @created 17/02/2011 */ /** * [RM5185] * @author Magno Gouveia * @since 08/08/2011 */ FiltroTipoServico filtroTipoServico = new FiltroTipoServico(); filtroTipoServico.adicionarParametro(new ParametroSimples(FiltroTipoServico.ID, encerrarOrdemServicoActionForm.getTipoServicoOSId())); ServicoTipo servicoTipo = (ServicoTipo) Util.retonarObjetoDeColecao(fachada.pesquisar(filtroTipoServico, ServicoTipo.class.getName())); if(servicoTipo.getIndicadorEncAutomaticoRAQndEncOS().compareTo(ConstantesSistema.NAO) == 0){ boolean telaConfirmacao = fachada.tramitarOuEncerrarRADaOSEncerrada( Util.converterStringParaInteger(encerrarOrdemServicoActionForm.getNumeroOS()), usuarioLogado, encerrarOrdemServicoActionForm.getIdMotivoEncerramento(), encerrarOrdemServicoActionForm.getNumeroRA(), encerrarOrdemServicoActionForm.getDataRoteiro()); // se for para ir para a tela de confirma��o if (telaConfirmacao) { httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/encerrarOrdemServicoPopupAction.do"); httpServletRequest.setAttribute("cancelamento", "TRUE"); httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao2", "N�o"); return montarPaginaConfirmacao("atencao.encerrar_RA_da_OS", httpServletRequest, actionMapping); } }else{ if ( encerrarOrdemServicoActionForm.getNumeroRA() != null && !encerrarOrdemServicoActionForm.getNumeroRA().equals("") ) { RegistroAtendimento registroAtendimento = new RegistroAtendimento(); registroAtendimento.setId(Util .converterStringParaInteger(encerrarOrdemServicoActionForm.getNumeroRA())); AtendimentoMotivoEncerramento atendimentoMotivoEncerramento = new AtendimentoMotivoEncerramento(); atendimentoMotivoEncerramento.setId(Util .converterStringParaInteger(encerrarOrdemServicoActionForm.getIdMotivoEncerramento())); registroAtendimento.setAtendimentoMotivoEncerramento(atendimentoMotivoEncerramento); registroAtendimento.setCodigoSituacao(RegistroAtendimento.SITUACAO_ENCERRADO); if (encerrarOrdemServicoActionForm.getHoraEncerramento() != null && !encerrarOrdemServicoActionForm.getHoraEncerramento().equals("")) { registroAtendimento.setDataEncerramento(Util .converteStringParaDateHora(encerrarOrdemServicoActionForm.getDataEncerramento()+ " " + encerrarOrdemServicoActionForm.getHoraEncerramento() + ":00")); } else { registroAtendimento.setDataEncerramento(Util .converteStringParaDateHora(encerrarOrdemServicoActionForm .getDataEncerramento()+ " " + Util.formatarHoraSemSegundos(new Date()) + ":00")); } // registroAtendimento.setDataEncerramento(Util.converteStringParaDateHora( // encerrarOrdemServicoActionForm.getDataEncerramento()+ " " + // Util.formatarHoraSemSegundos(new Date()) + ":00")); if (encerrarOrdemServicoActionForm.getObservacaoEncerramento() != null && !encerrarOrdemServicoActionForm.getObservacaoEncerramento().equals("")) { registroAtendimento.setObservacao(encerrarOrdemServicoActionForm.getObservacaoEncerramento()); } else { registroAtendimento.setObservacao("ENCERRADO ATRAV�S DA FUNCIONALIDADE ENCERRAMENTO DA ORDEM DE SERVI�O"); } registroAtendimento.setUltimaAlteracao(new Date()); // cria o objeto para a inser��o do registro de atendimento unidade RegistroAtendimentoUnidade registroAtendimentoUnidade = new RegistroAtendimentoUnidade(); registroAtendimentoUnidade.setRegistroAtendimento(registroAtendimento); if (usuarioLogado.getUnidadeOrganizacional() != null && !usuarioLogado.getUnidadeOrganizacional().equals("")) { registroAtendimentoUnidade.setUnidadeOrganizacional(usuarioLogado.getUnidadeOrganizacional()); } registroAtendimentoUnidade.setUsuario(usuarioLogado); // atendimento rela��o tipo AtendimentoRelacaoTipo atendimentoRelacaoTipo = new AtendimentoRelacaoTipo(); atendimentoRelacaoTipo.setId(AtendimentoRelacaoTipo.ENCERRAR); registroAtendimentoUnidade.setAtendimentoRelacaoTipo(atendimentoRelacaoTipo); registroAtendimentoUnidade.setUltimaAlteracao(new Date()); //Colocado por Raphael Rossiter em 10/03/2008 ObterDadosRegistroAtendimentoHelper registroAtendimentoHelper = fachada.obterDadosRegistroAtendimento(registroAtendimento.getId()); SolicitacaoTipoEspecificacao especificacao = registroAtendimentoHelper .getRegistroAtendimento().getSolicitacaoTipoEspecificacao(); if (especificacao.getDebitoTipo() != null){ fachada.encerrarRegistroAtendimento(registroAtendimento,registroAtendimentoUnidade, usuarioLogado, especificacao.getDebitoTipo().getId(), especificacao.getValorDebito(), 1, "100", false,null,false); } else{ fachada.encerrarRegistroAtendimento(registroAtendimento,registroAtendimentoUnidade, usuarioLogado, null, null, null, null, false,null,false); } } } } } else { // se o usu�rio confirmar o encerramento da RA da OS que est� sendo encerrada if (valorConfirmacao.equals("ok")) { RegistroAtendimento registroAtendimento = new RegistroAtendimento(); registroAtendimento.setId(Util .converterStringParaInteger(encerrarOrdemServicoActionForm.getNumeroRA())); AtendimentoMotivoEncerramento atendimentoMotivoEncerramento = new AtendimentoMotivoEncerramento(); atendimentoMotivoEncerramento.setId(Util .converterStringParaInteger(encerrarOrdemServicoActionForm.getIdMotivoEncerramento())); registroAtendimento.setAtendimentoMotivoEncerramento(atendimentoMotivoEncerramento); registroAtendimento.setCodigoSituacao(RegistroAtendimento.SITUACAO_ENCERRADO); if (encerrarOrdemServicoActionForm.getHoraEncerramento() != null && !encerrarOrdemServicoActionForm.getHoraEncerramento().equals("")) { registroAtendimento.setDataEncerramento(Util .converteStringParaDateHora(encerrarOrdemServicoActionForm.getDataEncerramento()+ " " + encerrarOrdemServicoActionForm.getHoraEncerramento() + ":00")); } else { registroAtendimento.setDataEncerramento(Util .converteStringParaDateHora(encerrarOrdemServicoActionForm .getDataEncerramento()+ " " + Util.formatarHoraSemSegundos(new Date()) + ":00")); } // registroAtendimento.setDataEncerramento(Util.converteStringParaDateHora( // encerrarOrdemServicoActionForm.getDataEncerramento()+ " " + // Util.formatarHoraSemSegundos(new Date()) + ":00")); if (encerrarOrdemServicoActionForm.getObservacaoEncerramento() != null && !encerrarOrdemServicoActionForm.getObservacaoEncerramento().equals("")) { registroAtendimento.setObservacao(encerrarOrdemServicoActionForm.getObservacaoEncerramento()); } else { registroAtendimento.setObservacao("ENCERRADO ATRAV�S DA FUNCIONALIDADE ENCERRAMENTO DA ORDEM DE SERVI�O"); } registroAtendimento.setUltimaAlteracao(new Date()); // cria o objeto para a inser��o do registro de atendimento unidade RegistroAtendimentoUnidade registroAtendimentoUnidade = new RegistroAtendimentoUnidade(); registroAtendimentoUnidade.setRegistroAtendimento(registroAtendimento); if (usuarioLogado.getUnidadeOrganizacional() != null && !usuarioLogado.getUnidadeOrganizacional().equals("")) { registroAtendimentoUnidade.setUnidadeOrganizacional(usuarioLogado.getUnidadeOrganizacional()); } registroAtendimentoUnidade.setUsuario(usuarioLogado); // atendimento rela��o tipo AtendimentoRelacaoTipo atendimentoRelacaoTipo = new AtendimentoRelacaoTipo(); atendimentoRelacaoTipo.setId(AtendimentoRelacaoTipo.ENCERRAR); registroAtendimentoUnidade.setAtendimentoRelacaoTipo(atendimentoRelacaoTipo); registroAtendimentoUnidade.setUltimaAlteracao(new Date()); //Colocado por Raphael Rossiter em 10/03/2008 ObterDadosRegistroAtendimentoHelper registroAtendimentoHelper = fachada.obterDadosRegistroAtendimento(registroAtendimento.getId()); SolicitacaoTipoEspecificacao especificacao = registroAtendimentoHelper .getRegistroAtendimento().getSolicitacaoTipoEspecificacao(); if (especificacao.getDebitoTipo() != null){ fachada.encerrarRegistroAtendimento(registroAtendimento,registroAtendimentoUnidade, usuarioLogado, especificacao.getDebitoTipo().getId(), especificacao.getValorDebito(), 1, "100", false,null,false); } else{ fachada.encerrarRegistroAtendimento(registroAtendimento,registroAtendimentoUnidade, usuarioLogado, null, null, null, null, false,null,false); } } } sessao.removeAttribute("ordemServico"); //sessao.removeAttribute("osFiscalizacao"); sessao.removeAttribute("ordemServicoFiscalizacao"); sessao.getAttribute("retornoTela"); // volta para tela e limpa o popup httpServletRequest.setAttribute("fecharPopup", "SIM"); return retorno; } /** * [UC0457] Encerrar Ordem de Servi�o * [SB0007]- Gerar Informa��es para Boletim de Medi��o. * * @author Vivianne Sousa * @created 28/01/2011 */ private Map validarInformacoesBoletimMedicao( Integer idOrdemServico,EncerrarOrdemServicoActionForm form) { OrdemServicoBoletim ordemServicoBoletim = null; Boolean exibirMsgConfirmacao = false; if(form.getExibeIndicadorExistePavimento().equals("1") || form.getExibeQtdeReposicaoAsfalto().equals("1") || form.getExibeQtdeReposicaoCalcada().equals("1") || form.getExibeQtdeReposicaoParalelo().equals("1")){ ordemServicoBoletim = new OrdemServicoBoletim(); ordemServicoBoletim.setId(idOrdemServico); OrdemServico os = new OrdemServico(); os.setId(idOrdemServico); ordemServicoBoletim.setOrdemServico(os); if(form.getExibeIndicadorExistePavimento().equals("1")){ if(form.getIndicadorExistePavimento() == null){ throw new ActionServletException("atencao.campo_selecionado.obrigatorio", null,"Existe Pavimento"); }else{ ordemServicoBoletim.setIndicadorPavimento( new Short(form.getIndicadorExistePavimento())); } } if(form.getExibeQtdeReposicaoAsfalto().equals("1")){ if(form.getQtdeReposicaoAsfalto() == null || form.getQtdeReposicaoAsfalto().equals("")){ form.setQtdeReposicaoAsfalto("0"); ordemServicoBoletim.setNumeroReposicaoAsfalto(new BigDecimal(0)); exibirMsgConfirmacao = true; }else if(form.getQtdeReposicaoAsfalto().equals("0") || form.getQtdeReposicaoAsfalto().equals("00") || form.getQtdeReposicaoAsfalto().equals("0,00")){ ordemServicoBoletim.setNumeroReposicaoAsfalto(new BigDecimal(0)); exibirMsgConfirmacao = true; }else{ ordemServicoBoletim.setNumeroReposicaoAsfalto(Util. formatarMoedaRealparaBigDecimal(form.getQtdeReposicaoAsfalto())); } } if(form.getExibeQtdeReposicaoParalelo().equals("1")){ if(form.getQtdeReposicaoParalelo() == null || form.getQtdeReposicaoParalelo().equals("") ){ form.setQtdeReposicaoParalelo("0"); ordemServicoBoletim.setNumeroReposicaoParalelo(new BigDecimal(0)); exibirMsgConfirmacao = true; }else if(form.getQtdeReposicaoParalelo().equals("0") || form.getQtdeReposicaoParalelo().equals("00")|| form.getQtdeReposicaoParalelo().equals("0,00")){ ordemServicoBoletim.setNumeroReposicaoParalelo(new BigDecimal(0)); exibirMsgConfirmacao = true; }else{ ordemServicoBoletim.setNumeroReposicaoParalelo(Util. formatarMoedaRealparaBigDecimal(form.getQtdeReposicaoParalelo())); } } if(form.getExibeQtdeReposicaoCalcada().equals("1")){ if(form.getQtdeReposicaoCalcada() == null || form.getQtdeReposicaoCalcada().equals("")){ form.setQtdeReposicaoCalcada("0"); ordemServicoBoletim.setNumeroReposicaoCalcada(new BigDecimal(0)); exibirMsgConfirmacao = true; }else if(form.getQtdeReposicaoCalcada().equals("0")|| form.getQtdeReposicaoCalcada().equals("00")|| form.getQtdeReposicaoCalcada().equals("0,00")){ ordemServicoBoletim.setNumeroReposicaoCalcada(new BigDecimal(0)); exibirMsgConfirmacao = true; }else{ ordemServicoBoletim.setNumeroReposicaoCalcada(Util. formatarMoedaRealparaBigDecimal(form.getQtdeReposicaoCalcada())); } } ordemServicoBoletim.setUltimaAlteracao(new Date()); } Map retorno = new HashMap(); retorno.put("ordemServicoBoletim",ordemServicoBoletim); retorno.put("exibirMsgConfirmacao",exibirMsgConfirmacao); return retorno; } }