//================================================================================ // GET GRAFICO //================================================================================ public static GraficoBase GetGrafico(int numero, DateTime validez) { GraficoBase grafico = null; OleDbDataReader lector = null; using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion)) { try { conexion.Open(); OleDbCommand comando = new OleDbCommand(comandoGetGrafico, conexion); comando.Parameters.AddWithValue("@Validez", validez.ToString("yyyy-MM-dd")); comando.Parameters.AddWithValue("@Numero", numero); // Ejecutamos el comando y extraemos el gráfico. lector = comando.ExecuteReader(); if (lector.Read()) { grafico = new GraficoBase(lector); } } catch (Exception ex) { Utils.VerError("BdPijamas.GetGrafico", ex); } finally { lector?.Close(); } } return(grafico); }
/*================================================================================ * GET GRÁFICO *================================================================================*/ public static GraficoBase GetGrafico(int numero, DateTime fecha) { GraficoBase resultado = null; using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion)) { string comandoSQL = "SELECT * " + "FROM (SELECT * " + " FROM Graficos" + " WHERE IdGrupo = (SELECT Id " + " FROM GruposGraficos " + " WHERE Validez = (SELECT Max(Validez) " + " FROM GruposGraficos " + " WHERE Validez <= ?)))" + "WHERE Numero = ?"; // Elementos para la consulta de calendarios y días de calendario. OleDbCommand comando = new OleDbCommand(comandoSQL, conexion); comando.Parameters.AddWithValue("@Validez", fecha.ToString("yyyy-MM-dd")); comando.Parameters.AddWithValue("@IdConductor", numero); OleDbDataReader lector = null; try { conexion.Open(); lector = comando.ExecuteReader(); if (lector.Read()) { resultado = new GraficoBase(lector); } } catch (OleDbException ex) { Utils.VerError("BdGraficos.GetGrafico", ex); } finally { lector.Close(); } } return(resultado); }
//================================================================================ // GET RESUMEN HASTA MES //================================================================================ public static ResumenPijama GetResumenHastaMes(int año, int mes, int idconductor) { // Inicializamos las horas acumuladas. ResumenPijama resultado = new ResumenPijama(); using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion)) { // Establecemos la fecha del día 1 del siguiente mes al indicado. DateTime fecha = new DateTime(año, mes, 1).AddMonths(1); // Establecemos un objeto a usar para los resultados. object objeto = null; try { conexion.Open(); //---------------------------------------------------------------------------------------------------- // HORAS ACUMULADAS //---------------------------------------------------------------------------------------------------- OleDbCommand comando = new OleDbCommand(comandoDiasCalendario, conexion); comando.Parameters.AddWithValue("fecha", fecha.ToString("yyyy-MM-dd")); comando.Parameters.AddWithValue("idconductor", idconductor); OleDbDataReader lector = comando.ExecuteReader(); // Por cada día, sumamos las horas acumuladas. while (lector.Read()) { int d = (lector["Dia"] is DBNull) ? 0 : (Int16)lector["Dia"]; int g = (lector["Grafico"] is DBNull) ? 0 : (Int16)lector["Grafico"]; int v = (lector["GraficoVinculado"] is DBNull) ? 0 : (Int16)lector["GraficoVinculado"]; TimeSpan?acumuladasAlt = lector.ToTimeSpanNulable("AcumuladasAlt"); TimeSpan ej = lector.ToTimeSpan("ExcesoJornada"); if (v != 0 && g == App.Global.PorCentro.Comodin) { g = v; } DateTime f = (lector["Fecha"] is DBNull) ? new DateTime(0) : (DateTime)lector["Fecha"]; if (d > DateTime.DaysInMonth(f.Year, f.Month)) { continue; } DateTime fechadia = new DateTime(f.Year, f.Month, d); OleDbCommand comando2 = new OleDbCommand(comandoAcumuladas, conexion); comando2.Parameters.AddWithValue("validez", fechadia.ToString("yyyy-MM-dd")); comando2.Parameters.AddWithValue("numero", g); OleDbDataReader lector2 = comando2.ExecuteReader(); GraficoBase grafico = null; if (lector2.Read()) { grafico = new GraficoBase(lector2); if (ej != TimeSpan.Zero) { if (grafico != null) { grafico.Final += ej; } } if (acumuladasAlt.HasValue) { grafico.Acumuladas = acumuladasAlt.Value; } resultado.HorasAcumuladas += grafico.Acumuladas; } lector2.Close(); } lector.Close(); //---------------------------------------------------------------------------------------------------- // HORAS REGULADAS //---------------------------------------------------------------------------------------------------- comando = new OleDbCommand(comandoReguladas, conexion); comando.Parameters.AddWithValue("idconductor", idconductor); comando.Parameters.AddWithValue("fecha", fecha.ToString("yyyy-MM-dd")); objeto = comando.ExecuteScalar(); if (objeto == DBNull.Value) { objeto = 0d; } resultado.HorasReguladas = new TimeSpan(Convert.ToInt64(objeto)); //---------------------------------------------------------------------------------------------------- // HORAS COBRADAS //---------------------------------------------------------------------------------------------------- //comando = new OleDbCommand(comandoCobradas, conexion); //comando.Parameters.AddWithValue("idconductor", idconductor); //comando.Parameters.AddWithValue("fecha", fecha.ToString("yyyy-MM-dd")); //objeto = comando.ExecuteScalar(); //if (objeto == DBNull.Value) { // objeto = 0d; //} //resultado.HorasCobradas = new TimeSpan(Convert.ToInt64(objeto)); //---------------------------------------------------------------------------------------------------- // DIAS F6 //---------------------------------------------------------------------------------------------------- comando = new OleDbCommand(comandoDiasF6, conexion); comando.Parameters.AddWithValue("fecha", fecha.ToString("yyyy-MM-dd")); comando.Parameters.AddWithValue("idconductor", idconductor); objeto = comando.ExecuteScalar(); if (objeto == DBNull.Value) { objeto = 0d; } resultado.DiasLibreDisposicionF6 = Convert.ToInt32(objeto); //---------------------------------------------------------------------------------------------------- // DIAS F6DC //---------------------------------------------------------------------------------------------------- comando = new OleDbCommand(comandoDiasF6DC, conexion); comando.Parameters.AddWithValue("fecha", fecha.ToString("yyyy-MM-dd")); comando.Parameters.AddWithValue("idconductor", idconductor); objeto = comando.ExecuteScalar(); if (objeto == DBNull.Value) { objeto = 0d; } resultado.DiasF6DC = Convert.ToInt32(objeto); //---------------------------------------------------------------------------------------------------- // DCS REGULADOS //---------------------------------------------------------------------------------------------------- comando = new OleDbCommand(comandoDCsRegulados, conexion); comando.Parameters.AddWithValue("idconductor", idconductor); comando.Parameters.AddWithValue("fecha", fecha.ToString("yyyy-MM-dd")); objeto = comando.ExecuteScalar(); if (objeto == DBNull.Value) { objeto = 0d; } resultado.DCsRegulados = Convert.ToInt32(objeto); //---------------------------------------------------------------------------------------------------- // DCS DISFRUTADOS //---------------------------------------------------------------------------------------------------- comando = new OleDbCommand(comandoDCsDisfrutados, conexion); comando.Parameters.AddWithValue("fecha", fecha.ToString("yyyy-MM-dd")); comando.Parameters.AddWithValue("idconductor", idconductor); objeto = comando.ExecuteScalar(); if (objeto == DBNull.Value) { objeto = 0d; } resultado.DCsDisfrutados = Convert.ToInt32(objeto); //---------------------------------------------------------------------------------------------------- // DNDS DISFRUTADOS //---------------------------------------------------------------------------------------------------- comando = new OleDbCommand(comandoDNDsDisfrutados, conexion); comando.Parameters.AddWithValue("idconductor", idconductor); comando.Parameters.AddWithValue("fecha", fecha); objeto = comando.ExecuteScalar(); if (objeto == DBNull.Value) { objeto = 0d; } resultado.DNDsDisfrutados = Convert.ToInt32(objeto); //---------------------------------------------------------------------------------------------------- // DÍAS COMITÉ EN DESCANSO //---------------------------------------------------------------------------------------------------- comando = new OleDbCommand(comandoDiasComiteEnJD, conexion); comando.Parameters.AddWithValue("idconductor", idconductor); comando.Parameters.AddWithValue("fecha", fecha); objeto = comando.ExecuteScalar(); if (objeto == DBNull.Value) { objeto = 0d; } resultado.DiasComiteEnDescanso = Convert.ToInt32(objeto); //---------------------------------------------------------------------------------------------------- // DÍAS TRABAJO EN DESCANSO //---------------------------------------------------------------------------------------------------- comando = new OleDbCommand(comandoDiasTrabajoEnJD, conexion); comando.Parameters.AddWithValue("idconductor", idconductor); comando.Parameters.AddWithValue("fecha", fecha); objeto = comando.ExecuteScalar(); if (objeto == DBNull.Value) { objeto = 0d; } resultado.DiasTrabajoEnDescanso = Convert.ToInt32(objeto); //---------------------------------------------------------------------------------------------------- // FINAL //---------------------------------------------------------------------------------------------------- } catch (Exception ex) { Utils.VerError("BdPijamas.GetResumenHastaMes", ex); } } // Devolvemos el resultado return(resultado); }