Files
2026-03-14 09:42:12 +00:00

60 lines
1.9 KiB
Python

# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.i18n import gettext
from trytond.model import fields
from trytond.modules.document_incoming.exceptions import (
DocumentIncomingProcessError)
from trytond.pool import Pool, PoolMeta
class IncomingConfiguration(metaclass=PoolMeta):
__name__ = 'document.incoming.configuration'
default_supplier = fields.Many2One('party.party', "Default Supplier")
class Incoming(metaclass=PoolMeta):
__name__ = 'document.incoming'
@classmethod
def __setup__(cls):
super().__setup__()
cls.type.selection.append(
('supplier_invoice', "Supplier Invoice"))
@classmethod
def _get_results(cls):
return super()._get_results() | {'account.invoice'}
def _process_supplier_invoice(self):
pool = Pool()
Invoice = pool.get('account.invoice')
Configuration = pool.get('document.incoming.configuration')
config = Configuration(1)
invoice = Invoice(
type='in',
company=self.company or self.supplier_invoice_company)
if invoice.company:
invoice.currency = invoice.company.currency
else:
raise DocumentIncomingProcessError(gettext(
'document_incoming_invoice'
'.msg_supplier_invoice_company',
document=self.rec_name))
invoice.on_change_type()
invoice.on_change_company()
# set party id after company for context
party = self.supplier_invoice_party or config.default_supplier
invoice.party = party.id if party else None
invoice.on_change_party()
return invoice
@property
def supplier_invoice_company(self):
pass
@property
def supplier_invoice_party(self):
pass