package gcom.gui.atendimentopublico.ordemservico; import gcom.atendimentopublico.ordemservico.Equipe; import gcom.atendimentopublico.ordemservico.ServicoPerfilTipo; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.interceptor.RegistradorOperacao; import gcom.seguranca.acesso.Operacao; import gcom.seguranca.acesso.OperacaoEfetuada; import gcom.seguranca.acesso.usuario.FiltroUsuario; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAcao; import gcom.seguranca.acesso.usuario.UsuarioAcaoUsuarioHelper; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; 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; /** * [UC0371] Inserir Equipe * * @author Leonardo Regis * @created 24 de Julho de 2006 */ public class InserirEquipeAction extends GcomAction { /** * [UC0371] Inserir Equipe * * [UC0107] Registrar Transa��o * * @author Leonardo Regis * @date 21/07/2006 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta Retorno (Forward = Sucesso) ActionForward retorno = actionMapping.findForward("telaSucesso"); // Form InserirEquipeActionForm inserirEquipeActionForm = (InserirEquipeActionForm) actionForm; // Fachada Fachada fachada = Fachada.getInstancia(); // Sess�o HttpSession sessao = httpServletRequest.getSession(false); // Usuario logado no sistema Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); // Registrando a opera��o RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_EQUIPE_INSERIR, new UsuarioAcaoUsuarioHelper(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_EQUIPE_INSERIR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); // Equipe Equipe equipe = null; if (inserirEquipeActionForm.getUnidadeOrganizacional() != null) { // Recupera informa��es da equipe equipe = getEquipe(inserirEquipeActionForm); // Faz as valida��es de inser��o de equipe fachada.validarInsercaoEquipe(equipe); // Faz as valida��es de inser��o de equipe componentes fachada.validarInsercaoEquipeComponentes(inserirEquipeActionForm.getEquipeComponentes()); // Faz as valida��es de inser��o de equipe equipamentos especiais fachada.validarInsercaoEquipeEquipamentosEspeciais(inserirEquipeActionForm.getEquipeEquipamentosEspeciais()); // Insere Equipe long idEquipe = fachada.inserirEquipe(equipe, inserirEquipeActionForm.getEquipeComponentes(), inserirEquipeActionForm.getEquipeEquipamentosEspeciais(), usuario); // [FS008] Monta a p�gina de sucesso montarPaginaSucesso(httpServletRequest, "Inser��o da Equipe "+equipe.getNome()+" efetuada com sucesso!", "Efetuar outra Inser��o de Equipe", "exibirInserirEquipeAction.do?menu=sim", "exibirAtualizarEquipeAction.do?equipeID="+ idEquipe, "Atualizar Equipe Inserida"); } return retorno; } /** * Insere Cole��o de Componentes devidamente validados na base * * @author Leonardo Regis * @date 29/07/2006 * * @param inserirEquipeActionForm * @param fachada * @param equipe */ /*private void inserirEquipeComponentes(InserirEquipeActionForm inserirEquipeActionForm, OperacaoEfetuada operacaoEfetuada, Equipe equipe, RegistradorOperacao registradorOperacao,Usuario usuario) { // Fachada Fachada fachada = Fachada.getInstancia(); // Cole��o de Componentes Collection colecaoEquipeComponentes = inserirEquipeActionForm.getEquipeComponentes(); for (Iterator iter = colecaoEquipeComponentes.iterator(); iter.hasNext();) { EquipeComponentes element = (EquipeComponentes) iter.next(); element.setEquipe(equipe); // Registra opera��o element.setOperacaoEfetuada(operacaoEfetuada); element.adicionarUsuario(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(element); // Insere componente fachada.inserirEquipeComponentes(element); } }*/ /** * Insere Cole��o de equipamentos especiais devidamente validados na base * * @author Nathalia Santos * @date 20/06/2011 * * @param inserirEquipeActionForm * @param Quantidade * @param fachada * @param EquipeEquipamentosEspeciais */ /*private void inserirEquipeEquipamentosEspeciais( InserirEquipeActionForm inserirEquipeActionForm, OperacaoEfetuada operacaoEfetuada, Equipe equipe, RegistradorOperacao registradorOperacao, Usuario usuario, Integer Quantidade) { // Fachada Fachada fachada = Fachada.getInstancia(); // Cole��o de Equipamentos especiais Collection colecaoEquipeEquipamentosEspeciais = inserirEquipeActionForm .getEquipeEquipamentosEspeciais(); for (Iterator iter = colecaoEquipeEquipamentosEspeciais.iterator(); iter .hasNext();) { EquipeEquipamentosEspeciais element = (EquipeEquipamentosEspeciais) iter .next(); element.setQuantidade(new Integer(inserirEquipeActionForm .getQuantidade())); // Registra opera��o element.setOperacaoEfetuada(operacaoEfetuada); element.adicionarUsuario(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(element); fachada.inserirEquipeEquipamentosEspeciais(element); } }*/ /** * Recupera Equipe com informa��es vindas da tela * * @author Leonardo Regis * @date 29/07/2006 * * @param inserirEquipeActionForm * @param fachada * @param equipe */ private Equipe getEquipe(InserirEquipeActionForm inserirEquipeActionForm) { Equipe equipe; // Cria objeto Equipe equipe = new Equipe(); equipe.setNome(inserirEquipeActionForm.getNomeEquipe()); equipe.setPlacaVeiculo(inserirEquipeActionForm.getPlacaVeiculo()); // Seta valor da carga hor�ria no banco convertido para minuto int cargaHoraria = Integer.parseInt(inserirEquipeActionForm.getCargaTrabalhoDia())*60; equipe.setCargaTrabalho(cargaHoraria); // Unidade Organizacional UnidadeOrganizacional unidadeOrganizacional = new UnidadeOrganizacional(); unidadeOrganizacional.setId(new Integer(inserirEquipeActionForm.getUnidadeOrganizacionalId())); equipe.setUnidadeOrganizacional(unidadeOrganizacional); // Tipo Perfil Servico if(inserirEquipeActionForm.getTipoPerfilServicoId() != null && !inserirEquipeActionForm.getTipoPerfilServicoId().equals("")){ ServicoPerfilTipo servicoPerfilTipo = new ServicoPerfilTipo(); servicoPerfilTipo.setId(new Integer(inserirEquipeActionForm.getTipoPerfilServicoId())); equipe.setServicoPerfilTipo(servicoPerfilTipo); } equipe.setUltimaAlteracao(new Date()); equipe.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO); equipe.setCodigoDdd(inserirEquipeActionForm.getCodigoDdd()); equipe.setNumeroTelefone(inserirEquipeActionForm.getNumeroTelefone()); equipe.setNumeroImei(new BigDecimal(inserirEquipeActionForm.getNumeroImei())); /* * -Erivan- * Verifica a existencia do c�digo do usu�rio informado, * caso exista, insere na equipe */ FiltroUsuario filtroUsuario = new FiltroUsuario(); filtroUsuario.adicionarParametro(new ParametroSimples(FiltroUsuario.ID, inserirEquipeActionForm.getCdUsuarioRespExecServico())); Collection colecaoUsuario = Fachada.getInstancia().pesquisar(filtroUsuario, Usuario.class.getName()); if(colecaoUsuario != null && !colecaoUsuario.isEmpty()){ equipe.setUsuarioRespExecServico((Usuario)colecaoUsuario.iterator().next()); }else{ throw new ActionServletException("atencao.pesquisa.usuario.inexistente"); } equipe.setIndicadorProgramacaoAutomatica(new Short(inserirEquipeActionForm.getIndicadorProgramacaoAutomatica())); return equipe; } }