public DireccionController(AngelDbContext Db) { this.Db = Db; ClDireccion = new DireccionCore(this.Db); ClEstado = new EstadoCore(this.Db); ClMunicipio = new MunicipioCore(this.Db); CLUsuario = new UsuarioCore(this.Db); }
public static int GenerarPedido() { var Current = HttpContext.Current; PedidoCore ManagerPedido = new PedidoCore(); var lista = (List <PedidoLista>)Current.Session["Pedido"]; var entregaTipo = (int)Current.Session["FormaEnvio"]; var logueado = (UsuarioEntidad)Current.Session["Usuario"]; var sucursalesDisponibles = HttpContext.Current.Session["SucursalesDisponibles"]; var sucursalId = (int?)Current.Session["Seleccionada"]; List <PedidoDetalleEntidad> pedidosDetalles = new List <PedidoDetalleEntidad>(); List <PedidoEntidad> unasCompras = new List <PedidoEntidad>(); DireccionEntidad unaDireccion; UsuarioCore usuarioManager = new UsuarioCore(); DireccionCore ManagerDireccion = new DireccionCore(); //var direccionEnvio = entregaTipo == (int)FormaEntregaEntidad.Options.Correo // ? usuarioManager.FindDireccionEnvioPredeterminada(logueado.NombreUsuario).IdDireccion // : sucursalManager.FindDireccionSucursal(sucursalId.Value).IdDireccion; unaDireccion = ManagerDireccion.TraerDireccionPorIdSucursal(sucursalId.Value); foreach (PedidoLista item in lista) { PedidoDetalleEntidad unPedDet = new PedidoDetalleEntidad(); unPedDet.Cantidad = item.Cantidad; unPedDet.PrecioUnitario = item.Producto.PrecioUnitario; unPedDet.miProducto = new ProductoEntidad(); unPedDet.miProducto.IdProducto = item.Producto.IdProducto; unPedDet.CUIT = CORE.Helpers.ConfigSection.Default.Site.Cuit; pedidosDetalles.Add(unPedDet); } //lista.ForEach(x => pedidosDetalles.Add(new PedidoDetalleEntidad() //{ // Cantidad = x.Cantidad, // PrecioUnitario = x.Producto.PrecioUnitario, // IdProducto = x.Producto.IdProducto, // CUIT = CORE.Helpers.ConfigSection.Default.Site.Cuit //})); Current.Session["DetallesPedido"] = pedidosDetalles; var pedido = new PedidoEntidad(); pedido.FechaPedido = DateTime.Now; pedido.miUsuario = new UsuarioEntidad(); pedido.miUsuario.NombreUsuario = logueado.NombreUsuario; pedido.miUsuario.CUIT = CORE.Helpers.ConfigSection.Default.Site.Cuit; pedido.misDetalles = pedidosDetalles; pedido.miFormaEntrega = new FormaEntregaEntidad(); pedido.miFormaEntrega.IdFormaEntrega = entregaTipo; pedido.miDireccionEntrega = new DireccionEntidad(); pedido.miDireccionEntrega.IdDireccion = unaDireccion.IdDireccion; pedido.DefinirEstado(new Entidades.StatePatron.StatePendientePago()); ManagerPedido.PedidoSetearEstadoDescripEnMemoria(pedido); //Crea el Pedido y descuenta stock de los productos pedido = ManagerPedido.Create(pedido, sucursalId); //Agrega a "Compras" el pedido generado Current.Session["UltimoPedido"] = pedido.IdPedido; if (Current.Session["Compras"] != null) { unasCompras = Current.Session["Compras"] as List <PedidoEntidad>; } unasCompras.Add(pedido); Current.Session["Compras"] = unasCompras; //Eliminar las variables de sesión que tenían el pedido en memoria sin confirmar //Revisar si hay q eliminar otras Current.Session["Pedido"] = null; //Current.Session["DetallesPedido"] = null; Current.Session["Productos"] = null; //Current.Session.Add("IdPedido", pedido.IdPedido.ToString()); return(pedido.IdPedido); }