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.CobrancaAtividade; 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.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Date; 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; /** * [UC0243] Inserir Comando de A��o de Conbran�a - Tipo de Comando Cronograma */ public class InserirComandoAcaoCobrancaEventualCriterioComandoConcluirAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { ActionForward retorno = actionMapping.findForward("telaSucesso"); HttpSession sessao = request.getSession(false); Fachada fachada = Fachada.getInstancia(); InserirComandoAcaoCobrancaEventualCriterioComandoActionForm form = null; if (sessao.getAttribute("inserirComandoAcaoCobrancaEventualCriterioComandoActionForm") != null) { form = (InserirComandoAcaoCobrancaEventualCriterioComandoActionForm) sessao.getAttribute("inserirComandoAcaoCobrancaEventualCriterioComandoActionForm"); } String idComando = request.getParameter("idComando"); String idLocalidadeInicial = form.getLocalidadeOrigemID(); String idLocalidadeFinal = form.getLocalidadeDestinoID(); String codigoSetorComercialInicial = form.getSetorComercialOrigemCD(); String codigoSetorComercialFinal = form.getSetorComercialDestinoCD(); validarLocalidadeInicial(fachada, idLocalidadeInicial); validarSetorComercialInicial(fachada, idLocalidadeInicial, codigoSetorComercialInicial); validarLocalidadeFinal(fachada, idLocalidadeInicial, idLocalidadeFinal); validarSetorComercialFinal(fachada, idLocalidadeInicial, idLocalidadeFinal, codigoSetorComercialInicial, codigoSetorComercialFinal); String codigoRotaInicial = form.getRotaInicial(); String idRotaInicial = validarRotaInicial(fachada, idLocalidadeInicial, codigoSetorComercialInicial, codigoRotaInicial); String codigoRotaFinal = form.getRotaFinal(); String idRotaFinal = validarRotaFinal(fachada, idLocalidadeFinal, codigoSetorComercialFinal, codigoRotaFinal); validarDataVencimentoContaFinal(form); Collection colecaoCobrancaAcaoAtividadeComando = fachada.concluirComandoAcaoCobranca( form.getPeriodoInicialConta(), form.getPeriodoFinalConta(), form.getPeriodoVencimentoContaInicial(), form.getPeriodoVencimentoContaFinal(), form.getCobrancaAcao(), form.getCobrancaAtividade(), form.getCobrancaGrupo(), form.getGerenciaRegional(), form.getLocalidadeOrigemID(), form.getLocalidadeDestinoID(), form.getSetorComercialOrigemCD(), form.getSetorComercialDestinoCD(), form.getIdCliente(), form.getClienteRelacaoTipo(), form.getIndicador(), idRotaInicial, idRotaFinal, form.getSetorComercialOrigemID(), form.getSetorComercialDestinoID(), idComando, form.getUnidadeNegocio(), this.getUsuarioLogado(request), form.getTitulo(), form.getDescricaoSolicitacao(), form.getPrazoExecucao(), form.getQuantidadeMaximaDocumentos(), form.getValorLimiteObrigatoria(), form.getIndicadorImoveisDebito(), form.getIndicadorGerarBoletimCadastro(), form.getCodigoClienteSuperior(), codigoRotaInicial, codigoRotaFinal, form.getLogradouroId(), form.getConsumoMedioInicial(), form.getConsumoMedioFinal(), form.getTipoConsumo(), form.getPeriodoInicialFiscalizacao(), form.getPeriodoFinalFiscalizacao(), form.getSituacaoFiscalizacao(), form.getNumeroQuadraInicial(), form.getNumeroQuadraFinal()); CobrancaAtividade cobrancaAtividade = fachada.consultarCobrancaAtividade(form.getCobrancaAtividade()); montarPaginaSucesso(request, " " + colecaoCobrancaAcaoAtividadeComando.size() + " A��o(�es) de cobran�a para a atividade " + cobrancaAtividade.getDescricaoCobrancaAtividade() + " comandada(s) com sucesso.", "Inserir outra Comando de A��o de Cobran�a", "exibirInserirComandoAcaoCobrancaAction.do?limparForm=OK&menu=sim"); return retorno; } private void validarDataVencimentoContaFinal(InserirComandoAcaoCobrancaEventualCriterioComandoActionForm form) { try { DateFormat formato = new SimpleDateFormat("dd/MM/yyyy"); Date periodoVencimentoContaFinal = (Date) formato.parse(form.getPeriodoVencimentoContaFinal()); Short numeroDiasVencimentoCobranca = this.getFachada().pesquisarParametrosDoSistema().getNumeroDiasVencimentoCobranca(); Date dataVencimentoFinalCobranca = Util.subtrairNumeroDiasDeUmaData(new Date(), numeroDiasVencimentoCobranca.intValue()); dataVencimentoFinalCobranca = Util.formatarDataFinal(dataVencimentoFinalCobranca); if (periodoVencimentoContaFinal.after(dataVencimentoFinalCobranca)) { throw new ActionServletException("atencao.periodo_final_invalido"); } } catch (ParseException e) { e.printStackTrace(); } } private String validarRotaFinal(Fachada fachada, String idLocalidadeFinal, String codigoSetorComercialFinal, String codigoRotaFinal) { String idRotaFinal = null; if ((idLocalidadeFinal != null && !idLocalidadeFinal.equals("")) && (codigoSetorComercialFinal != null && !codigoSetorComercialFinal.equals("")) && (codigoRotaFinal != null && !codigoRotaFinal.equals(""))) { FiltroRota filtroRota = new FiltroRota(); filtroRota.limparListaParametros(); filtroRota.adicionarParametro(new ParametroSimples(FiltroRota.LOCALIDADE_ID, idLocalidadeFinal)); filtroRota.adicionarParametro(new ParametroSimples(FiltroRota.SETOR_COMERCIAL_CODIGO, codigoSetorComercialFinal)); filtroRota.adicionarParametro(new ParametroSimples(FiltroRota.CODIGO_ROTA, codigoRotaFinal)); Collection rotas = fachada.pesquisar(filtroRota, Rota.class.getName()); if (rotas != null && !rotas.isEmpty()) { idRotaFinal = ((Rota) rotas.iterator().next()).getId().toString(); } else { throw new ActionServletException("atencao.pesquisa.rota_final_inexistente"); } } return idRotaFinal; } private String validarRotaInicial(Fachada fachada, String idLocalidadeInicial, String codigoSetorComercialInicial, String codigoRotaInicial) { String idRotaInicial = null; if ((idLocalidadeInicial != null && !idLocalidadeInicial.equals("")) && (codigoSetorComercialInicial != null && !codigoSetorComercialInicial.equals("")) && (codigoRotaInicial != null && !codigoRotaInicial.equals(""))) { FiltroRota filtroRota = new FiltroRota(); filtroRota.adicionarParametro(new ParametroSimples(FiltroRota.CODIGO_ROTA, codigoRotaInicial)); filtroRota.adicionarParametro(new ParametroSimples(FiltroRota.LOCALIDADE_ID, idLocalidadeInicial)); filtroRota.adicionarParametro(new ParametroSimples(FiltroRota.SETOR_COMERCIAL_CODIGO, codigoSetorComercialInicial)); Collection rotas = fachada.pesquisar(filtroRota, Rota.class.getName()); if (rotas != null && !rotas.isEmpty()) { idRotaInicial = ((Rota) rotas.iterator().next()).getId().toString(); } else { throw new ActionServletException("atencao.pesquisa.rota_inicial_inexistente"); } } return idRotaInicial; } private void validarSetorComercialFinal(Fachada fachada, String idLocalidadeInicial, String idLocalidadeFinal, String codigoSetorComercialInicial, String codigoSetorComercialFinal) { FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); if (codigoSetorComercialInicial != null && !codigoSetorComercialInicial.toString().trim().equalsIgnoreCase("")) { if (idLocalidadeInicial != null && !idLocalidadeInicial.toString().trim().equalsIgnoreCase("")) { filtroSetorComercial.limparListaParametros(); 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))); Collection setorComerciais = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (setorComerciais == null || setorComerciais.isEmpty()) { throw new ActionServletException("atencao.pesquisa.setor_final_inexistente"); } } } } private void validarLocalidadeFinal(Fachada fachada, String idLocalidadeInicial, String idLocalidadeFinal) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); if (idLocalidadeInicial != null && !idLocalidadeInicial.toString().trim().equalsIgnoreCase("")) { filtroLocalidade.limparListaParametros(); filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, new Integer(idLocalidadeFinal))); Collection localidades = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (localidades == null || localidades.isEmpty()) { throw new ActionServletException("atencao.pesquisa.localidade_final_inexistente"); } } } private void validarSetorComercialInicial(Fachada fachada, String idLocalidadeInicial, String codigoSetorComercialInicial) { FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); if (codigoSetorComercialInicial != null && !codigoSetorComercialInicial.toString().trim().equalsIgnoreCase("")) { if (idLocalidadeInicial != null && !idLocalidadeInicial.toString().trim().equalsIgnoreCase("")) { filtroSetorComercial.limparListaParametros(); filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, new Integer(idLocalidadeInicial))); filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, new Integer(codigoSetorComercialInicial))); Collection setorComerciais = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (setorComerciais == null || setorComerciais.isEmpty()) { throw new ActionServletException("atencao.pesquisa.setor_inicial_inexistente"); } } } } private void validarLocalidadeInicial(Fachada fachada, String idLocalidadeInicial) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); if (idLocalidadeInicial != null && !idLocalidadeInicial.toString().trim().equalsIgnoreCase("")) { filtroLocalidade.limparListaParametros(); filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, new Integer(idLocalidadeInicial))); Collection localidades = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (localidades == null || localidades.isEmpty()) { throw new ActionServletException("atencao.pesquisa.localidade_inicial_inexistente"); } } } }