Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // OrtizOL
- //
- // ===--===
- /*============================================================
- //
- // Clase: Principal.cs
- //
- // Original en: http://goo.gl/NmPCp1
- //
- // Propósito: Representar la ventana principal de la
- // aplicación.
- //
- ============================================================*/
- using System;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using LaTienda.Modelo;
- namespace LaTienda.GUI
- {
- /// <summary>
- /// Representa la ventana principal de la aplicación La Tienda.
- /// </summary>
- public partial class Principal : Form
- {
- #region Campos
- /// <summary>
- /// Representa la tienda a administrar.
- /// </summary>
- private Tienda tienda;
- #endregion
- #region Campos (componentes de interfaz)
- /// <summary>
- /// Control con los componentes para realizar los cálculos
- /// y estadísticas de los productos vendidos.
- /// </summary>
- private ControlCalculos controlCalculos;
- /// <summary>
- /// Control con los componentes para realizar las operaciones
- /// de venta y pedido de productos.
- /// </summary>
- private ControlOperaciones controlOperaciones;
- /// <summary>
- /// Control con los componentes para representar los productos
- /// que se venden en la tienda.
- /// </summary>
- private ControlProductos controlProductos;
- #endregion
- #region Constructores
- /// <summary>
- /// Crea la ventana principal de la aplicación.
- /// </summary>
- public Principal()
- {
- InitializeComponent();
- ConfiguracionComponentes();
- // Creación productos:
- Producto producto1 = new Producto(TipoProducto.Papeleria, TipoIva.IvaPapeleria, "Lápiz", 550.0M, 18, 5);
- Producto producto2 = new Producto(TipoProducto.Drogueria, TipoIva.IvaDrogueria, "Aspirina", 109.5M, 25, 8);
- Producto producto3 = new Producto(TipoProducto.Papeleria, TipoIva.IvaPapeleria, "Borrador", 207.3M, 30, 10);
- Producto producto4 = new Producto(TipoProducto.Supermercado, TipoIva.IvaSupermercado, "Pan", 150.0M, 15, 20);
- // Creación de la tienda:
- tienda = new Tienda(producto1, producto2, producto3, producto4);
- // Refresca el control de productos:
- RefrescarInformacion();
- }
- #endregion
- #region Métodos
- /// <summary>
- /// Configura los componentes integrales de la aplicación.
- /// </summary>
- private void ConfiguracionComponentes()
- {
- controlProductos = new ControlProductos();
- controlOperaciones = new ControlOperaciones(this);
- controlOperaciones.Location = new Point(0,183);
- controlCalculos = new ControlCalculos();
- controlCalculos.Location = new Point(0, 283);
- this.Icon = LaTienda.Properties.Resources.tienda;
- this.Controls.Add(controlProductos);
- this.Controls.Add(controlOperaciones);
- this.Controls.Add(controlCalculos);
- }
- /// <summary>
- /// Obtiene los nombre de los productos como un arreglo (vector o matriz)
- /// de cadena de caracters.
- /// </summary>
- /// <returns>Arreglo con los nombres de los productos.</returns>
- public string[] ObtenerNombreProductos()
- {
- return new string[] {
- tienda.ObtenerProducto(1).Nombre,
- tienda.ObtenerProducto(2).Nombre,
- tienda.ObtenerProducto(3).Nombre,
- tienda.ObtenerProducto(4).Nombre
- };
- }
- /// <summary>
- /// Realiza un pedido.
- /// </summary>
- /// <param name="nombreProducto">Nombre del producto a realizar pedido.</param>
- /// <param name="cantidad">Cantidad del producto a realizar pedido.</param>
- public void RealizarPedido(string nombreProducto, int cantidad)
- {
- if (tienda.RealizarPedido(nombreProducto, cantidad))
- {
- MessageBox.Show(this, String.Format("Pedidas {0} unidades de {1}.", cantidad, nombreProducto), "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
- RefrescarInformacion();
- }
- else
- {
- MessageBox.Show(this, String.Format("No fue posible hacer el pedido de {0}.", nombreProducto), "Información", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- }
- /// <summary>
- /// Refresca las estadísticas y el estado de cada producto.
- /// </summary>
- public void RefrescarInformacion()
- {
- controlProductos.Refrescar(tienda.Productos);
- controlCalculos.Refrescar(tienda);
- }
- /// <summary>
- /// Vender un producto determinado.
- /// </summary>
- /// <param name="nombreProducto">Nombre del producto a vender.</param>
- /// <param name="cantidad">Cantidad del producto a vender.</param>
- public void VenderProducto(string nombreProducto, int cantidad)
- {
- int venta = tienda.VenderProducto(nombreProducto, cantidad);
- RefrescarInformacion();
- MessageBox.Show(this, String.Format("Vendidas {0} unidades de {1}", venta, nombreProducto), "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- #endregion
- #region Métodos de extensión
- /// <summary>
- /// Método de extensión no. 1.
- /// </summary>
- public void MetodoExtension1()
- {
- MessageBox.Show(this, tienda.Metodo1(), "Método de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- /// <summary>
- /// Método de extensión no. 2.
- /// </summary>
- public void MetodoExtension2()
- {
- MessageBox.Show(this, tienda.Metodo2(), "Método de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement