Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 6
0
        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();
            }
        }
Ejemplo n.º 10
0
        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);
        }