Beispiel #1
0
        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));
        }
Beispiel #3
0
        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));
        }
Beispiel #5
0
        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();
        }
Beispiel #6
0
        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));
            }
        }
Beispiel #7
0
        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);
        }