package gcom.gui.micromedicao.leitura; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.FiltroCliente; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.funcionario.FiltroFuncionario; import gcom.cadastro.funcionario.Funcionario; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.gui.micromedicao.leitura.InserirLeituristaActionForm; import gcom.seguranca.acesso.usuario.FiltroUsuario; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.filtro.ComparacaoTexto; 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; /** * [UC0588]Inserir Leiturista * * @author Thiago Ten�rio * @date 22/07/2007 */ public class ExibirInserirLeituristaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("exibirInserirLeiturista"); Fachada fachada = Fachada.getInstancia(); // Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); InserirLeituristaActionForm form = (InserirLeituristaActionForm) actionForm; //Usu�rio if (form.getLoginUsuario() != null && !form.getLoginUsuario().equals("")) { getUsuario(form, fachada, form.getLoginUsuario(), sessao); } if ((httpServletRequest.getParameter("desfazer") != null && httpServletRequest .getParameter("desfazer").equalsIgnoreCase("S"))) { // -------------- bt DESFAZER --------------- // Limpando o formulario form.setIdFuncionario(""); form.setDescricaoFuncionario(""); form.setEmpresaID(""); form.setIdCliente(""); form.setDescricaoCliente(""); form.setDdd(""); form.setTelefone(""); form.setNumeroImei(""); } // Bloquear o campo Empresa quando a empresa do usuario nao seja a empresa do sistema SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); if (usuario.getEmpresa() == null) { throw new ActionServletException("atencao.pesquisa_inexistente", null, "Empresa do usu�rio logado."); } if (!usuario.getEmpresa().getDescricao().equals(sistemaParametro.getNomeAbreviadoEmpresa())) { sessao.setAttribute("bloquearEmpresa", true); form.setEmpresaID(usuario.getEmpresa().getId().toString()); } // Verificar Exist�ncia do Leiturista Respons�vel(Funcionario) if ((form.getIdFuncionario() != null && !form.getIdFuncionario() .equals(""))) { FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarParametro(new ParametroSimples( FiltroFuncionario.ID, form.getIdFuncionario())); Collection colecaoFuncionario = fachada.pesquisar( filtroFuncionario, Funcionario.class.getName()); if (colecaoFuncionario != null && !colecaoFuncionario.isEmpty()) { Funcionario funcionario = (Funcionario) colecaoFuncionario .iterator().next(); form.setDescricaoFuncionario(funcionario.getNome()); } else { httpServletRequest.setAttribute("funcionarioEncontrado", "exception"); form.setIdFuncionario(""); form.setDescricaoFuncionario("FUNCIONARIO INEXISTENTE"); } } if (httpServletRequest.getParameter("menu") != null && !httpServletRequest.getParameter("menu").equals("")) { httpServletRequest.setAttribute("nomeCampo", "idFuncionario"); } // Verificar Exist�ncia do Leiturista Respons�vel(Cliente) if ((form.getIdCliente() != null && !form.getIdCliente().equals(""))) { FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.ID, form.getIdCliente())); Collection colecaoCliente = fachada.pesquisar(filtroCliente, Cliente.class.getName()); if (colecaoCliente != null && !colecaoCliente.isEmpty()) { Cliente cliente = (Cliente) colecaoCliente.iterator().next(); form.setDescricaoCliente(cliente.getNome()); } else { httpServletRequest.setAttribute("clienteEncontrado", "exception"); form.setIdCliente(""); form.setDescricaoCliente("CLIENTE INEXISTENTE"); } } // Empresa FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.setCampoOrderBy(FiltroEmpresa.DESCRICAO); filtroEmpresa.adicionarParametro(new ParametroSimples( FiltroEmpresa.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoPesquisa = null; // Retorna empresa colecaoPesquisa = fachada.pesquisar(filtroEmpresa, Empresa.class .getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { // Nenhum registro na tabela localidade_porte foi encontrado throw new ActionServletException( "atencao.pesquisa.nenhum_registro_tabela", null, "Empresa"); } else { sessao.setAttribute("colecaoEmpresa", colecaoPesquisa); } // Constr�i filtro para pesquisa da Empresa filtroEmpresa.setCampoOrderBy(FiltroEmpresa.ID); filtroEmpresa.adicionarParametro(new ParametroSimples(FiltroEmpresa.ID, ConstantesSistema.INDICADOR_USO_ATIVO)); sessao.setAttribute("colecaoEmpresa", fachada.pesquisar(filtroEmpresa, Empresa.class.getName(), "EMPRESA")); httpServletRequest.setAttribute("colecaoEmpresa", colecaoPesquisa); if (httpServletRequest.getParameter("menu") != null && !httpServletRequest.getParameter("menu").equals("")) { httpServletRequest.setAttribute("nomeCampo", "idCliente"); } return retorno; } /** * Recupera o Usu�rio * * @author Bruno Barros * @date 11/12/2006 * * @param inserirLeituristaActionForm * @param fachada * @param idUsuario * @return Descri��o da Unidade Filtrada */ private void getUsuario(InserirLeituristaActionForm inserirLeituristaActionForm, Fachada fachada, String idUsuario, HttpSession sessao) { // Filtra Usuario FiltroUsuario filtroUsuario = new FiltroUsuario(); filtroUsuario.adicionarParametro(new ComparacaoTexto(FiltroUsuario.LOGIN, idUsuario)); // Recupera Usu�rio Collection<Usuario> colecaoUsuario = fachada.pesquisar(filtroUsuario, Usuario.class.getName()); if (colecaoUsuario != null && !colecaoUsuario.isEmpty()) { Usuario usuario = colecaoUsuario.iterator().next(); sessao.setAttribute("usuarioEncontrado","true"); inserirLeituristaActionForm.setNomeUsuario(usuario.getNomeUsuario()); } else { sessao.removeAttribute("usuarioEncontrado"); inserirLeituristaActionForm.setLoginUsuario(""); inserirLeituristaActionForm.setNomeUsuario("Usu�rio Inexistente"); } } }