예제 #1
0
        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) }));
        }
예제 #2
0
        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);
        }
예제 #3
0
        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));
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
        }