Hi,
I have 2 classes (HEADER and LINES)
HEADER has a function field currency (because currency need to be stored on
the LINES):
currency = fields.Function(fields.Many2One('currency.currency', 'Default
Currency',
states=_STATES, depends=_DEPENDS),'on_change_with_currency')
...
@fields.depends('party','company')
def on_change_with_currency(self, name=None):
cursor = Transaction().connection.cursor()
Purchase = Pool().get('purchase.purchase')
table = Purchase.__table__()
if self.party:
subquery = table.select(table.currency,
where=table.party == self.party.id,
order_by=table.id,
limit=10)
cursor.execute(*subquery.select(subquery.currency,
group_by=subquery.currency,
order_by=Count(Literal(1)).desc))
row = cursor.fetchone()
if row:
currency_id, = row
return currency_id
#cls.currency_digits = self.currency.digits
elif self.company:
return self.company.currency.id
return None
LINES has also a currency field but a many2one (with as default value,
currency from HEADER) :
currency = fields.Many2One('currency.currency', 'Currency',
states={
'required': Bool(Eval('unit_price')),
},
depends=['unit_price'])
...
@fields.depends('_parent_HEADER.currency','HEADER')
def on_change_with_currency(self):
currency = self.HEADER.currency if self.HEADER else None
if currency:
return currency.id
Currency on the HEADER doesn't need to be displayed, so this field is not
in the xml form view.
When i try to create a new LINE with a new HEADER, i got this error :
'header' Model has no attribute currency
If i had the currency field in the xml form view of the HEADER (visible or
not) , there is no error...
Why ?
Hope my explanations are understandable :-)
--
You received this message because you are subscribed to the Google Groups
"tryton" group.
To view this discussion on the web visit
https://groups.google.com/d/msgid/tryton/ab8662ca-3b8c-43d1-90f7-4d0205a7f9ff%40googlegroups.com.