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");
            }
        }
Example #2
0
        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}");
            }
        }