Avisos
Vaciar todo

Estructura de tablas para app de inventario

6 Respuestas
2 Usuarios
0 Reactions
100 Visitas
admin
Respuestas: 14
Topic starter
(@koviac)
Miembro Eminente
Registrado: hace 1 mes

Hola comunidad AppSheet

Tengo una pregunta sobre la estructura que diseñé para mi aplicación de inventario, he visto varios ejemplos incluyendo del canal de esta comunidad en YouTube, pero todas solo usan 2 tablas o 1 tabla para el control de movimientos.

5 tablas controlan se usan para calcular el stock y el control de los movimientos, hice que que entradas y salidas sean separadas:

  1. productos
  2. entradas_encabezado
  3. entradas_detalle (vinculado a productos y entradas_encabezado)
  4. salidas_encabezado
  5. salidas_detalle (vinculado a productos y salidas_encabezado)
  6. Las tablas dependientes o detalladas tienen columnas calculadas que devuelven datos de la tabla principal.

Preguntas:

  1. ¿Es este un buen diseño de estructura de mesa?
  2. Necesito combinar o fusionar la lista de las tablas de detalles para crear un informe Kardex, sin tener que presentar los movimientos por separado.
  3. Cuando la app es usada por varios usuarios, y hay mas de un usuario imprimiendo el reporte pdf, los filtros se cambian, como se hace para que no suceda esto.

He incluido un enlace a una copia de mi Hoja de Google; No dudes en realizar los cambios que consideres necesarios.

Google Sheet

Gracias por su tiempo


5 respuestas
admin
Respuestas: 47
Admin
(@admin)
Miembro
Registrado: hace 3 años

Hola amigo, tus tablas estan bien, yo uso ventas y ventas_detalle, compras y compras_detalle y ambas enlazan a productos asi como tu lo tienes, con otros nombres pero es lo mismo, bien

Sobre el kardex, creo que ya te habia mencionado que lo puedes lograr con acciones tanto en entradas y salidas que al momento de confirmarse debes actualizar kardex


Responder
admin
Respuestas: 14
Topic starter
(@koviac)
Miembro Eminente
Registrado: hace 1 mes

Si es exactamente lo que necesito, he buscado videos que hagan lo mismo, pero todos solo usan 1 o 2 tablas.

Según entiendo tengo que hacer una tabla de movimientos y con acciones actualizar esta tabla, pero que pasa si el usuario edita o borra una línea?, tengo que hacer columnas virtuales en las tablas detalle con los datos de la tabla principal?, es un poco complicado para mi, tiene algún video, yo busqué en YouTube y no encontré exactamente lo que necesito.

Gracias por su tiempo y ayuda


Responder
admin
Respuestas: 47
Admin
(@admin)
Miembro
Registrado: hace 3 años

Tienes que alterar la tabla de movimientos cuando confirmes salida que en este caso es factura de venta/compra una vez confirmado entonces agregar copia de lo items de salida o entrada en tu tabla de movimientos, y si alteras una factura que contablemente no se debe eliminar solo anular entonces es de nuevo acciones a la inversa

Aquí una fotico para que tengas una idea, esto es lo que yo uso, no tienes que hacer lo mismo

Sobre el video no tengo, la verdad que he tenido abandonado el canal


Responder
1 respuesta
admin
(@koviac)
Registrado: hace 1 mes

Miembro Eminente
Respuestas: 14

@admin 

Gracias admin.

Estoy siguiendo la sugerencia que me dio, detallo los paso para otros usuarios:

  1. Hice columnas virtuales en las tablas detalle haciendo referencia a las columnas de tablas padre, a través de la columna de referencia ID_entrada.
  2. Hice una acción para copiar una línea en las tablas detalle (hijas)
    1. Data: add a new row to another table using values from this row
    2. Para que no se repita la acción use esta expresión:
      NOT(IN([ID_entrada_detalle], SELECT(movimientos[ID_entrada_detalle],TRUE)))
  3. Hice una acción para copiar un conjunto de líneas desde la tabla padre.
    1. Data: execute an action on a set of rows
    2. Seleccione las lines con esta expresión:
      1. FILTER("entradas_detalle", [ID_entrada] = [_THISROW].[ID_entrada])
      2.  Hice referencia a la primera acción para que se ejecutara.
  4. Para que no se repita la acción anterior, hice una nueva acción para cambiar el estado de la entrada en la tabla padre, de Borrador a Recibido.
    1. Data: set the values of some columns in this row
  5. Hice una acción "Confirmar Recepción" para ejecutar todas las acciones anteriores:
    1. Grouped: execute a sequence of actions
    2. Acciones de referencia: Copiar Movimientos (que ejecuta la acción 1) y la acción de cambiar estado.
  6. Para ocultar las acciones que se ejecutan hago la expresión: [ID_entrada].[estado]<>"Recibido

 

Aqui copio el vinculo a google sheet:

Inventario

Gracias

 

 


Responder
admin
Respuestas: 47
Admin
(@admin)
Miembro
Registrado: hace 3 años

Super, solo que me confunde un poco, es que generalmente en movimiento es para control total de entradas y salidas, ya sea por factura o ajustes manuales, pero en si total, no detalle de items, en kadex si es mas detalle de productos, no se,  si lo tienes de esa manera


Responder
Compartir: