precio.py
1.21 KB
from .models import ComprobantePago
def calculadora(edicto, precio):
try:
descuento = edicto.tiene_descuento
sellos = edicto.cantidad_sellos
palabras = edicto.cantidad_palabras
copias = edicto.cantidad_copias
publicar = edicto.dias_publicar
precio_valores = {
'precio': precio.precio,
'precio_ejemplar': precio.precio_ejemplar,
'precio_dia': precio.precio_dia
}
result_palabra = (sellos + palabras) * precio_valores['precio']
result_ejemplar = (copias * precio_valores['precio_ejemplar']) + (publicar * precio_valores['precio_dia'])
subtotal = result_ejemplar + result_palabra
if descuento:
resultado = (50 * subtotal) / 100
else:
resultado = subtotal
comprobante = ComprobantePago(monto_total=resultado,
monto_subtotal=subtotal,
monto_descuento=resultado,
edicto=edicto)
comprobante.save()
return comprobante
except ValueError as values:
raise ValueError("Los valores proporcionados son incorrectos: " + str(values))