package gcom.gui.atendimentopublico.registroatendimento; import gcom.atendimentopublico.ordemservico.FiltroServicoTipo; import gcom.atendimentopublico.ordemservico.ServicoTipo; import gcom.atendimentopublico.registroatendimento.EspecificacaoImovelSituacao; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipo; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.faturamento.debito.DebitoTipo; import gcom.faturamento.debito.FiltroDebitoTipo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashSet; 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 respons�vel pela pre-exibi��o da pagina de inserir bairro * * @author S�vio Luiz * @created 28 de Julho de 2006 */ public class AdicionarSolicitacaoEspecificacaoAction extends GcomAction { /** * Description of the Method * * @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) { // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); // Set no mapeamento de retorno ActionForward retorno = actionMapping .findForward("adicionarSolicitacaoEspecificacao"); Collection colecaoSolicitacaoTipoEspecificacao = null; if (sessao.getAttribute("colecaoSolicitacaoTipoEspecificacao") == null) { colecaoSolicitacaoTipoEspecificacao = new ArrayList(); } else { colecaoSolicitacaoTipoEspecificacao = (Collection) sessao .getAttribute("colecaoSolicitacaoTipoEspecificacao"); } AdicionarSolicitacaoEspecificacaoActionForm adicionarSolicitacaoEspecificacaoActionForm = (AdicionarSolicitacaoEspecificacaoActionForm) actionForm; // Obt�m a inst�ncia da Fachada Fachada fachada = Fachada.getInstancia(); // seta os campos do form no objeto SolicitacaoTipoEspecificacao SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacao = new SolicitacaoTipoEspecificacao(); solicitacaoTipoEspecificacao.setIndicadorSolicitante(new Short("1")); if (adicionarSolicitacaoEspecificacaoActionForm .getPrazoPrevisaoAtendimento() != null && !adicionarSolicitacaoEspecificacaoActionForm .getPrazoPrevisaoAtendimento().equals("")) { // Prazo de previs�o de atendimento solicitacaoTipoEspecificacao.setDiasPrazo(new Integer( adicionarSolicitacaoEspecificacaoActionForm .getPrazoPrevisaoAtendimento())); } // Descri��o da especifica��o solicitacaoTipoEspecificacao .setDescricao(adicionarSolicitacaoEspecificacaoActionForm .getDescricaoSolicitacao()); // Pavimento de cal�ada obrigat�rio if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoCalcada() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoCalcada().equals("")) { solicitacaoTipoEspecificacao .setIndicadorPavimentoCalcada(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoCalcada())); } // Pavimento de rua obrigat�rio if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoRua() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoRua().equals("")) { solicitacaoTipoEspecificacao.setIndicadorPavimentoRua(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoRua())); } // refere-se a liga��o de agua if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorLigacaoAgua() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorLigacaoAgua().equals("")) { solicitacaoTipoEspecificacao.setIndicadorLigacaoAgua(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorLigacaoAgua())); } // Cobran�a de material if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorCobrancaMaterial() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorCobrancaMaterial().equals("")) { solicitacaoTipoEspecificacao .setIndicadorCobrancaMaterial(new Integer( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorCobrancaMaterial())); } // Matricula do im�vel obrigat�rio if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorMatriculaImovel() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorMatriculaImovel().equals("")) { solicitacaoTipoEspecificacao.setIndicadorMatricula(new Integer( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorMatriculaImovel())); } // Indicador urgencia if (adicionarSolicitacaoEspecificacaoActionForm.getIndicadorUrgencia() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorUrgencia().equals("")) { solicitacaoTipoEspecificacao.setIndicadorUrgencia(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorUrgencia())); } // Parecer de encerramento obrigat�rio if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorParecerEncerramento() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorParecerEncerramento().equals("")) { solicitacaoTipoEspecificacao .setIndicadorParecerEncerramento(new Integer( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorParecerEncerramento())); } // Gera d�bito if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarDebito() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarDebito().equals("")) { solicitacaoTipoEspecificacao.setIndicadorGeracaoDebito(new Integer( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarDebito())); } // Gera Cr�dito if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarCredito() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarCredito().equals("")) { solicitacaoTipoEspecificacao .setIndicadorGeracaoCredito(new Integer( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarCredito())); } // seta indicador de validar Documento Respons�vel para 2 solicitacaoTipoEspecificacao .setIndicadorValidarDocResponsavel(ConstantesSistema.NAO); // hora e data correntes solicitacaoTipoEspecificacao.setUltimaAlteracao(new Date()); // Unidade inicial tramita��o if (adicionarSolicitacaoEspecificacaoActionForm .getIdUnidadeTramitacao() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIdUnidadeTramitacao().equals("")) { // Verifica se o c�digo foi modificado if (adicionarSolicitacaoEspecificacaoActionForm .getDescricaoUnidadeTramitacao() == null || adicionarSolicitacaoEspecificacaoActionForm .getDescricaoUnidadeTramitacao().trim().equals("")) { FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional .adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, adicionarSolicitacaoEspecificacaoActionForm .getIdUnidadeTramitacao())); filtroUnidadeOrganizacional .adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection unidadeOrganizacionalEncontrado = fachada.pesquisar( filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (unidadeOrganizacionalEncontrado != null && !unidadeOrganizacionalEncontrado.isEmpty()) { UnidadeOrganizacional uinidadeOrganizacional = (UnidadeOrganizacional) ((List) unidadeOrganizacionalEncontrado) .get(0); solicitacaoTipoEspecificacao .setUnidadeOrganizacional(uinidadeOrganizacional); } else { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Unidade Organizacional"); } } else { UnidadeOrganizacional unidadeOrganizacional = new UnidadeOrganizacional(); unidadeOrganizacional.setId(new Integer( adicionarSolicitacaoEspecificacaoActionForm .getIdUnidadeTramitacao())); solicitacaoTipoEspecificacao .setUnidadeOrganizacional(unidadeOrganizacional); } } // id do tipo da solicita��o gerada if (adicionarSolicitacaoEspecificacaoActionForm.getIdServicoOS() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIdServicoOS().equals("")) { // Verifica se o c�digo foi modificado if (adicionarSolicitacaoEspecificacaoActionForm .getDescricaoServicoOS() == null || adicionarSolicitacaoEspecificacaoActionForm .getDescricaoServicoOS().trim().equals("")) { FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.ID, adicionarSolicitacaoEspecificacaoActionForm .getIdServicoOS())); Collection servicoTipoEncontrado = fachada.pesquisar( filtroServicoTipo, ServicoTipo.class.getName()); if (servicoTipoEncontrado != null && !servicoTipoEncontrado.isEmpty()) { // [SF0003] - Validar Tipo Servi�o fachada.verificarServicoTipoReferencia(new Integer( adicionarSolicitacaoEspecificacaoActionForm .getIdServicoOS())); ServicoTipo servicoTipo = (ServicoTipo) ((List) servicoTipoEncontrado) .get(0); solicitacaoTipoEspecificacao.setServicoTipo(servicoTipo); } else { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Servi�o Tipo"); } } else { ServicoTipo servicoTipo = new ServicoTipo(); servicoTipo.setId(new Integer( adicionarSolicitacaoEspecificacaoActionForm .getIdServicoOS())); solicitacaoTipoEspecificacao.setServicoTipo(servicoTipo); } } // Gera ordem de servi�o if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorGeraOrdemServico() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorGeraOrdemServico().equals("")) { solicitacaoTipoEspecificacao .setIndicadorGeracaoOrdemServico(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorGeraOrdemServico())); } // Cliente Obrigat�rio if (adicionarSolicitacaoEspecificacaoActionForm.getIndicadorCliente() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorCliente().equals("")) { solicitacaoTipoEspecificacao.setIndicadorCliente(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorCliente())); } // Indicador verfificca��o de d�bito if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorVerificarDebito() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorVerificarDebito().equals("")) { solicitacaoTipoEspecificacao.setIndicadorVerificarDebito(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorVerificarDebito())); } // Situa��o imovel if (adicionarSolicitacaoEspecificacaoActionForm.getIdSituacaoImovel() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIdSituacaoImovel().equals("")) { EspecificacaoImovelSituacao especificacaoImovelSituacao = new EspecificacaoImovelSituacao(); especificacaoImovelSituacao.setId(new Integer( adicionarSolicitacaoEspecificacaoActionForm .getIdSituacaoImovel())); solicitacaoTipoEspecificacao .setEspecificacaoImovelSituacao(especificacaoImovelSituacao); } Collection colecaoEspecificacaoServicoTipo = (Collection) sessao .getAttribute("colecaoEspecificacaoServicoTipo"); // recupera a cole��o de especificacao servico tipo if (colecaoEspecificacaoServicoTipo != null && !colecaoEspecificacaoServicoTipo.isEmpty()) { // [SF0004] - Validar Valor Ordem de Servi�o 2� parte fachada .verificarOrdemExecucaoForaOrdem(colecaoEspecificacaoServicoTipo); solicitacaoTipoEspecificacao .setEspecificacaoServicoTipos(new HashSet( colecaoEspecificacaoServicoTipo)); sessao.removeAttribute("colecaoEspecificacaoServicoTipo"); } // Colocado por Raphael Rossiter em 25/02/2008 // Tipo de D�bito if (adicionarSolicitacaoEspecificacaoActionForm.getIdDebitoTipo() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIdDebitoTipo().equals("")) { FiltroDebitoTipo filtroDebitoTipo = new FiltroDebitoTipo(); filtroDebitoTipo.adicionarParametro(new ParametroSimples( FiltroDebitoTipo.ID, adicionarSolicitacaoEspecificacaoActionForm .getIdDebitoTipo())); Collection debitoTipoEncontrado = fachada.pesquisar( filtroDebitoTipo, DebitoTipo.class.getName()); if (debitoTipoEncontrado != null && !debitoTipoEncontrado.isEmpty()) { DebitoTipo debitoTipo = (DebitoTipo) Util .retonarObjetoDeColecao(debitoTipoEncontrado); solicitacaoTipoEspecificacao.setDebitoTipo(debitoTipo); } else { // [FS0007] - Validar Tipo de d�bito throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Tipo de D�bito"); } } // Valor do D�bito if (adicionarSolicitacaoEspecificacaoActionForm.getValorDebito() != null && !adicionarSolicitacaoEspecificacaoActionForm .getValorDebito().equals("")) { solicitacaoTipoEspecificacao .setValorDebito(Util .formatarMoedaRealparaBigDecimal(adicionarSolicitacaoEspecificacaoActionForm .getValorDebito())); } // Alterar Valor do d�bito if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorPermiteAlterarValor() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorPermiteAlterarValor().equals("")) { solicitacaoTipoEspecificacao .setIndicadorPermiteAlterarValor(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorPermiteAlterarValor())); } // Cobrar Juros if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorCobrarJuros() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorCobrarJuros().equals("")) { solicitacaoTipoEspecificacao.setIndicadorCobrarJuros(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorCobrarJuros())); } // Indicador encerramento autom�tico if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorEncerramentoAutomatico() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorEncerramentoAutomatico().equals("")) { solicitacaoTipoEspecificacao .setIndicadorEncerramentoAutomatico(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorEncerramentoAutomatico())); } //indicador de loja virtual if(Util.verificarNaoVazio(adicionarSolicitacaoEspecificacaoActionForm.getIndicadorLojaVirtual())){ solicitacaoTipoEspecificacao.setIndicadorLojaVirtual(new Short(adicionarSolicitacaoEspecificacaoActionForm.getIndicadorLojaVirtual())); } // indicador de uso ativo solicitacaoTipoEspecificacao.setIndicadorUso(new Short( ConstantesSistema.INDICADOR_USO_ATIVO)); // Especifica��o do novo RA if (adicionarSolicitacaoEspecificacaoActionForm.getIdEspecificacao() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIdEspecificacao().equals("")) { SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacaoNovoRA = new SolicitacaoTipoEspecificacao(); solicitacaoTipoEspecificacaoNovoRA.setId(Integer .parseInt(adicionarSolicitacaoEspecificacaoActionForm .getIdEspecificacao())); SolicitacaoTipo solicitacaoTipo = new SolicitacaoTipo(); solicitacaoTipo.setId(Integer .parseInt(adicionarSolicitacaoEspecificacaoActionForm .getIdTipoSolicitacao())); solicitacaoTipoEspecificacaoNovoRA .setSolicitacaoTipo(solicitacaoTipo); solicitacaoTipoEspecificacao .setSolicitacaoTipoEspecificacaoNovoRA(solicitacaoTipoEspecificacaoNovoRA); } // Informar conta no Registro de Atendimento if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorInformarContaRA() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorInformarContaRA().equals("")) { solicitacaoTipoEspecificacao.setIndicadorInformarContaRA(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorInformarContaRA())); } // Informar Pagamento em Duplicidade no Registro de Atendimento if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorInformarPagamentoDP() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorInformarPagamentoDP().equals("")) { solicitacaoTipoEspecificacao .setIndicadorInformarPagamentoDuplicidade(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorInformarPagamentoDP())); } // Informar vencimento alternativo if (adicionarSolicitacaoEspecificacaoActionForm .getIndicadorAlterarVencimentoAlternativo() != null && !adicionarSolicitacaoEspecificacaoActionForm .getIndicadorAlterarVencimentoAlternativo().equals("")) { solicitacaoTipoEspecificacao .setIndicadorAlterarVencimentoAlternativo(new Short( adicionarSolicitacaoEspecificacaoActionForm .getIndicadorAlterarVencimentoAlternativo())); } // adiciona na cole��o o tipo de solicita��o especificado if (!colecaoSolicitacaoTipoEspecificacao .contains(solicitacaoTipoEspecificacao)) { colecaoSolicitacaoTipoEspecificacao .add(solicitacaoTipoEspecificacao); } else { throw new ActionServletException( "atencao.tipo.especificacao.ja.existe"); } sessao.setAttribute("colecaoSolicitacaoTipoEspecificacao", colecaoSolicitacaoTipoEspecificacao); // manda um parametro para fechar o popup httpServletRequest.setAttribute("fecharPopup", 1); return retorno; } }