public static void UbicarBarquilla(Dictionary <int, int> ordenesOperaciones, string seccion, string codBarquilla, string codUbicacion)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         var barquilla = db.Barquillas.FirstOrDefault(x => x.CodigoEtiqueta == codBarquilla);
         if (barquilla != null)
         {
             db.SP_BarquillaUbicar(codBarquilla, codUbicacion);
             foreach (var contenido in barquilla.BarquillasContenidos)
             {
                 var parEncontrados = ordenesOperaciones.Where(x => x.Key == contenido.IdOrden);
                 if (parEncontrados.Any())
                 {
                     db.BarquillasConsumos.Add(new BarquillasConsumos
                     {
                         FechaConsumo         = DateTime.Now,
                         IdContenidoBarquilla = contenido.Id,
                         IdOperacionConsumo   = parEncontrados.First().Value,
                         CodSeccion           = seccion,
                     });
                 }
             }
         }
         db.SaveChanges();
     }
 }
Beispiel #2
0
 public static void InsertarStocks(List <StockArticulos> stocks)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         db.StockArticulos.AddRange(stocks);
         db.SaveChanges();
     }
 }
Beispiel #3
0
 public static void InsertarRegistroLabor(OperariosRegistrosLabores registro)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         db.OperariosRegistrosLabores.Add(registro);
         db.SaveChanges();
     }
 }
Beispiel #4
0
        public static void UpdateConfiguracionBancada(bool finPaqueteAudio, bool finTareaAudio, int idBancada)
        {
            using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
            {
                BancadasConfiguracionesPins configDb = db.BancadasConfiguracionesPins.FirstOrDefault(x => x.IdBancada == idBancada);
                configDb.AvisarFinPaquete = finPaqueteAudio;
                configDb.AvisarFinTarea   = finTareaAudio;

                db.SaveChanges();
            }
        }
 public static void Ubicar(string codigoEtiqueta, string codUbicacion)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         var utc = db.UtillajesTallasColeccion.FirstOrDefault(x => x.CodigoEtiqueta == codigoEtiqueta);
         if (utc != null)
         {
             utc.CodUbicacion = codUbicacion;
         }
         db.SaveChanges();
     }
 }
Beispiel #6
0
 public static void UpdateContadorPaquetesBancada(Bancadas b, int contador)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         Bancadas bancadaBD = db.Bancadas.Find(b.ID);
         if (bancadaBD != null)
         {
             bancadaBD.BancadasConfiguracionesPins.ContadorPaquetes = contador;
             db.SaveChanges();
             b.BancadasConfiguracionesPins.ContadorPaquetes = contador;
         }
     }
 }
Beispiel #7
0
        public static void ConsumirOperacionEnvasado(List <StockArticulos> stocks)
        {
            DateTime ahora = DateTime.Now;

            using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
            {
                var agrupadosPorOrden = stocks.GroupBy(x => x.IdOrdenFabricacion);
                foreach (var grupo in agrupadosPorOrden)
                {
                    foreach (var stock in grupo)
                    {
                        var orden = db.OrdenesFabricacion.FirstOrDefault(x => x.ID == stock.IdOrdenFabricacion);
                        if (orden != null)
                        {
                            var operacion = orden.OrdenesFabricacionOperaciones.FirstOrDefault(x => x.CodSeccion == "300");
                            if (operacion != null)
                            {
                                foreach (var sat in stock.StockArticulosTallas.Where(x => x.Cantidad > 0))
                                {
                                    var ofot = operacion.OrdenesFabricacionOperacionesTallas.FirstOrDefault(x => x.Tallas.Split(',').Contains(sat.Talla));
                                    if (ofot != null)
                                    {
                                        var tarea = ofot.OrdenesFabricacionOperacionesTallasCantidad.First();
                                        tarea.OrdenesFabricacionProductos.Add(new OrdenesFabricacionProductos
                                        {
                                            FechaCreacion = ahora,
                                            Cantidad      = sat.Cantidad ?? 0,
                                            IdOperario    = stock.IdOperarioCreacion,
                                            IdOrdenFabricacionOperacionTallaCantidad = tarea.ID,
                                        });
                                        if (tarea.CantidadFabricar <= tarea.OrdenesFabricacionProductos.Sum(x => x.Cantidad))
                                        {
                                            // finalizar
                                            tarea.Finalizado       = true;
                                            tarea.IdEstadoAnterior = tarea.IdEstado;
                                            tarea.IdEstado         = 5;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                db.SaveChanges();
            }
        }
Beispiel #8
0
        public List <MaquinasColasTrabajo> ActualizarColaTrabajo(string codigoBarquilla, List <int> idsTareas, int?agrupacion, int idMaquina, int idOperario, double cantidad)
        {
            List <MaquinasColasTrabajo> trabajosInsertar = new List <MaquinasColasTrabajo>();

            using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
            {
                if (idsTareas.Any())
                {
                    // recupero la cola de la maquina
                    var trabajos = db.MaquinasColasTrabajo
                                   .Include("OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.OrdenesFabricacion.Campos_ERP")
                                   .Include("OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionProductos")
                                   .Where(x => x.IdMaquina == idMaquina).ToList();

                    // elimino todos los trabajos que tengan que ver con la tarea que quiero ejecutar
                    trabajos.RemoveAll(x => idsTareas.Contains(x.IdTarea));

                    // elimino los trabajos que se encuentren en ejecución actualmente
                    trabajos.RemoveAll(x => x.Ejecucion);

                    // los ordeno por posicion
                    var trabajosOrdenados = trabajos.OrderBy(x => x.Posicion).ToList();

                    // actualizo sus posiciones en +1
                    int i        = 1;
                    int anterior = 0;
                    foreach (var trabajo in trabajosOrdenados)
                    {
                        if (anterior == 0)
                        {
                            anterior         = trabajo.Posicion;
                            trabajo.Posicion = i;
                        }
                        else
                        {
                            if (anterior == trabajo.Posicion)
                            {
                                trabajo.Posicion = i;
                            }
                            else
                            {
                                i++;
                                anterior         = trabajo.Posicion;
                                trabajo.Posicion = i;
                            }
                        }
                    }

                    // busco el trabajo en ejecucion actual de la cola
                    MaquinasColasTrabajo trabajoEjecucionActual = db.MaquinasColasTrabajo.FirstOrDefault(x => x.IdMaquina == idMaquina && x.Ejecucion);
                    // si tiene trabajo en ejecución
                    if (trabajoEjecucionActual != null)
                    {
                        // lo desubico
                        var barquilla = db.Barquillas.FirstOrDefault(x => x.CodigoEtiqueta == trabajoEjecucionActual.CodigoEtiquetaFichada);
                        barquilla.CodUbicacion = null;
                    }

                    // elimino toda la cola
                    db.MaquinasColasTrabajo.RemoveRange(db.MaquinasColasTrabajo.Where(x => x.IdMaquina == idMaquina).ToList());


                    // inserto los trabajos antiguos con las posiciones actualizadas en +1
                    foreach (var trabajo in trabajosOrdenados)
                    {
                        trabajosInsertar.Add(new MaquinasColasTrabajo
                        {
                            CantidadEtiquetaFichada = trabajo.CantidadEtiquetaFichada,
                            Ejecucion             = false,
                            Posicion              = trabajo.Posicion + 1,
                            IdTarea               = trabajo.IdTarea,
                            Agrupacion            = trabajo.Agrupacion,
                            FechaProgramado       = trabajo.FechaProgramado,
                            IdMaquina             = idMaquina,
                            IdOperarioEjecuta     = trabajo.IdOperarioEjecuta,
                            IdOperarioPrograma    = trabajo.IdOperarioPrograma,
                            CodigoEtiquetaFichada = trabajo.CodigoEtiquetaFichada,
                            OrdenesFabricacionOperacionesTallasCantidad = trabajo.OrdenesFabricacionOperacionesTallasCantidad
                        });
                    }

                    // inserto la nueva tarea en ejecución
                    foreach (var id in idsTareas)
                    {
                        var tarea = db.OrdenesFabricacionOperacionesTallasCantidad
                                    .Include("OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.OrdenesFabricacion.Campos_ERP")
                                    .Include("OrdenesFabricacionProductos")
                                    .FirstOrDefault(x => x.ID == id);
                        trabajosInsertar.Add(new MaquinasColasTrabajo
                        {
                            CantidadEtiquetaFichada = cantidad,
                            IdMaquina             = idMaquina,
                            IdOperarioEjecuta     = idOperario,
                            IdTarea               = id,
                            Posicion              = 1,
                            Agrupacion            = agrupacion ?? 0,
                            FechaProgramado       = DateTime.Now,
                            Ejecucion             = true,
                            CodigoEtiquetaFichada = codigoBarquilla,
                            OrdenesFabricacionOperacionesTallasCantidad = tarea,
                        });
                    }

                    db.MaquinasColasTrabajo.AddRange(trabajosInsertar);
                    db.SaveChanges();
                }
            }

            return(trabajosInsertar);
        }