public ActionResult PodeExcluir(DiaHoraVistoria DiaHora)
        {
            bool verificaPode = _localVistoriaBus.VerificaPodeExcluir(DiaHora);

            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros
            }, JsonRequestBehavior.AllowGet));
        }
        public bool VerificaPodeExcluir(DiaHoraVistoria DiaHoraVistoria, bool validarFuturo = false)
        {
            int QtdHorariosAssociados = _da.PossuiHorarioAssociado(DiaHoraVistoria.Id, validarFuturo);

            //QtdHorariosAssociados = 1;
            if (QtdHorariosAssociados > 0)
            {
                Validacao.Add(Mensagem.LocalVistoria.PossuiHorarioAssociado(DiaHoraVistoria.DiaSemanaTexto, DiaHoraVistoria.HoraInicio, DiaHoraVistoria.HoraFim));
            }

            return(Validacao.EhValido);
        }
        internal LocalVistoria Obter(int idsetor, BancoDeDados banco)
        {
            LocalVistoria local = new LocalVistoria();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select lv.id, lv.setor, lv.dia_semana dia_semana_id, dia.texto dia_semana_texto, lv.hora_inicio, lv.hora_fim, lv.situacao, lv.tid 
                                                              from {0}cnf_local_vistoria lv, {0}lov_dia_semana dia where dia.id=lv.dia_semana and lv.setor = :id", EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    DiaHoraVistoria diahora = null;

                    while (reader.Read())
                    {
                        diahora = new DiaHoraVistoria();

                        diahora.Id             = reader.GetValue <int>("id");
                        diahora.DiaSemanaId    = reader.GetValue <int>("dia_semana_id");
                        diahora.DiaSemanaTexto = reader.GetValue <string>("dia_semana_texto");
                        diahora.HoraInicio     = reader.GetValue <string>("hora_inicio");
                        diahora.HoraFim        = reader.GetValue <string>("hora_fim");
                        diahora.Situacao       = reader.GetValue <int>("situacao");
                        diahora.Tid            = reader.GetValue <string>("tid");
                        local.DiasHorasVistoria.Add(diahora);
                    }

                    reader.Close();
                }
            }

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select s.id, s.nome from {0}tab_setor s where s.id=:id", EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        local.SetorID    = reader.GetValue <int>("id");
                        local.SetorTexto = reader.GetValue <string>("nome");
                    }

                    reader.Close();
                }
            }

            return(local);
        }
        internal void Editar(DiaHoraVistoria local, int idsetor, BancoDeDados banco)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = comando = bancoDeDados.CriarComando(@"update {0}CNF_LOCAL_VISTORIA set DIA_SEMANA = :dia_semana, HORA_INICIO = :hora_inicio , HORA_FIM = :hora_fim,
				SITUACAO = :situacao, tid = :tid where id = :id"                , EsquemaBanco);
                comando.AdicionarParametroEntrada("dia_semana", local.DiaSemanaId, DbType.String);
                comando.AdicionarParametroEntrada("hora_inicio", local.HoraInicio, DbType.String);
                comando.AdicionarParametroEntrada("hora_fim", local.HoraFim, DbType.String);
                comando.AdicionarParametroEntrada("situacao", 1 /*local.Situacao*/, DbType.String);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("id", local.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                local.Tid = GerenciadorTransacao.ObterIDAtual();

                Historico.Gerar(local.Id, eHistoricoArtefato.localvistoria, eHistoricoAcao.atualizar, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
        internal void Criar(DiaHoraVistoria local, int idsetor, BancoDeDados banco)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"insert into {0}CNF_LOCAL_VISTORIA (ID, SETOR, DIA_SEMANA, HORA_INICIO, HORA_FIM, SITUACAO, TID) 
                                                                    values ({0}SEQ_CNF_LOCAL_VISTORIA.nextval, :setor, :dia_semana, :hora_inicio, :hora_fim, :situacao, :tid) 
                                                              returning id into :id", EsquemaBanco);
                comando.AdicionarParametroEntrada("setor", idsetor, DbType.String);
                comando.AdicionarParametroEntrada("dia_semana", local.DiaSemanaId, DbType.String);
                comando.AdicionarParametroEntrada("hora_inicio", local.HoraInicio, DbType.String);
                comando.AdicionarParametroEntrada("hora_fim", local.HoraFim, DbType.String);
                comando.AdicionarParametroEntrada("situacao", 1 /*local.Situacao*/, DbType.String);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);
                local.Id  = comando.ObterValorParametro <int>("id");
                local.Tid = GerenciadorTransacao.ObterIDAtual();

                Historico.Gerar(local.Id, eHistoricoArtefato.localvistoria, eHistoricoAcao.criar, bancoDeDados);

                bancoDeDados.Commit();
            }
        }