from trytond.model import ModelSQL, ModelView, fields from trytond.pool import PoolMeta, Pool from trytond.exceptions import UserError from trytond.modules.purchase_trade.purchase import (TRIGGERS) from trytond.transaction import Transaction class PartyExecution(ModelSQL,ModelView): "Party Execution" __name__ = 'party.execution' party = fields.Many2One('party.party',"Party") area = fields.Many2One('country.region',"Area") percent = fields.Numeric("% targeted") class Party(metaclass=PoolMeta): __name__ = 'party.party' tol_min = fields.Numeric("Tol - in %") tol_max = fields.Numeric("Tol + in %") wb = fields.Many2One('purchase.weight.basis',"Weight basis") association = fields.Many2One('purchase.association',"Association") execution = fields.One2Many('party.execution','party',"") @classmethod def getPartyByName(cls, party, category=None): party = party.upper() p = cls.search([('name', '=', party)], limit=1) if p: return p[0] else: p = cls() p.name = party cls.save([p]) if category: Category = Pool().get('party.category') cat = Category.search(['name','=',category]) if cat: PartyCategory = Pool().get('party.party-party.category') pc = PartyCategory() pc.party = p.id pc.category = cat[0].id PartyCategory.save([pc]) return p