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.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.gui.micromedicao.leitura.InserirLeituristaActionForm; import gcom.micromedicao.FiltroLeiturista; import gcom.micromedicao.Leiturista; import gcom.seguranca.acesso.usuario.FiltroUsuario; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ParametroSimples; 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; /** * Action utilizado para inserir um Leiturista no banco * * [UC0588] Inserir Leiturista Permite inserir um Leiturista * * @author Thiago Ten�rio * @since 22/07/2007 */ public class InserirLeituristaAction extends GcomAction { /** * * @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 ActionForward retorno = actionMapping.findForward("telaSucesso"); Fachada fachada = Fachada.getInstancia(); // Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); // Usuario logado no sistema Usuario usuarioLogado = (Usuario) sessao .getAttribute(Usuario.USUARIO_LOGADO); InserirLeituristaActionForm inserirLeituristaActionForm = (InserirLeituristaActionForm) actionForm; // Validar se IMEI possui 15 caracteres if (inserirLeituristaActionForm.getNumeroImei() != null && inserirLeituristaActionForm.getNumeroImei().length() != 15) { throw new ActionServletException("atencao.imei.invalido"); } // Validar se IMEI j� est� cadastrado if (inserirLeituristaActionForm.getNumeroImei() != null && !inserirLeituristaActionForm.getNumeroImei().trim().equals("")) { Long numeroImei = new Long(inserirLeituristaActionForm.getNumeroImei()); FiltroLeiturista filtroLeiturista = new FiltroLeiturista(); filtroLeiturista.adicionarCaminhoParaCarregamentoEntidade(FiltroLeiturista.CLIENTE); filtroLeiturista.adicionarParametro(new ParametroSimples(FiltroLeiturista.IMEI, numeroImei)); Collection pesquisa = fachada.pesquisar(filtroLeiturista, Leiturista.class.getName()); if (pesquisa != null && pesquisa.size() > 0) { Leiturista leiturista = (Leiturista) Util.retonarObjetoDeColecao(pesquisa); throw new ActionServletException("atencao.imei.ja.cadastrado", null, leiturista.getCliente().getNome()); } } // Cria um Leiturista setando os valores informados pelo // usu�rio na pagina para ser inserido no banco Leiturista leiturista = new Leiturista(); // Validamos o Funcionario if (inserirLeituristaActionForm.getIdFuncionario() != null && !inserirLeituristaActionForm.getIdFuncionario().trim().equals("")) { FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarParametro(new ParametroSimples( FiltroFuncionario.ID, inserirLeituristaActionForm .getIdFuncionario())); Collection colFuncionario = fachada.pesquisar(filtroFuncionario, Funcionario.class.getName()); if (colFuncionario == null || !colFuncionario.iterator().hasNext()) { // O funcionario n�o existe throw new ActionServletException("atencao.funcionario.inexistente", null, "Funcionario"); } } // Validamos o cliente FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ID, inserirLeituristaActionForm.getIdCliente())); Collection colCliente = fachada.pesquisar(filtroCliente, Cliente.class .getName()); if (colCliente == null || !colCliente.iterator().hasNext()) { // O cliente n�o existe throw new ActionServletException("atencao.cliente.inexistente", null, "Cliente"); } // Funcionario if (inserirLeituristaActionForm.getIdFuncionario() != null && !inserirLeituristaActionForm.getIdFuncionario().trim().equals("")) { Funcionario funcionario = new Funcionario(); funcionario.setId(new Integer(inserirLeituristaActionForm .getIdFuncionario())); leiturista.setFuncionario(funcionario); } // Cliente Cliente cliente = new Cliente(); cliente.setId(new Integer(inserirLeituristaActionForm.getIdCliente())); leiturista.setCliente(cliente); // Telefone leiturista.setNumeroFone(inserirLeituristaActionForm.getTelefone()); // Numero do IMEI leiturista.setNumeroImei(new Long(inserirLeituristaActionForm.getNumeroImei())); // C�digo DDD do Municipio leiturista.setCodigoDDD(inserirLeituristaActionForm.getDdd()); //Indicador de uso leiturista.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO); // Empresa if (Util.validarNumeroMaiorQueZERO(inserirLeituristaActionForm .getEmpresaID())) { // Constr�i o filtro para pesquisa da Empresa FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.adicionarParametro(new ParametroSimples( FiltroEmpresa.ID, inserirLeituristaActionForm .getEmpresaID())); Collection colecaoEmpresa = (Collection) fachada.pesquisar( filtroEmpresa, Empresa.class.getName()); // setando leiturista.setEmpresa((Empresa) colecaoEmpresa.iterator().next()); } // Inserimos o usu�rio if ( inserirLeituristaActionForm.getLoginUsuario() != null && !inserirLeituristaActionForm.getLoginUsuario().equals( "" ) ){ // Filtra Usuario FiltroUsuario filtroUsuario = new FiltroUsuario(); filtroUsuario.adicionarParametro(new ComparacaoTexto(FiltroUsuario.LOGIN, inserirLeituristaActionForm.getLoginUsuario() ) ); // Recupera Usu�rio Collection<Usuario> colecaoUsuario = fachada.pesquisar(filtroUsuario, Usuario.class.getName()); if (colecaoUsuario != null && !colecaoUsuario.isEmpty()) { Usuario usuario = colecaoUsuario.iterator().next(); leiturista.setUsuario( usuario ); } } // Ultima altera��o leiturista.setUltimaAlteracao(new Date()); // Insere um Leiturista na base, mas fazendo, antes, // algumas verifica��es no ControladorMicromedi��oSEJB. fachada.inserirLeiturista(leiturista, usuarioLogado); // Exibe a p�gina de sucesso montarPaginaSucesso(httpServletRequest, "Leiturista " + leiturista.getId() + " inserido com sucesso.", "Inserir outro Leiturista", "exibirInserirLeituristaAction.do?menu=sim"); return retorno; } }