Pāriet uz galveno saturu

AI radīts rēķinu pārvaldības rīks mazajiem uzņēmumiem Latvijā

rēķinu pārvaldnieka panelis ar statistiku -dashboard

Rēķinu pārvaldnieka statistikas panelis

Rēķinu pārvaldnieka - rēķinu saraksts

Rēķinu pārvaldnieks - rēķinu saraksts

rēķinu pārvaldnieka iestatījumu sadaļa

Rēķinu pārvaldnieka iestatījumu sadaļa

NC Invoice Manager (Rēķinu pārvaldnieks) ir mūsdienīgs, viegls un autonoms rēķinu pārvaldības rīks, kas izstrādāts speciāli mazo uzņēmumu un individuālo komersantu vajadzībām Latvijā. Tā ir praktiska alternatīva Swedbank bezmaksas rēķinu sistēmai — programmu var palaist no datora un izmantot rēķinu sagatavošanai pārlūkā.

Kāpēc radās šis rīks?

Jau daudzus gadus rēķinu izrakstīšanai izmantoju Swedbank bezmaksas rēķinus. Kad pagājušā gada decembrī šo pakalpojumu slēdza, man bija jāmeklē jauna sistēma. Banka ieteica citu risinājumu, kur bez maksas varēja izveidot tikai vienu rēķinu mēnesī. Tā kā man mēnesī mēdz būt līdz 5 rēķiniem, sapratu, ka man tas neder.

Ir teiciens — necessity is the mother of invention (nepieciešamība ir izgudrojumu māte). Es pajautāju AI, lai uztaisa man rēķinu pārvaldnieku. Man pašam prasības bija ļoti minimālas, bet, kad padalījos Facebook ar savu projektu, cilvēki sāka prasīt papildu funkcijas: strukturētos e-rēķinus un EDS integrāciju. Tāpēc nācās nedaudz pamocīties un iegādāties papildu Google AI abonementu. Vislabāk man palīdzēja jaunā Gemini 3.1 Pro versijas iznākšana. Var teikt, ka šis modelis ir ļoti līdzīgs vai pat labāks par Claude Sonnet/Opus, bet galvenais — lētāks. Rezultātā izdevās veiksmīgi pabeigt projektu!

Sistēma tagad atbalsta rēķinu pārsūtīšanu uz EDS (kā automātiski, tā manuāli). Lai pilnībā nofinišētu projektu (jo man pašam pietika arī ar minimālo funkcionalitāti), man ir nepieciešama cilvēku atpakaļsaite.

Tagad rīks ir pieejams arī kā pilnvērtīga Windows instalācijas pakotne (Setup.exe) ar Desktop/Start ikonu un atsevišķu programmas logu. Sistēmas servera daļa joprojām darbojas lokāli uz Jūsu datora fonā, un dati netiek glabāti ārējos serveros.

🛡️ Drošība un Atvērtais kods: Lai nodrošinātu pilnīgu caurspīdīgumu, projekta pirmkods ir izvietots publiski GitHub platformā. Programma darbojas lokāli jūsu datorā un nesūta datus uz ārējiem serveriem.

🐙 Ielādēt no GitHub Windows EXE • Pirmkods • Atveras pārlūkā

✨ Galvenās funkcijas

  • Gudrā klientu meklēšana: integrācija ar Latvijas atvērto datu avotiem ļauj automātiski ielādēt uzņēmuma datus pēc nosaukuma, tai skaitā adresi un pasta indeksu (LV-XXXX).
  • Strukturētie e-rēķini un EDS: iespēja rēķinus pārsūtīt uz EDS gan automātiski, gan manuāli (tai skaitā masveida režīmā no rēķinu saraksta).
  • PDF ģenerēšana: profesionāla izskata rēķini, juridiski korekti un vizuāli tīri (ar latviešu valodas rakstības atbalstu un iebūvētiem fontiem).
  • Google Drive sinhronizācija: iespēja droši glabāt rēķinu PDF kopijas un datubāzes rezerves kopijas savā mākoņkrātuvē.
  • Lietotāju profils un drošība: pieteikšanās sistēma ar iespēju mainīt lietotājvārdu un paroli sadaļā Profils.
  • Statistika un panelis: vizualizēts apgrozījuma pārskats un ātrās darbības ikdienas lietošanai.
  • Pilnīgs privātums: dati paliek Jūsu datorā (izņemot sinhronizāciju ar Jūsu personīgo Google kontu).

🛠️ Tehnoloģiskā bāze (Tech Stack)

  • Backend: FastAPI (Python) + SQLAlchemy ORM — ātrs serveris, API loģika un droša datu apstrāde.
  • Datubāze: SQLite — lokāla un kompakta datu krātuve; Windows versijā aktīvā DB tiek glabāta %APPDATA%\InvoiceManager\invoices.db, lai atjauninājumi neizdzēstu datus.
  • Frontend: Web interfeiss ar HTML5, Vanilla JavaScript un Tailwind CSS vizuālajam noformējumam.
  • PDF dzinējs: ReportLab — PDF ģenerēšana ar pilnu latviešu valodas atbalstu un iebūvētiem fontiem (pāreja no xhtml2pdf).
  • Desktop logs: Microsoft Edge App Mode (native logs) + launcher process ar System Tray ikonu un vienas kopijas (single instance) kontroli.
  • Iepakošana: PyInstaller (EXE izveide) + Inno Setup (pilnas Windows instalācijas pakotnes ģenerēšanai).

📋 Izmaiņu žurnāls (Changelog)

1. Arhitektūra: Pāreja uz Windows EXE
  • FastAPI aplikācija tika pielāgota darbībai kā pašpietiekams Windows EXE risinājums.
  • Pievienots launcher.py, kas startē uvicorn fonā bez melnā termināļa loga.
  • Pievienota System Tray ikona (pulksteņa zonā) ērtākai programmas vadībai.
  • Iebūvēta vienas kopijas kontrole, lai vienlaikus nedarbotos vairākas instances.
2. Datu glabāšana un ceļi
  • Datubāze pārvietota uz lietotāja AppData vidi (%APPDATA%\InvoiceManager\).
  • Tas ļauj droši pārinstalēt vai atjaunināt programmu, nezaudējot rēķinus un klientu datus.
  • Statisko resursu (HTML/CSS) ceļi pielāgoti darbam gan izstrādes režīmā, gan EXE režīmā.
3. PDF ģenerēšanas dzinējs (ReportLab)
  • Notikusi pāreja no xhtml2pdf uz ReportLab.
  • Atrisinātas problēmas ar latviešu valodas diakritiskajām zīmēm un fontiem.
  • PDF izkārtojums precīzāk sakrīt ar sistēmas vizuālo priekšskatījumu.
4. Funkcionalitātes papildinājumi
  • Pievienota pieteikšanās (Login) un lietotāja profila pārvaldība.
  • Pievienots rēķinu apmaksas statusa marķējums (zaļš statuss/apzīmējums).
  • Pievienota datubāzes rezerves kopijas lejupielāde.
  • Pievienota Google Drive integrācija rēķinu un datu dublēšanai.
5. Būvēšanas un izplatīšanas process
  • Izveidots build_exe.py skripts automātiskai EXE sagatavošanai.
  • Izveidota gatava izplatīšanas pakotne dist/NC_Invoice_Manager.zip.
  • Aktuālajā versijā papildus tiek izmantots arī Inno Setup pilna Setup.exe ģenerēšanai.
6. Uzlabojumi (2026-02-18)
  • Klientu kartītē pievienots pasta indeksa lauks postal_code.
  • Autocomplete funkcija tagad nolasa arī indeksu (LV-XXXX) no adrešu reģistra.
  • Salabota SMTP (Gmail) pielikumu sūtīšana, izmantojot pagaidu failus.
  • Uzlabota navigācija ar URL parametriem (?tab=...) — saglabājas aktīvā sadaļa un ērtāk strādā “Atpakaļ”.
7. Koda audits un tīrīšana (2026-02-18)
  • Iztīrīti testa/atkļūdošanas faili, vecie log faili un neizmantotie resursi.
  • Noņemts vecais invoice_pdf.html šablons (aizstāts ar ReportLab PDF ģeneratoru).
  • Attīrīti neizmantotie importi un DEBUG print() izsaukumi.
  • Atjaunināts requirements.txt (noņemts xhtml2pdf, pievienots reportlab).
8. UI uzlabojumi (2026-02-19)
  • Pārkārtota iestatījumu secība (rēķina numerācija, uzņēmuma dati, bankas rekvizīti, logo).
  • Profila sadaļā pievienota lietotājvārda maiņa (ne tikai paroles maiņa).
  • HTML rēķina priekšskatījumā pievienots pasta indekss, lai tas sakristu ar PDF versiju.
  • Noņemts DEV MODE baneris no sākumlapas.

🤖 Kā tas tika radīts (AI Collaboration)

Šis projekts ir izstrādāts cilvēka un mākslīgā intelekta ciešā sadarbībā. Papildus jau minētajam Gemini 3.1 Pro, izstrādē tika piesaistīts arī Antigravity (Google DeepMind koda aģents). Cilvēks definēja biznesa prasības un vizuālo vīziju, savukārt AI aģenti reāllaikā rakstīja kodu, risināja tehniskos izaicinājumus (piemēram, PDF fontu iekļaušanu EXE failos un EDS integrācijas loģiku) un optimizēja sistēmas stabilitāti.

Rezultātā tika izveidots funkcionāls rīks īsā laikā, saglabājot modernu lietojamību un augstu koda kvalitāti. NOTE: šis ir eksperimentāls projekts, kas demonstrē, cik jaudīgus risinājumus iespējams radīt ar modernām AI koda rakstīšanas tehnoloģijām. Pievienojieties GitHub, lai sniegtu atsauksmes!

IMPORTANT

BRĪDINĀJUMS UN ATRUNA: Šī programma ir radīta kā eksperimentāls projekts. Autors to izmanto personīgajām vajadzībām uz sava servera. Windows EXE versija ir izveidota kā paraugs, lai citi varētu to izmēģināt. Programma tiek piedāvāta "kā ir" (as-is) — BEZ jebkāda atbalsta, garantijas vai atbildības par datu drošību vai kļūdām. Lietojiet to uz savu atbildību!

🐙 Ielādēt no GitHub Ieteicams veidot rezerves kopijas (.db)

📄 NC Invoice Manager — Lietošanas instrukcija

🚀 1. Sākam darbu

Kas nepieciešams operētājsistēmai?
Programma ir paredzēta Windows lietotājiem (Windows 10 vai 11). Jums nav jāinstalē Python vai citas palīgprogrammas — viss nepieciešamais ir iekļauts instalācijas failā / relīzē.

Kā "uzinstalēt"?
Tagad programma ir pieejama kā pilnvērtīga Windows instalācijas pakotne:

  1. Lejupielādējiet jaunāko versiju no GitHub "Releases" sadaļas (parasti NC_Invoice_Manager_Setup.exe).
  2. Palaidiet instalācijas failu un izpildiet uzstādīšanas soļus (ja Windows rāda brīdinājumu, izvēlieties "More info" → "Run anyway").
  3. Pēc uzstādīšanas palaidiet programmu no Desktop vai Start izvēlnes ikonas.
  4. Atvērsies atsevišķs programmas logs (lokāls web interfeiss), bet servera daļa fonā darbosies uz localhost.

Pirmā pieteikšanās un Profils:

  • Lietotājs: admin
  • Parole: admin123
  • Drošības dēļ uzreiz nomainiet noklusējuma paroli uz savu kreisās izvēlnes sadaļā 👤 Profils! Šeit Jūs varat nomainīt arī savu lietotājvārdu.

⚙️ 2. Sistēmas iestatījumi (Uzņēmums, E-pasts, VID EDS)

Pirms pirmā rēķina izrakstīšanas dodieties uz sadaļu ⚙️ Iestatījumi. Šī apjomīgā sadaļa tagad ir iedalīta vairākās cilnēs:

  • 🏢 Uzņēmums: Ievadiet sava uzņēmuma pamatdatus: nosaukumu, reģ. Nr., kontus u.c. Šeit varat augšupielādēt arī sava uzņēmuma 🖼️ Logo. Šī informācija tiks automātiski ievietota visos rēķinos, kā arī ir obligāta e-rēķinu un VID EDS darbībai.
  • ✉️ E-pasts: Iestatiet sava e-pasta (SMTP) servera datus. Tas ļaus Jums ērti nosūtīt gatavos rēķinus un PDF failus pa tiešo no sistēmas uz klientu e-pastiem.
  • ☁️ Google Drive: Konfigurējiet OAuth2 pieslēgumu, lai automātiski dublētu PDF rēķinus un datubāzes kopijas Jūsu Google Drive kontā.
  • 🏛️ VID EDS API: Konfigurējiet integrāciju ar Valsts Ieņēmumu Dienestu. Ar saglabātu EDS API atslēgu nosūtiet rēķinus VID ar vienu pogas klikšķi!

Starp citu: Pēc datu ievades Jums nav obligāti jāievada katra lapiņa atsevišķi - sistēma pati atjauninās tikai to, ko Jūs iesniedzāt!

☁️ 3. Google Drive pieslēgšana (Sinhronizācija)

Sinhronizācija ļauj automātiski glabāt PDF rēķinu kopijas un datubāzes rezerves kopijas Jūsu Google Drive mākonī. Tas ir nedaudz tehnisks process, bet nepieciešams tikai vienu reizi:

  1. Izveidojiet Google projektu: dodieties uz Google Cloud Console.
  2. Iespējojiet API: meklēšanas joslā ierakstiet "Google Drive API" un spiediet Enable.
  3. Pieejas atslēgas:
    • Sadaļā Credentials spiediet "Create Credentials" → "OAuth client ID".
    • Izvēlieties "Web application".
    • Laukā Authorized redirect URIs obligāti ierakstiet: http://localhost:8000/api/gdrive/callback
  4. Ievadiet datus programmā:
    • Nokopējiet saņemto Client ID un Client Secret un ielīmējiet tos Iestatījumu ☁️ Google Drive cilnē.
    • Atveriet savu Google Drive mapi, kurā vēlaties glabāt rēķinus. Nokopējiet simbolu virkni no adreses joslas (tas ir Folder ID) un ielīmējiet programmā.
    • Spiediet "PIESLĒGTIES GOOGLE KONTAM" un apstipriniet piekļuvi.

💾 4. Rezerves kopijas (Backup / Export)

Tā kā programma neglabā datus "mākoņos", Jūs esat atbildīgs par savu datu drošību!

Kā saglabāt kopiju?

  1. Rezerves kopijas poga ir pieejama sistēmā (Panelī vai Iestatījumos, atkarībā no versijas/atjauninājuma).
  2. Spiediet pogu "Lejupielādēt DB kopiju" un droši saglabājiet saņemto .db failu savā datorā / flash atmiņā.

Kā atjaunot datus?
Ja nopērkat jaunu datoru vai dati pazūd:

  1. Atveriet mapi %APPDATA%\InvoiceManager\.
  2. Šajā mapē iekopējiet un nomainiet failu invoices.db ar Jūsu izveidoto rezerves failu.

📦 5. Produkti un pakalpojumi (Katalogs)

Lai katru reizi rēķinā nebūtu jāvada viens un tas pats:

  1. Dodieties uz sadaļu 📦 Pakalpojumi.
  2. Spiediet "+ Jauns pakalpojums".
  3. Ievadiet nosaukumu, cenu un mērvienību (stundas, gabali, km).
  4. Gatavojot rēķinu, Jūs varēsiet šos pakalpojumus vienkārši izvēlēties no nolaižamā saraksta.

👤 6. Klienti un automātiskā meklēšana

Programma māk "ielasīt" datus no Latvijas reģistriem:

  1. Dodieties uz 👤 Klienti → "+ Jauns klients".
  2. Laukā "Nosaukums" sāciet rakstīt uzņēmuma nosaukumu.
  3. Izvēlieties atbilstošo uzņēmumu no saraksta — reģistrācijas numurs, juridiskā adrese un pasta indekss (LV-XXXX) aizpildīsies automātiski no Uzņēmumu reģistra / atvērto datu avotiem!

📄 7. Rēķinu veidošana un detalizēta pārvaldība

Izveide:

  1. Sadaļā 📄 Rēķini spiediet "+ Jauns rēķins".
  2. Izvēlieties klientu un pievienojiet pozīcijas no sava kataloga vai ierakstiet manuāli. Sarakstā automātiski norādīsies summas bez un ar PVN atkarībā no norādītās PVN likmes.

Ikonas un to darbības:

  • 👁️ Acs ikona: Apskatīt rēķinu HTML formātā (ātrai vizuālajai pārbaudei pārlūkā).
  • 📄 Papīra lapa: Lejupielādēt gatavu PDF failu, kurš tiek uzreiz sagatavots izsūtīšanai klientam.
  • ⬇️ Lejupielādēt e-rēķinu: Ģenerēt XML versiju atbilstoši Eiropas PEPPOL BIS 3.0 / UBL 2.1 E-Rēķinu un B2G (valsts iestāžu) standartiem.
  • ✉️ Papīra Lidmašīna: Momentāla izsūtīšana. Sistēma pievienos PDF un attiecīgu Jūsu sastādītu e-pasta tekstu klientam un aizsūtīs to (izmanto SMTP iestatījumus).
  • ✏️ Zīmulis: Labot jau izrakstīta rēķina datus.
  • Krustiņš: Izdzēst rēķinu no saraksta.
  • Apmaksāts: Atzīmējiet rēķinu sarakstā ar zaļu krustu, lai izmainītu statusu, kas lieliski palīdzēs redzēt, kuri ir iekavētie maksātāji.

Lielapjoma operācijas un Checkbox funkcijas:

Katram rēķinam saraksta kreisajā pusē ir ievietota izvēles rūtiņa (checkbox). Brīdī, kad ieklikšķināsiet uz viena vai vairākiem rēķiniem, lapas augšpusē atvērsies pilnīgi jauns panelis masveida darbībām:

  • 📊 Eksportēt izvēlētos uz CSV: Vienā ērtā datnē ielādējiet un nosūtiet excel versiju no visiem atzīmētajiem rēķiniem savam grāmatvedim.
  • 🚀 Sūtīt uz VID EDS: Pats pieprasītākais atjauninājums – vienlaicīga failu automātiska lādēšana un reģistrēšana Jūsu Valsts iestādes deklarācijas elektroniskajā vidē!
  • 🗑️ Dzēst izvēlētos: Ja radušās kļūdas, ir iespējams dažu sekunžu laikā attīrīt informāciju.

Navigācijas uzlabojums: Sistēma saglabā aktīvo sadaļu URL parametros (?tab=...), tāpēc pēc rēķina priekšskatījuma aizvēršanas vai lapas pārlādes Jūs atgriezīsieties tajā pašā sadaļā.

⚠️ Svarīgs atgādinājums

Atcerieties, ka autoram nav pienākuma sniegt atbalstu. Ja programma Jums noder — lieliski! Būšu priecīgs par jebkuru atgriezenisko saiti GitHub platformā. Ja rodas kļūdas, Jūs varat mēģināt tās pētīt paši vai izmantot programmu kā piemēru saviem projektiem.

🧠 AI Instructions (izstrādes konteksts)

Atvērt AI aģenta tehniskās instrukcijas projektam

Projekta mērķis: palīdzēt AI koda asistentiem (Cursor, Copilot, Antigravity u.c.) ātri saprast sistēmas arhitektūru, biznesa loģiku un failu struktūru, lai droši veiktu izmaiņas projektā.

Galvenie tehniskie bloki:

  • Autentifikācija: JWT Bearer tokeni + standarta login forma. Pirmajā palaišanā tiek izveidots admin/admin123.
  • Iestatījumi: glabājas kā key-value pāri datubāzē; frontend iedalīts cilnēs (Uzņēmums, E-pasts, Google Drive, VID EDS API).
  • Klienti: autoaizpilde no Latvijas atvērto datu avotiem (nosaukums, reģ. nr., adrese, indekss).
  • Rēķini: galvene + pozīcijas (Invoice / InvoiceItem), PVN aprēķini, PDF ģenerēšana, XML e-rēķins (PEPPOL BIS 3.0 / UBL 2.1).
  • Piegāde: SMTP e-pasts, Google Drive augšupielāde, VID EDS API sūtīšana.
  • Bulk actions: checkbox rīku josla (CSV eksports, sūtīšana uz EDS, masveida dzēšana).

Svarīgākie faili projektā:

  • app/main.py — FastAPI aplikācijas starts, middleware, startup notikumi
  • app/models.py — SQLAlchemy modeļi (User, Settings, Client, Invoice u.c.)
  • app/schemas.py — Pydantic shēmas (īpaši svarīgi: exclude_unset=True iestatījumu atjaunināšanai)
  • app/crud.py — DB operācijas un vaicājumi
  • app/routers/ — API maršruti (auth.py, clients.py, services.py, invoices.py)
  • app/utils.py — PDF ģenerators, SMTP sūtītājs, statistika
  • app/e_invoice.py — PEPPOL BIS 3.0 / UBL 2.1 XML ģenerēšana
  • app/eds_api.py — VID EDS API integrācijas loģika
  • app/static/index.html — frontend SPA (Vanilla JS + Tailwind)

AI aģentiem svarīgas piezīmes:

  • Frontend ir bez framework: modāļi un UI loģika tiek vadīti ar Vanilla JS (classList, DOM manipulācija).
  • Nepārrakstīt tukšus iestatījumus: saglabājot iestatījumus, jārespektē daļējie atjauninājumi (partial update).
  • Ceļi EXE režīmā: nehardkodēt absolūtos ceļus; jāizmanto loģika, kas strādā gan dev vidē, gan PyInstaller režīmā.
  • DB ceļš: izstrādes dokumentācijā var būt minēts data/invoice.db, bet Windows relīzē aktīvā DB tiek izmantota %APPDATA%\InvoiceManager\invoices.db.
  • VID EDS masveida sūtīšana: rēķinu sarakstā izvēlētie rēķini tiek apstrādāti caur API maršrutu POST /api/invoices/send-eds.