public ActionResult Criar(int id) { if (!_caracterizacaoValidar.Basicas(id)) { return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } BeneficiamentoMadeira caracterizacao = new BeneficiamentoMadeira(); caracterizacao.EmpreendimentoId = id; if (!_validar.Acessar(caracterizacao.EmpreendimentoId)) { return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() })); } caracterizacao.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(id, eCaracterizacao.BeneficiamentoMadeira, eCaracterizacaoDependenciaTipo.Caracterizacao); BeneficiamentoMadeiraVM vm = new BeneficiamentoMadeiraVM(caracterizacao); vm.BeneficiamentoMadeiraBeneficiamentosTemplateVM = new BeneficiamentoMadeiraBeneficiamentoVM(_listaBus.AtividadesSolicitada, _listaBus.BeneficiamentoMadeiraMateriaPrimaConsumida, _listaBus.CaracterizacaoGeometriaTipo, _listaBus.CaracterizacaoUnidadeMedida); foreach (BeneficiamentoMadeiraBeneficiamento beneficiamento in caracterizacao.Beneficiamentos) { beneficiamento.Identificador = Guid.NewGuid().ToString(); BeneficiamentoMadeiraBeneficiamentoVM viewModelAux = new BeneficiamentoMadeiraBeneficiamentoVM(beneficiamento, _listaBus.AtividadesSolicitada, _listaBus.BeneficiamentoMadeiraMateriaPrimaConsumida, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.BeneficiamentoMadeira, (eTipoGeometria)beneficiamento.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo, _listaBus.CaracterizacaoUnidadeMedida); vm.BeneficiamentoMadeiraBeneficiamentosVM.Add(viewModelAux); } vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; return(View(vm)); }
public ActionResult Visualizar(int id) { if (!_validar.Acessar(id)) { return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() })); } BeneficiamentoMadeira caracterizacao = _bus.ObterPorEmpreendimento(id); string textoMerge = _caracterizacaoValidar.DependenciasAlteradas( caracterizacao.EmpreendimentoId, (int)eCaracterizacao.BeneficiamentoMadeira, eCaracterizacaoDependenciaTipo.Caracterizacao, caracterizacao.Dependencias, true); if (!string.IsNullOrEmpty(textoMerge)) { caracterizacao = _bus.MergiarGeo(caracterizacao); } BeneficiamentoMadeiraVM vm = new BeneficiamentoMadeiraVM(caracterizacao, true); foreach (BeneficiamentoMadeiraBeneficiamento beneficiamento in caracterizacao.Beneficiamentos) { beneficiamento.Identificador = Guid.NewGuid().ToString(); BeneficiamentoMadeiraBeneficiamentoVM viewModelAux = new BeneficiamentoMadeiraBeneficiamentoVM(beneficiamento, _listaBus.AtividadesSolicitada, _listaBus.BeneficiamentoMadeiraMateriaPrimaConsumida, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.BeneficiamentoMadeira, (eTipoGeometria)beneficiamento.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo, _listaBus.CaracterizacaoUnidadeMedida, true); vm.BeneficiamentoMadeiraBeneficiamentosVM.Add(viewModelAux); } vm.TextoMerge = textoMerge; vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; return(View(vm)); }
public BeneficiamentoMadeira MergiarGeo(BeneficiamentoMadeira caracterizacaoAtual) { foreach (BeneficiamentoMadeiraBeneficiamento item in caracterizacaoAtual.Beneficiamentos) { item.CoordenadaAtividade.Tipo = 0; //limpando dados selecionados item.CoordenadaAtividade.Id = 0; //limpando dados selecionados } caracterizacaoAtual.Dependencias = _busCaracterizacao.ObterDependenciasAtual(caracterizacaoAtual.EmpreendimentoId, eCaracterizacao.BeneficiamentoMadeira, eCaracterizacaoDependenciaTipo.Caracterizacao); return(caracterizacaoAtual); }
internal void Salvar(BeneficiamentoMadeira caracterizacao, BancoDeDados banco) { if (caracterizacao == null) { throw new Exception("A Caracterização é nula."); } if (caracterizacao.Id <= 0) { Criar(caracterizacao, banco); } else { Editar(caracterizacao, banco); } }
public BeneficiamentoMadeira ObterPorEmpreendimento(int EmpreendimentoId, bool simplificado = false, BancoDeDados banco = null) { BeneficiamentoMadeira caracterizacao = null; try { caracterizacao = _da.ObterPorEmpreendimento(EmpreendimentoId, simplificado: simplificado); caracterizacao.Dependencias = _busCaracterizacao.ObterDependencias(caracterizacao.Id, eCaracterizacao.BeneficiamentoMadeira, eCaracterizacaoDependenciaTipo.Caracterizacao); } catch (Exception exc) { Validacao.AddErro(exc); } return(caracterizacao); }
internal BeneficiamentoMadeira ObterPorEmpreendimento(int empreendimento, bool simplificado = false, BancoDeDados banco = null) { BeneficiamentoMadeira caracterizacao = new BeneficiamentoMadeira(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = bancoDeDados.CriarComando(@"select s.id from {0}crt_benefic_madeira 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 GeoMergiar(BeneficiamentoMadeira caracterizacao) { BeneficiamentoMadeira caracterizacaoMerge = _bus.MergiarGeo(caracterizacao); BeneficiamentoMadeiraVM vm = new BeneficiamentoMadeiraVM(caracterizacaoMerge); foreach (BeneficiamentoMadeiraBeneficiamento beneficiamento in caracterizacaoMerge.Beneficiamentos) { beneficiamento.Identificador = Guid.NewGuid().ToString(); BeneficiamentoMadeiraBeneficiamentoVM viewModelAux = new BeneficiamentoMadeiraBeneficiamentoVM(beneficiamento, _listaBus.AtividadesSolicitada, _listaBus.BeneficiamentoMadeiraMateriaPrimaConsumida, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.BeneficiamentoMadeira, (eTipoGeometria)beneficiamento.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo, _listaBus.CaracterizacaoUnidadeMedida); vm.BeneficiamentoMadeiraBeneficiamentosVM.Add(viewModelAux); } return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @Html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "BeneficiamentoMadeira", vm), @Dependencias = ViewModelHelper.Json(vm.Caracterizacao.Dependencias) }, JsonRequestBehavior.AllowGet)); }
public ActionResult Criar(BeneficiamentoMadeira caracterizacao) { string textoMerge = _caracterizacaoValidar.DependenciasAlteradas( caracterizacao.EmpreendimentoId, (int)eCaracterizacao.BeneficiamentoMadeira, 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)); }
internal BeneficiamentoMadeira Obter(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { BeneficiamentoMadeira caracterizacao = new BeneficiamentoMadeira(); 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_benefic_madeira 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(BeneficiamentoMadeira 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.BeneficiamentoMadeira, DependenteTipo = eCaracterizacaoDependenciaTipo.Caracterizacao, Dependencias = caracterizacao.Dependencias }, bancoDeDados); Validacao.Add(Mensagem.BeneficiamentoMadeira.Salvar); bancoDeDados.Commit(); } } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
internal int?Criar(BeneficiamentoMadeira caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Beneficiamento e tratamento de madeira bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"insert into {0}crt_benefic_madeira c(id, empreendimento, tid) values(seq_crt_benefic_madeira.nextval, :empreendimento, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); caracterizacao.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Beneficiamentos foreach (BeneficiamentoMadeiraBeneficiamento item in caracterizacao.Beneficiamentos) { comando = bancoDeDados.CriarComando(@"insert into {0}crt_benefic_madeira_benef c(id, atividade, caracterizacao, volume_madeira_serrar, volume_madeira_processar, equip_contr_poluicao_sonora, geometria_coord_atv_x, geometria_coord_atv_y, geometria_id, geometria_tipo, tid) values(seq_crt_benefic_madeira_benef.nextval, :atividade, :caracterizacao, :volume_madeira_serrar, :volume_madeira_processar, :equip_contr_poluicao_sonora, :geometria_coord_atv_x, :geometria_coord_atv_y, :geometria_id, :geometria_tipo, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("atividade", item.Atividade, DbType.Int32); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("volume_madeira_serrar", (String.IsNullOrWhiteSpace(item.VolumeMadeiraSerrar)) ? (object)DBNull.Value : item.VolumeMadeiraSerrar, DbType.Decimal); comando.AdicionarParametroEntrada("volume_madeira_processar", (String.IsNullOrWhiteSpace(item.VolumeMadeiraProcessar)) ? (object)DBNull.Value : item.VolumeMadeiraProcessar, DbType.Decimal); comando.AdicionarParametroEntrada("equip_contr_poluicao_sonora", item.EquipControlePoluicaoSonora, DbType.String); comando.AdicionarParametroEntrada("geometria_id", item.CoordenadaAtividade.Id, DbType.Int32); comando.AdicionarParametroEntrada("geometria_tipo", item.CoordenadaAtividade.Tipo, DbType.Int32); comando.AdicionarParametroEntrada("geometria_coord_atv_x", item.CoordenadaAtividade.CoordX, DbType.Decimal); comando.AdicionarParametroEntrada("geometria_coord_atv_y", item.CoordenadaAtividade.CoordY, 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")); #region Materias-Prima Florestal Consumida if (item.MateriasPrimasFlorestais != null && item.MateriasPrimasFlorestais.Count > 0) { foreach (MateriaPrima materia in item.MateriasPrimasFlorestais) { comando = bancoDeDados.CriarComando(@"insert into {0}crt_benef_madeira_mat_fl_c m (id, beneficiamento_id, caracterizacao, materia_prima_tipo, unidade, quantidade, especificar, tid) values(seq_crt_benef_madeira_mat_fl_c.nextval, :beneficiamento_id, :caracterizacao, :materia_prima_tipo, :unidade, :quantidade, :especificar, :tid) returning m.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("beneficiamento_id", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("materia_prima_tipo", materia.MateriaPrimaConsumida, DbType.Int32); comando.AdicionarParametroEntrada("unidade", materia.Unidade, DbType.Int32); comando.AdicionarParametroEntrada("quantidade", materia.Quantidade, DbType.Decimal); comando.AdicionarParametroEntrada("especificar", (materia.MateriaPrimaConsumida == (int)eMateriaPrima.Outros) ? materia.EspecificarTexto : (object)DBNull.Value, DbType.String); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); materia.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } } #endregion } #endregion #endregion #region Histórico Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.beneficiamentomadeira, eHistoricoAcao.criar, bancoDeDados, null); #endregion bancoDeDados.Commit(); return(caracterizacao.Id); } }
private BeneficiamentoMadeira ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { BeneficiamentoMadeira caracterizacao = new BeneficiamentoMadeira(); int hst = 0; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = bancoDeDados.CriarComando(@"select c.id, c.empreendimento, c.tid from {0}hst_crt_benefic_madeira 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"]); caracterizacao.Tid = reader["tid"].ToString(); } reader.Close(); } if (caracterizacao.Id <= 0 || simplificado) { return(caracterizacao); } #region Beneficiamentos using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando)) { comando = bancoDeDados.CriarComando(@"select c.id, c.atividade_id, c.beneficiamento_mad_benf_id, c.volume_madeira_serrar, c.volume_madeira_processar, c.geometria_coord_atv_x, c.geometria_coord_atv_y, c.equip_contr_poluicao_sonora, c.geometria_id, c.geometria_tipo, c.tid from {0}hst_crt_benefic_madeira_benef c where c.id_hst = :id_hst" , EsquemaBanco); comando.AdicionarParametroEntrada("id_hst", hst, DbType.Int32); BeneficiamentoMadeiraBeneficiamento beneficiamento = null; while (readerAux.Read()) { beneficiamento = new BeneficiamentoMadeiraBeneficiamento(); beneficiamento.Id = Convert.ToInt32(readerAux["beneficiamento_mad_benf_id"]); beneficiamento.Atividade = Convert.ToInt32(readerAux["atividade_id"]); beneficiamento.VolumeMadeiraSerrar = readerAux["volume_madeira_serrar"].ToString(); beneficiamento.VolumeMadeiraProcessar = readerAux["volume_madeira_processar"].ToString(); beneficiamento.EquipControlePoluicaoSonora = readerAux["equip_contr_poluicao_sonora"].ToString(); beneficiamento.CoordenadaAtividade.Id = Convert.ToInt32(readerAux["geometria_id"]); beneficiamento.CoordenadaAtividade.Tipo = Convert.ToInt32(readerAux["geometria_tipo"]); if (readerAux["geometria_coord_atv_x"] != null && !Convert.IsDBNull(readerAux["geometria_coord_atv_x"])) { beneficiamento.CoordenadaAtividade.CoordX = Convert.ToDecimal(readerAux["geometria_coord_atv_x"]); } if (readerAux["geometria_coord_atv_y"] != null && !Convert.IsDBNull(readerAux["geometria_coord_atv_y"])) { beneficiamento.CoordenadaAtividade.CoordY = Convert.ToDecimal(readerAux["geometria_coord_atv_y"]); } } readerAux.Close(); #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.especificar, m.tid from {0}crt_benef_madeira_mat_fl_c m, {0}lov_crt_benefic_madeira_mat_pr_c lm, {0}lov_crt_unidade_medida lu where lm.id = m.materia_prima_tipo and lu.id = m.unidade and c.id_hst = :id order by m.id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", hst, DbType.Int32); using (IDataReader readerAux2 = bancoDeDados.ExecutarReader(comando)) { MateriaPrima materia = null; while (readerAux2.Read()) { materia = new MateriaPrima(); materia.Id = Convert.ToInt32(readerAux2["id"]); materia.MateriaPrimaConsumida = Convert.ToInt32(readerAux2["materia_prima_tipo"]); materia.MateriaPrimaConsumidaTexto = (materia.MateriaPrimaConsumida == (int)eMateriaPrima.Outros) ? readerAux2["especificar"].ToString() : readerAux2["materia_prima_tipo_texto"].ToString(); materia.Unidade = Convert.ToInt32(readerAux2["unidade"]); materia.UnidadeTexto = readerAux2["unidade_texto"].ToString(); materia.Quantidade = readerAux2["quantidade"].ToString(); materia.EspecificarTexto = readerAux2["especificar"].ToString(); materia.Tid = readerAux2["tid"].ToString(); beneficiamento.MateriasPrimasFlorestais.Add(materia); } readerAux2.Close(); } #endregion } #endregion } return(caracterizacao); }
internal void Editar(BeneficiamentoMadeira caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Beneficiamento e tratamento de madeira bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"update crt_benefic_madeira c set c.empreendimento = :empreendimento, 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("id", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Limpar os dados do banco //Materias-Prima Florestal Consumida List <int> listIds = new List <int>(); caracterizacao.Beneficiamentos.ForEach(x => { listIds.AddRange(x.MateriasPrimasFlorestais.Select(z => z.Id).ToList()); }); comando = bancoDeDados.CriarComando(@"delete from {0}crt_benef_madeira_mat_fl_c c where c.caracterizacao = :caracterizacao", EsquemaBanco); comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, listIds)); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); //Beneficiamentos comando = bancoDeDados.CriarComando(@"delete from {0}crt_benefic_madeira_benef c where c.caracterizacao = :caracterizacao", EsquemaBanco); comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.Beneficiamentos.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Beneficiamentos foreach (BeneficiamentoMadeiraBeneficiamento item in caracterizacao.Beneficiamentos) { if (item.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_benefic_madeira_benef c set c.atividade = :atividade, c.caracterizacao = :caracterizacao, c.volume_madeira_serrar = :volume_madeira_serrar, c.volume_madeira_processar = :volume_madeira_processar, c.equip_contr_poluicao_sonora = :equip_contr_poluicao_sonora, 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("id", item.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@"insert into {0}crt_benefic_madeira_benef c(id, atividade, caracterizacao, volume_madeira_serrar, volume_madeira_processar, equip_contr_poluicao_sonora, geometria_coord_atv_x, geometria_coord_atv_y, geometria_id, geometria_tipo, tid) values(seq_crt_benefic_madeira_benef.nextval, :atividade, :caracterizacao, :volume_madeira_serrar, :volume_madeira_processar, :equip_contr_poluicao_sonora, :geometria_coord_atv_x, :geometria_coord_atv_y, :geometria_id, :geometria_tipo, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroSaida("id", DbType.Int32); } comando.AdicionarParametroEntrada("atividade", item.Atividade, DbType.Int32); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("volume_madeira_serrar", (String.IsNullOrWhiteSpace(item.VolumeMadeiraSerrar)) ? (object)DBNull.Value : item.VolumeMadeiraSerrar, DbType.Decimal); comando.AdicionarParametroEntrada("volume_madeira_processar", (String.IsNullOrWhiteSpace(item.VolumeMadeiraProcessar)) ? (object)DBNull.Value : item.VolumeMadeiraProcessar, DbType.Decimal); comando.AdicionarParametroEntrada("equip_contr_poluicao_sonora", item.EquipControlePoluicaoSonora, DbType.String); comando.AdicionarParametroEntrada("geometria_id", item.CoordenadaAtividade.Id, DbType.Int32); comando.AdicionarParametroEntrada("geometria_tipo", item.CoordenadaAtividade.Tipo, DbType.Int32); comando.AdicionarParametroEntrada("geometria_coord_atv_x", item.CoordenadaAtividade.CoordX, DbType.Decimal); comando.AdicionarParametroEntrada("geometria_coord_atv_y", item.CoordenadaAtividade.CoordY, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); if (item.Id <= 0) { item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } #region Materias-Prima Florestal Consumida if (item.MateriasPrimasFlorestais != null && item.MateriasPrimasFlorestais.Count > 0) { foreach (MateriaPrima materia in item.MateriasPrimasFlorestais) { if (materia.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_benef_madeira_mat_fl_c c set c.beneficiamento_id = :beneficiamento_id, c.caracterizacao = :caracterizacao, c.materia_prima_tipo = :materia_prima_tipo, c.unidade = :unidade, c.quantidade = :quantidade, c.especificar = :especificar, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@" insert into {0}crt_benef_madeira_mat_fl_c c (id, beneficiamento_id, caracterizacao, materia_prima_tipo, unidade, quantidade, especificar, tid) values (seq_crt_benef_madeira_mat_fl_c.nextval, :beneficiamento_id, :caracterizacao, :materia_prima_tipo, :unidade, :quantidade, :especificar, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroSaida("id", DbType.Int32); } comando.AdicionarParametroEntrada("beneficiamento_id", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("materia_prima_tipo", materia.MateriaPrimaConsumida, DbType.Int32); comando.AdicionarParametroEntrada("unidade", materia.Unidade, DbType.Int32); comando.AdicionarParametroEntrada("quantidade", materia.Quantidade, DbType.Decimal); comando.AdicionarParametroEntrada("especificar", (materia.MateriaPrimaConsumida == (int)eMateriaPrima.Outros) ? materia.EspecificarTexto : (object)DBNull.Value, DbType.String); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); if (materia.Id <= 0) { materia.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } } } #endregion } #endregion #region Histórico Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.beneficiamentomadeira, eHistoricoAcao.atualizar, bancoDeDados, null); #endregion bancoDeDados.Commit(); } }
public BeneficiamentoMadeiraVM(BeneficiamentoMadeira caracterizacao, bool isVisualizar = false, bool isEditar = false) { Caracterizacao = caracterizacao; IsVisualizar = isVisualizar; IsEditar = isEditar; }
internal bool Salvar(BeneficiamentoMadeira caracterizacao) { if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId)) { return(false); } if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new BeneficiamentoMadeira()).Id > 0) { Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada); return(false); } if (!Acessar(caracterizacao.EmpreendimentoId)) { return(false); } List <String> atividadesDuplicadas = new List <String>(); foreach (var item in caracterizacao.Beneficiamentos) { #region Atividade if (item.Atividade <= 0) { Validacao.Add(Mensagem.BeneficiamentoMadeira.AtividadeObrigatoria(item.Identificador)); } else { if (caracterizacao.Beneficiamentos.Where(x => x.Atividade == item.Atividade).ToList().Count >= 2) { atividadesDuplicadas.Add(item.Identificador); } if (item.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.SerrariasQuandoNaoAssociadasAFabricacaoDeEstruturas)) { if (!String.IsNullOrWhiteSpace(item.VolumeMadeiraSerrar)) { decimal aux = 0; if (Decimal.TryParse(item.VolumeMadeiraSerrar, out aux)) { if (aux <= 0) { Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraSerrarMaiorZero); } } else { Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraSerrarInvalido); } } else { Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraSerrarObrigatorio); } } if (item.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.FabricacaoDeEstruturasDeMadeiraComAplicacaoRural)) { if (!String.IsNullOrWhiteSpace(item.VolumeMadeiraProcessar)) { decimal aux = 0; if (Decimal.TryParse(item.VolumeMadeiraProcessar, out aux)) { if (aux <= 0) { Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraProcessarMaiorZero); } } else { Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraProcessarInvalido); } } else { Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraProcessarObrigatorio); } } } #endregion #region Coordenadas if (item.CoordenadaAtividade.Id <= 0) { Validacao.Add(Mensagem.BeneficiamentoMadeira.CoordenadaAtividadeObrigatoria(item.Identificador)); } if (item.CoordenadaAtividade.Tipo <= 0) { Validacao.Add(Mensagem.BeneficiamentoMadeira.GeometriaTipoObrigatorio(item.Identificador)); } #endregion #region Materias if (item.MateriasPrimasFlorestais.Count <= 0) { Validacao.Add(Mensagem.MateriaPrimaFlorestalConsumida.MateriaObrigatoria); } #endregion if (String.IsNullOrWhiteSpace(item.EquipControlePoluicaoSonora)) { Validacao.Add(Mensagem.BeneficiamentoMadeira.EquipControlePoluicaoSonoraObrigatorio(item.Identificador)); } } if (atividadesDuplicadas.Count > 0) { Validacao.Add(Mensagem.BeneficiamentoMadeira.AtividadeDuplicada(atividadesDuplicadas)); } return(Validacao.EhValido); }