51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
from trytond.pool import Pool
|
|
from trytond.transaction import Transaction
|
|
|
|
|
|
ITSA_COMPANY_NAME = 'ITSA'
|
|
|
|
|
|
def record_id(record):
|
|
return getattr(record, 'id', record)
|
|
|
|
|
|
def is_itsa_company(company=None):
|
|
if company is None:
|
|
company_id = Transaction().context.get('company')
|
|
if not company_id:
|
|
return False
|
|
Company = Pool().get('company.company')
|
|
company = Company(company_id)
|
|
party = getattr(company, 'party', None)
|
|
return bool(party and party.name == ITSA_COMPANY_NAME)
|
|
|
|
|
|
def _search_first(model_name, domains):
|
|
Model = Pool().get(model_name)
|
|
for domain in domains:
|
|
try:
|
|
records = Model.search(domain, limit=1)
|
|
except Exception:
|
|
continue
|
|
if records:
|
|
return records[0]
|
|
|
|
|
|
def default_itsa_currency():
|
|
currency = _search_first('currency.currency', [
|
|
[('code', '=', 'USD')],
|
|
[('name', '=', 'USD')],
|
|
[('symbol', '=', 'USD')],
|
|
])
|
|
return record_id(currency) if currency else None
|
|
|
|
|
|
def default_itsa_unit():
|
|
unit = _search_first('product.uom', [
|
|
[('symbol', '=', 'Mt')],
|
|
[('name', '=', 'Mt')],
|
|
[('symbol', '=', 'MT')],
|
|
[('name', '=', 'MT')],
|
|
])
|
|
return record_id(unit) if unit else None
|