private ChecagemRoteiro AtualizarItensRoteiro(ChecagemRoteiro check) { try { for (int i = 0; i < check.Roteiros.Count; i++) { List <Item> itensRoteiroAtual = null; Roteiro roteiro = null; //Busca o tid de quando o roteiro foi associado string tidDeRelacao = check.Roteiros[i].Tid.Clone().ToString(); if (check.Roteiros[i].Situacao.Equals(2)) { Validacao.Add(Mensagem.ChecagemRoteiro.RoteiroDesativado(check.Roteiros[i].Numero, eTipoMensagem.Informacao)); } //Buscar o roteiro atual roteiro = _busRoteiro.ObterSimplificado(check.Roteiros[i].Id); if (!_busRoteiro.VerificarTidAtual(check.Roteiros[i].Id, tidDeRelacao)) { Validacao.Add(Mensagem.ChecagemRoteiro.RoteiroAtualizado(roteiro.Numero, roteiro.Versao.ToString())); int idRelacao = (check.Roteiros[i].IdRelacionamento ?? 0); check.Roteiros[i] = roteiro; check.Roteiros[i].IdRelacionamento = idRelacao; } itensRoteiroAtual = roteiro.Itens; for (int j = 0; j < itensRoteiroAtual.Count; j++) { bool isNew = true; for (int k = 0; k < check.Itens.Count; k++) { if (check.Itens[k].Id == itensRoteiroAtual[j].Id) { if (!check.Itens[k].Tid.Equals(itensRoteiroAtual[j].Tid, StringComparison.InvariantCultureIgnoreCase)) { List <int> lstRoteiros = check.Itens[k].Roteiros; lstRoteiros.Add(check.Roteiros[i].Id); check.Itens[k] = itensRoteiroAtual[j]; check.Itens[k].Roteiros = lstRoteiros; } else { check.Itens[k].Roteiros.Add(check.Roteiros[i].Id); } isNew = false; break; } } if (isNew) { itensRoteiroAtual[j].Roteiros.Add(check.Roteiros[i].Id); itensRoteiroAtual[j].Situacao = (int)eChecagemItemSituacao.Pendente; itensRoteiroAtual[j].SituacaoTexto = eChecagemItemSituacao.Pendente.ToString(); check.Itens.Add(itensRoteiroAtual[j]); } } } } catch (Exception exc) { Validacao.AddErro(exc); } return(check); }
public ActionResult ConfirmarEditar(int id) { Roteiro roteiro = _bus.ObterSimplificado(id); return(View(roteiro)); }
private bool VerificarChecagem(ChecagemRoteiro checkListRoteiro) { if (String.IsNullOrWhiteSpace(checkListRoteiro.Interessado)) { Validacao.AddAdvertencia(Msg.NomeInteressadoObrigatorio.Texto); } if (checkListRoteiro.Roteiros == null || checkListRoteiro.Roteiros.Count <= 0) { Validacao.AddAdvertencia(Msg.RoteiroObrigatorio.Texto); } // checa se as atividades dos roteiros estão no mesmo setor // apenas está checando os setor de cada roteiro pois isto já basta if (!_daRoteiro.RoteirosMesmoSetor(checkListRoteiro.Roteiros)) { Validacao.Add(Mensagem.ChecagemRoteiro.RoteiroSetorDiferente); } int ri = 0; foreach (var item in checkListRoteiro.Roteiros) { ri++; Roteiro roteiro = _bus.ObterSimplificado(item.Id, item.Tid); if (roteiro == null) { Validacao.AddAdvertencia(Msg.RoteiroInvalidoNaoEncontrado.Texto); return(Validacao.EhValido); } if (_daRoteiro.RoteiroDesativado(roteiro.Id)) { Validacao.Add(Msg.RoteiroDesativado(roteiro.Numero, eTipoMensagem.Advertencia)); return(Validacao.EhValido); } if (!VerificarAtividadesAtivadas(roteiro.Id)) { return(Validacao.EhValido); } if (!_daRoteiro.VerificarTidAtual(roteiro.Id, roteiro.Tid)) { Validacao.AddAdvertencia(Msg.RoteiroAtualizado(roteiro.Numero, roteiro.VersaoAtual.ToString()).Texto); return(Validacao.EhValido); } var existe = false; foreach (var itemRoteiro in roteiro.Itens) { foreach (var itemCheckList in checkListRoteiro.Itens) { if (itemCheckList.Nome.ToUpper().Trim().Equals(itemRoteiro.Nome.ToUpper().Trim())) { existe = true; break; } if (itemCheckList.Situacao == 3 && string.IsNullOrWhiteSpace(itemCheckList.Motivo)) { Validacao.Add(Mensagem.ChecagemRoteiro.MotivoObrigatorio(itemCheckList.Nome)); break; } } if (!existe) { Validacao.AddAdvertencia(Msg.ItemRoteiroNaoAssociado(roteiro.Numero, itemRoteiro.Nome).Texto); return(Validacao.EhValido); } } foreach (var itemCheckList in checkListRoteiro.Itens) { if (itemCheckList.Situacao == 3 && string.IsNullOrWhiteSpace(itemCheckList.Motivo)) { Validacao.Add(Mensagem.ChecagemRoteiro.MotivoObrigatorio(itemCheckList.Nome)); break; } } } return(Validacao.EhValido); }