82 lines
2.0 KiB
Python
82 lines
2.0 KiB
Python
import datetime as dt
|
|
from decimal import Decimal
|
|
|
|
from proteus import Model, Wizard
|
|
|
|
from tools import open_file
|
|
|
|
dir = "./demo/data"
|
|
file_ = "party_company.csv"
|
|
path = "".join([dir, "/", file_])
|
|
|
|
|
|
def setup(config, modules, company_config):
|
|
data, = open_file(path)
|
|
|
|
Address = Model.get('party.address')
|
|
Company = Model.get('company.company')
|
|
Country = Model.get('country.country')
|
|
Currency = Model.get('currency.currency')
|
|
Party = Model.get('party.party')
|
|
Subdivision = Model.get('country.subdivision')
|
|
|
|
company_currency, = Currency.find([
|
|
('code', '=', company_config["company_currency"])
|
|
])
|
|
|
|
rate = company_currency.rates.new()
|
|
rate.date = dt.date(dt.date.today().year, 1, 1)
|
|
rate.rate = Decimal('1')
|
|
|
|
company_currency.save()
|
|
|
|
try:
|
|
company_country, = Country.find([('code', '=', company_config["company_country"])])
|
|
except ValueError:
|
|
company_country = None
|
|
|
|
|
|
CompanyWizard = Wizard('company.company.config')
|
|
CompanyWizard.execute('company')
|
|
|
|
company = CompanyWizard.form
|
|
party = Party(name=data.get("name"))
|
|
|
|
address = Address()
|
|
address.street = data.get("street")
|
|
address.city = data.get("city")
|
|
address.country = company_country
|
|
|
|
try:
|
|
address.subdivision, = Subdivision.find([
|
|
('code', '=', company_config["company_subdivision"])
|
|
])
|
|
except ValueError:
|
|
pass
|
|
|
|
party.addresses.append(address)
|
|
party.save()
|
|
|
|
company.party = party
|
|
company.currency = company_currency
|
|
company.timezone = company_config["company_timezone"]
|
|
CompanyWizard.execute('add')
|
|
|
|
# Reload context
|
|
User = Model.get('res.user')
|
|
config._context = User.get_preferences(True, {})
|
|
|
|
company, = Company.find()
|
|
|
|
return company
|
|
|
|
|
|
def get():
|
|
|
|
data, = open_file(path)
|
|
Company = Model.get('company.company')
|
|
|
|
if company := Company.find([('party.name', '=', data.get("name"))]):
|
|
return company
|
|
return
|