diff --git a/Finanzas/finanzas/.gitignore b/Finanzas/finanzas/.gitignore new file mode 100644 index 0000000..49ef255 --- /dev/null +++ b/Finanzas/finanzas/.gitignore @@ -0,0 +1 @@ +db.sqlite3 diff --git a/Finanzas/finanzas/apuntes/.gitignore b/Finanzas/finanzas/apuntes/.gitignore new file mode 100644 index 0000000..62616c7 --- /dev/null +++ b/Finanzas/finanzas/apuntes/.gitignore @@ -0,0 +1 @@ +migrations/ diff --git a/Finanzas/finanzas/apuntes/forms.py b/Finanzas/finanzas/apuntes/forms.py index 5b46524..7192323 100644 --- a/Finanzas/finanzas/apuntes/forms.py +++ b/Finanzas/finanzas/apuntes/forms.py @@ -14,7 +14,7 @@ class CuentaForm(forms.ModelForm): widget=forms.TextInput(attrs={'class': 'form-control'})) tipo = forms.ModelChoiceField( queryset=Tipo.objects.all(), - widget=forms.TextInput(attrs={'class': 'form-control'})) + widget=forms.Select(attrs={'class': 'form-control'})) class ApunteForm(forms.ModelForm): diff --git a/Finanzas/finanzas/apuntes/models.py b/Finanzas/finanzas/apuntes/models.py index fb0e68c..c201e6d 100644 --- a/Finanzas/finanzas/apuntes/models.py +++ b/Finanzas/finanzas/apuntes/models.py @@ -3,14 +3,23 @@ from django.db import models class Tipo(models.Model): tipo = models.TextField(max_length=10) + def __str__(self): + return self.tipo + class Cuenta(models.Model): nombre = models.TextField(max_length=20) - saldo_inicial = models.DecimalField(max_digits=10, decimal_places=2) - saldo_actual = models.DecimalField(max_digits=10, decimal_places=2) + saldo_inicial = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True) + saldo_actual = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True) tipo = models.ForeignKey(Tipo, on_delete=models.CASCADE) + + def __str__(self): + return self.nombre class Apunte(models.Model): fecha = models.DateField() cta_origen = models.ForeignKey(Cuenta, on_delete=models.CASCADE, related_name='origen') cta_destino = models.ForeignKey(Cuenta, on_delete=models.CASCADE, related_name='destino') importe = models.DecimalField(max_digits=10, decimal_places=2) + + def __str__(self): + return self.fecha diff --git a/Finanzas/finanzas/apuntes/views.py b/Finanzas/finanzas/apuntes/views.py index 08fd420..9ff6520 100644 --- a/Finanzas/finanzas/apuntes/views.py +++ b/Finanzas/finanzas/apuntes/views.py @@ -25,7 +25,7 @@ def lista_cuentas(request): def detalle_cuenta(request, cuenta_id): cuenta = get_object_or_404(Cuenta, pk=cuenta_id) - apuntes = Apunte.objects.filter(cuenta=cuenta_id) + apuntes = Apunte.objects.filter(cta_origen=cuenta_id) return render(request, 'apuntes/detalle_cuenta.html', {'cuenta': cuenta, 'apuntes': apuntes}) @@ -35,7 +35,11 @@ def nueva_cuenta(request): if request.method == 'POST': form = CuentaForm(request.POST, request.FILES) if form.is_valid(): - form.save() + instancia = form.save(commit=False) + + instancia.saldo_actual = instancia.saldo_inicial + + instancia.save() return redirect('lista_cuentas') else: form = CuentaForm() @@ -78,7 +82,7 @@ def detalle_apunte(request, apunte_id): @login_required def nuevo_apunte(request): - cuentas = Cuenta.objects.all() # vamos a ver si hay vehículos dados de alta + cuentas = Cuenta.objects.all() # vamos a ver si hay cuentas dadas de alta if cuentas: if request.method == 'POST': @@ -86,33 +90,11 @@ def nuevo_apunte(request): if form.is_valid(): instancia = form.save(commit=False) - aplica_descuento = form.cleaned_data['aplica_descuento'] - - if aplica_descuento: - instancia.descuento = float(instancia.importe) * 0.03 - else: - instancia.descuento = 0.0 - - instancia.importe = float(instancia.importe) - instancia.descuento - - if instancia.litros > 0: - instancia.precioxlitro = round(instancia.importe / float(instancia.litros), 2) - else: - instancia.precioxlitro = 0 - - # lee todos los apuntes del vehículo - # apuntes = Apunte.query.filter_by(cuenta_id=cuenta_id).all() - - if Apunte.objects.filter(cuenta_id=instancia.cuenta): - apuntes = Apunte.objects.filter(cuenta_id=instancia.cuenta).order_by('-fecha')[0] - - instancia.kmsrecorridos = instancia.kms - apuntes.kms + instancia.cta_origen.saldo_actual = instancia.cta_origen.saldo_actual - instancia.importe + instancia.cta_origen.save() - if instancia.kmsrecorridos > 0: - instancia.consumo = round(instancia.litros * 100 / instancia.kmsrecorridos, 2) - else: - instancia.kmsrecorridos = 0 - instancia.consumo = 0 + instancia.cta_destino.saldo_actual = instancia.cta_destino.saldo_actual + instancia.importe + instancia.cta_destino.save() instancia.save() diff --git a/Finanzas/finanzas/db.sqlite3 b/Finanzas/finanzas/db.sqlite3 index 38cccc0..f45f349 100644 Binary files a/Finanzas/finanzas/db.sqlite3 and b/Finanzas/finanzas/db.sqlite3 differ diff --git a/Finanzas/finanzas/templates/_head.html b/Finanzas/finanzas/templates/_head.html index f05a4fa..e6670db 100644 --- a/Finanzas/finanzas/templates/_head.html +++ b/Finanzas/finanzas/templates/_head.html @@ -3,7 +3,7 @@ - Registro de vehículos y sus apuntes + Finanzas personales @@ -20,4 +20,4 @@ - \ No newline at end of file + diff --git a/Finanzas/finanzas/templates/apuntes/detalle_apunte.html b/Finanzas/finanzas/templates/apuntes/detalle_apunte.html index a6a190b..b88e37f 100644 --- a/Finanzas/finanzas/templates/apuntes/detalle_apunte.html +++ b/Finanzas/finanzas/templates/apuntes/detalle_apunte.html @@ -10,19 +10,11 @@

{{ apunte.fecha }}

diff --git a/Finanzas/finanzas/templates/apuntes/detalle_cuenta.html b/Finanzas/finanzas/templates/apuntes/detalle_cuenta.html index 15cb2b9..369d4bd 100644 --- a/Finanzas/finanzas/templates/apuntes/detalle_cuenta.html +++ b/Finanzas/finanzas/templates/apuntes/detalle_cuenta.html @@ -6,17 +6,10 @@
- {% if cuenta.foto %} -

{{ cuenta.matricula}}

- {% else %} -

No hay imágen disponible

- {% endif %} -
-
-

{{ cuenta.matricula }}

+

{{ cuenta.nombre }}

    -
  • {{ cuenta.matricula }}
  • +
  • {{ cuenta.nombre }}
@@ -28,26 +21,18 @@ Fecha - Kilómetros - Litros + Origen + Destino Importe - Descuento - Precio por litro - Kms recorridos - Consumo/100 kms {% for apunte in apuntes %} {{ apunte.fecha }} - {{ apunte.kms }} - {{ apunte.litros }} + {{ apunte.cta_origen }} + {{ apunte.cta_destino }} {{ apunte.importe }} - {{ apunte.descuento }} - {{ apunte.precioxlitro }} - {{ apunte.kmsrecorridos }} - {{ apunte.consumo }} {% endfor %} diff --git a/Finanzas/finanzas/templates/apuntes/form_cuenta.html b/Finanzas/finanzas/templates/apuntes/form_cuenta.html index f5905a2..ba23e93 100644 --- a/Finanzas/finanzas/templates/apuntes/form_cuenta.html +++ b/Finanzas/finanzas/templates/apuntes/form_cuenta.html @@ -3,7 +3,7 @@ {% block content %}
-

{% if form.instance.pk %}Editar vehículo{% else %}Nuevo vehículo{% endif %}

+

{% if form.instance.pk %}Editar cuenta{% else %}Nueva cuenta{% endif %}

{% csrf_token %} diff --git a/Finanzas/finanzas/templates/apuntes/lista_apuntes.html b/Finanzas/finanzas/templates/apuntes/lista_apuntes.html index 23a2c60..0152178 100644 --- a/Finanzas/finanzas/templates/apuntes/lista_apuntes.html +++ b/Finanzas/finanzas/templates/apuntes/lista_apuntes.html @@ -25,14 +25,9 @@ Fecha - Cuenta - Kilómetros - Litros + Origen + Destino Importe - Descuento - Precio por litro - Kms recorridos - Consumo/100 kms {% for apunte in apuntes %} @@ -40,14 +35,9 @@ {{ apunte.fecha }} - {{ apunte.cuenta.matricula }} - {{ apunte.kms }} - {{ apunte.litros }} + {{ apunte.cta_origen.nombre }} + {{ apunte.cta_destino.nombre }} {{ apunte.importe }} € - {{ apunte.descuento }} € - {{ apunte.precioxlitro }} € - {{ apunte.kmsrecorridos }} - {{ apunte.consumo }} {% endfor %} diff --git a/Finanzas/finanzas/templates/apuntes/lista_cuentas.html b/Finanzas/finanzas/templates/apuntes/lista_cuentas.html index d5ffb05..facd79f 100644 --- a/Finanzas/finanzas/templates/apuntes/lista_cuentas.html +++ b/Finanzas/finanzas/templates/apuntes/lista_cuentas.html @@ -23,7 +23,14 @@