コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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));
        }
コード例 #8
0
        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));
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
            }
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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();
            }
        }
コード例 #14
0
 public BeneficiamentoMadeiraVM(BeneficiamentoMadeira caracterizacao, bool isVisualizar = false, bool isEditar = false)
 {
     Caracterizacao = caracterizacao;
     IsVisualizar   = isVisualizar;
     IsEditar       = isEditar;
 }
コード例 #15
0
        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);
        }