99 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.5 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):
 | |
| 
 | |
|     Identifier = Model.get('party.identifier')
 | |
|     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
 | |
| 
 | |
|     try:
 | |
|         company_subdivision, = Subdivision.find(
 | |
|             [('code', '=', company_config["company_subdivision"])]
 | |
|         )
 | |
|     except ValueError:
 | |
|         company_subdivision = None
 | |
| 
 | |
|     try:
 | |
|         company_municipality, = Subdivision.find(
 | |
|             [('code', '=', company_config["company_municipality"])]
 | |
|         )
 | |
|     except ValueError:
 | |
|         company_municipality = None
 | |
| 
 | |
|     CompanyWizard = Wizard('company.company.config')
 | |
|     CompanyWizard.execute('company')
 | |
| 
 | |
|     company = CompanyWizard.form
 | |
|     party = Party(
 | |
|         name=company_config["company_name"],
 | |
|         type_person=company_config["type_person"]
 | |
|     )
 | |
| 
 | |
|     identifier = Identifier()
 | |
|     identifier.type = company_config["company_identifier_type"]
 | |
|     identifier.code = company_config["company_identifier"]
 | |
| 
 | |
|     party.identifiers.append(identifier)
 | |
| 
 | |
|     address = party.addresses[0]
 | |
|     address.street = company_config["company_street"]
 | |
|     address.country = company_country
 | |
|     address.subdivision = company_subdivision
 | |
|     address.subdivision_municipality = company_municipality
 | |
| 
 | |
|     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(company_config):
 | |
| 
 | |
|     Company = Model.get('company.company')
 | |
| 
 | |
|     if company := Company.find([
 | |
|         ('party.name', '=', company_config["company_name"])
 | |
|     ]):
 | |
|         return company
 | |
|     return
 |