Exemple #1
0
        public static bool ChequearPedido()
        {
            List <SucursalEntidad> sucursalesDisponibles;
            SucursalCore           _sucursalCore = new SucursalCore();
            List <PedidoLista>     ProdCantEnPedido;
            var Current = HttpContext.Current;
            List <PedidoDetalleEntidad> unosPedidosDetalles = new List <PedidoDetalleEntidad>();

            ProdCantEnPedido = (List <PedidoLista>)Current.Session["Pedido"];
            if (ProdCantEnPedido != null && ProdCantEnPedido.Count > 0)
            {
                PedidoDetalleEntidad unPedDet;
                //Para armar lista PedidosDetalles y enviarlo como param a la BLL y obtener sucursales con stock suficiente
                foreach (PedidoLista UnProdCant in ProdCantEnPedido)
                {
                    unPedDet                       = new PedidoDetalleEntidad();
                    unPedDet.miProducto            = new ProductoEntidad();
                    unPedDet.miProducto.IdProducto = UnProdCant.Producto.IdProducto;
                    unPedDet.Cantidad              = UnProdCant.Cantidad;
                    unosPedidosDetalles.Add(unPedDet);
                }
            }

            sucursalesDisponibles = _sucursalCore.TraerSucursalesConStock(unosPedidosDetalles);

            if (sucursalesDisponibles.Count > 0)
            {
                return(true);
            }
            //Current.Session.Add("SucursalesDisponibles", sucursalesDisponibles); //Guardo en Sesión las sucursales disponibles para tomarlas en WebMethod "FormaEnvio"
            //Por si lo quito de PedidosEnvio, puede ir aca solamente la línea de arriba
            else
            {
                return(false);
            }
        }
Exemple #2
0
        ////Para mantener la sesión activa
        //[WebMethod(EnableSession = true)]
        //public static void MantenerSesion()
        //{

        //}

        protected void Page_Load(object sender, EventArgs e)
        {
            //En caso de no tener un Pedido vigente redirige a home
            var Current = HttpContext.Current;

            if (Current.Session["Productos"] == null)
            {
                Response.Redirect("/Areas/Public/Forms/Home.aspx");
            }

            idioma   = new LenguajeEntidad();
            logueado = (UsuarioEntidad)Current.Session["Usuario"];
            //Para armar lista PedidosDetalles y enviarlo como param a la BLL y obtener sucursales con stock suficiente
            ProdCantEnPedido = (List <PedidoLista>)Current.Session["Pedido"];
            if (ProdCantEnPedido != null && ProdCantEnPedido.Count > 0)
            {
                unosPedidosDetalles = new List <PedidoDetalleEntidad>();
                PedidoDetalleEntidad unPedDet;
                //Para armar lista PedidosDetalles y enviarlo como param a la BLL y obtener sucursales con stock suficiente
                foreach (PedidoLista UnProdCant in ProdCantEnPedido)
                {
                    unPedDet                       = new PedidoDetalleEntidad();
                    unPedDet.miProducto            = new ProductoEntidad();
                    unPedDet.miProducto.IdProducto = UnProdCant.Producto.IdProducto;
                    unPedDet.Cantidad              = UnProdCant.Cantidad;
                    unosPedidosDetalles.Add(unPedDet);
                }
            }
            //Fin: //Para armar lista PedidosDetalles y enviarlo como param a la BLL y obtener sucursales con stock suficiente

            if (!IsPostBack)
            {
                idioma = (LenguajeEntidad)Session["Idioma"];

                if (idioma == null)
                {
                    idioma = new LenguajeEntidad();
                    idioma.DescripcionLenguaje = "es";
                    Session["Idioma"]          = idioma;
                }
                cotizacion = new MonedaEmpresaEntidad();
                cotizacion = (MonedaEmpresaEntidad)Session["Cotizacion"];
                Session.Add("cotizacionAnterior", "");
            }
            else
            {
                cotizacion.IdMoneda        = Convert.ToInt16(Master.obtenerValorDropDown());
                Session["Cotizacion"]      = cotizacion;
                idioma.DescripcionLenguaje = Master.obtenerIdiomaCombo();
                Session["Idioma"]          = idioma;
            }
            if (cotizacion != null)
            {
                moneda = _coreMoneda.selectMoneda(cotizacion.IdMoneda);
            }
            DropDownList lblIdioma = FindControlFromMaster <DropDownList>("ddlLanguages");

            if (lblIdioma != null)
            {
                lblIdioma.SelectedValue = idioma.DescripcionLenguaje;
            }
            DropDownList lblStatus = FindControlFromMaster <DropDownList>("MonedaDRW");

            if (lblStatus != null)
            {
                if (cotizacion != null)
                {
                    lblStatus.SelectedValue = cotizacion.IdMoneda.ToString();
                }
            }

            formaEnvioId = (int?)Current.Session["FormaEnvio"];
            Current.Session["FormaEnvio"] = 1;//REVISAR
            if (logueado == null)
            {
                Response.Redirect("/Areas/Public/Forms/Pedidos.aspx");
            }
            //Antes obtenía todas las sucursales
            //sucursalesDisponibles = _sucursalCore.FindAll();
            //Ahora se obtienen las que poseen stock unicamente
            sucursalesDisponibles = _sucursalCore.TraerSucursalesConStock(unosPedidosDetalles);

            if (sucursalesDisponibles.Count > 0)
            {
                Session.Add("SucursalesDisponibles", sucursalesDisponibles);                       //Guardo en Sesión las sucursales disponibles para tomarlas en WebMethod "FormaEnvio"
                HttpContext.Current.Session["Seleccionada"] = sucursalesDisponibles[0].IdSucursal; //Sucursal seleccionada, en este momento la primera que tiene stock
                seleccionado = sucursalesDisponibles[0].IdSucursal;                                //Sucursal seleccionada, en este momento la primera que tiene stock, por si no hago click y queda
                //seleccionado Envío por correo
            }

            else
            {
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                sb.Append(@"<script type='text/javascript'>");
                //sb.Append("$('#currentdetail').modal('show');");
                sb.Append("alert('No se puede realizar el Pedido con la cantidad de Productos solicitada, por favor comuníquese con nosotros');");
                sb.Append(@"</script>");
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                                                        "ModalScript", sb.ToString(), false);
            }
        }