/// <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); }
/// <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); }
/// <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(); } }
/// <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)); } }
/// <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); } }