Exemplo n.º 1
0
        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);
        }