Ejemplo n.º 1
0
        public JsonResult GuardarAsignaciones(AsignarOrdenVentaModel model)
        {
            var response = new JsonResponse();

            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.GuardarAsignacionesOrdeneVenta(
                        model.OrdenesVenta.Select(p => p.Id).ToList(),
                        model.AsistentePlaneamiento.Select(p => new Usuario
                    {
                        Id         = p.Id,
                        CantidadOV = p.CantidadOV
                    }).ToList());
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
Ejemplo n.º 2
0
        public JsonResult ValidarHorarioMaquina(int idMaquina, string fechaInicio, string fechaFin)
        {
            var response = new JsonResponse();

            try
            {
                var f1 = Utils.ConvertDate(fechaInicio, "dd/MM/yyyy HH:mm").Value;
                var f2 = Utils.ConvertDate(fechaFin, "dd/MM/yyyy HH:mm").Value;

                var cantidad = 0;
                using (var service = new ProduccionServiceClient())
                {
                    cantidad = service.ValidarHorarioOrdenProduccionSecuencia(idMaquina, f1, f2);
                }

                response.Data    = cantidad;
                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
Ejemplo n.º 3
0
        public ActionResult EjecutarOrdenProduccion()
        {
            var model = new List <OrdenProduccionModel>();

            try
            {
                IList <OrdenProduccion> ordenesProduccion;
                using (var service = new ProduccionServiceClient())
                {
                    ordenesProduccion = service.ListarOrdenesProduccionParaEjecucion();
                }

                foreach (var item in ordenesProduccion)
                {
                    model.Add(new OrdenProduccionModel
                    {
                        Id               = item.Id,
                        Numero           = item.Numero,
                        NumeroOrdenVenta = item.OrdenVenta.Numero,
                        FechaEntrega     = item.OrdenVenta.FechaEntrega,
                        Estado           = item.Estado,
                        NombreOperador   = item.Operador == null ? string.Empty : item.Operador.NombreCompleto
                    });
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return(View(model));
        }
Ejemplo n.º 4
0
        private OrdenProduccionModel OrdenProduccionPorNumero(string numero)
        {
            var model = new OrdenProduccionModel();

            OrdenProduccion ordenProduccion;

            using (var service = new ProduccionServiceClient())
            {
                ordenProduccion = service.ObetenerOrdenProduccionPorNumero(numero);
            }

            if (ordenProduccion == null)
            {
                throw new Exception("El número (" + numero + ") de Orden de Producción no existe.");
            }

            model.Id                  = ordenProduccion.Id;
            model.Numero              = ordenProduccion.Numero;
            model.CantidadOrdenVenta  = ordenProduccion.OrdenVenta.Cantidad;
            model.DescripcionProducto = ordenProduccion.OrdenVenta.Producto.Descripcion;
            model.FechaEntrega        = ordenProduccion.OrdenVenta.FechaEntrega;
            model.NumeroOrdenVenta    = ordenProduccion.Numero;
            model.StockMinimoProducto = ordenProduccion.OrdenVenta.Producto.StockMinimo;
            model.StockProducto       = ordenProduccion.OrdenVenta.Producto.Stock;
            model.CantidadProducto    = ordenProduccion.OrdenVenta.Cantidad + ordenProduccion.OrdenVenta.Producto.StockMinimo - ordenProduccion.OrdenVenta.Producto.Stock;

            foreach (var item in ordenProduccion.Materiales)
            {
                model.Materiales.Add(new OrdenProduccionMaterialModel
                {
                    IdMaterial          = item.Material.Id,
                    DescripcionMaterial = item.Material.Descripcion,
                    Stock       = item.Material.Stock,
                    StockMinimo = item.Material.StockMinimo,
                    Requerido   = item.Requerido,
                    Reservado   = item.Material.Reservado,
                    Comprar     = item.Comprar
                });
            }

            foreach (var item in ordenProduccion.Secuencia)
            {
                model.Secuencia.Add(new OrdenProduccionSecuenciaModel
                {
                    IdMaquina          = item.Maquina.Id,
                    Secuencia          = item.Secuencia,
                    DescripcionMaquina = item.Maquina.Descripcion,
                    PorcentajeFalla    = item.Maquina.PorcentajeFalla,
                    Tiempo             = item.Maquina.Tiempo,
                    FechaInicio        = item.FechaInicio,
                    FechaFin           = item.FechaFin
                });
            }
            return(model);
        }
Ejemplo n.º 5
0
        public ActionResult CrearOrdenProduccion(string numero)
        {
            var model = new OrdenProduccionModel();

            try
            {
                OrdenVenta ordenVenta;
                using (var service = new ProduccionServiceClient())
                {
                    ordenVenta = service.ObtenerOrdenVentaPorNumero(numero);
                }

                if (ordenVenta == null)
                {
                    throw new Exception("El número (" + numero + ") de Orden de Venta no existe.");
                }

                model.IdOrdenVenta        = ordenVenta.Id;
                model.CantidadOrdenVenta  = ordenVenta.Cantidad;
                model.IdProducto          = ordenVenta.Producto.Id;
                model.DescripcionProducto = ordenVenta.Producto.Descripcion;
                model.FechaEntrega        = ordenVenta.FechaEntrega;
                model.NumeroOrdenVenta    = ordenVenta.Numero;
                model.StockMinimoProducto = ordenVenta.Producto.StockMinimo;
                model.StockProducto       = ordenVenta.Producto.Stock;
                model.CantidadProducto    = model.CantidadOrdenVenta + model.StockMinimoProducto - model.StockProducto;

                List <Material> materiales = null;
                using (var service = new ProduccionServiceClient())
                {
                    materiales = service.ListarMaterialesPorProducto(ordenVenta.Producto.Id);
                }

                foreach (var material in materiales)
                {
                    var materialRequerido = new OrdenProduccionMaterialModel
                    {
                        DescripcionMaterial = material.Descripcion,
                        IdMaterial          = material.Id,
                        Stock       = material.Stock,
                        StockMinimo = material.StockMinimo,
                        Requerido   = material.Cantidad, //Cantidad necesaria para un Producto
                        Reservado   = material.Reservado
                    };

                    model.Materiales.Add(materialRequerido);
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return(View("OrdenProduccion", model));
        }
        public ActionResult CrearOrdenProduccion(string numero)
        {
            var model = new OrdenProduccionModel();
            try
            {
                OrdenVenta ordenVenta;
                using (var service = new ProduccionServiceClient())
                {
                    ordenVenta = service.ObtenerOrdenVentaPorNumero(numero);
                }

                if (ordenVenta == null)
                {
                    throw new Exception("El número (" + numero + ") de Orden de Venta no existe.");
                }

                model.IdOrdenVenta = ordenVenta.Id;
                model.CantidadOrdenVenta = ordenVenta.Cantidad;
                model.IdProducto = ordenVenta.Producto.Id;
                model.DescripcionProducto = ordenVenta.Producto.Descripcion;
                model.FechaEntrega = ordenVenta.FechaEntrega;
                model.NumeroOrdenVenta = ordenVenta.Numero;
                model.StockMinimoProducto = ordenVenta.Producto.StockMinimo;
                model.StockProducto = ordenVenta.Producto.Stock;
                model.CantidadProducto = model.CantidadOrdenVenta + model.StockMinimoProducto - model.StockProducto;

                List<Material> materiales = null;
                using (var service = new ProduccionServiceClient())
                {
                    materiales = service.ListarMaterialesPorProducto(ordenVenta.Producto.Id);
                }

                foreach (var material in materiales)
                {
                    var materialRequerido = new OrdenProduccionMaterialModel
                    {
                        DescripcionMaterial = material.Descripcion,
                        IdMaterial = material.Id,
                        Stock = material.Stock,
                        StockMinimo = material.StockMinimo,
                        Requerido = material.Cantidad, //Cantidad necesaria para un Producto
                        Reservado = material.Reservado
                    };

                    model.Materiales.Add(materialRequerido);
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return View("OrdenProduccion", model);
        }
Ejemplo n.º 7
0
        public JsonResult IniciarProceso(int idMaquina)
        {
            var response = new JsonResponse();

            try
            {
                var maquinaActual = OrdenProduccionActual.Secuencia.FirstOrDefault(p => p.IdMaquina == idMaquina);

                var archivo = string.Format(@"C:\MetalForming\{0}\{1}\plc.txt", OrdenProduccionActual.Numero, maquinaActual.PLC);

                using (var stream = new FileStream(archivo, FileMode.Open, FileAccess.Write))
                {
                    using (var writer = new StreamWriter(stream))
                    {
                        writer.WriteLine("#Maquina:" + maquinaActual.DescripcionMaquina);
                        writer.WriteLine("#FechaInicioProduccion:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
                        writer.WriteLine("#FechaFinProduccion:");
                        writer.WriteLine("#Longitud:" + maquinaActual.Longitud);
                        writer.WriteLine("#Espesor:" + maquinaActual.Espesor);
                        writer.WriteLine("#Ciclo:" + maquinaActual.Ciclo);
                        writer.WriteLine("#NoCiclos:");
                        writer.WriteLine("#MotivosDeParada:");
                        writer.WriteLine("#TiempoParada:");
                        writer.WriteLine("#TiempoProduccion:");
                        writer.WriteLine("#UnidadesAProducir:" + OrdenProduccionActual.CantidadProducto);
                        writer.WriteLine("#UnidadesProducidas:");
                        writer.WriteLine("#UnidadesDefectuosas:");
                    }
                }

                using (var service = new ProduccionServiceClient())
                {
                    service.ActualizarEstadoOrdenProduccionSecuencia(OrdenProduccionActual.Id, idMaquina, Constantes.EstadoProcesoMaquina.EnProceso);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
Ejemplo n.º 8
0
        public JsonResult FinalizarPrograma(int idPrograma, string motivo)
        {
            var response = new JsonResponse();

            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.FinalizarPrograma(idPrograma, motivo);
                }

                response.Success = true;
            }
            catch (Exception ex)
            {
                LogError(ex);
                response.Message = ex.Message;
            }
            return(Json(response));
        }
        public JsonResult AprobarOrdenProduccionMasivo(List<int> ordenesProduccion)
        {
            var response = new JsonResponse();
            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.AprobarMasivoOrdenesProduccion(ordenesProduccion);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
        public JsonResult ActualizarEstadoSecuencia(int idMaquina, string estado)
        {
            var response = new JsonResponse();
            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.ActualizarEstadoOrdenProduccionSecuencia(OrdenProduccionActual.Id, idMaquina, estado);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
        public JsonResult AprobarOrdenProduccionIndividual(int id)
        {
            var response = new JsonResponse();
            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.AprobarIndividualOrdenProduccion(id);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
Ejemplo n.º 12
0
        public JsonResult CrearCarpetasArcivosPLC()
        {
            var response = new JsonResponse();

            try
            {
                foreach (var secuencia in OrdenProduccionActual.Secuencia)
                {
                    var directorio = string.Format(@"C:\MetalForming\{0}\{1}", OrdenProduccionActual.Numero, secuencia.PLC);

                    Directory.CreateDirectory(directorio);

                    var archivo = Path.Combine(directorio, "plc.txt");

                    if (System.IO.File.Exists(archivo))
                    {
                        System.IO.File.Delete(archivo);
                    }

                    var file = System.IO.File.Create(archivo);
                    file.Close();
                    file.Dispose();
                }

                using (var service = new ProduccionServiceClient())
                {
                    service.ActualizarEstadoOrdenProduccion(OrdenProduccionActual.Id, Constantes.EstadoOrdenPoduccion.Conformado);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
Ejemplo n.º 13
0
        public JsonResult GuardarPrograma(ProgramaModel model)
        {
            var response = new JsonResponse();

            try
            {
                var fechaInicio = Utils.ConvertDate(model.FechaInicioStr, "dd/MM/yyyy");
                var fechaFin    = Utils.ConvertDate(model.FechaFinStr, "dd/MM/yyyy");

                var programa = new Programa
                {
                    Id           = model.Id,
                    Numero       = model.Numero,
                    FechaInicio  = fechaInicio.Value,
                    FechaFin     = fechaFin.Value,
                    CantidadOV   = model.CantidadOV,
                    Estado       = model.Estado,
                    IdPlan       = model.IdPlan,
                    OrdenesVenta = new List <OrdenVenta>()
                };

                foreach (var ordenVenta in model.OrdenesVenta)
                {
                    programa.OrdenesVenta.Add(ordenVenta);
                }

                using (var service = new ProduccionServiceClient())
                {
                    response.Data = service.GuardarPrograma(programa);
                }

                response.Success = true;
            }
            catch (Exception ex)
            {
                LogError(ex);
                response.Message = ex.Message;
            }
            return(Json(response));
        }
Ejemplo n.º 14
0
        public JsonResult AprobarOrdenProduccionMasivo(List <int> ordenesProduccion)
        {
            var response = new JsonResponse();

            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.AprobarMasivoOrdenesProduccion(ordenesProduccion);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
Ejemplo n.º 15
0
        public JsonResult AprobarOrdenProduccionIndividual(int id)
        {
            var response = new JsonResponse();

            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.AprobarIndividualOrdenProduccion(id);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
Ejemplo n.º 16
0
        public JsonResult RechazarOrdenProduccion(int id, string motivo)
        {
            var response = new JsonResponse();

            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.RechazarOrdenProduccion(id, motivo);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
Ejemplo n.º 17
0
        public JsonResult ActualizarEstadoSecuencia(int idMaquina, string estado)
        {
            var response = new JsonResponse();

            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.ActualizarEstadoOrdenProduccionSecuencia(OrdenProduccionActual.Id, idMaquina, estado);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
        public JsonResult BuscarMaquina(string descripcion, string tipo, string pld, string configuracion)
        {
            var response = new JsonResponse();
            try
            {
                IList<Maquina> maquinas;
                using (var service = new ProduccionServiceClient())
                {
                    maquinas = service.ListarMaquinaPorBusqueda(descripcion, tipo, pld, configuracion);
                }

                response.Data = maquinas;
                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
Ejemplo n.º 19
0
        public JsonResult BuscarMaquina(string descripcion, string tipo, string pld, string configuracion)
        {
            var response = new JsonResponse();

            try
            {
                IList <Maquina> maquinas;
                using (var service = new ProduccionServiceClient())
                {
                    maquinas = service.ListarMaquinaPorBusqueda(descripcion, tipo, pld, configuracion);
                }

                response.Data    = maquinas;
                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
Ejemplo n.º 20
0
        public JsonResult ObtenerMaquina(int idMaquina)
        {
            var response = new JsonResponse();

            try
            {
                Maquina maquina;
                using (var service = new ProduccionServiceClient())
                {
                    maquina = service.ObtenerMaquinaPorID(idMaquina);
                }

                response.Data    = maquina;
                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
Ejemplo n.º 21
0
        public ActionResult EjecucionOrdenProduccion(string numero)
        {
            var model = new OrdenProduccionModel();

            try
            {
                OrdenProduccion ordenProduccion;
                using (var service = new ProduccionServiceClient())
                {
                    ordenProduccion = service.ObetenerOrdenProduccionPorNumero(numero);
                }

                if (ordenProduccion == null)
                {
                    throw new Exception("El número (" + numero + ") de Orden de Producción no existe.");
                }

                model.Id               = ordenProduccion.Id;
                model.Numero           = ordenProduccion.Numero;
                model.FechaEntrega     = ordenProduccion.OrdenVenta.FechaEntrega;
                model.NumeroOrdenVenta = ordenProduccion.Numero;
                model.Estado           = ordenProduccion.Estado;
                model.CantidadProducto = ordenProduccion.CantidadProducto;

                foreach (var item in ordenProduccion.Materiales)
                {
                    model.Materiales.Add(new OrdenProduccionMaterialModel
                    {
                        IdMaterial          = item.Material.Id,
                        DescripcionMaterial = item.Material.Descripcion,
                        Stock       = item.Material.Stock,
                        StockMinimo = item.Material.StockMinimo,
                        Requerido   = item.Requerido,
                        Reservado   = item.Material.Reservado,
                        Comprar     = item.Comprar
                    });
                }

                foreach (var item in ordenProduccion.Secuencia)
                {
                    model.Secuencia.Add(new OrdenProduccionSecuenciaModel
                    {
                        IdMaquina          = item.Maquina.Id,
                        Secuencia          = item.Secuencia,
                        DescripcionMaquina = item.Maquina.Descripcion,
                        PorcentajeFalla    = item.Maquina.PorcentajeFalla,
                        Tiempo             = item.Maquina.Tiempo,
                        FechaInicio        = item.FechaInicio,
                        FechaFin           = item.FechaFin,
                        Estado             = item.Estado,
                        PLC      = item.Maquina.PLD,
                        Ciclo    = item.Maquina.Ciclo,
                        Longitud = item.Maquina.Longitud,
                        Espesor  = item.Maquina.Espesor
                    });
                }

                OrdenProduccionActual = model;
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return(View(model));
        }
Ejemplo n.º 22
0
        public ActionResult AsignarOrdenVenta()
        {
            var model = new AsignarOrdenVentaModel();

            try
            {
                Programa programaVigente;
                using (var service = new ProduccionServiceClient())
                {
                    programaVigente = service.ObtenerProgramaVigente();
                }

                if (programaVigente != null)
                {
                    model.ProgramaVigente = new ProgramaModel
                    {
                        Id          = programaVigente.Id,
                        Numero      = programaVigente.Numero,
                        FechaInicio = programaVigente.FechaInicio,
                        FechaFin    = programaVigente.FechaFin
                    };

                    IList <OrdenVenta> ordenesVenta;
                    using (var service = new ProduccionServiceClient())
                    {
                        ordenesVenta = service.ListarOrdenesVentaParaAsignar(model.ProgramaVigente.Id);
                    }

                    foreach (var item in ordenesVenta)
                    {
                        model.OrdenesVenta.Add(new OrdenVentaModel
                        {
                            Id           = item.Id,
                            Numero       = item.Numero,
                            Cliente      = item.Cliente,
                            FechaEntrega = item.FechaEntrega,
                            Estado       = item.Estado,
                            IdPrograma   = item.IdPrograma,
                            NombreAsistentePlaneamiento = item.AsistentePlaneamiento == null
                                        ? string.Empty
                                        : item.AsistentePlaneamiento.NombreCompleto
                        });
                    }
                }

                IList <Usuario> asistentesPlaneamiento;
                using (var service = new ProduccionServiceClient())
                {
                    asistentesPlaneamiento = service.ListarAsistentePlaneamiento();
                }

                foreach (var asistentePlaneamiento in asistentesPlaneamiento)
                {
                    model.AsistentePlaneamiento.Add(new UsuarioModel
                    {
                        Id             = asistentePlaneamiento.Id,
                        NombreCompleto = asistentePlaneamiento.NombreCompleto,
                        Username       = asistentePlaneamiento.Username,
                        CantidadOV     = asistentePlaneamiento.CantidadOV
                    });
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return(View(model));
        }
        public JsonResult CrearCarpetasArcivosPLC()
        {
            var response = new JsonResponse();
            try
            {
                foreach (var secuencia in OrdenProduccionActual.Secuencia)
                {
                    var directorio = string.Format(@"C:\MetalForming\{0}\{1}", OrdenProduccionActual.Numero, secuencia.PLC);

                    Directory.CreateDirectory(directorio);

                    var archivo = Path.Combine(directorio, "plc.txt");

                    if (System.IO.File.Exists(archivo))
                        System.IO.File.Delete(archivo);

                    var file = System.IO.File.Create(archivo);
                    file.Close();
                    file.Dispose();
                }

                using (var service = new ProduccionServiceClient())
                {
                    service.ActualizarEstadoOrdenProduccion(OrdenProduccionActual.Id, Constantes.EstadoOrdenPoduccion.Conformado);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
        public ActionResult MantenerOrdenProduccion()
        {
            var model = new ProgramacionModel();
            try
            {
                Programa programaVigente;
                using (var service = new ProduccionServiceClient())
                {
                    programaVigente = service.ObtenerProgramaVigente();
                }

                if (programaVigente != null)
                {
                    model.ProgramaVigente = new ProgramaModel
                    {
                        Id = programaVigente.Id,
                        Numero = programaVigente.Numero,
                        FechaInicio = programaVigente.FechaInicio,
                        FechaFin = programaVigente.FechaFin
                    };

                    IList<OrdenVenta> ordenesVenta;
                    using (var service = new ProduccionServiceClient())
                    {
                        ordenesVenta = service.ListarOrdenesVentaPorPrograma(model.ProgramaVigente.Id);
                    }

                    foreach (var item in ordenesVenta)
                    {
                        model.OrdenesVenta.Add(new OrdenVentaModel
                        {
                            Id = item.Id,
                            Numero = item.Numero,
                            Cliente = item.Cliente,
                            FechaEntrega = item.FechaEntrega,
                            Estado = item.Estado,
                            IdPrograma = item.IdPrograma
                        });
                    }

                    IList<OrdenProduccion> ordenesProduccion;
                    using (var service = new ProduccionServiceClient())
                    {
                        ordenesProduccion = service.ListarOrdenesProduccionPorPrograma(model.ProgramaVigente.Id);
                    }

                    foreach (var item in ordenesProduccion)
                    {
                        model.OrdenesProduccion.Add(new OrdenProduccionModel
                        {
                            Id = item.Id,
                            Numero = item.Numero,
                            NumeroOrdenVenta = item.OrdenVenta.Numero,
                            FechaEntrega = item.OrdenVenta.FechaEntrega,
                            DescripcionProducto = item.OrdenVenta.Producto.Descripcion,
                            Estado = item.Estado
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return View(model);
        }
        public ActionResult AsignarOrdenProduccion()
        {
            var model = new AsignarOrdenProduccionModel();
            try
            {
                Programa programaVigente;
                using (var service = new ProduccionServiceClient())
                {
                    programaVigente = service.ObtenerProgramaVigente();
                }

                if (programaVigente != null)
                {
                    model.ProgramaVigente = new ProgramaModel
                    {
                        Id = programaVigente.Id,
                        Numero = programaVigente.Numero,
                        FechaInicio = programaVigente.FechaInicio,
                        FechaFin = programaVigente.FechaFin
                    };

                    IList<OrdenProduccion> ordenesProduccion;
                    using (var service = new ProduccionServiceClient())
                    {
                        ordenesProduccion = service.ListarOrdenesProduccionParaAsignar(model.ProgramaVigente.Id);
                    }

                    foreach (var item in ordenesProduccion)
                    {
                        model.OrdenesProduccion.Add(new OrdenProduccionModel
                        {
                            Id = item.Id,
                            Numero = item.Numero,
                            NumeroOrdenVenta = item.OrdenVenta.Numero,
                            FechaEntrega = item.OrdenVenta.FechaEntrega,
                            Estado = item.Estado,
                            DescripcionProducto = item.OrdenVenta.Producto.Descripcion,
                            NombreOperador = item.Operador == null
                                        ? string.Empty
                                        : item.Operador.NombreCompleto
                        });
                    }
                }

                IList<Usuario> operadores;
                using (var service = new ProduccionServiceClient())
                {
                    operadores = service.ListarOperadores();
                }

                foreach (var operador in operadores)
                {
                    model.Operadores.Add(new UsuarioModel
                    {
                        Id = operador.Id,
                        NombreCompleto = operador.NombreCompleto,
                        Username = operador.Username,
                        CantidadOP = operador.CantidadOP
                    });
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return View(model);
        }
        public ActionResult AsignarOrdenVenta()
        {
            var model = new AsignarOrdenVentaModel();
            try
            {
                Programa programaVigente;
                using (var service = new ProduccionServiceClient())
                {
                    programaVigente = service.ObtenerProgramaVigente();
                }

                if (programaVigente != null)
                {
                    model.ProgramaVigente = new ProgramaModel
                    {
                        Id = programaVigente.Id,
                        Numero = programaVigente.Numero,
                        FechaInicio = programaVigente.FechaInicio,
                        FechaFin = programaVigente.FechaFin
                    };

                    IList<OrdenVenta> ordenesVenta;
                    using (var service = new ProduccionServiceClient())
                    {
                        ordenesVenta = service.ListarOrdenesVentaParaAsignar(model.ProgramaVigente.Id);
                    }

                    foreach (var item in ordenesVenta)
                    {
                        model.OrdenesVenta.Add(new OrdenVentaModel
                        {
                            Id = item.Id,
                            Numero = item.Numero,
                            Cliente = item.Cliente,
                            FechaEntrega = item.FechaEntrega,
                            Estado = item.Estado,
                            IdPrograma = item.IdPrograma,
                            NombreAsistentePlaneamiento = item.AsistentePlaneamiento == null
                                        ? string.Empty
                                        : item.AsistentePlaneamiento.NombreCompleto
                        });
                    }
                }

                IList<Usuario> asistentesPlaneamiento;
                using (var service = new ProduccionServiceClient())
                {
                    asistentesPlaneamiento = service.ListarAsistentePlaneamiento();
                }

                foreach (var asistentePlaneamiento in asistentesPlaneamiento)
                {
                    model.AsistentePlaneamiento.Add(new UsuarioModel
                    {
                        Id = asistentePlaneamiento.Id,
                        NombreCompleto = asistentePlaneamiento.NombreCompleto,
                        Username = asistentePlaneamiento.Username,
                        CantidadOV = asistentePlaneamiento.CantidadOV
                    });
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return View(model);
        }
        public ActionResult Index()
        {
            var model = new ProgramacionModel();
            try
            {
                IList<OrdenVenta> ordenesVenta;
                using (var service = new ProduccionServiceClient())
                {
                    ordenesVenta = service.ListarOrdenesVenta();
                }

                foreach (var item in ordenesVenta)
                {
                    model.OrdenesVenta.Add(new OrdenVentaModel
                    {
                        Id = item.Id,
                        Numero = item.Numero,
                        Cliente = item.Cliente,
                        FechaEntrega = item.FechaEntrega,
                        Estado = item.Estado
                    });
                }

                IList<OrdenProduccion> ordenesProduccion;
                using (var service = new ProduccionServiceClient())
                {
                    ordenesProduccion = service.ListarOrdenesProduccion();
                }

                foreach (var item in ordenesProduccion)
                {
                    model.OrdenesProduccion.Add(new OrdenProduccionModel
                    {
                        Id = item.Id,
                        Numero = item.Numero,
                        NumeroOrdenVenta = item.OrdenVenta.Numero,
                        FechaEntrega = item.OrdenVenta.FechaEntrega,
                        DescripcionProducto = item.OrdenVenta.Producto.Descripcion,
                        Estado = item.Estado
                    });
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return View(model);
        }
        public JsonResult RechazarOrdenProduccion(int id, string motivo)
        {
            var response = new JsonResponse();
            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.RechazarOrdenProduccion(id, motivo);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
        public JsonResult ObtenerMaquina(int idMaquina)
        {
            var response = new JsonResponse();
            try
            {
                Maquina maquina;
                using (var service = new ProduccionServiceClient())
                {
                    maquina = service.ObtenerMaquinaPorID(idMaquina);
                }

                response.Data = maquina;
                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
        public ActionResult EjecutarOrdenProduccion()
        {
            var model = new List<OrdenProduccionModel>();
            try
            {
                IList<OrdenProduccion> ordenesProduccion;
                using (var service = new ProduccionServiceClient())
                {
                    ordenesProduccion = service.ListarOrdenesProduccionParaEjecucion();
                }

                foreach (var item in ordenesProduccion)
                {
                    model.Add(new OrdenProduccionModel
                    {
                        Id = item.Id,
                        Numero = item.Numero,
                        NumeroOrdenVenta = item.OrdenVenta.Numero,
                        FechaEntrega = item.OrdenVenta.FechaEntrega,
                        Estado = item.Estado,
                        NombreOperador = item.Operador == null ? string.Empty : item.Operador.NombreCompleto
                    });
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return View(model);
        }
Ejemplo n.º 31
0
        public ActionResult MantenerPrograma()
        {
            var model = new ProgramaModel();

            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    model.PlanVigente = service.ObtenerPlanVigente();
                }

                if (model.PlanVigente != null && model.PlanVigente.Estado == Constantes.EstadoPlan.Pendiente)
                {
                    using (var service = new ProduccionServiceClient())
                    {
                        model.ProgramasAnteriores = service.ListrarProgramasPorPlan(model.PlanVigente.Id);
                    }

                    if (model.ProgramasAnteriores.Any(p => p.Estado == Constantes.EstadoPrograma.Programado))
                    {
                        var programaVigente =
                            model.ProgramasAnteriores.LastOrDefault(
                                p => p.Estado == Constantes.EstadoOrdenPoduccion.Programado);

                        if (programaVigente != null)
                        {
                            model.Id          = programaVigente.Id;
                            model.Numero      = programaVigente.Numero;
                            model.FechaInicio = programaVigente.FechaInicio;
                            model.FechaFin    = programaVigente.FechaFin;
                            model.CantidadOV  = programaVigente.CantidadOV;
                            model.Estado      = programaVigente.Estado;

                            model.ProgramasAnteriores.Remove(programaVigente);

                            IList <OrdenVenta> ordenesVentaPorPrograma;
                            using (var service = new ProduccionServiceClient())
                            {
                                ordenesVentaPorPrograma = service.ListarOrdenesVentaPorPrograma(model.Id);
                            }
                            if (ordenesVentaPorPrograma.Count > 0)
                            {
                                foreach (var ordenVenta in ordenesVentaPorPrograma)
                                {
                                    model.OrdenesVenta.Add(ordenVenta);
                                }
                            }
                        }
                    }
                    else
                    {
                        using (var service = new ProduccionServiceClient())
                        {
                            model.OrdenesVenta = service.ListarOrdenesVentaPendiente();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return(View(model));
        }
Ejemplo n.º 32
0
        public ActionResult MantenerOrdenProduccion()
        {
            var model = new ProgramacionModel();

            try
            {
                Programa programaVigente;
                using (var service = new ProduccionServiceClient())
                {
                    programaVigente = service.ObtenerProgramaVigente();
                }

                if (programaVigente != null)
                {
                    model.ProgramaVigente = new ProgramaModel
                    {
                        Id          = programaVigente.Id,
                        Numero      = programaVigente.Numero,
                        FechaInicio = programaVigente.FechaInicio,
                        FechaFin    = programaVigente.FechaFin
                    };

                    IList <OrdenVenta> ordenesVenta;
                    using (var service = new ProduccionServiceClient())
                    {
                        ordenesVenta = service.ListarOrdenesVentaPorPrograma(model.ProgramaVigente.Id);
                    }

                    foreach (var item in ordenesVenta)
                    {
                        model.OrdenesVenta.Add(new OrdenVentaModel
                        {
                            Id           = item.Id,
                            Numero       = item.Numero,
                            Cliente      = item.Cliente,
                            FechaEntrega = item.FechaEntrega,
                            Estado       = item.Estado,
                            IdPrograma   = item.IdPrograma
                        });
                    }

                    IList <OrdenProduccion> ordenesProduccion;
                    using (var service = new ProduccionServiceClient())
                    {
                        ordenesProduccion = service.ListarOrdenesProduccionPorPrograma(model.ProgramaVigente.Id);
                    }

                    foreach (var item in ordenesProduccion)
                    {
                        model.OrdenesProduccion.Add(new OrdenProduccionModel
                        {
                            Id                  = item.Id,
                            Numero              = item.Numero,
                            NumeroOrdenVenta    = item.OrdenVenta.Numero,
                            FechaEntrega        = item.OrdenVenta.FechaEntrega,
                            DescripcionProducto = item.OrdenVenta.Producto.Descripcion,
                            Estado              = item.Estado
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return(View(model));
        }
        public JsonResult IniciarProceso(int idMaquina)
        {
            var response = new JsonResponse();
            try
            {
                var maquinaActual = OrdenProduccionActual.Secuencia.FirstOrDefault(p => p.IdMaquina == idMaquina);

                var archivo = string.Format(@"C:\MetalForming\{0}\{1}\plc.txt", OrdenProduccionActual.Numero, maquinaActual.PLC);

                using (var stream = new FileStream(archivo, FileMode.Open, FileAccess.Write))
                {
                    using (var writer = new StreamWriter(stream))
                    {
                        writer.WriteLine("#Maquina:" + maquinaActual.DescripcionMaquina);
                        writer.WriteLine("#FechaInicioProduccion:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
                        writer.WriteLine("#FechaFinProduccion:");
                        writer.WriteLine("#Longitud:" + maquinaActual.Longitud);
                        writer.WriteLine("#Espesor:" + maquinaActual.Espesor);
                        writer.WriteLine("#Ciclo:" + maquinaActual.Ciclo);
                        writer.WriteLine("#NoCiclos:");
                        writer.WriteLine("#MotivosDeParada:");
                        writer.WriteLine("#TiempoParada:");
                        writer.WriteLine("#TiempoProduccion:");
                        writer.WriteLine("#UnidadesAProducir:" + OrdenProduccionActual.CantidadProducto);
                        writer.WriteLine("#UnidadesProducidas:");
                        writer.WriteLine("#UnidadesDefectuosas:");
                    }
                }

                using (var service = new ProduccionServiceClient())
                {
                    service.ActualizarEstadoOrdenProduccionSecuencia(OrdenProduccionActual.Id, idMaquina, Constantes.EstadoProcesoMaquina.EnProceso);
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
Ejemplo n.º 34
0
        public ActionResult AsignarOrdenProduccion()
        {
            var model = new AsignarOrdenProduccionModel();

            try
            {
                Programa programaVigente;
                using (var service = new ProduccionServiceClient())
                {
                    programaVigente = service.ObtenerProgramaVigente();
                }

                if (programaVigente != null)
                {
                    model.ProgramaVigente = new ProgramaModel
                    {
                        Id          = programaVigente.Id,
                        Numero      = programaVigente.Numero,
                        FechaInicio = programaVigente.FechaInicio,
                        FechaFin    = programaVigente.FechaFin
                    };

                    IList <OrdenProduccion> ordenesProduccion;
                    using (var service = new ProduccionServiceClient())
                    {
                        ordenesProduccion = service.ListarOrdenesProduccionParaAsignar(model.ProgramaVigente.Id);
                    }

                    foreach (var item in ordenesProduccion)
                    {
                        model.OrdenesProduccion.Add(new OrdenProduccionModel
                        {
                            Id                  = item.Id,
                            Numero              = item.Numero,
                            NumeroOrdenVenta    = item.OrdenVenta.Numero,
                            FechaEntrega        = item.OrdenVenta.FechaEntrega,
                            Estado              = item.Estado,
                            DescripcionProducto = item.OrdenVenta.Producto.Descripcion,
                            NombreOperador      = item.Operador == null
                                        ? string.Empty
                                        : item.Operador.NombreCompleto
                        });
                    }
                }

                IList <Usuario> operadores;
                using (var service = new ProduccionServiceClient())
                {
                    operadores = service.ListarOperadores();
                }

                foreach (var operador in operadores)
                {
                    model.Operadores.Add(new UsuarioModel
                    {
                        Id             = operador.Id,
                        NombreCompleto = operador.NombreCompleto,
                        Username       = operador.Username,
                        CantidadOP     = operador.CantidadOP
                    });
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return(View(model));
        }
        public JsonResult GuardarPrograma(ProgramaModel model)
        {
            var response = new JsonResponse();
            try
            {
                var fechaInicio = Utils.ConvertDate(model.FechaInicioStr, "dd/MM/yyyy");
                var fechaFin = Utils.ConvertDate(model.FechaFinStr, "dd/MM/yyyy");

                var programa = new Programa
                {
                    Id = model.Id,
                    Numero = model.Numero,
                    FechaInicio = fechaInicio.Value,
                    FechaFin = fechaFin.Value,
                    CantidadOV = model.CantidadOV,
                    Estado = model.Estado,
                    IdPlan = model.IdPlan,
                    OrdenesVenta = new List<OrdenVenta>()
                };

                foreach (var ordenVenta in model.OrdenesVenta)
                {
                    programa.OrdenesVenta.Add(ordenVenta);
                }

                using (var service = new ProduccionServiceClient())
                {
                    response.Data = service.GuardarPrograma(programa);
                }

                response.Success = true;
            }
            catch (Exception ex)
            {
                LogError(ex);
                response.Message = ex.Message;
            }
            return Json(response);
        }
        public JsonResult GuardarAsignaciones(AsignarOrdenVentaModel model)
        {
            var response = new JsonResponse();
            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.GuardarAsignacionesOrdeneVenta(
                        model.OrdenesVenta.Select(p => p.Id).ToList(),
                        model.AsistentePlaneamiento.Select(p => new Usuario
                        {
                            Id = p.Id,
                            CantidadOV = p.CantidadOV

                        }).ToList());
                }

                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
        public ActionResult MantenerPrograma()
        {
            var model = new ProgramaModel();
            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    model.PlanVigente = service.ObtenerPlanVigente();
                }

                if (model.PlanVigente != null && model.PlanVigente.Estado == Constantes.EstadoPlan.Pendiente)
                {
                    using (var service = new ProduccionServiceClient())
                    {
                        model.ProgramasAnteriores = service.ListrarProgramasPorPlan(model.PlanVigente.Id);
                    }

                    if (model.ProgramasAnteriores.Any(p => p.Estado == Constantes.EstadoPrograma.Programado))
                    {
                        var programaVigente =
                            model.ProgramasAnteriores.LastOrDefault(
                                p => p.Estado == Constantes.EstadoOrdenPoduccion.Programado);

                        if (programaVigente != null)
                        {
                            model.Id = programaVigente.Id;
                            model.Numero = programaVigente.Numero;
                            model.FechaInicio = programaVigente.FechaInicio;
                            model.FechaFin = programaVigente.FechaFin;
                            model.CantidadOV = programaVigente.CantidadOV;
                            model.Estado = programaVigente.Estado;

                            model.ProgramasAnteriores.Remove(programaVigente);

                            IList<OrdenVenta> ordenesVentaPorPrograma;
                            using (var service = new ProduccionServiceClient())
                            {
                                ordenesVentaPorPrograma = service.ListarOrdenesVentaPorPrograma(model.Id);
                            }
                            if (ordenesVentaPorPrograma.Count > 0)
                            {
                                foreach (var ordenVenta in ordenesVentaPorPrograma)
                                {
                                    model.OrdenesVenta.Add(ordenVenta);
                                }
                            }
                        }
                    }
                    else
                    {
                        using (var service = new ProduccionServiceClient())
                        {
                            model.OrdenesVenta = service.ListarOrdenesVentaPendiente();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return View(model);
        }
        public JsonResult ValidarHorarioMaquina(int idMaquina, string fechaInicio, string fechaFin)
        {
            var response = new JsonResponse();
            try
            {
                var f1 = Utils.ConvertDate(fechaInicio, "dd/MM/yyyy HH:mm").Value;
                var f2 = Utils.ConvertDate(fechaFin, "dd/MM/yyyy HH:mm").Value;

                var cantidad = 0;
                using (var service = new ProduccionServiceClient())
                {
                    cantidad = service.ValidarHorarioOrdenProduccionSecuencia(idMaquina, f1, f2);
                }

                response.Data = cantidad;
                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
        public ActionResult VerOrdenProduccion(string numero)
        {
            var model = new OrdenProduccionModel();
            try
            {
                OrdenProduccion ordenProduccion;
                using (var service = new ProduccionServiceClient())
                {
                    ordenProduccion = service.ObetenerOrdenProduccionPorNumero(numero);
                }

                if (ordenProduccion == null)
                {
                    throw new Exception("El número (" + numero + ") de Orden de Producción no existe.");
                }

                model.Id = ordenProduccion.Id;
                model.Numero = ordenProduccion.Numero;
                model.CantidadOrdenVenta = ordenProduccion.OrdenVenta.Cantidad;
                model.DescripcionProducto = ordenProduccion.OrdenVenta.Producto.Descripcion;
                model.FechaEntrega = ordenProduccion.OrdenVenta.FechaEntrega;
                model.NumeroOrdenVenta = ordenProduccion.Numero;
                model.StockMinimoProducto = ordenProduccion.OrdenVenta.Producto.StockMinimo;
                model.StockProducto = ordenProduccion.OrdenVenta.Producto.Stock;
                model.CantidadProducto = ordenProduccion.CantidadProducto;

                foreach (var item in ordenProduccion.Materiales)
                {
                    model.Materiales.Add(new OrdenProduccionMaterialModel
                    {
                        IdMaterial = item.Material.Id,
                        DescripcionMaterial = item.Material.Descripcion,
                        Stock = item.Material.Stock,
                        StockMinimo = item.Material.StockMinimo,
                        Requerido = item.Requerido,
                        Reservado = item.Material.Reservado,
                        Comprar = item.Comprar
                    });
                }

                foreach (var item in ordenProduccion.Secuencia)
                {
                    model.Secuencia.Add(new OrdenProduccionSecuenciaModel
                    {
                        IdMaquina = item.Maquina.Id,
                        Secuencia = item.Secuencia,
                        DescripcionMaquina = item.Maquina.Descripcion,
                        PorcentajeFalla = item.Maquina.PorcentajeFalla,
                        Tiempo = item.Maquina.Tiempo,
                        FechaInicio = item.FechaInicio,
                        FechaFin = item.FechaFin
                    });
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }
            return View("OrdenProduccion", model);
        }
Ejemplo n.º 40
0
        public JsonResult GuardarOrdenProduccion(OrdenProduccionModel model)
        {
            var response = new JsonResponse();

            try
            {
                var ordenProduccion = new OrdenProduccion
                {
                    TomarStock               = model.TomarStock,
                    CantidadProducto         = model.CantidadProducto,
                    CantidadProductoDigitado = model.CantidadProductoDigitado,
                    Estado     = Constantes.EstadoOrdenPoduccion.PendienteAprobar,
                    OrdenVenta = new OrdenVenta
                    {
                        Id       = model.IdOrdenVenta,
                        Producto = new Producto
                        {
                            Id          = model.IdProducto,
                            Stock       = model.StockProducto,
                            StockMinimo = model.StockMinimoProducto
                        },
                        Cantidad = model.CantidadOrdenVenta
                    },
                    Materiales = new List <OrdenProduccionMaterial>(),
                    Secuencia  = new List <OrdenProduccionSecuencia>()
                };

                foreach (var material in model.Materiales)
                {
                    ordenProduccion.Materiales.Add(new OrdenProduccionMaterial
                    {
                        Comprar   = material.Comprar,
                        Requerido = material.Requerido,
                        Material  = new Material
                        {
                            Id          = material.IdMaterial,
                            Stock       = material.Stock,
                            StockMinimo = material.StockMinimo
                        }
                    });
                }

                foreach (var secuencia in model.Secuencia)
                {
                    var fechaInicio = Utils.ConvertDate(secuencia.FechaInicioStr, "dd/MM/yyyy HH:mm");
                    var fechaFin    = Utils.ConvertDate(secuencia.FechaFinStr, "dd/MM/yyyy HH:mm");

                    ordenProduccion.Secuencia.Add(new OrdenProduccionSecuencia
                    {
                        Secuencia = secuencia.Secuencia,
                        Maquina   = new Maquina {
                            Id = secuencia.IdMaquina
                        },
                        FechaInicio = fechaInicio.Value,
                        FechaFin    = fechaFin.Value
                    });
                }

                var idOrdenProduccion = 0;
                using (var service = new ProduccionServiceClient())
                {
                    idOrdenProduccion = service.RegistrarOrdenProduccion(ordenProduccion);
                }

                response.Data    = idOrdenProduccion;
                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return(Json(response));
        }
        public JsonResult Guardar(OrdenProduccionModel model)
        {
            var response = new JsonResponse();
            try
            {
                var ordenProduccion = new OrdenProduccion
                {
                    CantidadProducto = model.CantidadProducto,
                    TomarStock = model.TomarStock,
                    Estado = "Pendiente",
                    OrdenVenta = new OrdenVenta
                    {
                        Id = model.IdOrdenVenta,
                        Producto = new Producto { Id = model.IdProducto }
                    },
                    Materiales = new List<OrdenProduccionMaterial>(),
                    Secuencia = new List<OrdenProduccionSecuencia>()
                };

                foreach (var material in model.Materiales)
                {
                    ordenProduccion.Materiales.Add(new OrdenProduccionMaterial
                    {
                        Comprar = material.Comprar,
                        Requerido = material.Requerido,
                        Material = new Material {Id = material.IdMaterial}
                    });
                }

                foreach (var secuencia in model.Secuencia)
                {
                    var fechaInicio = Utils.ConvertDate(secuencia.FechaInicioStr, "dd/MM/yyyy HH:mm");
                    var fechaFin = Utils.ConvertDate(secuencia.FechaFinStr, "dd/MM/yyyy HH:mm");

                    ordenProduccion.Secuencia.Add(new OrdenProduccionSecuencia
                    {
                        Secuencia = secuencia.Secuencia,
                        Maquina = new Maquina {Id = secuencia.IdMaquina},
                        FechaInicio = fechaInicio.Value,
                        FechaFin = fechaFin.Value
                    });
                }

                var idOrdenProduccion = 0;
                using (var service = new ProduccionServiceClient())
                {
                    idOrdenProduccion = service.RegistrarOrdenProduccion(ordenProduccion);
                }

                response.Data = idOrdenProduccion;
                response.Success = true;
                response.Message = "Ok";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                LogError(ex);
            }
            return Json(response);
        }
        public JsonResult FinalizarPrograma(int idPrograma, string motivo)
        {
            var response = new JsonResponse();
            try
            {
                using (var service = new ProduccionServiceClient())
                {
                    service.FinalizarPrograma(idPrograma, motivo);
                }

                response.Success = true;
            }
            catch (Exception ex)
            {
                LogError(ex);
                response.Message = ex.Message;
            }
            return Json(response);
        }