chill-import-from-canvas/third_party/import_third_party_to_sql.py

119 lines
3.1 KiB
Python

import csv
print_to_screen = "INSERT INTO chill_3party.third_party (id, civility_id, name, firstname, name_company, acronym, kind, parent_id, profession, email, telephone, comment, contact_data_anonymous, active, created_at) VALUES"
def get_parent_id(arg):
return int(arg) + 1000 if arg else "NULL"
def get_third_party_civility(arg):
if arg == "Madame":
return 1
elif arg == "Monsieur":
return 2
elif arg == "Docteur":
return 3
else:
return "NULL"
def get_third_party_kind(arg):
if arg == "Tiers institutionnel":
return "company"
elif arg == "Personne de contact":
return "child"
elif arg == "Personne morale":
return "contact"
else:
return "company"
def make_bool_with_default_false(arg):
if arg == "oui":
return True
else:
return False
def make_telephone(arg):
if arg:
return f"'+32{arg}'"
else:
return "NULL"
with open("HalleDeHan_tiers.csv", newline="") as csv_file:
csv_reader = csv.reader(csv_file)
for skip in range(7):
next(csv_file)
for row in csv_reader:
third_party_id = int(row[0]) + 1000
civility = get_third_party_civility(row[1])
name = row[2]
firstname = row[3]
name_company = row[4]
acronym = row[5]
kind = get_third_party_kind(row[6])
parent_id = get_parent_id(row[7])
# row[8] is the name of the parent in the csv
profession = row[9]
# category = row[10] # category -> see below
email = row[11]
telephone = make_telephone(row[12])
# street = row[13] # TODO address
# extra = row[14]
# streetnumber = row[15]
# postcode = row[16]
# country = row[17]
# validfrom = row[18]
comment = row[19]
contact_data_anonymous = make_bool_with_default_false(row[20])
print_to_screen += f"({third_party_id}, {civility}, '{name}', '{firstname}', '{name_company}', '{acronym}', '{kind}', {parent_id}, '{profession}', '{email}', {telephone}, '{comment}', {contact_data_anonymous}, True, NOW()),"
print_to_screen = print_to_screen[:-1]
print(print_to_screen)
## categories
print_to_screen_cat = (
"INSERT INTO chill_3party.thirdparty_category (thirdparty_id, category_id) VALUES"
)
def get_third_party_category(arg):
if arg == "Stage vente":
return 2
elif arg == "Stage reassort":
return 8
elif arg == "Stage social / educ":
return 9
elif arg == "Stage logistique":
return 10
elif arg == "Stage bureautique":
return 11
else:
return None
with open("HalleDeHan_tiers.csv", newline="") as csv_file:
csv_reader = csv.reader(csv_file)
for skip in range(7):
next(csv_file)
for row in csv_reader:
third_party_id = int(row[0]) + 1000
category_id = get_third_party_category(row[10])
if category_id:
print_to_screen_cat += f"({third_party_id}, {category_id}),"
print_to_screen_cat = print_to_screen_cat[:-1]
print(print_to_screen_cat)
# TODO addresses