Просмотр исходного кода

vuelvo al origen. parece que funciona.

Celestino Rey 1 год назад
Родитель
Сommit
49b9715dbb
2 измененных файлов с 25 добавлено и 25 удалено
  1. 2 0
      local.sh
  2. 23 25
      src/finanzas/views.py

+ 2 - 0
local.sh

@@ -0,0 +1,2 @@
+export LOCAL=True
+export DEBUG=True

+ 23 - 25
src/finanzas/views.py

@@ -152,8 +152,9 @@ def agregar_movimiento(request):
 @login_required
 def editar_movimiento(request, movimiento_id):
     movimiento = get_object_or_404(Movimiento, id=movimiento_id, usuario=request.user)
-    saldo_original_origen = movimiento.cuenta_origen
-    saldo_original_destino = movimiento.cuenta_destino
+
+    cuenta_original_origen = movimiento.cuenta_origen
+    cuenta_original_destino = movimiento.cuenta_destino
     monto_original = movimiento.monto
 
     if request.method == 'POST':
@@ -163,38 +164,35 @@ def editar_movimiento(request, movimiento_id):
         form.fields['cuenta_origen'].queryset = cuentas
         form.fields['cuenta_destino'].queryset = cuentas
 
-        if form.is_valid():
-            movimiento_nuevo = form.save(commit=False)
+        # Revertir efecto anterior
+        # Cuenta origen
 
-            # Revertir efecto anterior
-            # Cuenta origen
+        cuenta_original_origen.saldo += monto_original
+        cuenta_original_origen.save()
 
-            saldo_original_origen.saldo += monto_original
-            saldo_original_origen.save()
+        # Cuenta destino
 
-            # Cuenta destino
+        cuenta_original_destino.saldo -= monto_original
+        cuenta_original_destino.save()
 
-            saldo_original_destino.saldo -= monto_original
-            saldo_original_destino.save()
+        if form.is_valid():
+            movimiento_nuevo = form.save(commit=False)
 
             # Aplicar nuevo efecto
+            # con esta modificación, que lo deja como estaba originalmente, parece que está arreglado.
+            # Si cambio el importe, se ajustan los saldos origen y destino apropiadamente.
+            # Si cambia una de las cuentas, también queda bien reflelado.
+            # Si intercambio las cuentas, es decir, la origen pasa a ser la destino y viceversa, también queda bien reflejado.
+            
             movimiento_nuevo.usuario = request.user
             movimiento_nuevo.save()
 
-            if movimiento_nuevo.cuenta_origen.nombre == saldo_original_origen.nombre:  # si se trata de la misma cuenta...
-                saldo_original_origen.saldo -= movimiento_nuevo.monto  # ...tomo como valor del saldo el ya revertido
-                saldo_original_origen.save()
-            else:  # ...de lo contrario
-                movimiento_nuevo.cuenta_origen.saldo -= movimiento_nuevo.monto  # ...tomar como valor del saldo el de la nueva cuenta.
-                movimiento_nuevo.cuenta_origen.save()
-
-            if movimiento_nuevo.cuenta_destino.nombre == saldo_original_destino.nombre:  # si se trata de la misma cuenta...
-                saldo_original_destino.saldo += movimiento_nuevo.monto  # ...tomo como valor del saldo el ya revertido
-                saldo_original_destino.save()
-            else:  # ...de lo contrario
-                movimiento_nuevo.cuenta_destino.saldo += movimiento_nuevo.monto  # ...tomar como valor del saldo el de la nueva cuenta.
-                movimiento_nuevo.cuenta_destino.save()
-
+            movimiento_nuevo.cuenta_origen.saldo -= movimiento_nuevo.monto  # ...tomar como valor del saldo el de la nueva cuenta.
+            movimiento_nuevo.cuenta_origen.save()
+            
+            movimiento_nuevo.cuenta_destino.saldo += movimiento_nuevo.monto  # ...tomar como valor del saldo el de la nueva cuenta.
+            movimiento_nuevo.cuenta_destino.save()
+            
             return redirect('dashboard')
     else:
         form = MovimientoForm(instance=movimiento)