Esempio n. 1
0
        public async Task <IActionResult> Details(string id)
        {
            try
            {
                if (string.IsNullOrEmpty(id))
                {
                    await writeEventAsync("Search without id", LogEvent.err);

                    return(new BadRequestResult());
                }
                Cultivar entity = await db.cultivar.byIdAsync(id);

                ViewBag.crop = await db.crop.byIdAsync(entity.crop.ToString());

                if (entity == null)
                {
                    await writeEventAsync("Not found id: " + id, LogEvent.err);

                    return(new NotFoundResult());
                }
                await writeEventAsync("Search id: " + id, LogEvent.rea);

                return(View(entity));
            }
            catch (Exception ex)
            {
                await writeExceptionAsync(ex);

                return(View());
            }
        }
        public ActionResult Editar(UnidadeProducao caracterizacao, int projetoDigitalId)
        {
            Cultura  cultura  = null;
            Cultivar cultivar = null;

            foreach (var unidade in caracterizacao.UnidadesProducao)
            {
                foreach (var responsavel in unidade.ResponsaveisTecnicos)
                {
                    cultura = new Cultura()
                    {
                        Id = unidade.CulturaId, Nome = unidade.CulturaTexto
                    };
                    cultivar = new Cultivar()
                    {
                        Id = unidade.CultivarId.GetValueOrDefault(), Nome = unidade.CultivarTexto
                    };

                    var validacaoResponsavelTecnico = ObterResponsavelTecnico(responsavel.Id, cultura, cultivar);
                    if (!Validacao.EhValido)
                    {
                        return(validacaoResponsavelTecnico);
                    }
                }
            }

            _bus.Salvar(caracterizacao, projetoDigitalId);
            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
                @UrlRedirecionar = Url.Action("", "Caracterizacao", new { id = caracterizacao.Empreendimento.Id, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() })
            }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 3
0
        public async Task <IActionResult> Edit(Cultivar entity, string id)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Cultivar current_entity = await db.cultivar.byIdAsync(id);

                    entity.id   = getId(id);
                    entity.crop = getId(HttpContext.Request.Form["crop"].ToString());
                    await db.cultivar.updateAsync(current_entity, entity);
                    await writeEventAsync(entity.ToString(), LogEvent.upd);

                    return(RedirectToAction("Index"));
                }
                await writeEventAsync(ModelState.ToString(), LogEvent.err);

                return(View(entity));
            }
            catch (Exception ex)
            {
                await writeExceptionAsync(ex);

                return(View(entity));
            }
        }
Esempio n. 4
0
        public async Task <IActionResult> Edit(string id)
        {
            try
            {
                if (string.IsNullOrEmpty(id))
                {
                    await writeEventAsync("Search without id", LogEvent.err);

                    return(new BadRequestResult());
                }
                Cultivar entity = await db.cultivar.byIdAsync(id);

                if (entity == null)
                {
                    await writeEventAsync("Not found id: " + id, LogEvent.err);

                    return(new NotFoundResult());
                }
                var crops = await db.crop.listEnableAsync();

                ViewBag.crop = new SelectList(crops, "id", "name", entity.crop);
                await writeEventAsync("Search id: " + id, LogEvent.rea);

                return(View(entity));
            }
            catch (Exception ex)
            {
                await writeExceptionAsync(ex);

                return(View());
            }
        }
        public void ValidarCultivar(List <Cultivar> cultivarLista, Cultivar cultivar)
        {
            cultivarLista = cultivarLista ?? new List <Cultivar>();

            if (cultivar.CulturaId < 1)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.CulturaObrigatorio);
            }

            if (cultivar.Id < 1)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.CultivarObrigatorio);
            }

            if (cultivar.CapacidadeMes <= 0)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.CapacidadeMesObrigatorio);
            }

            if (cultivar.UnidadeMedida < 1)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.UnidadeMedidaObrigatorio);
            }

            if (cultivarLista.Count(x => x.Id == cultivar.Id && cultivar.Id > 0) > 0)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.CultivarJaAdicionado);
            }

            if (cultivarLista.Count(x => x.CulturaId == cultivar.CulturaId && cultivar.Id == 0) > 0)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.CulturaJaAdicionada);
            }
        }
        public void ValidarProduto(int cfoc, int empreendimento, IdentificacaoProduto item, List <IdentificacaoProduto> lista = null)
        {
            lista = lista ?? new List <IdentificacaoProduto>();

            if (item.LoteId <= 0)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.LoteObrigatorio);
                return;
            }

            if (_da.LotePossuiOrigemCancelada(item.LoteId))
            {
                Validacao.Add(Mensagem.EmissaoCFOC.LotePossuiOrigemCancelada);
                return;
            }

            string aux = _da.LoteUtilizado(item.LoteId, cfoc);

            if (!string.IsNullOrEmpty(aux))
            {
                Validacao.Add(Mensagem.EmissaoCFOC.LoteUtilizado(item.LoteCodigo, aux));
                return;
            }

            TituloInternoBus tituloBus = new TituloInternoBus();

            if (!tituloBus.UnidadeConsolidacaoPossuiAberturaConcluido(empreendimento, item.CulturaId))
            {
                Validacao.Add(Mensagem.EmissaoCFOC.UCTituloConcluido);
            }

            Cultivar cultivar = _da.CultivarAssociadaUC(empreendimento, item.CultivarId);

            if (cultivar != null && cultivar.Id <= 0)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.CultivarAssociadoEmpreendimento(item.CultivarTexto));
                return;
            }

            var somaQuantidadeCFOC = _da.ObterCapacidadeMes(cfoc, empreendimento, item.CultivarId);
            var somaQuantidade     = lista.Where(x => !x.Equals(item) && x.CultivarId == item.CultivarId).Sum(x => x.Quantidade);

            if (cultivar.CapacidadeMes < somaQuantidadeCFOC + item.Quantidade + somaQuantidade)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.QuantidadeMensalInvalida);
                return;
            }

            if (lista.Count(x => !x.Equals(item)) >= 5)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.LimiteMaximo);
            }

            if (lista.Any(x => x.LoteId == item.LoteId))
            {
                Validacao.Add(Mensagem.EmissaoCFOC.LoteJaAdicionado);
            }
        }
 public String CultivarJson(Cultivar item)
 {
     return(ViewModelHelper.Json(new
     {
         @Id = item.Id,
         @IdRelacionamento = item.IdRelacionamento,
         @Nome = item.Nome,
         @CapacidadeMes = item.CapacidadeMes,
         @UnidadeMedida = item.UnidadeMedida
     }));
 }
Esempio n. 8
0
        /// <summary>Attach the cultivar model to the cultivar view</summary>
        /// <param name="model">The mode</param>
        /// <param name="view">The view</param>
        /// <param name="explorerPresenter">The parent explorer presenter</param>
        public void Attach(object model, object view, ExplorerPresenter explorerPresenter)
        {
            this.cultivar          = model as Cultivar;
            this.view              = view as IEditorView;
            this.explorerPresenter = explorerPresenter;

            this.view.Lines = this.cultivar.Commands;

            this.view.LeaveEditor        += this.OnCommandsChanged;
            this.view.ContextItemsNeeded += this.OnContextItemsNeeded;
            this.explorerPresenter.CommandHistory.ModelChanged += this.OnModelChanged;
        }
Esempio n. 9
0
        /// <summary>Attach the cultivar model to the cultivar view</summary>
        /// <param name="model">The mode</param>
        /// <param name="view">The view</param>
        /// <param name="explorerPresenter">The parent explorer presenter</param>
        public void Attach(object model, object view, ExplorerPresenter explorerPresenter)
        {
            this.cultivar          = model as Cultivar;
            this.view              = view as IEditorView;
            this.explorerPresenter = explorerPresenter;

            this.view.Lines            = this.cultivar.Commands;
            intellisense               = new IntellisensePresenter(this.view as ViewBase);
            intellisense.ItemSelected += (sender, e) => this.view.InsertCompletionOption(e.ItemSelected, e.TriggerWord);

            this.view.LeaveEditor        += this.OnCommandsChanged;
            this.view.ContextItemsNeeded += this.OnContextItemsNeeded;
            this.explorerPresenter.CommandHistory.ModelChanged += this.OnModelChanged;
        }
Esempio n. 10
0
        /// <summary>Attach the cultivar model to the cultivar view</summary>
        /// <param name="model">The mode</param>
        /// <param name="view">The view</param>
        /// <param name="explorerPresenter">The parent explorer presenter</param>
        public void Attach(object model, object view, ExplorerPresenter explorerPresenter)
        {
            this.cultivar          = model as Cultivar;
            this.view              = view as IEditorView;
            this.explorerPresenter = explorerPresenter;

            this.view.Lines            = this.cultivar.Command;
            intellisense               = new IntellisensePresenter(this.view as ViewBase);
            intellisense.ItemSelected += OnIntellisenseItemSelected;

            this.view.LeaveEditor        += this.OnCommandsChanged;
            this.view.ContextItemsNeeded += this.OnContextItemsNeeded;
            this.explorerPresenter.CommandHistory.ModelChanged += this.OnModelChanged;
        }
Esempio n. 11
0
        public async Task <IActionResult> DeleteConfirmed(string id)
        {
            try
            {
                Cultivar entity = await db.cultivar.byIdAsync(id);

                await db.cultivar.deleteAsync(entity);
                await writeEventAsync(entity.ToString(), LogEvent.del);

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                await writeExceptionAsync(ex);

                return(RedirectToAction("Delete", new { id = id }));
            }
        }
        internal List <Cultivar> ObterCultivares(List <int> culturas, int protocoloId, BancoDeDados banco = null)
        {
            List <Cultivar> cultivares = new List <Cultivar>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@" select c.texto cultura, cc.cultivar, crt_c.capacidade_mes, lu.texto unidade_medida_texto
															from {0}crt_unidade_cons_cultivar  crt_c, {0}tab_cultura c, {0}tab_cultura_cultivar cc,
															{0}lov_crt_un_conso_un_medida lu where crt_c.id in (select id from {0}crt_unidade_cons_cultivar
															@) and unidade_consolidacao in (select unidade_consolidacao
															from {0}crt_unidade_cons_cultivar where unidade_consolidacao = (select id 
															from {0}crt_unidade_consolidacao where empreendimento = (select empreendimento from {0}tab_protocolo 
															where id = :protocolo))) and crt_c.cultura = c.id and crt_c.cultivar = cc.id(+)
															and lu.id = crt_c.unidade_medida"                                                            , EsquemaBanco);

                comando.DbCommand.CommandText = comando.DbCommand.CommandText.Replace("@", "{0}");

                comando.DbCommand.CommandText = string.Format(comando.DbCommand.CommandText, comando.AdicionarIn("where", "cultura", DbType.Int32, culturas));

                comando.AdicionarParametroEntrada("protocolo", protocoloId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    Cultivar cultivar;

                    while (reader.Read())
                    {
                        cultivar                    = new Cultivar();
                        cultivar.Nome               = reader.GetValue <String>("cultivar");
                        cultivar.CulturaTexto       = reader.GetValue <String>("cultura");
                        cultivar.CapacidadeMes      = reader.GetValue <Decimal>("capacidade_mes");
                        cultivar.UnidadeMedidaTexto = reader.GetValue <String>("unidade_medida_texto");

                        cultivares.Add(cultivar);
                    }

                    reader.Close();
                }
            }

            return(cultivares);
        }
Esempio n. 13
0
        public async Task <IActionResult> Create(Cultivar entity)
        {
            try
            {
                entity.crop = getId(HttpContext.Request.Form["crop"].ToString());
                if (ModelState.IsValid)
                {
                    await db.cultivar.insertAsync(entity);
                    await writeEventAsync(entity.ToString(), LogEvent.cre);

                    return(RedirectToAction("Index"));
                }
                await writeEventAsync(ModelState.ToString(), LogEvent.err);

                return(View(entity));
            }
            catch (Exception ex)
            {
                await writeExceptionAsync(ex);

                return(View(entity));
            }
        }
        public ActionResult DeclaracaoAdicional(Cultivar item)
        {
            item.LsCultivarConfiguracao = item.LsCultivarConfiguracao ?? new List <CultivarConfiguracao>();

            #region Lita Pragas
            List <ListaValor> listaPragas = new List <ListaValor>();
            _pragaBus.ObterPragas(item.IdRelacionamento).ForEach(x =>
            {
                listaPragas.Add(new ListaValor()
                {
                    Id    = x.Id,
                    Texto = x.NomeCientifico + (string.IsNullOrEmpty(x.NomeComum) ? "" : " - " + x.NomeComum)
                });
            });
            #endregion

            CulturaVM vm = new CulturaVM(item.LsCultivarConfiguracao, listaPragas, _busLista.CultivarTipos, _busLista.DeclaracaoAdicional);
            vm.Cultura.Id           = item.Id;
            vm.Cultura.Nome         = item.CulturaTexto;
            vm.Cultura.NomeCultivar = item.Nome;

            return(View("Cultura/DeclaracaoAdicionalPartial", vm));
        }
Esempio n. 15
0
        /// <summary>Sows the specified cultivar.</summary>
        /// <param name="cultivar">The cultivar.</param>
        /// <param name="population">The population.</param>
        /// <param name="depth">The depth.</param>
        /// <param name="rowSpacing">The row spacing.</param>
        /// <param name="maxCover">The maximum cover.</param>
        /// <param name="budNumber">The bud number.</param>
        /// <exception cref="System.Exception">Cultivar not specified on sow line.</exception>
        public void Sow(string cultivar, double population, double depth, double rowSpacing, double maxCover = 1, double budNumber = 1)
        {
            SowingData = new SowPlant2Type();
            SowingData.Population = population;
            this.Population = population;
            SowingData.Depth = depth;
            SowingData.Cultivar = cultivar;
            SowingData.MaxCover = maxCover;
            SowingData.BudNumber = budNumber;
            SowingData.RowSpacing = rowSpacing;
            CropInGround = true;

            if (SowingData.Cultivar == "")
                throw new Exception("Cultivar not specified on sow line.");

            // Find cultivar and apply cultivar overrides.
            cultivarDefinition = Cultivar.Find(Cultivars, SowingData.Cultivar);
            cultivarDefinition.Apply(this);

            // Invoke a sowing event.
            if (Sowing != null)
                Sowing.Invoke(this, new EventArgs());

            Summary.WriteMessage(this, string.Format("A crop of "+SowingData.Cultivar+" OilPalm was sown today at a population of " + population + " plants/m2 with " + budNumber + " buds per plant at a row spacing of " + rowSpacing + " and a depth of " + depth + " mm"));
        }
        private UnidadeConsolidacao Obter(int id, BancoDeDados banco = null, bool simplificado = false)
        {
            UnidadeConsolidacao caracterizacao = new UnidadeConsolidacao();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Unidade de Produção

                Comando comando = bancoDeDados.CriarComando(@"
															select c.id,c.possui_codigo_uc, c.codigo_uc, c.local_livro_disponivel, c.tipo_apresentacao_produto, c.tid, 
															c.empreendimento, e.codigo empreendimento_codigo from {0}crt_unidade_consolidacao c, {0}tab_empreendimento e
															where c.empreendimento = e.id and c.id = :id"                                                            , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        caracterizacao.Id = reader.GetValue <int>("id");
                        caracterizacao.Empreendimento.Id     = reader.GetValue <int>("empreendimento");
                        caracterizacao.Empreendimento.Codigo = reader.GetValue <int>("empreendimento_codigo");
                        caracterizacao.PossuiCodigoUC        = reader.GetValue <bool>("possui_codigo_uc");
                        caracterizacao.CodigoUC             = reader.GetValue <long>("codigo_uc");
                        caracterizacao.LocalLivroDisponivel = reader.GetValue <string>("local_livro_disponivel");
                        caracterizacao.TipoApresentacaoProducaoFormaIdentificacao = reader.GetValue <string>("tipo_apresentacao_produto");
                        caracterizacao.Tid = reader.GetValue <string>("tid");
                    }

                    reader.Close();
                }

                #endregion

                if (simplificado)
                {
                    return(caracterizacao);
                }

                #region Cultivares

                comando = bancoDeDados.CriarComando(@"
				select c.id, c.tid, c.unidade_consolidacao, c.capacidade_mes, c.unidade_medida, lu.texto unidade_medida_texto, c.cultivar, cc.cultivar cultivar_nome, c.cultura,
				tc.texto cultura_texto from crt_unidade_cons_cultivar c, tab_cultura tc, tab_cultura_cultivar cc, lov_crt_un_conso_un_medida lu where tc.id = c.cultura 
				and cc.id(+) = c.cultivar and lu.id = c.unidade_medida and c.unidade_consolidacao = :unidade"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("unidade", id, DbType.Int32);

                Cultivar cultivar = null;
                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        cultivar = new Cultivar();
                        cultivar.CapacidadeMes      = reader.GetValue <decimal>("capacidade_mes");
                        cultivar.Id                 = reader.GetValue <int>("cultivar");
                        cultivar.IdRelacionamento   = reader.GetValue <int>("id");
                        cultivar.Nome               = reader.GetValue <string>("cultivar_nome");
                        cultivar.Tid                = reader.GetValue <string>("tid");
                        cultivar.UnidadeMedida      = reader.GetValue <int>("unidade_medida");
                        cultivar.UnidadeMedidaTexto = reader.GetValue <string>("unidade_medida_texto");
                        cultivar.CulturaId          = reader.GetValue <int>("cultura");
                        cultivar.CulturaTexto       = reader.GetValue <string>("cultura_texto");

                        caracterizacao.Cultivares.Add(cultivar);
                    }

                    reader.Close();
                }

                #endregion

                #region Responsáveis Técnicos

                comando = bancoDeDados.CriarComando(@"
				select c.id, c.unidade_consolidacao, c.responsavel_tecnico, c.numero_hab_cfo_cfoc, c.numero_art, c.art_cargo_funcao, c.data_validade_art, c.tid, 
				nvl(tp.nome, tp.razao_social) nome_razao, nvl(tp.cpf, tp.cnpj) cpf_cnpj, pf.texto profissao, oc.orgao_sigla, pp.registro, 
				(select h.extensao_habilitacao from tab_hab_emi_cfo_cfoc h where h.responsavel = c.responsavel_tecnico) extensao_habilitacao 
				from {0}crt_unida_conso_resp_tec c, {0}tab_credenciado tc, {1}tab_pessoa tp, {1}tab_pessoa_profissao pp, 
				{0}tab_profissao pf, {0}tab_orgao_classe oc where tc.id = c.responsavel_tecnico and tp.id = tc.pessoa and pp.pessoa(+) = tp.id 
				and pf.id(+) = pp.profissao and oc.id(+) = pp.orgao_classe and c.unidade_consolidacao = :unidade"                , EsquemaBanco, EsquemaCredenciadoBanco);

                comando.AdicionarParametroEntrada("unidade", id, DbType.Int32);

                ResponsavelTecnico responsavel = null;
                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        responsavel = new ResponsavelTecnico();
                        responsavel.IdRelacionamento = reader.GetValue <int>("id");
                        responsavel.Id             = reader.GetValue <int>("responsavel_tecnico");
                        responsavel.NomeRazao      = reader.GetValue <string>("nome_razao");
                        responsavel.CpfCnpj        = reader.GetValue <string>("cpf_cnpj");
                        responsavel.CFONumero      = reader.GetValue <string>("numero_hab_cfo_cfoc");
                        responsavel.NumeroArt      = reader.GetValue <string>("numero_art");
                        responsavel.ArtCargoFuncao = reader.GetValue <bool>("art_cargo_funcao");

                        responsavel.ProfissaoTexto   = reader.GetValue <string>("profissao");
                        responsavel.OrgaoClasseSigla = reader.GetValue <string>("orgao_sigla");
                        responsavel.NumeroRegistro   = reader.GetValue <string>("registro");

                        responsavel.DataValidadeART = reader.GetValue <string>("data_validade_art");
                        if (!string.IsNullOrEmpty(responsavel.DataValidadeART))
                        {
                            responsavel.DataValidadeART = Convert.ToDateTime(responsavel.DataValidadeART).ToShortDateString();
                        }

                        if (Convert.ToBoolean(reader.GetValue <int>("extensao_habilitacao")))
                        {
                            responsavel.CFONumero += "-ES";
                        }

                        caracterizacao.ResponsaveisTecnicos.Add(responsavel);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(caracterizacao);
        }
Esempio n. 17
0
        public void ValidarProduto(int cfoc, int empreendimento, IdentificacaoProduto item, List <IdentificacaoProduto> lista = null)
        {
            lista = lista ?? new List <IdentificacaoProduto>();

            if (item.LoteId <= 0)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.LoteObrigatorio);
                return;
            }


            //if (lista != null && lista.Count > 0 && !lista.Any(x => x.Quantidade == item.Quantidade && x.UnidadeMedida == item.UnidadeMedida && x.LoteCodigo == item.LoteCodigo))
            //{
            //    Validacao.Add(Mensagem.EmissaoCFOC.ProdutoUnico);
            //}

            if (item.Quantidade <= 0)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.QtdProdutoObrigatorio);
                return;
            }

            if (_da.LotePossuiOrigemCancelada(item.LoteId))
            {
                Validacao.Add(Mensagem.EmissaoCFOC.LotePossuiOrigemCancelada);
                return;
            }

            //string aux = _da.LoteUtilizado(item.LoteId, cfoc);
            //if (!string.IsNullOrEmpty(aux))
            //{
            //    Validacao.Add(Mensagem.EmissaoCFOC.LoteUtilizado(item.LoteCodigo, aux));
            //    return;
            //}

            TituloInternoBus tituloBus = new TituloInternoBus();

            if (!tituloBus.UnidadeConsolidacaoPossuiAberturaConcluido(empreendimento, item.CulturaId))
            {
                Validacao.Add(Mensagem.EmissaoCFOC.UCTituloConcluido);
            }

            Cultivar cultivar = _da.CultivarAssociadaUC(empreendimento, item.CultivarId);

            if (cultivar != null && cultivar.Id <= 0)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.CultivarAssociadoEmpreendimento(item.CultivarTexto));
                return;
            }

            var somaQuantidadeRemanescente = _da.ObterSaldoRemanescente(item.LoteId, empreendimento);

            //var somaQuantidade = lista.Where(x => !x.Equals(item) && x.CultivarId == item.CultivarId).Sum(x => x.Quantidade);


            if (somaQuantidadeRemanescente < (item.ExibeQtdKg ? item.Quantidade / 1000 : item.Quantidade))
            {
                Validacao.Add(Mensagem.EmissaoCFOC.LoteSaldoInsuficiente);
                return;
            }

            if (lista.Count(x => !x.Equals(item)) >= 5)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.LimiteMaximo);
            }

            if (lista.Any(x => x.LoteId == item.LoteId))
            {
                Validacao.Add(Mensagem.EmissaoCFOC.LoteJaAdicionado);
            }
        }
Esempio n. 18
0
        /// <summary>Sows the specified population.</summary>
        /// <param name="population">The population.</param>
        /// <param name="cultivar">The cultivar.</param>
        /// <param name="depth">The depth.</param>
        /// <param name="rowSpacing">The row spacing.</param>
        /// <param name="budNumber">Bud number not used</param>
        /// <param name="maxCover">Maximum cover not used</param>
        /// <exception cref="System.Exception">Cultivar not specified on sow line.</exception>
        public void Sow(string cultivar, double population, double depth, double rowSpacing, double maxCover = 1, double budNumber = 1)
        {
            SowingData = new SowPlant2Type();
            SowingData.Population = population;
            SowingData.Cultivar = cultivar;
            SowingData.Depth = depth;
            SowingData.RowSpacing = rowSpacing;

            if (SowingData.Cultivar == "")
                throw new Exception("Cultivar not specified on sow line.");

            // Find cultivar and apply cultivar overrides.
            cultivarDefinition = Cultivar.Find(Cultivars, SowingData.Cultivar);
            cultivarDefinition.Apply(this);

            if (NewCrop != null)
            {
                NewCropType Crop = new NewCropType();
                Crop.crop_type = CropType;
                Crop.sender = Name;
                NewCrop.Invoke(Crop);
            }

            if (Sowing != null)
                Sowing.Invoke(this, new EventArgs());

            if (PlantSowing != null)
                PlantSowing.Invoke(this, SowingData);

            Population.OnSow(SowingData);
            WriteSowReport(SowingData);
            OnPrepare(null, null); // Call this because otherwise it won't get called on the sow date.
        }
Esempio n. 19
0
 public ActionResult AdicionarCultivar(List <Cultivar> cultivarLista, Cultivar cultivar)
 {
     _validar.ValidarCultivar(cultivarLista, cultivar);
     return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros }, JsonRequestBehavior.AllowGet));
 }
Esempio n. 20
0
        public ActionResult ObterCulturaUP(int unidadeProducaoId)
        {
            Cultivar cultivar = _bus.ObterCulturaUP(unidadeProducaoId);

            return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @Cultivar = cultivar }));
        }
        internal List <Cultivar> ObterCultivares(List <int> culturas, BancoDeDados banco = null)
        {
            List <Cultivar> lstCultivar = new List <Cultivar>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Cultivar

                Comando comando = bancoDeDados.CriarComando(@"select cc.id, cc.cultivar, cc.cultura from tab_cultura_cultivar cc ", EsquemaBanco);
                comando.DbCommand.CommandText += comando.AdicionarIn("where", "cultura", DbType.Int32, culturas);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    Cultivar lista = null;

                    while (reader.Read())
                    {
                        lista           = new Cultivar();
                        lista.Id        = reader.GetValue <int>("id");
                        lista.Nome      = reader.GetValue <string>("cultivar");
                        lista.CulturaId = reader.GetValue <int>("cultura");

                        lstCultivar.Add(lista);
                    }

                    reader.Close();
                }

                #endregion

                #region Cultivar_Configurações

                comando = bancoDeDados.CriarComando(@"
				select t.id, t.tid, t.cultivar, t.praga PragaId, p.nome_cientifico || nvl2(p.nome_comum,' - '||p.nome_comum,'') as PragaTexto, t.tipo_producao TipoProducaoId,
				lt.texto as TipoProducaoTexto, t.declaracao_adicional DeclaracaoAdicionalId, ld.texto as DeclaracaoAdicionalTexto, ld.texto_formatado as DeclaracaoAdicionalTextoHtml
				from {0}tab_cultivar_configuracao t, {0}tab_praga p, lov_cultivar_tipo_producao lt, lov_cultivar_declara_adicional ld
				where p.id = t.praga and lt.id = t.tipo_producao and ld.id = t.declaracao_adicional and t.cultivar = :id"                , EsquemaBanco);

                lstCultivar.ForEach(x =>
                {
                    comando.AdicionarParametroEntrada("id", x.Id, DbType.Int32);
                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        while (reader.Read())
                        {
                            x.LsCultivarConfiguracao.Add(new CultivarConfiguracao()
                            {
                                Id                           = reader.GetValue <int>("id"),
                                Tid                          = reader.GetValue <string>("tid"),
                                Cultivar                     = reader.GetValue <int>("cultivar"),
                                PragaId                      = reader.GetValue <int>("PragaId"),
                                PragaTexto                   = reader.GetValue <string>("PragaTexto"),
                                TipoProducaoId               = reader.GetValue <int>("TipoProducaoId"),
                                TipoProducaoTexto            = reader.GetValue <string>("TipoProducaoTexto"),
                                DeclaracaoAdicionalId        = reader.GetValue <int>("DeclaracaoAdicionalId"),
                                DeclaracaoAdicionalTexto     = reader.GetValue <string>("DeclaracaoAdicionalTexto"),
                                DeclaracaoAdicionalTextoHtml = reader.GetValue <string>("DeclaracaoAdicionalTextoHtml"),
                            });
                        }

                        reader.Close();
                    }
                });

                #endregion
            }

            return(lstCultivar);
        }
        internal List <Cultivar> ObterCultivares(List <int> culturas, List <int> lotes = null, int OutroEstado = 0, BancoDeDados banco = null)
        {
            List <Cultivar> lstCultivar = new List <Cultivar>();
            LoteDa          _loteDa     = new LoteDa();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Cultivar

                Comando comando = bancoDeDados.CriarComando(@"select cc.id, cc.cultivar, cc.cultura from tab_cultura_cultivar cc ", EsquemaBanco);
                comando.DbCommand.CommandText += comando.AdicionarIn("where", "cultura", DbType.Int32, culturas);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    Cultivar lista = null;

                    while (reader.Read())
                    {
                        lista           = new Cultivar();
                        lista.Id        = reader.GetValue <int>("id");
                        lista.Nome      = reader.GetValue <string>("cultivar");
                        lista.CulturaId = reader.GetValue <int>("cultura");

                        lstCultivar.Add(lista);
                    }

                    reader.Close();
                }

                #endregion

                #region Cultivar_Configurações
                StringBuilder   sbDecAdd         = new StringBuilder();
                List <LoteItem> lstLotesPtvOutro = new List <LoteItem>();
                List <LoteItem> lstLotesCfo      = new List <LoteItem>();
                List <LoteItem> lstLotesCfoc     = new List <LoteItem>();
                string          cmdSql           = "";
                // string strOutroEstado = "";
                if (lotes != null && lotes.Count > 0 && lotes[0] != 0)
                {
                    // strOutroEstado = "('0')";
                    foreach (int idLot in lotes)
                    {
                        Lote lot = _loteDa.Obter(idLot);
                        // totaloutro = lot.Lotes.Where(z => z.OrigemTipo == (int)eDocumentoFitossanitarioTipo.PTVOutroEstado).ToList().Count;
                        lstLotesPtvOutro.AddRange(lot.Lotes.Where(z => z.OrigemTipo == (int)eDocumentoFitossanitarioTipo.PTVOutroEstado).ToList());

                        lstLotesCfo.AddRange(lot.Lotes.Where(z => z.OrigemTipo == (int)eDocumentoFitossanitarioTipo.CFO).ToList());

                        lstLotesCfoc.AddRange(lot.Lotes.Where(z => z.OrigemTipo == (int)eDocumentoFitossanitarioTipo.CFOC).ToList());
                        //foreach (LoteItem item in lstLotes)
                        //{
                        //    sbDecAdd.Append(ObterDeclaracaoAdicionalPTVOutroEstado(item.Origem));
                        //}

                        //if (lstLotes.Count > 0 && lstLotes.Count == lot.Lotes.Count)
                        //{
                        //    strOutroEstado = "('1')";
                        //}
                        //else if (lstLotes.Count > 0 && lstLotes.Count != lot.Lotes.Count)
                        //    strOutroEstado = "('1','0')";
                        //else
                        //    strOutroEstado = "('0')";
                    }
                }
                else
                {
                    cmdSql = string.Format(@" select t.id, t.tid, t.cultivar, t.praga PragaId, p.nome_cientifico || nvl2(p.nome_comum,' - '||p.nome_comum,'') as PragaTexto, t.tipo_producao TipoProducaoId,
				                                lt.texto as TipoProducaoTexto, t.declaracao_adicional DeclaracaoAdicionalId, ld.texto as DeclaracaoAdicionalTexto, ld.texto_formatado as DeclaracaoAdicionalTextoHtml
				                                from {0}tab_cultivar_configuracao t, {0}tab_praga p, lov_cultivar_tipo_producao lt, lov_cultivar_declara_adicional ld
				                                where p.id = t.praga and lt.id = t.tipo_producao and ld.id = t.declaracao_adicional and t.cultivar = :id and
                                                ld.outro_estado = '0'", EsquemaBanco);
                }



                //else if (OutroEstado == 1)
                //    strOutroEstado = "('1')";
                //else
                //    strOutroEstado = "('0')";


//                string cmdSql = string.Format(@"select t.id, t.tid, t.cultivar, t.praga PragaId, p.nome_cientifico || nvl2(p.nome_comum,' - '||p.nome_comum,'') as PragaTexto, t.tipo_producao TipoProducaoId,
//				            lt.texto as TipoProducaoTexto, t.declaracao_adicional DeclaracaoAdicionalId, ld.texto as DeclaracaoAdicionalTexto, ld.texto_formatado as DeclaracaoAdicionalTextoHtml
//				            from {0}tab_cultivar_configuracao t, {0}tab_praga p, lov_cultivar_tipo_producao lt, lov_cultivar_declara_adicional ld, tab_ptv_outrouf_declaracao ot
//				            where p.id = t.praga and lt.id = t.tipo_producao and ld.id = t.declaracao_adicional and t.cultivar = :id and ld.id = ot.declaracao_adicional(+)", EsquemaBanco, strOutroEstado);



                string strLotes = "";
                if ((lstLotesCfo != null && lstLotesCfo.Count > 0) ||
                    (lstLotesCfoc != null && lstLotesCfoc.Count > 0))
                {
                    string strCultivares = "";
                    if (lstLotesCfo != null && lstLotesCfo.Count > 0)
                    {
                        strCultivares = string.Join(",", lstLotesCfo
                                                    .Select(x => string.Format("'{0}'", x.Cultivar.ToString())));

                        cmdSql = string.Format(@" select t.id, t.tid, t.cultivar, t.praga PragaId, p.nome_cientifico || nvl2(p.nome_comum,' - '||p.nome_comum,'') as PragaTexto, t.tipo_producao TipoProducaoId,
				                              lt.texto as TipoProducaoTexto, t.declaracao_adicional DeclaracaoAdicionalId, ld.texto as DeclaracaoAdicionalTexto, ld.texto_formatado as DeclaracaoAdicionalTextoHtml
				                              from {0}tab_cultivar_configuracao t, {0}tab_praga p, lov_cultivar_tipo_producao lt, lov_cultivar_declara_adicional ld
				                              where p.id = t.praga and lt.id = t.tipo_producao and ld.id = t.declaracao_adicional and t.cultivar in ({1}) and
                                              ld.outro_estado = '0'", EsquemaBanco, strCultivares);
                    }
                    else if (lstLotesCfoc != null && lstLotesCfoc.Count > 0)
                    {
                        strCultivares = string.Join(",", lstLotesCfoc
                                                    .Select(x => string.Format("'{0}'", x.Cultivar.ToString())));


                        foreach (LoteItem ltItem in lstLotesCfoc)
                        {
                            Dictionary <int, int> lstTipoDocOrigem = BuscaTipoDocOrigemCFOC(ltItem.Origem, ltItem.Cultivar, bancoDeDados);


                            foreach (KeyValuePair <int, int> kv in lstTipoDocOrigem)
                            {
                                if (kv.Key == (int)eDocumentoFitossanitarioTipo.PTVOutroEstado)
                                {
                                    if (!string.IsNullOrEmpty(cmdSql))
                                    {
                                        cmdSql += " union all ";
                                    }

                                    cmdSql += string.Format(@" select t.id, t.tid, t.cultivar, t.praga PragaId, p.nome_cientifico || nvl2(p.nome_comum,' - '||p.nome_comum,'') as PragaTexto, t.tipo_producao TipoProducaoId,
				                                        lt.texto as TipoProducaoTexto, t.declaracao_adicional DeclaracaoAdicionalId, ld.texto as DeclaracaoAdicionalTexto, ld.texto_formatado as DeclaracaoAdicionalTextoHtml
				                                        from tab_cultivar_configuracao t, tab_praga p, lov_cultivar_tipo_producao lt, lov_cultivar_declara_adicional ld, tab_ptv_outrouf_declaracao ot
				                                        where p.id = t.praga and lt.id = t.tipo_producao and ld.id = t.declaracao_adicional and t.cultivar = :id and ld.id = ot.declaracao_adicional
                                                        and ot.ptv = {1} ", EsquemaBanco, kv.Value);
                                }

                                if (kv.Key == (int)eDocumentoFitossanitarioTipo.CFO)
                                {
                                    if (!string.IsNullOrEmpty(cmdSql))
                                    {
                                        cmdSql += " union all ";
                                    }

                                    cmdSql += string.Format(@" select t.id, t.tid, t.cultivar, t.praga PragaId, p.nome_cientifico || nvl2(p.nome_comum,' - '||p.nome_comum,'') as PragaTexto, t.tipo_producao TipoProducaoId,
				                              lt.texto as TipoProducaoTexto, t.declaracao_adicional DeclaracaoAdicionalId, ld.texto as DeclaracaoAdicionalTexto, ld.texto_formatado as DeclaracaoAdicionalTextoHtml
				                              from {0}tab_cultivar_configuracao t, {0}tab_praga p, lov_cultivar_tipo_producao lt, lov_cultivar_declara_adicional ld
				                              where p.id = t.praga and lt.id = t.tipo_producao and ld.id = t.declaracao_adicional and t.cultivar = :id and
                                              ld.outro_estado = '0'", EsquemaBanco);
                                }
                            }
                        }
                    }
                }

                if (lstLotesPtvOutro != null && lstLotesPtvOutro.Count > 0)
                {
                    strLotes = string.Join(",", lstLotesPtvOutro
                                           .Select(x => string.Format("'{0}'", x.Origem.ToString())));

                    if (!string.IsNullOrEmpty(cmdSql))
                    {
                        cmdSql += " union all ";
                    }

                    cmdSql += string.Format(@" select t.id, t.tid, t.cultivar, t.praga PragaId, p.nome_cientifico || nvl2(p.nome_comum,' - '||p.nome_comum,'') as PragaTexto, t.tipo_producao TipoProducaoId,
				                                        lt.texto as TipoProducaoTexto, t.declaracao_adicional DeclaracaoAdicionalId, ld.texto as DeclaracaoAdicionalTexto, ld.texto_formatado as DeclaracaoAdicionalTextoHtml
				                                        from tab_cultivar_configuracao t, tab_praga p, lov_cultivar_tipo_producao lt, lov_cultivar_declara_adicional ld, tab_ptv_outrouf_declaracao ot
				                                        where p.id = t.praga and lt.id = t.tipo_producao and ld.id = t.declaracao_adicional and t.cultivar = :id and ld.id = ot.declaracao_adicional
                                                and ot.ptv in ({1})", EsquemaBanco, strLotes);
                }

                //ld.outro_estado in {1}

                if (string.IsNullOrEmpty(cmdSql))
                {
                    return(lstCultivar);
                }

                comando = bancoDeDados.CriarComando(cmdSql, EsquemaBanco);

                lstCultivar.ForEach(x =>
                {
                    if (cmdSql.Contains(":"))
                    {
                        comando.AdicionarParametroEntrada("id", x.Id, DbType.Int32);
                    }



                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        while (reader.Read())
                        {
                            //string Declaracao = "";

                            //if (lstLotes != null && lstLotes.Any(z => z.Cultivar == reader.GetValue<int>("cultivar")))
                            //    Declaracao = sbDecAdd.ToString();
                            //else
                            //    Declaracao = reader.GetValue<string>("DeclaracaoAdicionalTexto");

                            x.LsCultivarConfiguracao.Add(new CultivarConfiguracao()
                            {
                                Id                           = reader.GetValue <int>("id"),
                                Tid                          = reader.GetValue <string>("tid"),
                                Cultivar                     = reader.GetValue <int>("cultivar"),
                                PragaId                      = reader.GetValue <int>("PragaId"),
                                PragaTexto                   = reader.GetValue <string>("PragaTexto"),
                                TipoProducaoId               = reader.GetValue <int>("TipoProducaoId"),
                                TipoProducaoTexto            = reader.GetValue <string>("TipoProducaoTexto"),
                                DeclaracaoAdicionalId        = reader.GetValue <int>("DeclaracaoAdicionalId"),
                                DeclaracaoAdicionalTexto     = reader.GetValue <string>("DeclaracaoAdicionalTexto"),
                                DeclaracaoAdicionalTextoHtml = reader.GetValue <string>("DeclaracaoAdicionalTextoHtml")
                            });
                        }

                        reader.Close();
                    }
                });

                #endregion
            }

            return(lstCultivar);
        }
Esempio n. 23
0
        public UnidadeConsolidacao ObterHistorico(int id, string tid, bool simplificado = false, BancoDeDados banco = null)
        {
            UnidadeConsolidacao caracterizacao = new UnidadeConsolidacao();
            int hst = 0;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaCredenciadoBanco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
				select c.id, c.tid, c.interno_id, c.interno_tid, c.empreendimento_id, c.possui_codigo_uc, c.codigo_uc, c.local_livro_disponivel, 
				c.tipo_apresentacao_produto from {0}hst_crt_unidade_consolidacao c where c.unidade_consolidacao = :id and c.tid = :tid"                , EsquemaCredenciadoBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        hst = reader.GetValue <int>("id");

                        caracterizacao.Id            = id;
                        caracterizacao.CredenciadoID = id;
                        caracterizacao.Tid           = reader.GetValue <string>("tid");
                        caracterizacao.InternoId     = reader.GetValue <int>("interno_id");
                        caracterizacao.InternoTid    = reader.GetValue <string>("interno_tid");

                        caracterizacao.Empreendimento.Id    = reader.GetValue <int>("empreendimento_id");
                        caracterizacao.PossuiCodigoUC       = reader.GetValue <bool>("possui_codigo_uc");
                        caracterizacao.CodigoUC             = reader.GetValue <long>("codigo_uc");
                        caracterizacao.LocalLivroDisponivel = reader.GetValue <string>("local_livro_disponivel");
                        caracterizacao.TipoApresentacaoProducaoFormaIdentificacao = reader.GetValue <string>("tipo_apresentacao_produto");
                    }

                    reader.Close();
                }

                if (caracterizacao.Id < 1 || simplificado)
                {
                    return(caracterizacao);
                }

                #region Cultivares

                comando = bancoDeDados.CriarComando(@"
				select c.unid_consoli_cultivar_id id, c.tid, c.cultura_id, cu.texto cultura_texto, c.cultivar_id, cc.cultivar_nome, c.capacidade_mes, c.unidade_medida_id, c.unidade_medida_texto 
				from hst_crt_unidade_cons_cultivar c, hst_cultura cu, hst_cultura_cultivar cc where cu.cultura_id = c.cultura_id and cu.tid = c.cultura_tid and cc.cultivar_id(+) = c.cultivar_id 
				and cc.tid(+) = c.cultivar_tid and c.id_hst = :id"                , EsquemaCredenciadoBanco);

                comando.AdicionarParametroEntrada("id", hst, DbType.Int32);

                Cultivar cultivar = null;
                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        cultivar = new Cultivar();

                        cultivar.IdRelacionamento = reader.GetValue <int>("id");
                        cultivar.Tid                = reader.GetValue <string>("tid");
                        cultivar.CulturaId          = reader.GetValue <int>("cultura_id");
                        cultivar.CulturaTexto       = reader.GetValue <string>("cultura_texto");
                        cultivar.Id                 = reader.GetValue <int>("cultivar_id");
                        cultivar.Nome               = reader.GetValue <string>("cultivar_nome");
                        cultivar.CapacidadeMes      = reader.GetValue <decimal>("capacidade_mes");
                        cultivar.UnidadeMedida      = reader.GetValue <int>("unidade_medida_id");
                        cultivar.UnidadeMedidaTexto = reader.GetValue <string>("unidade_medida_texto");

                        caracterizacao.Cultivares.Add(cultivar);
                    }

                    reader.Close();
                }

                #endregion

                #region Responsáveis Técnicos

                comando = bancoDeDados.CriarComando(@"
				select distinct 
					c.unid_consoli_resp_tec_id id,
					c.responsavel_tecnico_id,
					c.numero_hab_cfo_cfoc,
					c.numero_art,
					c.art_cargo_funcao,
					c.data_validade_art,
					c.tid,
					nvl(tp.nome, tp.razao_social) nome_razao,
					nvl(tp.cpf, tp.cnpj) cpf_cnpj,
					pf.texto profissao,
					oc.orgao_sigla,
					pp.registro,
					(select h.extensao_habilitacao
						from hst_hab_emi_cfo_cfoc h
						where h.responsavel_id = c.responsavel_tecnico_id
						and h.responsavel_tid = c.responsavel_tecnico_tid
						and h.data_execucao =
							(select max(hh.data_execucao)
							from hst_hab_emi_cfo_cfoc hh
							where hh.responsavel_id = h.responsavel_id
							and hh.responsavel_tid = h.responsavel_tid
							and hh.data_execucao <=
								(select hc.data_execucao
									from hst_crt_unidade_consolidacao hc
									where hc.id = c.id_hst))) extensao_habilitacao
				from hst_crt_unida_conso_resp_tec c,
					hst_credenciado               tc,
					hst_pessoa                    tp,
					hst_pessoa_profissao          pp,
					hst_profissao                 pf,
					tab_orgao_classe              oc
				where tc.credenciado_id = c.responsavel_tecnico_id
				and tc.tid = c.responsavel_tecnico_tid
				and tp.pessoa_id = tc.pessoa_id
				and tp.tid = tc.pessoa_tid
				and pp.id_hst(+) = tp.id
				and pf.profissao_id(+) = pp.profissao_id
				and pf.tid(+) = pp.profissao_tid
				and oc.id(+) = pp.orgao_classe_id
				and c.id_hst = :id"                , EsquemaBanco, EsquemaCredenciadoBanco);

                comando.AdicionarParametroEntrada("id", hst, DbType.Int32);

                ResponsavelTecnico responsavel = null;
                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        responsavel = new ResponsavelTecnico();
                        responsavel.IdRelacionamento = reader.GetValue <int>("id");
                        responsavel.Id             = reader.GetValue <int>("responsavel_tecnico_id");
                        responsavel.NomeRazao      = reader.GetValue <string>("nome_razao");
                        responsavel.CpfCnpj        = reader.GetValue <string>("cpf_cnpj");
                        responsavel.CFONumero      = reader.GetValue <string>("numero_hab_cfo_cfoc");
                        responsavel.NumeroArt      = reader.GetValue <string>("numero_art");
                        responsavel.ArtCargoFuncao = reader.GetValue <bool>("art_cargo_funcao");

                        responsavel.ProfissaoTexto   = reader.GetValue <string>("profissao");
                        responsavel.OrgaoClasseSigla = reader.GetValue <string>("orgao_sigla");
                        responsavel.NumeroRegistro   = reader.GetValue <string>("registro");

                        responsavel.DataValidadeART = reader.GetValue <string>("data_validade_art");
                        if (!string.IsNullOrEmpty(responsavel.DataValidadeART))
                        {
                            responsavel.DataValidadeART = Convert.ToDateTime(responsavel.DataValidadeART).ToShortDateString();
                        }

                        if (Convert.ToBoolean(reader.GetValue <int>("extensao_habilitacao")))
                        {
                            responsavel.CFONumero += "-ES";
                        }

                        caracterizacao.ResponsaveisTecnicos.Add(responsavel);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(caracterizacao);
        }
        public ActionResult ObterResponsavelTecnico(int credenciadoId, Cultura cultura, Cultivar cultivar)
        {
            HabilitarEmissaoCFOCFOC credenciadoHabilitado = _busHabilitacaoCFOCFOC.ObterPorCredenciado(credenciadoId);

            if (Validacao.EhValido)
            {
                credenciadoHabilitado.Pragas.ForEach(x =>
                {
                    x.Praga.Culturas = _pragaBus.ObterCulturas(x.Praga.Id);
                });

                _validar.ValidarResponsavelTecnicoHabilitado(credenciadoHabilitado, cultura);
            }

            return(Json(new
            {
                @Msg = Validacao.Erros,
                @EhValido = Validacao.EhValido,
                @Habilitacao = credenciadoHabilitado
            }));
        }