update script to populate data for Colombian companies

This commit is contained in:
rodia 2025-09-05 19:07:03 -03:00
parent 5a7d708f68
commit 4a8645aefa
5 changed files with 51 additions and 31 deletions

View File

@ -3,7 +3,6 @@ from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
from proteus import Model, Wizard from proteus import Model, Wizard
from proteus import config as pconfig from proteus import config as pconfig
import country
import currency import currency
import company as company_ import company as company_
import parties import parties
@ -70,16 +69,13 @@ def main(database, modules, demo_password, company_config, config_file=None):
config = set_config(database, config_file) config = set_config(database, config_file)
to_activate, activated = activate_modules(config, modules) to_activate, activated = activate_modules(config, modules)
if 'country' in to_activate or 'country' in activated:
country.do_import()
if 'currency' in to_activate or 'currency' in activated: if 'currency' in to_activate or 'currency' in activated:
currency.do_import() currency.do_import()
if 'company' in to_activate: if 'company' in to_activate:
company = company_.setup(config, activated, company_config) company = company_.setup(config, activated, company_config)
elif 'company' in activated: elif 'company' in activated:
if not (company := company_.get()): if not (company := company_.get(company_config)):
company = company_.setup(config, activated, company_config) company = company_.setup(config, activated, company_config)
else: else:
company = company company = company
@ -87,7 +83,7 @@ def main(database, modules, demo_password, company_config, config_file=None):
company = None company = None
setup_languages(config, demo_password, company_config, company=company) setup_languages(config, demo_password, company_config, company=company)
parties.setup_parties(database=database, config_file=config_file) # parties.setup_parties(database=database, config_file=config_file)
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -11,9 +11,8 @@ path = "".join([dir, "/", file_])
def setup(config, modules, company_config): def setup(config, modules, company_config):
data, = open_file(path)
Address = Model.get('party.address') Identifier = Model.get('party.identifier')
Company = Model.get('company.company') Company = Model.get('company.company')
Country = Model.get('country.country') Country = Model.get('country.country')
Currency = Model.get('currency.currency') Currency = Model.get('currency.currency')
@ -27,32 +26,49 @@ def setup(config, modules, company_config):
rate = company_currency.rates.new() rate = company_currency.rates.new()
rate.date = dt.date(dt.date.today().year, 1, 1) rate.date = dt.date(dt.date.today().year, 1, 1)
rate.rate = Decimal('1') rate.rate = Decimal('1')
company_currency.save() company_currency.save()
try: try:
company_country, = Country.find([('code', '=', company_config["company_country"])]) company_country, = Country.find(
[('code', '=', company_config["company_country"])])
except ValueError: except ValueError:
company_country = None 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 = Wizard('company.company.config')
CompanyWizard.execute('company') CompanyWizard.execute('company')
company = CompanyWizard.form company = CompanyWizard.form
party = Party(name=data.get("name")) party = Party(
name=company_config["company_name"],
address = Address() type_person=company_config["type_person"]
address.street = data.get("street") )
address.city = data.get("city")
address.country = company_country
try: identifier = Identifier()
address.subdivision, = Subdivision.find([ identifier.type = company_config["company_identifier_type"]
('code', '=', company_config["company_subdivision"]) identifier.code = company_config["company_identifier"]
])
except ValueError: party.identifiers.append(identifier)
pass
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.addresses.append(address)
party.save() party.save()
@ -71,11 +87,12 @@ def setup(config, modules, company_config):
return company return company
def get(): def get(company_config):
data, = open_file(path)
Company = Model.get('company.company') Company = Model.get('company.company')
if company := Company.find([('party.name', '=', data.get("name"))]): if company := Company.find([
('party.name', '=', company_config["company_name"])
]):
return company return company
return return

View File

@ -1,6 +1,12 @@
{ {
"company_name": "Empresa S.A.S",
"type_person": "1",
"company_identifier_type": "31",
"company_identifier": "901222999",
"company_street": "Av Das Valiquirias",
"company_country": "CO", "company_country": "CO",
"company_subdivision": "CO-CUN", "company_subdivision": "CO-05",
"company_municipality": "CO-05001",
"languages": { "languages": {
"codes": ["en", "pt", "es", "es_419"] "codes": ["en", "pt", "es", "es_419"]
}, },
@ -15,6 +21,7 @@
"country", "country",
"currency", "currency",
"party", "party",
"party_co",
"product", "product",
"sale_point" "sale_point"
] ]

View File

@ -1,2 +1,2 @@
name,street,City name,street,country,subdivision,municipality,identifier_type,identifier
Empresa,Av Oriental,Medellin Empresa,Av Oriental,Colombia,Cundinamarca,Medellin,13,90100000

1 name street City country subdivision municipality identifier_type identifier
2 Empresa Av Oriental Medellin Colombia Cundinamarca Medellin 13 90100000

@ -1 +1 @@
Subproject commit 3fb258e8a3c574cb5205a6dab9ae2e3f7f5f1ad8 Subproject commit b80e2dbf453ccac01f0f568e8cca31a291f79483