Store party NCF defaults per party
Publicar paquete PyPI / publish (push) Successful in 2m46s

This commit is contained in:
José Arturo García
2026-09-30 23:44:24 -04:00
parent 9acb5142b9
commit a76e794304
2 changed files with 18 additions and 4 deletions
+10 -4
View File
@@ -8,7 +8,7 @@ from sql.conditionals import Coalesce
from trytond import backend
from trytond.i18n import gettext
from trytond.model import ModelSQL, ValueMixin, fields
from trytond.model import ModelSQL, fields
from trytond.modules.company.model import (
CompanyMultiValueMixin, CompanyValueMixin)
from trytond.modules.currency.fields import Monetary
@@ -40,10 +40,12 @@ supplier_ncf_type = fields.Selection(
)
class Party(metaclass=PoolMeta):
class Party(CompanyMultiValueMixin, metaclass=PoolMeta):
__name__ = 'party.party'
customer_ncf_type = fields.MultiValue(customer_ncf_type)
supplier_ncf_type = fields.MultiValue(supplier_ncf_type)
ncf_types = fields.One2Many(
'party.party.ncf_type', 'party', "NCF Types")
@classmethod
def multivalue_model(cls, field):
@@ -69,12 +71,16 @@ class Party(metaclass=PoolMeta):
'default_supplier_ncf_type', **pattern)
class PartyNcfType(ModelSQL, ValueMixin):
class PartyNcfType(ModelSQL, CompanyValueMixin):
"Party Ncf Type"
__name__ = 'party.party.ncf_type'
party = fields.Many2One(
'party.party', "Party", ondelete='CASCADE')
'party.party', "Party", ondelete='CASCADE',
context={
'company': Eval('company', -1),
},
depends={'company'})
customer_ncf_type = customer_ncf_type
supplier_ncf_type = supplier_ncf_type
+8
View File
@@ -8,6 +8,7 @@ from trytond.modules.ncf_manager.sequence import Sequence
from trytond.modules.ncf_manager.importer import (
normalize_dgii_row, parse_dgii_authorizations)
from trytond.modules.ncf_manager.invoice import Invoice
from trytond.modules.ncf_manager.party import Party, PartyNcfType
class NcfManagerUnitTestCase(unittest.TestCase):
@@ -73,6 +74,13 @@ class NcfManagerUnitTestCase(unittest.TestCase):
self.assertIn('template.type == product_type', source)
self.assertIn("line.type == 'line'", source)
def test_party_ncf_type_is_stored_per_party_and_company(self):
self.assertIn('ncf_types', Party._fields)
self.assertEqual(
Party._fields['ncf_types'].model_name, 'party.party.ncf_type')
self.assertIn('party', PartyNcfType._fields)
self.assertIn('company', PartyNcfType._fields)
def test_csv_parser_preserves_unquoted_detail(self):
source_format, rows = parse_dgii_authorizations(
f'{self.HEADERS}\r\n{self.ROW}\r\n'.encode())