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"); }
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"); }
protected void btnGuardarFactura_Click(object sender, EventArgs e) { List <FacturasAlmacenArticulosTMP> lista; int idPedido = int.Parse(_idPedido.Value); lista = uow.FacturasAlmacenArticulosTMPBL.Get(p => p.PedidoId == idPedido && p.Precio == 0 && p.Cantidad > 0).ToList(); if (lista.Count > 0) { lblMensajes.Text = "Para poder registrar la factura, es necesario registrar todos los productos"; divMsg.Style.Add("display", "block"); return; } if (txtFolio.Value == string.Empty) { // lblMensajes.Text = "No ha capturado el Número de Factura, capture ese dato para poder registrar la entrada"; // divMsg.Style.Add("display", "block"); return; } if (dtpFecha.Value.ToString() == string.Empty) { //lblMensajes.Text = "No ha indicado la fecha de la Factura, capture ese dato para poder registrar la entrada"; //divMsg.Style.Add("display", "block"); return; } lista = uow.FacturasAlmacenArticulosTMPBL.Get(p => p.PedidoId == idPedido && p.Precio > 0 && p.Cantidad > 0).ToList(); Pedidos pedido = uow.PedidosBL.GetByID(idPedido); FacturasAlmacen factura = new FacturasAlmacen(); factura.Ejercicio = DateTime.Now.Year; factura.FolioFactura = txtFolio.Value; factura.FechaFactura = DateTime.Parse(dtpFecha.Value); factura.ImporteFactura = lista.Sum(p => p.Total); factura.Observaciones = ""; factura.Status = 1; factura.Tipo = 1; factura.PedidoId = pedido.Id; factura.ProveedorId = pedido.ProveedorId; uow.FacturasAlmacenBL.Insert(factura); 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.Movimiento = movimiento; bitacora.Tipo = 1; bitacora.Fecha = DateTime.Now; bitacora.Status = 1; bitacora.FacturaAlmacen = factura; uow.ArticulosMovimientosBL.Insert(bitacora); foreach (FacturasAlmacenArticulosTMP item in lista) { FacturasAlmacenArticulos detalle = new FacturasAlmacenArticulos(); detalle.FacturaAlmacen = factura; detalle.ArticuloId = item.ArticuloId; detalle.Cantidad = item.Cantidad; detalle.Adicional = item.CantidadExtra; detalle.Precio = item.Precio; detalle.PrecioIVA = item.PrecioIVA; detalle.Subtotal = item.Subtotal; detalle.IVA = item.IVA; detalle.Total = item.Total; detalle.PrecioDeCompraAnterior = item.Articulo.PrecioCompraIVA; detalle.PrecioVenta = item.Articulo.PrecioVentaIVA; detalle.Diferencia = item.PrecioIVA - item.Articulo.PrecioCompraIVA; detalle.Status = 1; detalle.StatusNombre = "Pendiente"; uow.FacturasAlmacenArticulosBL.Insert(detalle); ArticulosMovimientosEntradas bitDetalle = new ArticulosMovimientosEntradas(); bitDetalle.ArticuloMovimiento = bitacora; bitDetalle.ArticuloId = item.ArticuloId; bitDetalle.Cantidad = item.Cantidad + item.CantidadExtra; bitDetalle.Importe = item.PrecioIVA; uow.ArticulosMovimientosEntradasBL.Insert(bitDetalle); Articulos articulo = uow.ArticulosBL.GetByID(item.ArticuloId); articulo.CantidadDisponible = articulo.CantidadDisponible + (item.Cantidad + item.CantidadExtra); articulo.CantidadEnAlmacen = articulo.CantidadEnAlmacen + (item.Cantidad + item.CantidadExtra); articulo.PrecioCompra = item.Precio; articulo.PrecioCompraIVA = item.PrecioIVA; uow.ArticulosBL.Update(articulo); } pedido.Status = 2; uow.PedidosBL.Update(pedido); uow.SaveChanges(); Response.Redirect("wfFacturas.aspx"); }