El botón «Reservar Doc.» intenta reservar stock para las líneas elegibles del pedido de venta que está abierto. Recorre el documento completo, calcula lo que falta por reservar en cada línea y busca stock disponible que cumpla la configuración. Antes de hacerlo, recalcula el pedido y sus contadores, por lo que la pulsación puede modificar datos incluso si después no se consigue ninguna reserva.
La complejidad de esta acción y sus limites impuestos hacen que muchas veces se habla de datos 'no elegibles' en conjunto por lo que mostrar la causa por la que no se realiza una reserva puede ser 'costoso' además de complejo en procesamiento.
La lógica principal está es
- Comprueba la "Denegación de Reserva por Usuario". Busca una configuración para usuario, empresa y cliente [GENERAL.FZC0258]; si no existe, busca la general del usuario y empresa. Si no encuentra ninguna configuración, no aplica esa denegación.
- Recalcula el pedido. Este recalcula, entre otros, los contadores de unidades servidas, anuladas, pendientes, reservadas, cargadas y planificadas [FZG012]; también actualiza datos de reservas y OPC. Para Pedido y PedidoL revisa el estado del documento. Por tanto, esta fase tiene efectos propios, anteriores a la reserva.
-
Selecciona las líneas a tratar. Para el código del documento mostrado,
calcula: unidades a reservar [UNID_012 − U_ANULADAS_012 − U_RESERVADAS_012] Solo selecciona líneas con resultado positivo y que cumplan, entre otras,
estas condiciones:
- Tipo Pedido o PedidoL; también ProformaR si está configurado.
- El documento está marcado 'Reserva Automática' [RES_AUTO_013 = 'S'] y su Serie usa reservas.
- El cliente no está bloqueado.
- La línea no está marcada para compra automática, no tiene pedido de compra asociado y tiene cero unidades planificadas.
- Existen las relaciones de artículo, cliente y dirección verificadas exigidas por la consulta .
- Aplica restricciones adicionales. Según la configuración y la forma de pago, comprueba condiciones de cobro (pagado para poder reservasr) o límite del pedido (control de riesgo); si no se cumplen, sale del recorrido. También comprueba el filtro de días mínimos de reserva [fzg959] : si una línea no lo supera, la omite y continúa con la siguiente.
- Busca stock y crea la reserva si encuentra una combinación válida. Al terminar, vuelve a abrir las líneas del pedido y, si está configurado, gestiona advertencias por correo y muestra observaciones de los artículos reservados. Cómo elige el stock El stock disponible se calcula como Real - Reservado [REAL_011 − RESER_011]. Solo considera artículos de categoría A, con stock real positivo, reservado no negativo y disponibilidad positiva, en almacenes que admiten reserva y no son de apoyo. Según la configuración, busca en el almacén de la línea o en almacenes marcados como prioritarios. También puede excluir artículos cuya fecha de consumo preferente esté vencida.
- Si la línea corresponde a un artículo, busca ese código. Para un modelo, puede buscar artículos cuyo código corresponda al modelo.
- Si se aplica la configuración de reserva por artículo, solo continúa cuando en la ficha la marca de Reserva automática es Si, o Exclusiva [RESERVA_AUTO_01 es S o E].
- En modelos configurados con los tipos de reserva FIFO/LIFO, el criterio puede sustituirse por el definido en el cliente y, en su defecto, por el del país. Para ordenar por ese criterio necesita que esté configurado el nivel correspondiente de la clase.
- Convierte unidades entre las del pedido y las del stock cuando son diferentes TU. En la modalidad ordinaria, selecciona una única combinación artículo/almacén con disponibilidad suficiente para cubrir toda la cantidad pendiente de esa línea; entre las candidatas aplica la prioridad de almacén y el orden configurado, terminando por la disponibilidad ascendente. Si ya hay reservas, comprueba la coincidencia de las posiciones configuradas del código del artículo antes de añadir otra.
En la modalidad de simultanear lotes, puede repartir la cantidad entre varias combinaciones de stock. En esta rama, si no consigue completar toda la cantidad de la línea, fuerza un error y revierte la transacción de esa línea.
Por ejemplo, si a una línea le faltan 10 unidades y hay dos lotes válidos con 6 y 4 disponibles, la modalidad ordinaria no encuentra un lote que cubra las 10; la de simultanear lotes puede reservarlas entre ambos, siempre que se cumplan los demás filtros.
Qué datos modifica Por cada reserva que llega a confirmarse, el código:
- Si están habilitados, registra históricos y prepara advertencias u observaciones. La modalidad ordinaria realiza estas operaciones dentro de una transacción por reserva; la de lotes usa una transacción para el reparto de la línea. No hay una única transacción que abarque todo el documento: unas líneas pueden quedar reservadas aunque otras no lo consigan.
El botón se muestra cuando está activa la opción de reserva automática del configurador, inicialmente asociada a RESERVA_PV_01; la visibilidad por sí sola no garantiza que el documento o sus líneas cumplan las condiciones anteriores.
