En configurador de pedidos de venta indicamos si hemos de procesar la re-reserva.
También introducimos el nivel que nos marca la prioridad en caso de coincidencia de unidades. En nuestro caso de ejemplo se ordena por el nivel 12 (fecha).
Recogeremos e inicializamos los valores de configuración la clase , de donde obtendremos los valores de longitud del modelo y del nivel fecha.
Si hemos chequeado re-reservar en el programa de Localizaciones de ubicaciones según OPC nos aparecerán dos nuevos botones:
- Re-Reservar y Procesar
- Re-Reservar + Procesar + Imprimir
Tratamos la re-reserva de cada línea de OPC seleccionada y seguidamente procesamos su ubicación.
Pasos a seguir con la línea de OPC
Pasos a seguir con la línea de OPC
- Paso1. Comprobar que de la línea de opc puede ser re-reservada
- Si la línea de reserva de la OPC ha sido parcialmente albaraneada o procesada en orden de salida no se continuara. Solo tratamos líneas de reserva en las que podemos cambiar su código de artículo.
- Si la línea de reserva de la OPC pertenece a un pedido de venta cuyo artículo esta marcado como continuidad de obra no se continuara.
- Si el tipo de unidad de OPC no coincide con su tipo de unidad de stock no se continuara.
- Paso2. Comprobar si hay stock (disponible + reservado con posibilidad de borrado)
de un articulo que sea mas optimo que el actual.
-
Primero de todo bloqueamos los artículos que coincidan con el modelo de la línea de OPC que tratamos para que nadie modifique su stock mientras se esta procesando la re-reserva.
Seleccionamos los artículos sin producción en curso que coincidan con el modelo y su stock real sea mayor o igual que las unidades de la reserva de la línea de OPC.
Si no encontramos ninguno intentamos la misma selección pero con artículos con producción en curso.
Calculamos el stock disponible + reservado con posibilidad de borrado. Para ello sumamos:Stock disponible (real-reservado),
-
Líneas de reserva pendientes sin OPC y sin continuidad de obra.
-
Líneas de reserva pendientes sin continuidad de obra, con OPC y que estén sin albaranear o en orden de salida. Si están parcialmente albaraneadas o en orden de salida no son validas.
-
Procesamos todos los artículos sin incluir el que ya esta en la OPC y nos quedamos con el stock más ajustado a las unidades que necesitamos. En caso de coincidencia de unidades nos quedaremos con el artículo que tiene el nivel fecha mayor. En este paso guardaremos en un vector las líneas de reserva que podemos borrar.
-
- Paso 3: Si hay articulo mas optimo lo sustituimos.
- Pueden darse dos situaciones
- Caso 1: Nos basta con el disponible de la mejor reserva
- Entonces
- 1) Actualizamos el código de articulo de las posibles líneas de OPC
- 2) Actualizamos el código de artículo de la línea de reserva.
- 3) Restamos el stock reservado del código de articulo sustituido
- 4) Sumamos el stock reservado al articulo que hemos encontrado
- Caso 2: Nos hace falta liberar reservas según fpe3 mas reciente
- Repetimos los pasos del caso 1, pues son comunes.
- 5) Actualizamos el código de articulo de las posibles líneas de OPC
- 6) Actualizamos el código de artículo de la línea de reserva.
- 7) Restamos el stock reservado del código de articulo sustituido
- 8) Sumamos el stock reservado al articulo que hemos encontrado
- Ordenamos el vector de reservas a borrar por fpe3. Asignamos las líneas de reserva necesarias a reasignar/borrar hasta que tengamos suficiente. Para cada línea de reserva que hemos de reasignar hacemos:
- 1) Restamos el stock reservado del artículo de la línea de reserva asignada.
- Intentamos reasignar las reservas liberadas. Busco disponible para reasignar articulo a la línea de reserva. Primero se busca disponible sin producción en curso y si no se encuentra se busca disponible con producción en curso.
- Caso 2.1: Si encuentro stock disponible haremos:
- 1) Actualizamos el código de articulo disponible de las posibles líneas de OPC
- 2) Actualizamos el código de artículo disponible de la línea de reserva.
- 3) Sumamos el stock reservado al artículo disponible que hemos encontrado.
- Caso 2.2: La reserva liberada no puede ser reasignada por falta de stock disponible:
- 1) Hemos de mandar un mensaje al usuario que hizo el pedido notificándole que su reserva ha sido cancelada.
- 2) Borro las posibles líneas de OPCs de esa línea de reserva
- 3) Si las posibles OPCs quedan sin líneas borramos la cabecera de OPC, sino recalculamos los totales de las OPCs.
- 4) Borro la línea de reserva
- 5) Actualizamos los datos de la línea de pedido afectados, es decir actualizamos las unidades reservadas y opc..