edocument_xrechnung/party.py

65 lines
1.8 KiB
Python
Raw Normal View History

2022-10-17 15:20:25 +00:00
# -*- coding: utf-8 -*-
2023-06-30 09:36:17 +00:00
# This file is part of the edocument-module for Tryton from m-ds.de.
2022-10-17 15:20:25 +00:00
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
from trytond.pool import PoolMeta
from trytond.exceptions import UserError
2024-12-11 09:31:19 +00:00
from trytond.modules.tryton6_backport.i18n import gettext
2024-12-05 09:47:05 +00:00
from trytond.model import fields
2022-10-17 15:20:25 +00:00
2024-12-11 09:31:19 +00:00
class PartyIdentifier(metaclass=PoolMeta):
__name__ = 'party.identifier'
@classmethod
def __setup__(cls):
super(PartyIdentifier, cls).__setup__()
cls.type.selection.append(
('edoc_route_id', 'X-Rechnung Route-ID'))
# end PartyIdentifier
2022-10-17 15:20:25 +00:00
class Party(metaclass=PoolMeta):
__name__ = 'party.party'
2024-12-05 09:47:05 +00:00
xrechnung_routeid = fields.Boolean(
string='X-Rechnung Route-ID',
help='Enables the need for an XRechnung route ID at the party ' +
'for exporting the XRechnung.')
2022-10-17 15:20:25 +00:00
def get_xrechnung_route_id(self):
""" search for route-id at party, fire-exception if missing
"""
for ident in self.identifiers:
if ident.type == 'edoc_route_id':
return ident.code
2024-12-05 09:47:05 +00:00
if self.xrechnung_routeid:
raise UserError(gettext(
'edocument_xrechnung.msg_missing_xrechnung_route_id',
partyname=self.rec_name))
@classmethod
def default_xrechnung_routeid(cls):
""" default for needs-route-id
Returns:
bool: default False
"""
return False
@classmethod
def validate(cls, records):
""" validate setup of xrechnung route id
Args:
records (list): records of party.party
"""
super().validate(records)
2024-12-05 09:47:05 +00:00
for record in records:
record.get_xrechnung_route_id()
2022-10-18 15:33:17 +00:00
2022-10-17 15:20:25 +00:00
# end Party