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; } }
/// <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); } }
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; } }
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); } }
////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); }