vGestión - Generar pedidos de venta automáticamente.


(ame) #1

Hola a todos,

 

Estoy dándole caña a la vGestión pero resulta que me he quedado atascado en una nueva funcionalidad que quiero incorporarle.

El caso es que he creado una tabla de pedidos de venta diarios con el objetivo de generar cada día, pedidos de venta automáticamente sin tener que pasar por el formulario de alta.

Tal y como está diseñada vGestión, tenemos que cada vez que queramos dar de alta un nuevo pedido, usamos para ello el formulario de alta correspondiente, proporcionándole todos los datos como son: el cliente que hace el pedido, los artículos que pide, cantidad, fecha del pedido, etc. Esto está muy bien cuando se tratan de pedidos esporádicos y/o temporales, para un número muy reducido de clientes en el día, para pocos artículos, etc. Pero imaginad por ejemplo que se tiene una serie de clientes habituales los cuales cada día hacen sus pedidos fijos, con una cantidad considerable de artículos distintos; ¿sería bastante engorroso realizar una y otra vez este proceso de alta de pedidos, verdad?

La solución que propuesto para este problema ha sido crear una tabla de pedidos diarios, muy simple, como únicos campos el cliente, el artículo y la cantidad. Cliente y artículo son maestros a sus correspondientes tablas obviamente. Así pues, con todo lo anterior explicado, nos podríamos encontrar por ejemplo, con la siguiente situación:

 

Tabla pedidos diarios -> VTA_PED_FIJO

ID       Cliente           Artículo        Cantidad

1        cliente 1         artículo 1         10

2        cliente 2         artículo 1         20

3        cliente 1         artículo 2          5

 

Como podréis intuir ya, se trataría de crear una opción de menú por ejemplo, que fuera: "Generar pedidos de venta de hoy", y que al hacer clic sobre ella, se ejecutara un proceso que generara los pedidos correspondientes en base a la información que leyera de la tabla de pedidos diarios. Según el ejemplo propuesto se generaría dos pedidos de venta, uno para el cliente 1 con dos líneas de artículo (detalle), artículo 1 y 2 con sus cantidades correspondientes, y otro pedido de venta para el cliente 2 con su artículo 1 y su cantidad 20. Y así, lo mismo ocurriría para mañana, pasado, etc., etc.; evidentemente variaría la fecha de alta del pedido.

 

Para acabar, os adjunto una captura del proceso que estoy realizando para generar los pedidos a partir de los diarios. Espero que puedan echarme una mano.

 

Un saludo y gracias de antemano.

 

José Luis.

[attachment=8006,813]


(ame) #2

Hola chicos,

 

Ya lo tengo, al final el proceso ha quedado así:

[attachment=8040,815]

Si os surge alguna alternativa, más potente, optimizada, o incluso si veis que se puede dar algún caso en que ocurra un error, estaré encantado de considerar vuestas ideas.

 

Un saludo.


([N2] overall) #3

Buenos días ame,

Buena idea siempre que los pedidos generados sean todos los que tengamos en la tabla que has creado.

La misma situación también se podría solucionar creando una opción que duplicara el Pedido, así podríamos escoger a placer los pedidos de los clientes que quisiéramos duplicar.

Otra idea, aunque en tu caso particular no le veo practicidad, sería, crear una tabla temporal en memoria que pudiéramos Copiar, Pegar y Cortar líneas entre los distintos tipos de documento. Yo lo tengo en mi vERP y es muy práctico ya que puedes pasar líneas de un Pedido a una Factura con tan solo Copy&Paste.

Son solo unas cuantas ideas, Saludos

Overall


(ame) #4

Buenos días Overall,

 

Siempre es enriquecedor contemplar otros puntos de vista, gracias por el aporte.

Precisamente es el siguiente paso que voy a dar, añadir una opción de "Descanso" de un cliente, sería un checkbox (booleano en VTA_PED_DIA) en el cual se indicara si cierto cliente se encuentra temporalmente exento de pedidos (por ejemplo unas vacaciones), por lo tanto, durante ese período no se le generarían los pedidos diarios. Es lo que resolvería tu método del "duplicado", buena alternativa también dicho sea de paso. En mi caso, supongo que sería añadir algún "If" que preguntara por este booleano, no sé, ahora lo investigaré.

Háblame más sobre eso de crear tablas temporales, cortar, copiar y pegar. Me ha sonado interesante, y la verdad, no sé cómo se hace eso de crear tablas en memoria.

Por último, de esta conversación me ha surgido una duda: eso de duplicar... ¿se haría con la instrucción de proceso "Crear copia de ficha en memoria"? ¿O te has referido a un proceso más complejo con más instrucciones? Es que ahora mismo no sé si Velneo dispone de alguna instrucción nativa para copiar registros de una tabla. Si no es así, sería interesante que pudieramos disponer de ella, ¿verdad?

 

Un saludo.

 

José Luis.


([N2] overall) #5

Hola José Luis,

Lo de incluir un condicionante es una buena idea, hay pensar siempre en todas las posibles opciones.

Si queremos duplicar un pedido o cualquier otro documento, lo que tendremos que hacer es utilizar el objeto tubo de lista (sobre las lineas del pedido), éste objeto nos permite hacer un volcado de datos sin apenas despeinarse. Mírate la documentación.

Sobre el Copy & Paste, es muy interesante y mis clientes lo agradecen mucho. Tener la libertad de copiar las líneas mediante una multi-selección y poderlas insertar en el documento que desees da una versatilidad. Es relativamente sencillo. Creas una tabla con persistencia en memoria (todavía no funcionan como tal, es el servidor y no el cliente el que tiene la información de la tabla) con los datos de las líneas que desees copiar (artículo, descripción, cantidad, iva, etc...), ésta es la tabla que guardará la información que copies de cualquier documento. Ahora solo tendrás que tener el proceso de Pegar, y listo, pasas la información de la tabla en memoria al documento en cuestión. Está claro que ni la fecha, cliente, etc... deben copiarse.

Saludos y espero que entre todos podamos mejorar nuestras aplicaciones.

Overall


(ame) #6

Hola Overall,

 

Aún no he trabajo con el objeto "Tubo de lista", pero tengo en mente hacerlo, no sabía que una de sus aplicaciones fuera ésta.

Respecto a las tablas en memoria y demás, creo haberlo entendido, no obstante si alguna vez me surge la necesidad de utilizarlo, ya se me verá por aquí si me veo en apuros.

 

Saludos y nos vemos en el siguiente post.

 

José Luis.