package gcom.gui.cobranca.cobrancaporresultado; import java.util.Collection; import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ordemservico.FiltroServicoTipo; import gcom.atendimentopublico.ordemservico.ServicoTipo; import gcom.atendimentopublico.registroatendimento.AtendimentoMotivoEncerramento; import gcom.atendimentopublico.registroatendimento.FiltroAtendimentoMotivoEncerramento; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.FiltroCategoria; import gcom.cadastro.imovel.FiltroImovelPerfil; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.localidade.FiltroGerenciaRegional; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.cobranca.ComandoEmpresaCobrancaConta; import gcom.cobranca.FiltroComandoEmpresaCobrancaConta; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.gui.StatusWizard; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; 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; /** * [UC1169] Movimentar Ordens de Servi�o de Cobran�a por Resultado * * Action respons�vel por montar todo o esquema do * processo de movimentar ordens de servi�o de cobran�a por resultado. * * @author Mariana Victor * @date 10/05/2011 */ public class ExibirMovimentarOrdemServicoAction extends GcomAction { /** * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Localiza o action no objeto ActionForward retorno = actionMapping.findForward("movimentarOrdemServicoEmitirOS"); MovimentarOrdemServicoActionForm form = (MovimentarOrdemServicoActionForm) actionForm; //Obt�m a inst�ncia da sess�o HttpSession sessao = httpServletRequest.getSession(false); this.getSessao(httpServletRequest).removeAttribute("colecaoQuantidadeContas"); this.getSessao(httpServletRequest).removeAttribute("colecaoFaixa"); this.getSessao(httpServletRequest).removeAttribute("colecaoQtdeContas"); this.getSessao(httpServletRequest).removeAttribute("colecaoQtdeClientes"); this.getSessao(httpServletRequest).removeAttribute("colecaoValorTotalDivida"); if (httpServletRequest.getParameter("desfazer") != null && httpServletRequest.getParameter("desfazer").equalsIgnoreCase("true")) { this.limparForm(form); this.limparSessao(sessao); this.pesquisarColecoes(sessao, form); } if (httpServletRequest.getParameter("comando") != null && !httpServletRequest.getParameter("comando").equals("")) { form.setIdComandoContaCobranca(httpServletRequest.getParameter("comando")); FiltroComandoEmpresaCobrancaConta filtroComandoEmpresaCobrancaConta = new FiltroComandoEmpresaCobrancaConta(); filtroComandoEmpresaCobrancaConta.adicionarParametro( new ParametroSimples(FiltroComandoEmpresaCobrancaConta.ID, form.getIdComandoContaCobranca())); filtroComandoEmpresaCobrancaConta.adicionarCaminhoParaCarregamentoEntidade(FiltroComandoEmpresaCobrancaConta.EMPRESA); Collection<ComandoEmpresaCobrancaConta> colecaoComando = this.getFachada().pesquisar(filtroComandoEmpresaCobrancaConta, ComandoEmpresaCobrancaConta.class.getName()); if (colecaoComando == null || colecaoComando.isEmpty()) { throw new ActionServletException("atencao.comando.inexistente"); } else { ComandoEmpresaCobrancaConta comando = (ComandoEmpresaCobrancaConta) Util.retonarObjetoDeColecao(colecaoComando); if (comando.getDataExecucao() == null) { throw new ActionServletException("atencao.comando.nao_executado.nao_possivel.movimentacao"); } if (comando.getIndicadorGeracaoTxt() == null || comando.getIndicadorGeracaoTxt().compareTo(new Integer(2)) == 0) { throw new ActionServletException("atencao.comando.arquivo_txt.nao_gerado.nao_possivel.movimentacao"); } if (comando.getDataEncerramento() != null) { throw new ActionServletException("atencao.comando.ja_encerrado.nao_possivel.movimentacao"); } form.setIdEmpresa(comando.getEmpresa().getId().toString()); } this.pesquisarColecoes(sessao, form); } //Monta o Status do Wizard StatusWizard statusWizard = new StatusWizard( "movimentarOrdemServicoWizardAction", "movimentarOrdemServicoAction", "cancelarMovimentarOrdemServicoAction", null); //monta a primeira aba do processo statusWizard .inserirNumeroPaginaCaminho(statusWizard.new StatusWizardItem( 1, "abaEmitirOSA.gif", "abaEmitirOSD.gif", "exibirMovimentarOrdemServicoEmitirOSAction", "movimentarOrdemServicoEmitirOSAction")); //monta a segunda aba do processo statusWizard .inserirNumeroPaginaCaminho(statusWizard.new StatusWizardItem( 2, "abaGerarOSA.gif", "abaGerarOSD.gif", "exibirMovimentarOrdemServicoGerarOSAction", "movimentarOrdemServicoGerarOSAction")); //monta a terceira aba do processo statusWizard .inserirNumeroPaginaCaminho(statusWizard.new StatusWizardItem( 3, "abaEncerrarOSA.gif", "abaEncerrarOSD.gif", "exibirMovimentarOrdemServicoEncerrarOSAction", "movimentarOrdemServicoEncerrarOSAction")); statusWizard.setCaminhoActionDesfazer("exibirMovimentarOrdemServicoAction.do"); statusWizard.setCaminhoActionVoltarFiltro("exibirConsultarComandosContasCobrancaEmpresaAction"); statusWizard.setNomeBotaoConcluir("Emitir OS"); //manda o statusWizard para a sess�o sessao.setAttribute("statusWizard", statusWizard); //retorna o mapeamento contido na vari�vel retorno return retorno; } private void limparForm(MovimentarOrdemServicoActionForm form){ form.setNumeroOSInicial(""); form.setNumeroOSFinal(""); form.setTipoDivEscolhida(""); form.setTipoPesquisa(""); form.setIdsCategoria(null); form.setIdsImovelPerfil(null); form.setIdsGerenciaRegional(null); form.setIdsUnidadeNegocio(null); form.setIdLocalidadeOrigem(""); form.setIdLocalidadeDestino(""); form.setNomeLocalidadeOrigem(""); form.setNomeLocalidadeDestino(""); form.setIdSetorComercialDestino(""); form.setIdSetorComercialOrigem(""); form.setCodigoSetorComercialDestino(""); form.setCodigoSetorComercialOrigem(""); form.setDescricaoSetorComercialDestino(""); form.setDescricaoSetorComercialOrigem(""); form.setCodigoQuadraInicial(""); form.setDescricaoQuadraInicial(""); form.setCodigoQuadraFinal(""); form.setDescricaoQuadraFinal(""); form.setValorMinimo(""); form.setValorMaximo(""); form.setQtdContas(""); form.setQtdClientes(""); form.setValorTotalDivida(""); form.setQtdeTotalClientes(""); form.setColecaoInformada(""); form.setTotalSelecionado(""); form.setIdTipoServico(""); form.setMatriculasImoveis(new String[10]); form.setIdsLigacaoAguaSituacao(null); form.setNumerosOS(new String[10]); form.setIdMotivoEncerramento(""); form.setDataEncerramento(""); form.setHoraEncerramento(""); form.setObservacaoEncerramento(""); } private void limparSessao(HttpSession sessao){ //1� aba sessao.removeAttribute("colecaoQuantidadeContas"); sessao.removeAttribute("colecaoFaixa"); sessao.removeAttribute("colecaoQtdeContas"); sessao.removeAttribute("colecaoQtdeClientes"); sessao.removeAttribute("colecaoValorTotalDivida"); sessao.removeAttribute("colecaoOSEmpresaCobranca"); sessao.removeAttribute("colecaoOSRegistroAtendimento"); sessao.removeAttribute("quadraInicialInexistente"); sessao.removeAttribute("setorComercialOrigemInexistente"); sessao.removeAttribute("localidadeOrigemInexistente"); sessao.removeAttribute("quadraFinalInexistente"); sessao.removeAttribute("setorComercialDestinoInexistente"); sessao.removeAttribute("localidadeDestinoInexistente"); //3� aba sessao.removeAttribute("motivoInformado"); sessao.removeAttribute("habilitaNumerosOS"); } private void pesquisarColecoes( HttpSession sessao, MovimentarOrdemServicoActionForm form) { // Cole��o de Categoria FiltroCategoria filtroCategoria = new FiltroCategoria(); filtroCategoria.setCampoOrderBy(FiltroCategoria.DESCRICAO); Collection<Categoria> colecaoCategoria = this.getFachada().pesquisar(filtroCategoria, Categoria.class.getName()); sessao.setAttribute("colecaoCategoria", colecaoCategoria); // Cole��o de Perfil de Im�vel FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil(); filtroImovelPerfil.adicionarParametro(new ParametroSimples( FiltroImovelPerfil.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroImovelPerfil.setCampoOrderBy(FiltroImovelPerfil.DESCRICAO); Collection<ImovelPerfil> colecaoImovelPerfil = this.getFachada().pesquisar(filtroImovelPerfil, ImovelPerfil.class.getName()); sessao.setAttribute("colecaoImovelPerfil", colecaoImovelPerfil); // Cole��o de Gerencia Regional FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(); filtroGerenciaRegional.adicionarParametro(new ParametroSimples( FiltroGerenciaRegional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME); Collection<GerenciaRegional> colecaoGerenciaRegional = this.getFachada().pesquisar( filtroGerenciaRegional, GerenciaRegional.class.getName()); sessao.setAttribute("colecaoGerenciaRegional", colecaoGerenciaRegional); // Cole��o de Unidade de Neg�cio FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.adicionarParametro(new ParametroSimples( FiltroUnidadeNegocio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroUnidadeNegocio.setCampoOrderBy(FiltroUnidadeNegocio.NOME); Collection<UnidadeNegocio> colecaoUnidadeNegocio = this.getFachada().pesquisar( filtroUnidadeNegocio, UnidadeNegocio.class.getName()); sessao.setAttribute("colecaoUnidadeNegocio", colecaoUnidadeNegocio); // Cole��o de Tipos de Servi�o FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.INDICADOR_EMPRESA_COBRANCA, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroServicoTipo.setCampoOrderBy(FiltroServicoTipo.DESCRICAO); Collection<ServicoTipo> colecaoServicoTipo = this.getFachada().pesquisar( filtroServicoTipo, ServicoTipo.class.getName()); sessao.setAttribute("colecaoServicoTipo", colecaoServicoTipo); // Cole��o de Situa��o da Liga��o da �gua FiltroLigacaoAguaSituacao filtroLigacaoAguaSituacao = new FiltroLigacaoAguaSituacao(); filtroLigacaoAguaSituacao.setCampoOrderBy(FiltroLigacaoAguaSituacao.DESCRICAO); filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples( FiltroLigacaoAguaSituacao.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection<LigacaoAguaSituacao> colecaoLigacaoAguaSituacao = this.getFachada().pesquisar( filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName()); sessao.setAttribute("colecaoLigacaoAguaSituacao", colecaoLigacaoAguaSituacao); // Cole��o de Motivo de Encerramento de OS FiltroAtendimentoMotivoEncerramento filtroAtendimentoMotivoEncerramento = new FiltroAtendimentoMotivoEncerramento(); filtroAtendimentoMotivoEncerramento.setCampoOrderBy(FiltroAtendimentoMotivoEncerramento.DESCRICAO); filtroAtendimentoMotivoEncerramento.adicionarParametro(new ParametroSimples( FiltroAtendimentoMotivoEncerramento.INDICADOR_DUPLICIDADE, ConstantesSistema.NAO)); filtroAtendimentoMotivoEncerramento.adicionarParametro(new ParametroSimples( FiltroAtendimentoMotivoEncerramento.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection<AtendimentoMotivoEncerramento> colecaoAtendimentoMotivoEncerramento = this.getFachada().pesquisar( filtroAtendimentoMotivoEncerramento, AtendimentoMotivoEncerramento.class.getName()); sessao.setAttribute("colecaoAtendimentoMotivoEncerramento", colecaoAtendimentoMotivoEncerramento); } }