コード例 #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
 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);
         }
     }
 }
コード例 #3
0
 private void AjustarSituacaoPreRequisicao(PreRequisicaoMaterial preRequisicao)
 {
     if ((preRequisicao.ListaItens.Any()) &&
         (preRequisicao.ListaItens.All(l => l.Situacao == SituacaoPreRequisicaoMaterialItem.Aprovado ||
                                       l.Situacao == SituacaoPreRequisicaoMaterialItem.Cancelado)))
     {
         preRequisicao.Situacao = SituacaoPreRequisicaoMaterial.Fechada;
     }
     else if (preRequisicao.ListaItens.Any(l => l.Situacao == SituacaoPreRequisicaoMaterialItem.Aprovado))
     {
         preRequisicao.Situacao = SituacaoPreRequisicaoMaterial.ParcialmenteAprovada;
     }
 }
コード例 #4
0
        private bool ItemJaAprovadoFoiSelecionado(int[] itens, PreRequisicaoMaterial preRequisicaoMaterial)
        {
            bool existeItemJaAprovado = false;

            foreach (var itemId in itens)
            {
                var item = preRequisicaoMaterial.ListaItens.Where(l => l.Id == itemId).SingleOrDefault();
                if (item.ListaRequisicaoMaterialItem.Count > 0)
                {
                    messageQueue.Add(string.Format(Application.Resource.OrdemCompra.ErrorMessages.ItemJaAprovado, item.Sequencial.ToString()), TypeMessage.Error);
                    existeItemJaAprovado = true;
                }
            }

            return(existeItemJaAprovado);
        }
コード例 #5
0
        private DataTable PreRequisicaoToDataTable(PreRequisicaoMaterial preRequisicaoMaterial)
        {
            DataTable  dta               = new DataTable();
            DataColumn codigo            = new DataColumn("codigo");
            DataColumn dataPreRequisicao = new DataColumn("dataPreRequisicao");
            DataColumn observacao        = new DataColumn("observacao");
            DataColumn dataCadastro      = new DataColumn("dataCadastro");
            DataColumn usuarioCadastro   = new DataColumn("usuarioCadastro");
            DataColumn dataCancela       = new DataColumn("dataCancela");
            DataColumn usuarioCancela    = new DataColumn("usuarioCancela");
            DataColumn motivoCancela     = new DataColumn("motivoCancela");
            DataColumn situacao          = new DataColumn("situacao");
            DataColumn descricaoSituacao = new DataColumn("descricaoSituacao");

            dta.Columns.Add(codigo);
            dta.Columns.Add(dataPreRequisicao);
            dta.Columns.Add(observacao);
            dta.Columns.Add(dataCadastro);
            dta.Columns.Add(usuarioCadastro);
            dta.Columns.Add(dataCancela);
            dta.Columns.Add(usuarioCancela);
            dta.Columns.Add(motivoCancela);
            dta.Columns.Add(situacao);
            dta.Columns.Add(descricaoSituacao);

            DataRow row = dta.NewRow();

            row[codigo]            = preRequisicaoMaterial.Id;
            row[dataPreRequisicao] = preRequisicaoMaterial.Data.ToString("dd/MM/yyyy");
            row[observacao]        = preRequisicaoMaterial.Observacao;
            row[dataCadastro]      = preRequisicaoMaterial.DataCadastro.ToString("dd/MM/yyyy");
            row[usuarioCadastro]   = preRequisicaoMaterial.LoginUsuarioCadastro;
            row[dataCancela]       = preRequisicaoMaterial.DataCancelamento.HasValue ? preRequisicaoMaterial.DataCancelamento.Value.ToString("dd/MM/yyyy") : string.Empty;
            row[usuarioCancela]    = preRequisicaoMaterial.LoginUsuarioCancelamento;
            row[motivoCancela]     = preRequisicaoMaterial.MotivoCancelamento;
            row[situacao]          = preRequisicaoMaterial.Situacao;
            row[descricaoSituacao] = preRequisicaoMaterial.Situacao.ObterDescricao();
            dta.Rows.Add(row);
            return(dta);
        }
コード例 #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 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);
        }
コード例 #8
0
 private void ProcessarItens(PreRequisicaoMaterialDTO dto, PreRequisicaoMaterial preRequisicaoMaterial)
 {
     RemoverItens(dto, preRequisicaoMaterial);
     AlterarItens(dto, preRequisicaoMaterial);
     AdicionarItens(dto, preRequisicaoMaterial);
 }