public ActionResult ObterDeclaracaoAdicional(List <IdentificacaoProduto> produtos, List <Praga> pragas) { if (produtos == null || produtos.Count <= 0 || pragas == null || pragas.Count <= 0) { return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @DeclaracoesAdicionais = string.Empty })); } CulturaInternoBus culturaBus = new CulturaInternoBus(); List <Cultivar> cultivares = culturaBus.ObterCultivares(produtos.Select(x => x.CulturaId).ToList()) ?? new List <Cultivar>(); List <string> declaracoesAdicionais = cultivares .Where(x => produtos.Select(y => y.CultivarId).ToList().Any(y => y == x.Id)) .SelectMany(x => x.LsCultivarConfiguracao.Where(y => produtos.Count(z => z.CultivarId == y.Cultivar && y.TipoProducaoId == (int)ValidacoesGenericasBus.ObterTipoProducao(z.UnidadeMedidaId)) > 0)) .Where(x => pragas.Any(y => y.Id == x.PragaId)) .Select(x => x.DeclaracaoAdicionalTextoHtml) .Distinct().ToList(); return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @DeclaracoesAdicionais = String.Join(" ", declaracoesAdicionais) })); }
public List <Lista> ObterCultivar(int origemTipo, int origemID, int culturaID) { try { if (origemTipo == (int)eDocumentoFitossanitarioTipo.CFCFR || origemTipo == (int)eDocumentoFitossanitarioTipo.TF) { CulturaInternoBus culturaInternoBus = new CulturaInternoBus(); return(culturaInternoBus.ObterLstCultivar(culturaID)); } else { return(_da.ObterCultivar(origemTipo, origemID, culturaID)); } } catch (Exception exc) { Validacao.AddErro(exc); } return(null); }
public ActionResult Editar(int id) { if (!_validar.VerificarCredenciadoHabilitado()) { return(RedirectToAction("Index", "CFO", Validacao.QueryParamSerializer())); } EmissaoCFO cfo = _bus.Obter(id); if (!_validar.Editar(cfo)) { return(RedirectToAction("Index", "CFO", Validacao.QueryParamSerializer())); } List <int> culturas = new List <int>(); cfo.Produtos.Select(x => x.CulturaId).ToList().ForEach(cultura => { culturas.Add(cultura); }); CFOVM vm = new CFOVM(cfo, _bus.ObterProdutoresLista(), ListaCredenciadoBus.Estados, ListaCredenciadoBus.Municipios(cfo.EstadoId), _bus.ObterEmpreendimentosLista(cfo.ProdutorId), _bus.ObterPragasLista(cfo.Produtos), ListaCredenciadoBus.CFOProdutoEspecificacao, ListaCredenciadoBus.DocFitossanitarioSituacao, _bus.ObterUnidadesProducaoLista(cfo.EmpreendimentoId, cfo.ProdutorId), ListaCredenciadoBus.Municipios(cfo.EstadoEmissaoId)); CulturaInternoBus culturaBus = new CulturaInternoBus(); List <Cultivar> cultivares = culturaBus.ObterCultivares(cfo.Produtos.Select(x => x.CulturaId).ToList(), cfo.Produtos.Select(x => x.LoteId).ToList()) ?? new List <Cultivar>(); List <string> declaracoesAdicionais = cultivares .Where(x => cfo.Produtos.Select(y => y.CultivarId).ToList().Any(y => y == x.Id)) .SelectMany(x => x.LsCultivarConfiguracao.Where(y => cfo.Produtos.Count(z => z.CultivarId == y.Cultivar && y.TipoProducaoId == (int)ValidacoesGenericasBus.ObterTipoProducao(z.UnidadeMedidaId)) > 0)) .Where(x => cfo.Pragas.Any(y => y.Id == x.PragaId)) .Select(x => x.DeclaracaoAdicionalTextoHtml) .Distinct().ToList(); vm.CFO.DeclaracaoAdicionalHtml = String.Join(" ", declaracoesAdicionais); return(View(vm)); }
public bool Salvar(EmissaoCFOC entidade) { try { if (entidade.TipoNumero == (int)eDocumentoFitossanitarioTipoNumero.Digital) { if (entidade.Id <= 0) { if (_validar.VerificarNumeroDigitalDisponivel()) { entidade.Numero = ObterNumeroDigital(); if (entidade.Numero.IndexOf("/") >= 0) { string[] tmpNum = entidade.Numero.Split('/'); entidade.Numero = tmpNum[0]; entidade.Serie = tmpNum[1]; } } else { return(false); } } else { EmissaoCFOC entidadeBanco = Obter(entidade.Id, simplificado: true); entidade.Numero = entidadeBanco.Numero; if (entidade.Numero.IndexOf("/") >= 0) { string[] tmpNum = entidade.Numero.Split('/'); entidade.Numero = tmpNum[0]; entidade.Serie = tmpNum[1]; } } } CulturaInternoBus culturaBus = new CulturaInternoBus(); List <Cultivar> cultivares = culturaBus.ObterCultivares(entidade.Produtos.Select(x => x.CulturaId).ToList(), entidade.Produtos.Select(y => y.LoteId).ToList()) ?? new List <Cultivar>(); var declaracoesAdicionais = cultivares .Where(x => entidade.Produtos.Select(y => y.CultivarId).ToList().Any(y => y == x.Id)) .SelectMany(x => x.LsCultivarConfiguracao.Where(y => entidade.Produtos.Count(z => z.CultivarId == y.Cultivar && y.TipoProducaoId == (int)ValidacoesGenericasBus.ObterTipoProducao(z.UnidadeMedidaId)) > 0)) .Where(x => entidade.Pragas.Any(y => y.Id == x.PragaId)) .Select(x => x.DeclaracaoAdicionalTexto) .Distinct().ToList(); var declaracoesAdicionaisHtml = cultivares .Where(x => entidade.Produtos.Select(y => y.CultivarId).ToList().Any(y => y == x.Id)) .SelectMany(x => x.LsCultivarConfiguracao.Where(y => entidade.Produtos.Count(z => z.CultivarId == y.Cultivar && y.TipoProducaoId == (int)ValidacoesGenericasBus.ObterTipoProducao(z.UnidadeMedidaId)) > 0)) .Where(x => entidade.Pragas.Any(y => y.Id == x.PragaId)) .Select(x => x.DeclaracaoAdicionalTextoHtml) .Distinct().ToList(); entidade.DeclaracaoAdicional = String.Join(" ", declaracoesAdicionais); entidade.DeclaracaoAdicionalHtml = String.Join(" ", declaracoesAdicionaisHtml); _validar.Salvar(entidade); if (!Validacao.EhValido) { return(false); } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDados.IniciarTransacao(); _da.Salvar(entidade, bancoDeDados); CFOCFOCInternoBus CFOCFOCInternoBus = new CFOCFOCInternoBus(); CFOCFOCInternoBus.SetarNumeroUtilizado(entidade.Numero, entidade.TipoNumero.GetValueOrDefault(), eDocumentoFitossanitarioTipo.CFOC, entidade.Serie); if (string.IsNullOrEmpty(entidade.Serie)) { Validacao.Add(Mensagem.EmissaoCFOC.Salvar(entidade.Numero)); } else { Validacao.Add(Mensagem.EmissaoCFOC.Salvar(entidade.Numero + "/" + entidade.Serie)); } bancoDeDados.Commit(); } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
public bool Salvar(EmissaoCFO cfo) { try { if (cfo.TipoNumero == (int)eDocumentoFitossanitarioTipoNumero.Digital) { if (cfo.Id <= 0) { if (_validar.VerificarNumeroDigitalDisponivel()) { cfo.Numero = ObterNumeroDigital(); } else { return(false); } } else { EmissaoCFO entidadeBanco = Obter(cfo.Id, simplificado: true); cfo.Numero = entidadeBanco.Numero; } } CulturaInternoBus culturaBus = new CulturaInternoBus(); List <Cultivar> cultivares = culturaBus.ObterCultivares(cfo.Produtos.Select(x => x.CulturaId).ToList()) ?? new List <Cultivar>(); var declaracoesAdicionais = cultivares .Where(x => cfo.Produtos.Any(y => y.CultivarId == x.Id)) .SelectMany(x => x.LsCultivarConfiguracao.Where(y => cfo.Produtos.Count(z => z.CultivarId == y.Cultivar && y.TipoProducaoId == (int)ValidacoesGenericasBus.ObterTipoProducao(z.UnidadeMedidaId)) > 0)) .Where(x => cfo.Pragas.Any(y => y.Id == x.PragaId)) .Select(x => x.DeclaracaoAdicionalTexto) .Distinct().ToList(); var declaracoesAdicionaisHtml = cultivares .Where(x => cfo.Produtos.Any(y => y.CultivarId == x.Id)) .SelectMany(x => x.LsCultivarConfiguracao.Where(y => cfo.Produtos.Count(z => z.CultivarId == y.Cultivar && y.TipoProducaoId == (int)ValidacoesGenericasBus.ObterTipoProducao(z.UnidadeMedidaId)) > 0)) .Where(x => cfo.Pragas.Any(y => y.Id == x.PragaId)) .Select(x => x.DeclaracaoAdicionalTextoHtml) .Distinct().ToList(); cfo.DeclaracaoAdicional = String.Join(" ", declaracoesAdicionais); cfo.DeclaracaoAdicionalHtml = String.Join(" ", declaracoesAdicionaisHtml); _validar.Salvar(cfo); if (!Validacao.EhValido) { return(false); } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDados.IniciarTransacao(); _da.Salvar(cfo, bancoDeDados); _busInterno.SetarNumeroUtilizado(cfo.Numero, cfo.TipoNumero.GetValueOrDefault(), eDocumentoFitossanitarioTipo.CFO); Validacao.Add(Mensagem.EmissaoCFO.Salvar(cfo.Numero)); bancoDeDados.Commit(); } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }