44 lines
1.6 KiB
Python
Executable File
44 lines
1.6 KiB
Python
Executable File
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
|
|
|