generated from dopt-python/py311
updated main page interaction
This commit was merged in pull request #4.
This commit is contained in:
+113
-4
@@ -19,13 +19,122 @@ from PySide6.QtCore import QDate, Qt
|
||||
|
||||
from wce_crm import constants, db
|
||||
from wce_crm.backend import backend
|
||||
from wce_crm.types import EntityIds, RecordingType
|
||||
from wce_crm.types import EntityIds, MainPageEntry, RecordingType
|
||||
|
||||
# %%
|
||||
# backend.page_consulting_linking_companies(None)
|
||||
# backend.page_consulting_linking_persons(3)
|
||||
ret = backend.main_page_get_entries()
|
||||
pprint(ret)
|
||||
# %%
|
||||
with db.ENGINE.connect() as conn:
|
||||
q_relevant_entries = (
|
||||
sa.select(
|
||||
db.t_grunderfassung_personen.c.pers_id,
|
||||
db.t_grunderfassung_personen.c.aktualisiert,
|
||||
db.t_zuordnung_personen_unternehmen.c.id.label("link_id"),
|
||||
db.t_zuordnung_personen_unternehmen.c.un_id,
|
||||
db.t_zuordnung_personen_unternehmen.c.an_id,
|
||||
db.t_grunderfassung_personen.c.Stammdaten__name,
|
||||
db.t_grunderfassung_personen.c.Stammdaten__vorname,
|
||||
db.t_grunderfassung_personen.c.Stammdaten__ort,
|
||||
)
|
||||
.outerjoin(
|
||||
db.t_zuordnung_personen_unternehmen,
|
||||
db.t_grunderfassung_personen.c.pers_id
|
||||
== db.t_zuordnung_personen_unternehmen.c.pers_id,
|
||||
)
|
||||
.order_by(db.t_grunderfassung_personen.c.Stammdaten__name)
|
||||
).subquery("relevant_entries")
|
||||
|
||||
stmt = sa.select(
|
||||
q_relevant_entries,
|
||||
db.t_ext_crm_master_attach.c.ma_unternehmensname,
|
||||
).outerjoin(
|
||||
db.t_ext_crm_master_attach,
|
||||
q_relevant_entries.c.un_id == db.t_ext_crm_master_attach.c.ma_id,
|
||||
)
|
||||
|
||||
ret = conn.execute(stmt)
|
||||
|
||||
# results = list(ret.mappings())
|
||||
# print(f"Results are:\n{pformat(results)}")
|
||||
|
||||
main_page_entries: list[MainPageEntry] = []
|
||||
for entry in ret.mappings():
|
||||
ids = EntityIds(
|
||||
pers_id=entry["pers_id"],
|
||||
link_id=entry["link_id"],
|
||||
un_id=entry["un_id"],
|
||||
an_id=entry["an_id"],
|
||||
)
|
||||
recording_type = RecordingType.WITHOUT_COMPANY
|
||||
if ids.un_id or ids.link_id:
|
||||
recording_type = RecordingType.WITH_COMPANY
|
||||
|
||||
first_name = entry["Stammdaten__vorname"]
|
||||
last_name = entry["Stammdaten__name"]
|
||||
location_city = entry["Stammdaten__ort"]
|
||||
person_name = f"{first_name} {last_name}"
|
||||
if location_city:
|
||||
person_name += f" (Ort: {location_city})"
|
||||
|
||||
company_name = entry["ma_unternehmensname"]
|
||||
|
||||
display_name = person_name
|
||||
if recording_type is RecordingType.WITH_COMPANY:
|
||||
display_name = company_name
|
||||
|
||||
main_page_entries.append(
|
||||
MainPageEntry(
|
||||
ids=ids,
|
||||
display_name=display_name,
|
||||
dt_updated=entry["aktualisiert"],
|
||||
recording_type=recording_type,
|
||||
)
|
||||
)
|
||||
main_page_entries.sort(key=lambda x: x.dt_updated, reverse=True)
|
||||
pprint(main_page_entries)
|
||||
# %%
|
||||
|
||||
|
||||
# %%
|
||||
entry = results[0]
|
||||
ids = EntityIds(
|
||||
pers_id=entry["pers_id"],
|
||||
link_id=entry["link_id"],
|
||||
un_id=entry["un_id"],
|
||||
an_id=entry["an_id"],
|
||||
)
|
||||
recording_type = RecordingType.WITHOUT_COMPANY
|
||||
if ids.un_id or ids.link_id:
|
||||
recording_type = RecordingType.WITH_COMPANY
|
||||
|
||||
first_name = entry["Stammdaten__vorname"]
|
||||
last_name = entry["Stammdaten__name"]
|
||||
location_city = entry["Stammdaten__ort"]
|
||||
person_name = f"{first_name} {last_name}"
|
||||
if location_city:
|
||||
person_name += f" (Ort: {location_city})"
|
||||
|
||||
company_name = entry["ma_unternehmensname"]
|
||||
|
||||
display_name = person_name
|
||||
if recording_type is RecordingType.WITH_COMPANY:
|
||||
display_name = company_name
|
||||
|
||||
main_page_entry = MainPageEntry(
|
||||
ids=ids,
|
||||
display_name=display_name,
|
||||
dt_updated=entry["aktualisiert"],
|
||||
recording_type=recording_type,
|
||||
)
|
||||
|
||||
# %%
|
||||
pprint(main_page_entry)
|
||||
|
||||
|
||||
# %%
|
||||
# %%
|
||||
@dc.dataclass(slots=True, kw_only=True)
|
||||
class LinkingPerson:
|
||||
@@ -74,13 +183,13 @@ with db.ENGINE.connect() as conn:
|
||||
last_name = row.Stammdaten__name
|
||||
location_city = row.Stammdaten__ort
|
||||
|
||||
display_name = f"{first_name} {last_name}"
|
||||
person_name = f"{first_name} {last_name}"
|
||||
if location_city:
|
||||
display_name += f" (Ort: {location_city})"
|
||||
person_name += f" (Ort: {location_city})"
|
||||
|
||||
persons_map[p_id] = {
|
||||
"pers_id": p_id,
|
||||
"display_name": display_name,
|
||||
"display_name": person_name,
|
||||
"un_ids": set(),
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user