Ejemplo n.º 1
0
def encode_line(line):
    if line.base_unit_price.amount.value != 0:
        discount_percent = (
            line.discount_amount.amount.value /
            (line.base_unit_price.amount.value * line.quantity))
    else:
        discount_percent = 0
    return {
        "sku":
        line.sku,
        "text":
        line.text,
        "quantity":
        format_decimal(line.quantity, locale=get_current_babel_locale()),
        "unitPrice":
        format_money(line.base_unit_price.amount),
        "discountedUnitPrice":
        format_money(line.discounted_unit_price.amount),
        "discountAmount":
        format_money(line.discount_amount.amount),
        "discountPercent":
        format_percent(discount_percent, 2),
        "taxlessTotal":
        format_money(line.taxless_price.amount),
        "taxPercentage":
        format_percent(line.tax_rate, 2),
        "taxfulTotal":
        format_money(line.taxful_price.amount)
    }
Ejemplo n.º 2
0
 def __str__(self):
     text = super(Tax, self).__str__()
     if self.rate is not None:
         text += " ({})".format(format_percent(self.rate, digits=3))
     if self.amount is not None:
         text += " ({})".format(format_money(self.amount))
     return text
Ejemplo n.º 3
0
def encode_line(line):
    if line.base_unit_price.amount.value != 0:
        discount_percent = (
            line.discount_amount.amount.value / (line.base_unit_price.amount.value * line.quantity)
        )
    else:
        discount_percent = 0
    return {
        "sku": line.sku,
        "text": line.text,
        "quantity": format_decimal(line.quantity, locale=get_current_babel_locale()),
        "unitPrice": format_money(line.base_unit_price.amount),
        "discountedUnitPrice": format_money(line.discounted_unit_price.amount),
        "discountAmount": format_money(line.discount_amount.amount),
        "discountPercent": format_percent(discount_percent, 2),
        "taxlessTotal": format_money(line.taxless_price.amount),
        "taxPercentage": format_percent(line.tax_rate, 2),
        "taxfulTotal": format_money(line.taxful_price.amount)
    }
Ejemplo n.º 4
0
    def get_discount_effect(self, instance):
        if not (instance.discount_amount_value or instance.discounted_price_value or instance.discount_percentage):
            return "-"

        effects = []
        shop = get_shop(self.request)
        if instance.discount_amount_value:
            effects.append(
                "- %s" % format_money(shop.create_price(instance.discount_amount_value))
                if shop else format_number(instance.discount_amount_value))

        if instance.discounted_price_value:
            effects.append(
                format_money(shop.create_price(instance.discounted_price_value))
                if shop else format_number(instance.discounted_price_value))

        if instance.discount_percentage:
            effects.append(format_percent(instance.discount_percentage))

        return ','.join(effects)
Ejemplo n.º 5
0
    def get_discount_effect(self, instance):
        if not (instance.discount_amount_value
                or instance.discounted_price_value
                or instance.discount_percentage):
            return "-"

        effects = []
        shop = get_shop(self.request)
        if instance.discount_amount_value:
            effects.append(
                "- %s" %
                format_money(shop.create_price(instance.discount_amount_value))
                if shop else format_number(instance.discount_amount_value))

        if instance.discounted_price_value:
            effects.append(
                format_money(shop.create_price(instance.discounted_price_value)
                             )
                if shop else format_number(instance.discounted_price_value))

        if instance.discount_percentage:
            effects.append(format_percent(instance.discount_percentage))

        return ','.join(effects)
Ejemplo n.º 6
0
def _format_rate(tax_rule):
    if tax_rule.rate is None:
        return ""
    return format_percent(tax_rule.rate, digits=3)
Ejemplo n.º 7
0
def percent(value, ndigits=0):
    return format_percent(value, ndigits)
Ejemplo n.º 8
0
def percent(value, ndigits=0):
    return format_percent(value, ndigits)
Ejemplo n.º 9
0
def _format_rate(tax_rule):
    if tax_rule.rate is None:
        return ""
    return format_percent(tax_rule.rate, digits=3)