package gcom.gui.micromedicao.leitura;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.cliente.FiltroEsferaPoder;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.empresa.FiltroEmpresa;
import gcom.cadastro.funcionario.FiltroFuncionario;
import gcom.cadastro.funcionario.Funcionario;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.List;
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;
/**
* Action que define o pr�-processamento da p�gina de pesquisar leiturista
*
* @author Francisco Nascimento
* @date 03/08/2007
*/
public class ExibirPesquisarLeituristaAction extends GcomAction {
/**
* [UC0628] Pesquisar Leiturista
*
* @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 para a tela de pesquisar leiturista
ActionForward retorno = actionMapping.findForward("pesquisarLeiturista");
//Cria uma inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
PesquisarLeituristaActionForm form = (PesquisarLeituristaActionForm) actionForm;
//Pesquisando empresas
if (sessao.getAttribute("colecaoEmpresa") == null){
FiltroEmpresa filtroEmpresa = new FiltroEmpresa(FiltroEsferaPoder.DESCRICAO);
filtroEmpresa.setConsultaSemLimites(true);
filtroEmpresa.adicionarParametro(new ParametroSimples(FiltroEsferaPoder.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa,
Empresa.class.getName());
if (colecaoEmpresa == null || colecaoEmpresa.isEmpty()){
throw new ActionServletException("atencao.entidade_sem_dados_para_selecao", null, "EMPRESA");
}
sessao.setAttribute("colecaoEmpresa", colecaoEmpresa);
}
//Fim de pesquisando empresas
// -------Parte que trata do c�digo quando o usu�rio tecla enter
// caso seja o id do cliente
String idDigitadoEnterCliente = form.getIdCliente();
String idDigitadoFuncionario = form.getIdFuncionario();
// Verifica se o c�digo foi digitado
if (idDigitadoEnterCliente != null
&& !idDigitadoEnterCliente.trim().equals("")) {
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, idDigitadoEnterCliente));
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection clienteEncontrado = fachada.pesquisar(filtroCliente,
Cliente.class.getName());
if (clienteEncontrado != null && !clienteEncontrado.isEmpty()) {
// O cliente foi encontrado
form.setIdCliente("" + ((Cliente) ((List) clienteEncontrado).get(0))
.getId());
form.setNomeCliente(((Cliente) ((List) clienteEncontrado).get(0))
.getNome());
// idClienteEncontrado no jsp, ser� verificada a presen�a deste campo para
// identificar se algum objeto foi encontrado
httpServletRequest.setAttribute("idClienteEncontrado",
"true");
httpServletRequest.setAttribute("nomeCampo","idCliente");
} else {
form.setIdCliente("");
//httpServletRequest.setAttribute("idClienteNaoEncontrado",
// "exception");
form.setNomeCliente("CLIENTE INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo","DDDTelefone");
}
}
// Verifica se o c�digo foi digitado
if (idDigitadoFuncionario != null
&& !idDigitadoFuncionario.trim().equals("")) {
FiltroFuncionario filtroFuncionario = new FiltroFuncionario();
filtroFuncionario.adicionarParametro(new ParametroSimples(
FiltroFuncionario.ID, idDigitadoFuncionario));
Collection funcionarioEncontrado = fachada.pesquisar(filtroFuncionario,
Funcionario.class.getName());
if (funcionarioEncontrado != null && !funcionarioEncontrado.isEmpty()) {
// O cliente foi encontrado
form.setIdFuncionario("" + ((Funcionario) ((List) funcionarioEncontrado).get(0))
.getId());
form.setNomeFuncionario(((Funcionario) ((List) funcionarioEncontrado).get(0))
.getNome());
// idFuncionarioEncontrado no jsp, ser� verificada a presen�a deste campo para
// identificar se algum objeto foi encontrado
httpServletRequest.setAttribute("idFuncionarioEncontrado",
"true");
httpServletRequest.setAttribute("nomeCampo","idCliente");
} else {
form.setIdFuncionario("");
form.setNomeFuncionario("FUNCION�RIO INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo","idFuncionario");
}
}
if (httpServletRequest.getParameter("tipoConsulta") != null
&& !httpServletRequest.getParameter("tipoConsulta").equals("")) {
// Verifica se o tipo da consulta de leiturista � de cliente
// se for os parametros de enviarDadosParametros ser�o mandados para
// a pagina leiturista_pesquisar.jsp
if (httpServletRequest.getParameter("tipoConsulta") != null){
if (httpServletRequest.getParameter("tipoConsulta").equals(
"cliente")) {
form.setIdCliente(httpServletRequest
.getParameter("idCampoEnviarDados"));
form.setNomeCliente(httpServletRequest
.getParameter("descricaoCampoEnviarDados"));
httpServletRequest.setAttribute("idClienteEncontrado",
"true");
} else if (httpServletRequest.getParameter("tipoConsulta").equals(
"funcionario")) {
form.setIdFuncionario(httpServletRequest
.getParameter("idCampoEnviarDados"));
form.setNomeFuncionario(httpServletRequest
.getParameter("descricaoCampoEnviarDados"));
httpServletRequest.setAttribute("idFuncionarioEncontrado",
"true");
}
}
} else {
if (httpServletRequest.getParameter("objetoConsulta") == null
|| httpServletRequest.getParameter("objetoConsulta")
.equals("")) {
form.setEmpresa("");
form.setIdFuncionario("");
form.setNomeFuncionario("");
form.setIdCliente("");
form.setNomeCliente("");
form.setDDDTelefone("");
form.setNumeroTelefone("");
sessao.removeAttribute("caminhoRetornoTelaPesquisa");
sessao.removeAttribute("caminhoRetornoTelaPesquisaCliente");
sessao.removeAttribute("caminhoRetornoTelaPesquisaFuncionario");
}
}
if (httpServletRequest
.getParameter("caminhoRetornoTelaPesquisaLeiturista") != null) {
sessao.setAttribute(
"caminhoRetornoTelaPesquisaLeiturista",
httpServletRequest.getParameter("caminhoRetornoTelaPesquisaLeiturista"));
}
//Retorna o mapeamento contido na vari�vel retorno
return retorno;
}
}