Spaces:
Sleeping
title: Test DB
emoji: 🧾
colorFrom: indigo
colorTo: blue
sdk: docker
pinned: false
Generator faktur
Repozytorium zawiera dwa sposoby wystawiania faktur:
- prosta aplikacje CLI,
- rozbudowany frontend/ backend, ktory generuje faktury w PDF.
1. Aplikacja CLI
Niewielkie narzedzie w Pythonie, ktore pomaga zebrac podstawowe dane i wystawic fakture z pojedyncza pozycja (usluga lub towar). Dane firmy zapisywane sa lokalnie w invoice_data.json, a kazda wygenerowana faktura trafia do katalogu invoices/.
Wymagania
- Python 3.8 lub nowszy
Pierwsze uruchomienie
python invoice_app.py
- Podaj dane firmy (nazwa, adres, NIP, numer konta).
- Ustaw haslo, ktore bedzie wymagane przy kolejnych uruchomieniach.
Po zakonczeniu konfiguracji uruchom aplikacje ponownie, aby sie zalogowac i wystawic pierwsza fakture.
Wystawianie faktury
python invoice_app.py
- Zaloguj sie haslem ustawionym wczesniej.
- Podaj opis uslugi/towaru, ilosc oraz cene jednostkowa.
- Opcjonalnie wpisz dane klienta.
Aplikacja automatycznie policzy kwote netto i zapisze fakture w katalogu invoices/ jako plik tekstowy (np. invoices/FV-20240101-120000.txt). Dane faktury sa rowniez dopisywane do pliku invoice_data.json, dzieki czemu latwo przechowywac historie.
2. Aplikacja webowa (frontend + backend)
Interfejs przegladarkowy z serwerem REST (Flask), ktory przechowuje dane firmy oraz historie faktur w pliku web_invoice_store.json.
Wymagania
- Python 3.8+
- Zainstalowany pakiet
Flask
python -m pip install -r requirements.txt
Uruchomienie
Start serwera API oraz statycznego frontendu:
python server.pyW przegladarce odwiedz
http://localhost:5000/.
Funkcje webowego generatora
- Pierwsze uruchomienie:
- konfiguracja danych sprzedawcy (nazwa, adres, kod pocztowy, miejscowosc, NIP, numer konta, haslo),
- dane przechowywane lokalnie na serwerze w
web_invoice_store.json.
- Logowanie chronione haslem (token przechowywany w
sessionStorageprzegladarki). - Panel po zalogowaniu:
- wyswietlenie danych sprzedawcy oraz mozliwosc edycji bezpośrednio z poziomu UI,
- formularz danych nabywcy z rozszerzonym adresem (ulica, kod pocztowy, miejscowosc, NIP),
- pole daty sprzedazy/wykonania uslugi (niezalezne od daty wystawienia),
- pozycje faktury z dynamiczna tabela: wprowadzamy cene brutto, wybieramy stawke VAT (23/8/5/0/ZW/NP), aplikacja automatycznie liczy cene netto, wartosc netto, VAT i brutto,
- obsluga pozycji zwolnionych (ZW) wraz z polem na podstawe prawna zwolnienia (wyswietlana na fakturze),
- podsumowanie stawek (np. 23% – X netto / VAT – Y, ZW – Z netto / VAT – 0) zamiast pojedynczej sumy netto,
- generowanie podgladu faktury oraz eksport do PDF w formacie A4 (NABYWCA po lewej, SPRZEDAWCA po prawej, tabela zgodna z nazewnictwem ustawy: „Cena jedn. netto”, „Wartosc netto (pozycja)”, „Stawka VAT”, „Kwota VAT (pozycja)”, „Wartosc brutto”).
- Historia faktur zapisywana jest po stronie serwera (ostatnie 200 dokumentow).
Uwaga: do wygenerowania pliku PDF wykorzystywana jest biblioteka jsPDF ladowana z CDN. Przegladarka musi miec dostep do internetu, aby pobrac skrypt.
Reset danych webowych
Usun plik web_invoice_store.json, aby uruchomic konfiguracje od nowa (spowoduje to utrate historii faktur).
Reset danych CLI
Jezeli chcesz rozpoczac konfiguracje od nowa, usun pliki invoice_data.json i katalog invoices/ (uwaga: spowoduje to utrate historii wystawionych faktur).