|
|
@@ -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)
|