public void AdicionarAtividade(ItemCatalogo itemCatalogo, int quantidade, int modalidaExecucaoId, decimal tempoPrevistoPorItem, string descricao, IEnumerable <Guid> idsAssuntos, IEnumerable <Guid> idsObjetos) { VerificarPossibilidadeAlteracao(); var atividade = PactoTrabalhoAtividade.Criar(this.PactoTrabalhoId, itemCatalogo.ItemCatalogoId, quantidade, modalidaExecucaoId, tempoPrevistoPorItem, descricao); if (idsAssuntos != null) { foreach (var idAssunto in idsAssuntos) { atividade.AdicionarAssunto(idAssunto); } } if (idsObjetos != null) { foreach (var idObjeto in idsObjetos) { atividade.AdicionarObjeto(idObjeto); } } this.Atividades.Add(atividade); if (itemCatalogo.FormaCalculoTempoItemCatalogoId == (int)FormaCalculoTempoItemCatalogoEnum.PredefinidoPorDia) { atividade.AtualizarTempoPrevistoTotal(WorkingDays.DiffDays(this.DataInicio, this.DataFim, this.DiasNaoUteis, false)); } }
public async Task <ActionResult> ModificarItemAsync([FromBody] ItemCatalogo productoAModificar) { var itemCatalogo = await _catalogoContext.ItemsCatalogo.SingleOrDefaultAsync(i => i.Id == productoAModificar.Id); if (itemCatalogo == null) { return(NotFound()); } itemCatalogo = productoAModificar; _catalogoContext.ItemsCatalogo.Update(itemCatalogo); await _catalogoContext.SaveChangesAsync(); return(CreatedAtAction(nameof(GetItemByIdAsync), new { id = productoAModificar.Id }, null)); }
public static List <Catalogo> GetCatalogos(Sistema sistema) { Catalogo catalogo = new Catalogo(); catalogo.Codigo = "TIP_MNU_ITEM"; catalogo.Nombre = "Tipo de Menu Item"; catalogo.Sistema = sistema; ItemCatalogo item = new ItemCatalogo(); item.CodigoCatalogo = "TIP_MNU_ITEM"; item.Catalogo = catalogo; item.Codigo = "MNU_CONTENEDOR"; item.Nombre = "Tipo de item de menu contenedor"; item.Descripcion = "Tipo de item de menu contenedor"; catalogo.Items.Add(item); item = new ItemCatalogo(); item.CodigoCatalogo = "TIP_MNU_ITEM"; item.Catalogo = catalogo; item.Codigo = "MNU_MENU"; item.Nombre = "Tipo de item de menu normal"; item.Descripcion = "Tipo de item de menu normal"; catalogo.Items.Add(item); item = new ItemCatalogo(); item.CodigoCatalogo = "TIP_MNU_ITEM"; item.Catalogo = catalogo; item.Codigo = "MNU_MENU_2"; item.Nombre = "Tipo de item de menu normal"; item.Descripcion = "Tipo de item de menu normal"; catalogo.Items.Add(item); var lista = new List <Catalogo>(); lista.Add(catalogo); return(lista); }
public async Task <ActionResult> CrearItemAsync([FromBody] ItemCatalogo producto) { var item = new ItemCatalogo { MarcaCatalogoId = producto.MarcaCatalogoId, TipoCatalogoId = producto.TipoCatalogoId, Descripcion = producto.Descripcion, Nombre = producto.Nombre, NombreArchivoFoto = producto.NombreArchivoFoto, Precio = producto.Precio }; _catalogoContext.ItemsCatalogo.Add(item); await _catalogoContext.SaveChangesAsync(); return(CreatedAtAction(nameof(GetItemByIdAsync), new { id = item.Id }, null)); }
public void AprovarNovaAtividade(ItemCatalogo itemCatalogo, int quantidade, int modalidaExecucaoId, decimal tempoPrevistoPorItem, Int32 situacaoId, DateTime?dataInicio, DateTime?dataFim, Decimal?tempoRealizado, string descricao, bool atualizarPrazo) { var atividade = PactoTrabalhoAtividade.Criar(this, itemCatalogo, quantidade, modalidaExecucaoId, tempoPrevistoPorItem, descricao); atividade.AlterarAndamento(situacaoId, dataInicio, dataFim, tempoRealizado, ignorarValidacoes: true); this.Atividades.Add(atividade); if (itemCatalogo.FormaCalculoTempoItemCatalogoId == (int)FormaCalculoTempoItemCatalogoEnum.PredefinidoPorDia) { atividade.AtualizarTempoPrevistoTotal(WorkingDays.DiffDays(this.DataInicio, this.DataFim, this.DiasNaoUteis, false)); } if (atualizarPrazo) { var novaDataFim = atividade.CalcularAjusteNoPrazo(this.DataFim, DiasNaoUteis, tempoPrevistoPorItem); this.AlterarPeriodo(novaDataFim); } this.AtualizarPercentualExecucao(); }
public void AlterarAtividade(Guid pactoTrabalhoAtividadeId, ItemCatalogo itemCatalogo, int quantidade, int modalidaExecucaoId, decimal tempoPrevistoPorItem, string descricao, IEnumerable <Guid> idsAssuntos, IEnumerable <Guid> idsObjetos) { VerificarPossibilidadeAlteracao(); var atividade = this.Atividades.FirstOrDefault(r => r.PactoTrabalhoAtividadeId == pactoTrabalhoAtividadeId); atividade.Alterar(itemCatalogo.ItemCatalogoId, quantidade, modalidaExecucaoId, tempoPrevistoPorItem, descricao); if (idsAssuntos != null) { var idsAssuntosARemover = atividade.Assuntos.Select(a => a.AssuntoId).Where(id => !idsAssuntos.Contains(id)).ToList(); var idsAssuntosAIncluir = idsAssuntos.Where(id => !atividade.Assuntos.Select(a => a.AssuntoId).Contains(id)).ToList(); foreach (var id in idsAssuntosARemover) { atividade.RemoverAssunto(id); } foreach (var id in idsAssuntosAIncluir) { atividade.AdicionarAssunto(id); } } if (idsObjetos != null) { var idsObjetosARemover = atividade.Objetos.Select(a => a.PlanoTrabalhoObjetoId).Where(id => !idsObjetos.Contains(id)).ToList(); var idsObjetosAIncluir = idsObjetos.Where(id => !atividade.Objetos.Select(a => a.PlanoTrabalhoObjetoId).Contains(id)).ToList(); foreach (var id in idsObjetosARemover) { atividade.RemoverObjeto(id); } foreach (var id in idsObjetosAIncluir) { atividade.AdicionarObjeto(id); } } if (itemCatalogo.FormaCalculoTempoItemCatalogoId == (int)FormaCalculoTempoItemCatalogoEnum.PredefinidoPorDia) { atividade.AtualizarTempoPrevistoTotal(WorkingDays.DiffDays(this.DataInicio, this.DataFim, this.DiasNaoUteis, false)); } }
public void ResponderSolicitacao(Guid pactoTrabalhoSolicitacaoId, string analista, Boolean aprovado, Boolean atualizarPrazo, string observacoesAnalista, ItemCatalogo itemCatalogo) { VerificarPossibilidadeAlteracao(SituacaoPactoTrabalhoEnum.EmExecucao); var item = this.Solicitacoes.FirstOrDefault(r => r.PactoTrabalhoSolicitacaoId == pactoTrabalhoSolicitacaoId); if (aprovado) { dynamic dadosSolicitacao = JsonConvert.DeserializeObject(item.DadosSolicitacao); switch (item.TipoSolicitacaoId) { case (int)TipoSolicitacaoPactoTrabalhoEnum.NovaAtividade: Guid itemCatalogoId = dadosSolicitacao.itemCatalogoId; Int32 quantidade = 1; Decimal tempoPrevistoPorItem = dadosSolicitacao.tempoPrevistoPorItem; Int32 situacaoId = dadosSolicitacao.situacaoId; DateTime?dataInicio = null; if (dadosSolicitacao.dataInicio != null) { dataInicio = dadosSolicitacao.dataInicio; } DateTime?dataFim = null; if (dadosSolicitacao.dataFim != null) { dataFim = dadosSolicitacao.dataFim; } Decimal?tempoRealizado = null; if (dadosSolicitacao.tempoRealizado != null) { tempoRealizado = dadosSolicitacao.tempoRealizado; } Int32 modalidadeExecucaoId = this.ModalidadeExecucaoId; if (this.ModalidadeExecucaoId == (int)ModalidadeExecucaoEnum.Semipresencial && dadosSolicitacao.execucaoRemota != null) { Boolean execucaoRemota = dadosSolicitacao.execucaoRemota; modalidadeExecucaoId = execucaoRemota ? (int)ModalidadeExecucaoEnum.Teletrabalho : (int)ModalidadeExecucaoEnum.Presencial; } this.AprovarNovaAtividade(itemCatalogo, quantidade, modalidadeExecucaoId, tempoPrevistoPorItem, situacaoId, dataInicio, dataFim, tempoRealizado, item.ObservacoesSolicitante, atualizarPrazo); break; case (int)TipoSolicitacaoPactoTrabalhoEnum.AlterarPrazo: this.AlterarPeriodo((DateTime)dadosSolicitacao.dataFim); break; case (int)TipoSolicitacaoPactoTrabalhoEnum.JustificarEstouroPrazo: Guid?pactoTrabalhoAtividadeId = dadosSolicitacao.pactoTrabalhoAtividadeId; var atividade = this.Atividades .FirstOrDefault(a => a.PactoTrabalhoAtividadeId == pactoTrabalhoAtividadeId); if (atividade.SituacaoId == (int)SituacaoAtividadePactoTrabalhoEnum.Done) { if (atualizarPrazo) { var novaDataFim = atividade.CalcularAjusteNoPrazo(this.DataFim, DiasNaoUteis); this.AlterarPeriodo(novaDataFim); } atividade.AjustarTemposPrevistoEHomologadoAoTempoRealizado(); this.AtualizarPercentualExecucao(); } break; case (int)TipoSolicitacaoPactoTrabalhoEnum.ExcluirAtividade: Guid pactoTrabalhoAtividadeExcluirId = dadosSolicitacao.pactoTrabalhoAtividadeId; this.Atividades.RemoveAll(a => a.PactoTrabalhoAtividadeId == pactoTrabalhoAtividadeExcluirId); //Obtém solicitações de exclusão pendentes var solicitacoesMesmoTipoPendentes = this.ObterSolicitacoesNaoAtendidasMesmoTipo(TipoSolicitacaoPactoTrabalhoEnum.ExcluirAtividade, pactoTrabalhoSolicitacaoId); //Deve rejeitar outras solicitações de exclusão da mesma atividade foreach (var solicitacaoVerificar in solicitacoesMesmoTipoPendentes) { dynamic dadosSolicitacaoVerificar = JsonConvert.DeserializeObject(solicitacaoVerificar.DadosSolicitacao); if (dadosSolicitacaoVerificar.pactoTrabalhoAtividadeId == dadosSolicitacao.pactoTrabalhoAtividadeId) { solicitacaoVerificar.Responder(analista, false, "Uma outra solicitação de exclusão da mesma atividade foi aprovada"); } } break; } } item.Responder(analista, aprovado, observacoesAnalista); }