articulos activo/inactivo


([N1] julian) #1

Buenas tardes, como puedo hacer para que un artículo que marco como inactivo, no me salga a la hora de insertar una línea en una factura,además me gustaría (si es posible), me indique algún mensaje que dicho artículo esta inactivo.

gracias, saludos.


([N1] aztecmexico) #2

Hola Julián, como tal hay muchos caminos.

Pon un campo booleano en la ficha de artículos, luego, tienes varias opciones:

  • Una búsqueda por código o referencia, en la que agregues el componente del campo booleano y solo te devuelva los activos
  • Un cargar lista por código o referencia, en la que deberás leer previamente la ficha y validar si el artículo es inactivo, en cuyo caso mandas el mensaje y finalizas el proceso sin agregar el artículo a la factura.
  • Un localizador, en el que muestres una rejilla con la columna de activo/inactivo y ahí veas si lo agregas o no.

En la documentación encontrarás como utilizar las búsquedas, los cargar lista y los localizadores.

Saludos.


([N4] SyP) #3

Con respecto a este punto, también están las subindexaciones en los campos de los formularios, que usando un indice por nombre con la condición de activo a través del boleano, evita que se pueda poner el artículo que está de baja.

Aunque en vERP he visto el campo artículo del detalle de ventas y no veo que el campo en el formulario esté subindexado y sin embargo no te deja escribir los artículos inactivos. ¿Como lo consigue? porque he buscado y no encuentro como lo hace.


([N3] pacosatu) #4

Hola SyP.

En Velneo toda carga de datos se hace usando uno o varios Índices.
La búsqueda de Artículo para el detalle de Venta se hará cargando los Artículos por un Índice, seguramente el NAME.

Mira la Condición del Índice NAME y ahí tendrás la respuesta de por qué no aparecen los desactivados.

Saludos
Paco Satué


([N4] SyP) #5

No es como tal una carga de datos, sino un campo (edición alfabética) en un formulario, donde el contenido es el nombre del artículo (#ART.NAME). No se usa ningún índice, salvo que se sobre entienda otra cosa o haya algo que yo no esté viendo. Al ver la pregunta de Julian, pensé en la subindexación de los campos, pero antes de contestar me fui a verlo en vERP y en el formulario MOV_G_DET, está el campo del artículo, pero sin subindexación y ahí es donde me dejó descolocado, porque si pongo el artículo como inactivo no aparece.

Y si fuera así, ¿para que servirían las subindexaciones?


([N3] pacosatu) #6

Hola SyP.

Me encanta que surgan estos temas porque aquí hay mucha tela que cortar.

Vayamos por partes:

  • Cualquier consulta al servidor siempre se retorna indexada.
    El ÍNDICE utilizado en la Carga de la lista es el que determina los registros que verá el Usuario y en qué orden.
  • El control Edición alfabética cuando está vinculado a un campo maestro se comporta de manera especial.
  • El control de Edición alfabética busca un Índice en la tabla maestra que tenga como primera parte del Índice un campo igual al que queremos mostrar al Usuario. Normalmente este campo será NAME (en este caso #ART.NAME).
  • ¿Cómo busca el Índice correcto? Pues busca el primer Índice de la tabla ART_M cuya primera parte sea NAME. Este Índice también se llama NAME, pero puede tener cualquier nombre.
  • Se da la circunstancia de el Índice NAME de la tabla ART_M tiene la condición OFF=0, es decir, devuelve solo los registros activos.
  • Vemos que a continuación del Índice NAME de la tabla ART_M existe otro Índice NOM_TOD que no tiene condición, pero como está después del Índice NAME no se selecciona nunca en los controles de Edición alfabética.
  • Recuerda que Velneo es “extremadamente asistido” y esta es una de las consecuencias de dicha “comodidad entre comillas”.
  • Prueba a cambiar de lugar el Índice NOM_TOD y comprueba que ya te aparecen todos los Artículos.

Conclusión: el control Edición alfabética de campos punteros a maestro usará, siempre que pueda, el primer Índice de la lista cuya primera parte sea igual al campo de la tabla maestra que queramos mostrar al Usuario. En este caso NAME.

Y ¿ qué ocurre cuando no hay Índice cuya primera parte sea igual al campo que queremos mostrar al Usuario ?
Pruébalo.

Saludos
Paco Satué


([N4] SyP) #7

Muchas gracias por la información Paco.

Me imaginaba que cogía el indice de NAME, pero no sabía porque motivo. Ahora por lo menos ya lo se.
Como dices, es un tanto peligroso, debería cargar los registros por el ID y usar la subindexación para esos menesteres. En fin, nunca te acostarás sin saber una cosa más.

He probado a quitar todos los índices que contenían NAME y lo que ocurre es que el campo no funciona ni el autocompletar, ni las flechas arriba y abajo. Solo puedes poner valores con el localizador.


([N3] pacosatu) #8

Hola SyP.

Dices 2 cosas:

  • Me imaginaba que cogía el indice de NAME, pero no sabía por qué motivo
  • … es un tanto peligroso, debería cargar los registros por …

lo que demuestra lo poco documentado que están algunos temas en Velneo y por eso tienes que imaginar o presuponer comportamientos, lo que resiente la calidad de tu código.

Este es uno de los puntos criticables de Velneo, por un lado es muy asistido y por lo tanto lo que hace, lo hace bien. Por otro lado, si eso que hace, no quiero que lo haga, es dificil cambiarlo o personalizarlo. Los programadores a la vieja usanza estamos acostumbrados a tener control de cualquier mínimo aspecto de nuestro diseño, tanto a nivel lógica de negocio como interface.

La mayoría de Widgets en Velneo están muy bien y la primera vez que los usas son hasta divertidos de usar, que no programar, porque hacen lo que hacen y punto. Con el paso del tiempo te vas dando cuenta que un grado de personalización nativa (sin uso del API) no les vendría nada mal.

Saludos
Paco Satué