def _szervezet(self) -> Szervezet: """A kontakt szervezeti adatai.""" assert self._kon szervezet = self._kon.szervezet.select( "szervezet", azonosito=self.szervezet).fetchone() szervezet = Szervezet(kon=self._kon, **szervezet) if szervezet == MAGANSZEMELY: # __eq__ használata szervezet.rovidnev = "" return szervezet
def _modszervezetnevsor(self): szemelyazonosito = self._szemelyvalaszto.elem.azonosito szemelyhez_nem_rendelt_szervezetek = self._kon.szemely.execute(""" SELECT * FROM szervezet WHERE azonosito NOT IN ( SELECT szervezet FROM kontakt WHERE szemely = ? ); """, (szemelyazonosito, )) return sorted(map(lambda szervezet: Szervezet(**szervezet), szemelyhez_nem_rendelt_szervezetek), key=repr)
"Pest", "Somogy", "Szabolcs-Szatmár-Bereg", "Tolna", "Vas", "Veszprém", "Zala") ORSZAG = { "Magyarország": "H", "Németország": "D", "Ausztria": "A", "Svájc": "CH", "Hollandia": "NL", "Szlovákia": "SK", "Csehország": "CZ", "USA": "USA", "Románia": "RO" } # a magánszemély egy különleges szervezet, hogy a magánszemélyek is kontaktok lehessenek MAGANSZEMELY = Szervezet(rovidnev="#magánszemély", teljesnev="") WEVIK = Szervezet(rovidnev="Wevik Engineer Kft.", teljesnev="Wevik Engineer Kft.") VITYA = Szemely(vezeteknev="Weisz", keresztnev="Viktor", nem="férfi") ROLI = Szemely(vezeteknev="Weisz", keresztnev="Roland", nem="férfi") class Esely(enum.IntEnum): """Ajánlat elnyerésének esélye.""" BUKOTT = 0 NORMAL = 5 ERDEKES = 50 VEGSO = 90
def _szervezetnevsor(self): return sorted(map(lambda szervezet: Szervezet(**szervezet), self._kon.szervezet.select("szervezet")), key=repr)
def export(self): return Szervezet(rovidnev=self._rovidnev.get(), teljesnev=self._teljesnev.get(), megjegyzes=self._megjegyzes.get())
def _megjelenit(self, event): self._szervezeturlap.beallit(self._nev_valaszto.elem or Szervezet())
def test_projektlista_import(self): ProjektRekord = namedtuple("ProjektRekord", [ "szam", "nev", "helyseg", "orszag", "ev", "ar", "euro", "felulet", "esely", "statusz", "temafelelos", "szervezet", "szemely", "telefonszam", "emailcim", "hoszig", "mm", "szig", "m2ar", "eurom2ar" ]) with open("projektlista.csv", newline='') as projektek: for projekt in map(ProjektRekord._make, csv.reader(projektek, delimiter=";")): projekt_id = None szemely_id = None szervezet_id = None kontakt_id = None munkaresz_id = None jelleg_id = None ajanlatkeres_id = None # projekt ev, szam = projekt.szam.split("/") projekt_ = Projekt(ev=ev, szam=szam, megnevezes=projekt.nev, rovidnev="", megjegyzes="", gyakorisag=0) if bool(projekt_) and not projekt_.meglevo(self._kon.projekt): projekt_id = projekt_.ment(self._kon.projekt) munkaresz = Munkaresz(kon=self._kon, projekt=projekt_id, megnevezes="szigetelés", enaplo=1, megjegyzes="") munkaresz_id = munkaresz.ment(self._kon.projekt) orszag = "D" if projekt.orszag.startswith("D") else "H" helyseg = projekt.helyseg if projekt.helyseg else "Herend" cim = Cim(munkaresz=munkaresz_id, orszag=orszag, megye="", iranyitoszam="", helyseg=helyseg, utca="", hrsz="", postafiok="", honlap="", megjegyzes="alapértelmezett") cim.ment(self._kon.projekt) jelleg = Jelleg(kon=self._kon, munkaresz=munkaresz_id, megnevezes="új", megjegyzes="") jelleg_id = jelleg.ment(self._kon.projekt) # ajánlatkérő szervezet szervezet = Szervezet(rovidnev=projekt.szervezet, teljesnev=projekt.szervezet, gyakorisag=0, megjegyzes="") if not bool(szervezet): szervezet_id = 1 # magánszemély azonosítója else: szervezet.rovidnev = szervezet.rovidnev.split()[0] meglevo = szervezet.meglevo( self._kon.szervezet ) # kezeli a agánszemélyt is, ami mindig meglévő if meglevo: szervezet_id = Szervezet(**meglevo).azonosito else: szervezet_id = szervezet.ment(self._kon.szervezet) # ajánlatkérő személy nev = projekt.szemely.split(" ", maxsplit=1) if len(nev) == 2: vezeteknev, keresztnev = nev elif len(nev) == 1: vezeteknev, keresztnev = nev[0], "" szemely = Szemely(elotag="", vezeteknev=vezeteknev, keresztnev=keresztnev, nem="férfi", megjegyzes="") if bool(szemely) and not szemely.meglevo( self._kon.szemely): szemely_id = szemely.ment(self._kon.szemely) telefonszam = projekt.telefonszam if projekt.telefonszam else "+36" telefon = Telefon(szemely=szemely_id, telefonszam=telefonszam, megjegyzes="alapértelmezett") telefon.ment(self._kon.szemely) emailcim = projekt.emailcim if projekt.emailcim else ".hu" email = Email(szemely=szemely_id, emailcim=emailcim, megjegyzes="alapértelmezett") email.ment(self._kon.szemely) # kontaktszemély if szervezet_id and szemely_id: kontakt = Kontakt(kon=self._kon, szemely=szemely_id, szervezet=szervezet_id, gyakorisag=0, megjegyzes="") if not kontakt.meglevo(self._kon.kontakt): kontakt_id = kontakt.ment(self._kon.kontakt) # ajánlatkérés if kontakt_id and jelleg_id: ajanlatkeres = Ajanlatkeres(kon=self._kon, jelleg=jelleg_id, ajanlatkero=kontakt_id, temafelelos=1) if not ajanlatkeres.meglevo(self._kon.ajanlat): ajanlatkeres_id = ajanlatkeres.ment( self._kon.ajanlat) # ajánlat if ajanlatkeres_id and projekt.ar and int( projekt.ar ) > 0: # ár nélkül nem írom be az ajánlatok közé esely = projekt.esely.rstrip("%") try: esely = int(esely) except ValueError: esely = Esely.NORMAL ajanlat = Ajanlat(kon=self._kon, ajanlatkeres=ajanlatkeres_id, ajanlatiar=projekt.ar, leadva="", ervenyes="", esely=esely, megjegyzes="") if not ajanlat.meglevo(self._kon.ajanlat): ajanlat.ment(self._kon.ajanlat) return True