O produkcie

Serwer drukarek fiskalnych JAVA

Uwaga dokumentacja techniczna została przeniesiona tutaj: https://bitbucket.org/bprokop/fps-applet/wiki/Home

Koncepcja
Współdzielenie
Posiadając kilka komputerów na jednym stanowisku pracy - np. w recepcji hotelu lub kasie obiektu sportowego, zwykle mamy tylko jedna drukarkę laserową lub dwie drukarki - specjalną (np. igłową, np. do kart, np. do bloczków) i laserową. Korzystamy ze standardowych mechanizmów sieci lokalnej, które pozwalają nam na wydruk na jednej "współdzielonej" drukarce z kilku komputerów spiętych w jedna sieć - dlaczego - aby było taniej i sprzęt zajmował mniej miejsca. A jak jest z drukarka fiskalna? Nie istnieją standardowe mechanizmy systemowe do obsługi urządzeń typu drukarka fiskalna. Tak wiec wiele rozwiązań programistycznych zawłaszcza drukarkę fiskalną do wyłącznego użytku jednego komputera. Można jednak inaczej. Można użyć jednej drukarki na kilka komputerów - dlaczego? Aby bylo taniej. Można drukować paragony fiskalne - tworzone na dowolnym komputerze wpiętym w siec lokalna - na jednej "wspólnej", "współdzielonej" drukarce fiskalnej.

Uniwersalny produkt dla aplikacji Webowych

Serwer drukarek fiskalnych, to rozwiązanie które korzysta ze standardowych możliwości sieci TCP/IP, z technologii XML oraz technologi JPA/Hibernate lub JDBC. Aplikacje wysyłają wydruki paragonów do serwera (lub składują je bezpośrednio w tabelach bazy danych), a serwer realizuje je podobnie, jak ma to miejsce przy klasycznych drukarkach "udostępnianych w sieci". Koncepcja opiera się na założeniu, ze "urządzenie fiskalne ma być na stanowisku pracy". Stanowiskiem pracy jest recepcja, kasa, sklep, dzial fakturowania, etc.

Dlaczego nasze rozwiązanie jest uniwersalne (śmiemy twierdzić, ze najlepsze na rynku)? Po pierwsze Serwer Wydruku Fiskalnego został napisany w całości na platformie JAVA. O zaletach tej technologii można wiele pisać. Najważniejsze jest jednak to, ze Serwer Wydruku Fiskalnego możemy uruchomić w zasadzie na każdym sprzęcie i pod każdym system operacyjnym. Nieważne Linux/Windows, siec taka czy inna. To działa, a paragony drukujemy niezależnie od tego w jakim systemie operacyjnym pracujemy i z jakiego kompilatora korzystamy. Jakkolwiek obsługa drukarek fiskalnych realizowana jest przez proces JAVA, to oferujemy uniwersalny i otwarty standard oparty na technologii XML dla potrzeb przyjmowania zleceń wydruku od innych systemów. Dodatkowo dla programistów Delphi oferujemy komponenty VLC dla jeszcze łatwiejszego korzystania z Serwera Drukarek Fiskalnych. Możliwy jest również bezpośredni zapis paragonów do bazy danych Firebird, mySQL, Posgresql a także ożycie gotowych Entity w przypadku korzystania z Java Persistance API.

Uzycie

Ponizej kilka uwag o sposobie uzywania serwera drukarki fiskalnej (przyklad w jezyku JAVA).
Tworzenie paragonu
Aby utworzyc paragon, korzystamy z klasy Slip:
Slip slip = new Slip();
// numer zewnetrzny paragonu z waszej aplikacji
slip.setExternalReference("R-k 76253/03/2006");
// poszczególne linijki paragonu
slip.addLine("Towar ABC001", 0.999, 100.00, SlipLine.VATRate.VAT22);
slip.addLine("Towar ABC002", 0.9999, 100.00, SlipLine.VATRate.VAT07);
slip.addLine("Towar ABC003", 0.12345, 1000.00, SlipLine.VATRate.VAT00);
slip.addLine("Towar ABC004", 0.123456, 100.00, SlipLine.VATRate.VATzw);
slip.addLine("Towar ABC005", 123, 10.123456, SlipLine.VATRate.VAT22);
slip.addLine("Towar ABC006", 10, 99.99, SlipLine.VATRate.VAT22);
// mozna nie uzyc formy platnosci w ogole
 
//mozna uzyc jednej jedynej formy platnosci
slip.setPayment(Slip.PaymentForm.Cash, 2580.35, "");
 
//mozna uzyc WIELU form platnosci jednoczesnie
slip.setPayment(Slip.PaymentForm.Cash, 1580.35, "");
slip.setPayment(Slip.PaymentForm.CreditCard, 200.00, "VISA **** 0127");
slip.setPayment(Slip.PaymentForm.Cheque, 200.00, "BPH127368");
slip.setPayment(Slip.PaymentForm.Voucher, 200.00, "Karnet 653214");
slip.setPayment(Slip.PaymentForm.Other, 200.00, "Barter");slip.setPayment(Slip.PaymentForm.Credit, 200.00, "7 dni");
 

Wydruk paragonu
Paragony drukowane sa przez klasy specjalnie dedykowane urzadzeniom fisalnym, które to klasy zawsze implementuja interface FiscalPrinter, który zapewnia m.in. obsluge metody print.

FiscalPrinter fp = PosnetThermal101.getFiscalPrinter("COM1");
try {
 fp.print(slip);
} catch (FiscalPrinterException e) {
}

Programisci juz nie potrzebuja sie martwic o typ drukarki. Nasze drivery do róznych urzadzen fiskalnych wybiora zawsze najbardziej zaawansowane funkcje dostepne w drukarce w celu wydrukowania paragonu fiskalnego prezentujacego jak najwiecej informacji podanych przez aplikacje kliencka.

Glówne funkcjonalnosci

Tworzac Serwer Drukarek Fiskalnych szczególnie wyeksponowalismy ponizsze cechy:
1.Uzyta biblioteka do obslugi portu szeregowego: {http://www.rxtx.org}.
2.Mozliwe do stosowania systemy operacyjne: Windows, Linux, MAC OS i wszystkie na które dostepny jest JRE w wersji minumum 1.5 i biblioteka rxtx.
3.Serwer nie zawlaszcza portu szeregowego - uzywa go tylko na czas dokonania wydruku i zwraca go potem do systemu, co zapewnia wspólprace z innymi programami które moga chciec korzystac z drukarki fiskalnej.
4.Serwer drukarki sam rozpoznaje zaprogramowane w drukarce stawki VAT - A, B, C, itd. Stad zbedna jest jakakolwiek konfiguracja oprócz podania nazwy portu szeregowego wlasciwej dla stosowanego systemu operacyjnego. Uwaga: przed testowaniem na "nowej" drokarce sprawdz, czy w trybie niefiskalnym zdefiniowano stawki!!!

Oferta

Serwer Wydruku fiskalnego sprzedajemy w dwóch wersjach; w wersji standardowej i w wersji profesjonalnej (z kodem zródlowym). Serwer obsluguje drukarki marki POSNET (równiez klony Novitus, Optimus i Innova) oraz drukarki ELZAB.

Instrukcja instaalcji jest {tutaj}.