public bool ValidarAssociarResponsavelTecnicoHabilitado(HabilitarEmissaoCFOCFOC habilitacao, List <Cultivar> cultivares) { #region Configurar cultivares = cultivares ?? new List <Cultivar>(); if (habilitacao.Pragas == null || habilitacao.Pragas.Count < 1) { habilitacao = new HabilitarEmissaoCFOCFOCBus().ObterPorCredenciado(habilitacao.Responsavel.Id); if (Validacao.EhValido) { PragaInternoBus pragaBus = new PragaInternoBus(); habilitacao.Pragas.ForEach(x => { x.Praga.Culturas = pragaBus.ObterCulturas(x.Praga.Id); }); } else { return(false); } } #endregion if (habilitacao.Situacao == (int)eHabilitacaoCFOCFOCSituacao.Inativo) { Validacao.Add(Mensagem.UnidadeConsolidacao.HabilitacaoInativa); return(false); } if (!habilitacao.Pragas.SelectMany(p => p.Praga.Culturas).ToList().Exists(c => cultivares.Exists(x => x.CulturaId == c.Id))) { Validacao.Add(Mensagem.UnidadeConsolidacao.ResponsavelTecnicoNaoHabilitadoParaCultura); return(false); } foreach (var habPraga in habilitacao.Pragas) { foreach (var cultivarItem in habPraga.Praga.Culturas.SelectMany(x => x.LstCultivar)) { foreach (var item in cultivares) { if (cultivarItem.Id == item.Id && DateTime.Parse(habPraga.DataFinalHabilitacao) < DateTime.Today) { Validacao.Add(Mensagem.UnidadeConsolidacao.ResponsavelTecnicoHabilitacaoPragaVencida); return(false); } } } } return(Validacao.EhValido); }
public bool ValidarAssociarResponsavelTecnicoHabilitado(EmissaoCFOC entidade) { #region Configurar List <Cultivar> cultivares = new List <Cultivar>(); foreach (var item in entidade.Produtos) { cultivares.Add(new Cultivar() { CulturaId = item.CulturaId, Id = item.CultivarId }); } if (cultivares.Count <= 0) { Validacao.Add(Mensagem.EmissaoCFOC.ProdutoObrigatorio); return(false); } HabilitarEmissaoCFOCFOCBus habilitarEmissaoCFOCFOCBus = new HabilitarEmissaoCFOCFOCBus(); HabilitarEmissaoCFOCFOC habilitacao = new HabilitarEmissaoCFOCFOCBus().ObterPorCredenciado(User.FuncionarioId); if (Validacao.EhValido) { PragaInternoBus pragaBus = new PragaInternoBus(); habilitacao.Pragas.ForEach(x => { x.Praga.Culturas = pragaBus.ObterCulturas(x.Praga.Id); }); } else { return(false); } #endregion if (habilitacao.Id <= 0 || habilitacao.Situacao == (int)eHabilitacaoCFOCFOCSituacao.Inativo) { Validacao.Add(Mensagem.EmissaoCFOC.ResponsavelTecnicoNaoHabilitado); return(false); } if (!habilitacao.Pragas.SelectMany(p => p.Praga.Culturas).ToList().Exists(c => cultivares.Exists(x => x.CulturaId == c.Id))) { Validacao.Add(Mensagem.EmissaoCFOC.ResponsavelTecnicoNaoHabilitadoParaCultura); return(false); } if (DateTime.Parse(habilitacao.ValidadeRegistro) < DateTime.Today) { Validacao.Add(Mensagem.EmissaoCFOC.ValidadeRegistroMenorAtual); return(false); } foreach (var item in entidade.Pragas) { if (!habilitacao.Pragas.Exists(y => y.Praga.Id == item.Id)) { Validacao.Add(Mensagem.EmissaoCFOC.PragaNaoAssociadaHabilitacao(item.NomeCientifico, item.NomeComum)); return(false); } } List <string> aux = new List <string>(); foreach (var habPraga in habilitacao.Pragas) { foreach (var cultivarItem in habPraga.Praga.Culturas.SelectMany(x => x.LstCultivar)) { foreach (var item in cultivares) { if (cultivarItem.Id == item.Id && DateTime.Parse(habPraga.DataFinalHabilitacao) < DateTime.Today) { if (!aux.Any(a => a == cultivarItem.Nome)) { aux.Add(cultivarItem.Nome); } } } } } if (aux.Count > 0) { if ((eDocumentoFitossanitarioTipoNumero)entidade.TipoNumero == eDocumentoFitossanitarioTipoNumero.Bloco) { Validacao.Add(Mensagem.EmissaoCFOC.ResponsavelTecnicoHabilitacaoPragaVencidaBloco(Mensagem.Concatenar(aux))); } else { Validacao.Add(Mensagem.EmissaoCFOC.ResponsavelTecnicoHabilitacaoPragaVencidaDigital(Mensagem.Concatenar(aux))); } } return(Validacao.EhValido); }