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"); }
protected void btnGenerarSalida_Click(object sender, EventArgs e) { int idUser = Utilerias.StrToInt(Session["IdUser"].ToString()); Usuario usuario = uow.UsuarioBusinessLogic.GetByID(idUser); if (usuario.Nivel == 3) { string pass = txtPassword.Text; Usuario user = uow.UsuarioBusinessLogic.Get(u => u.Password == pass).FirstOrDefault(); if (user == null) { divMsgError.Style.Add("display", "block"); divMsgSuccess.Style.Add("display", "none"); lblMsgError.Text = "El password es incorrecto, intente de nuevo."; return; } idUser = user.Id; } //detalle de la venta int usuarioSesion = int.Parse(Session["IdUser"].ToString()); List <ArticuloSalidaGenerica> listArticulos = uow.ArticuloSalidaGenericaBusinessLogic.Get(p => p.UsuarioId == usuarioSesion).ToList(); AlmacenSalidasGenericas salida = new AlmacenSalidasGenericas(); salida.Folio = ObtenerMaxFolio(); salida.Ejercicio = DateTime.Now.Year; salida.Fecha = Convert.ToDateTime(txtFecha.Value); salida.TipoSalidaId = int.Parse(ddlTipos.SelectedValue); salida.Observaciones = txtObservaciones.Value; salida.FolioCadena = ArmarFolioCadena(salida.Folio); salida.UsuarioId = idUser; uow.AlmacenSalidasGenericasBL.Insert(salida); //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.AlmacenSalidaGenerica = salida; bitacora.Fecha = DateTime.Now; bitacora.Status = 1; bitacora.Movimiento = movimiento; uow.ArticulosMovimientosBL.Insert(bitacora); foreach (ArticuloSalidaGenerica item in listArticulos) { AlmacenSalidasGenericasArticulos salidaDetalle = new AlmacenSalidasGenericasArticulos(); salidaDetalle.AlmacenSalidaGenerica = salida; salidaDetalle.ArticuloId = item.ArticuloId; salidaDetalle.Cantidad = item.Cantidad; uow.AlmacenSalidasGenericasArticulos.Insert(salidaDetalle); 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); } uow.SaveChanges(); if (uow.Errors.Count == 0) { uow.ArticuloSalidaGenericaBusinessLogic.DeleteAll(); uow.SaveChanges(); } else { divMsgError.Style.Add("display", "block"); divMsgSuccess.Style.Add("display", "none"); lblMsgError.Text = "Hubo problemas al registrar la salida, intentelo nuevamente"; return; } //Se muestra la Salida //ClientScript.RegisterStartupScript(this.GetType(), "script", "fnc_MostrarSalida(" + salida.Id + ")", true); Response.Redirect("wfListaSalidasGen.aspx"); }