package gcom.gui.atendimentopublico.ordemservico; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.ServicoTipo; 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 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 lms * @date 22/08/2006 */ public class AtualizarOrdemServicoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); AtualizarOrdemServicoActionForm form = (AtualizarOrdemServicoActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); OrdemServico ordemServico = form.setFormValues(form.getOrdemServico()); // pesquisa do enter servi�o tipo String idServicoTipo = form.getIdServicoTipo(); String descricaoServicoTipo = form.getDescricaoServicoTipo(); if (idServicoTipo != null && !idServicoTipo.equals("") && (descricaoServicoTipo == null || descricaoServicoTipo .equals(""))) { Integer idServicoTipoInteger = Util.converterStringParaInteger(form .getIdServicoTipo()); ServicoTipo servicoTipo = fachada .pesquisarSevicoTipo(idServicoTipoInteger); if (servicoTipo != null && !servicoTipo.equals("")) { ordemServico.setServicoTipo(servicoTipo); } else { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Tipo Servi�o"); } } if(ordemServico.getObservacao() != null && !ordemServico.getObservacao().equals("") && ordemServico.getObservacao().length() > 200){ String[] msg = new String[2]; msg[0]="Observa��o"; msg[1]="200"; throw new ActionServletException("atencao.execedeu_limit_observacao",null,msg); } // pesquisa do enter Ordem de Servi�o Refer�ncia String idOSReferencia = form.getIdOrdemServicoReferencia(); String descricaoOsReferencia = form .getDescricaoOrdemServicoReferencia(); if (idOSReferencia != null && !idOSReferencia.equals("") && (descricaoOsReferencia == null || descricaoOsReferencia .equals(""))) { Integer idOrdemServicoReferencia = Util .converterStringParaInteger(form .getIdOrdemServicoReferencia()); OrdemServico os = fachada .pesquisarOrdemServico(idOrdemServicoReferencia); if (os != null && !os.equals("")) { ordemServico.setOsReferencia(os); } else { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Ordem Servi�o Refer�ncia"); } } // pesquisa do enter Servi�o Tipo Refer�ncia String idServicoTipoReferencia = form.getIdServicoTipoReferencia(); String descricaoServicoTipoReferencia = form .getDescricaoServicoTipoReferencia(); if (idServicoTipoReferencia != null && !idServicoTipoReferencia.equals("") && (descricaoServicoTipoReferencia == null || descricaoServicoTipoReferencia .equals(""))) { Integer idTipoServicoReferenciaInteger = Util .converterStringParaInteger(form .getIdServicoTipoReferencia()); ServicoTipo st = fachada .pesquisarSevicoTipo(idTipoServicoReferenciaInteger); if (st != null && !st.equals("")) { ordemServico.setServicoTipoReferencia(st); } else { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Servi�o Tipo Refer�ncia"); } } String veioAcompanhamentoRoteiro = (String) sessao .getAttribute("veioAcompanhamentoRoteiro"); if (veioAcompanhamentoRoteiro != null && !veioAcompanhamentoRoteiro.equals("")){ if (ordemServico.getServicoTipo() != null && ordemServico.getServicoTipo().getIndicadorProgramacaoAutomatica() != ConstantesSistema.SIM.shortValue()){ throw new ActionServletException("atencao.servico_tipo.nao_compativel.atualizar_os"); } } // gera a ordem de servi�o fachada.atualizarOrdemServico(ordemServico, usuarioLogado); if (sessao.getAttribute("ehPopup") == null || sessao.getAttribute("ehPopup").equals("")) { // Exibe a p�gina de sucesso String mensagem = ""; if(ordemServico.getRegistroAtendimento() != null && ordemServico.getRegistroAtendimento().getId() != null ){ mensagem = "Ordem de Servi�o " + ordemServico.getId() + " para o registro de Atendimento n�mero " + ordemServico.getRegistroAtendimento().getId() + " atualizada com sucesso."; }else if (ordemServico.getCobrancaDocumento() != null && ordemServico.getCobrancaDocumento().getId() != null ){ mensagem = "Ordem de Servi�o " + ordemServico.getId() + " para o Documento de Cobran�a n�mero " + ordemServico.getCobrancaDocumento().getId() + " atualizada com sucesso."; } else { mensagem = "Ordem de Servi�o " + ordemServico.getId() + " atualizada com sucesso."; } if (sessao.getAttribute("importarMovimentoACQUAGIS") != null && sessao.getAttribute("importarMovimentoACQUAGIS").equals("sim")) { montarPaginaSucesso(httpServletRequest, mensagem, "Voltar", sessao.getAttribute("caminhoRetornoOS").toString()); }else { montarPaginaSucesso(httpServletRequest, mensagem, "Realizar outra Manuten��o de Ordem de Servi�o", "exibirFiltrarOrdemServicoAction.do?menu=sim", "exibirConsultarDadosOrdemServicoAction.do?menu=sim&numeroOS=" + ordemServico.getId(), "Voltar"); } } else { // volta para tela e limpa o popup httpServletRequest.setAttribute("fecharPopup", "SIM"); retorno = actionMapping.findForward("exibirAtualizarOrdemServico"); } String dataProgramacao = (String) sessao.getAttribute("dataProgramacaoAtualizar"); String chaveArquivo = (String) sessao.getAttribute("chaveArquivoAtualizar"); if (veioAcompanhamentoRoteiro != null && !veioAcompanhamentoRoteiro.equals("")){ fachada.atualizarOSProgramacaoAcompServico(Util.converterStringParaInteger(chaveArquivo), Util.converteStringParaDate(dataProgramacao), ordemServico.getId(), ordemServico.getServicoTipo().getId()); } sessao.removeAttribute("dataProgramacaoAtualizar"); sessao.removeAttribute("chaveArquivoAtualizar"); sessao.removeAttribute("ehPopup"); sessao.removeAttribute("servicoTipo"); sessao.removeAttribute("colecaoServicoTipoPrioridade"); sessao.removeAttribute("colecaoServicosTipo"); return retorno; } }