Ejemplo n.º 1
0
def taxes(tax_rates):
    taxes = {'standard': {
        'value': tax_rates['standard_rate'],
        'tax': get_tax_for_rate(tax_rates)}}
    if tax_rates['reduced_rates']:
        taxes.update({
            rate: {
                'value': tax_rates['reduced_rates'][rate],
                'tax': get_tax_for_rate(tax_rates, rate)}
            for rate in tax_rates['reduced_rates']})
    return taxes
Ejemplo n.º 2
0
def taxes(tax_rates):
    taxes = {'standard': {
        'value': tax_rates['standard_rate'],
        'tax': get_tax_for_rate(tax_rates)}}
    if tax_rates['reduced_rates']:
        taxes.update({
            rate: {
                'value': tax_rates['reduced_rates'][rate],
                'tax': get_tax_for_rate(tax_rates, rate)}
            for rate in tax_rates['reduced_rates']})
    return taxes
Ejemplo n.º 3
0
def get_taxes_for_country(country):
    tax_rates = get_tax_rates_for_country(country.code)
    if tax_rates is None:
        return None

    taxes = {DEFAULT_TAX_RATE_NAME: {
        'value': tax_rates['standard_rate'],
        'tax': get_tax_for_rate(tax_rates)}}
    if tax_rates['reduced_rates']:
        taxes.update({
            rate_name: {
                'value': tax_rates['reduced_rates'][rate_name],
                'tax': get_tax_for_rate(tax_rates, rate_name)}
            for rate_name in tax_rates['reduced_rates']})
    return taxes
Ejemplo n.º 4
0
def taxes(tax_rates):
    taxes = {
        "standard": {
            "value": tax_rates["standard_rate"],
            "tax": get_tax_for_rate(tax_rates),
        }
    }
    if tax_rates["reduced_rates"]:
        taxes.update({
            rate: {
                "value": tax_rates["reduced_rates"][rate],
                "tax": get_tax_for_rate(tax_rates, rate),
            }
            for rate in tax_rates["reduced_rates"]
        })
    return taxes
Ejemplo n.º 5
0
def taxes(tax_rates):
    taxes = {
        'standard': {
            'value': tax_rates['standard_rate'],
            'tax': get_tax_for_rate(tax_rates)
        }
    }
    return taxes
Ejemplo n.º 6
0
def get_taxes_for_country(country):
    tax_rates = get_tax_rates_for_country(country.code)
    if tax_rates is None:
        return None

    taxes = {
        DEFAULT_TAX_RATE_NAME: {
            "value": tax_rates["standard_rate"],
            "tax": get_tax_for_rate(tax_rates),
        }
    }
    if tax_rates["reduced_rates"]:
        taxes.update({
            rate_name: {
                "value": tax_rates["reduced_rates"][rate_name],
                "tax": get_tax_for_rate(tax_rates, rate_name),
            }
            for rate_name in tax_rates["reduced_rates"]
        })
    return taxes
def test_get_tax_for_rate_reduced_rate(vat_country):
    tax_rates = vat_country.data
    books_tax = utils.get_tax_for_rate(tax_rates, 'books')

    assert books_tax(Money(100, 'USD')) == TaxedMoney(
        net=Money(100, 'USD'), gross=Money(110, 'USD'))
    assert books_tax(Money(100, 'USD'), keep_gross=True) == TaxedMoney(
        net=Money('90.91', 'USD'), gross=Money(100, 'USD'))

    taxed_money = TaxedMoney(net=Money(100, 'USD'), gross=Money(100, 'USD'))
    assert books_tax(taxed_money) == TaxedMoney(
        net=Money(100, 'USD'), gross=Money(110, 'USD'))
    assert books_tax(taxed_money, keep_gross=True) == TaxedMoney(
        net=Money('90.91', 'USD'), gross=Money(100, 'USD'))
def test_get_tax_for_rate_fallback_to_standard_rate(vat_country):
    tax_rates = vat_country.data
    hotels_tax = utils.get_tax_for_rate(tax_rates, 'hotels')

    assert hotels_tax(Money(100, 'USD')) == TaxedMoney(
        net=Money(100, 'USD'), gross=Money(120, 'USD'))
    assert hotels_tax(Money(100, 'USD'), keep_gross=True) == TaxedMoney(
        net=Money('83.33', 'USD'), gross=Money(100, 'USD'))

    taxed_money = TaxedMoney(net=Money(100, 'USD'), gross=Money(100, 'USD'))
    assert hotels_tax(taxed_money) == TaxedMoney(
        net=Money(100, 'USD'), gross=Money(120, 'USD'))
    assert hotels_tax(taxed_money, keep_gross=True) == TaxedMoney(
        net=Money('83.33', 'USD'), gross=Money(100, 'USD'))