KONTOR 2 – helyi üzleti szoftver 3D-nyomtatáshoz
================================================

A Kontor teljes egészében a saját számítógépeden fut – Macen vagy Windows-PC-n. Minden
adat egy SQLite-adatbázisban van a  daten/kontor.db  mappában – semmi sem kerül az
internetre.

Nyelv: kattints a Kontor jobb felső sarkában a nyelvkódra (DE/EN/FR/HU).
Lásd lent a NYELVEK részt.


TELEPÍTŐPROGRAM (PYTHON TELEPÍTÉSE NÉLKÜL)
------------------------------------------
A Kontor saját Pythonnal ellátott, kész csomagként is elérhető:
- Mac: nyisd meg a Kontor-<verzió>-Mac.zip fájlt, húzd a «Kontor»-t az «Alkalmazások»
  mappába, és kattints rá duplán. Apple Siliconon és Intelen fut (macOS 11-től).
  Első megnyitáskor a macOS jelzi, hogy a fejlesztő nincs ellenőrizve:
  Rendszerbeállítások › Adatvédelem és biztonság › «Megnyitás mindenképp».
- Windows 10/11: kattints duplán a Kontor-<verzió>-Setup.exe fájlra. Ha megjelenik
  «A Windows megvédte a számítógépet»: «További információ» › «Futtatás mindenképp».
  Rendszergazdai jogok nélkül települ ide: %LOCALAPPDATA%\Programs\Kontor,
  parancsikonnal az asztalon, a Start menüben és bejegyzéssel az «Alkalmazások» alatt.
A telepített verzió adatai a programtól elkülönítve vannak, és frissítéskor, valamint
eltávolításkor is megmaradnak:
  Mac:     ~/Library/Application Support/Kontor/daten
  Windows: %LOCALAPPDATA%\Kontor\daten
Frissítés: egyszerűen telepítsd az új verziót a régire (előtte lépj ki a Kontorból).

TELEPÍTÉS MACRE (egyszer)
-------------------------
1. Tedd a «Kontor» mappát a saját felhasználói mappádba
   (Finder > Ugrás > Saját mappa, vagy ⇧⌘H) – pl. /Users/neved/Kontor.
   FONTOS: ne a Dokumentumok, Asztal, Letöltések vagy iCloud Drive mappába.
   Ezeket a macOS zárolja az alkalmazások elől («Operation not permitted»).
   Ha a mappa mégis ott van, a «Kontor» alkalmazás felajánlja az áthelyezését.
2. Ellenőrizd, hogy van-e Python 3:
   nyisd meg a Terminált (Alkalmazások > Segédprogramok > Terminál), és írd be:
       python3 --version
   Ha megjelenik a «Parancssori fejlesztőeszközök telepítése» ablak, kattints a
   «Telepítés» gombra, és várj. Ezután minden kész.


WINDOWS (Windows 10 és 11)
--------------------------
1. Kicsomagolás előtt oldd fel a ZIP-fájl tiltását: jobb klikk > Tulajdonságok >
   lent jelöld be a «Tiltás feloldása» lehetőséget > OK. Különben a Windows minden
   indításkor figyelmeztet.
2. Csomagold ki a «Kontor» mappát a felhasználói mappádba, azaz
   C:\Users\neved\Kontor. Ne OneDrive-ba, Dropboxba vagy más szinkronizált mappába:
   az adatbázis nem viseli el a szinkronizálást.
3. Kattints duplán a «Kontor einrichten (Windows).bat» fájlra.
   - Ha nincs Python, megnyílik a python.org. Telepítsd a Pythont, és lent jelöld be:
     «Add python.exe to PATH». Utána kattints rá újra duplán.
   - Ha megjelenik «A Windows megvédte a számítógépet»: «További információ» >
     «Futtatás mindenképp».
   A beállítás létrehozza a «Kontor» parancsikont az asztalon és a Start menüben,
   és elindítja a Kontort.
4. Ha a Windows tűzfal a «Python» miatt kérdez: «Hozzáférés engedélyezése»
   magánhálózatokhoz. Így a Kontor táblagépen és telefonon is elérhető a Wi-Fi-n.
Ezután elég duplán kattintani az asztalon a «Kontor» ikonra (fekete ablak nélkül).
A «Kontor starten (Windows).bat» látható ablakkal indítja a Kontort – hasznos, ha
valami nem működik. Az üzenetek a kontor.log fájlba kerülnek.
Billentyűparancsok Windowson: ⌘ helyett Ctrl (Ctrl+K keresés, Ctrl+S mentés).

Adatok átvétele Macről: lépj ki a Kontorból a Macen, másold ki a «daten» mappát a
Kontor mappából (pl. USB-kulcsra), és tedd a Windows-PC Kontor mappájába (cseréld le
a meglévő «daten» mappát). Képekkel, mentésekkel és katalógussal együtt. Ne dolgozzon
egyszerre mindkét számítógép ugyanazokkal az adatokkal – különben elvesznek változások.


INDÍTÁS (macOS)
---------------
Kattints duplán a «Kontor» alkalmazásra (narancssárga K).
A Kontor a háttérben indul, és a böngészőben nyílik meg – Terminál-ablak nélkül.
Ha a Kontor már fut, egy újabb kattintás csak a böngészőablakot nyitja meg.

Indítógomb az asztalra:
- Húzd a «Kontor» alkalmazást a Kontor mappából az asztalra az Option és a Command
  billentyű (⌥⌘) lenyomása mellett. Így álnév jön létre.
- Vagy húzd az alkalmazást közvetlenül az asztalra vagy a Dockba. Magától megtalálja
  a Kontor mappát; ha nem, egyszer rákérdez.

A legelső indításkor a macOS jelzi, hogy az alkalmazás nem ellenőrzött fejlesztőtől
származik. Ilyenkor:
   jobb klikk (vagy Ctrl-klikk) a «Kontor»-ra > Megnyitás > Megnyitás.
Újabb macOS-verzióknál ehelyett: Rendszerbeállítások > Adatvédelem és biztonság >
legalul a «Kontor» mellett «Megnyitás mindenképp».
Erre csak egyszer van szükség.

Indíthatod a korábbiak szerint is a «Kontor starten.command» fájllal
(Terminál-ablakkal) vagy a Terminálban:
       cd ~/Kontor
       python3 server.py

Cím a böngészőben:  http://localhost:8765


IPADEN ÉS IPHONE-ON
-------------------
A Kontor a saját Wi-Fi-hálózatodon iPaden és iPhone-on is elérhető. A címet és egy
beolvasható QR-kódot a «Cég és adatok» › «iPaden és iPhone-on» alatt találod.
A Safariban a «Megosztás › Főképernyőhöz adás» ikont hoz létre.
- A Kontort futtató számítógépnek bekapcsolva kell lennie, és a Kontornak futnia kell.
- Ha a macOS megkérdezi, fogadhat-e a «Python» bejövő kapcsolatokat: «Engedélyezés».
- Az azonos Wi-Fi-n lévő összes eszköz megnyithatja a Kontort. Csak saját, védett
  Wi-Fi-n használd. A Kontorból csak azon a számítógépen lehet kilépni, amelyen fut.
- Ha csak ezen a számítógépen legyen elérhető: indítsd a Terminálban így:
      KONTOR_NUR_LOKAL=1 python3 server.py

KILÉPÉS
-------
Kattints a Kontor jobb felső sarkában a be/ki szimbólumra > «Kilépés».
(Ha a Kontort a «Kontor starten.command» fájllal indítottad, a Terminál-ablakot is
bezárhatod.)
A szerver üzenetei a Kontor mappában lévő  kontor.log  fájlba kerülnek.


ADATOK ÉS MENTÉS
----------------
- Adatbázis: daten/kontor.db
- Mentések:  daten/sicherungen/  (indításkor naponta egyszer automatikusan,
  valamint a «Cég és adatok > Mentés most» gombbal. Az utolsó 30 megmarad.)
- Külső mentéshez egyszerűen másold a  daten  mappát
  (pl. USB-kulcsra vagy iCloud Drive-ra), lehetőleg a Kontor bezárt állapotában.
  Ez tartalmazza a bizonylatarchívumot (daten/archiv) és a fájlokat (daten/dateien) is.
- Új adatbázis-szerkezettel járó frissítés előtt a Kontor automatikusan
  «…_vor-update.db» mentést készít.
- Visszaállítás: lépj ki a Kontorból, másold a kívánt mentést  daten/kontor.db  néven
  (a régi fájlt előtte nevezd át), indítsd el a Kontort.

Az első indításkor példaadatok töltődnek be. A «Cég és adatok» alatt törölheted őket,
és megadhatod a céged adatait (név, cím, IBAN, ÁFA).


HASZNÁLAT RÖVIDEN
-----------------
- ⌘K           globális keresés (ügyfelek, bizonylatok, megrendelések, anyagok …)
- ⌘S           rekord mentése
- Listák: kattints az oszlopfejlécre a rendezéshez, szűrőmező, CSV-exportálás Excelhez
- Árajánlat > «Átalakítás számlává»
- Megrendelés > «Kész» állapot könyveli a filamentet, az anyagot és a gépórákat
- Megrendelés > «Számla létrehozása» tételként átveszi a nyomtatási időt és az anyagot
  (árak a «Druckzeit» és «Material» kategóriájú termékekből)
- Gép > «Karbantartás elvégezve» nullázza a karbantartási számlálót
- Tekercs > «Mérés» / Anyag > «Készletmozgás» bevételhez, kivételhez, leltárhoz
- Számla/árajánlat > «PDF» vagy «Küldés e-mailben» (megnyitja az Apple Mailt)
- Minden változás naplózódik az «Előzmények» fülön

NYELVEK (NÉMET, ANGOL, FRANCIA, MAGYAR)
---------------------------------------
- Képernyő: kattints jobbra fent a nyelvkódra (DE/EN/FR/HU). A választás
  felhasználónként (bejelentkezéssel), illetve erre a Kontorra (bejelentkezés nélkül)
  érvényes.
- Bizonylatok és e-mailek: az ügyfélnél a «Kapcsolat» › «Nyelv» alatt (illetve a
  beszállítónál a rendelésekhez). A «Cég alapértelmezése» a «Cég és adatok» ›
  «Ország, pénznem és adó» alatti «A bizonylatok nyelve» beállítást használja.
  Az árajánlatok, számlák, jóváíró számlák, fizetési felszólítások, szállítólevelek,
  megrendelés-visszaigazolások és a javasolt e-mail-szövegek ezután ezen a nyelven
  jelennek meg. A svájci QR-fizetési rész a szabvány szerint német, francia vagy angol
  nyelvű (magyar esetén angol).
- A saját szövegeid (tételek, megjegyzések, módosított felszólító és szállítási
  szövegek) úgy maradnak, ahogy megírtad őket. A változatlanul hagyott alapszövegeket
  a Kontor automatikusan lefordítja.
- A már véglegesített számlák az archívumban eredeti nyelvükön maradnak
  (megváltoztathatatlanok).


NYOMTATÓK: A BETÖLTÖTT FILAMENT LEKÉRDEZÉSE
-------------------------------------------
A Kontor közvetlenül a helyi hálózaton kérdezi le a nyomtatóidat (felhő nélkül), és
helyenként mutatja az anyagot, a színt, a gyártót és a maradék mennyiséget – valamint
azt, hogy a raktáradból melyik anyag illik hozzá.
Beállítás a varázslóval: Gépek > gép megnyitása > Részletek >
«Hálózati nyomtató» > «Nyomtató beállítása» (vagy a nyomtatókártyán a fogaskerék,
illetve «Hálózat beállítása»).
  1. Válaszd ki a gyártót: Bambu Lab, Prusa, Creality, Anycubic, Snapmaker,
     Elegoo, Qidi, Sovol, Voron/Klipper, OctoPrint vagy «Más gyártó».
  2. Válaszd ki a modellt. A Kontor megmutatja, hogyan csatlakozik a nyomtató, és
     honnan származik a nyomtatás utáni fogyasztás.
  3. Kapcsolat: csak a modellhez szükséges mezőket töltsd ki – megjegyzéssel, hogy
     hol találod az értéket a nyomtatón. A «Kapcsolat tesztelése» azonnal lekérdezi a
     nyomtatót, a «Mentés» átveszi a gyártót, a modellt és a hozzáférést.
Mi kell gyártónként:
  Bambu Lab (X1, P1, P2S, A1, H2): IP-cím, LAN-hozzáférési kód, sorozatszám.
      Aktuális firmware esetén kapcsold be a nyomtatón a «LAN Only» és a «Fejlesztői
      mód» beállítást – a nyomtató ekkor már nem kapcsolódik a Bambu-felhőhöz
      (a Bambu Handy / távoli hozzáférés ezalatt nem működik).
  Prusa (Core One, MK4/S, MK3.9, XL, MINI+): PrusaLink. IP-cím és jelszó (a
      nyomtatón: Beállítások > Hálózat > PrusaLink), felhasználó általában «maker».
      MK3S+ Raspberry Pi-vel: hagyd üresen a felhasználót, és írd a jelszómezőbe
      az API-kulcsot.
  Creality (K2, K1, Creality OS): csak IP-cím.
  Anycubic (Kobra S1, S1 Max, Kobra 3): IP-cím, a nyomtatón bekapcsolt LAN mód.
  Snapmaker U1: IP-cím, API-kulcs csak bekapcsolt bejelentkezés esetén.
  Klipper/Moonraker (Elegoo Neptune 4, Qidi, Sovol, Voron, rootolt Creality):
      IP-cím, a 7125-ös portot a Kontor automatikusan használja.
  OctoPrint: cím és API-kulcs (OctoPrint > Beállítások > API).
A titkos adatok (hozzáférési kód, jelszó) csak a helyi adatbázisban maradnak.
Hálózati csatlakozás nélküli nyomtatóknál válaszd a «Hálózati lekérdezés nélkül»
lehetőséget – a nyomtatások ekkor kézzel könyvelődnek.
A géplistában az «Az összes nyomtató filamentjének lekérdezése» egyszerre kérdezi le az
összeset.
A talált helyeket a Kontor a tekercseidhez rendeli (azonos anyag, hasonló szín). A
«Betöltés nyomtatóba» funkcióval pontosan ehhez a helyhez rendelt tekercs mindig
elsőbbséget élvez. Ha nincs illő tekercs: «Létrehozás tekercsként».
A nyomtatók protokolljai nincsenek hivatalosan dokumentálva. Ha valami nem működik, a
«Nyers adatok» megmutatja, mit küldött a nyomtató – ezek nem tartalmaznak jelszavakat,
és segítenek a hibakeresésben.

FOGYASZTÁS NYOMTATÁS UTÁN (Nyomtatások és fogyasztás)
-----------------------------------------------------
A Kontor felismeri a befejezett nyomtatásokat, és javasolja, melyik tekercsből mennyi
filamentet vonjon le. Könyvelés csak a megerősítésed után történik.
- Automatikusan működik minden, a varázslóval beállított nyomtatónál (lásd fent).
- Ha egy nyomtatás elkészült, jobbra lent megjelenik a «Nyomtatás befejezve», valamint
  jelzés a navigációban a «Nyomtatások és fogyasztás» mellett és a nyomtatókártyán.
- A «Fogyasztás megerősítése» tekercsenként mutatja a hozzárendelt anyagot és a
  mennyiséget grammban. Az anyag és a mennyiség módosítható, további sorok adhatók
  hozzá. A «Könyvelés» levonja a mennyiségeket a raktárból, az «Elvetés» nem.
- Opcionálisan megrendeléshez rendelhető: ekkor a megrendelés átveszi a mért
  mennyiséget és nyomtatási időt, és lezáráskor nem von le újra.
- A nyomtatási idő jóváírható a gép üzemóráihoz.
- Honnan származnak a mennyiségek:
    Snapmaker U1: a nyomtatási előzményekből és a nyomtatási fájl szeletelőadataiból
      (gramm fúvókánként). Azok a nyomtatások is, amelyek a Kontor bezárt
      állapotában futottak.
    Creality K2: a nyomtatási előzményekből (ha a nyomtató kínálja), egyébként a
      felhasznált filamenthosszból. Ehhez a Kontor nyomtatás közben megjegyzi, melyik
      CFS-helyről nyomtat éppen – a Kontornak nyomtatás közben futnia kell.
    Anycubic: a felhasznált filamenthosszból, ACE-helyenként – a Kontornak nyomtatás
      közben futnia kell.
    Bambu Lab: a nyomtatón lévő nyomtatási fájlból (gramm filamentenként),
      AMS-helyenként. Ha ez nem működik, add meg kézzel a mennyiséget.
    Klipper/Moonraker: mint a Snapmakernél, előzményekből és szeletelőadatokból.
    Prusa / OctoPrint: a szeletelőadatokból vagy a nyomtatási fájl filamenthosszából –
      a Kontornak nyomtatás közben futnia kell.
    A megszakított nyomtatások arányosan számolódnak.
- Hálózat nélküli nyomtatók: gép megnyitása > «Nyomtatás könyvelése»
  vagy a «Nyomtatások és fogyasztás» alatt > «Nyomtatás kézi könyvelése».
- Be- és kikapcsolás, valamint az ellenőrzési intervallum: «Cég és adatok» >
  «Nyomtatásfigyelő».
- A legelső ellenőrzéskor a Kontor csak megjegyzi az állapotot. A régebbi
  nyomtatásokat utólag nem javasolja.

ÉVES ZÁRÁS
----------
Navigáció > Pénzügyek > «Éves zárás»: bevétel-kiadás kimutatás vagyoni helyzettel
CHF 500 000 alatti árbevételű egyéni vállalkozások számára (svájci OR 957. cikk).
Svájcon kívül egyeztesd az adótanácsadóddal, hogy ez elegendő-e.
- Válaszd ki az évet és a bevétel számításának módját: «befizetés szerint» (a számla
  «Fizetés dátuma») vagy «számladátum szerint».
- Bevételek termékkategóriánként, kiadások kategóriánként, értékcsökkenés,
  nyereség vagy veszteség, havi alakulás.
- Értékcsökkenés: add meg a gépnél a beszerzési árat, az üzembe helyezést, a módszert
  (degresszív/lineáris) és a kulcsot (szokásos: 40 % degresszív vagy 20 % lineáris
  termelési célú gépeknél). A vásárlást «Beruházások» kategóriájú kiadásként
  rögzítsd – így nem ráfordításként számít, hanem értékcsökkenésen keresztül.
- Vagyoni helyzet 12.31-én: a nyitott számlákat, a filamentkészletet és a gépek könyv
  szerinti értékét a Kontor számolja; a bankot/pénztárt és a nyitott szállítói
  számlákat te adod meg.
- ÁFA (ha alany vagy): értékek negyedévente/félévente/évente a svájci ESTV-nyomtatvány
  soraival (tényleges módszer) vagy átalányadókulccsal.
- «Éves beszámoló (PDF)» az adóbevalláshoz (eredménykimutatás, értékcsökkenés,
  vagyoni helyzet, ÁFA, napló) és «Napló (CSV)» Excelhez vagy a könyvelőnek.
- A «Megjelölés fizetettként» beállítja a számlák «Fizetés dátuma» mezőjét; ez a
  számlában módosítható.
A Kontor nem helyettesíti a könyvelőt – kétség esetén kérdezd az adóhivatalt.

KÖRLEVÉL
--------
Navigáció > Értékesítés > «Körlevél»: egy e-mail több ügyfélnek.
- Címzettek kiválasztása: szűrők (csak aktívak, nyitott számlával, aktív az elmúlt
  hónapokban, keresés) és pipa ügyfelenként. Az érvényes e-mail-cím nélküli, vagy
  «Kap körleveleket» = ki beállítású ügyfelek kimaradnak.
- Tárgy és szöveg helyőrzőkkel: {anrede}, {name}, {firma}, {ort}.
  {anrede} = az ügyfél «Levélbeli megszólítása», egyébként «Jó napot» + kapcsolattartó
  (az ügyfél nyelvén).
- Opcionálisan melléklet (legfeljebb 10 MB) és leiratkozási megjegyzés a végén.
- «Küldés»: a Kontor mindenkinek saját e-mailt küld a postafiókodon keresztül.
  Egyszer kell beállítani a «Cég és adatok» > «E-mail-küldés» alatt (szerver, port,
  felhasználó, jelszó – Gmailnél és iCloudnál alkalmazásjelszó), majd «Tesztlevél
  küldése». A jelszó ezen a számítógépen marad.
- Beállítás nélkül: «Megnyitás a levelezőprogramban (titkos másolat)» vagy
  «Címek másolása».
- Az «Elküldött körlevelek» alatt látható, kinek ment ki a levél, és mely címeket
  utasította el a levelezőszerver. Az ügyfél előzményeiben is szerepel.
Megjegyzés: reklámleveleket csak olyan ügyfeleknek küldj, akik számíthatnak rá, és
tartsd tiszteletben a leiratkozásokat (kapcsold ki az ügyfélnél a «Kap körleveleket»).

KALKULÁCIÓ ÉS ÜGYFÉLKEDVEZMÉNY
------------------------------
Nyisd meg a megrendelést > «Kalkuláció» fül (vagy a «Kalkuláció» gomb).
- Költségtételek be- és kikapcsolása: anyag, áram, kopás, munkaidő, utómunka,
  szállítás, valamint «Egyéb költségek» (csomagolás, tartozékok …).
- Haszonkulcs százalékban; az «Árrés elrejtése» szétosztja az árajánlat és a számla
  tételei között, különben külön tételként jelenik meg.
- Kedvezmény: add meg az ügyfélnél a «Feltételek» alatt az alapkedvezményt. Az új
  megrendelések átveszik, a megrendelésben módosítható.
- Jobb oldalon: önköltség, árrés, kedvezmény, szállítás, nettó ár, ÁFA, összesen és
  darabár. Az «Árajánlat létrehozása» / «Számla létrehozása» tételként veszi át a
  kalkulációt.
- Szükséges: az anyagnál a kg-onkénti beszerzési ár; a gépnél a «Kalkuláció» alatt
  a teljesítményfelvétel (W), a beszerzési ár és az élettartam (ó).
- Áramár, óradíjak, alapárrés, munkaidő és szállítás: «Cég és adatok» > «Kalkuláció».

KARBANTARTÁS
------------
A «Karbantartás» alatt (navigáció) és minden gép «Karbantartás» fülén.
- Vedd át a gyártók karbantartási terveit: Creality K2 / K2 Pro / K2 Plus,
  Anycubic Kobra S1 / S1 Max, Snapmaker U1 és egy általános FDM-terv.
  Minden feladatnak napokban, nyomtatási órákban és/vagy kg filamentben megadott
  intervallumai vannak – amelyik előbb teljesül, az teszi esedékessé. A «Javaslat»
  azt jelenti: a gyártó nem ad meg fix intervallumot, a Kontor javasol egyet.
- Átvételkor válaszd: «Ma» (az intervallumok most kezdődnek) vagy «Ismeretlen»
  (minden azonnal esedékes).
- «Karbantartás rögzítése»: jelöld be az elvégzett munkákat (az esedékesek előre ki
  vannak jelölve), add meg az egyéb munkát, a dátumot, a megjegyzést és a költséget.
  Minden a karbantartási naplóba kerül.
- A feladatok szerkeszthetők, szüneteltethetők, törölhetők, vagy magad is
  létrehozhatsz feladatokat.
- A nyomtatási órák a gép üzemóráin keresztül, a filament a gép könyvelt
  nyomtatásain és megrendelésein keresztül számolódik.
- Az esedékes karbantartások megjelennek a navigációban, a nyomtatókártyán és az
  áttekintésben a «Teendő» alatt.

KÉPEK GÉPEKHEZ, TEKERCSEKHEZ ÉS ANYAGOKHOZ
-----------------------------------------
Nyisd meg a gépet, tekercset vagy anyagot > Részletek > «Kép» terület:
- kattints, és válassz fotót, húzz be egy képet, vagy illessz be egy másolt képet
  ⌘V-vel (pl. a böngészőben jobb klikk egy termékfotóra > «Kép másolása»).
- A Kontor legfeljebb 1000 pixelre kicsinyíti a képet, és a daten/bilder/ mappába
  menti. Aki a «daten» mappát menti, a képeket is menti.
A gépfotók a nyomtatókártyákon és a «Nyomtatók élőben» nézetben, a tekercsfotók a
tekercslistában és a nyomtatóba betöltött tekercseknél jelennek meg.

FILAMENTKATALÓGUS
-----------------
A Tekercsek > «Katalógusból» alatt a nyílt SpoolmanDB adatbázis filamentjeit találod
(MIT-licenc, github.com/Donkie/SpoolmanDB).
- Első megnyitáskor kattints a «Katalógus letöltése most» gombra (internet kell).
  A katalógus a  daten/katalog/  mappába kerül, ezután a keresés offline is működik.
  A «Katalógus frissítése» letölti a legújabb változatot.
- Keresés, pl. «Bambu PETG HF Black», vagy szűrés gyártó, anyag és átmérő szerint.
  Egy sorra kattintva átveszi a megnevezést, a gyártót, az anyagot, a színt
  színkóddal, az átmérőt, a tekercs tartalmát, az üres tekercset, a sűrűséget és a
  hőmérsékleteket. A már rögzített filamentek meg vannak jelölve.
- Egy anyag rekordjában a «Átvétel a katalógusból» kitölti a mezőket.
- A készletet, a minimális készletet, az árat és a tárolási helyet magad adod meg. Új
  anyagnál a «Nyitókészlet» mentéskor készletmozgásként rögzül.
- Készletmozgás > «Leltár mérleggel»: mérd le a tekercseket, add meg a súlyt és a
  darabszámot – a Kontor levonja az üres tekercsek súlyát.

CSV-IMPORTÁLÁS
--------------
Ügyfelek, termékek, tekercsek, gépek és kiadások CSV-fájlokból is átvehetők: kattints
a listában a «CSV-importálás» gombra (vagy a «Cég és adatok» alatt).
1. Válaszd ki a fájlt, vagy húzd az ablakba (Excel, Numbers, bexio stb.).
   Az elválasztót (; , tabulátor) és a karakterkészletet a Kontor automatikusan felismeri.
2. Ellenőrizd az oszlopok hozzárendelését. Az ismert oszlopneveket automatikusan,
   minden mást választómezővel rendeli hozzá.
3. Az «Ellenőrzés» megmutatja, hány sor jön létre vagy frissül, és mely soroknak van
   hibája – ekkor még semmi sem mentődik.
4. Az «Importálás» ment. Előtte automatikusan mentés készül.
- Ha a szám (pl. K-1001) már létezik, a rekord frissül, vagy a sor kimarad – a
  beállítástól függően. Az üres cellák semmit sem írnak felül. Szám nélkül a Kontor
  automatikusan újat ad.
- A számok svájci írásmóddal is megadhatók (1'250.50, 12.-, CHF 9.90),
  a dátumok pl. 31.08.2026 vagy 2026-08-31, az igen/nem mezők ja/nein/1/0/x.
- Tekercsek: a «Készlet (g)» készletmozgásként rögzül (nyitókészlet vagy leltár),
  hogy a készletmozgások stimmeljenek.
- Kiadások: a bankszámlakivonatok negatív összegei kiadásként kerülnek át.
- A «Sablon» letölt egy üres CSV-fájlt a megfelelő oszlopokkal.
- A «CSV-exportálás» funkcióval készült lista újra importálható.
Árajánlatok, számlák és megrendelések nem importálhatók CSV-ből.

ORSZÁG, PÉNZNEM ÉS ÁFA (CH, LI, AT, DE, FR, HU)
-----------------------------------------------
Rendszer > «Cég és adatok» > «Ország, pénznem és adó»:
- Ország: Svájc, Liechtenstein, Ausztria, Németország, Franciaország vagy
  Magyarország. Váltáskor a Kontor a pénznemet, az általános adókulcsot és a
  megjegyzést ennek megfelelően javasolja.
- Pénznem: CHF, EUR vagy HUF (forint). Az összegek nem kerülnek átváltásra – a váltás
  a Kontor használatának kezdetére szolgál, nem meglévő könyveléshez.
- Választható kulcsok: CH/LI 8,1 / 2,6 / 3,8 / 0 %, AT 20 / 10 / 13 / 0 %,
  DE 19 / 7 / 0 %, FR 20 / 10 / 5,5 / 2,1 / 0 %, HU 27 / 18 / 5 / 0 %. Az általános
  kulcs az új bizonylatokra érvényes; árajánlatonként, számlánként és kiadásonként
  módosítható.
- A «Megjegyzés 0 % esetén» az adó nélküli bizonylatokon jelenik meg, pl. alanyi
  adómentesség esetén (HU: «Alanyi adómentes», FR: «TVA non applicable, art. 293 B
  du CGI», DE: § 19 UStG, AT: § 6 Abs. 1 Z 27 UStG – előre kitöltve).
- Formátum: CH 1'234.50 CHF (5 rappenre kerekítve), AT/DE 1.234,50 €
  (centre kerekítve), FR/HU 1 234,50 (HUF: egész forintra kerekítve).
  A bizonylatokon az adó neve a nyelvtől függően MWST, USt., MwSt., VAT, TVA vagy ÁFA.
- Fizetés: CH/LI QR-befizetési lapot kap (EUR-ban is lehetséges).
  AT/DE/FR EUR-ban SEPA-átutaláshoz QR-kódot kap (GiroCode), amelyet a banki
  alkalmazások beolvasnak. Ehhez add meg az IBAN-t (és opcionálisan a BIC-et).
  HUF-ban nincs fizetési QR-kód (a számlán az IBAN és a közlemény szerepel).
- AT/DE/FR/HU: a számlák mutatják a teljesítés dátumát (= számla dátuma), a láblécben
  a közösségi adószámot és – ha meg van adva – az adószámot (FR: SIRET, HU: adószám).
- Éves zárás AT/DE: ÁFA havonta vagy negyedévente a bevallás kódjaival
  (DE UStVA 81/86/66, AT U30 022/029/006/060); FR/HU kódok nélkül.
  A bankfájl (camt) és a webshop-importálás csak a beállított pénznemben teljesített
  kifizetéseket veszi át. Az adatok tájékoztató jellegűek – kétség esetén kérdezd az
  adótanácsadódat.

QR-BEFIZETÉSI LAP (SVÁJC)
-------------------------
Minden számla PDF-jének alján megjelenik a svájci QR-fizetési rész nyugtával
(Swiss Payment Standards, 2.0-s verzió). Feltételek a «Cég és adatok» alatt:
- érvényes svájci IBAN (CH…) vagy QR-IBAN
- cégnév, irányítószám és település
Normál IBAN esetén a számlaszámból RF-hivatkozás, QR-IBAN esetén 27 jegyű
QR-hivatkozás készül. Ha hiányzik az ügyfél címe, a «Payable by» mező üresen marad
kitöltésre. A számla előnézete is mutatja a fizetési részt.
Tipp: az első küldés előtt olvass be egy számlát a saját banki alkalmazásoddal, és
ellenőrizd, hogy minden adat helyes-e.


HOZZÁFÉRÉS ÉS FELHASZNÁLÓK (bejelentkezés Wi-Fi-n)
--------------------------------------------------
«Cég és adatok» > «Hozzáférés és felhasználók»:
1. «Felhasználó létrehozása»: felhasználónév, jelszó (legalább 8 karakter), szerepkör.
   Tulajdonos = minden. Munkatárs = pénzügyek, kiadások, kimutatások, éves zárás és
   beállítások nélkül.
2. Kapcsold be a «Bejelentkezés megkövetelése» beállítást.
Ezután az iPadről, iPhone-ról vagy más számítógépről történő minden hozzáféréshez
bejelentkezés kell. Magán a Kontor-számítógépen bejelentkezés nélkül is működik, amíg
a «A Kontor-számítógépen bejelentkezés nélkül» be van kapcsolva. 5 hibás jelszó után az
adott eszközről a bejelentkezés rövid időre zárolódik. Jobbra fent: jelszó módosítása,
kijelentkezés.
Elfelejtett jelszó, és a Kontor-számítógépen is kell bejelentkezni: indítsd a Kontort
egyszer így:  KONTOR_OHNE_LOGIN=1 python3 server.py
(Windows: set KONTOR_OHNE_LOGIN=1 & py server.py), majd a «Hozzáférés és felhasználók»
alatt állíts be új jelszót, és indítsd újra a Kontort a szokásos módon.

SZÁMLÁK: VÉGLEGESÍTÉS, ARCHÍVUM, JÓVÁÍRÁS, SZTORNÓ
--------------------------------------------------
Amint egy számla kikerül a tervezet állapotból («Nyitott» állapot, e-mailben elküldve),
véglegesítődik: a tartalma és a tételei már nem módosíthatók, a PDF ellenőrzőösszeggel
a daten/archiv mappába kerül, és mindig pontosan így adódik ki újra (10 éves megőrzési
kötelezettség, svájci GeBüV).
- Hiba egy nyitott számlában: «Sztornó» – a Kontor sztornó jóváíró számlát készít, a
  számla az archívumban marad.
- Árengedmény, visszavétel, már kifizetett számla: «Jóváíró számla» – tervezetként jön
  létre; módosítsd a tételeket, és állítsd «Nyitott» állapotra. Ezután «Beszámítás
  számlával», vagy a visszafizetés után «Megjelölés kifizetettként». A jóváíró számlák
  csökkentik az árbevételt és az ÁFA-t az éves zárásban.
- Rendszer > «Változásnapló»: minden változás idővel és személlyel. A bejegyzéseket
  ellenőrzőösszegek láncolják össze. A «Sértetlenség ellenőrzése» jelzi az utólag
  módosított bejegyzéseket vagy archív PDF-eket.

KIFIZETÉSEK ÉS BANKFÁJL (camt.054 / camt.053)
--------------------------------------------
Számla megnyitása > «Kifizetés rögzítése» (részfizetés is). A «Kifizetések és
felszólítások» fül mutatja a kifizetéseket, felszólításokat, jóváíró számlákat,
szállítóleveleket és az archívumot.
Együttesen: Számlák > «Bankfájl beolvasása». A netbankban töltsd le a camt.054
jóváírási értesítőt (vagy a camt.053 számlakivonatot) XML- vagy ZIP-formátumban, és
húzd be. A Kontor a QR/RF-hivatkozás, a közleményben szereplő számlaszám vagy az összeg
alapján rendel hozzá. A biztos találatok előre ki vannak jelölve; könyvelés csak a
«Kijelöltek könyvelése» gombbal történik. Ugyanannak a bankfájlnak a kétszeri
beolvasása semmit sem könyvel kétszer.

FIZETÉSI FELSZÓLÍTÁSOK
----------------------
Értékesítés > «Felszólítások kezelése» listázza a lejárt számlákat a következő
szinttel: fizetési emlékeztető (10 nappal az esedékesség után, díj nélkül),
1. felszólítás (+14 nap, CHF 20), 2. felszólítás (+14 nap, CHF 30). Szintek, díjak,
határidők és szövegek a «Felszólítási szintek és szövegek» alatt. Az esedékesek előre
ki vannak jelölve.
A «Felszólítások PDF-ként» nyomtatáshoz összesített PDF-et készít, a «Küldés
e-mailben» minden felszólítást PDF-fel küld el a postafiókodon keresztül. Minden
felszólítás QR-befizetési lapot tartalmaz (nyitott összeg + díj) ugyanazzal a
hivatkozással – így a bankfájl beolvasásakor a kifizetés újra a számlához rendelődik.
Ügyfelek vagy számlák a «Ne küldjön felszólítást» beállítással zárolhatók.
Megjegyzés: felszólítási díjat és késedelmi kamatot csak megállapodás esetén követelj.

FÁJLOK ÉS 3D-MODELLEK
---------------------
Megrendelés > «Fájlok» fül: húzz be STL-, 3MF-, OBJ-, G-kód-, «.gcode.3mf» és bármilyen
más fájlt. Azonos fájlnév = új verzió. A Kontor forgatható 3D-előnézetet (3MF esetén
a bélyegképet is), méreteket és térfogatot mutat.
G-kódból, illetve «.gcode.3mf» fájlból (Bambu Studio, OrcaSlicer, PrusaSlicer, Cura) a
Kontor kiolvassa a szeletelő grammjait és nyomtatási idejét. Az «Értékek átvétele»
beállítja a megrendelés anyagszükségletét és nyomtatási idejét. Fájlok termékekhez,
modellekhez és kiadásokhoz (nyugták) is. Tárolás a daten/dateien mappában.

ÁRAJÁNLAT 3D-FÁJLBÓL
--------------------
Árajánlatok (vagy megrendelések) > «3D-fájlból»: válassz ügyfelet, húzd be a fájlt,
állítsd be az anyagot, a nyomtatót, a darabszámot, a kitöltést, a falvastagságot és a
támaszokat. A Kontor megbecsüli a grammokat és a nyomtatási időt, és azonnal mutatja az
árat és az önköltséget a kalkulációd alapján. A «Megrendelés és árajánlat létrehozása»
mindkettőt létrehozza.
Az STL/3MF/OBJ alapú becslés általában ±30 %-on belül van. Pontos a szeletelőben
készült «.gcode.3mf» vagy G-kód fájllal lesz. A nyomtatási idő a nyomtató
«Nyomtatási teljesítményétől» függ (Gép > Üzemeltetés és karbantartás, mm³/s-ban) –
saját értékekkel finomhangolható.

UTÓKALKULÁCIÓ ÉS KIMUTATÁSOK
----------------------------
Megrendelés > «Utókalkuláció» fül: terv kontra tény az anyagra, a nyomtatási időre és
az önköltségre, az árbevételre és a fedezeti hozzájárulásra. A tényleges értékek a
megrendelés könyvelt nyomtatásaiból származnak (a hibás nyomtatásokkal együtt); a
tényleges munkaidőt a megrendelésben adod meg.
Pénzügyek > «Kimutatások»: egy év összes lezárt megrendelése, fedezeti hozzájárulás
ügyfelenként, anyagonként és nyomtatónként, valamint a selejtelemzés.

HIBÁS NYOMTATÁSOK ÉS SELEJT
---------------------------
A fogyasztás megerősítésekor jelöld be a «Hibás nyomtatás / selejt» lehetőséget, és
válaszd ki az okot (megszakított nyomtatásnál előre ki van jelölve). Az anyag levonódik
a raktárból, a költségek (anyag, áram, kopás) kiszámítódnak. Kimutatások > «Selejt»
mutatja az arányt nyomtatónként és anyagonként, valamint a leggyakoribb okokat.

NYOMTATÁSTERVEZÉS
-----------------
Gyártás > «Nyomtatástervezés»: idővonal nyomtatónként az összes tervezett, jóváhagyott
és futó megrendeléssel, egymás után, mostantól. A futó nyomtatást (Nyomtatók élőben) a
Kontor figyelembe veszi. A sávok húzása módosítja a sorrendet vagy a nyomtatót, egy
kattintás megnyitja a megrendelést. Piros = a határidő nem tartható.
«Munkaidők»: mikor indulhatnak nyomtatások, futhatnak-e éjszaka, és mennyi a szünet
két nyomtatás között.

TEKERCSEK ÉS QR-CÍMKÉK
----------------------
Gyártás > «Tekercsek»: minden bejegyzés egy-egy filamenttekercs (vagy gyantás palack)
számmal, tartalommal és maradékkal. Azonos fajta (gyártó, anyag/típus, szín) több
tekercse több bejegyzés; az «Ez a fajta» mutatja a teljes készletet. A minimális készlet
fajtánként érvényes.
- «Tekercs rögzítése» vagy «Katalógusból»; a «További tekercsek» másolatokat hoz létre.
- A nyomtatások fogyasztása először az ebbe a nyomtatóba betöltött tekercsből vonódik
  le. Ha az nem elég, a maradék egy azonos fajtájú másik tekercsre megy; az üres
  tekercset a Kontor automatikusan kiveszi.
- «Mérés»: add meg a bruttó súlyt, a Kontor levonja az üres tekercset.
  «Maradék javítása», «Betöltés nyomtatóba», «Elfogyott».
- Lista: az «Üresek nélkül» elrejti az elfogyott tekercseket, a «Csak a fogyóban lévő
  fajták» mutatja, mit kell utánrendelni.
«Címkék nyomtatása»: A4-es ív 3 × 8 (70 × 37 mm, pl. Avery Zweckform 3475) vagy
végtelenített címke 62 × 29 mm (Brother QL). A QR-kód megnyitja a tekercset a
Kontorban – olvasd be iPhone-kamerával ugyanazon a Wi-Fi-n, majd mérd le, töltsd be,
vagy jelöld üresként. A QR-ben lévő cím: «Cég és adatok» > «Kontor-cím a QR-hez»
(üres = ennek a számítógépnek a Wi-Fi-címe).

ANYAG (VÁSÁROLT: LED-EK, MÁGNESEK, MENETES BETÉTEK …)
-----------------------------------------------------
Gyártás > «Anyag»: minden, ami a filamenten kívül beépül egy termékbe – pl.
LED-szalagok, LED-modulok, mágnesek, csavarok, menetes betétek, csomagolás.
Anyagonként: kategória, egység (db, m, g, csomag …), készlet, minimális készlet,
beszerzési ár, beszállító, rendelési szám, tárolási hely, kép.
- «Készletmozgás» bevételhez, kivételhez vagy leltárhoz; «Mozgások» fül.
- Darabjegyzék: a megrendelésben (Részletek, lent) és a termékben add hozzá az anyagot,
  és add meg a mennyiséget. A költségek a kalkulációban «Anyag (vásárolt)» néven
  jelennek meg. A megrendelés lezárásakor (Kész) az anyag kikönyvelődik a raktárból;
  ezután a darabjegyzék zárolt.
- Az «Újragyártás» átveszi a termék darabjegyzékét × darabszám.
- A minimális készlet alatti anyag megjelenik az áttekintésben és a rendelési
  javaslatokban (Beszerzés).

PRÓBAVERZIÓ ÉS LICENCKULCS
--------------------------
A próbaverzió 30 napig fut. Licenckulccsal teljes verzióvá válik – újratelepítés
nélkül; minden adat megmarad.
Aktiválás: kattints jobbra fent a «Próbaverzió · még … nap» feliratra (vagy lejárat
után a zárolt oldalon), illeszd be a kulcsot, «Aktiválás». A «Cég és adatok» alatt
ezután «Teljes verzió · licenc: …» látható. A licenc újratelepítés után is megmarad.

MODELLEK ÉS LICENCEK
--------------------
Törzsadatok > «Modellek és licencek»: modellek forrással (Printables, MakerWorld,
Thingiverse …), tervezővel, licenccel és «Eladás engedélyezett» jelöléssel. A
licenclista a gyakori licenceknél megadja, eladhatók-e a nyomatok (pl. CC BY igen,
CC BY-NC nem, Standard Digital File License csak engedéllyel). Válaszd ki a modellt a
megrendelésben vagy a termékben: nem engedélyezett modelleknél a Kontor figyelmeztet,
és árajánlat vagy számla létrehozása előtt rákérdez. Az adatok tájékoztató jellegűek –
a platform, illetve a tervező feltételei az irányadók.

RAKTÁRI TERMÉKEK (KÉSZ ALKATRÉSZEK)
-----------------------------------
Termék > «Raktár és gyártás» > kapcsold be a «Raktári termékek» beállítást, add meg a
minimális készletet, valamint a darabonkénti anyagot és nyomtatási időt. A készlet
változik:
- számla véglegesítésekor: az ezzel a termékkel rendelkező tételek kikönyvelődnek
  (a sztornó visszakönyvel, a webshop-importálás szintén kikönyvel)
- «Újragyártás»: ügyfél nélküli megrendelést hoz létre; lezáráskor (Kész) a darabszám
  bekönyvelődik
- kézi «Készletmozgás»

BESZERZÉS
---------
Beszerzés > Rendelési javaslatok: a minimális készlet alatti filament (fajtánként),
anyag és alkatrész
(készlet − lefoglalt + már megrendelt), a duplájára feltöltve.
A «Rendelések létrehozása» beszállítónként egy rendelést hoz létre. A rendelésben: PDF,
rendelés e-mailben, «Áruátvétel könyvelése» – a filament új tekercsekként jön létre, az
anyag és az alkatrészek bekönyvelődnek, és opcionálisan a kiadás is azonnal létrejön.
A tekercsnél, illetve az anyagnál add meg a «Beszállító», «Rendelési szám» és
«Minimális rendelési mennyiség» mezőt. Az alkatrészek (fúvókák, tálcák, szíjak …) a
«Karbantartás rögzítése» során felhasználtként kikönyvelhetők.

SZÁLLÍTÁS ÉS WEBSHOP-RENDELÉSEK
-------------------------------
Számla > «Szállítólevél» vagy Értékesítés > «Szállítás» > «Szállítólevél létrehozása».
A küldeményben: szállítási mód, küldeményszám, szállítólevél-PDF, címcímke
(A6 vagy 62 mm) és «Ügyfél értesítése» (e-mail nyomkövetéssel és szállítólevéllel).
Árajánlat > «Megrendelés-visszaigazolás» elkészíti hozzá a PDF-et.
A svájci posta vonalkódos szállítási címkéihez üzleti ügyfél-hozzáférés kell – a Kontor
kinyomtatja a címcímkét, a bérmentesítést a postán veszed meg.
Webshop-rendelések: Számlák > «Webshop-rendelések». Húzd be a Shopify (Rendelések >
Exportálás), Etsy (rendelt tételek) vagy WooCommerce CSV-exportját. Minden rendelésből
kifizetett számla lesz (bolti árak ÁFÁ-val), igény szerint megrendelés is. Az új ügyfelek
létrejönnek, az SKU = cikkszám kikönyveli a raktári termékeket. A cég pénznemétől eltérő
pénznemű rendelések kimaradnak. A Kontor felismeri a duplikált rendeléseket.

EXPORTÁLÁS A KÖNYVELŐNEK
------------------------
Pénzügyek > Éves zárás > legalul:
- «Csomag (ZIP)»: éves beszámoló (PDF), könyvelési napló Bananához (TXT) és CSV-ként,
  az összes archivált számla, jóváíró számla, felszólítás és a kiadásokhoz csatolt
  bizonylatok, valamint egy magyarázat.
- «Banana (TXT)»: Banana > Műveletek > Importálás a könyvelésbe > Könyvelések >
  szövegfájl oszlopfejlécekkel.
- «Főkönyvi számlák»: számlaszámok a svájci KKV-számlatükör szerint (bank 1020,
  vevők 1100, árbevétel 3000, anyag 4000 …) és ÁFA-kódok (V81, M81, I81) – egyeztesd a
  könyvelőd számlatükrével.

TECHNIKA
--------
server.py          webszerver és adatbázis-logika (csak a Python standard könyvtára)
kontor_pdf.py      PDF-készítés árajánlatokhoz és számlákhoz
kontor_qr.py       QR-kód és svájci QR-számla
kontor_i18n.py     nyelvek: PDF-ek és e-mailek fordítása (szótárak az app/i18n/ mappában)
kontor_land.py     ország, pénznem, adókulcsok (CH, LI, AT, DE, FR, HU)
app/index.html     felhasználói felület
app/kontor2.js     felhasználói felület: bővítmények
Port módosítása:   KONTOR_PORT=9000 python3 server.py   (Windows: set KONTOR_PORT=9000 & py server.py)
