edocument_xrechnung/edocument.py

56 lines
1.7 KiB
Python
Raw Normal View History

2022-10-17 15:20:25 +00:00
# -*- coding: utf-8 -*-
# This file is part of the edcoment-module for Tryton.
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
import genshi.template
2022-10-18 15:33:17 +00:00
import os, html
from trytond.exceptions import UserError
from trytond.i18n import gettext
2022-10-17 15:20:25 +00:00
from trytond.modules.edocument_uncefact.edocument import Invoice
2022-10-18 15:33:17 +00:00
from decimal import Decimal
2022-10-17 15:20:25 +00:00
class Invoice(Invoice):
'EDocument XRechnung'
__name__ = 'edocument.xrechnung.invoice'
2022-10-18 15:33:17 +00:00
def prepaid_amount(self, invoice):
""" compute already paid amount
"""
return invoice.total_amount - invoice.amount_to_pay
def tax_rate(self, tax):
""" get tax-rate in procent
"""
return (tax.tax.rate * Decimal('100.0')).quantize(Decimal('0.01'))
def tax_category_code(self, tax):
""" read tax-category, fire exception if missing
"""
if len(tax.tax.unece_category_code or '') == 0:
raise UserError(gettext(
'edocument_xrechnung.mds_tax_category_missing',
taxname = tax.rec_name,
))
return tax.tax.unece_category_code
def quote_text(self, text):
""" replace critical chars
"""
if text is not None:
return html.quote(text)
2022-10-17 15:20:25 +00:00
def _get_template(self, version):
""" load our own template if 'version' is ours
"""
if version == 'XRechnung-2.2':
loader = genshi.template.TemplateLoader(
os.path.join(os.path.dirname(__file__), 'template'),
auto_reload=True)
return loader.load(os.path.join(version, 'XRechnung.xml'))
else :
return super(Invoice, self)._get_template(version)
# end Invoice