Magazyn - Portfolio

Menu
Przejdź do treści
Magnet
Opis:
Magnet to nowoczesne oprogramowanie do prowadzenia sprzedaży oraz wystawiania dokumentów sprzedażowych, dedykowane dla małych i średnich firm. System łączy intuicyjną obsługę z zaawansowanymi funkcjonalnościami, co czyni go wszechstronnym narzędziem wspomagającym zarządzanie firmą.

Technologie:
  • Środowisko: Builder C++ XE
  • Baza danych: MySQL
  • Komponenty: MyDAC, FastReport
  • Automatyzacja: Generowanie plików JPK przy użyciu PHP oraz harmonogramowanie procesu z wykorzystaniem Crontab

Funkcjonalności:
Automatyczne generowanie plików JPK:
  • Pliki JPK są tworzone automatycznie na koniec miesiąca.
  • System wysyła je bezpośrednio na skrzynkę mailową księgowości.
Zarządzanie danymi:
Oprogramowanie korzysta z rozbudowanej bazy danych, obejmującej m.in.:
  • Tabela stan: Stan magazynu.
  • Tabela sprzedaż: Sprzedaż towarów i usług.
  • Tabela fv: Dane faktur wystawionych dla klientów.
  • Tabela fv_content: Szczegóły usług i towarów zawartych w fakturach.
  • Tabela dostawcy: Informacje o dostawcach i zakupach.
  • Tabela klienci: Dane klientów używane podczas wystawiania faktur.
Uwaga: W bazie danych znajduje się więcej tabel, które wspierają dodatkowe funkcjonalności.
Import danych:
  • Moduł importu umożliwia wczytywanie danych z plików XML dostarczanych przez hurtownie.
  • Automatyczne rozpoznawanie rodzaju pliku i źródła danych.
Raportowanie:
Program generuje raporty uwzględniające szczegóły sprzedażowe:
  • Raporty dobowe, okresowe i roczne.
  • Eksport raportów w formatach DOC i PDF.
Obsługa płatności:
Oprogramowanie wspiera różne formy płatności, w tym:
  • Gotówka.
  • Karty płatnicze.
  • Płatności z odroczonym terminem.
Zarządzanie użytkownikami:
  • System logowania umożliwia zarządzanie użytkownikami z podziałem na poziomy dostępu, co zapewnia kontrolę nad bezpieczeństwem i zakresem funkcji.
Integracja z KSeF:
Magnet wspiera obsługę elektronicznych faktur poprzez integrację z Krajowym Systemem e-Faktur (KSeF).
  • Funkcjonalności związane z KSeF:
    • Pobieranie challenge i znacznika czasu (timestamp) do autoryzacji.
    • Szyfrowanie tokenu sesji z wykorzystaniem klucza publicznego KSeF.
    • Tokeny KSeF są szyfrowane i przechowywane w bazie danych, co zapewnia ich bezpieczeństwo i zgodność z przepisami.
    • Generowanie i wysyłanie dokumentów XML zgodnych ze specyfikacją KSeF.
    • Wysyłanie faktur do systemu KSeF oraz odbieranie potwierdzeń.
    • Zamykanie sesji i generowanie numerów referencyjnych.
  • Obsługa procesów KSeF realizowana jest za pomocą dedykowanej klasy KsefClient, która integruje funkcjonalności cURL i szyfrowania OpenSSL z pozostałymi modułami systemu.

Komercyjność:
Magnet to komercyjne oprogramowanie sprzedawane i używane przez firmy w celu efektywnego zarządzania sprzedażą, magazynem oraz księgowością.

Podsumowanie:
Magnet łączy zaawansowane technologie z praktycznymi rozwiązaniami, oferując pełną funkcjonalność niezbędną dla małych i średnich firm. Dzięki wsparciu dla KSeF, program spełnia wymogi prawne dotyczące faktur elektronicznych. Szyfrowanie i bezpieczne przechowywanie tokenów KSeF w bazie danych dodatkowo zwiększa poziom bezpieczeństwa i zgodność z regulacjami.

Opis techniczny pkasly KsefClient
Projekt implementuje klasę KsefClient, która zapewnia funkcjonalności umożliwiające integrację z Krajowym Systemem e-Faktur (KSeF). Klasa ta obsługuje takie operacje jak wysyłanie żądań HTTP, generowanie tokenów sesji, wysyłanie faktur oraz zamykanie sesji.

Technologie i biblioteki
  • C++ Builder (środowisko programistyczne)
  • cURL: Biblioteka do obsługi zapytań HTTP(S).
  • OpenSSL (dla szyfrowania i obliczania hashy).
  • EnigmaBase64: Do obsługi kodowania Base64.
  • TXMLDocument: Do generowania dokumentów XML.
  • MyDAC: Wykorzystywane w integracji z bazą danych.

Funkcjonalności
1. Inicjalizacja sesji z KSeF
  • getKSeFSessionToken:
    • Pobiera wyzwanie (challenge) i znacznik czasu (timestamp) za pomocą endpointu /AuthorisationChallenge.
    • Szyfruje token przy użyciu klucza publicznego oraz otrzymanego challengeTime.
    • Generuje dokument XML dla żądania inicjalizacji sesji (InitSessionTokenRequest) z użyciem komponentu TXMLDocument.
    • Wysyła żądanie do endpointu /InitToken i zwraca sessionToken w odpowiedzi.

2. Wysyłanie faktur
  • sendInvoice:
    • Wczytuje plik faktury w formacie XML.
    • Generuje hash treści faktury (SHA-256) oraz jej zaszyfrowaną wersję.
    • Przygotowuje i wysyła żądanie HTTP PUT do endpointu /Invoice/Send.
    • Obsługuje odpowiedzi serwera, w tym zapisywanie błędów do plików.

3. Zamykanie sesji
  • terminateSession:
    • Wysyła żądanie GET do endpointu /Terminate.
    • Zwraca numer referencyjny zakończenia sesji (referenceNumber).

4. Obsługa żądań HTTP
  • sendRequest:
    • Wysyła żądania HTTP przy użyciu cURL.
    • Obsługuje różne metody (GET, POST, PUT).
    • Umożliwia konfigurację nagłówków i przesyłanie danych.

5. Obsługa danych JSON
  • parseJsonValue:
    • Wyodrębnia wartości z dokumentu JSON na podstawie klucza.

6. Obsługa danych XML
  • Generowanie dokumentów XML za pomocą komponentu TXMLDocument.
  • Obsługa przestrzeni nazw (namespaces) oraz atrybutów XML.

7. Pomocnicze funkcje
  • sanitizeNip: Usuwa myślniki z numeru NIP.
  • RemovePrefix: Usuwa prefiks z hashy lub tokenów.
  • CleanHash: Usuwa nieprawidłowe znaki z ciągów Base64.
  • RemoveTokenPrefix: Wyodrębnia token z odpowiedzi API.

Wykorzystane komponenty
  • cURL:
    • Obsługuje zarówno szyfrowane, jak i nieszyfrowane połączenia.
    • Ustawienia takie jak SSL_VERIFYPEER i SSL_VERIFYHOST mogą być konfigurowane dynamicznie.
  • TXMLDocument:
    • Służy do generowania struktury XML zgodnej ze specyfikacją KSeF.

Przykładowe zastosowania
  • Wysyłanie faktur elektronicznych do systemu KSeF.
  • Pobieranie i przetwarzanie danych JSON z odpowiedzi API.
  • Generowanie i zarządzanie dokumentami XML zgodnymi z KSeF.

Obsługa błędów
  • Obsługa błędów HTTP (np. brak sesji, nieautoryzowany dostęp).
  • Zapisanie odpowiedzi serwera do plików w przypadku błędów.
  • Obsługa wyjątków podczas operacji na plikach i XML.

Podsumowanie
Klasa KsefClient jest zaawansowanym rozwiązaniem umożliwiającym pełną integrację z Krajowym Systemem e-Faktur. Projekt charakteryzuje się modularnością oraz zgodnością z wymaganiami technicznymi KSeF. Dzięki wykorzystaniu bibliotek takich jak cURL oraz komponentów do obsługi XML, aplikacja jest w pełni gotowa do użytku w środowisku produkcyjnym.
Faktury zgłoszone do Ksef.
Stan
Stan magazynu z towarami / usługami.
Wyszukiwanie po ceni nazwie i ilości,
Import towarów na podstawie pliku xml (obsługiwane hurtownie to między innymi Action i Megabajt).
Import kontroluje ilość, cena oraz aktualną fv za produkt z datą zakupu.
Import wykonuj modyfikacja produktu jeśli jest  w bazie o nowe dane (ilość, cena, FV, data zakupu), dodaj nowy produkt do bazy jeśli produkt jest nie dostępny w bazie stan.

Sprzedaż
Sprzedaż towarów / usług w danym dniu,
- Raport dobowy,
- Raporty w przedziale określonej daty.
Stan bazy jest modyfikowany o ilości, które zostały sprzedane.

Faktura Vat
Wystawianie Fv na podstawie towarów i usług zawartych w bazie "stan".
Stan bazy jest modyfikowany o ilości, które zostały sprzedane.
Dostępna jest baza  klientów i możliwość wyszukiwania po nazwie lub nip podmiotu.
Baza klientów posiada możliwość dodawania nowego klienta, usuwanie klienta, modyfikacja klienta.

Faktura Vat
Wydruk FV.
Dostawcy
Dodawanie, modyfikowanie oraz wyszukiwanie dostawców usług oraz towarów do ponownego odsprzedania.

Konfiguracja
Moduł odpowiedzialny za konfigurację programu magnet.
Konfigurowanie bazy danych (User, hasło, host, baza danych).
Hasło jest szyfrowane i w bezpieczny sposób umieszczone w pliku ini.
Moduł konfiguracji zawiera również dane podmiotu oraz podstawowe dane takie jak numer fv, numer kp oraz stawki PTU.
Raport Dobowy

Raport Okresowy

Raport Roczny

Druk KP

Druk wpłaty
Wróć do spisu treści