public ID PostListaPaquetesdePaqueteProcesado([FromBody] List <Paquete> ListaDatos)
        {
            if (ListaDatos == null && ListaDatos.Count > 0)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            int  ret              = -1;
            int  Codigo           = 1;
            int  Finalizado       = 0;
            bool ActualizarPedido = false;

            Pedidos Pedido          = ClassBD.ObtenerPedidoByIdRecepcion(ListaDatos[0].idRecepcion);
            Paquete PaqueteSuperior = ClassBD.ObtenerPaqueteById(ListaDatos[0].idPaqueteSuperior);
            Proceso Proceso         = ClassBD.ObtenerProcesoById(ListaDatos[0].idProceso);

            PaqueteSuperior.CodigoPaquete += Proceso.Codigo;

            List <Paquete> SubPaquetesActuales = ClassBD.ObtenerPaquetesByPaqueteSuperior(PaqueteSuperior.idPaquete);

            if (SubPaquetesActuales != null && SubPaquetesActuales.Count > 0)
            {
                foreach (Paquete PaqueteExistente in SubPaquetesActuales)
                {
                    ClassBD.EliminarPaquete(PaqueteExistente.idPaquete);
                }
            }

            foreach (Paquete Pack in ListaDatos)
            {
                Pack.Embarque      = PaqueteSuperior.Embarque;
                Pack.idEstatus     = 1;
                Pack.CodigoPaquete = PaqueteSuperior.CodigoPaquete + Codigo;
                Codigo++;
                Pack.idProcesoProduccion = Pack.idProceso;
                Pack.Precio = Pack.Peso * Proceso.PrecioKG;
                if (Pack.idProcesoProduccion == Pedido.idProcesoFinal)
                {
                    Pack.idEstatus   = 4;
                    ActualizarPedido = true;
                }
                ret         = ClassBD.AgregarPaquete(Pack);
                Finalizado += Pack.Finalizado;
            }
            if (Finalizado > 0)
            {
                ClassBD.ActualizarEstatusPaquete(PaqueteSuperior, 3);
            }

            if (ActualizarPedido)
            {
                double    Porcentaje             = 0;
                Recepcion Recep                  = ClassBD.ObtenerRecepcionRecicladoraById(ListaDatos[0].idRecepcion);
                Paquete   ProduccionProcesoFinal = ClassBD.ObtenerProduccionbyProcesoFinal(ListaDatos[0].idRecepcion, Pedido.idProcesoFinal);
                Paquete   BasuraPedidoCompleto   = ClassBD.ObtenerTodaBasuraByidRecepcion(ListaDatos[0].idRecepcion);

                Porcentaje = (100 * (ProduccionProcesoFinal.Peso + BasuraPedidoCompleto.Peso)) / Recep.PesoInterno;
                ClassBD.ActualizarProgresoPedido(Porcentaje, Pedido.idPedidos);
            }

            return(new ID(ret));
        }