コード例 #1
0
        internal PecaTecnica Obter(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false)
        {
            PecaTecnica pecaTecnica = new PecaTecnica();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                if (String.IsNullOrWhiteSpace(tid))
                {
                    pecaTecnica = Obter(id, bancoDeDados, simplificado);
                }
                else
                {
                    Comando comando = bancoDeDados.CriarComando(@"select count(r.id) existe from {0}tab_peca_tecnica r where r.id = :id and r.tid = :tid", EsquemaBanco);

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

                    if (Convert.ToBoolean(bancoDeDados.ExecutarScalar(comando)))
                    {
                        pecaTecnica = Obter(id, bancoDeDados, simplificado);
                    }
                    else
                    {
                        pecaTecnica = ObterHistorico(id, bancoDeDados, tid, simplificado);
                    }
                }
            }

            return(pecaTecnica);
        }
コード例 #2
0
 public PecaTecnicaVM(PecaTecnica pecaTecnica)
 {
     PecaTecnica  = pecaTecnica;
     Elaboradores = new List <SelectListItem>()
     {
         new SelectListItem()
         {
             Text = " *** Selecione *** ", Value = "0"
         }
     };
     Setores = new List <SelectListItem>()
     {
         new SelectListItem()
         {
             Text = " *** Selecione *** ", Value = "0"
         }
     };
     RespEmpreendimento = new List <SelectListItem>()
     {
         new SelectListItem()
         {
             Text = " *** Selecione *** ", Value = "0"
         }
     };
 }
コード例 #3
0
        public int Salvar(PecaTecnica pecaTecnica)
        {
            try
            {
                if (_validar.Salvar(pecaTecnica))
                {
                    GerenciadorTransacao.ObterIDAtual();

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

                        int id = _da.Salvar(pecaTecnica, bancoDeDados);

                        bancoDeDados.Commit();

                        Validacao.Add(Mensagem.AnaliseItem.PecaTecnicaSalvaComSucesso);

                        return(id);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(0);
        }
コード例 #4
0
        public bool Salvar(PecaTecnica pecaTecnica)
        {
            if (pecaTecnica.Elaborador <= 0)
            {
                Validacao.Add(Mensagem.AnaliseItem.PecaTecnicaElaboradorObrigatorio);
            }

            if (pecaTecnica.Atividade <= 0)
            {
                Validacao.Add(Mensagem.AnaliseItem.PecaTecnicaAtividadeObrigatorio);
            }

            if (pecaTecnica.ResponsaveisEmpreendimento.Count <= 0)
            {
                Validacao.Add(Mensagem.AnaliseItem.PecaTecnicaRespEmpreendimentoObrigatorio);
            }

            if (pecaTecnica.ElaboradorTipoEnum == eElaboradorTipo.TecnicoIdaf && pecaTecnica.SetorCadastro <= 0)
            {
                Validacao.Add(Mensagem.AnaliseItem.PecaTecnicaSetorObrigatorio);
            }

            if (!Validacao.EhValido)
            {
                return(false);
            }

            IProtocolo protocolo = _busProtocolo.ObterSimplificado(pecaTecnica.Protocolo.Id.GetValueOrDefault());

            if (protocolo.Empreendimento.Id <= 0)
            {
                Validacao.Add(Mensagem.AnaliseItem.PecaTecnicaNaoPossuiEmpreendimento);
                return(false);
            }

            List <Requerimento> requerimentos = _busProtocolo.ObterProtocoloRequerimentos(pecaTecnica.ProtocoloPai.GetValueOrDefault());

            if (!requerimentos.Exists(x => x.ProtocoloId == pecaTecnica.Protocolo.Id))
            {
                Validacao.Add(Mensagem.AnaliseItem.PecaTecnicaRequerimentoNaoAssociado);
                return(false);
            }

            ProjetoGeograficoBus busProjetoGeo = new ProjetoGeograficoBus();

            int projetoGeoId = busProjetoGeo.ExisteProjetoGeografico(pecaTecnica.Protocolo.Empreendimento.Id, (int)eCaracterizacao.Dominialidade);

            if (busProjetoGeo.ObterSitacaoProjetoGeografico(projetoGeoId) != (int)eProjetoGeograficoSituacao.Finalizado)
            {
                Validacao.Add(Mensagem.AnaliseItem.PecaTecnicaProjetoDeveSerFinalizado);
            }


            return(Validacao.EhValido);
        }
コード例 #5
0
        public PecaTecnica ObterSimplificado(int id, string tid = null, BancoDeDados banco = null)
        {
            PecaTecnica pecaTecnica = null;

            try
            {
                pecaTecnica = _da.Obter(id, banco, tid, true);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(pecaTecnica);
        }
コード例 #6
0
        public ActionResult ObterPecaTecnicaConteudo(int id, int protocoloId)
        {
            int pecaTecnicaId = _busPecaTecnica.ExistePecaTecnica(id, protocoloId);

            PecaTecnica pecaTecnica = pecaTecnicaId > 0 ? _busPecaTecnica.Obter(pecaTecnicaId) : new PecaTecnica();

            PecaTecnicaVM vm = new PecaTecnicaVM(pecaTecnica);

            List <int> tiposDestinatario = new List <int>()
            {
                (int)eEmpreendimentoResponsavelTipo.Proprietario,
                (int)eEmpreendimentoResponsavelTipo.Socio,
                (int)eEmpreendimentoResponsavelTipo.Herdeiro,
                (int)eEmpreendimentoResponsavelTipo.Posseiro
            };

            vm.PecaTecnica.Protocolo = _protocoloBus.ObterSimplificado(protocoloId);

            if (pecaTecnicaId > 0)
            {
                List <PessoaLst> responsaveisTecnicos;
                if (vm.PecaTecnica.ElaboradorTipoEnum == eElaboradorTipo.TecnicoIdaf)
                {
                    vm.Setores = ViewModelHelper.CriarSelectList(_busFuncionario.ObterSetoresFuncionario());

                    EtramiteIdentity func = User.Identity as EtramiteIdentity ?? new EtramiteIdentity("", "", "", null, "", 0, 0, "", "", 0, 0);
                    responsaveisTecnicos = new List <PessoaLst>();
                    responsaveisTecnicos.Add(new PessoaLst()
                    {
                        Texto = func.Name, Id = func.UsuarioId
                    });
                }
                else
                {
                    responsaveisTecnicos = _protocoloBus.ObterResponsaveisTecnicos(vm.PecaTecnica.Protocolo.Id.GetValueOrDefault());
                }

                vm.Elaboradores = ViewModelHelper.CriarSelectList(responsaveisTecnicos, itemTextoPadrao: responsaveisTecnicos.Count != 1);
            }

            List <PessoaLst> responsaveis = _busEmpreendimento.ObterResponsaveis(vm.PecaTecnica.Protocolo.Empreendimento.Id).Where(x => tiposDestinatario.Contains(x.VinculoTipo)).ToList();

            vm.RespEmpreendimento = ViewModelHelper.CriarSelectList <PessoaLst>(responsaveis, itemTextoPadrao: responsaveis.Count != 1);

            string html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "PecaTecnicaConteudo", vm);

            return(Json(new { EhValido = true, Msg = Validacao.Erros, html = html }));
        }
コード例 #7
0
        public int Salvar(PecaTecnica pecaTecnica, BancoDeDados banco = null)
        {
            if (pecaTecnica == null)
            {
                throw new Exception("Peça Técnica é nula.");
            }

            if (!pecaTecnica.Id.HasValue || pecaTecnica.Id <= 0)
            {
                return(Criar(pecaTecnica, banco).GetValueOrDefault());
            }
            else
            {
                Editar(pecaTecnica, banco);
                return(pecaTecnica.Id.GetValueOrDefault());
            }
        }
コード例 #8
0
        public ActionResult ObterPecaTecnicaRequerimentos(string numero)
        {
            PecaTecnica pecaTecnica = _busPecaTecnica.VerificarProtocolo(numero);

            pecaTecnica.ProtocoloPai = pecaTecnica.Protocolo.Id;

            PecaTecnicaVM vm = new PecaTecnicaVM(pecaTecnica);

            vm.Requerimentos = _protocoloBus.ObterProtocoloRequerimentos(pecaTecnica.Protocolo.Id.GetValueOrDefault());

            return(Json(new
            {
                @IsProcesso = pecaTecnica.Protocolo.IsProcesso,
                @ProtocoloId = pecaTecnica.Protocolo.Id,
                @Html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "PecaTecnicaRequerimentos", vm),
                Msg = Validacao.Erros,
                EhValido = Validacao.EhValido
            }, JsonRequestBehavior.AllowGet));
        }
コード例 #9
0
        public PecaTecnica VerificarProtocolo(string numero)
        {
            PecaTecnica pecaTecnica = new PecaTecnica();

            ProtocoloNumero protocolo = _busProtocolo.ObterProtocolo(numero) ?? new ProtocoloNumero();

            pecaTecnica.Protocolo = new Protocolo(protocolo);

            try
            {
                if (_validar.VerificarProtocolo(protocolo))
                {
                    pecaTecnica.Protocolo.Id = protocolo.Id;
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(pecaTecnica);
        }
コード例 #10
0
        internal int?Criar(PecaTecnica pecaTecnica, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Dados Principais

                Comando comando = null;

                if (pecaTecnica.ElaboradorTipo == (int)eElaboradorTipo.TecnicoIdaf)
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}tab_peca_tecnica t (id, protocolo, atividade, elaborador_tipo, elaborador_tecnico, setor_cadastro, tid) 
					values ({0}seq_peca_tecnica.nextval, :protocolo, :atividade, :elaborador_tipo, :elaborador, :setor_cadastro, :tid) returning t.id into :id"                    , EsquemaBanco);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}tab_peca_tecnica t (id, protocolo, atividade, elaborador_tipo, elaborador_pessoa, setor_cadastro, tid) 
					values ({0}seq_peca_tecnica.nextval, :protocolo, :atividade, :elaborador_tipo, :elaborador, :setor_cadastro, :tid) returning t.id into :id"                    , EsquemaBanco);
                }

                comando.AdicionarParametroEntrada("protocolo", pecaTecnica.Protocolo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", pecaTecnica.Atividade, DbType.Int32);
                comando.AdicionarParametroEntrada("elaborador_tipo", pecaTecnica.ElaboradorTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("elaborador", pecaTecnica.Elaborador, DbType.Int32);
                comando.AdicionarParametroEntrada("setor_cadastro", pecaTecnica.SetorCadastro, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

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

                bancoDeDados.ExecutarNonQuery(comando);

                pecaTecnica.Id = Convert.ToInt32(comando.ObterValorParametro("id"));

                #endregion

                #region Responsaveis/Destinatarios

                if (pecaTecnica.ResponsaveisEmpreendimento != null && pecaTecnica.ResponsaveisEmpreendimento.Count > 0)
                {
                    foreach (Responsavel item in pecaTecnica.ResponsaveisEmpreendimento)
                    {
                        comando = bancoDeDados.CriarComando(@"insert into {0}tab_peca_tecnica_dest (id, peca_tecnica, destinatario, tid)
								values ({0}seq_peca_tecnica_dest.nextval, :peca_tecnica, :destinatario, :tid)"                                , EsquemaBanco);

                        comando.AdicionarParametroEntrada("peca_tecnica", pecaTecnica.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("destinatario", item.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);
                    }
                }

                #endregion

                #region Histórico/Consulta/Posse

                Historico.Gerar(pecaTecnica.Id.Value, eHistoricoArtefato.pecatecnica, eHistoricoAcao.criar, bancoDeDados);

                #endregion

                bancoDeDados.Commit();

                return(pecaTecnica.Id);
            }
        }
コード例 #11
0
        internal PecaTecnica ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false)
        {
            PecaTecnica pecaTecnica = new PecaTecnica();
            int         hst         = 0;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Dados Principais

                Comando comando = bancoDeDados.CriarComando(@"select t.protocolo_id, t.atividade_id, t.elaborador_tipo_id, t.elaborador_tipo_id, 
				t.setor_cadastro_id, t.tid  from {0}hst_peca_tecnica t where t.peca_tecnica_id = :id and t.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"]);

                        pecaTecnica.Id  = id;
                        pecaTecnica.Tid = reader["tid"].ToString();

                        if (reader["protocolo_id"] != null && !Convert.IsDBNull(reader["protocolo_id"]))
                        {
                            pecaTecnica.Protocolo.Id = Convert.ToInt32(reader["protocolo_id"]);
                        }

                        if (reader["atividade_id"] != null && !Convert.IsDBNull(reader["atividade_id"]))
                        {
                            pecaTecnica.Atividade = Convert.ToInt32(reader["atividade_id"]);
                        }

                        if (reader["elaborador_tipo_id"] != null && !Convert.IsDBNull(reader["elaborador_tipo_id"]))
                        {
                            pecaTecnica.ElaboradorTipo = Convert.ToInt32(reader["elaborador_tipo_id"]);
                        }

                        if (reader["elaborador_id"] != null && !Convert.IsDBNull(reader["elaborador_id"]))
                        {
                            pecaTecnica.Elaborador = Convert.ToInt32(reader["elaborador_id"]);
                        }

                        if (reader["setor_cadastro_id"] != null && !Convert.IsDBNull(reader["setor_cadastro_id"]))
                        {
                            pecaTecnica.SetorCadastro = Convert.ToInt32(reader["setor_cadastro_id"]);
                        }
                    }

                    reader.Close();
                }

                if (pecaTecnica.Id <= 0 || simplificado)
                {
                    return(pecaTecnica);
                }

                #endregion

                #region Responsaveis/Destinatarios

                comando = bancoDeDados.CriarComando(@"select p.pessoa_id destinatario_id, nvl(p.nome, p.razao_social) destinatario_nome_razao 
													from {0}hst_peca_tecnica_dest pr, {0}hst_pessoa p where pr.peca_tecnica_id = :peca_tecnica
													and pr.id_hst = :id_hst and p.tid = pr.destinatario_tid and pr.destinatario_id = p.pessoa_id"                                                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("peca_tecnica", pecaTecnica.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("id_hst", hst, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        Responsavel responsavel = new Responsavel();
                        responsavel.Id        = reader.GetValue <Int32>("destinatario_id");
                        responsavel.NomeRazao = reader.GetValue <String>("destinatario_nome_razao");

                        pecaTecnica.ResponsaveisEmpreendimento.Add(responsavel);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(pecaTecnica);
        }
コード例 #12
0
        internal void Editar(PecaTecnica pecaTecnica, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = null;

                #region Limpar os dados do banco

                comando = bancoDeDados.CriarComando(@"delete from {0}tab_peca_tecnica_dest p where p.peca_tecnica = :peca_tecnica ", EsquemaBanco);

                comando.AdicionarParametroEntrada("peca_tecnica", pecaTecnica.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Dados Principais

                if (pecaTecnica.ElaboradorTipo == (int)eElaboradorTipo.TecnicoIdaf)
                {
                    comando = bancoDeDados.CriarComando(@"update {0}tab_peca_tecnica t set t.protocolo = :protocolo, t.atividade = :atividade,
					t.elaborador_tipo = :elaborador_tipo, t.elaborador_pessoa = null, t.elaborador_tecnico = :elaborador, t.setor_cadastro = :setor_cadastro, t.tid = :tid  where t.id = :id"                    , EsquemaBanco);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"update {0}tab_peca_tecnica t set t.protocolo = :protocolo, t.atividade = :atividade,
					t.elaborador_tipo = :elaborador_tipo, t.elaborador_pessoa = :elaborador, t.elaborador_tecnico = null, t.setor_cadastro = :setor_cadastro, t.tid = :tid  where t.id = :id"                    , EsquemaBanco);
                }



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

                comando.AdicionarParametroEntrada("protocolo", pecaTecnica.Protocolo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", pecaTecnica.Atividade, DbType.Int32);
                comando.AdicionarParametroEntrada("elaborador_tipo", pecaTecnica.ElaboradorTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("elaborador", pecaTecnica.Elaborador, DbType.Int32);
                comando.AdicionarParametroEntrada("setor_cadastro", pecaTecnica.SetorCadastro, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                if (pecaTecnica.ResponsaveisEmpreendimento != null && pecaTecnica.ResponsaveisEmpreendimento.Count > 0)
                {
                    foreach (Responsavel item in pecaTecnica.ResponsaveisEmpreendimento)
                    {
                        comando = bancoDeDados.CriarComando(@"insert into {0}tab_peca_tecnica_dest (id, peca_tecnica, destinatario, tid)
								values ({0}seq_peca_tecnica_dest.nextval, :peca_tecnica, :destinatario, :tid)"                                , EsquemaBanco);

                        comando.AdicionarParametroEntrada("peca_tecnica", pecaTecnica.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("destinatario", item.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);
                    }
                }

                #region Histórico

                Historico.Gerar(pecaTecnica.Id.Value, eHistoricoArtefato.pecatecnica, eHistoricoAcao.atualizar, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }
コード例 #13
0
        public ActionResult SalvarPecaTecnica(PecaTecnica pecaTecnica)
        {
            int pecaTecnicaId = _busPecaTecnica.Salvar(pecaTecnica);

            return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @Id = pecaTecnicaId }));
        }