Passed
Push — main ( 40b03f...c26970 )
by Sat CFDI
01:45
created

satdigitalinvoice.formatting_functions.common   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 19
dl 0
loc 31
rs 10
c 0
b 0
f 0

4 Functions

Rating   Name   Duplication   Size   Complexity  
A meses() 0 4 1
A pesos() 0 5 1
A porcentaje() 0 5 1
A fecha() 0 2 1
1
from babel.dates import format_date
2
from num2words import num2words
3
4
LANG = 'es_CO'
5
6
7
def pesos(amount):
8
    decimal_part = "{:.2f}".format(amount).split(".")[1]
9
    integer_part = num2words(int(amount), lang=LANG, to='currency').upper()
10
11
    return "${0:,.2f} (SON: {1} {2}/100M.N.)".format(amount, integer_part, decimal_part)
12
13
14
def porcentaje(amount, decimals=2):
15
    percentage = round(amount * 100, decimals)
16
    return "{0}% ({1} POR CIENTO)".format(
17
        percentage,
18
        num2words(percentage, lang=LANG).upper()
19
    )
20
21
22
def meses(count):
23
    return "{0} ({1}) MESES".format(
24
        count,
25
        num2words(count, lang=LANG).upper()
26
    )
27
28
29
def fecha(date):
30
    return format_date(date, locale='es_MX', format="d 'de' MMMM 'del' y").upper()
31