package gcom.gui.cobranca.contratoparcelamento;
import gcom.cobranca.contratoparcelamento.ContratoParcelamentoCliente;
import gcom.cobranca.contratoparcelamento.FiltroContratoParcelamentoCliente;
import gcom.cobranca.parcelamento.ParcelamentoSituacao;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.FiltroUsuario;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.Util;
import gcom.util.filtro.ComparacaoTexto;
import gcom.util.filtro.ParametroNulo;
import gcom.util.filtro.ParametroSimples;
import gcom.util.filtro.ParametroSimplesDiferenteDe;
import java.util.Collection;
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;
public class RetornarContratoParcelamentoPesquisarAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Inicializacoes de variaveis
ActionForward retorno = actionMapping
.findForward("retornoPesquisa");
HttpSession sessao = httpServletRequest.getSession(false);
PesquisarContratoParcelamentoActionForm form = (PesquisarContratoParcelamentoActionForm) actionForm;
String numeroContrato = form.getNumeroContrato();
String dataContrato = form.getDataContrato();
String loginUsuario = form.getLoginUsuario();
String clienteAutocomplete = form.getAutocompleteCliente();
String indicadorSituacao = form.getIndicadorSituacao();
FiltroContratoParcelamentoCliente filtro = new FiltroContratoParcelamentoCliente();
filtro.adicionarParametro(new ParametroNulo(FiltroContratoParcelamentoCliente.ID_CLIENTE_SUPERIOR));
boolean peloMenosUm = false;
if(numeroContrato != null && !numeroContrato.equals("")){
peloMenosUm = true;
filtro.adicionarParametro(new ComparacaoTexto(
FiltroContratoParcelamentoCliente.NUMERO_CONTRATO, numeroContrato));
}
if(dataContrato != null && !dataContrato.equals("")){
peloMenosUm = true;
filtro.adicionarParametro(new ParametroSimples(
FiltroContratoParcelamentoCliente.DATA_CONTRATO, dataContrato));
}
if(indicadorSituacao != null && !indicadorSituacao.equals("")){
peloMenosUm = true;
//Encerrados
if(indicadorSituacao.equals("2")){
filtro.adicionarParametro(new ParametroSimplesDiferenteDe(
FiltroContratoParcelamentoCliente.PARCEL_SITUACAO_ID, ParcelamentoSituacao.NORMAL + ""));
//N�o Encerrados
}else if(indicadorSituacao.equals("1")){
filtro.adicionarParametro(new ParametroSimples(
FiltroContratoParcelamentoCliente.PARCEL_SITUACAO_ID, indicadorSituacao));
}
}
if (loginUsuario != null && !loginUsuario.trim().equals("")){
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(FiltroUsuario.LOGIN, form.getLoginUsuario()));
Collection colecaoUsuario = Fachada.getInstancia().pesquisar(filtroUsuario, Usuario.class.getName());
if (colecaoUsuario != null && !colecaoUsuario.isEmpty()) {
Usuario usuario = (Usuario) Util.retonarObjetoDeColecao(colecaoUsuario);
peloMenosUm = true;
filtro.adicionarParametro(new ParametroSimples(
FiltroContratoParcelamentoCliente.USUARIO_RESPONSAVEL_ID, usuario.getId()));
}
}else{
sessao.removeAttribute("usuarioResponsavel");
}
if (clienteAutocomplete != null && !"".equals(clienteAutocomplete)
&& clienteAutocomplete.contains("-")){
int id = Integer.parseInt(clienteAutocomplete.split(" - ")[0].trim());
peloMenosUm = true;
filtro.adicionarParametro(new ComparacaoTexto(
FiltroContratoParcelamentoCliente.ID_CLIENTE, id+""));
}else{
sessao.removeAttribute("cliente");
}
if (!peloMenosUm){
ActionServletException ex = new ActionServletException("atencao.filtro.nenhum_parametro_informado");
ex.setUrlBotaoVoltar("/gsan/exibirContratoParcelamentoPesquisar.do?indicadorUsoTodos=1&tipoConsulta=contratoAnterior&indicadorPesquisaApenasContEncerrados=1");
throw ex;
}
filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroContratoParcelamentoCliente.CONTRATO);
filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroContratoParcelamentoCliente.CLIENTE);
Map resultado = controlarPaginacao(httpServletRequest, retorno,
filtro, ContratoParcelamentoCliente.class.getName());
Collection collContratoParcelamento = (Collection) resultado.get("colecaoRetorno");
retorno = (ActionForward) resultado.get("destinoActionForward");
//Valida��es
if (collContratoParcelamento == null || collContratoParcelamento.isEmpty()) {
ActionServletException ex = new ActionServletException("atencao.pesquisa.nenhumresultado", null, "contratoParcelamento");
ex.setUrlBotaoVoltar("/gsan/exibirContratoParcelamentoPesquisar.do?indicadorUsoTodos=1&tipoConsulta=contratoAnterior&indicadorPesquisaApenasContEncerrados=1");
throw ex;
} else {
sessao.setAttribute("collContratoParcelamento", collContratoParcelamento);
}
String popup = (String) sessao.getAttribute("popup");
if (popup != null && popup.equals("2")) {
sessao.setAttribute("popup", popup);
} else {
sessao.removeAttribute("popup");
}
return retorno;
}
}