Пример #1
0
 public void CargarGrupos()
 {
     if (App.Global.CadenaConexion == null)
     {
         ListaGrupos.Clear();
         return;
     }
     ListaGrupos = BdGruposGraficos.getGrupos();
 }
Пример #2
0
 public void GuardarGrupos()
 {
     try {
         HayCambios = false;
         if (ListaGrupos != null && ListaGrupos.Count > 0)
         {
             BdGruposGraficos.GuardarGrupos(ListaGrupos.Where(gg => gg.Nuevo || gg.Modificado));
         }
     } catch (Exception ex) {
         Mensajes.VerError("GraficosViewModel.GuardarGrupos", ex);
         HayCambios = true;
     } finally {
     }
 }
Пример #3
0
        // ====================================================================================================


        // ====================================================================================================
        #region CONSTRUCTOR
        // ====================================================================================================
        public TableroGraficosViewModel(IMensajes servicioMensajes, InformesServicio servicioInformes)
        {
            this.mensajes = servicioMensajes;
            this.informes = servicioInformes;
            // Creamos el formato de las etiquetas de los totales.
            FormatoTotales = valor => {
                decimal porcentaje = TotalGraficos > 0 ? (decimal)Math.Round(valor * 100d / TotalGraficos, 2) : 0;
                return($"{valor}\n {porcentaje:0.00} %".Replace(".", ","));
            };

            // Cargamos los datos de las estadísticas.
            GruposArrasate            = BdGruposGraficos.getGrupos(new OleDbConnection(App.Global.GetCadenaConexion(Centros.Arrasate))).ToList();
            GruposBilbao              = BdGruposGraficos.getGrupos(new OleDbConnection(App.Global.GetCadenaConexion(Centros.Bilbao))).ToList();
            GruposDonosti             = BdGruposGraficos.getGrupos(new OleDbConnection(App.Global.GetCadenaConexion(Centros.Donosti))).ToList();
            GruposVitoria             = BdGruposGraficos.getGrupos(new OleDbConnection(App.Global.GetCadenaConexion(Centros.Vitoria))).ToList();
            GrupoSeleccionadoArrasate = GruposArrasate.FirstOrDefault();
            GrupoSeleccionadoBilbao   = GruposBilbao.FirstOrDefault();
            GrupoSeleccionadoDonosti  = GruposDonosti.FirstOrDefault();
            GrupoSeleccionadoVitoria  = GruposVitoria.FirstOrDefault();
        }
Пример #4
0
        private void CrearGrupoDeWord()
        {
            // Si el archivo no existe, salimos.
            if (!File.Exists(ArchivoWord))
            {
                return;
            }

            // Creamos la aplicación de Word.
            Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document    wordDoc = null;
            wordApp.Visible = false;

            try {
                // Abrimos el documento de word.
                wordDoc = wordApp.Documents.Open(ArchivoWord);

                StringBuilder sb = new StringBuilder();

                foreach (Microsoft.Office.Interop.Word.Paragraph parrafo in wordDoc.Paragraphs)
                {
                    string t = parrafo.Range.Text + "\n";
                    //t.Replace("\r", "\n");
                    t = t.Replace("Balorazioa", "Final\nBalorazioa");
                    t = t.Replace("0h", "0");
                    t = t.Replace("5h", "5");
                    sb.Append(t);
                }
                string[] todo = sb.ToString().Split('\n');


                // Creamos el grupo nuevo
                if (String.IsNullOrEmpty(Notas.Trim()))
                {
                    Notas = FechaActual.ToString("dd-MM-yyyy");
                }
                int idgruponuevo = BdGruposGraficos.NuevoGrupo(FechaActual, Notas);
                // Definimos las variables a usar
                bool              EnUnGrafico        = false;
                Grafico           grafico            = new Grafico();
                ValoracionGrafico valoracionanterior = new ValoracionGrafico();
                bool              IniciaGrafico      = false;
                bool              SalirDelBucle      = false;

                // Recorremos los párrafos del documento.
                foreach (string parrafo in todo)
                {
                    ValoracionGrafico valoracion        = new ValoracionGrafico();
                    string            texto             = GestionGraficos.LimpiarTexto(parrafo);
                    GestionGraficos.TipoValoracion tipo = GestionGraficos.ParseaTexto(texto, ref valoracion);

                    switch (tipo)
                    {
                    case GestionGraficos.TipoValoracion.InicioGrafico:
                        if (EnUnGrafico)
                        {
                            // Gestionamos el error
                            if (VerErrorGrafico(grafico.Numero, parrafo, texto))
                            {
                                grafico         = new Grafico();
                                grafico.IdGrupo = idgruponuevo;
                                grafico.Numero  = (int)valoracion.Linea;
                                IniciaGrafico   = true;
                                EnUnGrafico     = true;
                                continue;
                            }
                            else
                            {
                                SalirDelBucle = true;
                            }
                        }
                        else
                        {
                            grafico         = new Grafico();
                            grafico.IdGrupo = idgruponuevo;
                            grafico.Numero  = (int)valoracion.Linea;
                            if (grafico.Numero % 2 == 0)
                            {
                                grafico.Turno = 2;
                            }
                            IniciaGrafico = true;
                            EnUnGrafico   = true;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.FinalGrafico:
                        if (!EnUnGrafico)
                        {
                            // Gestionamos el error
                            if (VerErrorGrafico(grafico.Numero, parrafo, texto))
                            {
                                EnUnGrafico   = false;
                                IniciaGrafico = false;
                                continue;
                            }
                            else
                            {
                                SalirDelBucle = true;
                            }
                        }
                        else
                        {
                            grafico.Final      = valoracionanterior.Inicio;
                            grafico.Valoracion = valoracion.Tiempo;
                            grafico.Recalcular();
                            // Inferimos el día de la semana a la que pertenece.
                            if (grafico.Numero >= App.Global.PorCentro.LunDel && grafico.Numero <= App.Global.PorCentro.LunAl)
                            {
                                grafico.DiaSemana = "L";
                            }
                            if (grafico.Numero >= App.Global.PorCentro.VieDel && grafico.Numero <= App.Global.PorCentro.VieAl)
                            {
                                grafico.DiaSemana = "V";
                            }
                            if (grafico.Numero >= App.Global.PorCentro.SabDel && grafico.Numero <= App.Global.PorCentro.SabAl)
                            {
                                grafico.DiaSemana = "S";
                            }
                            if (grafico.Numero >= App.Global.PorCentro.DomDel && grafico.Numero <= App.Global.PorCentro.DomAl)
                            {
                                grafico.DiaSemana = "F";
                            }
                            BdGraficos.InsertarGrafico(grafico);
                            IniciaGrafico = false;
                            EnUnGrafico   = false;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.Completo:
                    case GestionGraficos.TipoValoracion.Parcial:
                    case GestionGraficos.TipoValoracion.ParcialCodigo:
                    case GestionGraficos.TipoValoracion.ParcialLinea:
                    case GestionGraficos.TipoValoracion.ParcialVacio:
                        if (EnUnGrafico)
                        {
                            if (IniciaGrafico)
                            {
                                grafico.Inicio = valoracion.Inicio;
                                IniciaGrafico  = false;
                            }
                            else
                            {
                                valoracionanterior.Final = valoracion.Inicio;
                            }
                            grafico.ListaValoraciones.Add(valoracion);
                            valoracionanterior = valoracion;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.Informacion:
                        if (EnUnGrafico)
                        {
                            if (!IniciaGrafico)
                            {
                                valoracion.Inicio = valoracionanterior.Inicio;
                            }
                            grafico.ListaValoraciones.Add(valoracion);
                        }
                        break;
                    }
                    if (SalirDelBucle)
                    {
                        break;
                    }
                }
            } catch (Exception ex) {
                mensajes.VerError("VentanaNuevoGrupoVM.CrearGrupoDeWord", ex);
                return;
            } finally {
                if (wordDoc != null)
                {
                    wordDoc.Close(false);
                }
                if (wordApp != null)
                {
                    wordApp.Quit(false);
                }
            }
        }
Пример #5
0
        // ====================================================================================================
        #region  MÉTODOS AUXILIARES
        // ====================================================================================================

        private void CrearGrupoDeWord2()
        {
            // Si el archivo no existe, salimos.
            if (!File.Exists(ArchivoWord))
            {
                return;
            }

            // Creamos la aplicación de Word.
            Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document    wordDoc = null;
            wordApp.Visible = false;

            try {
                // Abrimos el documento de word.
                wordDoc = wordApp.Documents.Open(ArchivoWord);

                // Añadimos un retorno de carro delante de las valoraciones.
                wordDoc.Content.Find.Execute("Balorazioa", false, true, false, false, false, true, 1, false, "\rBalorazioa", 2, false, false, false, false);

                // Creamos el grupo nuevo
                if (String.IsNullOrEmpty(Notas.Trim()))
                {
                    Notas = FechaActual.ToString("dd-MM-yyyy");
                }
                int idgruponuevo = BdGruposGraficos.NuevoGrupo(FechaActual, Notas);
                // Definimos las variables a usar
                bool              EnUnGrafico        = false;
                Grafico           grafico            = new Grafico();
                ValoracionGrafico valoracionanterior = new ValoracionGrafico();
                bool              IniciaGrafico      = false;
                bool              SalirDelBucle      = false;

                // Recorremos los párrafos del documento.
                foreach (Microsoft.Office.Interop.Word.Paragraph parrafo in wordDoc.Paragraphs)
                {
                    ValoracionGrafico valoracion        = new ValoracionGrafico();
                    string            texto             = GestionGraficos.LimpiarTexto(parrafo.Range.Text);
                    GestionGraficos.TipoValoracion tipo = GestionGraficos.ParseaTexto(texto, ref valoracion);

                    switch (tipo)
                    {
                    case GestionGraficos.TipoValoracion.InicioGrafico:
                        if (EnUnGrafico)
                        {
                            // Gestionamos el error
                            if (VerErrorGrafico(grafico.Numero, parrafo.Range.Text, texto))
                            {
                                grafico         = new Grafico();
                                grafico.IdGrupo = idgruponuevo;
                                grafico.Numero  = (int)valoracion.Linea;
                                IniciaGrafico   = true;
                                EnUnGrafico     = true;
                                continue;
                            }
                            else
                            {
                                SalirDelBucle = true;
                            }
                        }
                        else
                        {
                            grafico         = new Grafico();
                            grafico.IdGrupo = idgruponuevo;
                            grafico.Numero  = (int)valoracion.Linea;
                            if (grafico.Numero % 2 == 0)
                            {
                                grafico.Turno = 2;
                            }
                            IniciaGrafico = true;
                            EnUnGrafico   = true;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.FinalGrafico:
                        if (!EnUnGrafico)
                        {
                            // Gestionamos el error
                            if (VerErrorGrafico(grafico.Numero, parrafo.Range.Text, texto))
                            {
                                EnUnGrafico   = false;
                                IniciaGrafico = false;
                                continue;
                            }
                            else
                            {
                                SalirDelBucle = true;
                            }
                        }
                        else
                        {
                            grafico.Final      = valoracionanterior.Inicio;
                            grafico.Valoracion = valoracion.Tiempo;
                            grafico.Recalcular();
                            BdGraficos.InsertarGrafico(grafico);
                            IniciaGrafico = false;
                            EnUnGrafico   = false;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.Completo:
                    case GestionGraficos.TipoValoracion.Parcial:
                    case GestionGraficos.TipoValoracion.ParcialCodigo:
                    case GestionGraficos.TipoValoracion.ParcialLinea:
                    case GestionGraficos.TipoValoracion.ParcialVacio:
                        if (EnUnGrafico)
                        {
                            if (IniciaGrafico)
                            {
                                grafico.Inicio = valoracion.Inicio;
                                IniciaGrafico  = false;
                            }
                            else
                            {
                                valoracionanterior.Final = valoracion.Inicio;
                            }
                            grafico.ListaValoraciones.Add(valoracion);
                            valoracionanterior = valoracion;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.Informacion:
                        if (EnUnGrafico)
                        {
                            if (!IniciaGrafico)
                            {
                                valoracion.Inicio = valoracionanterior.Inicio;
                            }
                            grafico.ListaValoraciones.Add(valoracion);
                        }
                        break;
                    }
                    if (SalirDelBucle)
                    {
                        break;
                    }
                }
            } catch (Exception ex) {
                mensajes.VerError("VentanaNuevoGrupoVM.CrearGrupoDeWord", ex);
                return;
            } finally {
                if (wordDoc != null)
                {
                    wordDoc.Close(false);
                }
                if (wordApp != null)
                {
                    wordApp.Quit(false);
                }
            }
        }
Пример #6
0
        // 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);
            }
        }