Ejemplo n.º 1
0
 public override void SiguientePaso(PedidoEntidad unPedido, bool Cancela, int laFormaEnvio)
 {
     if (Cancela)
     {
         unPedido.DefinirEstado(new StateCancelado());
     }
     else
     {
         unPedido.DefinirEstado(new StateEntregado());
     }
 }
Ejemplo n.º 2
0
        //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());
                }
            }
        }
Ejemplo n.º 3
0
        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);
        }