1. Entorno
- Visual Studio 2008
- SQL Server 2008
2. Introducción
Ya vimos que en la 2º Parte del tutorial creamos la Capa de Dato de nuestro sistema, la cual es la encargada de comunicarse con la base de datos. Ahora nos tocaría desarrollar la Capa de Negocios que es la capa en la cual se implementa la lógica del negocio de la empresa como obtener descuentos, aumentos, etc.
3. Desarrollo
3.1. Creando el proyecto
Ahora debemos de agregar a nuestro proyecto un proyecto del tipo biblioteca de clases que se llamara "CapaNegocios"
3.2. Agregando al referencia con la Capa de Datos
Debemos de establecer la comunicacion entre la Capa de Negocios y la Capa de Datos. Para eso hacemos clic derecho en nuestro proyecto que se llama "CapaNegocios" y nos vamos a la opcion de "Agregar Referencia"
Y de ahí seleccionamos que se comunique con el proyecto que se llama "CapaDatos"
3.3. Clase NegProducto
La clase "NegProducto" se encarga de comunicarse con la clase "Producto" de la capa de datos
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; //Para que se comunique con la Capa de Datos using CapaDatos; //Desarollado por Adrián Sánchez
namespace CapaNegocios { public class NegProducto { //Metodo que llama al metodo Insertar de la Capa de Datos //de la clase Producto public static string Insertar(string Nombre, decimal Precio)
{ Producto pro = new Producto(); pro.nombre = Nombre; pro.precio = Precio; return pro.Insertar(pro); } //Metodo que llama al metodo Actualizar de la Capa de Datos //de la clase Producto public static string Actualizar(int CodigoProducto, string Nombre, decimal Precio)
{ Producto pro = new Producto(); pro.codigoProducto = CodigoProducto; pro.nombre = Nombre; pro.precio = Precio; return pro.Actualizar(pro); } //Metodo que se encarga de llamar al metodo ObtenerProducto //de la clase Producto public static DataTable ObtenerProducto()
{ return new Producto().ObtenerProducto(); } } }
3.4. Clase NegDetalleVenta
La clase "NegDetalleVenta" se encarga de establecer los descuentos de los detalles de venta. Si el subtotal supera los 50 soles, dolares, euros, etc se le aplica un descuento del 5% del detalle de la venta. Y eso se aplica en la Capa de Negocios debido a que pertenece a la lógica de la empresa.
using System; using System.Collections.Generic; using System.Linq; using System.Text; //Desarollado por Adrián Sánchez
namespace CapaNegocios { public class NegDetalleVenta { //Metodo utilizado para obtener el descuento del detalle de la venta //si la venta supera los 50 soles, dolares, euros, etc //se le hace un descuento del 5% del detalle de la venta public static decimal ObtenerDescuento(decimal cantidad, decimal pu) { if ((cantidad * pu) > 50) { decimal porcentaje = Convert.ToDecimal(0.05); decimal descuento = ((cantidad * pu) * porcentaje); return descuento; } else { return 0; } } } }
3.5. Clase NegVenta
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; //Para que se comunique con la Capa de Datos using CapaDatos; //Desarollado por Adrián Sánchez namespace CapaNegocios { public class NegVenta { //Metodo que llama al metodo Insertar de la Capa de Datos //de la clase Venta public static string Insertar(string cliente, DataTable dtDetalles) { Venta venta = new Venta(); venta.cliente = cliente; List<DetalleVenta> detalles=new List<DetalleVenta>(); foreach (DataRow row in dtDetalles.Rows) { DetalleVenta detalle = new DetalleVenta(); detalle.codigoProducto = Convert.ToInt32(row["codigoProducto"].ToString()); detalle.cantidad = Convert.ToDecimal(row["cantidad"].ToString()); detalle.descuento = NegDetalleVenta.ObtenerDescuento(detalle.cantidad, Convert.ToDecimal(row["PU"].ToString())); detalles.Add(detalle); } return venta.Insertar(venta, detalles); } //Metodo que se encarga de llamar al metodo ObtenerProducto //de la clase Venta public static DataTable ObtenerVenta() { return new Venta().ObtenerVenta(); } //Metodo que se encarga de llamar al metodo ObtenerProducto //por codigo de la clase Venta public static DataTable ObtenerVenta(int codigoVenta) { return new Venta().ObtenerVenta(codigoVenta); } } }
4. Resumen
Al final deberíamos tener las siguientes clases
No hay comentarios.:
Publicar un comentario