/// <summary>
        /// Método utilizado para criar uma configuração para um colaborador em um determinado cronograma
        /// </summary>
        /// <param name="contexto">contexto do banco</param>
        /// <param name="login"></param>
        /// <param name="oidCronograma">oid do cronograma atual</param>
        /// <returns>ColaboradorCronogramaConfig para armazenar as configurações do colaborador</returns>
        public static CronogramaColaboradorConfig SalvarCronogramaColaboradorConfig(WexDb contexto, string login, Guid oidCronograma)
        {
            Cronograma cronograma = CronogramaDao.ConsultarCronogramaPorOid(oidCronograma);

            if (cronograma == null)
            {
                return(null);
            }

            Colaborador colaborador = ColaboradorDAO.ConsultarColaborador(login);

            if (colaborador == null)
            {
                return(null);
            }

            CronogramaColaboradorConfig config = ConsultarCronogramaColaboradorConfig(contexto, login, oidCronograma);

            if (config != null)
            {
                return(config);
            }

            config = new CronogramaColaboradorConfig()
            {
                OidCronograma  = cronograma.Oid,
                OidColaborador = colaborador.Oid
            };

            contexto.CronogramaColaboradorConfig.Add(config);
            contexto.SaveChanges();

            return(config);
        }
Пример #2
0
        /// <summary>
        /// Método responsável por criar um histórico para uma determinada tarefa.
        /// </summary>
        ///
        /// <param name="oidTarefa">Oid da Tarefa</param>
        /// <param name="login">Login do usuário</param>
        /// <param name="nbHoraRealizado">Horas realizadas na atividade.</param>
        /// <param name="dtRealizado">Data de realização da atividade.</param>
        /// <param name="nbHoraInicial">Hora Inicial da atividade</param>
        /// <param name="nbHoraFinal">Hora Final da atividade</param>
        /// <param name="txComentario">Comentário da atividade</param>
        /// <param name="nbHoraRestante">Horas restantes da atividade</param>
        /// <param name="oidSituacaoPlanejamento">Oid da Situação Planejamento da atividade</param>
        /// <param name="txJustificativaReducao">Justificativa de redução da atividade</param>
        public static void CriarHistoricoTarefa(Guid oidTarefa, string login, TimeSpan nbHoraRealizado, DateTime dtRealizado, TimeSpan nbHoraInicial, TimeSpan nbHoraFinal, string txComentario, TimeSpan nbHoraRestante, Guid oidSituacaoPlanejamento, string txJustificativaReducao)
        {
            if (oidTarefa == new Guid() || String.IsNullOrEmpty(login))
            {
                throw new ArgumentException("Os parâmetros Login e OidTarefa não podem ser nulos.");
            }

            TarefaHistoricoTrabalho historico = new TarefaHistoricoTrabalho();
            Tarefa      tarefa      = TarefaDao.ConsultarTarefaPorOid(oidTarefa);
            Colaborador colaborador = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario.Person);

            if (tarefa == null)
            {
                return;
            }

            SituacaoPlanejamento situacaoPlanejamento = SituacaoPlanejamentoDAO.ConsultarSituacaoPlanejamentoPorOid(oidSituacaoPlanejamento);

            if (tarefa.NbEstimativaInicial <= 0 && (situacaoPlanejamento.CsTipo == CsTipoPlanejamento.Cancelamento || situacaoPlanejamento.CsTipo == CsTipoPlanejamento.Planejamento))
            {
                TarefaBo.AtualizarDadosTarefa(tarefa.Oid, colaborador, situacaoPlanejamento, nbHoraRealizado, nbHoraRestante, tarefa.CsLinhaBaseSalva);
                return;
            }
            // Caso não possua estimativa inicial não deve salvar historico da tarefa
            if (tarefa.NbEstimativaInicial <= 0 && situacaoPlanejamento.CsTipo != CsTipoPlanejamento.Impedimento)
            {
                throw new EstimativaInicialInvalidaException("Histórico da Tarefa não pode ser salvo, pois não foi estimado um tempo inicial para realização da tarefa");
            }

            if (!tarefa.CsLinhaBaseSalva)
            {
                TarefaBo.SalvarLinhaBaseTarefa(tarefa);
            }

            historico.OidTarefa               = tarefa.Oid;
            historico.HoraRealizado           = nbHoraRealizado;
            historico.DtRealizado             = dtRealizado;
            historico.HoraInicio              = nbHoraInicial;
            historico.HoraFinal               = nbHoraFinal;
            historico.TxComentario            = txComentario;
            historico.HoraRestante            = nbHoraRestante;
            historico.TxJustificativaReducao  = txJustificativaReducao;
            historico.OidColaborador          = colaborador.Oid;
            historico.OidSituacaoPlanejamento = situacaoPlanejamento.Oid;
            historico.TxComentario            = txComentario;
            historico.TxJustificativaReducao  = txJustificativaReducao;

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                contexto.TarefaHistoricoTrabalho.Add(historico);
                contexto.SaveChanges();
            }

            //Atualiza os dados da tarefa a partir dos dados salvos no histórico.
            TarefaBo.AtualizarDadosTarefa(tarefa.Oid, colaborador, situacaoPlanejamento, historico.HoraRealizado, historico.HoraRestante, tarefa.CsLinhaBaseSalva);
        }
        /// <summary>
        /// Método responsável por editar uma tarefa
        /// </summary>
        /// <param name="contexto">Sessão corrente</param>
        /// <param name="oidCronogramaTarefa">Oid (Guid) da tarefa a ser editada</param>
        /// <param name="txDescricao">Descrição da tarefa alterada</param>
        /// <param name="oidSituacaoPlanejamento">Oid (Guid) da tarefa editada</param>
        /// <param name="dataInicio">Data de Inicio da tarefa editada</param>
        /// <param name="login">Login do usuário que editou a tarefa</param>
        /// <param name="txObservacao">Observação da tarefa editada</param>
        /// <param name="responsaveis">array de responsáveis pela tarefa</param>
        /// <param name="nbEstimativaInicial">Estimativa inicial da tarefa</param>
        /// <param name="nbEstimativaRestante">Estimativa restante da tarefa</param>
        /// <param name="nbRealizado">Horas realizadas da tarefa</param>
        /// <param name="csLinhaBaseSalva">Boolean afirmando se a tarefa foi salva a linda de base</param>
        /// <returns>Retorna uma Hash contendo dados de atualizado em, atualizado por e confirmação da edição</returns>
        public static Hashtable EditarTarefa(string oidCronogramaTarefa, string txDescricao, string oidSituacaoPlanejamento,
                                             string login, string txObservacao, string responsaveis,
                                             Int16 nbEstimativaInicial, TimeSpan nbEstimativaRestante, TimeSpan nbRealizado, bool csLinhaBaseSalva, DateTime dataInicio)
        {
            if (oidCronogramaTarefa == null || txDescricao == null || oidSituacaoPlanejamento == null ||
                login == null)
            {
                throw new ArgumentException("Os parâmetros OidCronogramaTarefa, TxDescricao, DataInício, SituacaoPlanejamento, login e TxObservação são obrigatórios.");
            }

            Hashtable        dadosEdicaoTarefa = new Hashtable();
            CronogramaTarefa cronogramaTarefa  = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(Guid.Parse(oidCronogramaTarefa), o => o.Tarefa.SituacaoPlanejamento, o => o.Tarefa.AtualizadoPor.Usuario.Person);

            if (cronogramaTarefa == null)
            {
                dadosEdicaoTarefa.Add("EdicaoStatus", false);
                return(dadosEdicaoTarefa);
            }

            Tarefa               tarefaAntiga         = cronogramaTarefa.Tarefa.Clone();
            Colaborador          colaborador          = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario.Person);
            SituacaoPlanejamento situacaoPlanejamento = SituacaoPlanejamentoDAO.ConsultarSituacaoPlanejamentoPorOid(Guid.Parse(oidSituacaoPlanejamento));

            if (colaborador != null)
            {
                cronogramaTarefa.Tarefa.OidAtualizadoPor = colaborador.Oid;
                cronogramaTarefa.Tarefa.AtualizadoPor    = null;
            }

            if (situacaoPlanejamento != null)
            {
                cronogramaTarefa.Tarefa.OidSituacaoPlanejamento = situacaoPlanejamento.Oid;
                cronogramaTarefa.Tarefa.SituacaoPlanejamento    = null;
            }


            cronogramaTarefa.Tarefa.CsLinhaBaseSalva        = csLinhaBaseSalva;
            cronogramaTarefa.Tarefa.NbEstimativaInicial     = nbEstimativaInicial;
            cronogramaTarefa.Tarefa.EstimativaRealizadoHora = nbRealizado;
            cronogramaTarefa.Tarefa.TxDescricao             = txDescricao;
            cronogramaTarefa.Tarefa.TxObservacao            = txObservacao;
            cronogramaTarefa.Tarefa.DtAtualizadoEm          = DateTime.Now;
            cronogramaTarefa.Tarefa.TxResponsaveis          = responsaveis;
            cronogramaTarefa.Tarefa.DtInicio = dataInicio;

            EstimarHorasRestantesSugeridaPorTipoSituacaoPlanejamento(cronogramaTarefa.Tarefa, nbEstimativaRestante.Ticks, situacaoPlanejamento);
            TarefaDao.SalvarTarefa(cronogramaTarefa.Tarefa);
            TarefaHistoricoEstimativaBo.CriarHistorico(DateUtil.ConsultarDataHoraAtual(), cronogramaTarefa.Tarefa.Oid, cronogramaTarefa.Tarefa.NbEstimativaRestante);
            TarefaLogAlteracaoBo.CriarLogTarefa(cronogramaTarefa.Tarefa, tarefaAntiga);

            dadosEdicaoTarefa.Add("EdicaoStatus", true);
            dadosEdicaoTarefa.Add("DtAtualizadoEm", cronogramaTarefa.Tarefa.DtAtualizadoEm);
            dadosEdicaoTarefa.Add("TxAtualizadoPor", colaborador.NomeCompleto);

            return(dadosEdicaoTarefa);
        }
Пример #4
0
        /// <summary>
        /// Método responsável por salvar o último projeto selecionado pelo colaborador
        /// </summary>
        /// <param name="contexto">Instância de conexão com o banco</param>
        /// <param name="oidColaborador">Oid do colaborador</param>
        /// <param name="oidProjeto">Oid do projeto</param>
        public static void SalvarUltimoProjetoSelecionado(Guid oidColaborador, Guid oidProjeto)
        {
            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                ColaboradorUltimoFiltro colUltimoFiltro = ColaboradorDAO.ConsultarColaborador(oidColaborador, o => o.ColaboradorUltimoFiltro).ColaboradorUltimoFiltro;

                colUltimoFiltro.OidUltimoProjetoSelecionado = oidProjeto;

                contexto.ColaboradorUltimoFiltroes.Attach(colUltimoFiltro);
                contexto.Entry <ColaboradorUltimoFiltro>(colUltimoFiltro).State = System.Data.EntityState.Modified;
                contexto.SaveChanges();
            }
        }
Пример #5
0
        /// <summary>
        /// Método responsável por acessar a classe colaborador e buscar o colaborador corrente e retornar para o serviço como um Dto
        /// </summary>
        ///
        /// <param name="login">Login do colaborador</param>
        /// <returns>Retorna um DTO de colaborador</returns>
        public static ColaboradorDto ConsultarColaboradorPorLogin(string login)
        {
            var colaborador = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario.Person);

            if (colaborador != null)
            {
                return(ColaboradorBo.DtoFactory(colaborador));
            }
            else
            {
                return(null);
            }
        }
        /// <summary>
        /// Método responsável por consultar o usuario conectado e criar um Dto de UsuarioConectadoDto para retornar.
        /// </summary>
        /// <param name="contexto">Contexto do banco</param>
        /// <param name="login">login do usuário conectado</param>
        /// <param name="oidCronograma">Oid do cronograma do usuário conectado</param>
        /// <returns>Objeto UsuarioConectadoDto</returns>
        public static CronogramaColaboradorConfigDto ConsultarCronogramaColaboradorConfigs(string login, Guid oidCronograma)
        {
            Colaborador colaborador = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario.Person.Party);

            if (colaborador == null)
            {
                return(null);
            }

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                CronogramaColaboradorConfig config = CronogramaColaboradorConfigDao.ConsultarCronogramaColaboradorConfig(contexto, login, oidCronograma);

                if (config == null)
                {
                    return(null);
                }

                return(CronogramaColaboradorConfigBo.CronogramaColaboradorConfigFactory(colaborador, oidCronograma, config));
            }
        }
        /// <summary>
        /// Método responsável por criar uma tarefa. Obs: Ela pode ser independente de projeto ou não.
        /// É usado pela classe CronogramaTarefa ou pode ser avulsa.
        /// </summary>
        /// <param name="txDescricaoTarefa">descrição da tarefa</param>
        /// <param name="txObservacaoTarefa">observação da tarefa</param>
        /// <param name="situacaoPlanejamento">situação da tarefaClone</param>
        /// <param name="responsavel">responsáveis pela tarefaClone</param>
        /// <param name="estimativaInicial">estimativa inicial para tarefa</param>
        /// <param name="dtInicio">data de início da tarefa</param>
        public static Tarefa CriarTarefa(string txDescricaoTarefa, SituacaoPlanejamento situacaoPlanejamento, DateTime dtInicio, string login, string txObservacaoTarefa = "", string responsaveis = null, Int16 estimativaInicial = 0)
        {
            if (txDescricaoTarefa == null ||
                dtInicio == null ||
                situacaoPlanejamento == null ||
                login == null)
            {
                throw new ArgumentException("Os parâmetros txDescricao, dtInício, situacaoPlanejamento e login são obrigatórios.");
            }

            var novaTarefa = new Tarefa
            {
                TxDescricao             = txDescricaoTarefa,
                TxObservacao            = String.Empty,
                TxResponsaveis          = responsaveis,
                NbEstimativaInicial     = estimativaInicial,
                NbEstimativaRestante    = estimativaInicial.ToTicks(),
                DtInicio                = dtInicio,
                OidSituacaoPlanejamento = situacaoPlanejamento.Oid,
                SituacaoPlanejamento    = situacaoPlanejamento
            };

            Colaborador colaborador = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario.Person);

            if (colaborador != null)
            {
                novaTarefa.OidAtualizadoPor = colaborador.Oid;
                novaTarefa.AtualizadoPor    = colaborador;
            }

            novaTarefa.DtAtualizadoEm = DateUtil.ConsultarDataHoraAtual();

            TarefaDao.SalvarTarefa(novaTarefa);
            TarefaHistoricoEstimativaBo.CriarHistorico(DateUtil.ConsultarDataHoraAtual(), novaTarefa.Oid, novaTarefa.NbEstimativaRestante);
            TarefaLogAlteracaoBo.CriarLogTarefa(novaTarefa, null);

            return(novaTarefa);
        }
        public void QuandoOColaboradorColaborador01CriarAsSeguintesTarefas(string cronograma, Table table)
        {
            string id   = table.Header.ToList()[0];
            string nome = table.Header.ToList()[1];

            foreach (TableRow row in table.Rows)
            {
                string idRow   = row[id];
                string nomeRow = row[nome];

                TarefasDic.Add(nomeRow,
                               CronogramaFactoryEntity.CriarTarefa(contexto, ushort.Parse(idRow), nomeRow, string.Empty, null, 2, new TimeSpan(0), ColaboradorDAO.ConsultarColaborador("anderson.lins"), StepCronograma.CronogramasDic[cronograma], null, true));
            }
        }
Пример #9
0
        /// <summary>
        /// Método responsável por criar o colaborador caso não exista.
        /// É usado pelo AD
        /// <param name="extensaoEmail">Extensao do email da empresa</param>
        /// <param name="contexto">Sessão</param>
        /// <param name="login">Login do usuário</param>
        /// </summary>
        public static Colaborador CriarColaborador(string login, string extensaoEmail)
        {
            string   primeiroNome;
            string   ultimoNome;
            string   nomeCompleto;
            DateTime dtAdmissao;

            Colaborador colaboradorPesquisado = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario);

            if (colaboradorPesquisado != null)
            {
                return(colaboradorPesquisado);
            }

            if (login.Contains("."))
            {
                primeiroNome = StrUtil.UpperCaseFirst(login.Split('.')[0]);
                ultimoNome   = StrUtil.UpperCaseFirst(login.Split('.')[1]);
                nomeCompleto = String.Format("{0} {1}", StrUtil.UpperCaseFirst(primeiroNome), StrUtil.UpperCaseFirst(ultimoNome));
            }
            else
            {
                primeiroNome = login;
                ultimoNome   = String.Empty;
                nomeCompleto = String.Format("{0}", StrUtil.UpperCaseFirst(login));
            }

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                ColaboradorUltimoFiltro colaboradorUltimoFiltro = ColaboradorUltimoFiltroBO.CriarColaboradorUltimoFiltroPadrao(contexto);

                Party party = PartyBO.CriarPartyPadrao(contexto);

                Person person = PersonBO.CriarPersonPadrao(contexto, party, primeiroNome, ultimoNome, login, extensaoEmail);

                User usuario = UserBO.CriarUserPadrao(contexto, person, login);

                dtAdmissao = DateUtil.ConsultarDataHoraAtual();

                Colaborador novoColaborador = new Colaborador()
                {
                    OidUsuario                 = usuario.Oid,
                    TxMatricula                = null,
                    DtAdmissao                 = dtAdmissao,
                    OidCoordenador             = null,
                    OidCargo                   = null,
                    OidColaboradorUltimoFiltro = colaboradorUltimoFiltro.Oid
                };

                contexto.Colaboradores.Add(novoColaborador);
                contexto.SaveChanges();

                Role roleDefault = ColaboradorDAO.ConsultarRolePorNome("Default");
                Role roleAdmin   = ColaboradorDAO.ConsultarRolePorNome("Administradores");

                UserBO.CriarPermissaoParaUsuario(contexto, usuario, roleDefault);
                UserBO.CriarPermissaoParaUsuario(contexto, usuario, roleAdmin);

                ColaboradorPeriodoAquisitivoBO.CriarPeridoAquisitivoParaColaborador(contexto, novoColaborador, dtAdmissao);

                return(novoColaborador);
            }
        }