public GuardarFacturaResponse CrearFactura(Factura factura) { try { var response = _context.Facturas.Find(factura.Codigo); if(response == null) { factura.Fecha = DateTime.Now; factura.Codigo = (_context.Facturas.ToList().Count + 1).ToString(); bool estadoTransaction = false; _context.Facturas.Add(factura); foreach (var item in factura.ConsultarDetalles()) { item.FacturaCodigo = factura.Codigo; _context.Detalles.Add(item); var result = _serviceProducto.DescontarCantidad(item.Cantidad, item.ProductoId); if(result.Error) { estadoTransaction = true; break; } _context.Productos.Update(result.Producto); } if(estadoTransaction) return new GuardarFacturaResponse("Error al crear la solicitud los detalles no se guardaron", "Error"); _context.SaveChanges(); return new GuardarFacturaResponse(factura); } else { return new GuardarFacturaResponse("La factura ya se encuentra registrada", "Registrada"); } } catch(Exception e) { return new GuardarFacturaResponse($"Error en la aplicacion: {e.Message}","Error"); } }
public string Guardar(Factura fact) { try { fact.AgregarIdFactura(Last() + 1); Conexion.Open(); FacturaRepo.Guardar(fact); foreach (var item in fact.ConsultarDetalles()) { DetalleRepo.Guardar(item); } Conexion.Close(); return($"Se facturó"); } catch (Exception e) { Conexion.Close(); return($"Error de la Aplicacion: {e.Message}"); } }