public ActionResult Criar(UnidadeConsolidacao caracterizacao, int projetoDigitalId = 0)
        {
            _bus.Salvar(caracterizacao);

            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
                @UrlRedirecionar = Url.Action("", "Caracterizacao", new { id = caracterizacao.Id, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() })
            }, JsonRequestBehavior.AllowGet));
        }
        internal bool CodigoUCExiste(UnidadeConsolidacao unidade)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = bancoDeDados.CriarComando(@"select count(id) from {0}crt_unidade_consolidacao where codigo_uc = :codigo and id <> :id", EsquemaBanco);

                comando.AdicionarParametroEntrada("codigo", unidade.CodigoUC, DbType.Int64);
                comando.AdicionarParametroEntrada("id", unidade.Id, DbType.Int32);

                return(Convert.ToInt32(bancoDeDados.ExecutarScalar(comando)) > 0);
            }
        }
Exemple #3
0
        public bool Salvar(UnidadeConsolidacao unidade)
        {
            try
            {
                if (!_validar.Salvar(unidade))
                {
                    return(Validacao.EhValido);
                }

                if (!unidade.PossuiCodigoUC)
                {
                    if (unidade.Id < 1)
                    {
                        int codigo = _da.ObterSequenciaCodigoUC();
                        EmpreendimentoCaracterizacao empreendimento = _busCaracterizacao.ObterEmpreendimentoSimplificado(unidade.Empreendimento.Id);

                        unidade.CodigoUC = Convert.ToInt64(empreendimento.MunicipioIBGE.ToString() + codigo.ToString("D4"));
                    }
                    else
                    {
                        unidade.CodigoUC = ObterPorEmpreendimento(unidade.Empreendimento.Id, true).CodigoUC;
                    }
                }

                foreach (var aux in unidade.ResponsaveisTecnicos)
                {
                    aux.CFONumero = aux.CFONumero.Split('-').GetValue(0).ToString();
                }

                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                {
                    bancoDeDados.IniciarTransacao();

                    _da.Salvar(unidade, bancoDeDados);

                    Validacao.Add(Mensagem.UnidadeConsolidacao.UnidadeConsolidacaoSalvaSucesso);

                    bancoDeDados.Commit();
                }
            }
            catch (Exception e)
            {
                Validacao.AddErro(e);
            }

            return(Validacao.EhValido);
        }
Exemple #4
0
        public UnidadeConsolidacao ObterPorEmpreendimento(int empreendimentoId, bool simplificado = false, BancoDeDados banco = null)
        {
            UnidadeConsolidacao caracterizacao = new UnidadeConsolidacao();

            try
            {
                caracterizacao = _da.ObterPorEmpreendimento(empreendimentoId, simplificado: simplificado);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(caracterizacao);
        }
Exemple #5
0
        public UnidadeConsolidacao ObterHistorico(int caracterizacaoID, string caracterizacaoTID, bool simplificado = false)
        {
            UnidadeConsolidacao caracterizacao = null;

            try
            {
                caracterizacao = _da.ObterHistorico(caracterizacaoID, caracterizacaoTID, simplificado: simplificado);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(caracterizacao);
        }
        public UnidadeConsolidacao ObterPorEmpreendimento(int empreendimentoInternoId, bool simplificado = false)
        {
            UnidadeConsolidacao unidadeConsolidacao = null;

            try
            {
                unidadeConsolidacao = _da.ObterPorEmpreendimento(empreendimentoInternoId, simplificado);
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(unidadeConsolidacao);
        }
        internal void Salvar(UnidadeConsolidacao unidadeConsolidacao, BancoDeDados banco = null)
        {
            if (unidadeConsolidacao == null)
            {
                throw new Exception("A Caracterização é nula.");
            }

            if (unidadeConsolidacao.Id <= 0)
            {
                Criar(unidadeConsolidacao, banco);
            }
            else
            {
                Editar(unidadeConsolidacao, banco);
            }
        }
Exemple #8
0
        public bool CopiarDadosCredenciado(Dependencia dependencia, int empreendimentoInternoId, BancoDeDados banco, BancoDeDados bancoCredenciado)
        {
            if (banco == null)
            {
                return(false);
            }

            if (_validar == null)
            {
                _validar = new UnidadeConsolidacaoValidar();
            }

            #region Configurar Caracterização

            UnidadeConsolidacaoCredBus.UnidadeConsolidacaoBus credenciadoBus = new UnidadeConsolidacaoCredBus.UnidadeConsolidacaoBus();
            UnidadeConsolidacao caracterizacao = credenciadoBus.ObterHistorico(dependencia.DependenciaId, dependencia.DependenciaTid);

            caracterizacao.Empreendimento.Id = empreendimentoInternoId;
            caracterizacao.CredenciadoID     = caracterizacao.Id;
            caracterizacao.Id  = 0;
            caracterizacao.Tid = string.Empty;
            caracterizacao.Cultivares.ForEach(r => { r.IdRelacionamento = 0; });
            caracterizacao.ResponsaveisTecnicos.ForEach(r => { r.IdRelacionamento = 0; });

            #endregion

            if (_validar.CopiarDadosCredenciado(caracterizacao))
            {
                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
                {
                    bancoDeDados.IniciarTransacao();

                    //Setar ID
                    caracterizacao.Id = ObterPorEmpreendimento(empreendimentoInternoId, simplificado: true, banco: bancoDeDados).Id;

                    _da.CopiarDadosCredenciado(caracterizacao, bancoDeDados);

                    credenciadoBus.AtualizarInternoIdTid(caracterizacao.CredenciadoID, caracterizacao.Id, GerenciadorTransacao.ObterIDAtual(), bancoCredenciado);

                    bancoDeDados.Commit();
                }
            }

            return(Validacao.EhValido);
        }
        internal bool CopiarDadosCredenciado(UnidadeConsolidacao caracterizacao)
        {
            if (caracterizacao.CredenciadoID <= 0)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.CopiarCaractizacaoCadastrada);
                return(false);
            }

            string retorno = _da.CodigoUCExiste(caracterizacao.Empreendimento.Id, caracterizacao.CodigoUC);

            if (!string.IsNullOrEmpty(retorno))
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.CodigoUCJaExistenteInterno(retorno));
            }

            return(Validacao.EhValido);
        }
Exemple #10
0
        public ActionResult Visualizar(int id)
        {
            if (!_validar.Acessar(id))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
            }

            UnidadeConsolidacao caracterizacao = _bus.ObterPorEmpreendimento(id);

            UnidadeConsolidacaoVM vm = new UnidadeConsolidacaoVM();

            vm.IsVisualizar        = true;
            vm.UnidadeConsolidacao = caracterizacao;
            vm.LstUnidadeMedida    = ViewModelHelper.CriarSelectList(_bus.ObterListaUnidadeMedida());
            vm.UrlRetorno          = Url.Action("", "Caracterizacao", new { id = caracterizacao.Empreendimento.Id });

            return(View(vm));
        }
        internal UnidadeConsolidacao ObterPorEmpreendimento(int empreendimentoId, bool simplificado = false, BancoDeDados banco = null)
        {
            UnidadeConsolidacao caracterizacao = new UnidadeConsolidacao();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select t.id from {0}crt_unidade_consolidacao t where t.empreendimento = :empreendimento", EsquemaBanco);
                comando.AdicionarParametroEntrada("empreendimento", empreendimentoId, DbType.Int32);

                object valor = bancoDeDados.ExecutarScalar(comando);

                if (valor != null && !Convert.IsDBNull(valor))
                {
                    caracterizacao = Obter(Convert.ToInt32(valor), bancoDeDados, simplificado);
                }
            }

            return(caracterizacao);
        }
Exemple #12
0
        internal bool CodigoUCExiste(UnidadeConsolidacao unidade)
        {
//            bool existe = false;
//            int empreendimentoInternoID = 0;

//            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaCredenciadoBanco))
//            {
//                Comando comando = bancoDeDados.CriarComando(@"select nvl((select e.interno from tab_empreendimento e where e.id = :empreendimento), 0) from dual", EsquemaCredenciadoBanco);
//                comando.AdicionarParametroEntrada("empreendimento", unidade.Empreendimento.Id, DbType.Int32);

//                empreendimentoInternoID = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando));
//            }

//            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
//            {
//                Comando comando = bancoDeDados.CriarComando(@"select count(c.id) from {0}crt_unidade_consolidacao c, {0}tab_empreendimento e
//				where c.empreendimento = e.id and c.codigo_uc = :codigo and c.empreendimento <> :empreendimento", EsquemaBanco);

//                comando.AdicionarParametroEntrada("codigo", unidade.CodigoUC, DbType.Int64);
//                comando.AdicionarParametroEntrada("empreendimento", empreendimentoInternoID, DbType.Int32);

//                existe = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando)) > 0;
//            }

//            if (existe)
//            {
//                return true;
//            }

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaCredenciadoBanco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
				select count(c.id) from {0}crt_unidade_consolidacao c, {0}tab_empreendimento e 
				where e.id = c.empreendimento and c.codigo_uc = :codigo and c.id <> :id and e.credenciado = :credenciado"                , EsquemaCredenciadoBanco);

                comando.AdicionarParametroEntrada("codigo", unidade.CodigoUC, DbType.Int64);
                comando.AdicionarParametroEntrada("id", unidade.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("credenciado", User.FuncionarioId, DbType.Int32);

                return(Convert.ToInt32(bancoDeDados.ExecutarScalar(comando)) > 0);
            }
        }
Exemple #13
0
        public bool CopiarDadosInstitucional(int empreendimentoID, int empreendimentoInternoID, BancoDeDados banco)
        {
            if (banco == null)
            {
                return(false);
            }

            if (_validar == null)
            {
                _validar = new UnidadeConsolidacaoValidar();
            }

            #region Configurar Caracterização

            UnidadeConsolidacaoInternoBus unidadeConsolidacaoInternoBus = new UnidadeConsolidacaoInternoBus();
            UnidadeConsolidacao           caracterizacao = unidadeConsolidacaoInternoBus.ObterPorEmpreendimento(empreendimentoInternoID);

            caracterizacao.Empreendimento.Id = empreendimentoID;
            caracterizacao.InternoId         = caracterizacao.Id;
            caracterizacao.InternoTid        = caracterizacao.Tid;
            caracterizacao.Cultivares.ForEach(r => { r.IdRelacionamento = 0; });
            caracterizacao.ResponsaveisTecnicos.ForEach(r => { r.IdRelacionamento = 0; });

            #endregion

            if (_validar.CopiarDadosInstitucional(caracterizacao))
            {
                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioCredenciado))
                {
                    bancoDeDados.IniciarTransacao();

                    //Setar ID do credenciado
                    caracterizacao.Id = ObterPorEmpreendimento(empreendimentoID, simplificado: true, banco: bancoDeDados).Id;

                    _da.CopiarDadosInstitucional(caracterizacao, bancoDeDados);

                    bancoDeDados.Commit();
                }
            }

            return(Validacao.EhValido);
        }
Exemple #14
0
        public ActionResult Editar(int id)
        {
            if (!_caracterizacaoValidar.Basicas(id))
            {
                return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer()));
            }

            if (!_validar.Acessar(id))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
            }

            UnidadeConsolidacao   caracterizacao = _bus.ObterPorEmpreendimento(id);
            UnidadeConsolidacaoVM vm             = new UnidadeConsolidacaoVM();

            vm.UnidadeConsolidacao = caracterizacao;
            vm.LstUnidadeMedida    = ViewModelHelper.CriarSelectList(_bus.ObterListaUnidadeMedida());

            return(View(vm));
        }
Exemple #15
0
        public ActionResult VisualizarCredenciado(int projetoDigitalId, int protocoloId = 0)
        {
            ProjetoDigitalCredenciadoBus _busProjetoDigitalCredenciado = new ProjetoDigitalCredenciadoBus();
            ProjetoDigital projeto = _busProjetoDigitalCredenciado.Obter(projetoDigitalId);

            UCBusCred.UnidadeConsolidacaoBus _busCredenciado = new UCBusCred.UnidadeConsolidacaoBus();
            UnidadeConsolidacao caracterizacao = _busCredenciado.ObterPorEmpreendimento(projeto.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId);

            UnidadeConsolidacaoVM vm = new UnidadeConsolidacaoVM();

            vm.IsVisualizar        = true;
            vm.UnidadeConsolidacao = caracterizacao;
            vm.LstUnidadeMedida    = ViewModelHelper.CriarSelectList(_bus.ObterListaUnidadeMedida());

            vm.ProtocoloId      = protocoloId;
            vm.ProjetoDigitalId = projeto.Id;
            vm.RequerimentoId   = projeto.RequerimentoId;
            vm.UrlRetorno       = Url.Action("Analisar", "../AnaliseItens", new { protocoloId = protocoloId, requerimentoId = projeto.RequerimentoId });

            return(View("Visualizar", vm));
        }
        public ActionResult Criar(int id, int projetoDigitalId)
        {
            if (!_caracterizacaoValidar.Basicas(id))
            {
                return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer()));
            }

            UnidadeConsolidacao caracterizacao = new UnidadeConsolidacao();

            caracterizacao.Empreendimento.Id = id;

            if (!_validar.Acessar(caracterizacao.Empreendimento.Id, projetoDigitalId))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() }));
            }

            UnidadeConsolidacaoVM vm = new UnidadeConsolidacaoVM();

            vm.LstUnidadeMedida = ViewModelHelper.CriarSelectList(_bus.ObterListaUnidadeMedida());
            vm.LstCultivar      = ViewModelHelper.CriarSelectList(new List <Lista>());

            vm.UnidadeConsolidacao = caracterizacao;
            vm.UnidadeConsolidacao.Empreendimento = _caracterizacaoBus.ObterEmpreendimentoSimplificado(id);

            UnidadeConsolidacaoInternoBus internoBus            = new UnidadeConsolidacaoInternoBus();
            UnidadeConsolidacao           caracterizacaoInterno = internoBus.ObterPorEmpreendimento(vm.UnidadeConsolidacao.Empreendimento.InternoID, true);

            if (caracterizacaoInterno.Id > 0)
            {
                vm.UnidadeConsolidacao.CodigoUC       = caracterizacaoInterno.CodigoUC;
                vm.UnidadeConsolidacao.PossuiCodigoUC = caracterizacaoInterno.PossuiCodigoUC;
                vm.FoiCopiada = true;
            }

            return(View(vm));
        }
Exemple #17
0
        public UnidadeConsolidacao ObterPorEmpreendimento(int empreendimentoId, int projetoDigitalId = 0, bool simplificado = false, BancoDeDados banco = null)
        {
            UnidadeConsolidacao caracterizacao = null;

            try
            {
                List <Caracterizacao> caracterizacoesAssociadas = _busCaracterizacao.ObterCaracterizacoesAssociadasProjetoDigital(projetoDigitalId).Where(x => x.Tipo == eCaracterizacao.UnidadeConsolidacao).ToList();

                if (caracterizacoesAssociadas != null && caracterizacoesAssociadas.Count > 0)
                {
                    caracterizacao = ObterHistorico(caracterizacoesAssociadas.FirstOrDefault().Id, caracterizacoesAssociadas.FirstOrDefault().Tid);
                }
                else
                {
                    caracterizacao = _da.ObterPorEmpreendimento(empreendimentoId, simplificado);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(caracterizacao);
        }
        internal bool Salvar(UnidadeConsolidacao unidade)
        {
            if (!_caracterizacaoValidar.Basicas(unidade.Empreendimento.Id))
            {
                return(false);
            }

            if (unidade.Id <= 0 && (_da.ObterPorEmpreendimento(unidade.Empreendimento.Id, true) ?? new UnidadeConsolidacao()).Id > 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada);
                return(false);
            }

            if (unidade.PossuiCodigoUC)
            {
                if (unidade.CodigoUC < 1)
                {
                    Validacao.Add(Mensagem.UnidadeConsolidacao.CodigoUCObrigatorio);
                }
                else
                {
                    if (unidade.CodigoUC.ToString().Length < 11)
                    {
                        Validacao.Add(Mensagem.UnidadeConsolidacao.CodigoUCInvalido);
                    }
                    else
                    {
                        if (Convert.ToInt32(unidade.CodigoUC.ToString().Substring(7)) > Convert.ToInt32(_configSys.Obter <String>(ConfiguracaoSistema.KeyUnidadeConsolidacaoMaxCodigoUC)))
                        {
                            Validacao.Add(Mensagem.UnidadeConsolidacao.CodigoUCSuperiorMaximo);
                        }
                        else if (_da.CodigoUCExiste(unidade))
                        {
                            Validacao.Add(Mensagem.UnidadeConsolidacao.CodigoUCJaExistente);
                        }
                    }
                }
            }

            if (string.IsNullOrWhiteSpace(unidade.LocalLivroDisponivel))
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.LocalLivroDisponivelObrigatorio);
            }

            #region Cultivar

            if (unidade.Cultivares.Count < 1)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.CapacidadeProcessamentoObrigatorioAdicionar);
            }
            else
            {
                if (unidade.Cultivares.Exists(x => x.CulturaId < 1) ||
                    unidade.Cultivares.Exists(x => x.CapacidadeMes <= 0) ||
                    unidade.Cultivares.Exists(x => x.UnidadeMedida < 1))
                {
                    Validacao.Add(Mensagem.UnidadeConsolidacao.PossuiCultivarInvalido);
                }

                if (unidade.Cultivares.Any(x => unidade.Cultivares.Count(y => y.Id == x.Id && y.Id > 0) > 1))
                {
                    Validacao.Add(Mensagem.UnidadeConsolidacao.CultivarJaAdicionado);
                }
            }

            #endregion

            #region Responsável Técnico

            if (unidade.ResponsaveisTecnicos.Count < 1)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.ResponsavelTecnicoObrigatorioAdicionar);
            }
            else
            {
                if (unidade.ResponsaveisTecnicos.Exists(x => x.Id < 1) ||
                    unidade.ResponsaveisTecnicos.Exists(x => string.IsNullOrEmpty(x.CFONumero)) ||
                    unidade.ResponsaveisTecnicos.Exists(x => string.IsNullOrEmpty(x.NumeroArt)) ||
                    unidade.ResponsaveisTecnicos.Exists(x => !x.ArtCargoFuncao && !ValidacoesGenericasBus.ValidarData(x.DataValidadeART)))
                {
                    Validacao.Add(Mensagem.UnidadeConsolidacao.PossuiResponsavelTecnicoInvalido);
                }
                else
                {
                    unidade.ResponsaveisTecnicos.ForEach(responsavel =>
                    {
                        ValidarAssociarResponsavelTecnicoHabilitado(new HabilitarEmissaoCFOCFOC {
                            Responsavel = new CredenciadoIntEnt()
                            {
                                Id = responsavel.Id
                            }
                        }, unidade.Cultivares);
                    });
                }

                if (unidade.ResponsaveisTecnicos.Any(x => unidade.ResponsaveisTecnicos.Count(y => y.Id == x.Id) > 1))
                {
                    Validacao.Add(Mensagem.UnidadeConsolidacao.ResponsavelTecnicoJaAdicionado);
                }
            }

            #endregion

            if (string.IsNullOrWhiteSpace(unidade.TipoApresentacaoProducaoFormaIdentificacao))
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.TipoApresentacaoProducaoFormaIdentificacaoObrigatorio);
            }

            return(Validacao.EhValido);
        }
 public UnidadeConsolidacaoVM()
 {
     UnidadeConsolidacao = new UnidadeConsolidacao();
     LstUnidadeMedida    = new List <SelectListItem>();
 }
Exemple #20
0
        internal void CopiarDadosInstitucional(UnidadeConsolidacao caracterizacao, BancoDeDados banco)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaCredenciadoBanco))
            {
                bancoDeDados.IniciarTransacao();
                Comando comando = null;

                if (caracterizacao.Id <= 0)
                {
                    comando = bancoDeDados.CriarComando(@"
					insert into {0}crt_unidade_consolidacao (id, empreendimento, possui_codigo_uc, codigo_uc, local_livro_disponivel, 
					tipo_apresentacao_produto, tid, interno_id, interno_tid) values (seq_crt_unidade_consolidacao.nextval, :empreendimento, 
					:possui_codigo_uc, :codigo_uc, :local_livro_disponivel, :tipo_apresentacao_produto, :tid, :interno_id, :interno_tid) 
					returning id into :id"                    , EsquemaCredenciadoBanco);

                    comando.AdicionarParametroEntrada("empreendimento", caracterizacao.Empreendimento.Id, DbType.Int32);
                    comando.AdicionarParametroSaida("id", DbType.Int32);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"
					update {0}crt_unidade_consolidacao set possui_codigo_uc = :possui_codigo_uc, codigo_uc = :codigo_uc, 
					local_livro_disponivel = :local_livro_disponivel, tipo_apresentacao_produto = :tipo_apresentacao_produto, 
					tid = :tid, interno_id = :interno_id, interno_tid = :interno_tid where id = :id"                    , EsquemaCredenciadoBanco);

                    comando.AdicionarParametroEntrada("id", caracterizacao.Id, DbType.Int32);
                }

                comando.AdicionarParametroEntrada("codigo_uc", caracterizacao.CodigoUC, DbType.Int64);
                comando.AdicionarParametroEntrada("possui_codigo_uc", caracterizacao.PossuiCodigoUC, DbType.Int32);
                comando.AdicionarParametroEntrada("local_livro_disponivel", DbType.String, 100, caracterizacao.LocalLivroDisponivel);
                comando.AdicionarParametroEntrada("tipo_apresentacao_produto", DbType.String, 250, caracterizacao.TipoApresentacaoProducaoFormaIdentificacao);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("interno_id", caracterizacao.InternoId, DbType.Int32);
                comando.AdicionarParametroEntrada("interno_tid", caracterizacao.InternoTid, DbType.String);

                bancoDeDados.ExecutarNonQuery(comando);

                if (caracterizacao.Id <= 0)
                {
                    caracterizacao.Id = Convert.ToInt32(comando.ObterValorParametro("id"));
                }

                #region Apagando dados

                //Responsáveis técnicos
                comando = bancoDeDados.CriarComando(@"delete from crt_unida_conso_resp_tec where unidade_consolidacao = :unidade_consolidacao", EsquemaCredenciadoBanco);
                comando.AdicionarParametroEntrada("unidade_consolidacao", caracterizacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                //Cultivares
                comando = bancoDeDados.CriarComando(@"delete from crt_unidade_cons_cultivar c where c.unidade_consolidacao = :unidade_consolidacao", EsquemaCredenciadoBanco);
                comando.AdicionarParametroEntrada("unidade_consolidacao", caracterizacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Cultivares

                caracterizacao.Cultivares.ForEach(x =>
                {
                    comando = bancoDeDados.CriarComando(@"
					insert into crt_unidade_cons_cultivar (id, unidade_consolidacao, cultivar, capacidade_mes, unidade_medida, tid, cultura) values 
					(seq_crt_unidade_cons_cultivar.nextval, :unidade_consolidacao, :cultivar, :capacidade_mes, :unidade_medida, :tid, :cultura)"                    , EsquemaCredenciadoBanco);

                    comando.AdicionarParametroEntrada("unidade_consolidacao", caracterizacao.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("cultivar", x.Id < 1 ? (object)DBNull.Value : x.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("capacidade_mes", x.CapacidadeMes, DbType.Decimal);
                    comando.AdicionarParametroEntrada("unidade_medida", x.UnidadeMedida, DbType.Int32);
                    comando.AdicionarParametroEntrada("cultura", x.CulturaId, DbType.Int32);

                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                });

                #endregion

                #region Responsáveis Técnicos

                caracterizacao.ResponsaveisTecnicos.ForEach(x =>
                {
                    comando = bancoDeDados.CriarComando(@"
					insert into crt_unida_conso_resp_tec 
					(id, unidade_consolidacao, responsavel_tecnico, numero_hab_cfo_cfoc, numero_art, art_cargo_funcao, data_validade_art, tid) values 
					(seq_crt_unida_conso_resp_tec.nextval, :unidade_consolidacao, :responsavel_tecnico, :numero_hab_cfo_cfoc, :numero_art, :art_cargo_funcao, :data_validade_art, :tid)"                    , EsquemaCredenciadoBanco);

                    comando.AdicionarParametroEntrada("unidade_consolidacao", caracterizacao.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("responsavel_tecnico", x.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("numero_hab_cfo_cfoc", x.CFONumero, DbType.String);
                    comando.AdicionarParametroEntrada("numero_art", x.NumeroArt, DbType.String);
                    comando.AdicionarParametroEntrada("art_cargo_funcao", x.ArtCargoFuncao, DbType.Int32);
                    comando.AdicionarParametroEntrada("data_validade_art", x.DataValidadeART, DbType.String);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    bancoDeDados.ExecutarNonQuery(comando);
                });

                #endregion

                Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.unidadeconsolidacao, eHistoricoAcao.copiar, bancoDeDados, null);

                bancoDeDados.Commit();
            }
        }
Exemple #21
0
        public UnidadeConsolidacao ObterHistorico(int id, string tid, bool simplificado = false, BancoDeDados banco = null)
        {
            UnidadeConsolidacao caracterizacao = new UnidadeConsolidacao();
            int hst = 0;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaCredenciadoBanco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
				select c.id, c.tid, c.interno_id, c.interno_tid, c.empreendimento_id, c.possui_codigo_uc, c.codigo_uc, c.local_livro_disponivel, 
				c.tipo_apresentacao_produto from {0}hst_crt_unidade_consolidacao c where c.unidade_consolidacao = :id and c.tid = :tid"                , EsquemaCredenciadoBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        hst = reader.GetValue <int>("id");

                        caracterizacao.Id            = id;
                        caracterizacao.CredenciadoID = id;
                        caracterizacao.Tid           = reader.GetValue <string>("tid");
                        caracterizacao.InternoId     = reader.GetValue <int>("interno_id");
                        caracterizacao.InternoTid    = reader.GetValue <string>("interno_tid");

                        caracterizacao.Empreendimento.Id    = reader.GetValue <int>("empreendimento_id");
                        caracterizacao.PossuiCodigoUC       = reader.GetValue <bool>("possui_codigo_uc");
                        caracterizacao.CodigoUC             = reader.GetValue <long>("codigo_uc");
                        caracterizacao.LocalLivroDisponivel = reader.GetValue <string>("local_livro_disponivel");
                        caracterizacao.TipoApresentacaoProducaoFormaIdentificacao = reader.GetValue <string>("tipo_apresentacao_produto");
                    }

                    reader.Close();
                }

                if (caracterizacao.Id < 1 || simplificado)
                {
                    return(caracterizacao);
                }

                #region Cultivares

                comando = bancoDeDados.CriarComando(@"
				select c.unid_consoli_cultivar_id id, c.tid, c.cultura_id, cu.texto cultura_texto, c.cultivar_id, cc.cultivar_nome, c.capacidade_mes, c.unidade_medida_id, c.unidade_medida_texto 
				from hst_crt_unidade_cons_cultivar c, hst_cultura cu, hst_cultura_cultivar cc where cu.cultura_id = c.cultura_id and cu.tid = c.cultura_tid and cc.cultivar_id(+) = c.cultivar_id 
				and cc.tid(+) = c.cultivar_tid and c.id_hst = :id"                , EsquemaCredenciadoBanco);

                comando.AdicionarParametroEntrada("id", hst, DbType.Int32);

                Cultivar cultivar = null;
                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        cultivar = new Cultivar();

                        cultivar.IdRelacionamento = reader.GetValue <int>("id");
                        cultivar.Tid                = reader.GetValue <string>("tid");
                        cultivar.CulturaId          = reader.GetValue <int>("cultura_id");
                        cultivar.CulturaTexto       = reader.GetValue <string>("cultura_texto");
                        cultivar.Id                 = reader.GetValue <int>("cultivar_id");
                        cultivar.Nome               = reader.GetValue <string>("cultivar_nome");
                        cultivar.CapacidadeMes      = reader.GetValue <decimal>("capacidade_mes");
                        cultivar.UnidadeMedida      = reader.GetValue <int>("unidade_medida_id");
                        cultivar.UnidadeMedidaTexto = reader.GetValue <string>("unidade_medida_texto");

                        caracterizacao.Cultivares.Add(cultivar);
                    }

                    reader.Close();
                }

                #endregion

                #region Responsáveis Técnicos

                comando = bancoDeDados.CriarComando(@"
				select distinct 
					c.unid_consoli_resp_tec_id id,
					c.responsavel_tecnico_id,
					c.numero_hab_cfo_cfoc,
					c.numero_art,
					c.art_cargo_funcao,
					c.data_validade_art,
					c.tid,
					nvl(tp.nome, tp.razao_social) nome_razao,
					nvl(tp.cpf, tp.cnpj) cpf_cnpj,
					pf.texto profissao,
					oc.orgao_sigla,
					pp.registro,
					(select h.extensao_habilitacao
						from hst_hab_emi_cfo_cfoc h
						where h.responsavel_id = c.responsavel_tecnico_id
						and h.responsavel_tid = c.responsavel_tecnico_tid
						and h.data_execucao =
							(select max(hh.data_execucao)
							from hst_hab_emi_cfo_cfoc hh
							where hh.responsavel_id = h.responsavel_id
							and hh.responsavel_tid = h.responsavel_tid
							and hh.data_execucao <=
								(select hc.data_execucao
									from hst_crt_unidade_consolidacao hc
									where hc.id = c.id_hst))) extensao_habilitacao
				from hst_crt_unida_conso_resp_tec c,
					hst_credenciado               tc,
					hst_pessoa                    tp,
					hst_pessoa_profissao          pp,
					hst_profissao                 pf,
					tab_orgao_classe              oc
				where tc.credenciado_id = c.responsavel_tecnico_id
				and tc.tid = c.responsavel_tecnico_tid
				and tp.pessoa_id = tc.pessoa_id
				and tp.tid = tc.pessoa_tid
				and pp.id_hst(+) = tp.id
				and pf.profissao_id(+) = pp.profissao_id
				and pf.tid(+) = pp.profissao_tid
				and oc.id(+) = pp.orgao_classe_id
				and c.id_hst = :id"                , EsquemaBanco, EsquemaCredenciadoBanco);

                comando.AdicionarParametroEntrada("id", hst, DbType.Int32);

                ResponsavelTecnico responsavel = null;
                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        responsavel = new ResponsavelTecnico();
                        responsavel.IdRelacionamento = reader.GetValue <int>("id");
                        responsavel.Id             = reader.GetValue <int>("responsavel_tecnico_id");
                        responsavel.NomeRazao      = reader.GetValue <string>("nome_razao");
                        responsavel.CpfCnpj        = reader.GetValue <string>("cpf_cnpj");
                        responsavel.CFONumero      = reader.GetValue <string>("numero_hab_cfo_cfoc");
                        responsavel.NumeroArt      = reader.GetValue <string>("numero_art");
                        responsavel.ArtCargoFuncao = reader.GetValue <bool>("art_cargo_funcao");

                        responsavel.ProfissaoTexto   = reader.GetValue <string>("profissao");
                        responsavel.OrgaoClasseSigla = reader.GetValue <string>("orgao_sigla");
                        responsavel.NumeroRegistro   = reader.GetValue <string>("registro");

                        responsavel.DataValidadeART = reader.GetValue <string>("data_validade_art");
                        if (!string.IsNullOrEmpty(responsavel.DataValidadeART))
                        {
                            responsavel.DataValidadeART = Convert.ToDateTime(responsavel.DataValidadeART).ToShortDateString();
                        }

                        if (Convert.ToBoolean(reader.GetValue <int>("extensao_habilitacao")))
                        {
                            responsavel.CFONumero += "-ES";
                        }

                        caracterizacao.ResponsaveisTecnicos.Add(responsavel);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(caracterizacao);
        }
        private UnidadeConsolidacao Obter(int id, BancoDeDados banco = null, bool simplificado = false)
        {
            UnidadeConsolidacao caracterizacao = new UnidadeConsolidacao();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Unidade de Produção

                Comando comando = bancoDeDados.CriarComando(@"
															select c.id,c.possui_codigo_uc, c.codigo_uc, c.local_livro_disponivel, c.tipo_apresentacao_produto, c.tid, 
															c.empreendimento, e.codigo empreendimento_codigo from {0}crt_unidade_consolidacao c, {0}tab_empreendimento e
															where c.empreendimento = e.id and c.id = :id"                                                            , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        caracterizacao.Id = reader.GetValue <int>("id");
                        caracterizacao.Empreendimento.Id     = reader.GetValue <int>("empreendimento");
                        caracterizacao.Empreendimento.Codigo = reader.GetValue <int>("empreendimento_codigo");
                        caracterizacao.PossuiCodigoUC        = reader.GetValue <bool>("possui_codigo_uc");
                        caracterizacao.CodigoUC             = reader.GetValue <long>("codigo_uc");
                        caracterizacao.LocalLivroDisponivel = reader.GetValue <string>("local_livro_disponivel");
                        caracterizacao.TipoApresentacaoProducaoFormaIdentificacao = reader.GetValue <string>("tipo_apresentacao_produto");
                        caracterizacao.Tid = reader.GetValue <string>("tid");
                    }

                    reader.Close();
                }

                #endregion

                if (simplificado)
                {
                    return(caracterizacao);
                }

                #region Cultivares

                comando = bancoDeDados.CriarComando(@"
				select c.id, c.tid, c.unidade_consolidacao, c.capacidade_mes, c.unidade_medida, lu.texto unidade_medida_texto, c.cultivar, cc.cultivar cultivar_nome, c.cultura,
				tc.texto cultura_texto from crt_unidade_cons_cultivar c, tab_cultura tc, tab_cultura_cultivar cc, lov_crt_un_conso_un_medida lu where tc.id = c.cultura 
				and cc.id(+) = c.cultivar and lu.id = c.unidade_medida and c.unidade_consolidacao = :unidade"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("unidade", id, DbType.Int32);

                Cultivar cultivar = null;
                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        cultivar = new Cultivar();
                        cultivar.CapacidadeMes      = reader.GetValue <decimal>("capacidade_mes");
                        cultivar.Id                 = reader.GetValue <int>("cultivar");
                        cultivar.IdRelacionamento   = reader.GetValue <int>("id");
                        cultivar.Nome               = reader.GetValue <string>("cultivar_nome");
                        cultivar.Tid                = reader.GetValue <string>("tid");
                        cultivar.UnidadeMedida      = reader.GetValue <int>("unidade_medida");
                        cultivar.UnidadeMedidaTexto = reader.GetValue <string>("unidade_medida_texto");
                        cultivar.CulturaId          = reader.GetValue <int>("cultura");
                        cultivar.CulturaTexto       = reader.GetValue <string>("cultura_texto");

                        caracterizacao.Cultivares.Add(cultivar);
                    }

                    reader.Close();
                }

                #endregion

                #region Responsáveis Técnicos

                comando = bancoDeDados.CriarComando(@"
				select c.id, c.unidade_consolidacao, c.responsavel_tecnico, c.numero_hab_cfo_cfoc, c.numero_art, c.art_cargo_funcao, c.data_validade_art, c.tid, 
				nvl(tp.nome, tp.razao_social) nome_razao, nvl(tp.cpf, tp.cnpj) cpf_cnpj, pf.texto profissao, oc.orgao_sigla, pp.registro, 
				(select h.extensao_habilitacao from tab_hab_emi_cfo_cfoc h where h.responsavel = c.responsavel_tecnico) extensao_habilitacao 
				from {0}crt_unida_conso_resp_tec c, {0}tab_credenciado tc, {1}tab_pessoa tp, {1}tab_pessoa_profissao pp, 
				{0}tab_profissao pf, {0}tab_orgao_classe oc where tc.id = c.responsavel_tecnico and tp.id = tc.pessoa and pp.pessoa(+) = tp.id 
				and pf.id(+) = pp.profissao and oc.id(+) = pp.orgao_classe and c.unidade_consolidacao = :unidade"                , EsquemaBanco, EsquemaCredenciadoBanco);

                comando.AdicionarParametroEntrada("unidade", id, DbType.Int32);

                ResponsavelTecnico responsavel = null;
                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        responsavel = new ResponsavelTecnico();
                        responsavel.IdRelacionamento = reader.GetValue <int>("id");
                        responsavel.Id             = reader.GetValue <int>("responsavel_tecnico");
                        responsavel.NomeRazao      = reader.GetValue <string>("nome_razao");
                        responsavel.CpfCnpj        = reader.GetValue <string>("cpf_cnpj");
                        responsavel.CFONumero      = reader.GetValue <string>("numero_hab_cfo_cfoc");
                        responsavel.NumeroArt      = reader.GetValue <string>("numero_art");
                        responsavel.ArtCargoFuncao = reader.GetValue <bool>("art_cargo_funcao");

                        responsavel.ProfissaoTexto   = reader.GetValue <string>("profissao");
                        responsavel.OrgaoClasseSigla = reader.GetValue <string>("orgao_sigla");
                        responsavel.NumeroRegistro   = reader.GetValue <string>("registro");

                        responsavel.DataValidadeART = reader.GetValue <string>("data_validade_art");
                        if (!string.IsNullOrEmpty(responsavel.DataValidadeART))
                        {
                            responsavel.DataValidadeART = Convert.ToDateTime(responsavel.DataValidadeART).ToShortDateString();
                        }

                        if (Convert.ToBoolean(reader.GetValue <int>("extensao_habilitacao")))
                        {
                            responsavel.CFONumero += "-ES";
                        }

                        caracterizacao.ResponsaveisTecnicos.Add(responsavel);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(caracterizacao);
        }
        private void Editar(UnidadeConsolidacao unidadeConsolidacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update {0}crt_unidade_consolidacao set codigo_uc = :codigo_uc, 
				local_livro_disponivel = :local_livro_disponivel, tipo_apresentacao_produto = :tipo_apresentacao_produto, tid = :tid 
				where id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", unidadeConsolidacao.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("codigo_uc", unidadeConsolidacao.CodigoUC, DbType.Int64);
                comando.AdicionarParametroEntrada("local_livro_disponivel", DbType.String, 100, unidadeConsolidacao.LocalLivroDisponivel);
                comando.AdicionarParametroEntrada("tipo_apresentacao_produto", DbType.String, 250, unidadeConsolidacao.TipoApresentacaoProducaoFormaIdentificacao);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                #region Apagando dados

                //Responsáveis técnicos
                comando = bancoDeDados.CriarComando(@"delete from crt_unida_conso_resp_tec ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where unidade_consolidacao = :unidade_consolidacao {0}",
                                                               comando.AdicionarNotIn("and", "id", DbType.Int32, unidadeConsolidacao.ResponsaveisTecnicos.Select(x => x.IdRelacionamento).ToList()));

                comando.AdicionarParametroEntrada("unidade_consolidacao", unidadeConsolidacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                //Cultivares
                comando = bancoDeDados.CriarComando(@"delete from crt_unidade_cons_cultivar c", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format(" where c.unidade_consolidacao = :unidade_consolidacao {0}",
                                                               comando.AdicionarNotIn("and", "c.id", DbType.Int32, unidadeConsolidacao.Cultivares.Select(x => x.IdRelacionamento).ToList()));

                comando.AdicionarParametroEntrada("unidade_consolidacao", unidadeConsolidacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Cultivares

                unidadeConsolidacao.Cultivares.ForEach(x =>
                {
                    if (x.IdRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
						update crt_unidade_cons_cultivar set cultivar = :cultivar, capacidade_mes = :capacidade_mes, cultura =:cultura,
						unidade_medida = :unidade_medida, tid = :tid where id = :id_rel"                        , EsquemaBanco);
                        comando.AdicionarParametroEntrada("id_rel", x.IdRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into crt_unidade_cons_cultivar (id, unidade_consolidacao, cultivar, capacidade_mes, unidade_medida, tid, cultura) values 
						(seq_crt_unidade_cons_cultivar.nextval, :unidade_consolidacao, :cultivar, :capacidade_mes, :unidade_medida, :tid, :cultura)"                        , EsquemaBanco);
                        comando.AdicionarParametroEntrada("unidade_consolidacao", unidadeConsolidacao.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("cultivar", x.Id < 1 ? (object)DBNull.Value : x.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("capacidade_mes", x.CapacidadeMes, DbType.Decimal);
                    comando.AdicionarParametroEntrada("unidade_medida", x.UnidadeMedida, DbType.Int32);
                    comando.AdicionarParametroEntrada("cultura", x.CulturaId, DbType.Int32);

                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                });

                #endregion

                #region Responsáveis Técnicos

                unidadeConsolidacao.ResponsaveisTecnicos.ForEach(x =>
                {
                    if (x.IdRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
						update crt_unida_conso_resp_tec set responsavel_tecnico =:responsavel_tecnico, numero_hab_cfo_cfoc =:numero_hab_cfo_cfoc, 
						numero_art = :numero_art, art_cargo_funcao = :art_cargo_funcao, data_validade_art = :data_validade_art, tid = :tid
						where id = :id_rel"                        , EsquemaBanco);
                        comando.AdicionarParametroEntrada("id_rel", x.IdRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into crt_unida_conso_resp_tec 
						(id, unidade_consolidacao, responsavel_tecnico, numero_hab_cfo_cfoc, numero_art, art_cargo_funcao, data_validade_art, tid) values 
						(seq_crt_unida_conso_resp_tec.nextval, :unidade_consolidacao, :responsavel_tecnico, :numero_hab_cfo_cfoc, :numero_art, :art_cargo_funcao, :data_validade_art, :tid)"                        , EsquemaBanco);
                        comando.AdicionarParametroEntrada("unidade_consolidacao", unidadeConsolidacao.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("responsavel_tecnico", x.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("numero_hab_cfo_cfoc", x.CFONumero, DbType.String);
                    comando.AdicionarParametroEntrada("numero_art", x.NumeroArt, DbType.String);
                    comando.AdicionarParametroEntrada("art_cargo_funcao", x.ArtCargoFuncao, DbType.Int32);
                    comando.AdicionarParametroEntrada("data_validade_art", x.DataValidadeART, DbType.String);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    bancoDeDados.ExecutarNonQuery(comando);
                });

                #endregion

                Historico.Gerar(unidadeConsolidacao.Id, eHistoricoArtefatoCaracterizacao.unidadeconsolidacao, eHistoricoAcao.atualizar, bancoDeDados, null);

                bancoDeDados.Commit();
            }
        }
        private void Criar(UnidadeConsolidacao unidadeConsolidacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"
				insert into {0}crt_unidade_consolidacao (id, empreendimento, possui_codigo_uc, codigo_uc, local_livro_disponivel, tipo_apresentacao_produto, tid) values 
				(seq_crt_unidade_consolidacao.nextval, :empreendimento,:possui_codigo_uc, :codigo_uc, :local_livro_disponivel, :tipo_apresentacao_produto, :tid) returning id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("possui_codigo_uc", unidadeConsolidacao.PossuiCodigoUC, DbType.Int32);
                comando.AdicionarParametroEntrada("codigo_uc", unidadeConsolidacao.CodigoUC, DbType.Int64);
                comando.AdicionarParametroEntrada("empreendimento", unidadeConsolidacao.Empreendimento.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("local_livro_disponivel", DbType.String, 100, unidadeConsolidacao.LocalLivroDisponivel);
                comando.AdicionarParametroEntrada("tipo_apresentacao_produto", DbType.String, 250, unidadeConsolidacao.TipoApresentacaoProducaoFormaIdentificacao);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                unidadeConsolidacao.Id = comando.ObterValorParametro <int>("id");

                #region Cultivares

                comando = bancoDeDados.CriarComando(@"
				insert into crt_unidade_cons_cultivar (id, unidade_consolidacao, cultivar, capacidade_mes, unidade_medida, tid, cultura) values 
				(seq_crt_unidade_cons_cultivar.nextval, :unidade_consolidacao, :cultivar, :capacidade_mes, :unidade_medida, :tid, :cultura)"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("unidade_consolidacao", unidadeConsolidacao.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("cultivar", DbType.Int32);
                comando.AdicionarParametroEntrada("capacidade_mes", DbType.Decimal);
                comando.AdicionarParametroEntrada("unidade_medida", DbType.Int32);
                comando.AdicionarParametroEntrada("cultura", DbType.Int32);

                unidadeConsolidacao.Cultivares.ForEach(x =>
                {
                    comando.SetarValorParametro("cultivar", x.Id < 1 ? (object)DBNull.Value : x.Id);
                    comando.SetarValorParametro("capacidade_mes", x.CapacidadeMes);
                    comando.SetarValorParametro("unidade_medida", x.UnidadeMedida);
                    comando.SetarValorParametro("cultura", x.CulturaId);

                    bancoDeDados.ExecutarNonQuery(comando);
                });

                #endregion

                #region Responsáveis Técnicos

                comando = bancoDeDados.CriarComando(@"
				insert into crt_unida_conso_resp_tec (id, unidade_consolidacao, responsavel_tecnico, numero_hab_cfo_cfoc, numero_art, art_cargo_funcao, data_validade_art, tid) values 
				(seq_crt_unida_conso_resp_tec.nextval, :unidade_consolidacao, :responsavel_tecnico, :numero_hab_cfo_cfoc, :numero_art, :art_cargo_funcao, :data_validade_art, :tid)"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("unidade_consolidacao", unidadeConsolidacao.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("responsavel_tecnico", DbType.Int32);
                comando.AdicionarParametroEntrada("numero_hab_cfo_cfoc", DbType.String);
                comando.AdicionarParametroEntrada("numero_art", DbType.String);
                comando.AdicionarParametroEntrada("art_cargo_funcao", DbType.Int32);
                comando.AdicionarParametroEntrada("data_validade_art", DbType.String);

                unidadeConsolidacao.ResponsaveisTecnicos.ForEach(x =>
                {
                    comando.SetarValorParametro("responsavel_tecnico", x.Id);
                    comando.SetarValorParametro("numero_hab_cfo_cfoc", x.CFONumero);
                    comando.SetarValorParametro("numero_art", x.NumeroArt);
                    comando.SetarValorParametro("art_cargo_funcao", x.ArtCargoFuncao);
                    comando.SetarValorParametro("data_validade_art", x.DataValidadeART);

                    bancoDeDados.ExecutarNonQuery(comando);
                });

                #endregion

                Historico.Gerar(unidadeConsolidacao.Id, eHistoricoArtefatoCaracterizacao.unidadeconsolidacao, eHistoricoAcao.criar, bancoDeDados, null);

                bancoDeDados.Commit();
            }
        }
Exemple #25
0
        public UnidadeConsolidacaoPDF(UnidadeConsolidacao unidade, List <PessoaLst> responsaveisEmp)
        {
            unidade = unidade ?? new UnidadeConsolidacao();

            CodigoUC = unidade.CodigoUC.ToString();
            ResponsaveisEmpreendimento = responsaveisEmp;

            //Cultivares
            foreach (var item in unidade.Cultivares)
            {
                Cultivares.Add(new CultivarPDF()
                {
                    Nome       = item.Nome,
                    Cultura    = item.CulturaTexto,
                    Unidade    = item.UnidadeMedidaTexto,
                    Capacidade = item.CapacidadeMes.ToStringTrunc(4)
                });
            }

            //ResponsaveisTecnicos
            List <ResponsavelPDF> responsaveis = new List <ResponsavelPDF>();
            string dadosCompletos = string.Empty;

            foreach (var responsavel in unidade.ResponsaveisTecnicos)
            {
                dadosCompletos = responsavel.NomeRazao;

                if (!string.IsNullOrEmpty(responsavel.ProfissaoTexto))
                {
                    dadosCompletos += ", " + responsavel.ProfissaoTexto;
                }

                if (!string.IsNullOrEmpty(responsavel.OrgaoClasseSigla))
                {
                    dadosCompletos += ", " + responsavel.OrgaoClasseSigla;
                }

                if (!string.IsNullOrEmpty(responsavel.NumeroRegistro))
                {
                    dadosCompletos += " " + responsavel.NumeroRegistro;
                }

                if (!responsaveis.Exists(x => x.CPFCNPJ == responsavel.CpfCnpj))
                {
                    ResponsaveisTecnicos.Add(new ResponsavelPDF()
                    {
                        CPFCNPJ          = responsavel.CpfCnpj,
                        NomeRazaoSocial  = responsavel.NomeRazao,
                        CFONumero        = responsavel.CFONumero,
                        Profissao        = responsavel.ProfissaoTexto,
                        OrgaoClasseSigla = responsavel.OrgaoClasseSigla,
                        NumeroRegistro   = responsavel.NumeroRegistro,
                        DadosCompletos   = dadosCompletos
                    });
                }
            }

            ResponsaveisTecnicosStragg          = EntitiesBus.Concatenar(ResponsaveisTecnicos.Select(x => x.DadosCompletos.Trim()).ToList());
            ResponsaveisTecnicosCFONumeroStragg = EntitiesBus.Concatenar(ResponsaveisTecnicos.Select(x => x.CFONumero.Trim()).ToList());

            if (ResponsaveisTecnicos.Count > 1)
            {
                ResponsaveisTecnicosCFONumeroStragg += " respectivamente";
            }
        }