package gcom.gui.cobranca.spcserasa;
import gcom.cobranca.Negativador;
import gcom.cobranca.NegativadorMovimento;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.spcserasa.FiltroNegativador;
import gcom.spcserasa.FiltroNegativadorMovimento;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.Intervalo;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Date;
import java.util.Map;
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;
/**
* [UC0674] Pesquisar Negativador Movimento
*
* @author Yara Taciane
* @date 27/128/2007
*
*/
public class PesquisarNegativadorMovimentoAction extends GcomAction {
/**
* [UC0674] Esse caso de uso efetua pesquisa de Negativador Movimento
*
* @author Yara Taciane
* @date 27/12/2007
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return ActionForward
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
HttpSession sessao = httpServletRequest.getSession(false);
ActionForward retorno = actionMapping.findForward("listaNegativadorMovimento");
//Obt�m a inst�ncia da Fachada
Fachada fachada = Fachada.getInstancia();
//HttpSession sessao = httpServletRequest.getSession(false);
// Obt�m o action form
PesquisarNegativadorMovimentoActionForm form = (PesquisarNegativadorMovimentoActionForm) actionForm;
// Recupera os par�metros do form
String idNegativador = (String) form.getIdNegativador();
String codigoMovimento = (String) form.getCodigoMovimento();
String numeroSequencialEnvio = (String) form.getNumeroSequencialEnvio();
String dataProcessamentoInicial = (String) form.getDataProcessamentoInicial();
String dataProcessamentoFinal = (String) form.getDataProcessamentoFinal();
boolean peloMenosUmParametroInformado = false;
FiltroNegativadorMovimento filtroNegativadorMovimento = new FiltroNegativadorMovimento();
//verificar se est� certo se esse id � o do cliente ou do negativador
if (idNegativador != null && !idNegativador.equals("-1")) {
filtroNegativadorMovimento.adicionarParametro(new ParametroSimples(FiltroNegativadorMovimento.NEGATIVADOR_ID,idNegativador));
peloMenosUmParametroInformado = true;
} else {
throw new ActionServletException("atencao.required", null,
"Negativador");
}
if (codigoMovimento != null && !codigoMovimento.equals("")) {
if(!codigoMovimento.equals("3")){
filtroNegativadorMovimento.adicionarParametro(new ParametroSimples(
FiltroNegativadorMovimento.CODIGO_MOVIMENTO, new Integer(codigoMovimento)));
peloMenosUmParametroInformado = true;
}
}else {
throw new ActionServletException("atencao.required", null,
"Tipo Movimento");
}
if (numeroSequencialEnvio != null && !numeroSequencialEnvio.equals("") ) {
filtroNegativadorMovimento.adicionarParametro(new ParametroSimples(
FiltroNegativadorMovimento.NUMERO_SEQUENCIAL_ENVIO, new Integer(numeroSequencialEnvio)));
peloMenosUmParametroInformado = true;
}
if ((dataProcessamentoInicial != null && !dataProcessamentoInicial.equals(""))
&& ((dataProcessamentoFinal != null && !dataProcessamentoFinal
.equals("")))) {
if (Util.validarDiaMesAno(dataProcessamentoInicial)) {
throw new ActionServletException(
"atencao.data.inicio.Contrato.invalida");
}
if (Util.validarDiaMesAno(dataProcessamentoFinal)) {
throw new ActionServletException(
"atencao.data.fim.Contrato.invalida");
}
Date dataProcessamentoInicialFormatada = Util.converteStringParaDate(dataProcessamentoInicial);
Date dataProcessamentoFinalFormatada = Util.converteStringParaDate(dataProcessamentoFinal);
if (dataProcessamentoInicialFormatada.after(dataProcessamentoFinalFormatada)) {
String dataInicio = Util.formatarData(dataProcessamentoInicialFormatada);
throw new ActionServletException(
"atencao.data.inicio.nao.superior.data.corrente", null,dataInicio);
}
filtroNegativadorMovimento
.adicionarParametro(new Intervalo(
FiltroNegativadorMovimento.DATA_PROCESSAMENTO_ENVIO,
dataProcessamentoInicialFormatada,
dataProcessamentoFinalFormatada));
}
// Erro caso o usu�rio mandou filtrar sem nenhum par�metro
if (!peloMenosUmParametroInformado) {
throw new ActionServletException("atencao.filtro.nenhum_parametro_informado");
}
// Faz a pesquisa baseada no filtro
Collection collNegativadorMovimento = fachada.pesquisar(filtroNegativadorMovimento, NegativadorMovimento.class.getName());
// Verificar se a pesquisa de NegativadorMovimento n�o est� vazia
if (collNegativadorMovimento != null && !collNegativadorMovimento.isEmpty()) {
// Aciona o controle de pagina��o para que sejam pesquisados apenas
// os registros que aparecem na p�gina
filtroNegativadorMovimento.adicionarCaminhoParaCarregamentoEntidade("negativador.cliente");
Map resultado = controlarPaginacao(httpServletRequest, retorno,
filtroNegativadorMovimento, NegativadorMovimento.class.getName());
collNegativadorMovimento = (Collection) resultado.get("colecaoRetorno");
retorno = (ActionForward) resultado.get("destinoActionForward");
// Manda a cole��o das collNegativadorMovimento pesquisadas para o request
httpServletRequest.getSession(false).setAttribute("collNegativadorMovimento", collNegativadorMovimento);
} else if (collNegativadorMovimento == null || collNegativadorMovimento.isEmpty()) {
// Nenhuma imovel cadastrado
throw new ActionServletException(
"atencao.pesquisa.nenhumresultado", null, "NegativadorMovimento");
} else if (collNegativadorMovimento.size() > ConstantesSistema.NUMERO_MAXIMO_REGISTROS_PESQUISA) {
// Muitos registros encontrados
throw new ActionServletException(
"atencao.pesquisa.muitosregistros");
}
//Exibe na Tela o nome do Cliente Negativador
FiltroNegativador filtroNegativador = new FiltroNegativador();
filtroNegativador.adicionarParametro(new ParametroSimples(FiltroNegativador.ID,idNegativador));
filtroNegativador.adicionarCaminhoParaCarregamentoEntidade("cliente");
Collection collNegativador = fachada.pesquisar(filtroNegativador, Negativador.class.getName());
// Recupera da cole��o o Negativador que vai ser atualizado
Negativador negativador = (Negativador) Util.retonarObjetoDeColecao(collNegativador);
if(negativador != null){
sessao.setAttribute("negativador", negativador);
}
return retorno;
}
}