Exemple #1
0
 public static void InsertarRegistroLabor(OperariosRegistrosLabores registro)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         db.OperariosRegistrosLabores.Add(registro);
         db.SaveChanges();
     }
 }
        public LaboresPagina()
        {
            InitializeComponent();
            DataContext = this;

            Select.ObtenerLaboresOperario(Store.OperarioEjecucion.Id, Store.FechaInicioTurno, Store.FechaFinTurno).ForEach(l => LaboresRealizadas.Add(l));
            int cols = 2;
            int rows = 4;

            for (int i = 0; i < cols; i++)
            {
                GridLabores.ColumnDefinitions.Add(new ColumnDefinition());
            }
            for (int j = 0; j < rows; j++)
            {
                GridLabores.RowDefinitions.Add(new RowDefinition());
            }


            for (int i = 0; i < Labores.Count; i++)
            {
                Button bt = new Button();

                OperacionesLabores labor = Labores[i];
                bt.Name = labor.Clave;
                StackPanel sp = new StackPanel {
                    Orientation = Orientation.Vertical
                };
                sp.Children.Add(new TextBlock {
                    Text = labor.Descripcion
                });
                ProgressBar pb = new ProgressBar {
                    IsIndeterminate = true, Height = 50, Width = 200, Visibility = Visibility.Collapsed
                };
                sp.Children.Add(pb);
                bt.Content = sp;

                bt.Style    = FindResource("BotonLabor") as Style;
                bt.FontSize = 17;
                Grid.SetColumn(bt, i % cols);
                Grid.SetRow(bt, i / cols);
                GridLabores.Children.Add(bt);
                string id = labor.Clave;
                botones.Add(bt);
                bt.Click += (s, e) =>
                {
                    Button btEnProgreso = BotonesEnProgreso.FirstOrDefault(x => x.Name == labor.Clave);
                    if (btEnProgreso == null)
                    {
                        OperariosRegistrosLabores nueva = new OperariosRegistrosLabores
                        {
                            DescripcionLabor = labor.Descripcion,
                            FechaInicioLabor = DateTime.Now,
                            IdOperario       = Store.OperarioEjecucion.Id,
                            IdMaquina        = Store.MaquinaPrincipal.ID,
                            IdPuesto         = Store.Bancada.ID,
                        };
                        if (labor.Prolongada)
                        {
                            pb.Visibility = Visibility.Visible;
                            BotonesEnProgreso.Add(bt);
                        }
                        LaboresRealizadas.Add(nueva);
                    }
                    else
                    {
                        OperariosRegistrosLabores laborEnProgreso = LaboresRealizadas.LastOrDefault(x => x.DescripcionLabor == labor.Descripcion && !x.FechaFin.HasValue);
                        if (laborEnProgreso != null)
                        {
                            laborEnProgreso.FechaFin = DateTime.Now;

                            try
                            {
                                Insert.InsertarRegistroLabor(laborEnProgreso);
                            }catch (Exception ex)
                            {
                                MessageBox.Show(ex.Message);
                            }
                        }

                        pb.Visibility = Visibility.Collapsed;
                        BotonesEnProgreso.Remove(bt);
                    }
                };
            }
        }