Thread View: pl.comp.os.linux.programowanie
7 messages
7 total messages
Started by emanuel.koczwara
Sat, 22 Jan 2011 14:18
Sterowniki do drukarki fiskalnej Posnet Thermal 1.02 (linux, windows)
Author: emanuel.koczwara
Date: Sat, 22 Jan 2011 14:18
Date: Sat, 22 Jan 2011 14:18
12 lines
1690 bytes
1690 bytes
Witam,
Zapraszam do testowania i rozwijania biblioteki/sterownika do
obsługi drukarki fiskalnej Posnet używającej protokołu Thermal 1.02
(port szeregowy). Biblioteka jest testowana pod linuxem, ale powinna
działać na każdej platformie. Bardzo przydadzą się programiści z
dostępem do drukarki przed fiskalizacją.
http://gitorious.org/posnet-thermal
Pozdrawiam,
Emanuel
Re: Sterowniki do drukarki fiskalnej Posnet Thermal 1.02 (linux, windows)
Author: zoom
Date: Sun, 23 Jan 2011 12:18
Date: Sun, 23 Jan 2011 12:18
36 lines
1909 bytes
1909 bytes
Dnia Sat, 22 Jan 2011 06:18:35 -0800 (PST), emanuel.koczwara@gmail.com napisał(a): > Witam, > > Zapraszam do testowania i rozwijania biblioteki/sterownika do > obsługi drukarki fiskalnej Posnet używającej protokołu Thermal 1.02 > (port szeregowy). Biblioteka jest testowana pod linuxem, ale powinna > działać na każdej platformie. Bardzo przydadzą się programiści z > dostępem do drukarki przed fiskalizacją. > > http://gitorious.org/posnet-thermal tak bez testowania (tylko przejrzenie kodu) Wysyłając na drukarkę linię paragonu z VAT, zakładasz, że do procedury dostaniesz wartości A,B,C,D,E,F,G - błąd Drukarka1 (dla uproszczenia trzy stawki) A - 23% B - 8% C - 5% D - 0% Drukarka2 (dla uproszczenia trzy stawki) A - 23% B - 8% C - 0% D - 5% Teraz wysyłasz "produkt A", vat 5% - to jaki kod przypisujesz wysyłanej stawce C czy D? Musisz odwzorować aktualną wartość na stawki zapisane w drukarce - informacje kasowe. -- pozdrawiam piotr
Re: Sterowniki do drukarki fiskalnej Posnet Thermal 1.02 (linux, windows)
Author: emanuel.koczwara
Date: Sun, 23 Jan 2011 13:37
Date: Sun, 23 Jan 2011 13:37
22 lines
2298 bytes
2298 bytes
Witam,
Piotrze, każda drukarka ma zaprogramowane różne stawki VAT.
Procedura drukująca linię paragonu oczekuje na string A, B, C, D, E, F
lub G:
if(vat != "A" && vat != "B" && vat != "C" && vat != "D" && vat != "E"
&& vat != "F" && vat != "G")
throw BadVATType(vat);
Nie podaje się wartości procentowej. Użytkownik jest
odpowiedzialny za podanie właściwej litery. W aplikacji robię tak, że
w pliku konfiguracyjnym mam przypisane wartości procentowe do liter -
odpowiednio jak jest zaprogramowane w drukarce. W bazie danych
produkty mają przypisane procentowe wartości. Podczas drukowania linii
paragonu odwzorowuję wartości procentowe na litery. W ten sposób,
jeśli zostanie podłączona inna drukarka - wystarczy zmienić
konfigurację stawek w pliku konfiguracyjnym - wszystko będzie pięknie
działać jak trzeba.
Pozdrawiam,
Emanuel
Re: Sterowniki do drukarki fiskalnej Posnet Thermal 1.02 (linux, windows)
Author: zoom
Date: Sun, 23 Jan 2011 16:27
Date: Sun, 23 Jan 2011 16:27
37 lines
2458 bytes
2458 bytes
Dnia Sun, 23 Jan 2011 05:37:16 -0800 (PST), emanuel.koczwara@gmail.com napisał(a): > Witam, > > Piotrze, każda drukarka ma zaprogramowane różne stawki VAT. > Procedura drukująca linię paragonu oczekuje na string A, B, C, D, E, F > lub G: > > if(vat != "A" && vat != "B" && vat != "C" && vat != "D" && vat != "E" > && vat != "F" && vat != "G") > throw BadVATType(vat); > > Nie podaje się wartości procentowej. Użytkownik jest > odpowiedzialny za podanie właściwej litery. W aplikacji robię tak, że > w pliku konfiguracyjnym mam przypisane wartości procentowe do liter - > odpowiednio jak jest zaprogramowane w drukarce. W bazie danych > produkty mają przypisane procentowe wartości. Podczas drukowania linii > paragonu odwzorowuję wartości procentowe na litery. W ten sposób, > jeśli zostanie podłączona inna drukarka - wystarczy zmienić > konfigurację stawek w pliku konfiguracyjnym - wszystko będzie pięknie > działać jak trzeba. > właśnie o to mi chodzi.... > W bazie danych > produkty mają przypisane procentowe wartości. Podczas drukowania linii > paragonu odwzorowuję wartości procentowe na litery. jak odwzorowujesz procentowe stawki na wartości znakowe A,B... Podłączasz identyczny model drukarki, tyle, że drukarka zapasowa ma odwrócone (zaprogramowane) stawki vat na pozycjach C,D - i nikt tu nie chce zmieniać żadnego modelu? -- pozdrawiam piotr
Re: Sterowniki do drukarki fiskalnej Posnet Thermal 1.02 (linux, windows)
Author: emanuel.koczwara
Date: Sun, 23 Jan 2011 17:27
Date: Sun, 23 Jan 2011 17:27
42 lines
2372 bytes
2372 bytes
Witam,
W pliku konfiguracyjnym aplikacji mam zdefiniowane stawki vat,
jakie są zaprogramowane w drukarce:
[printer]
vat_a=22.0
vat_b=7.0
vat_c=0.0
vat_d=3.0
vat_e=100.0
vat_f=100.0
vat_g=101.0
W aplikacji mam mapę:
std::map<double, std::string> vatRates;
do której są wczytywane dane z pliku konfiguracyjnego:
vatRates.insert(std::pair<double,std::string>(settings.value("vat_a").toDouble(),"A"));
vatRates.insert(std::pair<double,std::string>(settings.value("vat_b").toDouble(),"B"));
// ...
Dla każdej pozycji na paragonie:
std::string vat = vatRates.at(vatPercent);
Jeżeli podłączę drukarkę, która ma stawki vat zaprogramowane inaczej,
wystarczy zmienić w pliku konfiguracyjnym:
[printer]
vat_a=101.0
vat_b=100.0
vat_c=100.0
vat_d=3.0
vat_e=0.0
vat_f=7.0
vat_g=22.0
Pozdrawiam,
Emanuel
Re: Sterowniki do drukarki fiskalnej Posnet Thermal 1.02 (linux, windows)
Author: zoom
Date: Sun, 23 Jan 2011 17:40
Date: Sun, 23 Jan 2011 17:40
75 lines
3808 bytes
3808 bytes
Dnia Sun, 23 Jan 2011 09:27:08 -0800 (PST), emanuel.koczwara@gmail.com
napisał(a):
> Witam,
>
> W pliku konfiguracyjnym aplikacji mam zdefiniowane stawki vat,
> jakie są zaprogramowane w drukarce:
>
> [printer]
> vat_a=22.0
> vat_b=7.0
> vat_c=0.0
> vat_d=3.0
> vat_e=100.0
> vat_f=100.0
> vat_g=101.0
>
> W aplikacji mam mapę:
>
> std::map<double, std::string> vatRates;
>
> do której są wczytywane dane z pliku konfiguracyjnego:
>
> vatRates.insert(std::pair<double,std::string>(settings.value("vat_a").toDouble(),"A"));
> vatRates.insert(std::pair<double,std::string>(settings.value("vat_b").toDouble(),"B"));
> // ...
>
> Dla każdej pozycji na paragonie:
>
> std::string vat = vatRates.at(vatPercent);
>
> Jeżeli podłączę drukarkę, która ma stawki vat zaprogramowane inaczej,
> wystarczy zmienić w pliku konfiguracyjnym:
>
> [printer]
> vat_a=101.0
> vat_b=100.0
> vat_c=100.0
> vat_d=3.0
> vat_e=0.0
> vat_f=7.0
> vat_g=22.0
>
Też tak można zrobić, ale jest to "zbyt eleganckie" rozwiązanie.
Zmuszamy użytkownika/administratora oprogramowania, aby wiedziała jak ma
ustawione stawki w drukarce i w systemie. Takie rzeczy załatwia się
automatycznie.
Wiem, ze na drukarkę musisz wysłać oznaczenia literowe stawek, takie
wymagania ma protokół. Powyższe rozwiązuje się w ten sposób, że pobierasz
informacje kasowe z drukarki fiskalnej. Jedyne odstępstwa jakie znalazłem
ma drukarka innova, dla której problematycznym jest określenie pozycji
stawki zwolnionej - ale to wyjątek. Komendę jest zunifikowana dla protokołu
thermal. Po odebraniu informacji kasowych, wiesz jaki procent vat jest
przyporządkowany do kodu znakowego, na tej podstawie decydujesz jaką literę
przypisać do aktualnie wysyłanej stawki liczbowej. W ten sposób użytkownik
nie martwi się jak ma ustawione stawki w drukarce, a jak w programie -
najczęściej to laicy i nie wiedzą nic ponad to że wychodzi paragon i trzeba
drukować raport dobowy.
Znam sofcik i to dużej firmy, że drukowali np.
Soczek marchwiowy w stawce 7%, na drukarce drukowało się B (7%), zmienili
drukarkę, drukują soczek marchwiowy w stawce 7% a na drukarce wychodzi w
stawce C (3%).
Poza tym dzięki temu rozwiązaniu możesz przed wydrukowaniem paragonu
określić, czy wszystkie pozycje które będą wysłane na drukarkę mają
odpowiednio zaprogramowane stawki w drukarce... Np masz Ziemniaki w stawce
3%, a serwisant nie zaprogramował tego w drukarce (błąd serwisanta,
użytkownik\właściciel stwierdził, że nie będzie sprzedawał w tej stawce,
ale sytuacja sie zmieniła).
--
pozdrawiam
piotr
Re: Sterowniki do drukarki fiskalnej Posnet Thermal 1.02 (linux, windows)
Author: emanuel.koczwara
Date: Sun, 23 Jan 2011 18:28
Date: Sun, 23 Jan 2011 18:28
7 lines
1743 bytes
1743 bytes
Witam,
Oczywiście, takie rozwiązanie będzie idealne. Muszę tylko
zaimplementować pobieranie informacji kasowych z drukarki.
Pozdrawiam,
Emanuel
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads