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)); }
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)); } }
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 })); }
/// <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; }
/// <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; }
/// <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; }
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); }
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)); }
/// <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); }
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); } }
/// <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. }
public ActionResult AdicionarCultivar(List <Cultivar> cultivarLista, Cultivar cultivar) { _validar.ValidarCultivar(cultivarLista, cultivar); return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros }, JsonRequestBehavior.AllowGet)); }
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); }
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 })); }