public async Task <IActionResult> PutFacturaCompras(int id, FacturaCompras facturaCompras) { if (id != facturaCompras.Id) { return(BadRequest()); } _context.Entry(facturaCompras).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FacturaComprasExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public void GuardarFactura(FacturaCompras factura) { try { var xml = Utiles.toXML(factura); AccesoDatos.FacturaComprasDato.GuardarFactura(xml); } catch (Exception ex) { throw ex; } }
public FacturaCompras ObtenerContadorFacturas() { FacturaCompras factura = new FacturaCompras(); DataSet ds = AccesoDatos.FacturaComprasDato.seleccionarContadorFacturas(); foreach (DataRow row in ds.Tables[0].Rows) { factura.Id = Convert.ToInt32(row["CONTADOR"].ToString()); } return(factura); }
public string ObtenerVerificacionNumeroFactura(int numeroFactura, string idProveedor) { FacturaCompras factura = new FacturaCompras(); DataSet ds = AccesoDatos.FacturaComprasDato.seleccionarValidarNumeroFactura(numeroFactura, idProveedor); string resultado = ""; foreach (DataRow row in ds.Tables[0].Rows) { resultado = row["RESULTADO"].ToString(); } return(resultado); }
public async Task <ActionResult <OrdenPago> > DeleteOrdenPago(int id) { var ordenPago = await _context.ordenPago.Include(x => x.Imputaciones).Include(x => x.movimientosCaja).FirstOrDefaultAsync(x => x.Id == id); if (ordenPago == null) { return(NotFound()); } foreach (MovimientoCaja movimientoCaja in ordenPago.movimientosCaja) { Caja caja = await _context.caja.FindAsync(movimientoCaja.CajaId); caja.saldo += movimientoCaja.totalMovimiento; _context.Entry(caja).State = EntityState.Modified; _context.Entry(movimientoCaja).State = EntityState.Deleted; } foreach (ImputacionComprobantesCompra imputacion in ordenPago.Imputaciones) { FacturaCompras factura = await _context.facturaCompra.FindAsync(imputacion.FacturaComprasId); factura.totalCancelado -= imputacion.totalImputado; factura.EstadoFacturaId = 1; _context.Entry(factura).State = EntityState.Modified; _context.Entry(imputacion).State = EntityState.Deleted; } Proveedor proveedor = await _context.Proveedor.FindAsync(ordenPago.ProveedorId); proveedor.saldoCC -= ordenPago.totalComprobante; _context.Entry(proveedor).State = EntityState.Modified; _context.ordenPago.Remove(ordenPago); await _context.SaveChangesAsync(); return(ordenPago); }
private void btnFacturar_Click(object sender, RoutedEventArgs e) { try { FacturaCompras factura = new FacturaCompras(); FacturaComprasLogica logica = new FacturaComprasLogica(); Usuario usuarioGlobal = new Usuario(); Proveedor proveedor = (Proveedor)cboProveedores.SelectedItem; usuarioGlobal = (Usuario)App.Current.Properties["usuarioSesion"]; if (ValidacionesFacturar() == true) { txtTextBlockDialogo.Text = "Debe completar todos los campos solicitados"; dialogoMENS.IsOpen = true; return; } else { var error = logica.ObtenerVerificacionNumeroFactura(Convert.ToInt32(txtNumeroFactura.Text), proveedor.Id); if (error == "ERROR") { txtTextBlockDialogo.Text = "No puedes ingresar el mismo numero de factura"; dialogoMENS.IsOpen = true; return; } var fecha1 = DateTime.Now; var hora = fecha1.Hour; var minutos = fecha1.Minute; var segundos = fecha1.Second; var fechaNueva = fecha.SelectedDate.Value; var fechaNueva1 = new DateTime(fechaNueva.Year, fechaNueva.Month, fechaNueva.Day, hora, minutos, segundos); factura.Id = Convert.ToInt32(txtNumeroFactura.Text); factura.Usuario = usuarioGlobal; factura.IdProveedor = proveedor.Id; // factura.Fecha = fecha.SelectedDate.Value.ToLocalTime(); factura.Fecha = fechaNueva1; factura.Total = Convert.ToDouble(txtSubTotal.Text); factura.TipoPago = cboTipoPago.Text; foreach (var item in dataGridLineaDetalle.ItemsSource as List <LineaDetalleCompras> ) { item.IdFactua = factura.Id; } factura.LineasDetalleCompras = dataGridLineaDetalle.ItemsSource as List <LineaDetalleCompras>; logica.GuardarFactura(factura); txtTextBlockDialogo.Text = "Registro Procesado"; dialogoMENS.IsOpen = true; factura = new FacturaCompras(); proveedor = new Proveedor(); listaInventario = new List <Inventario>(); listaDetalle = new List <LineaDetalleCompras>(); Limpiar(); } } catch (Exception) { txtTextBlockDialogo.Text = "Ocurrio un error al registrar la factura"; dialogoMENS.IsOpen = true; return; } }
public async Task <ActionResult <FacturaCompras> > PostFacturaCompras(FacturaCompras facturaCompras) { try { //CREAMOS LA FACTURA facturaCompras.Proveedor = null; facturaCompras.Deposito = null; facturaCompras.detallesFactura.ForEach(x => x.ProductoPresentacion = null); facturaCompras.TipoComprobante = null; facturaCompras.EstadoFactura = null; facturaCompras.EstadoFacturaId = (await _context.estadoFactura.FirstOrDefaultAsync(x => x.nombre == "PEN")).Id; //CREAMOS EL CÓDIGO. int cantidadDeFacturas = await _context.facturaCompra.IgnoreQueryFilters() .Where(x => x.TipoComprobanteId == facturaCompras.TipoComprobanteId && x.DepositoId == facturaCompras.DepositoId) .CountAsync() + 1; int aux = 8 - cantidadDeFacturas.ToString().Length; string cerosDeRelleno = ""; for (int i = 0; i < aux; i++) { cerosDeRelleno += "0"; } facturaCompras.codigo = $"0000{facturaCompras.DepositoId}-{cerosDeRelleno}{cantidadDeFacturas}"; _context.facturaCompra.Add(facturaCompras); await _context.SaveChangesAsync(); // BUSCAMOS LA FACTURA EN LA BASE DE DATOS FacturaCompras facturaComprasDb = await _context.facturaCompra .Include(x => x.TipoComprobante) .Include(x => x.detallesFactura) .Include(x => x.TipoComprobante) .FirstOrDefaultAsync(x => x.Id == facturaCompras.Id); // Saldo del cliente. Proveedor proveedorDb = await _context.Proveedor.FindAsync(facturaComprasDb.ProveedorId); if (facturaComprasDb.TipoComprobante.nombre == "FAC" || facturaComprasDb.TipoComprobante.nombre == "ND") { proveedorDb.saldoCC -= facturaComprasDb.totalComprobante; } else if (facturaComprasDb.TipoComprobante.nombre == "NC") { proveedorDb.saldoCC += facturaComprasDb.totalComprobante; } facturaComprasDb.Proveedor = null; _context.Entry(proveedorDb).State = EntityState.Modified; //CREACION DE MOVIMIENTOS DE STOCK. foreach (DetalleFacturaCompras detalle in facturaComprasDb.detallesFactura) { bool existeInventario = false; Inventario inventarioDb = _context.inventario.Include(x => x.MovimientosInventario).FirstOrDefault(x => x.DepositoId == facturaComprasDb.DepositoId && x.ProductoPresentacionId == detalle.ProductoPresentacionId); if (inventarioDb == null) { inventarioDb = new Inventario { DepositoId = facturaComprasDb.DepositoId, ProductoPresentacionId = detalle.ProductoPresentacionId, MovimientosInventario = new List <MovimientoInventario>() }; _context.inventario.Add(inventarioDb); existeInventario = false; } else { existeInventario = true; } // if (facturaComprasDb.TipoComprobante.nombre == "NC") { inventarioDb.cantidadUnidadesEnExistencia -= detalle.cantidad; } else { inventarioDb.cantidadUnidadesEnExistencia += detalle.cantidad; } _context.Entry(inventarioDb).State = EntityState.Modified; inventarioDb.MovimientosInventario.Add(new MovimientoInventario { cantidadUnidadesMovida = detalle.cantidad, entra = (facturaComprasDb.TipoComprobante.nombre == "NC") ? false : true, sale = (!(facturaComprasDb.TipoComprobante.nombre == "NC")) ? false : true, descripcion = $"<span>[COMPRA] <a href='/BackOffice/Compras/FacturaCompras/{facturaComprasDb.Id}'>{((facturaComprasDb.TipoComprobante.nombre == "NC") ? "NC" : (facturaComprasDb.TipoComprobante.nombre == "FAC" ? "FAC" : "ND"))} {facturaComprasDb.codigo}</a></span>", }); if (existeInventario) { _context.Entry(inventarioDb).State = EntityState.Modified; } else { _context.Entry(inventarioDb).State = EntityState.Added; } } _context.Entry(facturaCompras).State = EntityState.Unchanged; await _context.SaveChangesAsync(); return(CreatedAtAction("GetFactura", new { id = facturaComprasDb.Id }, facturaComprasDb)); } catch (Exception ex) { throw; } }