def __init__(self, master=None, **kwargs) -> Frame: """A fő alkalmazás egy tkinter.Frame-ben indul. Ha a szülője None, mint az alapértelmezés, akkor saját ablakot nyit magának. master: szülő widget kwargs: tkinter.Frame tulajdonságait szabályozó értékek""" super().__init__(master=master, **kwargs) # adatbázis konnektorok kon = Konnektor(szemely=self._init_szemely_db(), szervezet=self._init_szervezet_db(), kontakt=self._init_kontakt_db(), projekt=self._init_projekt_db(), ajanlat=self._init_ajanlat_db()) # alapadatok beírása if not WEVIK.meglevo(kon.szervezet): # feltételezem, hogy a céggel együtt a többet se írta még be MAGANSZEMELY.ment(kon.szervezet) # SQL PRIMARY KEY 1 wevik_id = WEVIK.ment(kon.szervezet) # SQL PRIMARY KEY 2 vitya_id = VITYA.ment(kon.szemely) # SQL PRIMARY KEY 1 roli_id = ROLI.ment(kon.szemely) # SQL PRIMARY KEY 2 Kontakt(szemely=vitya_id, szervezet=wevik_id).ment(kon.kontakt) # SQL PRIMARY KEY 1 Kontakt(szemely=roli_id, szervezet=wevik_id).ment(kon.kontakt) # SQL PRIMARY KEY 2 MAGANSZEMELY.azonosito = 1 WEVIK.azonosito = 2 VITYA.azonosito = 1 # a fenti mentési sorrend miatt kontaktszemély-azonosítóként is használandó ROLI.azonosito = 2 # ez is # főmenü megjelenítése menu.Fomenu(self, kon) self.grid() # és pörgés :-) self.mainloop()
def listanezet(self): assert self._kon jelleg = self._kon.projekt.select("jelleg", azonosito=self.jelleg).fetchone() jelleg = Jelleg(kon=self._kon, **jelleg) kontakt = self._kon.kontakt.select("kontakt", azonosito=self.ajanlatkero).fetchone() kontakt = Kontakt(kon=self._kon, **kontakt) return "{jelleg} / {ajanlatkero}".format(jelleg=jelleg.listanezet(), ajanlatkero=kontakt.listanezet())
def apply(self): kontakt = Kontakt(**(self._kon.kontakt.select("kontakt", logic="AND", szemely=self._szemelyvalaszto.elem.azonosito, szervezet=self._szervezetvalaszto.elem.azonosito).fetchone())) if kontakt.torol(self._kon.kontakt): print("Bejegyzés törölve.") else: print("Nem sikerült törölni.")
def apply(self): kontakt = Kontakt(szemely=self._szemelyvalaszto.elem.azonosito, szervezet=self._szervezetvalaszto.elem.azonosito, megjegyzes=self._megjegyzes.get()) if kontakt.ment(self._kon.kontakt): print("Bejegyzés mentve.") else: print("Nem sikerült elmenteni.")
def apply(self): szemely = self._szemelyvalaszto.elem.azonosito szervezet = self._szervezetvalaszto.elem.azonosito modszervezet = self._modszervezetvalaszto.elem.azonosito megjegyzes = self._megjegyzes.get() kontakt_id = self._kon.kontakt.select("kontakt", "azonosito", szemely=szemely, szervezet=szervezet, logic="AND") kontakt_id = kontakt_id.fetchone()["azonosito"] kontakt = Kontakt(azonosito=kontakt_id, szemely=szemely, szervezet=modszervezet, megjegyzes=megjegyzes) if kontakt.ment(self._kon.kontakt): print("Bejegyzés módosítva.") else: print("Nem sikerült módosítani.")
def beallit(self, ajanlatkeres): ajanlatkero = self._kon.kontakt.select("kontakt", azonosito=ajanlatkeres.ajanlatkero).fetchone() ajanlatkero = Kontakt(kon = self._kon, **ajanlatkero) jelleg = self._kon.projekt.select("jelleg", azonosito=ajanlatkeres.jelleg).fetchone() jelleg = Jelleg(kon = self._kon, **jelleg) temafelelos = self._kon.kontakt.select("kontakt", azonosito=ajanlatkeres.temafelelos).fetchone() temafelelos = Kontakt(kon = self._kon, **temafelelos) temafelelosok = self._kontaktszemelyek(2) self._kontakt_valaszto.beallit((ajanlatkero, )) self._jelleg_valaszto.beallit((jelleg, )) self._temafelelos_valaszto.beallit(temafelelosok) self._temafelelos_valaszto.valaszto.current(temafelelosok.index(temafelelos)) try: erkezett = date.isoformat(date.fromisoformat(ajanlatkeres.erkezett)) hatarido = date.isoformat(date.fromisoformat(ajanlatkeres.hatarido)) except ValueError: erkezett = hatarido = "" self._erkezett.set(erkezett) self._hatarido.set(hatarido) self._megjegyzes.set(ajanlatkeres.megjegyzes)
def _kontaktszemelyek(self, szervezet_id=None): if szervezet_id: kontaktok = self._kon.kontakt.select("kontakt", szervezet=szervezet_id) else: kontaktok = self._kon.kontakt.select("kontakt") return sorted(map(lambda kontakt: Kontakt(kon=self._kon, **kontakt), kontaktok), key=repr)
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