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 config as pconfig
import country
import currency
import company as company_
import parties
@ -70,16 +69,13 @@ def main(database, modules, demo_password, company_config, config_file=None):
config = set_config(database, config_file)
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:
currency.do_import()
if 'company' in to_activate:
company = company_.setup(config, activated, company_config)
elif 'company' in activated:
if not (company := company_.get()):
if not (company := company_.get(company_config)):
company = company_.setup(config, activated, company_config)
else:
company = company
@ -87,7 +83,7 @@ def main(database, modules, demo_password, company_config, config_file=None):
company = None
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__':

View File

@ -11,9 +11,8 @@ path = "".join([dir, "/", file_])
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')
Country = Model.get('country.country')
Currency = Model.get('currency.currency')
@ -31,28 +30,45 @@ def setup(config, modules, company_config):
company_currency.save()
try:
company_country, = Country.find([('code', '=', company_config["company_country"])])
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=data.get("name"))
party = Party(
name=company_config["company_name"],
type_person=company_config["type_person"]
)
address = Address()
address.street = data.get("street")
address.city = data.get("city")
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
try:
address.subdivision, = Subdivision.find([
('code', '=', company_config["company_subdivision"])
])
except ValueError:
pass
address.subdivision = company_subdivision
address.subdivision_municipality = company_municipality
party.addresses.append(address)
party.save()
@ -71,11 +87,12 @@ def setup(config, modules, company_config):
return company
def get():
def get(company_config):
data, = open_file(path)
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

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_subdivision": "CO-CUN",
"company_subdivision": "CO-05",
"company_municipality": "CO-05001",
"languages": {
"codes": ["en", "pt", "es", "es_419"]
},
@ -15,6 +21,7 @@
"country",
"currency",
"party",
"party_co",
"product",
"sale_point"
]

View File

@ -1,2 +1,2 @@
name,street,City
Empresa,Av Oriental,Medellin
name,street,country,subdivision,municipality,identifier_type,identifier
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