protected void btnGuardarFactura_Click(object sender, EventArgs e) { int id = int.Parse(_ElId.Value); uow = new UnitOfWork(Session["IdUser"].ToString()); FacturasAlmacenArticulos obj = uow.FacturasAlmacenArticulosBL.GetByID(id); Articulos articulo = uow.ArticulosBL.GetByID(obj.ArticuloId); obj.PrecioVenta = decimal.Parse(txtPrecioVenta.Value); decimal factorIVA = decimal.Parse(Session["IVA"].ToString()); factorIVA++; articulo.PrecioVenta = Math.Round(decimal.Parse(txtPrecioVenta.Value) / factorIVA, 2); articulo.PrecioVentaIVA = decimal.Parse(txtPrecioVenta.Value); uow.FacturasAlmacenArticulosBL.Update(obj); uow.ArticulosBL.Update(articulo); uow.SaveChanges(); divModificar.Style.Add("display", "none"); BindGrid(); }
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"); }