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)); }