public void GuardarConductores() { try { App.Global.CalendariosVM.AñadirConductoresDesconocidos(); HayCambios = false; if (_listaborrados.Count > 0) { BdConductores.BorrarConductores(_listaborrados); _listaborrados.Clear(); } if (_regulacionesborradas.Count > 0) { BdRegulacionConductor.BorrarRegulaciones(_regulacionesborradas); _regulacionesborradas.Clear(); } if (ListaConductores != null && ListaConductores.Count > 0) { BdConductores.GuardarConductores(ListaConductores.Where(c => c.Nuevo || c.Modificado)); } // Si hay conductores con el id cero, avisamos. if (ListaConductores.Count(item => item.Id == 0) > 0) { mensajes.VerMensaje("Hay conductores no válidos que no han sido guardados.", "ATENCIÓN"); } } catch (Exception ex) { mensajes.VerError("ConductoresViewModel.GuardarConductores", ex); HayCambios = true; } }
// ==================================================================================================== #region CONSTRUCTOR // ==================================================================================================== public HojaPijama(Calendario calendario, IMensajes _mensajes) { mensajes = _mensajes; CalendarioPijama = calendario; //Obsoleto. No se utiliza. // Definimos la fecha. Fecha = calendario.Fecha; try { // Extraemos el trabajador. //Trabajador = BdConductores.GetConductor(calendario.IdConductor); Trabajador = App.Global.ConductoresVM.GetConductor(calendario.IdConductor); if (Trabajador != null) { // Extraemos la lista de los días del calendario. ListaDias = BdPijamas.GetDiasPijama(Fecha, calendario.ListaDias, Trabajador.ReduccionJornada); // Extraemos la lista de festivos del mes del calendario. //ListaFestivos = BdFestivos.GetFestivosPorMes(Fecha.Year, Fecha.Month).ToList(); // Extraemos las horas hasta el mes actual HastaMesActual = new HorasHojaPijamaHastaMes(Fecha.Year, Fecha.Month, Trabajador.Id); // Extraemos las horas HorasCobradas = BdCalendarios.GetHorasCobradasMes(Fecha.Year, Fecha.Month, Trabajador.Id); HorasCobradas = new TimeSpan(HorasCobradas.Ticks * -1); HorasCobradasAño = BdCalendarios.GetHorasCobradasAño(Fecha.Year, Fecha.Month, Trabajador.Id); HorasCobradasAño = new TimeSpan(HorasCobradasAño.Ticks * -1); HorasReguladasAño = BdCalendarios.GetHorasReguladasAño(Fecha.Year, Trabajador.Id); HorasReguladasAño = new TimeSpan(HorasReguladasAño.Ticks * -1); // Extraemos los días DC y DND DiasDCAñoActual = BdCalendarios.GetDCDisfrutadosAño(Trabajador.Id, Fecha.Year, Fecha.Month); DiasDNDAñoActual = BdCalendarios.GetDNDDisfrutadosAño(Trabajador.Id, Fecha.Year, Fecha.Month); DCsReguladosAñoActual = BdCalendarios.GetDescansosReguladosAño(Fecha.Year, Trabajador.Id); // Extramos las horas acumuladas del año anterior. DateTime fechaanterior = Fecha.Month == 12 ? new DateTime(Fecha.Year, 11, 30) : new DateTime(Fecha.Year - 1, 11, 30); HastaAñoAnterior = new HorasHojaPijamaHastaMes(fechaanterior.Year, fechaanterior.Month, Trabajador.Id); //HastaAñoAnterior.ExcesoJornadaCobrada -= CalendarioPijama.ExcesoJornadaCobrada;//TODO: Comprobar // Establecemos el tooltip de Otros Pluses string tooltip = ""; if (PlusNocturnidad != 0) { tooltip += $"Plus Nocturnidad = {PlusNocturnidad:0.00} €\n"; } if (PlusViaje != 0) { tooltip += $"Plus Viaje = {PlusViaje:0.00} €\n"; } if (PlusNavidad != 0) { tooltip += $"Plus Navidad = {PlusNavidad:0.00} €\n"; } ToolTipOtrosPluses = tooltip; } } catch (Exception ex) { mensajes.VerError("HojaPijama.Constructor", ex); } }
// ==================================================================================================== #region MÉTODOS PÚBLICOS // ==================================================================================================== public void CargarLineas() { if (App.Global.CadenaConexionLineas == null) { _listalineas.Clear(); return; } try { ListaLineas = BdLineas.GetLineas(); foreach (Linea l in ListaLineas) { l.PropertyChanged += PropiedadCambiadaEventHandler; } } catch (Exception ex) { mensajes.VerError("LineasViewModel.CargarLineas", ex); } PropiedadCambiada(nameof(Detalle)); }
public void GuardarGraficos() { try { HayCambios = false; if (ListaGraficos != null && ListaGraficos.Count > 0) { BdGraficos.GuardarGraficos(ListaGraficos.Where(gg => gg.Nuevo || gg.Modificado)); } if (_listaborrados.Count > 0) { BdGraficos.BorrarGraficos(_listaborrados); _listaborrados.Clear(); } if (_valoracionesborradas.Count > 0) { BdValoracionesGraficos.BorrarValoraciones(_valoracionesborradas); _valoracionesborradas.Clear(); } } catch (Exception ex) { Mensajes.VerError("GraficosViewModel.GuardarGraficos", ex); HayCambios = true; } }
// Ejecución del comando private void ComandoSqlNonQuery() { string lineSeparator = ((char)0x2028).ToString(); string paragraphSeparator = ((char)0x2029).ToString(); string[] comandos; string texto = CampoTexto.Replace("\n", string.Empty) .Replace("\r", string.Empty) .Replace("\r\n", string.Empty) .Replace(lineSeparator, string.Empty) .Replace(paragraphSeparator, string.Empty); //if (texto.Contains(";")) { comandos = texto.Split(';'); //} else { // comandos = new string[] { texto }; //} CampoResultado = string.Empty; using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion)) { using (OleDbCommand comando = conexion.CreateCommand()) { conexion.Open(); try { foreach (string cmd in comandos) { if (string.IsNullOrWhiteSpace(cmd)) { continue; } //comando.CommandText = cmd.Replace("\n",string.Empty) // .Replace("\r", string.Empty) // .Replace("\r\n", string.Empty) // .Replace(lineSeparator, string.Empty) // .Replace(paragraphSeparator, string.Empty); comando.CommandText = cmd; int resultado = comando.ExecuteNonQuery(); CampoResultado += $"Ejecutando ({DateTime.Now}):\n"; CampoResultado += $" {cmd}\n"; CampoResultado += $" {resultado} registros afectados.\n\n"; } } catch (Exception ex) { Mensajes.VerError("Comando SQL Non Query", ex); } } } CampoResultado += $"Consulta Terminada.\n\n"; }
// ==================================================================================================== // ==================================================================================================== #region MÉTODOS PRIVADOS // ==================================================================================================== private async void CargarDatos() { // Si no existe el conductor activo, salimos. if (ConductorActual == null) { return; } // Iniciamos la recepción de los pijamas del conductor. try { // Desactivamos los botones. BotonesActivos = false; // Iniciamos la barra de progreso. App.Global.IniciarProgreso("Recopilando datos..."); // Solicitamos los pijamas pijamasAño = await GetPijamas(AñoActual, ConductorActual.Id); //// Cargamos los calendarios del año del conductor. //List<Calendario> listaCalendarios = BdCalendarios.GetCalendariosConductor(AñoActual, ConductorActual.Id); //// Inicializamos la lista de pijamas del año. //pijamasAño = new Dictionary<int, Pijama.HojaPijama>(); //// Iniciamos el valor para la barra de progreso. //double num = 1; //// Cargamos las hojas pijama disponibles. //foreach (Calendario cal in listaCalendarios) //{ // // Incrementamos la barra de progreso. // App.Global.ValorBarraProgreso = num / listaCalendarios.Count * 100; // // Cargamos un pijama nuevo. // Pijama.HojaPijama hoja = null; // await Task.Run(() => { hoja = new Pijama.HojaPijama(cal, mensajes); }); // // Añadimos el pijama a la lista. // pijamasAño.Add(cal.Fecha.Month, hoja); // // Incrementamos el valor de la barra de progreso. // num++; //} // Llenar los datos con los resultados de los pijamas. LlenarListaResumen(AñoActual); } catch (Exception ex) { mensajes.VerError("ResumenAnualViewModel.CargarDatos", ex); } finally { BotonesActivos = true; App.Global.FinalizarProgreso(); } }
// ==================================================================================================== #region MÉTODOS // ==================================================================================================== public void RefrescarValores() { if (IdConductor <= 0) { return; } try { // Cargamos las horas. TimeSpan acumuladas = BdCalendarios.GetAcumuladasHastaMes(Año, 11, IdConductor); TimeSpan reguladas = BdCalendarios.GetHorasReguladasHastaMes(Año, 11, IdConductor); HorasDisponibles = HorasConductor + acumuladas + reguladas; } catch (Exception ex) { mensajes.VerError("VentanaCobrarHorasVM.RefrescarValores", ex); } }
public void GuardarCalendarios() { if (AñadirConductoresDesconocidos()) { App.Global.ConductoresVM.GuardarConductores(); } try { HayCambios = false; if (ListaCalendarios != null && ListaCalendarios.Count > 0) { BdCalendarios.GuardarCalendarios(ListaCalendarios.Where(c => c.Modificado || c.Nuevo)); } if (_listaborrados.Count > 0) { BdCalendarios.BorrarCalendarios(_listaborrados); _listaborrados.Clear(); } } catch (Exception ex) { Mensajes.VerError("CalendariosViewModel.GuardarCalendarios", ex); HayCambios = true; } }
// Ejecución del comando private void Aceptar(object parametro) { if (parametro == null) { return; } Window ventana = (Window)parametro; try { // Si la fecha ya existe, mostramos mensaje if (BdGruposGraficos.ExisteGrupo(FechaActual)) { mensajes.VerMensaje("Ya existe un grupo con la fecha elegida.", "ERROR"); return; } if (NuevoMarcado) { if (String.IsNullOrEmpty(Notas.Trim())) { Notas = FechaActual.ToString("dd-MM-yyyy"); } BdGruposGraficos.NuevoGrupo(FechaActual, Notas); ventana.DialogResult = true; ventana.Close(); } if (RepetirMarcado) //TODO: Sustituir por grupo seleccionado. { ObservableCollection <Grafico> graficos = BdGraficos.getGraficosGrupoPorFecha(GrupoSeleccionado.Validez); ObservableCollection <ValoracionGrafico> valoraciones = new ObservableCollection <ValoracionGrafico>(); if (String.IsNullOrEmpty(Notas.Trim())) { Notas = FechaActual.ToString("dd-MM-yyyy"); } int idgruponuevo = BdGruposGraficos.NuevoGrupo(FechaActual, Notas); int idgraficonuevo = -1; foreach (Grafico grafico in graficos) { grafico.IdGrupo = idgruponuevo; idgraficonuevo = BdGraficos.InsertarGrafico(grafico); valoraciones = BdValoracionesGraficos.getValoraciones(grafico.Id); foreach (ValoracionGrafico valoracion in valoraciones) { valoracion.IdGrafico = idgraficonuevo; BdValoracionesGraficos.InsertarValoracion(valoracion); } } // Cerramos la ventana enviando True. ventana.DialogResult = true; ventana.Close(); } if (WordMarcado) { if (String.IsNullOrEmpty(ArchivoWord)) { mensajes.VerMensaje("No ha seleccionado ningún archivo.", "ERROR"); return; } CrearGrupoDeWord(); // Cerramos la ventana enviando True. ventana.DialogResult = true; ventana.Close(); } } catch (Exception ex) { mensajes.VerError("VentanaNuevoGrupoVM.Aceptar", ex); } }