Esempio n. 1
0
    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()
Esempio n. 2
0
 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())
Esempio n. 3
0
 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.")
Esempio n. 4
0
 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.")
Esempio n. 5
0
 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.")
Esempio n. 6
0
    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)
Esempio n. 7
0
 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)
Esempio n. 8
0
    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