コード例 #1
0
        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();
        }
コード例 #2
0
        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");
        }