/*================================================================================ * GET CALENDARIOS *================================================================================*/ public static ObservableCollection <Calendario> GetCalendarios(int año, int mes) { // Creamos la lista y el comando que extrae los gráficos. ObservableCollection <Calendario> lista = new ObservableCollection <Calendario>(); using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion)) { // Creamos el comando SQL. //string comandoSQL = "SELECT Calendarios.*, Conductores.Indefinido " + // "FROM Calendarios LEFT JOIN Conductores ON Calendarios.IdConductor = Conductores.Id " + // "WHERE Year(Calendarios.Fecha) = ? AND Month(Calendarios.Fecha) = ? " + // "ORDER BY Calendarios.IdConductor;"; string comandoSQL = "GetCalendarios"; // Elementos para la consulta de calendarios y días de calendario. OleDbCommand comando = new OleDbCommand(comandoSQL, conexion); comando.CommandType = System.Data.CommandType.StoredProcedure; comando.Parameters.AddWithValue("año", año); comando.Parameters.AddWithValue("mes", mes); OleDbDataReader lector = null; try { // Extraemos los calendarios. conexion.Open(); lector = comando.ExecuteReader(); // Por cada calendario extraido... while (lector.Read()) { // Extraemos el calendario y sus días Calendario calendario = new Calendario(lector); calendario.ListaDias = BdDiasCalendario.GetDiasCalendario(calendario.Id); // Extraemos los datos del conductor. calendario.ConductorIndefinido = lector.ToBool("Indefinido"); // Añadimos el calendario a la lista. lista.Add(calendario); calendario.Nuevo = false; calendario.Modificado = false; if (calendario.HayDiasNuevos) { calendario.Modificado = true; } } } catch (Exception ex) { Utils.VerError("BdCalendarios.GetCalendarios", ex); } finally { lector.Close(); } } // Devolvemos la lista. return(lista); }
/*================================================================================ * GET CALENDARIO CONDUCTOR *================================================================================*/ public static Calendario GetCalendarioConductor(int año, int mes, int matricula) { // Creamos la lista y el comando que extrae los gráficos. Calendario resultado = null; using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion)) { // Creamos el comando SQL. string comandoSQL = "SELECT Calendarios.*, Conductores.Indefinido " + "FROM Calendarios LEFT JOIN Conductores ON Calendarios.IdConductor = Conductores.Id " + "WHERE Year(Calendarios.Fecha) = ? AND Month(Calendarios.Fecha) = ? AND Calendarios.IdConductor = ? ;"; // Elementos para la consulta de calendarios y días de calendario. OleDbCommand comando = new OleDbCommand(comandoSQL, conexion); comando.Parameters.AddWithValue("año", año); comando.Parameters.AddWithValue("mes", mes); comando.Parameters.AddWithValue("matricula", matricula); OleDbDataReader lector = null; try { // Extraemos los calendarios. conexion.Open(); lector = comando.ExecuteReader(); // Por cada calendario extraido... if (lector.Read()) { // Extraemos el calendario y sus días resultado = new Calendario(lector); resultado.ListaDias = BdDiasCalendario.GetDiasCalendario(resultado.Id); // Extraemos los datos del conductor. resultado.ConductorIndefinido = lector.ToBool("Indefinido"); resultado.Nuevo = false; resultado.Modificado = false; } } catch (Exception ex) { Utils.VerError("BdCalendarios.GetCalendarioConductor", ex); } finally { lector.Close(); } } // Devolvemos la lista. return(resultado); }