formatting
This commit is contained in:
parent
e893c1be2b
commit
c4571a28b9
6 changed files with 65 additions and 68 deletions
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# This file is part of the cashbook-module from m-ds for Tryton.
|
# This file is part of the edocument-module for Tryton from m-ds.de.
|
||||||
# The COPYRIGHT file at the top level of this repository contains the
|
# The COPYRIGHT file at the top level of this repository contains the
|
||||||
# full copyright notices and license terms.
|
# full copyright notices and license terms.
|
||||||
|
|
||||||
|
|
17
edocument.py
17
edocument.py
|
@ -1,10 +1,11 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# This file is part of the edcoment-module for Tryton.
|
# This file is part of the edocument-module for Tryton from m-ds.de.
|
||||||
# The COPYRIGHT file at the top level of this repository contains the
|
# The COPYRIGHT file at the top level of this repository contains the
|
||||||
# full copyright notices and license terms.
|
# full copyright notices and license terms.
|
||||||
|
|
||||||
import genshi.template
|
import genshi.template
|
||||||
import os, html
|
import os
|
||||||
|
import html
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
from trytond.i18n import gettext
|
from trytond.i18n import gettext
|
||||||
from trytond.modules.edocument_uncefact.edocument import Invoice
|
from trytond.modules.edocument_uncefact.edocument import Invoice
|
||||||
|
@ -46,16 +47,14 @@ class Invoice(Invoice):
|
||||||
raise UserError(gettext(
|
raise UserError(gettext(
|
||||||
'edocument_xrechnung.msg_linetax_invalid_number',
|
'edocument_xrechnung.msg_linetax_invalid_number',
|
||||||
linename=line.rec_name,
|
linename=line.rec_name,
|
||||||
numtax = len(line.invoice_taxes),
|
numtax=len(line.invoice_taxes)))
|
||||||
))
|
|
||||||
|
|
||||||
allowed_cat = ['AE', 'L', 'M', 'E', 'S', 'Z', 'G', 'O', 'K', 'B']
|
allowed_cat = ['AE', 'L', 'M', 'E', 'S', 'Z', 'G', 'O', 'K', 'B']
|
||||||
if not line.invoice_taxes[0].tax.unece_category_code in allowed_cat:
|
if not line.invoice_taxes[0].tax.unece_category_code in allowed_cat:
|
||||||
raise UserError(gettext(
|
raise UserError(gettext(
|
||||||
'edocument_xrechnung.msg_linetax_invalid_catcode',
|
'edocument_xrechnung.msg_linetax_invalid_catcode',
|
||||||
taxname=line.invoice_taxes[0].tax.rec_name,
|
taxname=line.invoice_taxes[0].tax.rec_name,
|
||||||
allowed = ', '.join(allowed_cat),
|
allowed=', '.join(allowed_cat)))
|
||||||
))
|
|
||||||
|
|
||||||
return line.invoice_taxes[0].tax
|
return line.invoice_taxes[0].tax
|
||||||
|
|
||||||
|
@ -84,8 +83,7 @@ class Invoice(Invoice):
|
||||||
if len(line.unit.unece_code or '') == 0:
|
if len(line.unit.unece_code or '') == 0:
|
||||||
raise UserError(gettext(
|
raise UserError(gettext(
|
||||||
'edocument_xrechnung.msg_uom_code_missing',
|
'edocument_xrechnung.msg_uom_code_missing',
|
||||||
uomname = line.unit.rec_name,
|
uomname=line.unit.rec_name))
|
||||||
))
|
|
||||||
return line.unit.unece_code
|
return line.unit.unece_code
|
||||||
|
|
||||||
def tax_category_code(self, tax):
|
def tax_category_code(self, tax):
|
||||||
|
@ -94,8 +92,7 @@ class Invoice(Invoice):
|
||||||
if len(tax.unece_category_code or '') == 0:
|
if len(tax.unece_category_code or '') == 0:
|
||||||
raise UserError(gettext(
|
raise UserError(gettext(
|
||||||
'edocument_xrechnung.mds_tax_category_missing',
|
'edocument_xrechnung.mds_tax_category_missing',
|
||||||
taxname = tax.rec_name,
|
taxname=tax.rec_name))
|
||||||
))
|
|
||||||
return tax.unece_category_code
|
return tax.unece_category_code
|
||||||
|
|
||||||
def quote_text(self, text):
|
def quote_text(self, text):
|
||||||
|
|
5
party.py
5
party.py
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# This file is part of the edcoment-module for Tryton.
|
# This file is part of the edocument-module for Tryton from m-ds.de.
|
||||||
# The COPYRIGHT file at the top level of this repository contains the
|
# The COPYRIGHT file at the top level of this repository contains the
|
||||||
# full copyright notices and license terms.
|
# full copyright notices and license terms.
|
||||||
|
|
||||||
|
@ -19,8 +19,7 @@ class Party(metaclass=PoolMeta):
|
||||||
return ident.code
|
return ident.code
|
||||||
raise UserError(gettext(
|
raise UserError(gettext(
|
||||||
'edocument_xrechnung.msg_missing_xrechnung_route_id',
|
'edocument_xrechnung.msg_missing_xrechnung_route_id',
|
||||||
partyname = self.rec_name,
|
partyname=self.rec_name))
|
||||||
))
|
|
||||||
|
|
||||||
# end Party
|
# end Party
|
||||||
|
|
||||||
|
|
25
setup.py
25
setup.py
|
@ -2,7 +2,7 @@
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Always prefer setuptools over distutils
|
# Always prefer setuptools over distutils
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup
|
||||||
# To use a consistent encoding
|
# To use a consistent encoding
|
||||||
from codecs import open
|
from codecs import open
|
||||||
from os import path
|
from os import path
|
||||||
|
@ -51,19 +51,21 @@ for dep in info.get('depends', []):
|
||||||
prefix = modversion[dep]['prefix']
|
prefix = modversion[dep]['prefix']
|
||||||
|
|
||||||
if len(modversion[dep]['max']) > 0:
|
if len(modversion[dep]['max']) > 0:
|
||||||
requires.append('%s_%s >= %s, <= %s' %
|
requires.append('%s_%s >= %s, <= %s' % (
|
||||||
(prefix, dep, modversion[dep]['min'], modversion[dep]['max']))
|
prefix, dep, modversion[dep]['min'],
|
||||||
|
modversion[dep]['max']))
|
||||||
else:
|
else:
|
||||||
requires.append('%s_%s >= %s' %
|
requires.append('%s_%s >= %s' % (
|
||||||
(prefix, dep, modversion[dep]['min']))
|
prefix, dep, modversion[dep]['min']))
|
||||||
else:
|
else:
|
||||||
requires.append('%s_%s >= %s.%s, < %s.%s' %
|
requires.append('%s_%s >= %s.%s, < %s.%s' % (
|
||||||
('trytond', dep, major_version, minor_version,
|
'trytond', dep, major_version, minor_version,
|
||||||
major_version, minor_version + 1))
|
major_version, minor_version + 1))
|
||||||
requires.append('trytond >= %s.%s, < %s.%s' %
|
requires.append('trytond >= %s.%s, < %s.%s' % (
|
||||||
(major_version, minor_version, major_version, minor_version + 1))
|
major_version, minor_version, major_version, minor_version + 1))
|
||||||
|
|
||||||
setup(name='%s_%s' % (PREFIX, MODULE),
|
setup(
|
||||||
|
name='%s_%s' % (PREFIX, MODULE),
|
||||||
version=info.get('version', '0.0.1'),
|
version=info.get('version', '0.0.1'),
|
||||||
description='Tryton module to XRechnung to edocument.',
|
description='Tryton module to XRechnung to edocument.',
|
||||||
long_description=long_description,
|
long_description=long_description,
|
||||||
|
@ -96,7 +98,8 @@ setup(name='%s_%s' % (PREFIX, MODULE),
|
||||||
'trytond.modules.%s' % MODULE,
|
'trytond.modules.%s' % MODULE,
|
||||||
],
|
],
|
||||||
package_data={
|
package_data={
|
||||||
'trytond.modules.%s' % MODULE: (info.get('xml', [])
|
'trytond.modules.%s' % MODULE: (
|
||||||
|
info.get('xml', [])
|
||||||
+ ['tryton.cfg', 'locale/*.po', 'tests/*.py',
|
+ ['tryton.cfg', 'locale/*.po', 'tests/*.py',
|
||||||
'template/*/*.xml', 'versiondep.txt', 'README.rst']),
|
'template/*/*.xml', 'versiondep.txt', 'README.rst']),
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,23 +1,18 @@
|
||||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
# -*- coding: utf-8 -*-
|
||||||
# this repository contains the full copyright notices and license terms.
|
# This file is part of the edocument-module for Tryton from m-ds.de.
|
||||||
|
# The COPYRIGHT file at the top level of this repository contains the
|
||||||
|
# full copyright notices and license terms.
|
||||||
|
|
||||||
import trytond.tests.test_tryton
|
import trytond.tests.test_tryton
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from trytond.modules.edocument_xrechnung.tests.test_edocument import EdocTestCase
|
from .test_edocument import EdocTestCase
|
||||||
|
|
||||||
__all__ = ['suite']
|
__all__ = ['suite']
|
||||||
|
|
||||||
|
|
||||||
class EDocumentTestCase(\
|
|
||||||
EdocTestCase,\
|
|
||||||
):
|
|
||||||
'Test edocument module'
|
|
||||||
module = 'edocument_xrechnung'
|
|
||||||
|
|
||||||
# end EDocumentTestCase
|
|
||||||
|
|
||||||
def suite():
|
def suite():
|
||||||
suite = trytond.tests.test_tryton.suite()
|
suite = trytond.tests.test_tryton.suite()
|
||||||
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(EDocumentTestCase))
|
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
|
||||||
|
EdocTestCase))
|
||||||
return suite
|
return suite
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# This file is part of the cashbook-module from m-ds for Tryton.
|
# This file is part of the edocument-module for Tryton from m-ds.de.
|
||||||
# The COPYRIGHT file at the top level of this repository contains the
|
# The COPYRIGHT file at the top level of this repository contains the
|
||||||
# full copyright notices and license terms.
|
# full copyright notices and license terms.
|
||||||
|
|
||||||
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
|
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
|
||||||
from trytond.pool import Pool
|
from trytond.pool import Pool
|
||||||
from trytond.modules.edocument_uncefact.tests.test_module import get_invoice
|
from trytond.modules.edocument_uncefact.tests.test_module import get_invoice
|
||||||
from unittest.mock import Mock, MagicMock
|
from unittest.mock import Mock
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,7 +20,6 @@ class EdocTestCase(ModuleTestCase):
|
||||||
"""
|
"""
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Template = pool.get('edocument.xrechnung.invoice')
|
Template = pool.get('edocument.xrechnung.invoice')
|
||||||
Address = pool.get('party.address')
|
|
||||||
Identifier = pool.get('party.identifier')
|
Identifier = pool.get('party.identifier')
|
||||||
Party = pool.get('party.party')
|
Party = pool.get('party.party')
|
||||||
Bank = pool.get('bank')
|
Bank = pool.get('bank')
|
||||||
|
@ -28,9 +27,11 @@ class EdocTestCase(ModuleTestCase):
|
||||||
BankNumber = pool.get('bank.account.number')
|
BankNumber = pool.get('bank.account.number')
|
||||||
|
|
||||||
invoice = get_invoice()
|
invoice = get_invoice()
|
||||||
invoice.party.get_xrechnung_route_id = Mock(return_value='xrechn-route-id-123')
|
invoice.party.get_xrechnung_route_id = Mock(
|
||||||
|
return_value='xrechn-route-id-123')
|
||||||
invoice.company.party.bank_accounts = [
|
invoice.company.party.bank_accounts = [
|
||||||
Mock(spec=BankAccount,
|
Mock(
|
||||||
|
spec=BankAccount,
|
||||||
currency=invoice.currency,
|
currency=invoice.currency,
|
||||||
bank=Mock(spec=Bank, party=Mock(spec=Party, name='Bank')),
|
bank=Mock(spec=Bank, party=Mock(spec=Party, name='Bank')),
|
||||||
owners=[invoice.company.party],
|
owners=[invoice.company.party],
|
||||||
|
@ -40,7 +41,8 @@ class EdocTestCase(ModuleTestCase):
|
||||||
invoice.comment = 'note line 1\nnote line 2'
|
invoice.comment = 'note line 1\nnote line 2'
|
||||||
invoice.taxes[0].tax.rate = Decimal('0.1')
|
invoice.taxes[0].tax.rate = Decimal('0.1')
|
||||||
invoice.identifiers = [
|
invoice.identifiers = [
|
||||||
Mock(spec=Identifier,
|
Mock(
|
||||||
|
spec=Identifier,
|
||||||
type='edoc_route_id',
|
type='edoc_route_id',
|
||||||
code='xrechn-route-id-123')
|
code='xrechn-route-id-123')
|
||||||
]
|
]
|
||||||
|
@ -52,4 +54,5 @@ class EdocTestCase(ModuleTestCase):
|
||||||
|
|
||||||
# end EdocTestCase
|
# end EdocTestCase
|
||||||
|
|
||||||
|
|
||||||
del ModuleTestCase
|
del ModuleTestCase
|
||||||
|
|
Loading…
Reference in a new issue