public void OperarioEntra(Operarios op)
 {
     if (OnOperarioEntra != null)
     {
         OnOperarioEntra(this, new OperarioEntraEventArgs(op, this.pantalla));
     }
 }
コード例 #2
0
        private void btOk_Click(object sender, RoutedEventArgs e)
        {
            if (this.CodigoOperario.Length > 0)
            {
                Operarios o = Select.BuscarOperarioPorCodigo(this.CodigoOperario.Trim());
                if (o != null)
                {
                    if (!Store.Operarios.Any(x => x.Id == o.Id))
                    {
                        new Aviso(string.Format("¡{0}!", Horario.CalcularSaludoActual()), hablar: true).Show();

                        Store.Operarios.Clear();
                        Store.Operarios.Add(o);
                        BusEventos.OperarioEntra(o);
                        if (Store.Bancada.IdHermano != null)
                        {
                            ClienteMQTT.Publicar(string.Format("/puesto/loginHermano/{0}", Store.Bancada.IdHermano), JsonConvert.SerializeObject(o, new JsonSerializerSettings
                            {
                                ContractResolver           = new CustomResolver(),
                                PreserveReferencesHandling = PreserveReferencesHandling.None,
                                ReferenceLoopHandling      = ReferenceLoopHandling.Ignore,
                                Formatting = Formatting.Indented
                            }), 2);
                        }

                        NavegacionEventos.CargarNuevaPagina(NavegacionEventos.PaginaTarea);
                    }
                }
                this.CodigoOperario = "";
                Notifica("CodigoOperario");
            }
        }
コード例 #3
0
        public OperadoresViewModel ToViewModel(Operarios operario)
        {
            var retorno = new OperadoresViewModel();

            if (operario != null)
            {
                var rutNum = int.Parse(operario.RutOperario.Substring(0, operario.RutOperario.Length - 1));
                var rutDv  = operario.RutOperario.Substring(operario.RutOperario.Length - 1, 1);
                retorno = new OperadoresViewModel
                {
                    IdOperario  = operario.IdOperario,
                    RutOperario = rutNum.ToString("N0") + "-" + rutDv,
                    Nombres     = operario.Nombres,
                    ApPaterno   = operario.ApPaterno,
                    ApMaterno   = operario.ApMaterno,
                    Direccion   = operario.Direccion,
                    IdRegion    = operario.Comunas.Provincias.IdRegion,
                    IdProvincia = operario.Comunas.IdProvincia,
                    IdComuna    = operario.IdComuna,
                    Telefono    = operario.Telefono,
                    Imagen      = operario.Imagen,
                    IdRol       = operario.IdRol,
                    Rol         = operario.Roles.Rol,
                    Clave       = operario.Clave,
                    Estado      = operario.Estado
                };
            }

            return(retorno);
        }
コード例 #4
0
 public static void OperarioSale(Operarios o)
 {
     if (OnOperarioSale != null)
     {
         OnOperarioSale(null, new OperarioSalidaEventArgs());
     }
 }
コード例 #5
0
        private void LoginExterno(string msg, string topicRecibido, Topic topic)
        {
            try
            {
                Operarios o = JsonConvert.DeserializeObject <Operarios>(msg);
                if (o == null)
                {
                    Log.Write(new Exception("Operario recibido nulo " + msg));
                }
                else
                {
                    Store.Operarios.Clear();
                    Store.Operarios.Add(o);
                    BusEventos.OperarioEntra(o);

                    Application.Current.Dispatcher.Invoke((Action) delegate
                    {
                        new Aviso(string.Format("¡{0}!", Horario.CalcularSaludoActual()), hablar: true).Show();
                        NavegacionEventos.CargarNuevaPagina(NavegacionEventos.PaginaTarea);
                    });
                }
            }
            catch (Exception ex)
            {
                Log.Write(ex);
            }
        }
コード例 #6
0
 public Operarios Update(Operarios item)
 {
     try
     {
         _sisGmaEntities.Entry(item).State = EntityState.Modified;
         _sisGmaEntities.SaveChanges();
         return(item);
     }
     catch (EntryPointNotFoundException ep)
     {
         IsValid      = false;
         ErrorMessage = ep.GetBaseException().Message;
         return(null);
     }
     catch (Exception e)
     {
         IsValid      = false;
         ErrorMessage = e.GetBaseException().Message;
         return(null);
     }
     finally
     {
         _sisGmaEntities.Dispose();
     }
 }
コード例 #7
0
 public static void OperarioEntra(Operarios o)
 {
     if (OnOperarioEntra != null)
     {
         OnOperarioEntra(null, new OperarioEntradaEventArgs());
     }
 }
コード例 #8
0
 public Operarios Insert(Operarios item)
 {
     try
     {
         _sisGmaEntities.Operarios.Add(item);
         _sisGmaEntities.SaveChanges();
         return(item);
     }
     catch (EntryPointNotFoundException ep)
     {
         IsValid      = false;
         ErrorMessage = ep.GetBaseException().Message;
         return(null);
     }
     catch (Exception e)
     {
         IsValid      = false;
         ErrorMessage = e.GetBaseException().Message;
         return(null);
     }
     finally
     {
         _sisGmaEntities.Dispose();
     }
 }
コード例 #9
0
        public PegadoPaginaModulo(Operarios op, Pantalla p)
        {
            InitializeComponent();

            this.DataContext         = this;
            this.BtLogout.OnPulsado += (s, e) => {
                OperarioSale();
                foreach (var control in GridMaquinas.Children)
                {
                    var controlPrensa = control as PrensaGenericaControl;
                    if (controlPrensa != null)
                    {
                        controlPrensa.Desuscribir();
                    }
                }
            };

            this.Operario = op;
            this.Pantalla = p;

            this.Maquinas = guiOperario.ObtenerMisMaquinas(p);


            for (int i = 0; i < Maquinas.Count; i++)
            {
                GridMaquinas.ColumnDefinitions.Add(new ColumnDefinition());
                Maquinas maquina          = this.Maquinas[i];
                PrensaGenericaControl pgc = new PrensaGenericaControl(maquina, op);
                Grid.SetColumn(pgc, i);
                GridMaquinas.Children.Add(pgc);
            }

            this.RitmoControl.SetMaquinas(this.Operario, this.Maquinas);
            this.NombreOperarioControl.SetOperario(this.Operario);
        }
コード例 #10
0
        public static void SalirOperario(Operarios op, Pantalla p)
        {
            var storeExistente = stores.FirstOrDefault(x => x.Pantalla.Id == p.Id);

            if (storeExistente != null)
            {
                storeExistente.Operario = null;
            }
        }
コード例 #11
0
        private void btOk_Click(object sender, RoutedEventArgs e)
        {
            bool   error  = false;
            Loader loader = new Loader();

            this.IsEnabled = false;
            loader.Show();

            try
            {
                if (string.IsNullOrEmpty(CodigoOperario))
                {
                    error = true;
                    loader.Close();
                    this.IsEnabled = true;
                }
                else
                {
                    Operarios        operario = null;
                    BackgroundWorker bw       = new BackgroundWorker();
                    bw.DoWork += (se, ev) =>
                    {
                        operario = daoOperario.BuscarPorCodigo(CodigoOperario);
                    };
                    bw.RunWorkerCompleted += (se, ev) =>
                    {
                        if (operario != null)
                        {
                            guiOperario.Entrar(this.pantalla, operario);
                            OperarioEntra(operario);
                        }
                        else
                        {
                            error = true;
                        }
                        loader.Close();
                        this.IsEnabled      = true;
                        this.CodigoOperario = "";
                        Notificar("CodigoOperario");
                    };
                    bw.RunWorkerAsync();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                error = true;
                loader.Close();
                this.IsEnabled      = true;
                this.CodigoOperario = "";
                Notificar("CodigoOperario");
            }
        }
コード例 #12
0
        private void BtHojaProduccion_Click(object sender, RoutedEventArgs e)
        {
            BackgroundWorker bw = new BackgroundWorker();

            bw.DoWork += (se, ev) =>
            {
                List <MaquinasRegistrosDatos> pares = new List <MaquinasRegistrosDatos>();
                try
                {
                    if (Store.Operario != null)
                    {
                        DaoTarea dt = new DaoTarea();

                        pares = dt.ObtenerHistoricoParesOperario(Store.Operario.Id, Horario.HorarioTurnos.FechaInicioTurno, HorarioTurnos.FechaFinTurno);
                        if (controles.Count == 0)
                        {
                            controles = dt.ObtenerOperacionesControles();
                        }

                        ev.Result = new object[] { pares, controles, Store.Operario };
                    }
                    Thread.Sleep(1000);
                }
                catch (Exception)
                {
                    ev.Result = new object[] { pares, controles };
                }
            };
            bw.RunWorkerCompleted += (se, ev) =>
            {
                this.BtHojaProduccion.IsEnabled = true;

                this.TxtHojaProduccion.Text = "HOJA PRODUCCION";

                try
                {
                    object[] result = ev.Result as object[];
                    List <MaquinasRegistrosDatos> pares     = result[0] as List <MaquinasRegistrosDatos>;
                    List <OperacionesControles>   controles = result[1] as List <OperacionesControles>;
                    Operarios             operario          = result[2] as Operarios;
                    ImprimirTicketTrabajo itt = new ImprimirTicketTrabajo(controles, operario, pares);
                    itt.Imprimir();
                }catch (Exception ex)
                {
                    new Log().Escribir(ex);
                }
            };
            bw.RunWorkerAsync();
            this.BtHojaProduccion.IsEnabled = false;
            this.TxtHojaProduccion.Text     = "IMPRIMIENDO...";
        }
コード例 #13
0
        public MoldeadoPaginaModulo(Operarios op, Pantalla p)
        {
            InitializeComponent();

            this.DataContext         = this;
            this.BtLogout.OnPulsado += (s, e) =>
            {
                /*foreach (var control in GridMaquinas.Children)
                 * {
                 *  var controlPrensa = control as PrensaGenericaControl;
                 *  if (controlPrensa != null)
                 *  {
                 *      controlPrensa.Desuscribir();
                 *  }
                 * }
                 */
                OperarioSale();
            };

            this.Operario = op;
            this.Pantalla = p;
            GridMaquinas.ColumnDefinitions.Add(new ColumnDefinition());
            GridMaquinas.ColumnDefinitions.Add(new ColumnDefinition());

            this.Maquinas = guiOperario.ObtenerMisMaquinas(p).OrderBy(x => x.PosicionLayout).ToList();

            for (int i = 0; i < Maquinas.Count / 2; i++)
            {
                GridMaquinas.RowDefinitions.Add(new RowDefinition());
            }

            for (double i = 0, j = 0; i < Maquinas.Count; i++, j += 0.5)
            {
                Maquinas maquina = this.Maquinas[(int)i];

                PrensaGenericaControl pgc = new PrensaGenericaControl(maquina, op);
                prensas.Add(pgc);

                Grid.SetColumn(pgc, i % 2 == 0?1:0);
                Grid.SetRow(pgc, (int)(j));

                GridMaquinas.Children.Add(pgc);
            }

            ControlOperario.SetOperario(op);
            ControlVueltas.SetMaquinas(this.Maquinas, op);
        }
コード例 #14
0
        public static void EntrarOperario(Operarios op, Pantalla p)
        {
            var storeExistente = stores.FirstOrDefault(x => x.Pantalla.Id == p.Id);

            if (storeExistente != null)
            {
                storeExistente.Operario = op;
            }
            else
            {
                stores.Add(new Store
                {
                    Pantalla = p,
                    Operario = op,
                });
            }
        }
コード例 #15
0
        public JsonResult GuardarOperador(
            int idOperador, string rutOperador, string nombres, string apPaterno, string apMaterno,
            string direccion, string idComuna, string telefono, string imagen, string idRol,
            string clave, bool estado)
        {
            if (!new GeneralBo().ValidarRut(rutOperador))
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }

            bool response;
            var  operariosBo = new OperariosBo();
            // TODO: Guardar imagen
            var rutaImagen = string.Empty;

            var operador = new Operarios
            {
                RutOperario = rutOperador.Replace(".", "").Replace("-", ""),
                Nombres     = nombres,
                ApPaterno   = apPaterno,
                ApMaterno   = apMaterno,
                Direccion   = direccion,
                IdComuna    = int.Parse(idComuna),
                Telefono    = telefono,
                Imagen      = rutaImagen,
                IdRol       = int.Parse(idRol),
                Clave       = clave,
                Estado      = estado
            };

            if (idOperador > 0)
            {
                operador.IdOperario = idOperador;
                response            = operariosBo.Update(operador).IdOperario > 0;
            }
            else
            {
                response = operariosBo.Insert(operador).IdOperario > 0;
            }

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
コード例 #16
0
        private void LogoutExterno(string msg, string topicRecibido, Topic topic)
        {
            try
            {
                Operarios o = Store.OperarioEjecucion;

                Store.Operarios.Clear();
                BusEventos.OperarioSale(o);

                Application.Current.Dispatcher.Invoke((Action) delegate
                {
                    NavegacionEventos.CargarNuevaPagina(NavegacionEventos.PaginaOperarios);
                    new Aviso(string.Format("¡Hasta pronto!"), hablar: true).Show();
                });
            }
            catch (Exception ex)
            {
                Log.Write(ex);
            }
        }
コード例 #17
0
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = this;

            if (!System.Security.Principal.WindowsIdentity.GetCurrent().Name.Contains("omartinez"))
            {
                KillExplorer();
                this.Topmost     = true;
                this.WindowStyle = WindowStyle.None;
            }

            if (SesionManager.Sesion.Operario == null)
            {
                while (SesionManager.Sesion.Operario == null)
                {
                    Ventanas.Login login = new Ventanas.Login();
                    login.ShowDialog();
                }


                this.Operario = SesionManager.Sesion.Operario;

                Bienvenida welcome = new Bienvenida();
                welcome.Show();

                Notificar("Operario");
            }



            CargarDatos();



            this.Closing += (s, e) =>
            {
                Logs.Log.Write(new Exception(" Cerrando aplicacion..."));
                ClienteMQTT.Cerrar();
            };
        }
コード例 #18
0
        private void BtSalir_Click(object sender, RoutedEventArgs e)
        {
            if (Store.OperarioEjecucion != null)
            {
                Operarios o = Store.OperarioEjecucion;
                new Aviso(string.Format("¡Hasta pronto!"), hablar: true).Show();
                Store.Operarios.Clear();

                if (Store.Bancada.IdHermano != null)
                {
                    ClienteMQTT.Publicar(string.Format("/puesto/logoutHermano/{0}", Store.Bancada.IdHermano), JsonConvert.SerializeObject(o, new JsonSerializerSettings
                    {
                        ContractResolver           = new CustomResolver(),
                        PreserveReferencesHandling = PreserveReferencesHandling.None,
                        ReferenceLoopHandling      = ReferenceLoopHandling.Ignore,
                        Formatting = Formatting.Indented
                    }), 2);
                }

                BusEventos.OperarioSale(o);
            }
        }
コード例 #19
0
        private void BtLogout_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (InputManager.Current.MostRecentInputDevice is KeyboardDevice)
                {
                    e.Handled = true;
                    return;
                }

                Store.Reset();

                ImprimirAuditoria impAud = new ImprimirAuditoria();
                impAud.ShowDialog();

                ClienteMQTT.Cerrar();
                SesionManager.Sesion.Operario = null;
                while (SesionManager.Sesion.Operario == null)
                {
                    Ventanas.Login login = new Ventanas.Login();
                    login.ShowDialog();
                }

                this.Operario = SesionManager.Sesion.Operario;

                ClienteMQTT.Iniciar();

                Bienvenida welcome = new Bienvenida();
                welcome.Show();
                this.CargarPaquetesPrevios();

                Notificar("Operario");
            }
            catch (Exception ex)
            {
                Log.Write(ex);
            }
        }
コード例 #20
0
        private void CargarPaquetesPrevios()
        {
            try
            {
                DateTime  ahora = DateTime.Now;
                Operarios op    = SesionManager.Sesion.Operario;
                Turno     turno = Horario.CalcularTurnoAFecha(ahora);
                DateTime  fechaInicio;
                DateTime  fechaFin;
                Horario.CalcularHorarioTurno(turno, ahora, out fechaInicio, out fechaFin);

                var paquetes = selectRegistroDatos.HistoricoPaquetesOperario(op.Id, fechaInicio, fechaFin);

                foreach (var paquete in paquetes.Where(x => x.PiezaIntroducida))
                {
                    var maq = Store.Bancada.Maquinas.FirstOrDefault(x => x.IpAutomata == paquete.IpAutomata && x.Posicion == paquete.PosicionMaquina);
                    if (maq != null)
                    {
                        maq.Pulsos.Add(new PulsoMaquina
                        {
                            CodigoEtiqueta = paquete.CodigoEtiqueta,
                            Control        = BuscarControl(paquete.IdOperacion, maq),
                            Ciclo          = paquete.Ciclo,
                            Fecha          = paquete.FechaCreacion,
                            Pares          = paquete.Pares,
                            PosicionGlobal = maq.PosicionGlobal ?? 0,
                            IdOperario     = paquete.IdOperario,
                        });;
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Write(ex);
            }
        }
コード例 #21
0
 public OperarioSaleEventArgs(Operarios operario)
 {
     Operario = operario;
 }
コード例 #22
0
 /// <summary>
 /// asigna el conjunto de maquinas y el operario para que pueda calcular el ritmo cada intervalo
 /// </summary>
 /// <param name="op"></param>
 /// <param name="maquinas"></param>
 public void SetMaquinas(Operarios op, List <Maquinas> maquinas)
 {
     this.operario = op;
     this.maquinas = maquinas;
 }
コード例 #23
0
        public static List <Maquinas> ObtenerMaquinasPorOperario(Operarios op)
        {
            var storeExistente = stores.FirstOrDefault(x => x.Operario.Id == op.Id);

            return(storeExistente.Maquinas);
        }