Beispiel #1
0
        private List <PedidoDetalleEntidad> MapearMuchosPedidosDetalles(DataSet ds)
        {
            List <PedidoDetalleEntidad> ResUnosPedidosDetalles = new List <PedidoDetalleEntidad>();

            try
            {
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    PedidoDetalleEntidad unPedDet = new PedidoDetalleEntidad();

                    unPedDet.IdPedidoDetalle = (int)row["IdPedidoDetalle"];
                    unPedDet.IdPedido        = (int)row["IdPedido"];
                    unPedDet.Cantidad        = (int)row["Cantidad"];
                    unPedDet.PrecioUnitario  = (decimal)row["PrecioUnitario"];
                    if (row["FecBaja"].ToString() != "")
                    {
                        unPedDet.FecBaja = DateTime.Parse(row["FecBaja"].ToString());
                    }
                    unPedDet.CUIT                       = row["CUIT"].ToString();
                    unPedDet.miProducto                 = new ProductoEntidad();
                    unPedDet.miProducto.IdProducto      = (int)row["IdProducto"];
                    unPedDet.miProducto.CodigoProducto  = row["CodigoProducto"].ToString();
                    unPedDet.miProducto.DescripProducto = row["DescripProducto"].ToString();

                    ResUnosPedidosDetalles.Add(unPedDet);
                }
                return(ResUnosPedidosDetalles);
            }
            catch (Exception es)
            {
                throw;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Updates a record in the PedidoDetalle table.
        /// </summary>
        public void Update(PedidoDetalleEntidad pedidoDetalle)
        {
            ValidationUtility.ValidateArgument("pedidoDetalle", pedidoDetalle);

            SqlParameter[] parameters = new SqlParameter[]
            {
                new SqlParameter("@IdPedidoDetalle", pedidoDetalle.IdPedidoDetalle),
                new SqlParameter("@IdPedido", pedidoDetalle.IdPedido),
                new SqlParameter("@Cantidad", pedidoDetalle.Cantidad),
                new SqlParameter("@PrecioUnitario", pedidoDetalle.PrecioUnitario),
                new SqlParameter("@IdProducto", pedidoDetalle.miProducto.IdProducto)
            };

            SqlClientUtility.ExecuteNonQuery(SqlClientUtility.connectionStringName, CommandType.StoredProcedure, "PedidoDetalleUpdate", parameters);
        }
        /// <summary>
        /// Selects a single record from the PedidoDetalle table.
        /// </summary>
        public PedidoDetalleEntidad Select(int idPedido, int idPedidoDetalle)
        {
            SqlParameter[] parameters = new SqlParameter[]
            {
                new SqlParameter("@IdPedido", idPedido),
                new SqlParameter("@IdPedidoDetalle", idPedidoDetalle)
            };

            using (DataTable dt = SqlClientUtility.ExecuteDataTable(SqlClientUtility.connectionStringName, CommandType.StoredProcedure, "PedidoDetalleSelect", parameters))
            {
                PedidoDetalleEntidad PedidoDetalleEntidad = new PedidoDetalleEntidad();

                PedidoDetalleEntidad = Mapeador.MapearFirst <PedidoDetalleEntidad>(dt);

                return(PedidoDetalleEntidad);
            }
        }
Beispiel #4
0
 public void DevolverStockSucursalPorCancelacion(PedidoDetalleEntidad unPedidoDetalle, int IdSucursal, string elCUIT)
 {
     try
     {
         ValidationUtility.ValidateArgument("unPedidoDetalle", unPedidoDetalle);
         SqlParameter[] parameters = new SqlParameter[]
         {
             new SqlParameter("@IdSucursal", IdSucursal),
             new SqlParameter("@IdProducto", unPedidoDetalle.miProducto.IdProducto),
             new SqlParameter("@CantDevolver", unPedidoDetalle.Cantidad),
             new SqlParameter("@CUIT", elCUIT)
         };
         SqlClientUtility.ExecuteNonQuery(SqlClientUtility.connectionStringName, CommandType.StoredProcedure, "DevolverStockSucursalPorCancelacion", parameters);
     }
     catch (Exception es)
     {
         throw;
     }
 }
Beispiel #5
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);
            }
        }
Beispiel #6
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);
            }
        }
        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);
        }