precio.py
1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from .models import ComprobantePago
def calculadora(edicto, precio):
try:
descuento = 50
organismo = edicto.creado_por.organismo
es_publico = organismo.es_publico if organismo else False
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 es_publico:
resultado = (descuento * subtotal) / 100
else:
resultado = ((100 - descuento) * subtotal) / 100
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))