none
Diseño para Articulos con Tallas RRS feed

  • Pregunta

  • Buen dia amigos, le consulto si como puedo modelar mi tabla articulos para contemplar la funcionalidad de manejo de:

    Tallas, Lotes y Vencimiento.

    Obs: se especificar por ejemplo:

    Articulo X tiene tallas y se registra diferentes valores de stock

    Articulo Y no tiene tallas, por ende solo se registra el valor unico de stock.

    Saludos

    viernes, 16 de marzo de 2018 16:55

Respuestas

  • Hola ManuelAguila:

    La pregunta que estableces es muy grande y tiene muchísimas variables diferentes.

    Te voy a intentar dibujar un escenario diferente trasladandote preguntas, que a lo mejor te ayuden. Pero ya te indico que es mucho lo que preguntas, sin conocer nada de tu modelo de datos ni de tu tipo de negocio, ni de que pais, ni cual es el enfoque de los lotes...es que hay tantas preguntas...

    Inicio: Articulos X. 1 articulo tendrá un tipo de tallaje. Por tanto tendrás una tabla de tallajes. que tendrá una relacion de 1 a 1 y esta tabla de tallajes tendra al menos x posiciones para cada tipado. Pero ojo esto con un modelo simple porque si tus artículos son sujetadores, donde los tallajes se determinan por dos partes, no es suficiente. Continuo, con el articulo sin entrar en el stock.

    Articulo Y. No tiene tallas. O quizá si tiene una talla de la tabla de tallajes, que es la del registro en blanco, y el articulo tiene una propiedad bit, que indica si utiliza tallajes, de manera que te permite mostrar una visual diferente si esta propiedad esta marcada o no.

    Lotes: Tema complicado. 1 articulo tendrá n lotes, pero cuando tu realices tus operaciones de stock, ya no operas sobre articulos, sino tambien sobre sus lotes y sus fechas de caducidad etc...Con lo cual tu stock, dice que del articulo 1 tienes 5 items, pero los lotes dicen que solo tienes 3. Es un tema que requiere detalle pormenorizado.

    Y el que más me gusta: Stock.

    Porque tienes Stock? No es mucho mejor, calcularlo por los movimientos de compras, ventas etc, que guardarlo. Si implementas una tabla de stock, siempre ocurren problemas. Y encima con lotes.

    Espero haberte ayudado en algo.

    Un saludo

    sábado, 17 de marzo de 2018 8:29
  • Hola ManuelAguila:

    Esto es como la normalización, ¿cuando esta una base de datos bien diseñada?. En 3ª forma normal, en 4ª.... es un debate que conlleva saber cuanto, coste se va a poner detrás y cuanto tiempo y personal lleva el desarrollo. No obstante, como me gusta arriesgar....te doy mi opinión.

    Tallajes para X, basicamente, lo más fácil, y que menos desarrollo lleva es relacionar tallajes consigo misma.

    El. Articulo X tiene tallaje F. Tallaje F tiene una propiedad Padre. Si padre = 0 tallaje simple. Si padre otro, entonces, se relaciona consigo misma.

    Creo que es la opción más facil, puesto que la visual, desarrolles, como la desarrolles, no conlleva apenas cambios. Y a nivel de consulta no es demasiado grande. Pero tienes que tenerlo siempre en cuenta. Cualquier consulta que busque por tallajes, tiene que buscar por el tallaje de los items, y en su caso por el de su "Tallaje Padre".

    En resumidas cuentas TALLAJE ID INT, PADRE INT, DESCRIPCION VARCHAR(XX), TALLA1 VARCHAR(X).....

    Para stocks, depende de tu modelo de facturacion, de cual/cuales, sean las tablas que utilizas para realizar las operaciones, pero lo normal es motar una View sobre ellas que te devuelva el stock, por sucursal, de cada articulo. Y siempre consultas esa View.

    Para lotes: esto es una gran guerra.

    Más tarde te escribiré algo, o al menos te llevaré a algún sitio donde te puedan aportar ideas,.

    Un saludo

    • Marcado como respuesta ManuelAguila martes, 20 de marzo de 2018 17:06
    martes, 20 de marzo de 2018 14:14
  • Hola:

    Lotes: por ejemplo (y sigo matizando que es una opinión, que las variables, que determinan el modelado y el comportamiento son tan grandes, que no hacen posible, que te diga que es la mejor opción, es solo una idea a valorar).

    Que tal si tienes una tabla de lotes con id int identity(1,1), y codart int FK articulos y codigo_barras nvarchar(xx).... unidades fechacaducidad...etc. todos los datos que detalles que componen un lote.

    En tus documentos de compra y venta, por cada linea de articulo debieras "obligar", a mencionar el lote involucrado, para que no te descompongan el stock.

    Luego tienes (entendiendo que tengas separadas compras, ventas, etc), COMPRAS id, fecha, cliente....

    DetalleCompras (id = idCOMPRAS, linea , codart.)

    DetalleComprasLotes (id=idCOMPRAS, linea=LINEADETALLECOMPRAS, CODART=CODARTDETALLECOMPRAS, Codigobarras=CODBARRASLOTE, Unidades etc. etc.

    Tambien debes de tener controlado el stock de los lotes, mediante sus movimientos.

    Espero haberte ayudado a mejorar tu idea, o al menos no estorbado.

    Un saludo

    • Marcado como respuesta ManuelAguila martes, 20 de marzo de 2018 17:06
    martes, 20 de marzo de 2018 15:40
  • Hola:

    A priori diría que tu tabla de bodegaArticulo tendría que tener un detalle, como lo que te cuento, porque supongo que cada lote tendrá X unidades. Dado que la tabla lotes, es solo la definicion de estos por articulo, pero no donde estan en cada momento.

    idBodegaArticulo, idArticulo, idLote, unidades.

    Porque si de tu Articulo 80 que tienes en la bodega 1, 100 unidades de stock, ¿cuantas de ellas son de cada lote? Ej. Si del articulo 80 tengo 100 de stock, pero tengo 15 lotes, con 6 unidades cada uno. podrías decirme donde esta cada lote.

    Si tengo 10 lotes con 10 unidades de cada lote del articulo 80 en mis 8 bodegas, y vino mi sobrino que es un desastre y me los cambio de sitio aunque lo registro correctamente, y cambio 5 unidades de cada lote entre las 8 bodegas. podrías saber donde esta situado cada lote.

    Cuando tengas estas preguntas resueltas, el esquema será mucho mejor.

    Tambien le añadiría seguro al lote un estado.....¿y si tengo que dar un lote de baja temporalmente?

    Un saludo

    • Marcado como respuesta ManuelAguila miércoles, 21 de marzo de 2018 15:43
    martes, 20 de marzo de 2018 18:48
  • Hola ManuelAguila:

    Conforme a los lotes, eso ya parece bastante mejor.

    Al final lo más importante, es saber si tu te puedes responder a las preguntas que necesitas.

    Un saludo

    • Marcado como respuesta ManuelAguila miércoles, 21 de marzo de 2018 19:40
    miércoles, 21 de marzo de 2018 19:11

Todas las respuestas

  • Hola ManuelAguila:

    La pregunta que estableces es muy grande y tiene muchísimas variables diferentes.

    Te voy a intentar dibujar un escenario diferente trasladandote preguntas, que a lo mejor te ayuden. Pero ya te indico que es mucho lo que preguntas, sin conocer nada de tu modelo de datos ni de tu tipo de negocio, ni de que pais, ni cual es el enfoque de los lotes...es que hay tantas preguntas...

    Inicio: Articulos X. 1 articulo tendrá un tipo de tallaje. Por tanto tendrás una tabla de tallajes. que tendrá una relacion de 1 a 1 y esta tabla de tallajes tendra al menos x posiciones para cada tipado. Pero ojo esto con un modelo simple porque si tus artículos son sujetadores, donde los tallajes se determinan por dos partes, no es suficiente. Continuo, con el articulo sin entrar en el stock.

    Articulo Y. No tiene tallas. O quizá si tiene una talla de la tabla de tallajes, que es la del registro en blanco, y el articulo tiene una propiedad bit, que indica si utiliza tallajes, de manera que te permite mostrar una visual diferente si esta propiedad esta marcada o no.

    Lotes: Tema complicado. 1 articulo tendrá n lotes, pero cuando tu realices tus operaciones de stock, ya no operas sobre articulos, sino tambien sobre sus lotes y sus fechas de caducidad etc...Con lo cual tu stock, dice que del articulo 1 tienes 5 items, pero los lotes dicen que solo tienes 3. Es un tema que requiere detalle pormenorizado.

    Y el que más me gusta: Stock.

    Porque tienes Stock? No es mucho mejor, calcularlo por los movimientos de compras, ventas etc, que guardarlo. Si implementas una tabla de stock, siempre ocurren problemas. Y encima con lotes.

    Espero haberte ayudado en algo.

    Un saludo

    sábado, 17 de marzo de 2018 8:29
  • Hola Javi, muchas gracias por tu respuesta, voy a a tratar de especificar mas,

    Parte Articulo X, 1: a partir de que los tallajes sean en dos partes como seria la relacion de tablas?

    Parte Articulo Y, creo que esta parte es bien cubriria el diseño.

    Parte Lotes, 1: tambien como seria la relacion de tablas y el diagrama cuando se hace operación sobre artículos teniendo como referencia ya el uso de lotes y fechas de caducidad.

    Parte Stock: tenes razon, entonces si lo calculo por movimientos, en que parte recuperaría el valor en caso que quiera realizar consultas para reportes?

    Gracias, saludos

    martes, 20 de marzo de 2018 12:58
  • Hola ManuelAguila:

    Esto es como la normalización, ¿cuando esta una base de datos bien diseñada?. En 3ª forma normal, en 4ª.... es un debate que conlleva saber cuanto, coste se va a poner detrás y cuanto tiempo y personal lleva el desarrollo. No obstante, como me gusta arriesgar....te doy mi opinión.

    Tallajes para X, basicamente, lo más fácil, y que menos desarrollo lleva es relacionar tallajes consigo misma.

    El. Articulo X tiene tallaje F. Tallaje F tiene una propiedad Padre. Si padre = 0 tallaje simple. Si padre otro, entonces, se relaciona consigo misma.

    Creo que es la opción más facil, puesto que la visual, desarrolles, como la desarrolles, no conlleva apenas cambios. Y a nivel de consulta no es demasiado grande. Pero tienes que tenerlo siempre en cuenta. Cualquier consulta que busque por tallajes, tiene que buscar por el tallaje de los items, y en su caso por el de su "Tallaje Padre".

    En resumidas cuentas TALLAJE ID INT, PADRE INT, DESCRIPCION VARCHAR(XX), TALLA1 VARCHAR(X).....

    Para stocks, depende de tu modelo de facturacion, de cual/cuales, sean las tablas que utilizas para realizar las operaciones, pero lo normal es motar una View sobre ellas que te devuelva el stock, por sucursal, de cada articulo. Y siempre consultas esa View.

    Para lotes: esto es una gran guerra.

    Más tarde te escribiré algo, o al menos te llevaré a algún sitio donde te puedan aportar ideas,.

    Un saludo

    • Marcado como respuesta ManuelAguila martes, 20 de marzo de 2018 17:06
    martes, 20 de marzo de 2018 14:14
  • Hola:

    Lotes: por ejemplo (y sigo matizando que es una opinión, que las variables, que determinan el modelado y el comportamiento son tan grandes, que no hacen posible, que te diga que es la mejor opción, es solo una idea a valorar).

    Que tal si tienes una tabla de lotes con id int identity(1,1), y codart int FK articulos y codigo_barras nvarchar(xx).... unidades fechacaducidad...etc. todos los datos que detalles que componen un lote.

    En tus documentos de compra y venta, por cada linea de articulo debieras "obligar", a mencionar el lote involucrado, para que no te descompongan el stock.

    Luego tienes (entendiendo que tengas separadas compras, ventas, etc), COMPRAS id, fecha, cliente....

    DetalleCompras (id = idCOMPRAS, linea , codart.)

    DetalleComprasLotes (id=idCOMPRAS, linea=LINEADETALLECOMPRAS, CODART=CODARTDETALLECOMPRAS, Codigobarras=CODBARRASLOTE, Unidades etc. etc.

    Tambien debes de tener controlado el stock de los lotes, mediante sus movimientos.

    Espero haberte ayudado a mejorar tu idea, o al menos no estorbado.

    Un saludo

    • Marcado como respuesta ManuelAguila martes, 20 de marzo de 2018 17:06
    martes, 20 de marzo de 2018 15:40
  • Gracias amigo, y en relacion a Lotes, lo diseñe de esta forma: donde Hice la relacion de tablas:

    - Cada movimiento parte en Tabla Kardex, que se relaciona con Articulos.

    - El Articulo a su vez esta relacionado con la tabla Lote

    - El Producto tiene relacion con BodegaArticulo(tabla donde se registra los unidades de stock de una sucursal o dependendia).

    Este diagrama puede cubrir esos requerimientos que mencionaste?

    Saludos

    martes, 20 de marzo de 2018 17:29
  • Hola:

    A priori diría que tu tabla de bodegaArticulo tendría que tener un detalle, como lo que te cuento, porque supongo que cada lote tendrá X unidades. Dado que la tabla lotes, es solo la definicion de estos por articulo, pero no donde estan en cada momento.

    idBodegaArticulo, idArticulo, idLote, unidades.

    Porque si de tu Articulo 80 que tienes en la bodega 1, 100 unidades de stock, ¿cuantas de ellas son de cada lote? Ej. Si del articulo 80 tengo 100 de stock, pero tengo 15 lotes, con 6 unidades cada uno. podrías decirme donde esta cada lote.

    Si tengo 10 lotes con 10 unidades de cada lote del articulo 80 en mis 8 bodegas, y vino mi sobrino que es un desastre y me los cambio de sitio aunque lo registro correctamente, y cambio 5 unidades de cada lote entre las 8 bodegas. podrías saber donde esta situado cada lote.

    Cuando tengas estas preguntas resueltas, el esquema será mucho mejor.

    Tambien le añadiría seguro al lote un estado.....¿y si tengo que dar un lote de baja temporalmente?

    Un saludo

    • Marcado como respuesta ManuelAguila miércoles, 21 de marzo de 2018 15:43
    martes, 20 de marzo de 2018 18:48
  • Buen dia amigo ayer ya no pude responderte, en relacion a tus sugerencias, hice una modificacion para tener una tabla intermedia entre: Lote y BodegaArticulo; se llama LoteDetalle. pienso que con esto se puede lograr saber, cuantas unidades de cada lote del articulo X, en las N Bodegas. con esto se puede hacer el cambio de unidades de cada lote y repartirlos en las N bodegas. adjunto imagen, si podes darle una mirada.

    Muchas gracias

    miércoles, 21 de marzo de 2018 15:48
  • Hola ManuelAguila:

    Conforme a los lotes, eso ya parece bastante mejor.

    Al final lo más importante, es saber si tu te puedes responder a las preguntas que necesitas.

    Un saludo

    • Marcado como respuesta ManuelAguila miércoles, 21 de marzo de 2018 19:40
    miércoles, 21 de marzo de 2018 19:11
  • Hola Javi,  entiendo y creo que cubre las preguntas que abarcan el modelado

    Saludos

    miércoles, 21 de marzo de 2018 19:41