// GET: Articulo/Details/5 public ActionResult Details(int id) { SessionInitialize(); ProductoCAD cad = new ProductoCAD(session); ProductoCEN cen = new ProductoCEN(cad); ProductoEN en = cen.ReadOID(id); AssemblerProducto ass = new AssemblerProducto(); Producto sol = ass.ConvertENToModelUI(en); IList <ComentarioEN> ten = en.Comentario; AssemblerComentario assc = new AssemblerComentario(); IList <Comentario> solc = assc.ConvertListENToModel(ten); SessionClose(); System.Web.HttpContext.Current.Session["comen"] = id; // ViewData["action"] = "Details"; ViewBag.coment = solc; return(View(sol)); }
public void eliminarArticulosDeProducto(int idProducto) { try { SessionInitializeTransaction(); ProductoCAD productoCAD = new ProductoCAD(session); ProductoEN productoEN = productoCAD.ReadOIDDefault(idProducto); ArticuloCAD articuloCAD = new ArticuloCAD(session); ArticuloCEN articuloCEN = new ArticuloCEN(articuloCAD); IList <ArticuloEN> listaArticulos = new List <ArticuloEN>(); for (int i = 0; i < productoEN.Articulo.Count; i++) { articuloCEN.Destroy(productoEN.Articulo[i].Id); } SessionCommit(); } catch (Exception ex) { SessionRollBack(); throw ex; } finally { SessionClose(); } }
// Elimina una lista de productos por id public void eliminarProductos(IList <int> lista) { try { using (ISession session = NHibernateHelper.OpenSession()) using (ITransaction tr = session.BeginTransaction()) { if (lista.Count > 0) { ProductoCAD productoCAD = new ProductoCAD(session); ProductoCEN productoCEN = new ProductoCEN(productoCAD); ProductoCP productoCP = new ProductoCP(session); for (int i = 0; i < lista.Count; i++) { productoCP.eliminarArticulosDeProducto(lista[i]); productoCEN.Destroy(lista[i]); } } tr.Commit(); } } catch (Exception ex) { throw ex; } }
public ActionResult Delete(int id, FormCollection collection) { try { // TODO: Add delete logic here SessionInitialize(); ComentarioCAD cad = new ComentarioCAD(session); ComentarioCEN cen = new ComentarioCEN(cad); ComentarioEN en = new ComentarioEN(); en = cen.ReadOID(id); AssemblerComentario ass = new AssemblerComentario(); Comentario sol = ass.ConvertENToModelUI(en); string tipo = null; ProductoCAD cadp = new ProductoCAD(session); ProductoCEN cenp = new ProductoCEN(cadp); ProductoEN enp = cenp.ReadOID(sol.idsup); EventoCAD cade = new EventoCAD(session); EventoCEN cene = new EventoCEN(cade); EventoEN ene = cene.ReadOID(sol.idsup); if (ene != null) { tipo = "Evento"; } else if (enp != null) { tipo = "Producto"; } else { tipo = sol.tipo; } SessionClose(); ComentarioCEN cenn = new ComentarioCEN(); cenn.Destroy(id); return(RedirectToAction("Details", tipo, new { id = sol.idsup })); } catch { return(View()); } }
// GET: HomeUsuario public ActionResult Index() { SessionInitialize(); SliderCAD sliCAD = new SliderCAD(session); SliderCEN sliCEN = new SliderCEN(sliCAD); IList <SliderEN> listSliEN = sliCEN.MuestraSliders(0, -1); IEnumerable <Slider> lista = new AssemblerSlider().ConvertListENToModel(listSliEN).ToList(); SessionClose(); SessionInitialize(); ProductoCAD cadArt = new ProductoCAD(session); CategoriaCAD cadCat = new CategoriaCAD(session); ProductoCEN cen = new ProductoCEN(cadArt); IList <ProductoEN> listProdEn = cen.MuestraProductos(0, -1); //DameProductosPorCat(id); Falta implementar este hql IEnumerable <Producto> listProds = new AssemblerProducto().ConvertListENToModel(listProdEn).ToList(); //CategoriaEN catEN = cadCat.ReadOIDDefault(id); SessionClose(); SessionInitialize(); IEnumerable <Producto> listprods2 = new AssemblerProducto().ConvertListENToModel(new ProductoCEN(new ProductoCAD(session)).GetTopVentas()); //GetProductosByNombre(Convert.ToString(form["prod"]), 0, -1)); SessionClose(); var tuple2 = Tuple.Create(lista, listProds, listprods2); return(View(tuple2)); }
private void inicializar(int id, string nombre, double precio, int cantidadstock) { Id = id; Nombre = nombre; Precio = precio; CantidadStock = cantidadstock; _cad = new ProductoCAD(); }
// GET: Producto/Details/5 public ActionResult Details(int id) { Producto prod = null; SessionInitialize(); ProductoEN prodEN = new ProductoCAD(session).ReadOIDDefault(id); prod = new AssemblerProducto().ConvertENToModelUI(prodEN); SessionClose(); return(View(prod)); }
// GET: Producto //[Authorize] quien este autorizado podrá acceder //GARANTIZAR 100% //[AllowAnonymous] -> asegura que una persona anónima puede acceder public ActionResult Index(/*int id*/) { SessionInitialize(); ProductoCAD cadArt = new ProductoCAD(session); CategoriaCAD cadCat = new CategoriaCAD(session); ProductoCEN cen = new ProductoCEN(cadArt); IList <ProductoEN> listProdEn = cen.MuestraProductos(0, -1); //DameProductosPorCat(id); Falta implementar este hql IEnumerable <Producto> listProds = new AssemblerProducto().ConvertListENToModel(listProdEn).ToList(); //CategoriaEN catEN = cadCat.ReadOIDDefault(id); SessionClose(); return(View(listProds)); }
public void Confirmar(int p_oid) { /*PROTECTED REGION ID(PracticaGenNHibernate.CP.Practica_Pedido_confirmar) ENABLED START*/ IPedidoCAD pedidoCAD = null; PedidoCEN pedidoCEN = null; PedidoEN pedidoEN = null; IProductoCAD productoCAD = null; ProductoCEN productoCEN = null; try { SessionInitializeTransaction(); pedidoCAD = new PedidoCAD(session); pedidoCEN = new PedidoCEN(pedidoCAD); productoCAD = new ProductoCAD(session); productoCEN = new ProductoCEN(productoCAD); pedidoEN = pedidoCEN.ReadOID(p_oid); IList <LineaPedidoEN> lineas = pedidoEN.LineaPedido; foreach (LineaPedidoEN l in lineas) { productoCEN.IncrementarNumVeces(l.Producto.Id, l.Cantidad); int veces = l.Producto.NumVeces; } pedidoEN.Confirmado = true; SessionCommit(); } catch (Exception ex) { SessionRollBack(); throw ex; } finally { SessionClose(); } /*PROTECTED REGION END*/ }
public BaseDatosGenNHibernate.EN.BaseDatos.PedidoEN EnviarPedido(Nullable <DateTime> p_Fecha, int p_pedido) { /*PROTECTED REGION ID(BaseDatosGenNHibernate.CP.BaseDatos_Pedido_enviarPedido) ENABLED START*/ BaseDatosGenNHibernate.EN.BaseDatos.PedidoEN result = null; try { SessionInitializeTransaction(); IPedidoCAD pedidoCAD = new PedidoCAD(session); IProductoCAD prodCAD = new ProductoCAD(session); IEnvioCAD envioCAD = new EnvioCAD(session); PedidoCEN pedidoCEN = new PedidoCEN(pedidoCAD); ProductoCEN prodCEN = new ProductoCEN(prodCAD); EnvioCEN envioCEN = new EnvioCEN(envioCAD); PedidoEN pedidoEN = pedidoCEN.MuestraPedidoPorOID(p_pedido); if (pedidoEN.Estado == Enumerated.BaseDatos.EstadoPedidoEnum.Pagado) { foreach (LineaPedidoEN lnEN in pedidoEN.LineaPedido) { ProductoEN prodEN = lnEN.Producto; prodCEN = new ProductoCEN(prodCAD); prodCEN.DecrementaStock(prodEN.Id, lnEN.Cantidad); } pedidoEN.Estado = Enumerated.BaseDatos.EstadoPedidoEnum.Enviado; pedidoCAD.Modify(pedidoEN); envioCEN = new EnvioCEN(envioCAD); envioCEN.New_(DateTime.Now, p_Fecha, Enumerated.BaseDatos.EstadoEnvioEnum.EnCamino, p_pedido); } SessionCommit(); } catch (Exception ex) { SessionRollBack(); throw ex; } finally { SessionClose(); } return(result); /*PROTECTED REGION END*/ }
public void RealizarValoracion(int p_usuario, int p_producto, double p_valor) { /*PROTECTED REGION ID(BaseDatosGenNHibernate.CP.BaseDatos_Usuario_realizarValoracion) ENABLED START*/ try { SessionInitializeTransaction(); ProductoCAD prodCAD = new ProductoCAD(session); ValoracionCAD valoracionCAD = new ValoracionCAD(session); ProductoCEN prodCEN = new ProductoCEN(prodCAD); ValoracionCEN valoracionCEN = new ValoracionCEN(valoracionCAD); valoracionCEN.New_(p_valor, p_usuario, p_producto); ProductoEN productoEN = prodCEN.MuestraProductoPorOID(p_producto); double v_Media = 0; double v_Num = 0; double v_Total = 0; foreach (ValoracionEN valoracionEN in productoEN.Valoracion) { v_Media += valoracionEN.Valor; v_Num++; } v_Total = v_Media / v_Num; productoEN.ValoracionMedia = v_Total; prodCAD.Modify(productoEN); SessionCommit(); } catch (Exception ex) { SessionRollBack(); throw ex; } finally { SessionClose(); } /*PROTECTED REGION END*/ }
// GET: HomeUsuario/Details/5 public ActionResult Details(int id) { Producto prod = null; SessionInitialize(); ProductoEN prodEN = new ProductoCAD(session).ReadOIDDefault(id); prod = new AssemblerProducto().ConvertENToModelUI(prodEN); SessionClose(); SessionInitialize(); IEnumerable <Comentario> listcoms = new AssemblerComentario().ConvertListENToModel(new ComentarioCEN(new ComentarioCAD(session)).GetAllComentariosByProducto(id, 0, 10)); //GetProductosByNombre(Convert.ToString(form["prod"]), 0, -1)); SessionClose(); var tuple2 = Tuple.Create(prod, listcoms); return(View(tuple2)); }
public ActionResult BusquedaPost(string nombre) { try { SessionInitialize(); ProductoCAD pCAD = new ProductoCAD(session); ProductoCEN pCEN = new ProductoCEN(pCAD); AssemblerProducto assemblerProducto = new AssemblerProducto(); IList <ProductoEN> listaP = pCEN.BuscarProducto(nombre); IList <Producto> Return = assemblerProducto.ConvertListENToModel(listaP, session); SessionClose(); return(View(Return)); } catch { return(View()); } }
public System.Collections.Generic.IList <ProductoEN> getProductosPorRangoPrecio(float min, float max) { System.Collections.Generic.IList <ProductoEN> en = null; ProductoCAD productoCAD = null; try { using (ISession session = NHibernateHelper.OpenSession()) using (ITransaction tr = session.BeginTransaction()) { productoCAD = new ProductoCAD(session); en = productoCAD.GetProductosPorRangoPrecio(min, max); tr.Commit(); } } catch (Exception ex) { throw ex; } return(en); }
// Obtiene un producto por ID public ProductoEN getProductoPorId(int idProducto) { ProductoEN producto = null; ProductoCAD productoCAD = null; try { using (ISession session = NHibernateHelper.OpenSession()) using (ITransaction tr = session.BeginTransaction()) { productoCAD = new ProductoCAD(session); producto = productoCAD.ReadOID(idProducto); tr.Commit(); } } catch (Exception ex) { throw ex; } return(producto); }
public ActionResult Index() //Productos Agotados { SessionInitialize(); ProductoCAD cadArt = new ProductoCAD(session); CategoriaCAD cadCat = new CategoriaCAD(session); ProductoCEN cen = new ProductoCEN(cadArt); IList <ProductoEN> listProdEn = cen.MuestraProductos(0, -1); //DameProductosPorCat(id); Falta implementar este hql IList <ProductoEN> listAgotados = new List <ProductoEN>(); foreach (ProductoEN cosaProds in listProdEn) { if (cosaProds.Stock == 0) { listAgotados.Add(cosaProds); } } IEnumerable <Producto> listProds = new AssemblerProducto().ConvertListENToModel(listAgotados).ToList(); //CategoriaEN catEN = cadCat.ReadOIDDefault(id); SessionClose(); return(View(listProds)); }
// GET: Producto/Delete/5 public ActionResult Delete(int id) { try { // TODO: Add delete logic here int idCategoria = -1; SessionInitialize(); ProductoCAD prodCAD = new ProductoCAD(session); ProductoCEN cen = new ProductoCEN(prodCAD); ProductoEN prodEN = cen.MuestraProductoPorOID(id); Producto prod = new AssemblerProducto().ConvertENToModelUI(prodEN); idCategoria = prod.IdCategoria; SessionClose(); new ProductoCEN().Destroy(id); return(RedirectToAction("Index")); } catch { return(View()); } }
//metodo que inserta e actualiza un nuevo producto public bool insertarActualizarProducto() { ProductoCAD producto = new ProductoCAD(this); return(producto.insertarActualizarProducto()); }
//metodo que inserta un nuevo producto public int nuevoProducto() { return(ProductoCAD.nuevoProducto()); }
//metodo que borra un producto public bool borrarProducto() { ProductoCAD producto = new ProductoCAD(this); return(producto.borrarProducto()); }
//metodo que devuelve un producto pasandole una id public ProductoEN productoPorId() { return(ProductoCAD.productoPorId(this.ProductoId)); }
//metodo que devuelve todos los productos public ProductoEN[] dameTodosProductos() { return(ProductoCAD.obtenerProductos()); }
public static void InitializeData() { /*PROTECTED REGION ID(initializeDataMethod) ENABLED START*/ try { /***************** CAD **********************/ IProductoCAD _IProductoCAD = new ProductoCAD(); IUsuarioCAD _IUsuarioCAD = new UsuarioCAD(); IEntradaCAD _IEntradaCAD = new EntradaCAD(); IAbonoCAD _IAbonoCAD = new AbonoCAD(); ITiendaCAD _ITiendaCAD = new TiendaCAD(); IPedidoCAD _IPedidoCAD = new PedidoCAD(); ILineaPedidoCAD _ILineaPedidoCAD = new LineaPedidoCAD(); IFacturaCAD _IFacturaCAD = new FacturaCAD(); ILineaFacturaCAD _ILineaFacturaCAD = new LineaFacturaCAD(); IArticuloCAD _IArticuloCAD = new ArticuloCAD(); ITallaCAD _ITallaCAD = new TallaCAD(); /***************** CEN **********************/ UsuarioCEN usuarioCEN = new UsuarioCEN(_IUsuarioCAD); // CEN de producto ProductoCEN productoCEN = new ProductoCEN(_IProductoCAD); // CEN de entradas y abonos EntradaCEN entradaCEN = new EntradaCEN(_IEntradaCAD); AbonoCEN abonoCEN = new AbonoCEN(_IAbonoCAD); // CEN de Tallas TallaCEN tallaCEN = new TallaCEN(_ITallaCAD); // CEN de Tienda TiendaCEN tiendaCEN = new TiendaCEN(_ITiendaCAD); // CEN de articulos ArticuloCEN articuloCEN = new ArticuloCEN(_IArticuloCAD); // CEN de los pedidos y lineas de pedido PedidoCEN pedidoCEN = new PedidoCEN(_IPedidoCAD); LineaPedidoCEN lineaPedidoCEN = new LineaPedidoCEN(_ILineaPedidoCAD); // CEN de las facturas y lineas de factura FacturaCEN facturaCEN = new FacturaCEN(_IFacturaCAD); LineaFacturaCEN lineaFacturaCEN = new LineaFacturaCEN(_ILineaFacturaCAD); /***************** USUARIOS *****************/ // CLIENTE UsuarioEN clienteEN = new UsuarioEN(); clienteEN.Nif = "12345678A"; clienteEN.Password = "******"; clienteEN.Nombre = "Ruben"; clienteEN.Apellidos = "Martinez"; clienteEN.FechaNac = new DateTime(1986, 11, 8); clienteEN.Direccion = "Alfonso Puchades 19, 8ºB, Benidorm, Alicante"; clienteEN.Email = "*****@*****.**"; clienteEN.Telefono = "966582521"; clienteEN.EsAdmin = false; usuarioCEN.New_(clienteEN.Nif, clienteEN.Password, clienteEN.Nombre, clienteEN.Apellidos, clienteEN.Email, clienteEN.FechaNac, clienteEN.Direccion, clienteEN.Telefono, clienteEN.EsAdmin); // ADMINISTRADOR UsuarioEN administradorEN = new UsuarioEN(); administradorEN.Nif = "01234567A"; administradorEN.Password = "******"; administradorEN.Nombre = "Pablo"; administradorEN.Apellidos = "Marzal"; administradorEN.Email = "*****@*****.**"; administradorEN.FechaNac = new DateTime(1986, 11, 8); administradorEN.Direccion = ""; administradorEN.Telefono = ""; administradorEN.EsAdmin = true; usuarioCEN.New_(administradorEN.Nif, administradorEN.Password, administradorEN.Nombre, administradorEN.Apellidos, administradorEN.Email, administradorEN.FechaNac, administradorEN.Direccion, administradorEN.Telefono, administradorEN.EsAdmin); // PRUEBAS DE LOGIN string[,] loginPass = new string[3, 2] { { "48333441E", "1234" }, // Correcto { "45644521", "54545" }, // No encuentra login { "48333441E", "55541" } // El password no coindice }; // String donde escribo cada salidas antes de guardarlas a fichero string cadena = ""; string ruta = "../../pruebas.txt"; System.IO.File.WriteAllText(ruta, cadena); // La primera vez reemplazamos el fichero cadena = "PRUEBA DE LOGIN: El primer resultado debe ser correcto, los otros dos son incorrectos\n"; for (int i = 0; i < 3; i++) { if (usuarioCEN.Login(loginPass[i, 0], loginPass[i, 1])) { cadena += (i + 1) + ". Login correcto\n"; } else { cadena += (i + 1) + ". Usuario o password incorrecto\n"; } } cadena += "\n\n--------------------------------------\n\n"; System.IO.File.AppendAllText(ruta, cadena); /***************** PRODUCTOS: ENTRADAS Y ABONOS *****************/ //ENTRADA TRIBUNA cadena = "\n\nCREANDO ENTRADA..."; EntradaEN entradaEN = new EntradaEN(); entradaEN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.entrada; entradaEN.Nombre = "Entrada TRIBUNA"; entradaEN.Stock = 100; entradaEN.FechaHora = new DateTime(2013, 11, 8, 16, 0, 0); entradaEN.Grada = "Tribuna"; entradaEN.Temporada = 2013; entradaEN.Tipo = "Adulto"; entradaEN.Precio = 49.95F; entradaEN.Descripcion = "Entrada normal para el encuentro entre UA Club de Futbol y el UMH Top Stars"; entradaEN.Foto = @"http://pictures2.todocoleccion.net/tc/2009/12/16/16426460.jpg"; entradaEN.Id = entradaCEN.New_(entradaEN.Nombre, entradaEN.Descripcion, entradaEN.Foto, entradaEN.Precio, entradaEN.Stock, entradaEN.Categoria, entradaEN.FechaHora, entradaEN.Tipo, entradaEN.Temporada, entradaEN.Grada); cadena += " ¡¡EXITO!!"; System.IO.File.AppendAllText(ruta, cadena); // ARTICULOS ASOCIADOS, TANTOS COMO STOCK for (int i = 0; i < entradaEN.Stock; i++) { ArticuloEN aTazaEN = new ArticuloEN(); aTazaEN.Producto = entradaEN; // Lo asociamos con su producto articuloCEN.New_(aTazaEN.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } //ENTRADA PREFERENTE cadena = "\n\nCREANDO ENTRADA..."; EntradaEN entrada4EN = new EntradaEN(); entrada4EN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.entrada; entrada4EN.Nombre = "Entrada PREFERENTE"; entrada4EN.Stock = 500; entrada4EN.FechaHora = new DateTime(2013, 11, 8, 16, 0, 0); entrada4EN.Grada = "Preferente"; entrada4EN.Temporada = 2013; entrada4EN.Tipo = "Adulto"; entrada4EN.Precio = 29.95F; entrada4EN.Descripcion = "Entrada normal para el encuentro entre UA Club de Futbol y el UMH Top Stars"; entrada4EN.Foto = @"http://pictures2.todocoleccion.net/tc/2009/12/16/16426460.jpg"; entrada4EN.Id = entradaCEN.New_(entrada4EN.Nombre, entrada4EN.Descripcion, entrada4EN.Foto, entrada4EN.Precio, entrada4EN.Stock, entrada4EN.Categoria, entrada4EN.FechaHora, entrada4EN.Tipo, entrada4EN.Temporada, entrada4EN.Grada); // ARTICULOS ASOCIADOS, TANTOS COMO STOCK for (int i = 0; i < entrada4EN.Stock; i++) { ArticuloEN articulo = new ArticuloEN(); articulo.Producto = entrada4EN; // Lo asociamos con su producto articuloCEN.New_(articulo.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } cadena += " ¡¡EXITO!!"; System.IO.File.AppendAllText(ruta, cadena); //ENTRADA FONDO NORTE cadena = "\n\nCREANDO ENTRADA..."; EntradaEN entrada2EN = new EntradaEN(); entrada2EN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.entrada; entrada2EN.Nombre = "Entrada FONDO NORTE"; entrada2EN.Stock = 200; entrada2EN.FechaHora = new DateTime(2013, 11, 8, 16, 0, 0); entrada2EN.Grada = "Fondo Norte"; entrada2EN.Temporada = 2013; entrada2EN.Tipo = "Adulto"; entrada2EN.Precio = 19.95F; entrada2EN.Descripcion = "Entrada normal para el encuentro entre UA Club de Futbol y el UMH Top Stars"; entrada2EN.Foto = @"http://pictures2.todocoleccion.net/tc/2009/12/16/16426460.jpg"; entrada2EN.Id = entradaCEN.New_(entrada2EN.Nombre, entrada2EN.Descripcion, entrada2EN.Foto, entrada2EN.Precio, entrada2EN.Stock, entrada2EN.Categoria, entrada2EN.FechaHora, entrada2EN.Tipo, entrada2EN.Temporada, entrada2EN.Grada); // ARTICULOS ASOCIADOS, TANTOS COMO STOCK for (int i = 0; i < entrada2EN.Stock; i++) { ArticuloEN articulo = new ArticuloEN(); articulo.Producto = entrada2EN; // Lo asociamos con su producto articuloCEN.New_(articulo.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } cadena += " ¡¡EXITO!!"; System.IO.File.AppendAllText(ruta, cadena); //ENTRADA FONDO SUR cadena = "\n\nCREANDO ENTRADA..."; EntradaEN entrada3EN = new EntradaEN(); entrada3EN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.entrada; entrada3EN.Nombre = "Entrada FONDO SUR"; entrada3EN.Stock = 200; entrada3EN.FechaHora = new DateTime(2013, 11, 8, 16, 0, 0); entrada3EN.Grada = "Fondo Sur"; entrada3EN.Temporada = 2013; entrada3EN.Tipo = "Adulto"; entrada3EN.Precio = 19.95F; entrada3EN.Descripcion = "Entrada normal para el encuentro entre UA Club de Futbol y el UMH Top Stars"; entrada3EN.Foto = @"http://pictures2.todocoleccion.net/tc/2009/12/16/16426460.jpg"; entrada3EN.Id = entradaCEN.New_(entrada3EN.Nombre, entrada3EN.Descripcion, entrada3EN.Foto, entrada3EN.Precio, entrada3EN.Stock, entrada3EN.Categoria, entrada3EN.FechaHora, entrada3EN.Tipo, entrada3EN.Temporada, entrada3EN.Grada); // ARTICULOS ASOCIADOS, TANTOS COMO STOCK for (int i = 0; i < entrada3EN.Stock; i++) { ArticuloEN articulo = new ArticuloEN(); articulo.Producto = entrada3EN; // Lo asociamos con su producto articuloCEN.New_(articulo.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } cadena += " ¡¡EXITO!!"; System.IO.File.AppendAllText(ruta, cadena); //ABONO ADULTO cadena = "\n\nCREANDO ABONO..."; AbonoEN abonoEN = new AbonoEN(); abonoEN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.abono; abonoEN.Precio = 124.99F; abonoEN.Descripcion = "Abono de media temporada valido para 8 encuentros"; abonoEN.Nombre = "Abono Adulto Tribuna"; abonoEN.Stock = 10; abonoEN.Tipo = "Adulto"; abonoEN.Temporada = 2014; abonoEN.Grada = "Tribuna"; abonoEN.Foto = "http://www.antiguosalumnosdepenalba.org/wp-content/uploads/2008/11/carnet_socio.jpg"; abonoEN.Id = abonoCEN.New_(abonoEN.Nombre, abonoEN.Descripcion, abonoEN.Foto, abonoEN.Precio, abonoEN.Stock, abonoEN.Categoria, abonoEN.Tipo, abonoEN.Temporada, abonoEN.Grada); // ARTICULOS ASOCIADOS, TANTOS COMO STOCK for (int i = 0; i < abonoEN.Stock; i++) { ArticuloEN articulo = new ArticuloEN(); articulo.Producto = abonoEN; // Lo asociamos con su producto articuloCEN.New_(articulo.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } cadena += " ¡¡EXITO!!"; System.IO.File.AppendAllText(ruta, cadena); //ABONO JOVEN cadena = "\n\nCREANDO ABONO..."; AbonoEN abono2EN = new AbonoEN(); abono2EN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.abono; abono2EN.Precio = 54.99F; abono2EN.Descripcion = "Abono de media temporada valido para 8 encuentros"; abono2EN.Nombre = "Abono Joven Fondo Norte"; abono2EN.Stock = 10; abono2EN.Tipo = "Joven"; abono2EN.Temporada = 2014; abono2EN.Grada = "Fondo Norte"; abono2EN.Foto = "http://www.antiguosalumnosdepenalba.org/wp-content/uploads/2008/11/carnet_socio.jpg"; abono2EN.Id = abonoCEN.New_(abono2EN.Nombre, abono2EN.Descripcion, abono2EN.Foto, abono2EN.Precio, abono2EN.Stock, abono2EN.Categoria, abono2EN.Tipo, abono2EN.Temporada, abono2EN.Grada); for (int i = 0; i < abono2EN.Stock; i++) { ArticuloEN articulo = new ArticuloEN(); articulo.Producto = abono2EN; // Lo asociamos con su producto articuloCEN.New_(articulo.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } cadena += " ¡¡EXITO!!"; System.IO.File.AppendAllText(ruta, cadena); //ABONO INFANTIL cadena = "\n\nCREANDO ABONO..."; AbonoEN abono3EN = new AbonoEN(); abono3EN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.abono; abono3EN.Precio = 34.99F; abono3EN.Descripcion = "Abono de media temporada valido para 8 encuentros"; abono3EN.Nombre = "Abono Infantil Fondo Sur"; abono3EN.Stock = 10; abono3EN.Tipo = "Infantil"; abono3EN.Temporada = 2014; abono3EN.Grada = "Fondo Sur"; abono3EN.Foto = "http://www.antiguosalumnosdepenalba.org/wp-content/uploads/2008/11/carnet_socio.jpg"; abono3EN.Id = abonoCEN.New_(abono3EN.Nombre, abono3EN.Descripcion, abono3EN.Foto, abono3EN.Precio, abono3EN.Stock, abono3EN.Categoria, abono3EN.Tipo, abono3EN.Temporada, abono3EN.Grada); for (int i = 0; i < abono3EN.Stock; i++) { ArticuloEN articulo = new ArticuloEN(); articulo.Producto = abono3EN; // Lo asociamos con su producto articuloCEN.New_(articulo.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } cadena += " ¡¡EXITO!!"; System.IO.File.AppendAllText(ruta, cadena); //ABONO JUBILADO cadena = "\n\nCREANDO ABONO..."; AbonoEN abono4EN = new AbonoEN(); abono4EN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.abono; abono4EN.Precio = 34.99F; abono4EN.Descripcion = "Abono de media temporada valido para 8 encuentros"; abono4EN.Nombre = "Abono Jubilado Preferente"; abono4EN.Stock = 10; abono4EN.Tipo = "Jubilado"; abono4EN.Temporada = 2014; abono4EN.Grada = "Preferente"; abono4EN.Foto = "http://www.antiguosalumnosdepenalba.org/wp-content/uploads/2008/11/carnet_socio.jpg"; abono4EN.Id = abonoCEN.New_(abono4EN.Nombre, abono4EN.Descripcion, abono4EN.Foto, abono4EN.Precio, abono4EN.Stock, abono4EN.Categoria, abono4EN.Tipo, abono4EN.Temporada, abono4EN.Grada); for (int i = 0; i < abono4EN.Stock; i++) { ArticuloEN articulo = new ArticuloEN(); articulo.Producto = abono4EN; // Lo asociamos con su producto articuloCEN.New_(articulo.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } cadena += " ¡¡EXITO!!"; System.IO.File.AppendAllText(ruta, cadena); /***************** PRODUCTOS: TIENDA *****************/ // TALLAS TallaEN talla1 = new TallaEN(); TallaEN talla2 = new TallaEN(); TallaEN talla3 = new TallaEN(); TallaEN talla4 = new TallaEN(); TallaEN talla5 = new TallaEN(); TallaEN talla6 = new TallaEN(); TallaEN talla7 = new TallaEN(); // Unica sin medidas, para varios talla1.Nombre = "Unica"; talla1.Medidas = "10x10 cm"; talla5.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.varios; // Prenda talla2.Nombre = "S"; talla3.Nombre = "M"; talla4.Nombre = "L"; talla2.Medidas = "60x15x20 cm"; talla3.Medidas = "80x25x20 cm"; talla4.Medidas = "100x50x30 cm"; talla2.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.prenda; talla3.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.prenda; talla4.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.prenda; // Calzado talla5.Nombre = "39"; talla6.Nombre = "41"; talla7.Nombre = "44"; talla5.Medidas = ""; talla6.Medidas = ""; talla7.Medidas = ""; talla5.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.calzado; talla6.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.calzado; talla7.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.calzado; talla1.Id = tallaCEN.New_(talla1.Nombre, talla1.Tipo, talla1.Medidas); talla2.Id = tallaCEN.New_(talla2.Nombre, talla2.Tipo, talla2.Medidas); talla3.Id = tallaCEN.New_(talla3.Nombre, talla3.Tipo, talla3.Medidas); talla4.Id = tallaCEN.New_(talla4.Nombre, talla4.Tipo, talla4.Medidas); talla5.Id = tallaCEN.New_(talla5.Nombre, talla5.Tipo, talla5.Medidas); talla6.Id = tallaCEN.New_(talla6.Nombre, talla6.Tipo, talla6.Medidas); talla7.Id = tallaCEN.New_(talla7.Nombre, talla7.Tipo, talla7.Medidas); IList <int> tallasVariosId = new List <int>(); tallasVariosId.Add(talla1.Id); IList <int> tallasPrendasId = new List <int>(); tallasPrendasId.Add(talla2.Id); tallasPrendasId.Add(talla3.Id); tallasPrendasId.Add(talla4.Id); IList <int> tallasCalzadoId = new List <int>(); tallasCalzadoId.Add(talla5.Id); tallasCalzadoId.Add(talla6.Id); tallasCalzadoId.Add(talla7.Id); // PRODUCTO Y ARTICULO CAMISETA (CAMISETA) cadena = "\n\nCREANDO PRODUCTO CAMISETA..."; TiendaEN pCamisetaEN = new TiendaEN(); pCamisetaEN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.tienda; pCamisetaEN.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.prenda; pCamisetaEN.Nombre = "Camiseta UA Club"; pCamisetaEN.Precio = 55; pCamisetaEN.Descripcion = "Camiseta UA Club para los aficionados a este gran equipo de futbol"; pCamisetaEN.Stock = 50; pCamisetaEN.Foto = @"http://dmtienda.com/files/2009/05/15/img1_camiseta-seleccin-de-gana-aos-50_0.jpg"; pCamisetaEN.Color = "Verde, Amarillo, Rojo"; pCamisetaEN.Id = tiendaCEN.New_(pCamisetaEN.Nombre, pCamisetaEN.Descripcion, pCamisetaEN.Foto, pCamisetaEN.Precio, pCamisetaEN.Stock, pCamisetaEN.Categoria, pCamisetaEN.Color, pCamisetaEN.Tipo); // Relacionamos con las tallas de calzado tiendaCEN.AgregaTalla(pCamisetaEN.Id, tallasPrendasId); cadena += " ¡¡EXITO!!"; cadena += "\n\nCREANDO ARTICULO CAMISETA..."; // ARTICULOS ASOCIADOS, TANTOS COMO STOCK for (int i = 0; i < pCamisetaEN.Stock; i++) { ArticuloEN aCamisetaEN = new ArticuloEN(); aCamisetaEN.Producto = pCamisetaEN; // Lo asociamos con su producto articuloCEN.New_(aCamisetaEN.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } cadena += " ¡¡EXITO!!"; cadena += "\n\n--------------------------------------\n\n"; System.IO.File.AppendAllText(ruta, cadena); // -------------------------------------------------------------- // PRODUCTO Y ARTICULO TAZA (VARIOS) cadena = "\n\nCREANDO PRODUCTO TAZA..."; TiendaEN pTazaEN = new TiendaEN(); pTazaEN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.tienda; pTazaEN.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.varios; pTazaEN.Nombre = "Taza UA Club"; pTazaEN.Precio = 10; pTazaEN.Descripcion = "Taza del mejor equipo del mundo para tomarte el Cola Cao"; pTazaEN.Stock = 25; pTazaEN.Foto = @"http://www.doblevela.com/images/medium/TF780_med.png"; pTazaEN.Color = "Blanco"; pTazaEN.Id = tiendaCEN.New_(pTazaEN.Nombre, pTazaEN.Descripcion, pTazaEN.Foto, pTazaEN.Precio, pTazaEN.Stock, pTazaEN.Categoria, pTazaEN.Color, pTazaEN.Tipo); // Relacionamos con las tallas de calzado tiendaCEN.AgregaTalla(pTazaEN.Id, tallasVariosId); cadena += " ¡¡EXITO!!"; cadena += "\n\nCREANDO ARTICULO TAZA..."; // ARTICULOS ASOCIADOS, TANTOS COMO STOCK for (int i = 0; i < pTazaEN.Stock; i++) { ArticuloEN aTazaEN = new ArticuloEN(); aTazaEN.Producto = pTazaEN; // Lo asociamos con su producto articuloCEN.New_(aTazaEN.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } cadena += " ¡¡EXITO!!"; cadena += "\n\n--------------------------------------\n\n"; System.IO.File.AppendAllText(ruta, cadena); // -------------------------------------------------------------- // PRODUCTO Y ARTICULO BUFANDA (VARIOS) cadena = "\n\nCREANDO PRODUCTO BUFANDA..."; TiendaEN pBufandaEN = new TiendaEN(); pBufandaEN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.tienda; pBufandaEN.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.varios; pBufandaEN.Nombre = "Bufanda UA Club"; pBufandaEN.Precio = 15; pBufandaEN.Descripcion = "Bufanda del mejor equipo del mundo para no pasar frío"; pBufandaEN.Stock = 80; pBufandaEN.Foto = @"http://www.fashion-sport.fr/698-1468-thickbox/echarpe-officielle-espagne-2012-adidas.jpg"; pBufandaEN.Color = "Rojo"; pBufandaEN.Id = tiendaCEN.New_(pBufandaEN.Nombre, pBufandaEN.Descripcion, pBufandaEN.Foto, pBufandaEN.Precio, pBufandaEN.Stock, pBufandaEN.Categoria, pTazaEN.Color, pTazaEN.Tipo); // Relacionamos con las tallas de calzado tiendaCEN.AgregaTalla(pBufandaEN.Id, tallasVariosId); cadena += " ¡¡EXITO!!"; cadena += "\n\n--------------------------------------\n\n"; System.IO.File.AppendAllText(ruta, cadena); for (int i = 0; i < pBufandaEN.Stock; i++) { ArticuloEN aBufandaEN = new ArticuloEN(); aBufandaEN.Producto = pBufandaEN; // Lo asociamos con su producto articuloCEN.New_(aBufandaEN.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } // -------------------------------------------------------------- // PRODUCTO Y ARTICULO BOTAS (CALZADO) cadena = "\n\nCREANDO PRODUCTO BOTAS..."; TiendaEN pBotasEN = new TiendaEN(); pBotasEN.Categoria = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaEnum.tienda; pBotasEN.Tipo = AppEstadioGenNHibernate.Enumerated.AppEstadio.CategoriaTiendaEnum.calzado; pBotasEN.Nombre = "Botas UA Club"; pBotasEN.Precio = 150; pBotasEN.Descripcion = "Botas niño Club Futbol UA"; pBotasEN.Stock = 15; pBotasEN.Foto = @"http://www.sabercurioso.es/wp-content/botas_futbol.jpg"; pBotasEN.Color = "Azul"; pBotasEN.Id = tiendaCEN.New_(pBotasEN.Nombre, pBotasEN.Descripcion, pBotasEN.Foto, pBotasEN.Precio, pBotasEN.Stock, pBotasEN.Categoria, pBotasEN.Color, pBotasEN.Tipo); // Relacionamos con las tallas de calzado tiendaCEN.AgregaTalla(pBotasEN.Id, tallasCalzadoId); cadena += " ¡¡EXITO!!"; cadena += "\n\nCREANDO ARTICULO CALZADO BOTAS..."; // ARTICULOS ASOCIADOS, TANTOS COMO STOCK for (int i = 0; i < pBotasEN.Stock; i++) { ArticuloEN aBotasEN = new ArticuloEN(); aBotasEN.Producto = pBotasEN; // Lo asociamos con su producto articuloCEN.New_(aBotasEN.Producto.Id); // Esto devuelve el id, pero da igual no nos hace falta ahora } cadena += " ¡¡EXITO!!"; cadena += "\n\n--------------------------------------\n\n"; System.IO.File.AppendAllText(ruta, cadena); // -------------------------------------------------------------- /************** PEDIDOS Y FACTURAS *************/ //LINEAPEDIDO LineaPedidoEN lineaPedidoEN = new LineaPedidoEN(); lineaPedidoEN.Unidades = 2; lineaPedidoEN.Precio = entradaEN.Precio * lineaPedidoEN.Unidades; // Asocia un producto lineaPedidoEN.Producto = entradaEN; // Como es una composicion, no es necesario hacer el new, ya lo hara pedido // creamos la lista de pedidos que Pedido debera crear y asociar. IList <LineaPedidoEN> listaLineasPedido = new List <LineaPedidoEN>(); listaLineasPedido.Add(lineaPedidoEN); // PEDIDO cadena = "\n\nCREANDO PEDIDO PASANDO LINEAPEDIDO... "; PedidoEN pedidoEN = new PedidoEN(); pedidoEN.Fecha = new DateTime(2012, 11, 8); pedidoEN.Estado = AppEstadioGenNHibernate.Enumerated.AppEstadio.EstadoPedidoEnum.pendiente; pedidoEN.Precio = 25.1f; pedidoEN.Id = pedidoCEN.New_(pedidoEN.Fecha, pedidoEN.Estado, listaLineasPedido, clienteEN.Nif, pedidoEN.Precio); // Aqui se le debe pasar clienteEN.Nif porque no es autogenerado cadena += " ¡¡EXITO!!"; cadena += "\n\n--------------------------------------\n\n"; System.IO.File.AppendAllText(ruta, cadena); /************** PRUEBAS DE CUSTOM *************/ /* * // IncrementarStock * cadena = "\n\nPROBANDO IncrementarStock\n"; * cadena += "\nStock de camisetas inicial = " + pTazaEN.Stock + "\n\n"; * cadena += "Incrementando Stock en 10 unidades..."; * * productoCEN.IncrementarStock (pTazaEN.Id, 10); * pTazaEN = _IProductoCAD.ReadOID (pTazaEN.Id); // Recogemos el producto modificado * * cadena += "\n\nStock de camisetas final = " + pTazaEN.Stock; * cadena += "\n\n--------------------------------------\n\n"; * System.IO.File.AppendAllText (ruta, cadena); * * // DecrementarStock * cadena = "\n\nPROBANDO DecrementarStock segun las unidades de lineaPedido\n"; * cadena += "\nStock de camisetas inicial = " + pTazaEN.Stock + "\n\n"; * cadena += "Decrementando Stock en 5 unidades..."; * * productoCEN.DecrementarStock (pTazaEN.Id, 5); * // Recogemos el producto modificado * pTazaEN = _IProductoCAD.ReadOID (pTazaEN.Id); * * cadena += "\n\nStock de camisetas final = " + pTazaEN.Stock; * cadena += "\n\n--------------------------------------\n\n"; * System.IO.File.AppendAllText (ruta, cadena); * * // ComprobarStock, indica si hay suficientes unidades de stock con respecto a las que se van a pedir * cadena = "\n\nPROBANDO ComprobarStock\n\n"; * int decre = 35; * cadena = "El producto Camiseta tiene " + pTazaEN.Stock + " en stock, pedimos " + decre + " unidades...\n"; * if (productoCEN.ComprobarStock (pTazaEN.Id, decre)) { * cadena += "\nSe puede realizar el pedido, aun quedan unidades en stock"; * } * else { * cadena += "\nNo quedan unidades suficientes para realizar el pedido"; * } * * cadena += "\n\n--------------------------------------\n\n"; * System.IO.File.AppendAllText (ruta, cadena); */ /************** HQL *************/ // BUSQUEDA POR NOMBRE cadena = "\n\nOBTENIENDO PRODUCTOS POR NOMBRE: 'camiseta'\n\n"; IList <ProductoEN> resultados = new List <ProductoEN>(); string termino = "camiseta"; resultados = productoCEN.GetProductosPorNombre(termino); cadena += "\nEncontrados " + resultados.Count + " productos\n\n"; foreach (ProductoEN r in resultados) { cadena += "Nombre: " + r.Nombre + "\n" + "Descripcion: " + r.Descripcion + "\n" + "Precio: " + r.Precio + "\n" + "Stock: " + r.Stock + "\n" + "\n"; } cadena += "\n\n--------------------------------------\n\n"; System.IO.File.AppendAllText(ruta, cadena); // BUSQUEDA POR DESCRIPCION cadena = "\n\nOBTENIENDO PRODUCTOS POR DESCRIPCION: 'UMH Top Stars'\n\n"; resultados.Clear(); termino = "UMH Top Stars"; resultados = productoCEN.GetProductosPorDescripcion(termino); cadena += "\nEncontrados " + resultados.Count + " productos\n\n"; foreach (ProductoEN r in resultados) { cadena += "Nombre: " + r.Nombre + "\n" + "Descripcion: " + r.Descripcion + "\n" + "Precio: " + r.Precio + "\n" + "Stock: " + r.Stock + "\n" + "\n"; } cadena += "\n\n--------------------------------------\n\n"; System.IO.File.AppendAllText(ruta, cadena); // BUSQUEDA POR RANGO DE PRECIO cadena = "\n\nOBTENIENDO PRODUCTOS POR RANGO DE PRECIO: min = 5, max = 20\n\n"; resultados.Clear(); float min = 5; float max = 20; resultados = productoCEN.GetProductosPorRangoPrecio(min, max); cadena += "\nEncontrados " + resultados.Count + " productos\n\n"; foreach (ProductoEN r in resultados) { cadena += "Nombre: " + r.Nombre + "\n" + "Descripcion: " + r.Descripcion + "\n" + "Precio: " + r.Precio + "\n" + "Stock: " + r.Stock + "\n" + "\n"; } cadena += "\n\n--------------------------------------\n\n"; System.IO.File.AppendAllText(ruta, cadena); // OBTENER PEDIDOS ENTRE FECHAS cadena = "\n\nOBTENIENDO PEDIDOS POR RANGO DE FECHA\n\n"; resultados.Clear(); DateTime fecha_min = new DateTime(2012, 10, 8); DateTime fecha_max = new DateTime(2012, 12, 8); IList <PedidoEN> resPedidos = new List <PedidoEN>(); resPedidos = pedidoCEN.GetPedidosEntreFechas(fecha_min, fecha_max); cadena += "\nEncontrados " + resPedidos.Count + " pedidos\n\n"; foreach (PedidoEN r in resPedidos) { cadena += "Fecha: " + r.Fecha + "\n" + "Estado: " + r.Estado + "\n" + "Cliente: " + r.Cliente.Nif + "\n" + "\n"; } cadena += "\n\n--------------------------------------\n\n"; System.IO.File.AppendAllText(ruta, cadena); System.Console.WriteLine("\n\n\nEL FICHERO PRUEBAS.TXT DENTRO DE LA CARPETA INITIALIZEDB CONTIENE EL RESULTADO DE TODAS LAS PRUEBAS REALIZADAS\n\n"); /*PROTECTED REGION END*/ } catch (Exception ex) { System.Console.WriteLine(ex.InnerException); throw ex; } }
public ProductoEN() { _cad = new ProductoCAD(); }
/// <summary> /// Confirma los cambios del Producto en la DB. Inserta o modifica. /// </summary> /// <returns>Devuelve true si se llevó a cabo la insercion/acatualizacion o false en caso contrario</returns> public bool commitDB() { // Inserta en la DB si no existe y lo actualiza si ya existía ProductoCAD cad = new ProductoCAD(this); return cad.insertarActualizar(); }
/// <summary> /// Borra el Producto actual de la DB /// </summary> /// <returns>Devuelve true si se borró con éxito o false en caso contrario</returns> public bool borrarDB() { // Borra el Producto actual de la DB ProductoCAD cad = new ProductoCAD(this); return cad.borrar(); }
// Decrementa el stock, genera factura y devuelve su id public int EnviarPedidoGenerarFactura(int idPedido) { int resul = -1; try { SessionInitializeTransaction(); bool correcto = true; // Recoger el pedido PedidoCAD pedidoCAD = new PedidoCAD(session); PedidoEN pedidoEN = new PedidoEN(); pedidoEN = pedidoCAD.ReadOID(idPedido); ProductoCAD productoCAD = new ProductoCAD(session); ProductoCEN productoCEN = new ProductoCEN(productoCAD); IList <LineaFacturaEN> lineasFactura = new List <LineaFacturaEN>(); foreach (LineaPedidoEN linea in pedidoEN.LineaPedido) { ProductoEN producto = linea.Producto; productoCEN.DecrementarStock(producto.Id, linea.Unidades); IList <int> idArticulos = new List <int>(); if (linea.Producto.Stock < linea.Unidades) // No hay stock, no se envia el pedido { correcto = false; break; } for (int i = 0; correcto && i < linea.Unidades; i++) { idArticulos.Add(producto.Articulo[i].Id); } ArticuloCAD aCAD = new ArticuloCAD(session); ArticuloCEN aCEN = new ArticuloCEN(aCAD); for (int i = 0; i < idArticulos.Count; i++) { aCEN.Destroy(idArticulos[i]); } // Creamos las lineas de factura para esta linea de pedido for (int i = 0; i < linea.Unidades; i++) { LineaFacturaEN lfEN = new LineaFacturaEN(); lfEN.Articulo = producto.Articulo[i]; lineasFactura.Add(lfEN); // Luego el new de factura creara las lineas } } // Generar la factura FacturaCAD facturaCAD = new FacturaCAD(session); FacturaCEN facturaCEN = new FacturaCEN(facturaCAD); FacturaEN facturaEN = new FacturaEN(); facturaEN.Fecha = DateTime.Now; facturaEN.PrecioTotal = pedidoEN.Precio; facturaEN.Pedido = pedidoEN; facturaEN.Id = facturaCEN.New_(pedidoEN.Id, facturaEN.PrecioTotal, lineasFactura, facturaEN.Fecha); if (correcto) { resul = 1; } SessionCommit(); } catch (Exception ex) { SessionRollBack(); throw ex; } finally { SessionClose(); } return(resul); }