Product substitution in BoM

Requerimiento: 
Poder sustituir de forma masiva un componente presente en N listas de materiales por otro componente.
Se propone incluir una nueva entrada de menú: Cambio masivo en lista de materiales. Este nuevo elemento contendrá los siguientes campos:
Producto1: Producto a cambiar
Producto2: Producto por el que se cambia

Workflow: Nuevo → En proceso → Realizado.

Botón → Cargar listas afectadas (Al pasar de nuevo a En proceso)
Al pulsar este botón, se cargarán en una tabla de la pantalla todas las listas de materiales que contienen el producto a cambiar. Si por algún motivo, se quisiera no realizar el cambio en alguna de ellas, simplemente bastaría con eliminarla de la lista.

Botón → Ejecutar cambio (Al pasar de En proceso a Realizado)
Al pulsar este botón, se cambia el producto1 por el producto2, en todas las listas de materiales que estuviesen en la tabla y se “cierra” el objeto. Es decir, ya no se puede cambiar nada de él. De esta forma queda un histórico de todos los cambios masivos de productos

REVERTIR UN CAMBIO previamente realizado
Se incluirá un botón "revertir" que se mostrará en los cambios masivos en estado Realizado
 Este botón realizará los siguientes pasos
  • “copia” el cambio en uno nuevo
  • Asigna Producto2: Producto a cambiar y Producto1: Producto por el que se cambia. (en este caso, se marcan ambos campos NO EDITABLES para evitar errores de usuario)
  • La lista de LMs a cambiar será la misma que la del cambio original
  • El estado será directamente "en proceso" y
  • El usuario puede ejecutar el cambio cuando estime