odoomrp / odoomrp-wip

WIP of OdooMRP
http://www.odoomrp.com
GNU Affero General Public License v3.0
117 stars 247 forks source link

Mover paquetes de sitio #78

Closed anajuaristi closed 9 years ago

anajuaristi commented 10 years ago

Buenas...

En el wizard que salta en el botón transfer, me habeis incluido un one2many nuevo que permite mover paquetes de sitio, que está genial... pero... debería ponerse en un sitio aparte, no en este punto. Es correcto que cuando estoy transfiriendo material, si lo quiero meter en un paquete lo meto. Pero luego, si quiero volver a empaquetar ese paquete, lo haría en principio en otro sitio (A validar) Entonces, metería una entrada de menú adicional o bien un action en quants que me permita seleccionar varios de ellos y pulsar la acción "mover" a otra ubicación. El origen, no me hace falta ya que lo marca el quant. El destino puede ser el mismo paquete en otra ubicación u otro paquete en la misma ubicación. Habría que darle una vuelta de usabilidad. De momento... ¿Podemos sacar este wizard al menú, independizándolo del wizard de consumo? Incluso podría estar el botón en la línea de albarán pero aparte ya que si quiero mover el package recién creado, igualmente tengo que cerrar el wizard y volverlo a lanzar.

Packages To Move The source package will be moved entirely. If you specify a destination package, the source package will be put in the destination package. 4 results are available, use up and down arrow keys to navigate.

Source package Source Location Destination Location Destination package

Añadir un elemento

anajuaristi commented 10 years ago

@mikelarre para la próxima semana... mañana comentamos de voz lo que se pretende en esta tarea.

pedrobaeza commented 9 years ago

Creo recordar que esto ya lo hace de base, y tiene botones para ello.

anajuaristi commented 9 years ago

No que yo sepa. ¿Donde están los botones? Por si acaso me he colado yo

pedrobaeza commented 9 years ago

Ana, me refiero que lo de paquetes a mover es del estándar, y debe ir ahí dentro, ya que sólo se pueden mover paquetes (si no se quiere rehacer todo el código), desde un stock.picking. Si quieres hacer esa operación, crea un nuevo albarán, y reempaquetas en el albarán, sin mover ubicaciones. Yo lo veo correcto.

anajuaristi commented 9 years ago

Para mover desde el albarán debes volver a meter todos los productos que ya tienes empaquetados. Solo es cuestión de cambiar el paquete de ubicación... no tiene más. Creo que no estoy pillando la forma que dices

Cuando empaquetas ya no hay productos "sueltos" están dentro de paquetes, por lo que lo único que hay que hacer es cambiar la ubicación del paquete, no es necesario montar movimientos de almacén ni nada. Es un wizard para reubicar uno o varios paquetes con todo su contenido, sea el que sea en otro sitio.

De hecho, no tiene mucho sentido que esté en el wizard de transfer del picking porque... si a cada producto ya le pones ubicación y pack... ¿Para qué luego vas a mover el pack directamente ahí? Simplemente ubicalo donde es y ya estaría. Creo que hay un "mix" conceptual en esta pantalla y lo suyo sería separarlo en 2 partes. El transfer en el tranfer y el pack, aparte. No hay que tocar nada de código ya que se supone que el botón de mover ya haría lo que tiene que hacer. Entiendo que solo es una llamada a ese wizard y al código que llama la aceptación del mismo.

pedrobaeza commented 9 years ago

Vale, revisando la funcionalidad, no hay una forma clara como dices de mover un paquete entero de ubicación. Siempre se mueven productos, no paquetes. Si se quiere llevar el paquete entero de sitio, hay que crear un nuevo paquete en destino.

Lo que se podría hacer es desde el propio menú Almacén > Productos > Paquetes, se puede crear un asistente vía menú Más o como botón para mover el paquete seleccionado, y poner como elección la ubicación a dónde moverlo. Esto implicaría crear por detrás un stock.picking que mueve todos los productos del paquete a la nueva ubicación, y poner tanto en origen como en destino el mismo stock.quant.package (que no sé si habrá algún tipo de restricción que lo impida).

La pregunta es: ¿merece la pena hacer esto? ¿Lo ha pedido alguien explícitamente?

anajuaristi commented 9 years ago

Si. Dsn. Esta pedido desde el principio del proyecto

oihane commented 9 years ago

Por lo que he podido ver cuando se mueve un paquete lo que se hace es, añadir el primer paquete dentro de otro. Sigo sin averiguar como hacerlo ya que se basa en una función del picking, he pensado en si quieres mover un quant, cambiar el paquete del mismo, y si quieres mover un paquete añadirlo al otro y ya estaría porque no he visto que genere realmente más movimientos o pickings. Pero no me parece que sea exactamente eso lo que haya que hacer (me parece demasiado simple para estar en lo correcto)

anajuaristi commented 9 years ago

Es tan simple tan simple como cambiar la ubicación de todos los quants que tengan asociado ese paquete. Sin más. No hace falta ni un movimiento de almacén. Si le cambias la ubicación, queda cambiado.

Si lo hacemos por movimiento, también se puede, pero... habría que generar un albarán con todos los productos que contiene el paquete ya que los movimientos se asocian a productos.

Yo probaría con cambiar la ubicación de los quants asociados.

anajuaristi commented 9 years ago

Probando esto... lo que ha montado @oihane funciona estupendamente... pero... (tenía que haber un pero)...Una vez visto veo que SI es necesario crear los movimientos de almacén para los productos incluidos en el pack.

La cuestión es que el paquete queda bien movido y sus productos bien ubicados. El stock del producto en la nueva ubicación es correcto. Pero al ir al historial del quant, de los productos que contiene el paquete pasa esto:

Supongamos que el Quant de producto queda en la ubicación Dest2 Y vamos a movimientos/historial del quant y vemos un único movimiento proveedores --> stock Faltaría el último mov stock --> Dest2 porque si no, se crea una inconsistencia de no saber cuándo se movió el producto a dest2 (aunque lo que se haya movido sea el paquete y no el producto en sí... creo que se debe reflejar este último movimiento en el producto)


Por tanto, la primera parte de mover el paquete a otra ubicación estaría correcta Pero es necesario modificar la parte en que se asigna la nueva ubicación a los productos y en su lugar: .- Crear movimiento de stock con: ubicación origen = la del quant ubicación destino = la del paquete = la que el usuario pone en el wizard cantidad y producto = las mismas que las del quant fecha = la del botón de confirmación del wizard .- Realizar el movimiento por código --> Esto modificará la ubicación del quant por lo que ya no debemos hacerlo nosotros. @oihane verifica aquí, si es que modifica la ubicación del quant o crea nuevos ids de quants. Yo creo que modifica la ubicación simplemente, pero mira a ver si es así. Si crea nuevos quants... tendriamos que borrar los antiguos del pack y ponerle estos nuevos. Pero no creo que haga falta.

En principio con esto quedaría perfecto el módulo. :+1:

oihane commented 9 years ago

La ubicación de un paquete depende de los quants que lo componen, todos los quants se encuentran en la misma ubicación. Al mover un paquete lo que se hace es mover todos los quants que lo componen a la nueva ubicación. De manera que lo que entiendo que habría que hacer es generar un nuevo movimiento de stock por cada quant. Pero lo verdad es que no sé si esto hace que el quant se cambie de ubicación, como comenta @anajuaristi pero aunque no lo haga esa parte estaría hecha.

@pedrobaeza genero ese movimiento de stock para mover el quant de una ubicación a otra? Además cada vez que se mueva se generará ese movimiento, no?

pedrobaeza commented 9 years ago

De acuerdo, pon ese movimiento para seguimiento, aunque técnicamente lo que manda en el stock.pack.operation

anajuaristi commented 9 years ago

Estoooooo...@oihane ¿Que había puesto yo exactamente aquí, antes del comentario? Incluso comento qué campos por defecto hay que llevarse al movimiento desde el quant. Recordemos... Hay que leer --> Copy pasteo lo anterior.

La primera parte de mover el paquete a otra ubicación estaría correcta Pero es necesario modificar la parte en que se asigna la nueva ubicación a los productos y en su lugar: .- Crear movimiento de stock con: ubicación origen = la del quant ubicación destino = la del paquete = la que el usuario pone en el wizard cantidad y producto = las mismas que las del quant fecha = la del botón de confirmación del wizard .- Realizar el movimiento por código --> Esto modificará la ubicación del quant por lo que ya no debemos hacerlo nosotros.

anajuaristi commented 9 years ago

Y sobre esto: La ubicación de un paquete depende de los quants que lo componen, todos los quants se encuentran en la misma ubicación. Al mover un paquete lo que se hace es mover todos los quants que lo componen a la nueva ubicación.

Se puede interpretar al revés... Los quants están siempre en la ubicación donde se encuentre el paquete. Si muevo el paquete, debo mover sus quants relacionados por lo que hace falta un onchange en el campo ubicación del paquete. Para que se tenga en cuenta en la modificación del módulo.

oihane commented 9 years ago

La ubicación del paquete es un campo calculado que se basa en los quants que lo componen.

anajuaristi commented 9 years ago

Ahhh.. pues si no hay onchange, nada, no hace falta tenerlo en cuenta que pudiesen cambiar a mano en el propio paquete.