none
Relaciones RRS feed

  • Pregunta

  • Hola

    Trabajo en una app Windows Forms, Visual Studio 2015, Entity Framework enfoque code - first

    Tengo una entidad Producto y TarifaImpuesto lo cual tengo una tabla intermedia que hace la relación entre ellos.

    Un producto tiene mas de una TarifaImpusto puede tener uno, dos o tres, el tema surge en mi entidad Ventas ya que necesito registrar los Id o Id's  de las TarifaImpuestos que tenga un Producto.

    La entidad Producto tiene una lista de TarifaImpuestos. 

    El tema principal es:

    • Que cada TarifaImpuesto tiene su Id y un estado de Activo/Inactivo. 
    • Cada producto puede tener uno o mas impuestos.
    • Entonces en la entidad Venta necesito guardar el id de cada TarifaImpuesto.

    Una tarifa de IVA que vale 12% en el tiempo puede cambiar y le pongo estado Inactivo y creo otro como por ejemplo 14%, entonces necesito guardar el id de cada tarifa en Ventas para poder hacer los cálculos cuando lo necesite.


    ¿Como podría registrar los id de los impuestos que tiene los productos? => ¿Tendría que crear otra entidad para guardar los Id de los TarifaImpuestos que este relacionada a Ventas?, ¿Como puedo solucionarlo?

    Saludos.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú



    martes, 21 de agosto de 2018 7:42

Respuestas

  • Pedro, aquí mi propuesta de solución.

    Comentarios:

    1. La entidad que se debe controlar la actividad (activo o inactivo) es la entidad TasaImpuesto.
    2. La entidad ImpuestoVenta es la que se encarga se registrar todas las tasas de impuestos activos y relacionados con el producto que se vende.

    Saludos, 

    Gerardo Fernández

    PedroÁvila.ImpuestoVenta.Modelado


    martes, 21 de agosto de 2018 17:23
  • hola

    >>Ventas va estar relacionado con Catalogo(un catalogo esta compuesto por varios productos).

    porque? lo que vendes son productos (el cual puede estar en un catalogo), la realcion con la venta no es necesario ya que sale de forma indirecta por medio del producto

    la venta se relaciona con el productos, listo

    despues si quieres conocer el catalogo, haces Venta.Producto.Catalogo

    >>tabla intermedia VentaTarifaImpuestos => {VentaId, TarifaImpuestoId}

    es correcto, alli registras que impuestos del producto se aplicaron en esa venta en particular

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila martes, 21 de agosto de 2018 18:46
    martes, 21 de agosto de 2018 17:48

Todas las respuestas

  • hola

    Pero cual seria el problema?

    tienes una relacion mucho a muchos, no veo correcto en la imagen que entre Producto y ProductoTarifaImpuesto en las flechas diga 1 en cada extremo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 21 de agosto de 2018 13:00
  • Hola @Leandro

    Ya corregí la relación de la imagen, y aclare lo que necesito resolver, he editado el post original.

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    martes, 21 de agosto de 2018 14:09
  • Hola 

    Me parece que esta puede ser la solución a mi problema:

    • Tener una relación muchos a muchos entre la entidad Venta y TarifaImpuesto.
    • Ventas va estar relacionado con Catalogo(un catalogo esta compuesto por varios productos).
    • En la entidad Producto tengo una lista de TarifaImpuestos(Desde ahí obtendré los impuestos que lleva cada producto) y registrare en la tabla intermedia que hace la relación
    • Tabla intermedia VentaTarifaImpuestos => {VentaId, TarifaImpuestoId}

    ¿Hay alguna otra solución?

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    martes, 21 de agosto de 2018 15:30
  • Pedro, aquí mi propuesta de solución.

    Comentarios:

    1. La entidad que se debe controlar la actividad (activo o inactivo) es la entidad TasaImpuesto.
    2. La entidad ImpuestoVenta es la que se encarga se registrar todas las tasas de impuestos activos y relacionados con el producto que se vende.

    Saludos, 

    Gerardo Fernández

    PedroÁvila.ImpuestoVenta.Modelado


    martes, 21 de agosto de 2018 17:23
  • hola

    >>Ventas va estar relacionado con Catalogo(un catalogo esta compuesto por varios productos).

    porque? lo que vendes son productos (el cual puede estar en un catalogo), la realcion con la venta no es necesario ya que sale de forma indirecta por medio del producto

    la venta se relaciona con el productos, listo

    despues si quieres conocer el catalogo, haces Venta.Producto.Catalogo

    >>tabla intermedia VentaTarifaImpuestos => {VentaId, TarifaImpuestoId}

    es correcto, alli registras que impuestos del producto se aplicaron en esa venta en particular

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila martes, 21 de agosto de 2018 18:46
    martes, 21 de agosto de 2018 17:48
  • Se usa la entidad Catálogo, por otro requerimiento funcional, ya que el negocio tiene varios puntos de venta, varios locales, tiendas, y cada una vende los mismos productos pero con diferentes precios. Por la tanto, la solución conceptual es crear tantos catálogos como puntos de venta hay, o más aún, es decir, cada tienda tiene vinculado un o más catálogos. Además, la consulta NO está enfocada en la entidad Catálogo, sino en cómo modelar cuando se requiere guardar los impuestos, o tasas de impuestos, afectas en una operación, en una venta. Saludos, Gerardo Fernández.
    martes, 21 de agosto de 2018 18:03