Esempio n. 1
0
 /// <summary>
 /// a partir de una id de operacion, encuentra las ofot
 /// </summary>
 /// <param name="idOperacion"></param>
 /// <returns></returns>
 public static List<OrdenesFabricacionOperacionesTallas> ObtenerOperacionesTallasOperacion(int idOperacion)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         return db.OrdenesFabricacionOperacionesTallas.Where(x => x.IdOrdenFabricacionOperacion == idOperacion).ToList();
     }
 }
 public List <SP_BarquillaBuscarInformacionEnSeccion_Result> BuscarInformacionBarquilla(string codEtiqueta, string codSeccion)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         return(db.SP_BarquillaBuscarInformacionEnSeccion(codEtiqueta, codSeccion).ToList());
     }
 }
Esempio n. 3
0
 /// <summary>
 /// busca la lista de tareas en formato SP_BarquillaBuscarInformacionEnSeccion a partir de una ofot
 /// </summary>
 /// <param name="idOfot"></param>
 /// <param name="maquinas"></param>
 /// <returns></returns>
 public static List<SP_BarquillaBuscarInformacionEnSeccion_Result> BuscarTareasPorOfot(int idOfot, List<Maquinas> maquinas)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         var tarea = db.OrdenesFabricacionOperacionesTallasCantidad.FirstOrDefault(x => x.IdOrdenFabricacionOperacionesTallas == idOfot);
         List<SP_BarquillaBuscarInformacionEnSeccion_Result> info = new List<SP_BarquillaBuscarInformacionEnSeccion_Result>();
         var orden = tarea.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.OrdenesFabricacion;
         info.Add(new SP_BarquillaBuscarInformacionEnSeccion_Result
         {
             Codigo = orden.Codigo,
             IdOrden = orden.ID,
             CodigoArticulo = orden.CodigoArticulo,
             DESCRIPCIONARTICULO = orden.Campos_ERP.DESCRIPCIONARTICULO,
             NOMBRECLI = orden.Campos_ERP.NOMBRECLI,
             CodigoAgrupacion = orden.Agrupacion,
             CodigoEtiqueta = tarea.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.ID.ToString().PadLeft(13, '0'),
             Talla = tarea.OrdenesFabricacionOperacionesTallas.Tallas,
             Cantidad = tarea.CantidadFabricar.Value + tarea.CantidadSaldos.Value,
             CodUtillaje = tarea.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.CodUtillaje,
             Descripcion = tarea.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.Descripcion,
             IdUtillajeTalla = tarea.OrdenesFabricacionOperacionesTallas.IdUtillajeTalla,
             Tallas = tarea.OrdenesFabricacionOperacionesTallas.Tallas,
             CantidadFabricar = tarea.CantidadFabricar.Value + tarea.CantidadSaldos.Value,
             CantidadFabricada = tarea.OrdenesFabricacionProductos.Sum(x => x.Cantidad),
             PedidoLinea = orden.Campos_ERP.PEDIDO + "/" + orden.Campos_ERP.LINEAPEDIDO,
             IdOperacion = tarea.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.ID,
             IdTarea = tarea.ID,
             Productividad = 1,
             Agrupacion = orden.Agrupacion,
             MaquinasEjecucion = maquinas,
         });
         return info;
     }
 }
Esempio n. 4
0
 public static List <Bancadas> ObtenerListaBancadas()
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         return(db.Bancadas.ToList());
     }
 }
 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();
     }
 }
Esempio n. 6
0
        public static List <MaquinasRegistrosDatos> ObtenerHistoricoParesOperario(int idOperario, string ipAutomata, int posicion, DateTime fechaInicio, DateTime fechaFin)
        {
            fechaInicio = fechaInicio.ToUniversalTime();
            fechaFin    = fechaFin.ToUniversalTime();
            using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
            {
                var registros =
                    db.MaquinasRegistrosDatos
                    .Where(x => x.IdOperario == idOperario &&
                           x.IpAutomata == ipAutomata &&
                           x.PosicionMaquina == posicion &&
                           (fechaInicio <= x.Fecha && x.Fecha <= fechaFin)).ToList();

                foreach (var registro in registros)
                {
                    if (registro.IdTarea != 0)
                    {
                        registro.OrdenesFabricacionOperacionesTallasCantidad = db.OrdenesFabricacionOperacionesTallasCantidad
                                                                               .Include("OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.OrdenesFabricacion")
                                                                               .FirstOrDefault(x => x.ID == registro.IdTarea);
                    }
                }

                return(registros);
            }
        }
Esempio n. 7
0
 public static List <OperacionesControles> ObtenerOperacionesControles()
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         return(db.OperacionesControles.Include("MaquinasTipos.Maquinas").Include("Operaciones").ToList());
     }
 }
Esempio n. 8
0
        public async static Task <int> InsertarConsumo(int idTarea, int pares, int idOperario, int idMaquina, bool finalizar)
        {
            using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
            {
                db.OrdenesFabricacionProductos.Add(new OrdenesFabricacionProductos
                {
                    Cantidad      = (double)pares,
                    FechaCreacion = DateTime.Now,
                    IdMaquina     = idMaquina,
                    IdOperario    = idOperario,
                    Tipo          = "PUESTO",
                    IdOrdenFabricacionOperacionTallaCantidad = idTarea,
                });

                if (finalizar)
                {
                    var  tareadb    = db.OrdenesFabricacionOperacionesTallasCantidad.Find(idTarea);
                    bool finalizado = tareadb.Finalizado ?? false;
                    if (!finalizado)
                    {
                        tareadb.Finalizado = true;
                        tareadb.IdEstado   = 5;
                    }
                }

                return(await db.SaveChangesAsync());
            }
        }
Esempio n. 9
0
 public static List<OperariosRegistrosLabores> ObtenerLaboresOperario(int idOperario, DateTime fechaInicio, DateTime fechaFin)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         return db.OperariosRegistrosLabores.Where(x => x.IdOperario == idOperario && fechaInicio <= x.FechaInicioLabor && x.FechaInicioLabor <= fechaFin).ToList();
     }
 }
Esempio n. 10
0
 public static List <Maquinas> ObtenerMaquinasEnSecciones(List <string> secciones)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         return(db.Maquinas.Where(x => secciones.Contains(x.CodSeccion)).ToList());
     }
 }
Esempio n. 11
0
 public Operarios BuscarPorCodigo(string codigo)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         return(db.Operarios.FirstOrDefault(x => x.CodigoObrero.Contains(codigo)));
     }
 }
Esempio n. 12
0
 public static List<SP_BarquillaBuscarInformacionEnSeccion_Result> BuscarTareasPorOfot(int idOfot,string talla)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         var ofot = db.OrdenesFabricacionOperacionesTallas.FirstOrDefault(x => x.ID == idOfot);
         var ofotc = ofot.OrdenesFabricacionOperacionesTallasCantidad.First();
         var campos =ofot.OrdenesFabricacionOperaciones.OrdenesFabricacion.Campos_ERP;
         return new List<SP_BarquillaBuscarInformacionEnSeccion_Result>() { new SP_BarquillaBuscarInformacionEnSeccion_Result
         {
              CantidadFabricar = ofotc.CantidadFabricar.Value + ofotc.CantidadSaldos.Value,
              Cantidad = ofotc.CantidadFabricar.Value + ofotc.CantidadSaldos.Value,
              Agrupacion = 0,
              CantidadFabricada = ofotc.OrdenesFabricacionProductos.Sum(x=>x.Cantidad),
              Codigo = ofot.OrdenesFabricacionOperaciones.OrdenesFabricacion.Codigo,
              CodigoAgrupacion = ofot.OrdenesFabricacionOperaciones.OrdenesFabricacion.Agrupacion,
              CodigoArticulo = ofot.OrdenesFabricacionOperaciones.OrdenesFabricacion.CodigoArticulo,
              CodigoEtiqueta = "",
              CodUtillaje = ofot.OrdenesFabricacionOperaciones.CodUtillaje,
              Descripcion = ofot.OrdenesFabricacionOperaciones.Descripcion,
              DESCRIPCIONARTICULO = campos==null?"SIN DESC":campos.DESCRIPCIONARTICULO,
              NOMBRECLI=campos==null?"ARNEPLANT S.L.":campos.NOMBRECLI,
              IdOperacion = ofot.IdOrdenFabricacionOperacion,
              IdOrden = ofot.OrdenesFabricacionOperaciones.IdOrdenFabricacion,
              IdTarea = ofotc.ID,
              IdUtillajeTalla = ofot.IdUtillajeTalla,
              PedidoLinea = (campos==null?"0":campos.PEDIDO.ToString())+  "/"+(campos==null?"0":campos.LINEAPEDIDO.ToString()),
              Talla = talla,
              Tallas = ofot.Tallas,
              Productividad = 1,
         }
         };
     }
 }
Esempio n. 13
0
 public static void InsertarStocks(List <StockArticulos> stocks)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         db.StockArticulos.AddRange(stocks);
         db.SaveChanges();
     }
 }
Esempio n. 14
0
 public static void InsertarCorreccion(Tarea tarea, int idOperario, int idPuesto, int pares)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         db.MaquinasRegistrosDatos.Add(TranformarTareaAMaquinaRegistroDato(tarea, idOperario, idPuesto, pares, false, 1));
         db.SaveChangesAsync();
     }
 }
Esempio n. 15
0
 public static void InsertarRegistroLabor(OperariosRegistrosLabores registro)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         db.OperariosRegistrosLabores.Add(registro);
         db.SaveChanges();
     }
 }
Esempio n. 16
0
 public static Bancadas ObtenerBancadaConMaquinas(int idBancada)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         var bancada = db.Bancadas
                       .Include("Maquinas")
                       .FirstOrDefault(x => x.ID == idBancada);
         return(bancada);
     }
 }
Esempio n. 17
0
 public List <OrdenesFabricacionProductos> PaquetesFabricadosOperario(int idOperario, DateTime fechaInicio, DateTime fechaFin)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         return(db.OrdenesFabricacionProductos
                .Include("OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.OrdenesFabricacion")
                .Where(x => x.IdOperario == idOperario &&
                       (fechaInicio <= x.FechaCreacion && x.FechaCreacion <= fechaFin)).ToList());
     }
 }
Esempio n. 18
0
 public Bancadas BuscarPorId(int id)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         return(db.Bancadas
                .Include("Maquinas")
                .Include("Maquinas.MaquinasColasTrabajo.OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.OrdenesFabricacion.Campos_ERP")
                .Include("Maquinas.MaquinasColasTrabajo.OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionProductos")
                .FirstOrDefault(x => x.ID == id));
     }
 }
Esempio n. 19
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();
     }
 }
Esempio n. 21
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;
         }
     }
 }
Esempio n. 22
0
        public static Maquinas ObtenerMaquinaConColaTrabajo(int idMAquina)
        {
            using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
            {
                var cola = db.Maquinas
                           .Include("MaquinasColasTrabajo.OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.OrdenesFabricacion.Campos_ERP")
                           .Include("MaquinasColasTrabajo.OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionProductos")
                           .Where(m => m.ID == idMAquina).FirstOrDefault();


                return(cola);
            }
        }
Esempio n. 23
0
 public static Bancadas ObtenerBancadaPorId(int id)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         return db.Bancadas
             .Include("BancadasConfiguracionesIncidencias")
             .Include("BancadasConfiguracionesPins")
             .Include("Maquinas.MaquinasConfiguracionesPins")
             .Include("Maquinas.MaquinasColasTrabajo.OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.OrdenesFabricacion.Campos_ERP")
             .Include("Maquinas.MaquinasColasTrabajo.OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionProductos")
             .FirstOrDefault(x => x.ID == id);
     }
 }
Esempio n. 24
0
        public static List <MaquinasColasTrabajo> ObtenerColaTrabajoMaquinaPorId(int idMaquina)
        {
            using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
            {
                var cola = db.MaquinasColasTrabajo
                           .Include("OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.OrdenesFabricacion.Campos_ERP")
                           .Include("OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionProductos")
                           .Where(m => m.IdMaquina == idMaquina).ToList();


                return(cola);
            }
        }
Esempio n. 25
0
        public static List<MaquinasRegistrosDatos> ObtenerResumenOperario(int idOperario , string ipautomata,DateTime fechaInicio, DateTime fechaFin)
        {
            fechaInicio = fechaInicio.ToUniversalTime();
            fechaFin = fechaFin.ToUniversalTime();

            using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
            {
                var  registros= db.MaquinasRegistrosDatos
                    .Include("OrdenesFabricacionOperacionesTallasCantidad.OrdenesFabricacionOperacionesTallas.OrdenesFabricacionOperaciones.OrdenesFabricacion")
                   .Where(x => x.IdOperario == idOperario && x.IpAutomata == ipautomata &&  
               (fechaInicio <= x.Fecha && x.Fecha <= fechaFin)).ToList();

                return registros;
            }
        }
Esempio n. 26
0
 public static List<SP_BarquillaBuscarInformacionEnSeccion_Result> BuscarTareasPorCodigoBarquilla(string codigo, List<Maquinas> maquinas)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         List<SP_BarquillaBuscarInformacionEnSeccion_Result> info = new List<SP_BarquillaBuscarInformacionEnSeccion_Result>();
         foreach (var maquina in maquinas)
         {
             var _infos = db.SP_BarquillaBuscarInformacionEnSeccion(codigo, maquina.CodSeccion).ToList();
             foreach (var _info in _infos)
             {
                 _info.MaquinasEjecucion.Add(maquina);
             }
             info.AddRange(_infos);
         }
         return info;
     }
 }
Esempio n. 27
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();
            }
        }
Esempio n. 28
0
        public static Maquinas ObtenerMaquinaCompleta(int idMaquina)
        {
            using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
            {
                var maquina = db.Maquinas
                              .Include("MaquinasColasTrabajo" +
                                       ".OrdenesFabricacionOperacionesTallasCantidad" +
                                       ".OrdenesFabricacionOperacionesProductos")

                              .Include("MaquinasColasTrabajo" +
                                       ".OrdenesFabricacionOperacionesTallasCantidad" +
                                       ".OrdenesFabricacionOperacionesTallas" +
                                       ".OrdenesFabricacionOperaciones" +
                                       ".OrdenesFabricacion" +
                                       ".Campos_ERP")

                              .FirstOrDefault(x => x.ID == idMaquina);
                return(maquina);
            }
        }
Esempio n. 29
0
 public static OperacionesControles BuscarControlOperacion(int idOfo, int idTipoMaquina)
 {
     using (SistemaGlobalPREEntities db = new SistemaGlobalPREEntities())
     {
         var ofo = db.OrdenesFabricacionOperaciones.Find(idOfo);
         if (ofo.IdOperacionMaestra == null)
         {
             return(OperacionesControles.Default);
         }
         var control = db.OperacionesControles.FirstOrDefault(x => x.IdOperacion == ofo.IdOperacionMaestra && x.IdTipoMaquina == idTipoMaquina);
         if (control == null)
         {
             return(OperacionesControles.Default);
         }
         else
         {
             return(control);
         }
     }
 }
Esempio n. 30
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);
        }