public override void SiguientePaso(PedidoEntidad unPedido, bool Cancela, int laFormaEnvio) { if (Cancela) { unPedido.DefinirEstado(new StateCancelado()); } else { unPedido.DefinirEstado(new StateEntregado()); } }
//private static StatePedido _State = new StatePago(); //private StatePago() { } //public static StatePedido Instanciar() //{ // return _State; //} public override void SiguientePaso(PedidoEntidad unPedido, bool Cancela, int laFormaEnvio) { if (Cancela) { unPedido.DefinirEstado(new StateCancelado()); } else { if (laFormaEnvio == (int)FormaEntregaEntidad.Options.Correo) { unPedido.DefinirEstado(new StateEnCamino()); } else { unPedido.DefinirEstado(new StateListoParaRetirar()); } } }
private void MapearEstadoActualPedido(PedidoEntidad elPedido, DataSet ds) { foreach (DataRow row in ds.Tables[0].Rows) { switch ((int)row["IdEstadoPedido"]) { case 1: elPedido.DefinirEstado(new Entidades.StatePatron.StatePendientePago()); //.CambiarEstado(TFI.Entidades.StatePatron.StatePendientePago.Instanciar()); break; case 2: elPedido.DefinirEstado(new Entidades.StatePatron.StatePago()); break; case 3: elPedido.DefinirEstado(new Entidades.StatePatron.StateEnCamino()); break; case 4: elPedido.DefinirEstado(new Entidades.StatePatron.StateListoParaRetirar()); break; case 5: elPedido.DefinirEstado(new Entidades.StatePatron.StateEntregado()); break; case 6: elPedido.DefinirEstado(new Entidades.StatePatron.StateCancelado()); break; } elPedido.VerEstadoActual().DescripcionEstadoPedido = row["DescripcionEstadoPedido"].ToString(); elPedido.VerEstadoActual().IdEstadoPedido = (int)row["IdEstadoPedido"]; } }
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); }