Advertisement
Fhernd

Producto.cs

Jul 6th, 2014
2,495
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.71 KB | None | 0 0
  1. // ===++===
  2. //
  3. //  OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: Producto.cs
  9. //
  10. // Original en: http://goo.gl/ZFoSzx
  11. //
  12. // Propósito: Representar las operaciones y atributos de la
  13. // entidad Producto del modelo.
  14. //
  15. ============================================================*/
  16.  
  17. using System;
  18.  
  19. namespace LaTienda.Modelo
  20. {
  21.     /// <summary>
  22.     /// Clase Producto para representar un producto a vender en la tienda.
  23.     /// </summary>
  24.     public class Producto
  25.     {
  26.         #region Campos
  27.         /// <summary>
  28.         /// Cantidad del producto disponible en bodega.
  29.         /// </summary>
  30.         private int cantidadBodega;
  31.         /// <summary>
  32.         /// Cantidad mínima del producto que se puede tener en bodega.
  33.         /// </summary>
  34.         private int cantidadMinima;
  35.         /// <summary>
  36.         /// Unidades del producto vendidas.
  37.         /// </summary>
  38.         private int cantidadVendida;
  39.         /// <summary>
  40.         /// IVA aplicado a este producto.
  41.         /// </summary>
  42.         private TipoIva iva;
  43.         /// <summary>
  44.         /// Nombre del producto.
  45.         /// </summary>
  46.         private string nombre;
  47.         /// <summary>
  48.         /// Tipo de producto.
  49.         /// </summary>
  50.         private TipoProducto tipo;
  51.         /// <summary>
  52.         /// Valor unitario del producto.
  53.         /// </summary>
  54.         private decimal valorUnitario;
  55.         #endregion
  56.  
  57.         #region Propiedades
  58.         /// <summary>
  59.         /// Obtiene la cantida de producto almacenado en bodega.
  60.         /// </summary>
  61.         public int CantidadBodega
  62.         {
  63.             get
  64.             {
  65.                 return cantidadBodega;
  66.             }
  67.         }
  68.         /// <summary>
  69.         /// Obtiene la cantidad mínima de producto que se puede tener en bodega.
  70.         /// </summary>
  71.         public int CantidadMinima
  72.         {
  73.             get
  74.             {
  75.                 return cantidadMinima;
  76.             }
  77.         }
  78.         /// <summary>
  79.         /// Obtiene la cantidad vendida del producto.
  80.         /// </summary>
  81.         public int CantidadVendida
  82.         {
  83.             get
  84.             {
  85.                 return cantidadVendida;
  86.             }
  87.         }
  88.         /// <summary>
  89.         /// Obtiene el IVA aplicado al producto.
  90.         /// </summary>
  91.         public TipoIva Iva
  92.         {
  93.             get
  94.             {
  95.                 return iva;
  96.             }
  97.         }
  98.         /// <summary>
  99.         /// Obtiene el nombre del producto.
  100.         /// </summary>
  101.         public string Nombre
  102.         {
  103.             get
  104.             {
  105.                 return nombre;
  106.             }
  107.         }
  108.         /// <summary>
  109.         /// Obtiene el tipo del producto.
  110.         /// </summary>
  111.         public TipoProducto Tipo
  112.         {
  113.             get
  114.             {
  115.                 return tipo;
  116.             }
  117.         }
  118.         /// <summary>
  119.         /// Obtiene el valor unitario del producto.
  120.         /// </summary>
  121.         public decimal ValorUnitario
  122.         {
  123.             get
  124.             {
  125.                 return valorUnitario;
  126.             }
  127.         }
  128.         #endregion
  129.  
  130.         #region Constructores
  131.         /// <summary>
  132.         /// Crea un nuevo producto.
  133.         /// </summary>
  134.         /// <param name="tipo">Tipo del producto.</param>
  135.         /// <param name="iva">IVA aplicado al producto.</param>
  136.         /// <param name="nombre">Nombre del producto.</param>
  137.         /// <param name="valorUnitario">Valor unitario del producto.</param>
  138.         /// <param name="cantidadBodega">Cantidad disponible en bodega del producto.</param>
  139.         /// <param name="cantidadMinima">Cantidad mínima que se puede tener en bodega del producto.</param>
  140.         public Producto(TipoProducto tipo, TipoIva iva, string nombre, decimal valorUnitario, int cantidadBodega, int cantidadMinima)
  141.         {
  142.             this.tipo = tipo;
  143.             this.iva = iva;
  144.             this.nombre = nombre;
  145.             this.valorUnitario = valorUnitario;
  146.             this.cantidadBodega = cantidadBodega;
  147.             this.cantidadMinima = cantidadMinima;
  148.             this.cantidadVendida = 0;
  149.         }
  150.         #endregion
  151.  
  152.         #region Métodos
  153.         /// <summary>
  154.         /// Calcula el precio final teniendo en cuenta su precio unitario
  155.         /// y el IVA aplicado al producto.
  156.         /// </summary>
  157.         /// <returns>Valor final del producto.</returns>
  158.         public decimal CalcularPrecionalFinal()
  159.         {
  160.             return valorUnitario * (1 + (decimal)((int)iva/100.0M));
  161.         }
  162.         /// <summary>
  163.         /// Determina si es necesario realizar un pedido.
  164.         /// </summary>
  165.         /// <returns>true si es necesario realizar un pedido; en caso contario, false.</returns>
  166.         public bool EsNecesarioHacerPedido()
  167.         {
  168.             return cantidadBodega < cantidadMinima;
  169.         }
  170.         /// <summary>
  171.         /// Realiza un pedido de producto.
  172.         /// </summary>
  173.         /// <param name="cantidad">Cantidad a pedir.</param>
  174.         public void HacerPedido(int cantidad)
  175.         {
  176.             cantidadBodega += cantidad;
  177.         }
  178.         /// <summary>
  179.         /// Vende una cantidad del producto.
  180.         /// </summary>
  181.         /// <param name="cantidad">Cantidad del producto a vender.</param>
  182.         /// <returns>La cantidad que se ha podido vender del producto.</returns>
  183.         public int Vender(int cantidad)
  184.         {
  185.             if (cantidad > cantidadBodega)
  186.             {
  187.                 cantidad = cantidadBodega;
  188.             }
  189.  
  190.             cantidadVendida += cantidad;
  191.             cantidadBodega -= cantidad;
  192.  
  193.             return cantidad;
  194.         }
  195.         #endregion
  196.     }
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement