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); } }
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); } } }
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; } }
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); }
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); }
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; } } }
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); }
private void ProcessarItens(PreRequisicaoMaterialDTO dto, PreRequisicaoMaterial preRequisicaoMaterial) { RemoverItens(dto, preRequisicaoMaterial); AlterarItens(dto, preRequisicaoMaterial); AdicionarItens(dto, preRequisicaoMaterial); }