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.
- Pobieranie
- 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 komponentuTXMLDocument
. - Wysyła żądanie do endpointu
/InitToken
i zwracasessionToken
w odpowiedzi.
- Pobiera wyzwanie (
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
).
- Wysyła żądanie GET do endpointu
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
iSSL_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
