Exemple #1
0
        private void AlterarItens(RequisicaoMaterialDTO dto, RequisicaoMaterial requisicaoMaterial)
        {
            foreach (var item in requisicaoMaterial.ListaItens)
            {
                if (item.Situacao == SituacaoRequisicaoMaterialItem.Requisitado)
                {
                    var itemDTO = dto.ListaItens.Where(l => l.Id == item.Id).SingleOrDefault();

                    if (itemDTO.OrcamentoInsumoRequisitado == null)
                    {
                        item.Material      = null;
                        item.MaterialId    = itemDTO.Material.Id;
                        item.UnidadeMedida = itemDTO.Material.SiglaUnidadeMedida.Trim();
                        item.Classe        = null;
                        item.CodigoClasse  = itemDTO.Classe.Codigo;
                    }

                    item.Sequencial         = itemDTO.Sequencial;
                    item.Complemento        = itemDTO.Complemento.Trim();
                    item.Quantidade         = itemDTO.Quantidade;
                    item.QuantidadeAprovada = itemDTO.QuantidadeAprovada;
                    item.DataMaxima         = itemDTO.DataMaxima;
                    item.DataMinima         = itemDTO.DataMinima;
                    item.Situacao           = itemDTO.Situacao;
                    if (item.Situacao == SituacaoRequisicaoMaterialItem.Cancelado)
                    {
                        RemoverInsumoRequisitado(item);
                    }
                }
            }
        }
Exemple #2
0
        public bool EhPermitidoEditarCentroCusto(RequisicaoMaterialDTO dto)
        {
            if (dto.Id.HasValue)
            {
                return(false);
            }

            return(true);
        }
Exemple #3
0
        public bool EhPermitidoSalvar(RequisicaoMaterialDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.RequisicaoMaterialGravar))
            {
                return(false);
            }

            return(PodeSerSalvaNaSituacaoAtual(dto.Situacao));
        }
Exemple #4
0
 private void RemoverItens(RequisicaoMaterialDTO dto, RequisicaoMaterial requisicaoMaterial)
 {
     for (int i = requisicaoMaterial.ListaItens.Count - 1; i >= 0; i--)
     {
         var item = requisicaoMaterial.ListaItens.ToList()[i];
         if (!dto.ListaItens.Any(l => l.Id == item.Id))
         {
             requisicaoMaterial.ListaItens.Remove(item);
             requisicaoMaterialRepository.RemoverItem(item);
         }
     }
 }
Exemple #5
0
        public bool EhPermitidoAdicionarItem(RequisicaoMaterialDTO dto)
        {
            if (!EhPermitidoSalvar(dto))
            {
                return(false);
            }

            if (!PodeAdicionarItemNaSituacaoAtual(dto.Situacao))
            {
                return(false);
            }

            return(true);
        }
Exemple #6
0
        public bool EhPermitidoImprimir(RequisicaoMaterialDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.RequisicaoMaterialImprimir))
            {
                return(false);
            }

            if (!dto.Id.HasValue)
            {
                return(false);
            }

            if (!dto.ListaItens.Any())
            {
                return(false);
            }

            return(true);
        }
Exemple #7
0
 private void AdicionarItens(RequisicaoMaterialDTO dto, RequisicaoMaterial requisicaoMaterial)
 {
     foreach (var item in dto.ListaItens.Where(l => !l.Id.HasValue))
     {
         var itemLista = item.To <RequisicaoMaterialItem>();
         itemLista.RequisicaoMaterial = requisicaoMaterial;
         if (PossuiInsumoRequisitado(item))
         {
             var orcamentoInsumoRequisitado = new OrcamentoInsumoRequisitado();
             orcamentoInsumoRequisitado.CodigoCentroCusto      = dto.CentroCusto.Codigo;
             orcamentoInsumoRequisitado.CodigoClasse           = item.Classe.Codigo;
             orcamentoInsumoRequisitado.ComposicaoId           = item.OrcamentoInsumoRequisitado.Composicao.Id;
             orcamentoInsumoRequisitado.MaterialId             = item.OrcamentoInsumoRequisitado.Material.Id;
             orcamentoInsumoRequisitado.Quantidade             = item.Quantidade;
             orcamentoInsumoRequisitado.RequisicaoMaterialItem = itemLista;
             itemLista.ListaOrcamentoInsumoRequisitado.Add(orcamentoInsumoRequisitado);
         }
         requisicaoMaterial.ListaItens.Add(itemLista);
     }
 }
Exemple #8
0
        public bool EhPermitidoCancelarAprovacao(RequisicaoMaterialDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.RequisicaoMaterialCancelarAprovacao))
            {
                return(false);
            }

            if (!dto.Id.HasValue)
            {
                return(false);
            }

            if (!PodeCancelarAprovacaoNaSituacaoAtual(dto.Situacao))
            {
                return(false);
            }

            if (!PodeCancelarComItensAtuais(dto.ListaItens))
            {
                return(false);
            }

            return(true);
        }
Exemple #9
0
        public bool EhPermitidoAprovarRequisicao(RequisicaoMaterialDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.RequisicaoMaterialAprovar))
            {
                return(false);
            }

            if (!dto.Id.HasValue)
            {
                return(false);
            }

            if (!PodeAprovarNaSituacaoAtual(dto.Situacao))
            {
                return(false);
            }

            if (!dto.ListaItens.Any())
            {
                return(false);
            }

            return(true);
        }
Exemple #10
0
 public RequisicaoMaterialCadastroViewModel()
 {
     RequisicaoMaterial = new RequisicaoMaterialDTO();
     Material           = new MaterialDTO();
 }
Exemple #11
0
 private void ProcessarItens(RequisicaoMaterialDTO dto, RequisicaoMaterial requisicaoMaterial)
 {
     RemoverItens(dto, requisicaoMaterial);
     AlterarItens(dto, requisicaoMaterial);
     AdicionarItens(dto, requisicaoMaterial);
 }
Exemple #12
0
 public bool EhPermitidoEditarItem(RequisicaoMaterialDTO dto)
 {
     return(EhPermitidoSalvar(dto));
 }
Exemple #13
0
        public bool Salvar(RequisicaoMaterialDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.RequisicaoMaterialGravar))
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.PrivilegiosInsuficientes, TypeMessage.Error);
                return(false);
            }

            if (dto == null)
            {
                throw new ArgumentNullException("dto");
            }

            bool novoItem = false;

            var requisicaoMaterial = requisicaoMaterialRepository.ObterPeloId(dto.Id, l => l.ListaItens.Select(o => o.ListaOrcamentoInsumoRequisitado));

            if (requisicaoMaterial == null)
            {
                requisicaoMaterial                      = new RequisicaoMaterial();
                requisicaoMaterial.Situacao             = SituacaoRequisicaoMaterial.Requisitada;
                requisicaoMaterial.DataCadastro         = DateTime.Now;
                requisicaoMaterial.LoginUsuarioCadastro = UsuarioLogado.Login;
                novoItem = true;
            }

            if (!PodeSerSalvaNaSituacaoAtual(requisicaoMaterial.Situacao))
            {
                var msg = string.Format(Resource.OrdemCompra.ErrorMessages.RequisicaoSituacaoInvalida, requisicaoMaterial.Situacao.ObterDescricao());
                messageQueue.Add(msg, TypeMessage.Error);
                return(false);
            }

            requisicaoMaterial.Data = dto.Data;
            requisicaoMaterial.CodigoCentroCusto = dto.CentroCusto.Codigo;
            requisicaoMaterial.Observacao        = dto.Observacao;
            ProcessarItens(dto, requisicaoMaterial);

            AjustarSituacaoRequisicao(requisicaoMaterial);

            if (Validator.IsValid(requisicaoMaterial, out validationErrors))
            {
                try
                {
                    if (novoItem)
                    {
                        requisicaoMaterialRepository.Inserir(requisicaoMaterial);
                    }
                    else
                    {
                        requisicaoMaterialRepository.Alterar(requisicaoMaterial);
                    }

                    requisicaoMaterialRepository.UnitOfWork.Commit();
                    GravarLogOperacao(requisicaoMaterial, novoItem ? "INSERT" : "UPDATE");

                    dto.Id = requisicaoMaterial.Id;
                    messageQueue.Add(Resource.Sigim.SuccessMessages.SalvoComSucesso, TypeMessage.Success);
                    return(true);
                }
                catch (Exception exception)
                {
                    QueueExeptionMessages(exception);
                }
            }
            else
            {
                messageQueue.AddRange(validationErrors, TypeMessage.Error);
            }

            return(false);
        }