Test_DB / README.md
Antoni09's picture
Update README.md
89bea2e verified
|
raw
history blame
3.64 kB
metadata
title: Test DB
emoji: 🧾
colorFrom: indigo
colorTo: blue
sdk: docker
pinned: false

Generator faktur

Repozytorium zawiera dwa sposoby wystawiania faktur:

  1. prosta aplikacje CLI,
  2. 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
  1. Podaj dane firmy (nazwa, adres, NIP, numer konta).
  2. 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
  1. Zaloguj sie haslem ustawionym wczesniej.
  2. Podaj opis uslugi/towaru, ilosc oraz cene jednostkowa.
  3. 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

  1. Start serwera API oraz statycznego frontendu:

    python server.py
    
  2. W 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 sessionStorage przegladarki).
  • 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).