from django import template
from django.contrib.humanize.templatetags.humanize import intcomma

register = template.Library()

def currency_dolares(dollars):
    dollars = round(float(dollars), 2)
    return "$ %s%s" % (intcomma(int(dollars)).replace(' ', '.').replace(' ', '.').replace('\xa0', '.'), ("%0.2f" % dollars)[-3:].replace('.', ','))

register.filter('currency_dolares', currency_dolares)


def currency_euros(euros):
    euros = round(float(euros), 2)
    return "%s%s €" % (intcomma(int(euros)).replace(' ', '.').replace(' ', '.').replace('\xa0', '.'), ("%0.2f" % euros)[-3:].replace('.', ','))

register.filter('currency_euros', currency_euros)


def no_currency(numero):
    numero = round(float(numero), 0)
    # intcomma normalmente usa comas como separador de miles; además
    # puede aparecer espacio normal o NBSP. Reemplazamos coma y espacios
    # por punto para asegurar el formato esperado.
    return "%s" % (intcomma(int(numero)).replace(',', '.').replace(' ', '.').replace('\xa0', '.'))

register.filter('no_currency', no_currency)


def litros(numero):
    numero = round(float(numero), 2)
    return "%s" % ("%0.2f" % numero).replace('.', ',')

register.filter('litros', litros)
