package gcom.gui.cobranca; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.SetorComercial; import gcom.cobranca.CobrancaAcao; import gcom.cobranca.CobrancaAcaoAtividadeComando; import gcom.cobranca.CobrancaAcaoAtividadeComandoFiscalizacaoSituacao; import gcom.cobranca.CobrancaAtividade; import gcom.cobranca.FiltroCobrancaAcaoAtividadeComandoFiscalizacaoSituacao; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.FiltroRota; import gcom.micromedicao.Rota; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; 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; /** * [UC0244] Manter Comando de A��o de Conbran�a * * @author Rafael Santos * @since 24/04/2006 */ public class ManterComandoAcaoCobrancaEventualCriterioComandoConcluirAction extends GcomAction { /** * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); // Mudar isso quando implementar a parte de seguran�a HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); ManterComandoAcaoCobrancaDetalhesActionForm manterComandoAcaoCobrancaDetalhesActionForm = null; if (sessao.getAttribute("manterComandoAcaoCobrancaDetalhesActionForm") != null) { manterComandoAcaoCobrancaDetalhesActionForm = (ManterComandoAcaoCobrancaDetalhesActionForm) sessao .getAttribute("manterComandoAcaoCobrancaDetalhesActionForm"); } CobrancaAcaoAtividadeComando cobrancaAcaoAtividadeComando = null; if (sessao.getAttribute("cobrancaAcaoAtividadeComando") != null) { cobrancaAcaoAtividadeComando = (CobrancaAcaoAtividadeComando) sessao .getAttribute("cobrancaAcaoAtividadeComando"); } String idComando = httpServletRequest.getParameter("idComando"); String idLocalidade = manterComandoAcaoCobrancaDetalhesActionForm .getLocalidadeOrigemID(); String codigoSetorComercial = manterComandoAcaoCobrancaDetalhesActionForm .getSetorComercialOrigemCD(); String idLocalidadeFinal = manterComandoAcaoCobrancaDetalhesActionForm .getLocalidadeDestinoID(); String codigoSetorComercialFinal = manterComandoAcaoCobrancaDetalhesActionForm .getSetorComercialDestinoCD(); FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); if (idLocalidade != null && !idLocalidade.toString().trim().equalsIgnoreCase("")) { filtroLocalidade.limparListaParametros(); // coloca parametro no filtro filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, new Integer(idLocalidade))); // pesquisa Collection localidades = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (localidades == null || localidades.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.localidade_inicial_inexistente"); } } FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); if (codigoSetorComercial != null && !codigoSetorComercial.toString().trim().equalsIgnoreCase("")) { if (idLocalidade != null && !idLocalidade.toString().trim().equalsIgnoreCase("")) { filtroSetorComercial.limparListaParametros(); // coloca parametro no filtro filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, new Integer( idLocalidade))); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, new Integer(codigoSetorComercial))); // pesquisa Collection setorComerciais = fachada.pesquisar( filtroSetorComercial, SetorComercial.class.getName()); if (setorComerciais == null || setorComerciais.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.setor_inicial_inexistente"); } } } filtroLocalidade = new FiltroLocalidade(); if (idLocalidade != null && !idLocalidade.toString().trim().equalsIgnoreCase("")) { filtroLocalidade.limparListaParametros(); // coloca parametro no filtro filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, new Integer(idLocalidadeFinal))); // pesquisa Collection localidades = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (localidades == null || localidades.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.localidade_final_inexistente"); } } filtroSetorComercial = new FiltroSetorComercial(); if (codigoSetorComercial != null && !codigoSetorComercial.toString().trim().equalsIgnoreCase("")) { if (idLocalidade != null && !idLocalidade.toString().trim().equalsIgnoreCase("")) { filtroSetorComercial.limparListaParametros(); // coloca parametro no filtro filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, new Integer( idLocalidadeFinal))); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, new Integer(codigoSetorComercialFinal))); // pesquisa Collection setorComerciais = fachada.pesquisar( filtroSetorComercial, SetorComercial.class.getName()); if (setorComerciais == null || setorComerciais.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.setor_final_inexistente"); } } } String rotaInicial = manterComandoAcaoCobrancaDetalhesActionForm .getRotaInicial(); if (codigoSetorComercial != null && !codigoSetorComercial.toString().trim().equalsIgnoreCase("")) { if (idLocalidade != null && !idLocalidade.toString().trim().equalsIgnoreCase("")) { if (rotaInicial != null && !rotaInicial.toString().trim().equalsIgnoreCase("")) { FiltroRota filtroRota = new FiltroRota(); filtroRota.adicionarParametro(new ParametroSimples( FiltroRota.CODIGO_ROTA, rotaInicial)); filtroRota.adicionarParametro(new ParametroSimples( FiltroRota.LOCALIDADE_ID, idLocalidade)); filtroRota.adicionarParametro(new ParametroSimples( FiltroRota.SETOR_COMERCIAL_CODIGO, codigoSetorComercial)); Collection rotas = fachada.pesquisar(filtroRota, Rota.class .getName()); if (rotas != null && !rotas.isEmpty()) { } else { throw new ActionServletException( "atencao.pesquisa.rota_inicial_inexistente"); } } } } String rotaFinal = manterComandoAcaoCobrancaDetalhesActionForm .getRotaFinal(); if (codigoSetorComercial != null && !codigoSetorComercial.toString().trim().equalsIgnoreCase("")) { if (idLocalidade != null && !idLocalidade.toString().trim().equalsIgnoreCase("")) { if (rotaFinal != null && !rotaFinal.toString().trim().equalsIgnoreCase("")) { FiltroRota filtroRota = new FiltroRota(); filtroRota.limparListaParametros(); filtroRota.adicionarParametro(new ParametroSimples( FiltroRota.LOCALIDADE_ID, idLocalidade)); filtroRota.adicionarParametro(new ParametroSimples( FiltroRota.SETOR_COMERCIAL_CODIGO, codigoSetorComercial)); filtroRota.adicionarParametro(new ParametroSimples( FiltroRota.CODIGO_ROTA, rotaFinal)); Collection rotas = null; rotas = fachada.pesquisar(filtroRota, Rota.class.getName()); if (rotas != null && !rotas.isEmpty()) { } else { throw new ActionServletException( "atencao.pesquisa.rota_final_inexistente"); } } } } // Verifica se houve altera��o nas Fiscaliza��o Situa��o do comando FiltroCobrancaAcaoAtividadeComandoFiscalizacaoSituacao filtroCobrancaAcaoFisc = new FiltroCobrancaAcaoAtividadeComandoFiscalizacaoSituacao(); filtroCobrancaAcaoFisc.adicionarParametro( new ParametroSimples( FiltroCobrancaAcaoAtividadeComandoFiscalizacaoSituacao.COBRANCA_ACAO_ATIVIDADE_COMANDO_ID, cobrancaAcaoAtividadeComando.getId())); Collection<CobrancaAcaoAtividadeComandoFiscalizacaoSituacao> colecaoCobrancaAcaoFisc = fachada.pesquisar(filtroCobrancaAcaoFisc, CobrancaAcaoAtividadeComandoFiscalizacaoSituacao.class.getName()); String[] fiscalizacaoSituacoes = null; if(!Util.isVazioOrNulo(colecaoCobrancaAcaoFisc)){ fiscalizacaoSituacoes = manterComandoAcaoCobrancaDetalhesActionForm.getSituacaoFiscalizacao(); boolean alterouFiscalizacaoSituacao = false; lacoAtividades : for (CobrancaAcaoAtividadeComandoFiscalizacaoSituacao helper : colecaoCobrancaAcaoFisc) { boolean encontrou = true; for (int i = 0;i < fiscalizacaoSituacoes.length;i++) { if(!fiscalizacaoSituacoes[i].equals( helper.getFiscalizacaoSituacao().getId().toString())){ encontrou = false; } if(!encontrou){ alterouFiscalizacaoSituacao = true; break lacoAtividades; } } } // Se houve altera��o remove os registros em CobrancaAcao Atividade Comando Fiscalizacao Situacao, // e inseri novamente os novos registros. if(alterouFiscalizacaoSituacao){ fachada.removerCobrancaAcaoAtividadeComandoFiscalizacaoSituacao(cobrancaAcaoAtividadeComando.getId()); } } fachada.concluirManterComandoAcaoCobranca( manterComandoAcaoCobrancaDetalhesActionForm.getPeriodoInicialConta(), manterComandoAcaoCobrancaDetalhesActionForm.getPeriodoFinalConta(), manterComandoAcaoCobrancaDetalhesActionForm.getPeriodoVencimentoContaInicial(), manterComandoAcaoCobrancaDetalhesActionForm.getPeriodoVencimentoContaFinal(), manterComandoAcaoCobrancaDetalhesActionForm.getCobrancaAcao(), manterComandoAcaoCobrancaDetalhesActionForm.getCobrancaAtividade(), manterComandoAcaoCobrancaDetalhesActionForm.getCobrancaGrupo(), manterComandoAcaoCobrancaDetalhesActionForm.getGerenciaRegional(), manterComandoAcaoCobrancaDetalhesActionForm.getLocalidadeOrigemID(), manterComandoAcaoCobrancaDetalhesActionForm.getLocalidadeDestinoID(), manterComandoAcaoCobrancaDetalhesActionForm.getSetorComercialOrigemCD(), manterComandoAcaoCobrancaDetalhesActionForm.getSetorComercialDestinoCD(), manterComandoAcaoCobrancaDetalhesActionForm.getIdCliente(), manterComandoAcaoCobrancaDetalhesActionForm.getClienteRelacaoTipo(), manterComandoAcaoCobrancaDetalhesActionForm.getIndicador(), rotaInicial, rotaFinal, manterComandoAcaoCobrancaDetalhesActionForm.getSetorComercialOrigemID(), manterComandoAcaoCobrancaDetalhesActionForm.getSetorComercialDestinoID(), cobrancaAcaoAtividadeComando.getId().toString(), cobrancaAcaoAtividadeComando.getRealizacao(), cobrancaAcaoAtividadeComando.getComando(), cobrancaAcaoAtividadeComando.getUltimaAlteracao(), cobrancaAcaoAtividadeComando.getUsuario(), cobrancaAcaoAtividadeComando.getEmpresa(), cobrancaAcaoAtividadeComando.getQuantidadeDocumentos(), cobrancaAcaoAtividadeComando.getValorDocumentos(), cobrancaAcaoAtividadeComando.getQuantidadeItensCobrados(), idComando, manterComandoAcaoCobrancaDetalhesActionForm.getUnidadeNegocio(), manterComandoAcaoCobrancaDetalhesActionForm.getTitulo(), manterComandoAcaoCobrancaDetalhesActionForm.getDescricaoSolicitacao(), manterComandoAcaoCobrancaDetalhesActionForm.getPrazoExecucao(), manterComandoAcaoCobrancaDetalhesActionForm.getQuantidadeMaximaDocumentos(), manterComandoAcaoCobrancaDetalhesActionForm.getValorLimiteObrigatoria(), manterComandoAcaoCobrancaDetalhesActionForm.getIndicadorImoveisDebito(), manterComandoAcaoCobrancaDetalhesActionForm.getIndicadorGerarBoletimCadastro(), manterComandoAcaoCobrancaDetalhesActionForm.getCodigoClienteSuperior(), manterComandoAcaoCobrancaDetalhesActionForm.getRotaInicial(), manterComandoAcaoCobrancaDetalhesActionForm.getRotaFinal(), manterComandoAcaoCobrancaDetalhesActionForm.getConsumoMedioInicial(), manterComandoAcaoCobrancaDetalhesActionForm.getConsumoMedioFinal(), manterComandoAcaoCobrancaDetalhesActionForm.getTipoConsumo(), manterComandoAcaoCobrancaDetalhesActionForm.getPeriodoInicialFiscalizacao(), manterComandoAcaoCobrancaDetalhesActionForm.getPeriodoFinalFiscalizacao(), manterComandoAcaoCobrancaDetalhesActionForm.getSituacaoFiscalizacao(), manterComandoAcaoCobrancaDetalhesActionForm.getNumeroQuadraInicial(), manterComandoAcaoCobrancaDetalhesActionForm.getNumeroQuadraFinal()); // pesquisar cobranca acao CobrancaAcao cobrancaAcao = fachada .consultarCobrancaAcao(manterComandoAcaoCobrancaDetalhesActionForm .getCobrancaAcao()); // pesquisar cobranca atividade CobrancaAtividade cobrancaAtividade = fachada .consultarCobrancaAtividade(manterComandoAcaoCobrancaDetalhesActionForm .getCobrancaAtividade()); montarPaginaSucesso(httpServletRequest, "A A��o " + cobrancaAcao.getDescricaoCobrancaAcao() + " para a atividade " + cobrancaAtividade.getDescricaoCobrancaAtividade() + " comandada com sucesso", "Manter outro Comando de A��o de Cobran�a", "exibirManterComandoAcaoCobrancaAction.do?menu=sim"); return retorno; } }