Martín Miranda

Merge branch 'feature/#75_revisar_monto_descuento' into 'develop'

revisar monto descuento y filtros



See merge request !69
... ... @@ -7,7 +7,7 @@ from rest_framework.decorators import action
from core.serializers import ActionSerializer
from rest_framework.response import Response
from .filters import EdictoFilter, PrecioFilter
from .filters import EdictoFilter, PrecioFilter, ComprobanteFilter
from .models import Edicto, Precio, ComprobantePago
from .permissions import IsAdminOrAuthorized
from .serializers import EdictoSerializer, PrecioSerializer, ComprobanteSerializer
... ... @@ -63,7 +63,9 @@ class ComprobanteViewSet(mixins.UpdateModelMixin,
serializer_class = ComprobanteSerializer
permission_classes = [IsAuthenticated, ]
queryset = ComprobantePago.objects.all()
ordering_fields = ('edicto',)
filter_backends = (DjangoFilterBackend, filters.OrderingFilter)
filter_class = ComprobanteFilter
ordering_fields = ('monto_descuento', 'monto_total', 'fecha_pago')
ordering = 'id'
... ...
from django_filters import rest_framework as filters
from django.db.models import Q
from edicto.models import Edicto, Precio
from edicto.models import Edicto, Precio, ComprobantePago
class EdictoFilter(filters.FilterSet):
... ... @@ -38,5 +38,14 @@ class PrecioFilter(filters.FilterSet):
}
class ComprobanteFilter(filters.FilterSet):
class Meta:
model = ComprobantePago
fields = {
'monto_descuento': ['contains'],
'monto_total': ['contains'],
'edicto': ['exact'],
'fecha_pago': ['exact'],
'numero_comprobante': ['exact'],
}
... ...
# Generated by Django 4.1.9 on 2023-10-06 12:45
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('edicto', '0004_alter_precio_usuario'),
]
operations = [
migrations.AlterField(
model_name='edicto',
name='estado',
field=models.CharField(choices=[('iniciado', 'iniciado'), ('pendiente_de_pago', 'pendiente_de_pago'), ('pendiente_pago_revision', 'pendiente_pago_revision'), ('publicado', 'publicado'), ('aprobado', 'aprobado'), ('rechazado', 'rechazado')], default='iniciado', max_length=23),
),
]
... ...
... ... @@ -10,7 +10,7 @@ from .constants import STATUS_CHOICE, MONEDA
class Precio(models.Model):
precio = models.FloatField(max_length=50, blank=False, null=False)
precio = models.FloatField(max_length=50, blank=False, null=False, editable=False)
vigencia_desde = models.DateField()
vigencia_hasta = models.DateField(blank=True, null=True)
usuario = models.ForeignKey(Usuario, on_delete=models.CASCADE, editable=False)
... ... @@ -37,7 +37,7 @@ class Edicto(models.Model):
archivo = models.FileField(upload_to="uploads/%Y/%m/%d/")
dias_publicar = models.PositiveIntegerField()
cantidad_sellos = models.PositiveIntegerField()
estado = models.CharField(max_length=23, choices=STATUS_CHOICE, default='inciado')
estado = models.CharField(max_length=23, choices=STATUS_CHOICE, default='iniciado')
cantidad_palabras = models.IntegerField(editable=False)
cantidad_copias = models.PositiveIntegerField()
observaciones = models.CharField(max_length=500, blank=True)
... ...
... ... @@ -20,12 +20,14 @@ def calculadora(edicto, precio):
if descuento:
resultado = (50 * subtotal) / 100
monto_descuento = resultado
else:
resultado = subtotal
monto_descuento = 0
comprobante = ComprobantePago(monto_total=resultado,
monto_subtotal=subtotal,
monto_descuento=resultado,
monto_descuento=monto_descuento,
edicto=edicto)
comprobante.save()
... ...