public ProducaoCarvaoVegetal ObterPorEmpreendimento(int EmpreendimentoId, bool simplificado = false, BancoDeDados banco = null) { ProducaoCarvaoVegetal caracterizacao = null; try { caracterizacao = _da.ObterPorEmpreendimento(EmpreendimentoId, simplificado: simplificado); caracterizacao.Dependencias = _busCaracterizacao.ObterDependencias(caracterizacao.Id, eCaracterizacao.ProducaoCarvaoVegetal, eCaracterizacaoDependenciaTipo.Caracterizacao); } catch (Exception exc) { Validacao.AddErro(exc); } return(caracterizacao); }
internal ProducaoCarvaoVegetal ObterPorEmpreendimento(int empreendimento, bool simplificado = false, BancoDeDados banco = null) { ProducaoCarvaoVegetal caracterizacao = new ProducaoCarvaoVegetal(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = bancoDeDados.CriarComando(@"select s.id from {0}crt_prod_carvao_vegetal s where s.empreendimento = :empreendimento", EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32); object valor = bancoDeDados.ExecutarScalar(comando); if (valor != null && !Convert.IsDBNull(valor)) { caracterizacao = Obter(Convert.ToInt32(valor), bancoDeDados, simplificado); } } return(caracterizacao); }
public ActionResult Criar(ProducaoCarvaoVegetal caracterizacao) { string textoMerge = _caracterizacaoValidar.DependenciasAlteradas( caracterizacao.EmpreendimentoId, (int)eCaracterizacao.ProducaoCarvaoVegetal, eCaracterizacaoDependenciaTipo.Caracterizacao, caracterizacao.Dependencias); if (!string.IsNullOrEmpty(textoMerge)) { return(Json(new { @TextoMerge = textoMerge }, JsonRequestBehavior.AllowGet)); } _bus.Salvar(caracterizacao); return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @UrlRedirecionar = Url.Action("", "Caracterizacao", new { id = caracterizacao.EmpreendimentoId, Msg = Validacao.QueryParam() }) }, JsonRequestBehavior.AllowGet)); }
public ActionResult Criar(int id) { if (!_caracterizacaoValidar.Basicas(id)) { return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } ProducaoCarvaoVegetal caracterizacao = new ProducaoCarvaoVegetal(); caracterizacao.EmpreendimentoId = id; if (!_validar.Acessar(caracterizacao.EmpreendimentoId)) { return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() })); } caracterizacao.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(id, eCaracterizacao.ProducaoCarvaoVegetal, eCaracterizacaoDependenciaTipo.Caracterizacao); ProducaoCarvaoVegetalVM vm = new ProducaoCarvaoVegetalVM(caracterizacao, _listaBus.AtividadesSolicitada, _listaBus.ProducaoCarvaoVegetalMateriaPrimaConsumida, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.ProducaoCarvaoVegetal, (eTipoGeometria)caracterizacao.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo, _listaBus.CaracterizacaoUnidadeMedida); vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; return(View(vm)); }
internal ProducaoCarvaoVegetal Obter(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { ProducaoCarvaoVegetal caracterizacao = new ProducaoCarvaoVegetal(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { if (tid == null) { caracterizacao = Obter(id, bancoDeDados, simplificado); } else { Comando comando = bancoDeDados.CriarComando(@"select count(s.id) existe from {0}crt_prod_carvao_vegetal s where s.id = :id and s.tid = :tid", EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid); caracterizacao = (Convert.ToBoolean(bancoDeDados.ExecutarScalar(comando))) ? Obter(id, bancoDeDados, simplificado) : ObterHistorico(id, bancoDeDados, tid, simplificado); } } return(caracterizacao); }
public bool Salvar(ProducaoCarvaoVegetal caracterizacao) { try { if (_validar.Salvar(caracterizacao)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.Salvar(caracterizacao, bancoDeDados); //Gerencia as dependências da caracterização _busCaracterizacao.Dependencias(new Caracterizacao() { Id = caracterizacao.Id, Tipo = eCaracterizacao.ProducaoCarvaoVegetal, DependenteTipo = eCaracterizacaoDependenciaTipo.Caracterizacao, Dependencias = caracterizacao.Dependencias }, bancoDeDados); Validacao.Add(Mensagem.ProducaoCarvaoVegetal.Salvar); bancoDeDados.Commit(); } } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
internal int?Criar(ProducaoCarvaoVegetal caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Produção de carvão vegetal bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"insert into {0}crt_prod_carvao_vegetal c(id, empreendimento, atividade, numero_fornos, geometria_coord_atv_x, geometria_coord_atv_y, geometria_id, geometria_tipo, tid) values(seq_crt_prod_carvao_vegetal.nextval, :empreendimento, :atividade, :numero_fornos, :geometria_coord_atv_x, :geometria_coord_atv_y, :geometria_id, :geometria_tipo, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32); comando.AdicionarParametroEntrada("atividade", caracterizacao.Atividade, DbType.Int32); comando.AdicionarParametroEntrada("numero_fornos", caracterizacao.NumeroFornos, DbType.Int32); comando.AdicionarParametroEntrada("geometria_id", caracterizacao.CoordenadaAtividade.Id, DbType.Int32); comando.AdicionarParametroEntrada("geometria_tipo", caracterizacao.CoordenadaAtividade.Tipo, DbType.Int32); comando.AdicionarParametroEntrada("geometria_coord_atv_x", caracterizacao.CoordenadaAtividade.CoordX, DbType.Decimal); comando.AdicionarParametroEntrada("geometria_coord_atv_y", caracterizacao.CoordenadaAtividade.CoordY, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); caracterizacao.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #endregion #region Fornos if (caracterizacao.Fornos != null && caracterizacao.Fornos.Count > 0) { foreach (Forno item in caracterizacao.Fornos) { comando = bancoDeDados.CriarComando(@"insert into {0}crt_prod_carvao_veg_forno c(id, caracterizacao, identificador, volume, tid) values(seq_crt_prod_carvao_veg_forno.nextval, :caracterizacao, :identificador, :volume, :tid) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("identificador", item.Identificador, DbType.Int32); comando.AdicionarParametroEntrada("volume", item.Volume, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } } #endregion #region Materias-Prima Florestal Consumida if (caracterizacao.MateriasPrimasFlorestais != null && caracterizacao.MateriasPrimasFlorestais.Count > 0) { foreach (MateriaPrima item in caracterizacao.MateriasPrimasFlorestais) { comando = bancoDeDados.CriarComando(@"insert into {0}crt_prod_carvao_v_mat_fl_c m (id, caracterizacao, materia_prima_tipo, unidade, quantidade, tid) values(seq_crt_prod_carvao_v_mat_fl_c.nextval, :caracterizacao, :materia_prima_tipo, :unidade, :quantidade, :tid) returning m.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("materia_prima_tipo", item.MateriaPrimaConsumida, DbType.Int32); comando.AdicionarParametroEntrada("unidade", item.Unidade, DbType.Int32); comando.AdicionarParametroEntrada("quantidade", item.Quantidade, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } } #endregion #region Histórico Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.producaocarvaovegetal, eHistoricoAcao.criar, bancoDeDados, null); #endregion bancoDeDados.Commit(); return(caracterizacao.Id); } }
private ProducaoCarvaoVegetal ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { ProducaoCarvaoVegetal caracterizacao = new ProducaoCarvaoVegetal(); int hst = 0; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Produção de carvão vegetal Comando comando = bancoDeDados.CriarComando(@"select c.id, c.empreendimento_id, c.atividade_id, c.numero_fornos, c.geometria_coord_atv_x, c.geometria_coord_atv_y, c.geometria_id, c.geometria_tipo, c.tid from {0}hst_crt_prod_carvao_vegetal c where c.caracterizacao = :id and c.tid = :tid" , EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { hst = Convert.ToInt32(reader["id"]); caracterizacao.Id = id; caracterizacao.EmpreendimentoId = Convert.ToInt32(reader["empreendimento_id"]); caracterizacao.Atividade = Convert.ToInt32(reader["atividade_id"]); caracterizacao.NumeroFornos = reader["numero_fornos"].ToString(); caracterizacao.CoordenadaAtividade.Id = Convert.ToInt32(reader["geometria_id"]); caracterizacao.CoordenadaAtividade.Tipo = Convert.ToInt32(reader["geometria_tipo"]); caracterizacao.Tid = reader["tid"].ToString(); if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"])) { caracterizacao.CoordenadaAtividade.CoordX = Convert.ToDecimal(reader["geometria_coord_atv_x"]); } if (reader["geometria_coord_atv_y"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_y"])) { caracterizacao.CoordenadaAtividade.CoordY = Convert.ToDecimal(reader["geometria_coord_atv_y"]); } } reader.Close(); } #endregion if (caracterizacao.Id <= 0 || simplificado) { return(caracterizacao); } #region Fornos comando = bancoDeDados.CriarComando(@"select s.forno id, s.identificador, s.volume, s.tid from {0}hst_crt_prod_carvao_veg_forno s where s.id_hst = :id_hst order by s.identificador" , EsquemaBanco); comando.AdicionarParametroEntrada("id_hst", hst, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { Forno fornos = null; while (reader.Read()) { fornos = new Forno(); fornos.Id = Convert.ToInt32(reader["id"]); fornos.Identificador = Convert.ToInt32(reader["identificador"]); fornos.Volume = reader["volume"].ToString(); fornos.Tid = reader["tid"].ToString(); caracterizacao.Fornos.Add(fornos); } reader.Close(); } #endregion #region Materias-Prima Florestal Consumida comando = bancoDeDados.CriarComando(@"select m.materia_prima id, m.materia_prima_tipo, lm.texto materia_prima_tipo_texto, m.unidade, lu.texto unidade_texto, m.quantidade, m.tid from {0}hst_crt_prod_carvao_v_mat_fl_c m, {0}lov_crt_prod_carv_veg_mat_pr_c lm, {0}lov_crt_unidade_medida lu where m.id_hst = :id_hst and lm.id = m.materia_prima_tipo and lu.id = m.unidade order by m.materia_prima" , EsquemaBanco); comando.AdicionarParametroEntrada("id_hst", hst, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { MateriaPrima materia = null; while (reader.Read()) { materia = new MateriaPrima(); materia.Id = Convert.ToInt32(reader["id"]); materia.MateriaPrimaConsumida = Convert.ToInt32(reader["materia_prima_tipo"]); materia.MateriaPrimaConsumidaTexto = reader["materia_prima_tipo_texto"].ToString(); materia.Unidade = Convert.ToInt32(reader["unidade"]); materia.UnidadeTexto = reader["unidade_texto"].ToString(); materia.Quantidade = reader["quantidade"].ToString(); materia.Tid = reader["tid"].ToString(); caracterizacao.MateriasPrimasFlorestais.Add(materia); } reader.Close(); } #endregion } return(caracterizacao); }
internal void Editar(ProducaoCarvaoVegetal caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Produção de carvão vegetal bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"update crt_prod_carvao_vegetal c set c.empreendimento = :empreendimento, c.atividade = :atividade, c.numero_fornos = :numero_fornos, c.geometria_coord_atv_x = :geometria_coord_atv_x, c.geometria_coord_atv_y = :geometria_coord_atv_y, c.geometria_id = :geometria_id, c.geometria_tipo = :geometria_tipo, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32); comando.AdicionarParametroEntrada("atividade", caracterizacao.Atividade, DbType.Int32); comando.AdicionarParametroEntrada("numero_fornos", caracterizacao.NumeroFornos, DbType.Int32); comando.AdicionarParametroEntrada("geometria_id", caracterizacao.CoordenadaAtividade.Id, DbType.Int32); comando.AdicionarParametroEntrada("geometria_tipo", caracterizacao.CoordenadaAtividade.Tipo, DbType.Int32); comando.AdicionarParametroEntrada("geometria_coord_atv_x", caracterizacao.CoordenadaAtividade.CoordX, DbType.Decimal); comando.AdicionarParametroEntrada("geometria_coord_atv_y", caracterizacao.CoordenadaAtividade.CoordY, DbType.Decimal); comando.AdicionarParametroEntrada("id", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Limpar os dados do banco //Fornos comando = bancoDeDados.CriarComando(@"delete from {0}crt_prod_carvao_veg_forno c where c.caracterizacao = :caracterizacao", EsquemaBanco); comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.Fornos.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); //Materias-Prima Florestal Consumida comando = bancoDeDados.CriarComando(@"delete from {0}crt_prod_carvao_v_mat_fl_c c where c.caracterizacao = :caracterizacao", EsquemaBanco); comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.MateriasPrimasFlorestais.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Fornos if (caracterizacao.Fornos != null && caracterizacao.Fornos.Count > 0) { foreach (Forno item in caracterizacao.Fornos) { if (item.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_prod_carvao_veg_forno c set c.caracterizacao = :caracterizacao, c.identificador = :identificador, c.volume = :volume, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@"insert into {0}crt_prod_carvao_veg_forno c (id, caracterizacao, identificador, volume, tid) values (seq_crt_prod_carvao_veg_forno.nextval, :caracterizacao, :identificador, :volume, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroSaida("id", DbType.Int32); } comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("identificador", item.Identificador, DbType.Int32); comando.AdicionarParametroEntrada("volume", item.Volume, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); if (item.Id <= 0) { item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } } } #endregion #region Materias-Prima Florestal Consumida if (caracterizacao.MateriasPrimasFlorestais != null && caracterizacao.MateriasPrimasFlorestais.Count > 0) { foreach (MateriaPrima item in caracterizacao.MateriasPrimasFlorestais) { if (item.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_prod_carvao_v_mat_fl_c c set c.caracterizacao = :caracterizacao, c.materia_prima_tipo = :materia_prima_tipo, c.unidade = :unidade, c.quantidade = :quantidade, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@" insert into {0}crt_prod_carvao_v_mat_fl_c c (id, caracterizacao, materia_prima_tipo, unidade, quantidade, tid) values (seq_crt_prod_carvao_v_mat_fl_c.nextval, :caracterizacao, :materia_prima_tipo, :unidade, :quantidade, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroSaida("id", DbType.Int32); } comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("materia_prima_tipo", item.MateriaPrimaConsumida, DbType.Int32); comando.AdicionarParametroEntrada("unidade", item.Unidade, DbType.Int32); comando.AdicionarParametroEntrada("quantidade", item.Quantidade, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); if (item.Id <= 0) { item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } } } #endregion #region Histórico Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.producaocarvaovegetal, eHistoricoAcao.atualizar, bancoDeDados, null); #endregion bancoDeDados.Commit(); } }
internal bool Salvar(ProducaoCarvaoVegetal caracterizacao) { if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId)) { return(false); } if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new ProducaoCarvaoVegetal()).Id > 0) { Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada); return(false); } if (!Acessar(caracterizacao.EmpreendimentoId)) { return(false); } if (caracterizacao.Atividade <= 0) { Validacao.Add(Mensagem.ProducaoCarvaoVegetal.AtividadeObrigatoria); } _coordenadaValidar.Salvar(caracterizacao.CoordenadaAtividade); #region Fornos if (caracterizacao.Fornos.Count <= 0) { Validacao.Add(Mensagem.ProducaoCarvaoVegetal.FornoObrigatorio); } if (!String.IsNullOrWhiteSpace(caracterizacao.NumeroFornos)) { if (Convert.ToDecimal(caracterizacao.NumeroFornos) <= 0) { Validacao.Add(Mensagem.ProducaoCarvaoVegetal.NumeroFornosMaiorZero); } } else { Validacao.Add(Mensagem.ProducaoCarvaoVegetal.NumeroFornosObrigatorio); } if (Convert.ToDecimal(caracterizacao.NumeroFornos) < caracterizacao.Fornos.Count) { Validacao.Add(Mensagem.ProducaoCarvaoVegetal.NumeroFornosMenorQueFornosAdicionados); } #endregion #region Materias if (caracterizacao.MateriasPrimasFlorestais.Count <= 0) { Validacao.Add(Mensagem.MateriaPrimaFlorestalConsumida.MateriaObrigatoria); } #endregion return(Validacao.EhValido); }