示例#1
0
 private void AdicionarItens(PreRequisicaoMaterialDTO dto, PreRequisicaoMaterial preRequisicaoMaterial)
 {
     foreach (var item in dto.ListaItens.Where(l => !l.Id.HasValue))
     {
         var itemLista = item.To <PreRequisicaoMaterialItem>();
         itemLista.PreRequisicaoMaterial = preRequisicaoMaterial;
         preRequisicaoMaterial.ListaItens.Add(itemLista);
     }
 }
示例#2
0
        public bool EhPermitidoSalvar(PreRequisicaoMaterialDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.PreRequisicaoMaterialGravar))
            {
                return(false);
            }

            return(PodeSerSalvaNaSituacaoAtual(dto.Situacao));
        }
示例#3
0
 private void RemoverItens(PreRequisicaoMaterialDTO dto, PreRequisicaoMaterial preRequisicaoMaterial)
 {
     for (int i = preRequisicaoMaterial.ListaItens.Count - 1; i >= 0; i--)
     {
         var item = preRequisicaoMaterial.ListaItens.ToList()[i];
         if (!dto.ListaItens.Any(l => l.Id == item.Id))
         {
             preRequisicaoMaterial.ListaItens.Remove(item);
             preRequisicaoMaterialRepository.RemoverItem(item);
         }
     }
 }
示例#4
0
        public bool EhPermitidoAprovarItem(PreRequisicaoMaterialDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.PreRequisicaoMaterialAprovar))
            {
                return(false);
            }

            if ((dto.Situacao != SituacaoPreRequisicaoMaterial.Requisitada) && (dto.Situacao != SituacaoPreRequisicaoMaterial.ParcialmenteAprovada))
            {
                return(false);
            }

            if (!dto.ListaItens.Any(l => l.Situacao == SituacaoPreRequisicaoMaterialItem.Requisitado))
            {
                return(false);
            }

            return(true);
        }
示例#5
0
        public bool EhPermitidoImprimir(PreRequisicaoMaterialDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.PreRequisicaoMaterialImprimir))
            {
                return(false);
            }

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

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

            return(true);
        }
示例#6
0
 private void AlterarItens(PreRequisicaoMaterialDTO dto, PreRequisicaoMaterial preRequisicaoMaterial)
 {
     foreach (var item in preRequisicaoMaterial.ListaItens)
     {
         if (item.Situacao == SituacaoPreRequisicaoMaterialItem.Requisitado)
         {
             var itemDTO = dto.ListaItens.Where(l => l.Id == item.Id).SingleOrDefault();
             item.Sequencial         = itemDTO.Sequencial;
             item.Material           = null;
             item.MaterialId         = itemDTO.Material.Id;
             item.UnidadeMedida      = itemDTO.Material.SiglaUnidadeMedida.Trim();
             item.Complemento        = itemDTO.Complemento.Trim();
             item.Classe             = null;
             item.CodigoClasse       = itemDTO.Classe.Codigo;
             item.CentroCusto        = null;
             item.CodigoCentroCusto  = itemDTO.CentroCusto.Codigo;
             item.Quantidade         = itemDTO.Quantidade;
             item.QuantidadeAprovada = itemDTO.QuantidadeAprovada;
             item.DataMaxima         = itemDTO.DataMaxima;
             item.DataMinima         = itemDTO.DataMinima;
             item.Situacao           = itemDTO.Situacao;
         }
     }
 }
示例#7
0
        public bool EhPermitidoCancelar(PreRequisicaoMaterialDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.PreRequisicaoMaterialCancelar))
            {
                return(false);
            }

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

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

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

            return(true);
        }
示例#8
0
        public bool Salvar(PreRequisicaoMaterialDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.PreRequisicaoMaterialGravar))
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.PrivilegiosInsuficientes, TypeMessage.Error);
                return(false);
            }

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

            bool novoItem = false;

            var preRequisicaoMaterial = preRequisicaoMaterialRepository.ObterPeloId(dto.Id, l => l.ListaItens);

            if (preRequisicaoMaterial == null)
            {
                preRequisicaoMaterial                      = new PreRequisicaoMaterial();
                preRequisicaoMaterial.Situacao             = SituacaoPreRequisicaoMaterial.Requisitada;
                preRequisicaoMaterial.DataCadastro         = DateTime.Now;
                preRequisicaoMaterial.LoginUsuarioCadastro = UsuarioLogado.Login;
                novoItem = true;
            }

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

            preRequisicaoMaterial.Data       = dto.Data;
            preRequisicaoMaterial.Observacao = dto.Observacao;
            ProcessarItens(dto, preRequisicaoMaterial);

            AjustarSituacaoPreRequisicao(preRequisicaoMaterial);

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

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

            return(false);
        }
示例#9
0
 private void ProcessarItens(PreRequisicaoMaterialDTO dto, PreRequisicaoMaterial preRequisicaoMaterial)
 {
     RemoverItens(dto, preRequisicaoMaterial);
     AlterarItens(dto, preRequisicaoMaterial);
     AdicionarItens(dto, preRequisicaoMaterial);
 }
示例#10
0
 public bool EhPermitidoEditarItem(PreRequisicaoMaterialDTO dto)
 {
     return(EhPermitidoSalvar(dto));
 }
示例#11
0
 public PreRequisicaoMaterialCadastroViewModel()
 {
     PreRequisicaoMaterial = new PreRequisicaoMaterialDTO();
     Material = new MaterialDTO();
 }