Exemple #1
0
 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;
     }
 }
Exemple #2
0
        public void CrearConductorDesconocido(int idConductor)
        {
            if (ExisteConductor(idConductor))
            {
                return;
            }
            Conductor desconocido = new Conductor {
                Id = idConductor, Nombre = "Desconocido", Notas = "Conductor insertado automáticamente por el sistema."
            };

            ListaConductores.Add(desconocido);
        }
Exemple #3
0
 // ====================================================================================================
 #region MÉTODOS PÚBLICOS
 // ====================================================================================================
 public void CargarConductores()
 {
     if (App.Global.CadenaConexion == null)
     {
         ListaConductores.Clear();
         return;
     }
     ListaConductores = new NotifyCollection <Conductor>(BdConductores.GetConductores());
     //foreach (Conductor c in ListaConductores) {
     //	c.PropertyChanged += ConductorPropertyChangedHandler;
     //}
     PropiedadCambiada(nameof(Detalle));
 }
        internal async void Nuevo()
        {
            try
            {
                ConductorDTO c = await _webApiClient.CreateConductor(ConductorSelected);

                //Si el conductor devuelto !=null es porque se creo y lo añadimos a la collection observable
                if (c != null)
                {
                    ListaConductores.Add(c);
                }
                else
                {
                    MessageBox.Show("Conductor existente");
                }
            }
            catch (WebApiException e)
            {
                MessageBox.Show(e.Message);
            }
        }
Exemple #5
0
 private void DeshacerBorrar()
 {
     if (_listaborrados == null)
     {
         return;
     }
     foreach (Conductor conductor in _listaborrados)
     {
         if (conductor.Nuevo)
         {
             ListaConductores.Add(conductor);
         }
         else
         {
             ListaConductores.Add(conductor);
             conductor.Nuevo = false;
         }
         HayCambios = true;
         App.Global.CalendariosVM.DeshacerBorrarPorConductor(conductor.Id);
     }
     _listaborrados.Clear();
 }
        private void Execute_AgregarCommand()
        {
            RegistrarConductorView registrarConductorView = new RegistrarConductorView();

            registrarConductorView.ShowDialog();

            if (registrarConductorView.isRegistered)
            {
                var newConductor = registrarConductorView.GetConductor();

                try
                {
                    //Primero se lo paso a la capa negocio para que lo registre, si lo registra, lo pongo en la capa Presentacion
                    if (TransporteDR.ConductorBO.Registrar(newConductor))
                    {
                        LoadData();
                        CurrentConductor = ListaConductores.FirstOrDefault(x => x.Dni == newConductor.Dni);


                        MessageBox.Show($"{newConductor.Dni} Registrado con exito");
                    }
                    else
                    {
                        MessageBox.Show("Algo ha ocurrido con el proceso de registro, por favor intentar de nuevo o reiniciar el computador.\nSi el problema persiste, contactar con el encargado del Sistema");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    if (!(ex.InnerException is null))
                    {
                        MessageBox.Show(ex.InnerException.Message);
                    }
                }
            }
        }
Exemple #7
0
        // Ejecución del comando
        private void BorrarConductor(object parametro)
        {
            DataGrid tabla = parametro as DataGrid;

            if (tabla == null || tabla.CurrentCell == null)
            {
                return;
            }
            List <Conductor> lista = new List <Conductor>();
            DataGridCellInfo celda = tabla.CurrentCell;

            if (!(celda.Item is Conductor conductor))
            {
                return;
            }
            if (mensajes.VerMensaje($"Vas a borrar al conductor:\n\n{conductor.Id:000}: {conductor.Apellidos}\n\n" +
                                    $"Esto hará que se borren todos sus calendarios.\n\n" +
                                    $"¿Deseas continuar?", "ATENCIÓN", true) == false)
            {
                return;
            }
            if (celda.Column.Header.ToString() == "Número" && celda.Item.GetType().Name == "Conductor")
            {
                lista.Add(conductor);
            }

            foreach (Conductor c in lista)
            {
                _listaborrados.Add(c);
                ListaConductores.Remove(c);
                HayCambios = true;
            }
            lista.Clear();
            App.Global.CalendariosVM.BorrarCalendariosPorConductor(conductor.Id);
            //TODO: Esta última igual se elimina y se deja que sea el propio sistema el que se encargue de eliminar los calendarios.
        }
Exemple #8
0
        public void InsertarRegulacion(RegulacionConductor regulacion)
        {
            Conductor conductor = ListaConductores.First(c => c.Id == regulacion.IdConductor);

            conductor.ListaRegulaciones.Add(regulacion);
        }
Exemple #9
0
 public bool ExisteConductor(int idConductor)
 {
     return(ListaConductores.Any(c => c.Id == idConductor));
 }
Exemple #10
0
 public Conductor GetConductor(int idconductor)
 {
     return(ListaConductores.FirstOrDefault(c => c.Id == idconductor));
 }
Exemple #11
0
        private void PegarConductores(object parametro)
        {
            // Convertimos el parámetro pasado.
            DataGrid grid = parametro as DataGrid;

            if (grid == null || grid.CurrentCell == null)
            {
                return;
            }
            // Parseamos los datos del portapapeles y definimos las variables.
            List <string[]> portapapeles = Utils.parseClipboard();
            int             columnagrid;
            int             filagrid;
            bool            esnuevo;

            // Si no hay datos, salimos.
            if (portapapeles == null)
            {
                return;
            }
            // Establecemos la columna donde se empieza a pegar.
            columnagrid = grid.Columns.IndexOf(grid.CurrentCell.Column);
            filagrid    = grid.Items.IndexOf(grid.CurrentCell.Item);
            // Creamos un objeto ConvertidorHora
            Convertidores.ConvertidorHora cnvHora = new Convertidores.ConvertidorHora();
            // Iteramos por las filas del portapapeles.
            foreach (string[] fila in portapapeles)
            {
                // Creamos un objeto Conductor o reutilizamos el existente.
                Conductor conductor;
                if (filagrid < ListaConductores.Count)
                {
                    conductor = ListaConductores[filagrid];
                    esnuevo   = false;
                }
                else
                {
                    conductor = new Conductor();
                    esnuevo   = true;
                }
                int columna = columnagrid;

                foreach (string texto in fila)
                {
                    while (grid.Columns[columna].Visibility == Visibility.Collapsed)
                    {
                        columna++;
                    }
                    int i;
                    switch (columna)
                    {
                    case 0:                             // Numero.
                        conductor.Id = int.TryParse(texto, out i) ? i : 0;
                        break;

                    case 1:                             // Nombre.
                        conductor.Nombre = texto;
                        break;

                    case 2:                             // Apellidos.
                        conductor.Apellidos = texto;
                        break;

                    case 3:                             // Telefono.
                        conductor.Telefono = texto;
                        break;

                    case 4:                             // Email.
                        conductor.Email = texto;
                        break;

                    case 5:                             // Fijo.
                        conductor.Indefinido = false;
                        if (int.TryParse(texto, out i))
                        {
                            conductor.Indefinido = (i != 0);
                        }
                        else if (texto.ToLower() != "false")
                        {
                            conductor.Indefinido = true;
                        }
                        break;

                    case 6:                             // Horas.
                        conductor.Acumuladas = (TimeSpan)cnvHora.ConvertBack(texto, null, null, null);
                        break;

                    case 7:                             // Descansos.
                        conductor.Descansos = int.TryParse(texto, out i) ? i : 0;
                        break;

                    case 8:                             // Descansos No Disfrutados.
                        conductor.DescansosNoDisfrutados = int.TryParse(texto, out i) ? i : 0;
                        break;
                    }
                    columna++;
                }
                if (esnuevo)
                {
                    ListaConductores.Add(conductor);
                }
                filagrid++;
                HayCambios = true;
            }
        }