contador.py 950 Bytes
from .models import Edicto, ComprobantePago, Precio


def contador(edicto_id, precio_id):
    edicto = Edicto.objects.select_related('usuario').get(id=edicto_id)
    organismo = edicto.usuario.organismo.es_publico

    sellos = edicto.cantidad_sellos
    palabras = edicto.cantidad_palabras
    copias = edicto.cantidad_copias
    publicar = edicto.dias_publicar

    precio_valores = Precio.objects.values('precio', 'precio_ejemplar').get(id=precio_id)
    precio = precio_valores['precio']
    precio_ejemplar = precio_valores['precio_ejemplar']

    result_palabra = (sellos + palabras) * precio
    result_ejemplar = (copias * precio_ejemplar) + (publicar * precio_ejemplar)

    if organismo:
        resultado = result_ejemplar + result_palabra / 2
    else:
        resultado = result_ejemplar + result_palabra

    precio_resultado = ComprobantePago(edicto=edicto, resultado=resultado)
    precio_resultado.save()
    return precio_resultado