protected void gridVentas_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { int id = Utilerias.StrToInt(gridVentas.DataKeys[e.Row.RowIndex].Values["Id"].ToString()); Label lblTipoVenta = (Label)e.Row.FindControl("lblTipoVenta"); DataAccessLayer.Models.Ventas obj = uow.VentasBL.GetByID(id); lblTipoVenta.Text = obj.RecetaId != null ? "POR RECETA" : "VENTA DIRECTA"; ImageButton imgBut = (ImageButton)e.Row.FindControl("imgRPT"); if (imgBut != null) { imgBut.Attributes["onclick"] = "fnc_verVentaX(" + id + ");return false;"; } } }
protected void btnCancelarVenta_Click(object sender, EventArgs e) { int iduser = int.Parse(Session["IdUser"].ToString()); Usuario usuario = uow.UsuarioBusinessLogic.GetByID(iduser); DataAccessLayer.Models.Ventas venta = uow.VentasBL.GetByID(int.Parse(_idVenta.Value)); venta.Status = 3; venta.ObservacionCancelacion = txtObservaciones.Value; venta.UsuarioCancelacion = usuario.Nombre; venta.FechaCancelacion = DateTime.Now; uow.VentasBL.Update(venta); ArticulosMovimientos bitacora = uow.ArticulosMovimientosBL.Get(p => p.VentaId == venta.Id).First(); bitacora.Status = 3; uow.ArticulosMovimientosBL.Update(bitacora); List <VentasArticulos> lista = uow.VentasArticulosBL.Get(p => p.VentaId == venta.Id).ToList(); foreach (VentasArticulos item in lista) { Articulos articulo = uow.ArticulosBL.GetByID(item.ArticuloId); articulo.CantidadDisponible = articulo.CantidadDisponible + item.Cantidad; articulo.CantidadEnAlmacen = articulo.CantidadEnAlmacen + item.Cantidad; uow.ArticulosBL.Update(articulo); } uow.SaveChanges(); BindGrid(); txtObservaciones.Value = string.Empty; divVentas.Style.Add("display", "block"); divCancelacion.Style.Add("display", "none"); _idVenta.Value = string.Empty; Response.Redirect("wfVentasCancelaciones.aspx"); }
protected void btnAceptarVenta_Click(object sender, EventArgs e) { string pass = txtPassword.Text; Usuario user = uow.UsuarioBusinessLogic.Get(u => u.Password == pass && u.Activo == true).FirstOrDefault(); if (user == null) { divMsgError.Style.Add("display", "block"); divMsgSuccess.Style.Add("display", "none"); lblMsgError.Text = "El password es incorrecto, intente de nuevo."; return; } //detalle de la venta int usuarioSesion = int.Parse(Session["IdUser"].ToString()); List <ArticuloVenta> listArticulos = uow.ArticuloVentaBusinessLogic.Get(p => p.UsuarioId == usuarioSesion).ToList(); if (listArticulos.Count == 0) { divMsgError.Style.Add("display", "block"); divMsgSuccess.Style.Add("display", "none"); lblMsgError.Text = "La venta no ha sido detallada, agregue productos a la venta para poder proceder a registrarla"; return; } DataAccessLayer.Models.Ventas venta = new DataAccessLayer.Models.Ventas(); venta.Folio = ObtenerMaxFolio(); venta.Ejercicio = DateTime.Now.Year; venta.FolioCadena = ArmarFolioCadena(venta.Folio); if (!_IDReceta.Value.Equals(string.Empty)) { venta.RecetaId = Utilerias.StrToInt(_IDReceta.Value); } venta.Importe = listArticulos.Sum(p => p.Total); venta.Status = 1; venta.Fecha = Convert.ToDateTime(txtFecha.Value); venta.UsuarioId = user.Id; venta.FechaCancelacion = DateTime.Now; uow.VentasBL.Insert(venta); //bitacora List <ArticulosMovimientos> listaBitacora = uow.ArticulosMovimientosBL.Get().ToList(); int movimiento; if (listaBitacora.Count == 0) { movimiento = 0; } else { movimiento = listaBitacora.Max(p => p.Movimiento); } movimiento++; ArticulosMovimientos bitacora = new ArticulosMovimientos(); bitacora.Ejercicio = DateTime.Now.Year; bitacora.Tipo = 2; bitacora.Venta = venta; bitacora.Fecha = DateTime.Now; bitacora.Status = 1; bitacora.Movimiento = movimiento; uow.ArticulosMovimientosBL.Insert(bitacora); foreach (ArticuloVenta item in listArticulos) { VentasArticulos ventaArt = new VentasArticulos(); ventaArt.VentaId = venta.Id; ventaArt.ArticuloId = item.ArticuloId; ventaArt.Cantidad = item.Cantidad; ventaArt.PrecioCompra = item.PrecioCompra; ventaArt.PrecioVenta = item.PrecioVenta; ventaArt.Subtotal = item.SubTotal; ventaArt.IVA = item.IVA; ventaArt.Total = item.Total; uow.VentasArticulosBL.Insert(ventaArt); ArticulosMovimientosSalidas bitDetalle = new ArticulosMovimientosSalidas(); bitDetalle.ArticuloMovimiento = bitacora; bitDetalle.ArticuloId = item.ArticuloId; bitDetalle.Cantidad = item.Cantidad; uow.ArticulosMovimientosSalidasBL.Insert(bitDetalle); Articulos articulo = uow.ArticulosBL.GetByID(item.ArticuloId); articulo.CantidadEnAlmacen -= item.Cantidad; articulo.CantidadDisponible -= item.Cantidad; uow.ArticulosBL.Update(articulo); } if (!_IDReceta.Value.Equals(string.Empty)) { int idReceta = Utilerias.StrToInt(_IDReceta.Value); Recetas receta = uow.RecetasBusinessLogic.GetByID(idReceta); receta.Status = 2; uow.RecetasBusinessLogic.Update(receta); } BindGridProductosCatalago(); BindGridRecetas(); uow.SaveChanges(); if (uow.Errors.Count == 0) { uow.ArticuloVentaBusinessLogic.DeleteAll(); uow.SaveChanges(); } else { divMsgError.Style.Add("display", "block"); divMsgSuccess.Style.Add("display", "none"); lblMsgError.Text = "Hubo problemas al registrar la venta, intentelo nuevamente"; return; } //ClientScript.RegisterStartupScript(this.GetType(), "script", "fnc_MostrarVenta(" + venta.Id + ")", true); Response.Redirect("wfVentasDia.aspx"); }