示例#1
0
        private void solicitarVacas(object sender, RoutedEventArgs e)
        {
            var listaDeDias = calControl.ListaDiasSeleccionados.ToList();

            var text = "";

            foreach (var l in listaDeDias)
            {
                text += l.diaFormato + " ";
            }
            MessageBox.Show("Has solicitado con exito estos dias: " + text);


            using (var db = new ContextoBBDD())
            {
                db.DiasElegidos.AddRange(listaDeDias);


                var cambiarNumeroDiasRestantes = db.DiasPendientes.SingleOrDefault(b => b.UserModelId == UserLoginCache.Id);
                if (cambiarNumeroDiasRestantes != null)
                {
                    cambiarNumeroDiasRestantes.DiasQueMeQuedan = cambiarNumeroDiasRestantes.DiasQueMeQuedan - listaDeDias.Count;
                }



                db.SaveChanges();
            }


            calControl.ListaDiasSeleccionados.Clear();
            calControl.refesh();
        }
示例#2
0
 /// <summary>  Inicializa el registro con las horas a null, en el caso que no este inicializado</summary>
 private void inicializarRegistro()
 {
     using (var db = new ContextoBBDD())
     {
         fichaje = db.Fichar.Where(x => x.UserID == UserLoginCache.Id && x.dia == DateTime.Today).FirstOrDefault();
         if (fichaje == null)
         {
             fichaje           = new FicharModel();
             fichaje.UserID    = UserLoginCache.Id;
             fichaje.horarioID = 1;
             fichaje.dia       = DateTime.Today;
             fichaje.warning   = 1;
             db.Fichar.Add(fichaje);
             db.SaveChanges();
             btn_entrar.IsEnabled  = true;
             btn_salir.IsEnabled   = false;
             btn_entrar.Background = Brushes.LightGreen;
             btn_salir.Background  = Brushes.Red;
         }
         else
         {
             if (fichaje.entrada1.TotalMilliseconds == 0)
             {
                 btn_entrar.IsEnabled  = true;
                 btn_salir.IsEnabled   = false;
                 btn_entrar.Background = Brushes.LightGreen;
                 btn_salir.Background  = Brushes.Red;
             }
             else if (fichaje.salida1.TotalMilliseconds == 0)
             {
                 btn_entrar.IsEnabled  = true;
                 btn_salir.IsEnabled   = false;
                 btn_entrar.Background = Brushes.LightGreen;
                 btn_salir.Background  = Brushes.Red;
             }
             else if (fichaje.entrada2.TotalMilliseconds == 0)
             {
                 btn_entrar.IsEnabled  = true;
                 btn_salir.IsEnabled   = false;
                 btn_entrar.Background = Brushes.LightGreen;
                 btn_salir.Background  = Brushes.Red;
             }
             else if (fichaje.salida2.TotalMilliseconds == 0)
             {
                 btn_entrar.IsEnabled  = true;
                 btn_salir.IsEnabled   = false;
                 btn_entrar.Background = Brushes.LightGreen;
                 btn_salir.Background  = Brushes.Red;
             }
             else
             {
                 btn_entrar.IsEnabled  = false;
                 btn_salir.IsEnabled   = false;
                 btn_entrar.Background = Brushes.Red;
                 btn_salir.Background  = Brushes.Red;
             }
         }
         horario = db.Horarios.Where(x => x.ID == fichaje.horarioID).FirstOrDefault();
     }
 }
示例#3
0
        private void Login(object sender, RoutedEventArgs e)
        {
            var user = new UserModel();

            using (var db = new ContextoBBDD())
            {
                user = db.Usuarios
                       .Where(x => x.UserName == txtUsuario.Text && x.Password == txtContraseña.Password)
                       .FirstOrDefault();
            }


            if (user != null)
            {
                UserLoginCache.Id        = user.Id;
                UserLoginCache.UserName  = user.UserName;
                UserLoginCache.Password  = user.Password;
                UserLoginCache.Nombre    = user.Nombre;
                UserLoginCache.Apellidos = user.Apellidos;
                UserLoginCache.Rol       = user.Rol;
                UserLoginCache.Email     = user.Email;
                UserLoginCache.UrlImage  = user.UrlImage;

                MenuPrincipalView mp = new MenuPrincipalView();

                mp.Show();
            }
            else
            {
                MessageBox.Show("Usuario o contraseña incorrectos");
            }
        }
示例#4
0
        private void btnTodas_Click(object sender, RoutedEventArgs e)
        {
            if (ListaSeleccionados.Count == 0)
            {
                MessageBox.Show("No has seleccionado ningun dia");
                return;
            }
            var str = "Has seleccionado estos dias: \n";

            foreach (var s in ListaSeleccionados)
            {
                str += s.diaFormato + " " + s.Usuario.Nombre + " " + s.Usuario.Apellidos + "\n";

                using (var db = new ContextoBBDD())
                {
                    var result = db.DiasElegidos.SingleOrDefault(x => x.UserModelId == s.UserModelId &&
                                                                 x.Dia == s.Dia && x.Mes == s.Mes && x.Año == s.Año);
                    if (result != null)
                    {
                        result.Aprobado = true;
                        db.SaveChanges();
                    }
                }
            }

            MessageBox.Show(str);
            cargarGrid();
        }
示例#5
0
        public HorariosViewModel()
        {
            using (var db = new ContextoBBDD())
            {
                var listUsers    = db.Usuarios.ToList();
                var listaAnonima = (from h in db.Horarios
                                    select new DataGridHorarios
                {
                    nombre = h.nombre,
                    entrada1 = h.entrada1,
                    salida1 = h.salida1,
                    entrada2 = h.entrada2,
                    salida2 = h.salida2,
                    lunes = h.lunes? "✓":"X",
                    martes = h.martes ? "✓" : "X",
                    miercoles = h.miercoles ? "✓" : "X",
                    jueves = h.jueves ? "✓" : "X",
                    viernes = h.viernes ? "✓" : "X",
                    sabado = h.sabado ? "✓" : "X",
                    domingo = h.domingo ? "✓" : "X",
                }).ToList();



                ListaDeHorarios = listaAnonima.ToList();
            }
        }
示例#6
0
        public UserModel obtenerUsuario(object sender)
        {
            var l = Grid.GetRow((UIElement)((TextBlock)sender).Parent);
            var c = Grid.GetColumn((UIElement)((TextBlock)sender).Parent);

            //localiza el stackpanel de la celda col=0 fila= la que clickes
            var stac = lagrid.Children
                       .Cast <UIElement>()
                       .First(es => Grid.GetRow(es) == l && Grid.GetColumn(es) == 0);

            //localiza dentro del stackpanel el elemento hijo que sea un textblock
            TextBlock textbl = ((StackPanel)stac).Children.OfType <TextBlock>().LastOrDefault();

            UserModel us = null;

            using (var db = new ContextoBBDD())
            {
                var num = obtenerIdUsuario(textbl.Text);


                us = db.Usuarios.Where(x => x.Id == num).FirstOrDefault();
            }

            return(us);
        }
示例#7
0
 public VacacionesViewModel()
 {
     using (var db = new ContextoBBDD())
     {
         var diasquequedan = db.Usuarios.Where(x => x.Id == UserLoginCache.Id).Select(d => d.DiasPendientes.DiasQueMeQuedan).FirstOrDefault();
         _diasQueQuedan = diasquequedan;
     }
 }
 public AusenciasViewModel()
 {
     using (var db = new ContextoBBDD())
     {
         var listTiposAusencias = db.TiposAusencias.ToList();
         TiposAusencias = listTiposAusencias;
     }
 }
示例#9
0
        private void click_calendar(object sender, MouseButtonEventArgs e)
        {
            var celda = (Label)sender;
            var color = ((Label)sender).Background;



            if (color == Brushes.MediumTurquoise)
            {
                celda.Background = Brushes.White;
                celda.Foreground = celda.Foreground == Brushes.Red ? Brushes.Red : Brushes.Black;
                //Elimina de la lista el dia deseleccionado
                var itemToRemove = ListaDiasSeleccionados.SingleOrDefault(r => r.Dia == Int32.Parse(celda.Content.ToString()) &&
                                                                          r.Mes == mesSeleccionado && r.Año == añoSeleccionado);
                if (itemToRemove != null)
                {
                    _listaDiasSeleccionados.Remove(itemToRemove);
                }
                restarDias(sender, e);
            }
            else if (color == Brushes.White)
            {
                celda.Background = Brushes.MediumTurquoise;
                celda.Foreground = celda.Foreground == Brushes.Red ? Brushes.Red : Brushes.White;
                _listaDiasSeleccionados.Add(new DiasElegidosModel()
                {
                    Dia         = Int32.Parse(celda.Content.ToString()),
                    Mes         = mesSeleccionado,
                    Año         = añoSeleccionado,
                    UserModelId = UserLoginCache.Id
                });

                sumarDias(sender, e);
            }
            else if (color == Brushes.OrangeRed)
            {
                MessageBox.Show("Dia pendiente de ser aceptado, Desea eliminar la solicitud?");

                using (var db = new ContextoBBDD())
                {
                    var numDia    = Convert.ToInt32(celda.Content.ToString());
                    var diaBorrar = db.DiasElegidos.FirstOrDefault(x => x.Dia == numDia &&
                                                                   x.Mes == mesSeleccionado && x.Año == añoSeleccionado && x.UserModelId == UserLoginCache.Id);

                    db.DiasElegidos.Remove(diaBorrar);
                    db.SaveChanges();
                }
                restarDias(sender, e);
                refesh();
            }
        }
示例#10
0
 private void aceptar(object sender, RoutedEventArgs e)
 {
     using (var db = new ContextoBBDD())
     {
         var result = db.DiasElegidos.SingleOrDefault(x => x.UserModelId == diaADenegarOAprobar.UserModelId &&
                                                      x.Dia == diaADenegarOAprobar.Dia && x.Mes == diaADenegarOAprobar.Mes && x.Año == diaADenegarOAprobar.Año);
         if (result != null)
         {
             result.Aprobado = false;
             db.SaveChanges();
         }
     }
     this.Close();
 }
示例#11
0
        private void cargarDatosDelContexto()
        {
            using (var db = new ContextoBBDD())
            {
                //cargamos usuarios
                var listausuarios = db.Usuarios.ToList();
                ListaUsuarios = listausuarios;


                //cargamos dias Elegidos de vacas

                var listadiasvacas = db.DiasElegidos.ToList();
                ListaDiasVacasElegidos = listadiasvacas;
            }
        }
示例#12
0
        //obtiene del nombre completo el id usuario
        private int obtenerIdUsuario(string usuario)
        {
            var longi     = usuario.Length;
            var nombre    = usuario.Substring(0, usuario.IndexOf(" "));
            var apellidos = usuario.Substring(nombre.Length, longi - nombre.Length);
            var num       = 0;

            using (var db = new ContextoBBDD())
            {
                num = db.Usuarios.Where(x => x.Nombre == nombre && x.Apellidos == apellidos.Trim())
                      .Select(x => x.Id).FirstOrDefault();
            }


            return(num);
        }
        private void enviarAusencia()
        {
            using (var db = new ContextoBBDD())
            {
                var nuevaAusencia = new AusenciasModel()
                {
                    UserModelId = UserLoginCache.Id,

                    TipoAusenciaModelId = TipoSeleccionado.Id,
                    FechaInicio         = StartDate.Date,//con el date al final solo obtenemos la data sin horas
                    FechaFinal          = EndDate.Date,
                    Comentario          = ComentarioTxt
                };

                db.Ausencias.Add(nuevaAusencia);
                db.SaveChanges();
            }
        }
 public void actualizar()
 {
     if (Password == Passwordconfirm)
     {
         using (var db = new ContextoBBDD())
         {
             var result = db.Usuarios.FirstOrDefault(x => x.Id == UserLoginCache.Id);
             if (result != null)
             {
                 result.Nombre    = Nombre;
                 result.Apellidos = Apellidos;
                 result.UserName  = Username;
                 result.Password  = Password;
                 db.SaveChanges();
             }
         }
     }
     else
     {
         MessageBox.Show("Contraseña incorrecta");
     }
 }
示例#15
0
        public FicharViewModel()
        {
            using (var db = new ContextoBBDD())
            {
                var listUsers    = db.Usuarios.ToList();
                var listaAnonima = (from usuario in db.Usuarios
                                    join fichaje in db.Fichar on usuario.Id equals fichaje.UserID
                                    join warning in db.Warning on fichaje.warning equals warning.ID
                                    select new DataGridFichajes
                {
                    Nombre = usuario.Nombre + " " + usuario.Apellidos,
                    Dia = fichaje.dia,
                    Entrada1 = fichaje.entrada1,
                    Salida1 = fichaje.salida1,
                    Entrada2 = fichaje.entrada2,
                    Salida2 = fichaje.salida2,
                    Warning = warning.descripcion
                }).ToList();



                ListaDeDias = listaAnonima.ToList();
            }
        }
示例#16
0
        private void cargarNumerosCalendar()
        {
            var col = 0;

            var row             = 0;
            var diasMesAnterior = DateTime.DaysInMonth(añoSeleccionado, (mesSeleccionado == 1) ? 12 : mesSeleccionado - 1);
            var iterador        = 0;

            //si tienes alguna label en la grid la eliminara , asi no se superponen
            if (gridCalendar.Children.Count > 0)
            {
                gridCalendar.Children.Clear();
            }

            switch (primerDiaDelMes)
            {
            case "lunes":
                col = 0;
                break;

            case "martes":
                col = 1;
                break;

            case "miércoles":
                col = 2;
                break;

            case "jueves":
                col = 3;
                break;

            case "viernes":
                col = 4;
                break;

            case "sábado":
                col = 5;
                break;

            case "domingo":
                col = 6;
                break;
            }

            var diasAnteriores = col;

            //Dias del mes que se pueden clickar



            for (int i = 1; i <= diasTotalMes; i++)
            {
                var lb = new Label();
                lb.Content            = i.ToString();
                lb.MouseLeftButtonUp += click_calendar;
                var item = _listaDiasSeleccionados.FirstOrDefault(x => x.Dia == i && x.Mes == mesSeleccionado && x.Año == añoSeleccionado);


                using (var db = new ContextoBBDD())
                {
                    var diaYaElegido = db.DiasElegidos.Where(x => x.Dia == i &&
                                                             x.Mes == mesSeleccionado &&
                                                             x.Año == añoSeleccionado &&
                                                             x.UserModelId == UserLoginCache.Id).FirstOrDefault();

                    if (diaYaElegido != null)
                    {
                        lb.Background = Brushes.OrangeRed;
                        lb.Foreground = Brushes.White;
                    }
                    else
                    {
                        if (item != null)
                        {
                            lb.Background = Brushes.MediumTurquoise;
                            lb.Foreground = Brushes.White;
                        }
                        else
                        {
                            lb.Background = Brushes.White;
                            lb.Foreground = col == 6 ? Brushes.Red : Brushes.Black;
                        }
                    }
                }



                if (col == 7)
                {
                    col = 0;
                    row++;
                }

                Grid.SetColumn(lb, col);
                Grid.SetRow(lb, row);

                gridCalendar.Children.Add(lb);
                col++;
            }



            //Numero del mes anterior que estaran desactivados
            for (int i = diasAnteriores; i > 0; i--)
            {
                var lb = new Label();
                lb.Content    = (diasMesAnterior - iterador).ToString();
                lb.IsEnabled  = true;
                lb.Foreground = Brushes.Gray;
                Grid.SetColumn(lb, i - 1);
                Grid.SetRow(lb, 0);
                gridCalendar.Children.Add(lb);
                iterador++;
            }

            //Dias posteriores

            var diasPosterior = 42 - diasTotalMes - diasAnteriores;

            for (int i = 0; i < diasPosterior; i++)
            {
                var lb = new Label();
                lb.Content    = (i + 1).ToString();
                lb.IsEnabled  = true;
                lb.Foreground = Brushes.Gray;
                if (col == 7)
                {
                    col = 0;
                    row++;
                }

                Grid.SetColumn(lb, col);
                Grid.SetRow(lb, row);

                gridCalendar.Children.Add(lb);
                col++;
            }
        }