Professional Documents
Culture Documents
http://www.posnet.com.pl
e-mail: drukarki@posnet.com.pl
DRUKARKA FISKALNA
Thermal 1.02
INSTRUKCJA PROGRAMISTY
LUTY 2003
Ver. 1.08
3. SEKWENCJE STERUJCE__________________________________________________8
3.1 Oglne zasady syntaktyki komend____________________________________________________________8
3.3 Transakcja______________________________________________________________________17
[LBTRSHDR]: Pocztek transakcji_____________________________________________________________17
_________________________________________________________________________________________18
[LBTRSLN] : Linia paragonu_________________________________________________________________18
www.posnet.com.pl
drukarki@posnet.com.pl
6. INFORMACJE DODATKOWE_______________________________________________72
6.1 Komunikaty zwizane z sekwencjami sterujcymi______________________________________________72
6.2 Kody sekwencji_________________________________________________________________________73
6.3 Bdy sekwencji_________________________________________________________________________74
www.posnet.com.pl
drukarki@posnet.com.pl
1. WSTP
Niniejsza instrukcja programisty napisana zostaa pod ktem drukarki POSNET Thermal 1.02
i zawiera wszystkie niezbdne informacje potrzebne do napisania aplikacji do ich obsugi.
Od momentu powstania pierwszej drukarki fiskalnej (DF-300) zaszo wiele zmian w konstrukcji drukarek
oraz pojawiy si dodatkowe komendy, ktrych nie znay drukarki DF-300. Powstajce kolejno urzdzenia (DF301/302, Posnet Thermal/3001), mimo licznych zmian zachowyway kompatybilno z poprzednimi modelami
realizujc wszystkie komendy, ktre si pojawiy we wczeniejszych wersjach drukarek. Podobnie jest z now
drukark POSNET Thermal 1.02, ktra pomimo, e jest cakowicie nowym urzdzeniem, rozpoznaje skadnie
wszystkich sekwencji sterujcych wystpujcych w poprzednich drukarkach. Jakkolwiek czsto realizuje zawarte w
nich polecenia w nieco odmienny sposb w celu sprostania nowym wymaganiom zarwno klientw jak i przepisw
fiskalnych.
Oprcz zmian polegajcych na dodaniu do bogatej palety dotychczasowych sekwencji nowych rozkazw
rozszerzajcych waciwoci funkcjonalne naszych drukarek, uzupeniono wiele starszych sekwencji o liczne
parametry opcjonalne. Podczas opracowywania nowych sekwencji dooono wszelkich stara, aby zachowa znan
powszechnie atwo implementacji, logik skadni i w szerokim pojciu rozumiany przyjazny charakter rodziny
protokow pochodzcych z firmy Posnet.
Blisze informacje dotyczce urzdze firmy POSNET dostpne s na stronie WWW firmy pod adresem:
www.posnet.com.pl
www.posnet.com.pl
drukarki@posnet.com.pl
2. PROTOK KOMUNIKACYJNY
2.1 Syntaktyka rozkazw
Syntaktyka rozkazw jest identyczna jak dla produkowanych dotychczas drukarek. Niektre komendy zostay
uzupenione o dodatkowe opcjonalne parametry wtedy parametry te ujte s w nawiasy kwadratowe ([..]). W
rozdziale tym wyjanimy podstawowe zasady konstruowania oprogramowania dla drukarki.
Drukarka rozpoznaje 4 kody sterujce: ENQ ($05), BEL ($07), CAN ($18) i DLE ($10) oraz okoo
trzydziestu rozkazw (sekwencji) sterujcych. Wszystkie rozkazy maj jednolity format:
ESC P Ps ;...; Ps xx <string> cc ESC \
Po odebraniu prefiksu ESC P ($1B $50) drukarka wczytuje cig parametrw numerycznych (Ps ;... ; Ps)
oddzielonych rednikami. Dla niektrych sekwencji parametry te nie musz wystpowa. Kady z nich moe mie
maksymaln warto = 255. Nastpnie jest odbierany dwuznakowy identyfikator rozkazu xx, przy czym pierwszy
znak identyfikatora jest znakiem $ lub # , a drugi jest liter (spis rozkazw znajduje si na stronie 73).
Po odebraniu identyfikatora rozkazu drukarka wczytuje cig parametrw napisowych lub numerycznych <string>,
ktrego struktura zaley od konkretnego rozkazu. W obrbie cigu mog znale si napisy wwczas mog skada
si z dowolnych znakw ASCII z wyczeniem kodw kontrolnych (np. nazwa towaru). Dugo napisu jest dla
konkretnej sekwencji indywidualnie ograniczona (np. nazwa towaru do 40 znakw) a jego terminatorem jest zwykle
kod CR ($0D). Mog te wystpi parametry numeryczne skadajce si z maksymalnie 10 cyfr, zwykle bd to
rnego rodzaju kwoty i iloci . Format kwot dopuszcza maks. 6 cyfr w czci cakowitej i maksymalnie 2 cyfry
czci uamkowej. Cz cakowita jest oddzielona od uamkowej znakiem . Format iloci dopuszcza maks. 10 cyfr
z dowolnie ustawionym punktem dziesitnym por. opis sekwencji LBTRSLN zawarty na stronie 18)
Dopuszczalna i zalecana jest kompresja zer nieznaczcych w czci cakowitej i uamkowej, natomiast zerowa cz
uamkowa nie musi by w ogle wysyana (np. zamiast 5.00 mona wysa 5.0, 5. a najlepiej po prostu 5).
Terminatorem wartoci liczbowej jest z reguy / ($2F) (za wyjtkiem parametru <ilo>). Szersze moliwoci
reprezentacji liczb w tej wersji dla ceny i iloci towaru (parametry sekwencji LBTRSLN) omwiono w rozdziale
[LBTRSLN]: Linia paragonu opisujcym dokadnie sekwencje drukarki.
Wikszo sekwencji jest uzupeniona dwoma znakami (cc) cyframi HEX (znaki ze zbioru: 0..9, A..F),
ktre wyraaj w zapisie heksadecymalnym warto bajtu kontrolnego liczonego dla caej sekwencji w specjalny
sposb:
1. Na pocztku podstawiamy warto bajtu kontrolnego:
<byte> := 255;
2. Poczwszy od nastpnego znaku za ESC P obliczamy warto wyraenia:
<byte> := <byte> xor <kod danego znaku>;
a do ostatniego znaku sekwencji (nie liczc znakw cc i kocwki ESC \).
3. Tak uzyskany bajt kontrolny wyraamy postaci w cyfr heksadecymalnych i dopisujemy do sekwencji wraz
z kocwk ESC \.
UWAGA:
Oznaczenie xor uyte w procedurze oznacza funkcj logiczn Exclusive Or czyli: lub wykluczajce,
inaczej zwane albo. Funkcja ta dziaa na pojedynczych bitach bajtu. Dla bitw o rnych wartociach
wynosi 1, a dla takich samych 0. Jeli w uytkowanym przez Pastwa jzyku programowania brakuje
funkcji xor, to mona j zdefiniowa nastpujco:
xor (a,b) := (( not a) and b) or (( not b) and a).
Oczywicie uycie nawiasw nie jest tu konieczne ze wzgldu na przestrzegan chyba we wszystkich
jzykach si wizania poszczeglnych funkcji.
Cyfry kontrolne obliczane w ten sposb daj dobre zabezpieczenie przed przekamaniami transmisji. Po odczytaniu
i sprawdzeniu cyfr kontrolnych drukarka wczytuje kocwk sekwencji w postaci dwch znakw: ESC \ ($1B
$5C). Realizacja sekwencji z reguy rozpoczyna si dopiero po wczytaniu tych dwch ostatnich znakw. Jeeli
w trakcie analizy syntaktyki rozkazu wystpi bd, to drukarka ignoruje reszt sekwencji a do znakw ESC \.
Wystpienie w dowolnym miejscu sekwencji kodu ESC powoduje rwnie zignorowanie sekwencji do koca,
natomiast wystpienie cigu ESC P powoduje rozpoczcie analizy sekwencji od pocztku. Wystpienie kodu CAN
powoduje przerwanie interpretacji i analizy sekwencji, powrt do gwnej ptli analizy (w ktrej s interpretowane
kody ENQ i BEL oraz rozkazy rozpoczynajce si prefiksem ESC P ). Kod DLE jest rozpoznawany przez drukark
w kadym momencie.
www.posnet.com.pl
drukarki@posnet.com.pl
xx
kk ,
gdzie: xx jest dwuznakowym identyfikatorem rozkazu a kk jest dwucyfrowym kodem bdu. W przypadku
rozkazu nierozpoznanego kod bdu wynosi 0 (zero). Po wywietleniu komunikatu drukarka zatrzymuje dalsze
przetwarzanie znakw z bufora wejciowego i czeka na nacinicie klawisza NIE (o ile nie wymuszono
programowego wyczenia bdw z wywietlacza LCD). Po naciniciu klawisza wywietlacz jest odwieany
i zostaje wznowione przetwarzanie. Zwrmy uwag, e w trakcie wywietlania komunikatu w buforze mogy
znale si kolejne rozkazy, ktre mog dawa nastpne komunikaty. Przykadowo, jeeli bd wystpi na pocztku
transakcji (w sekwencji LBTRSHDR) to kolejne sekwencje (LBTRSLN, LBDSPDEP oraz LBTREXIT lub
TBTRXEND) bd te powodowa komunikaty o bdach. Wystpi zatem seria komunikatw.
Ten sposb obsugi bdw jest wystarczajcy w prostych aplikacjach oraz podczas uruchamiania
oprogramowania. W bardziej zoonych przypadkach mona zrealizowa pen diagnostyk bdw przez aplikacj,
wykorzystujc rozkazy ENQ, DLE oraz LBFSTRQ i LBERNRQ. W tym celu naley najpierw wysa sekwencj
LBSERM:
ESC P 1 #e 88 ESC \
co powoduje zmian sposobu obsugi bdw przez drukark. Komunikaty o bdach zostaj w ten sposb
zablokowane. Po wystpieniu bdu dalsze przetwarzanie nie bdzie blokowane (chocia bdna sekwencja zostanie
zignorowana do koca). Daje to moliwo penej diagnostyki przez aplikacje wedug poniszych zasad.
1.
W odpowiedzi na kod sterujcy ENQ ($05) drukarka wysya jednobajtowy status, postaci:
7
0
6
1
5
1
4
0
3
FSK
2
CMD
1
PAR
0
TRF
w ktrym bit CMD jest ustawiony, jeeli ostatnio odebrany rozkaz by zrealizowany poprawnie.
W szczeglnoci bit ten jest kasowany, gdy drukarka odebraa prefiks ESC P (jeeli rozkaz nastpujcy po
ESC P nie jest daniem odesania statusu LBFSTRQ) oraz ustawiany po poprawnym wykonaniu rozkazu.
2.) W odpowiedzi na kod sterujcy DLE ($10) drukarka wysya jednobajtowy status postaci:
7
0
6
1
5
1
4
1
3
0
2
ONL
1
PE/AKK
0
ERR
gdzie:
ONL = 1: stan On-Line,
PE/AKK = 1: stan Brak Papieru lub rozadowana bateria akumulatorw,
ERR = 1: stan Bd mechanizmu/ sterownika.
Zwrmy uwag, e kod ten daje komunikaty z zakresu $70..$77, a wic inne ni pozostae odpowiedzi statusowe
(w tym odpowied na ENQ). Kod ten jest realizowany ZAWSZE nawet w trybie OFF-LINE !
3.) W odpowiedzi na rozkaz dania wysania statusu LBFSTRQ:
ESC P Ps #s ESC \
drukarka odsya cig LBFSTRS (jeeli zaprogramowano 4 stawki PTU):
www.posnet.com.pl
drukarki@posnet.com.pl
(druga linia ma posta zalen od rodzaju bdu). W takiej sytuacji odpowied na danie statusu ENQ lub
LBFSTRQ nie zostanie odesana (ale drukarka odpowie na danie statusu DLE ktre dziaa take w trybie OFFLINE). Podobny przypadek zachodzi w momencie przeczenia drukarki w tryb OFF-LINE (wygaszona lampka
GOTOWA) w wyniku wystpienia bdu mechanizmu drukujcego np. braku papieru. Z tego wzgldu, w oglnym
przypadku nie mona zaoy w oprogramowaniu aplikacyjnym, e odpowied na danie odesania statusu przyjdzie
w cile okrelonym czasie. Naley zatem przewidzie inny ni przekroczenie limitu czasowego mechanizm wyjcia
przez aplikacj z powstajcej w ten sposb nieskoczonej ptli (np. przerwanie operacji z klawiatury) lub przy
pomocy kodu DLE. Dodatkowo trzeba zwrci uwag, e operacja drukowania raportu okresowego (inicjowana
przez wysanie sekwencji sterujcej) moe angaowa procesor gwny drukarki na bardzo dugi czas. W takiej
sytuacji, jeeli wystpi bd sekwencji, to status zostanie odesany prawie natychmiast, natomiast w przypadku
poprawnego wykonania sekwencji aplikacja moe oczekiwa na status przez dugi czas.
www.posnet.com.pl
drukarki@posnet.com.pl
3. SEKWENCJE STERUJCE
3.1 Oglne zasady syntaktyki komend
W drukarce rozpoznawane s 4 kody sterujce:
DLE ($10) danie wysania statusu (^P)
Daje to moliwo odczytu statusu np. brak papieru lub sytuacje bdne.
W odpowiedzi na kod DLE ($10) drukarka odsya jednobajtowy status w formacie:
7
0
6
1
5
1
4
1
3
0
2
ONL
1
PE/AKK
0
ERR
gdzie:
ONL = 1: stan On-Line,
PE/AKK = 1: stan Brak Papieru lub rozadowany akumulator (24V),
ERR = 1: stan Bd mechanizmu/ sterownika.
Zwrmy uwag, e kod ten daje komunikaty z zakresu $70..$77, a wic inne ni pozostae odpowiedzi statusowe (w
tym odpowied na ENQ).
BEL ($07) sygna dwikowy (^G),
CAN ($18) przerwanie interpretacji rozkazu (^X).
ENQ ($05) danie wysania statusu (^E),
W odpowiedzi na danie wysania statusu (ENQ) drukarka wysya 1 bajt o nastpujcym formacie:
7
0
gdzie:
FSK
CMD
PAR
TRF
6
1
5
1
4
0
3
FSK
2
CMD
1
PAR
0
TRF
UWAGA:
1. Bit TRF jest przechowywany w pamici nieulotnej, std nawet jeeli wystpi awaria zasilania midzy
momentem zakoczenia transakcji a testowaniem statusu warto tego bitu przetestowana przez
aplikacj bdzie poprawna (program pracy drukarki gwarantuje ponadto, e niezalenie od awarii zasilania
operacje wydrukowania paragonu, aktualizacji totalizerw i ustawienia TRF s NIEROZCZNE !).
2. Zwrmy uwag, e w przypadku anulowania paragonu oba bity zostan w stanie 0.
3. Moliwe odpowiedzi statusowe (ENQ) s z zakresu $60..$6F (zakres maych liter), co pozwala zawsze na
ich identyfikacj (mae litery nie mog wystpowa w odpowiedzi statusowej LBFSTRS).
Wszystkie pozostae sekwencje maj jednolity format:
ESC P Ps ; ... ; Ps xx <string> cc ESC \
gdzie:
Ps opcjonalna lista parametrw numerycznych w zakresie 0..255,
xx 1 lub 2 znaki (z kolumn $2x,$4x..$7x) identyfikator rozkazu,
<string> - parametr napisowy, cig parametrw napisowych, lub cig parametrw numerycznych (w zakresie
10-cyfrowym, ewentualnie z punktem dziesitnym ),
www.posnet.com.pl
drukarki@posnet.com.pl
www.posnet.com.pl
drukarki@posnet.com.pl
www.posnet.com.pl
10
drukarki@posnet.com.pl
W trybie fiskalnym ignorowane s pola dotyczce DATY. W przypadku przekamania DATY konieczna
jest interwencja serwisu.
2. Sekwencja LBSETCK dziaa zawsze w penym zakresie (DATA i CZAS) w trybie niefiskalnym nie
obowizuj ograniczenia dla trybu fiskalnego:
zmiany czasu tylko 1 raz po raporcie dobowym,
zmiany czasu o nie wicej ni 1godzin.
3. W trybie fiskalnym, jeeli zegar RTC wymaga inicjalizacji (przy pierwszym wczeniu i po jego
ewentualnym rozprogramowaniu w wyniku rozadowania baterii), to jest to sygnalizowane przez
odpowiedni komunikat na wywietlaczu:
Bd zegara RTC,
wezwij SERWIS !
i nastpuje blokada dalszego dziaania drukarki! Serwis moe ustawi poprawn dat za pomoc funkcji
serwisowych.
4. W trybie fiskalnym, w przypadku prawidowego dziaania zegara moliwa jest korekta nie wicej ni o 1
godzin, ale pod warunkiem, e totalizery s zerowe (stan po wykonaniu raportu dobowego) i tylko jeden
raz po raporcie dobowym
W powyszej sytuacji (zegar zainicjalizowany) data jest ignorowana, ale powinna by wysyana (dla
zapewnienia jednolitej postaci syntaktyki).
Dodatkowe uwagi:
5. Wystpienie sytuacji, kiedy data bieca roni si od daty poprzedniego zapisu o wicej ni 2 lata w
przd lub gdy jest ona wczeniejsza od daty poprzedniego zapisu powoduje wymuszenie stanu braku
inicjalizacji zegara jak w p.3.
6. W przypadku stanu braku inicjalizacji zegara zablokowana jest realizacja sekwencji sterujcych oprcz
ENQ, DLE, BEL, CAN, LBFSTRQ i LBSERM (bez LBSETCK !!), jest rwnie zablokowane wykonywanie
raportw.
7. W trybie fiskalnym sekwencja LBSETCK moe suy tylko do korekcji zegara o +/- 1 godzin
jednorazowo po raporcie dobowym, natomiast ustawienie daty musi odbywa si rcznie przez serwis
(zmiana daty moliwa jest take przez wykorzystanie funkcji serwisowych dostpnych w drukarce po
zwarciu i rozwarciu zwory serwisowej).
www.posnet.com.pl
11
drukarki@posnet.com.pl
W trybie fiskalnym ustawiana data nie moe by wczeniejsza od ostatniego wpisu do moduu
fiskalnego,(takim zapisem jest raport dobowy, zmiana stawek PTU, zerowanie RAM, rozpoczcie
sprzeday po zerowaniu RAM ). Oznacza to, e tu po raporcie dobowym nie mona przestawi zegara w
ty. W tym przypadku przed wysaniem sekwencji ustawienia zegara naley odczeka tyle minut, o ile
chcemy przestawi zegar w ty. Jest to wane przy zmianie czasu z letniego na zimowy( przy przestawieniu
zegara o jedn godzin w ty ). W tym przypadku trzeba odczeka ca godzin.
otwarcie szuflady,
wysanie napisu do wywietlacza, napis <string> nie moe zawiera sekwencji ESC....
przeczenie wywietlacza LCD operatora w tryb wywietlania zegara i daty (dopuszczalne po
upywie 45 sekund od zakoczenia paragonu !),
= 4 : przeczenie wywietlacza LCD operatora z powrotem w tryb kasowy (dopuszczalne po upywie 45
sekund od zakoczenia paragonu!),
= 5 : wysanie napisu tylko do wywietlacza operatora (TYLKO),
= 8 : przeczenie wywietlacza w tryb wywietlania ceny towaru oraz nazwy i podsumy,
na wywietlaczu VFD wywietlany jest w 1 linii
Towar
KWOTA
Forma patnoci
KWOTA
= 9 : przywrcenie standardowego wygldu wywietlacza tj. nazwa i podsuma,
Towar
KWOTA
Podsuma
KWOTA
= 12 : o wywietlaniu KWOTA decyduje parametr 8 lub 9
Forma patnoci
KWOTA
Nazwa rabatu
KWOTA
Kaucja
KWOTA
= 13 : podczas realizowania form patnoci na wywietlaczu VFD w 1 linii wywietlane jest
Do dopl.
KWOTA
Do zwr.
KWOTA
Uwagi:
Drukarka interpretuje rozkaz o ile spenione s warunki:
- od zakoczenia ostatniej transakcji upyno 45 sekund. Niespenienie tego warunku oznacza
zignorowanie rozkazu bez sygnalizacji bdu,
- przesany po raz pierwszy po raporcie dobowym <string> jest przez drukark zapamitywany i bdzie
wydrukowany na najbliszym raporcie dobowym po linii zawierajcej numer unikatowy i logo
fiskalne,
- jeeli jest wysyany kolejny <string> to na wywietlaczu pojawi si zapamitany wczeniej napis,
Kody bdw:
= 2 : bd bajtu kontrolnego,
= 3 : za ilo parametrw,
= 4 : bd danych,
Uwagi:
1.
2.
www.posnet.com.pl
12
drukarki@posnet.com.pl
Uwagi:
1. Po podaniu Py, Pm, Pd - zgodnych z biec dat drukarka nie wymaga potwierdzenia z klawiatury.
2. Prba zaprogramowania stawek takich jakie s zaprogramowane traktowana jest jako sukces - nie ma
zapisu do pamici fiskalnej.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 5 : bd operacji z RTC,
= 6 : bd operacji z pamici fiskaln,
= 7 : bd daty (aktualnie ustawiona jest wczeniejsza od daty ostatniego zapisu) lub nie ma zgodnoci daty
w drukarce z dat przesan,
= 8 : wykonanie niemoliwe niezerowe TOTALIZERY,
= 11 : za ilo wartoci PTU.
www.posnet.com.pl
13
drukarki@posnet.com.pl
stawki PTU
4. W przypadku bdu wykonania (bd zapisu do EPROM) dalsza praca drukarki zostanie zawieszona, tzn.
drukarka zezwoli jedynie na wykonanie raportw okresowych (przechodzi w stan tylko do odczytu),
5. Ta operacja (jak wszystkie wykonujce trway zapis w pamici fiskalnej) wymaga potwierdzenia
z klawiatury po uprzednim sprawdzeniu i zatwierdzeniu poprawnoci daty zegara drukarki,
6. Sprzeda w stawce nieaktywnej jest zablokowana (por. sekwencj LBTRSLN). Na raporcie dobowym
uwzgldniane s tylko kwoty sprzeday w stawkach aktywnych.
[LBSETHDR]: Programowanie nagwka
ESC P 0 $f <string> #255 [<kasjer> CR <nr_kasyr> CR] <check> ESC \
Gdzie:
<string> : maksymalnie 200 znakw ASCII (nie wliczajc znakw sterujcych), dozwolone s polskie litery
(zgodne ze standardem MAZOWIA) kody CR, LF oraz SO, DC4 (podwjna szeroko druku); poniewa w
obrbie nagwka mog wystpowa dowolne znaki ASCII z obszaru $20..$7F, wybrane znaki sterujce oraz
polskie litery, terminatorem stringu jest w tym przypadku wyjtkowo kod #255 ( $FF ),
<nr_kasy> : (opcjonalny) nazwa kasy, wydrukowanych zostanie max. 8 dowolnych znakw,
<kasjer> : (opcjonalny) nazwa kasjera, wydrukowanych zostanie max. 17 dowolnych znakw,
<check> : bajt kontrolny,
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru,
= 8 : prba zaprogramowania nagwka przy niezerowych totalizerach,
= 12 : bdny nagwek (np. za dugi lub zawierajcy niedozwolone znaki),
= 18 : brak zdefiniowanych stawek PTU w drukarce (wszystkie nieaktywne!) - bd sygnalizowany tylko na
czu szeregowym na wywietlaczu operatora wywietlany jest komunikat Brak stawek PTU !!!.
Uwagi:
1.
2.
Znakiem pocztku linii dla drukarki jest w obrbie nagwka LF lub CR. Jeeli poszczeglne linie
nagwka bd rozdzielone przez CR_LF, to wystpi wwczas sytuacja bdna pojawi si puste linie.
Sekwencje sterujce drukarki ESC.. s w obrbie nagwka zabronione.
www.posnet.com.pl
14
drukarki@posnet.com.pl
www.posnet.com.pl
15
drukarki@posnet.com.pl
Po wczeniu zasilania (nie po obudzeniu drukarki) wybierany jest standardowo tryb pracy z
wywietlaniem komunikatw o bdach (Ps=0).
Przy wsppracy z bardziej zaawansowanymi aplikacjami ktre wykorzystuj dialog z drukark dla
uzyskania potwierdzenia poprawnoci wykonania poszczeglnych operacji, sensowne jest wysanie
sekwencji LBSERM dla zablokowania komunikatw o bdach.
Niektre sekwencje, niezalenie od wyczenia komunikatw o bdach, mog wymaga rcznego
potwierdzenia z klawiatury (przy pomocy klawisza TAK). Dotyczy to przewanie operacji
prowadzcych do trwaego zapisu danych do pamici fiskalnej (np. zmiana stawek PTU, raport dobowy).
www.posnet.com.pl
16
drukarki@posnet.com.pl
3.3 Transakcja
W drukarkach fiskalnych w trybie fiskalnym moemy mie do czynienia z dwoma rodzajami paragonw:
1. paragonem fiskalnym zawsze, gdy pierwsza zadeklarowana i wydrukowana pozycja na paragonie to
sprzeda towaru
2. paragonem niefiskalnym - zawsze, gdy pierwsza zadeklarowana i wydrukowana pozycja na paragonie to
obsuga opakowania (pobranie lub zwrot)
[LBTRSHDR]: Pocztek transakcji
ESC P Pl $h <check> ESC \
Gdzie:
Pl : ilo pozycji sprzeday = 0..80 (tryb blokowy), jeeli Pl=0: paragon ON-LINE (otrzymywane linie s
drukowane na bieco),
<check> : bajt kontrolny.
W sekwencji rozpoczcia transakcji moliwe jest take przesyanie numeru systemowego. Warunkiem tego jest
poprzedzenie cigu znakw z linii 1 znakiem #, ktry nie jest drukowany. Linie 2 i 3 nie s uywane i wystpuj tu
w celu zachowania kompatybilnoci z poprzednimi wersjami. Jeeli po pierwszym znaku # zostanie wykryty cig
znakw #XXXX...XXX# gdzie X jest cyfr, cig ten nie jest drukowany w linii lecz pod spodem w postaci kodu
kreskowego.
W przypadku braku # w linii 1, wszystkie linie s ignorowane. Jeeli nr systemowy jest przesyany jednoczenie w
rozpoczciu i w zakoczeniu transakcji, to uwzgldniana jest warto przesyana w zakoczeniu transakcji.
Sekwencja ma nastpujc posta:
ESC P Pl; Pn $h <linia1> CR <linia2> CR <linia3> CR <check> <ESC>\
Pl: liczba pozycji sprzeday = 0..80, jeeli Pl=0: paragon ON-LINE (otrzymywane linie s drukowane na bieco),
Pn: liczba dodatkowych linii tekstu, moe przyjmowa wartoci z zakresu 0-3
<linia1>...<linia3> - dodatkowe linie tekstu (pod uwag brana jest jedynie linia1, kiedy pierwszym znakiem w linii
jest # -tre tego parametru jest traktowana jako numer systemowy). W linii 1 moe wystpowa do 10 znakw
alfabetycznych. Znaki specjalne: !@#$%^&*()~_+=|\-{}[];:<>?,./ oraz cyfry s drukowane bez ogranicze.
Maksymalna dugo dla numeru systemowego to 30 znakw.
Jeeli po pierwszym znaku # zostanie wykryty cig znakw #XXXX...XXX# gdzie X jest znakiem
alfanumerycznym, cig ten nie jest drukowany w linii lecz pod spodem w postaci kodu kreskowego. Dugo
przesyanego w ten sposb stringu wynosi od 3 do 15 liter lub znakw specjalnych lub 30 cyfr (liczba cyfr nie moe
by =29). W przypadku uywania kombinacji obu typw znakw, maksymalna ilo cyfr i liter okrelona jest w
specyfikacji kodu EAN 128.
<check> : bajt kontrolny.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru (za liczba pozycji),
= 5 : bd odczytu zegara RTC,
= 6 : bd operacji z pamici fiskaln,
= 40 : brak w pamici RAM nagwka (tylko w trybie fiskalnym),
= 98 : blokada sprzeday z powodu zaoenia zwory serwisowej.
Uwagi:
1.
Odebranie tej sekwencji przez drukark, w przeciwiestwie do poprzednich urzdze, nie powoduje
wydruku nagwka. Ustawione zostan jedynie bity PAR i CMD (o ile rozkaz zosta wykonany
poprawnie).
www.posnet.com.pl
17
drukarki@posnet.com.pl
Limit iloci linii do 80 obowizuje tylko, gdy paragon jest drukowany w trybie blokowym Off
Line ze wzgldu na ograniczon (do 2 KB) dugo bufora dla caego paragonu.
Jeeli zachodzi konieczno wydrukowania paragonu duszego ni 80 linii naley uy trybu On-Line
(sekwencja LBTRSHDR z parametrem Pl=0).
Jeeli w cigu 20 minut od momentu odebrania LBTRSHDR drukarka nie odebraa adnej innej sekwencji
to oprogramowanie zeruje bit PAR (anulowanie trybu transakcji bez drukowania informacji).
Gdzie:
Pi : numer linijki = 0 lub 1...255 , jeeli = 0 to operacja STORNO,
Pr : rodzaj rabatu:
= 0 : brak, gdy Pr=0 i Po>0 nie wystpuje jawnie rabat w linii paragonu (warto rabatu), tylko
informacja o jego uwzgldnieniu. W tym przypadku parametr RABAT nie jest brany pod uwag i moe
by dowolny.
= 1 : rabat kwotowy,
= 2 : rabat procentowy,
= 3 : narzut kwotowy,
= 4 : narzut procentowy,
Po : opis rabatu: (w trybie blokowym opis rabatu nie jest drukowany)
= 1 "specjalny",
= 2 "okolicznociowy",
= 3 "okazja",
= 4 "witeczny",
= 5 "stay klient",
= 6 "jubileuszowy,
= 7 "urodzinowy",
= 8 "dla pracownika",
= 9 "promocja",
= 10 "nagroda",
= 11 "wyprzeda",
= 12 "przecena",
= 13 "sezonowy",
= 14 "nocny",
= 15 "obsuga",
= 16 definiowany przez uytkownika
<nazwa> : string[40],
Oprogramowanie drukarki:
- zamienia dosyane litery na due pod ktem kontroli bazy towarowej (due i mae litery nie s
rozrnialne),
- drukuje due i mae litery razem z niedozwolonymi znakami,
<ilo> : string[16], w ktrym liczba ilo spenia te same warunki co CENA, z tym, e dla
kompatybilnoci dopuszczamy w obrbie iloci dowolne inne znaki ni cyfry i wyodrbniamy z tego
napisu cig bdcy max. 10-cyfrow liczb z dowolnie ustawionym punktem dziesitnym, jakkolwiek
drukarka wydrukuje jedynie liczb okrelajc ilo.
<ptu> : kod stawki PTU = A...G . Dopuszcza si uywania (spacja) lub Z dla oznaczenia towarw
zwolnionych w przypadku, gdy w drukarce zdefiniowano jedn stawk zwolnion. O ile zdefiniowano
wicej ni jedn stawk zwolnion drukarka zgosi bd nr 18,
BRUTTO : kwota sprzeday brutto 10 cyfr max, > 0,
CENA : cena jednostkowa brutto podawana z dokadnoci do 1 grosza; format zawierajcy max. 10 cyfr z
precyzj do dwch miejsc po przecinku. Format ten jest kontrolowany i drukowany z kompresj zer
www.posnet.com.pl
18
drukarki@posnet.com.pl
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : zy numer linii (bd parametru Pl),
= 16: bdna nazwa (pusta lub za duga),
= 17: bdne oznaczenie iloci (puste lub za dugie),
= 18: bd spowodowany:
bdnym oznaczeniem stawki PTU (lub brakiem),
bdnym oznaczenia stawki zwolnionej ( lub Z) dla przypadku gdy w drukarce >1 stawek
zwolnionych lub stawka zwolniona nie zostaa zdefiniowana,
prb sprzeday w stawce nieaktywnej,
zadziaaniem mechanizmu kontroli bazy towarowej,
= 19: bd wartoci CENA (syntaktyka, zakres lub brak),
= 20: 1.bd wartoci BRUTTO lub RABAT (syntaktyka, zakres lub brak),
2.bd niespenienia warunku ilo x cena = warto - drukarka sprawdza poprawno przesanych
informacji wg algorytmu :
mnoy cen przez wyowion z iloci liczb,
zaokrgla wynik mnoenia do dwch miejsc po przecinku,
wynik zaokrglenia porwnuje z wartoci (BRUTTO),
przy rabacie kwotowym uwzgldnienie rabatu nie moe prowadzi do ujemnego wyniku
(niespenienie powyszego daje bd #20),
= 21: sekwencja odebrana przez drukark przy wyczonym trybie transakcji,
= 22: bd operacji STORNO (np. prba wykonania w trybie blokowym OFF-LINE, lub gdy w wyniku jej
wykonania suma w danej grupie podatkowej wychodzi ujemna), lub bd operacji z rabatem np.
warto towaru po uwzgldnieniu rabatu wychodzi ujemna,
= 90: operacja tylko z kaucjami, nie mona wysya towarw $l,
= 91: bya wysana forma patnoci, nie mona wysya towarw $l,
= 94: przepenienie kwoty sprzeday (maksymalna kwota sprzeday wynosi 999999.99).
Uwagi:
1.
2.
3.
4.
5.
Numeracja linijek musi by ciga, rwnie jeeli jest wykonywana operacja STORNO, np. poprawna jest
sekwencja numerw 1,2,3,4 ale musi by: 1,2,0,4 jeeli wykonuje si operacj STORNO.
Jeeli jest drukowany paragon w trybie blokowym (parametr Pl w sekwencji LBTRSHDR jest <>0) to
odebrana musi by zadeklarowana wczeniej liczba linijek.
Uwzgldnienie rabatu dla pozycji polega na odjciu od kwoty BRUTTO kwoty rabatu, ktra jest przesana
bezporednio lub wynika z okrelonej stopy procentowej.
Operacja STORNO musi by kontrolowana przez aplikacj, tak aby zgadzaa si cena i ilo usuwanego z
listy towaru. Ponadto naley uwzgldni ew. rabat przy anulowaniu linii paragonu (storno).
Wprowadzono pojcie TIMEOUT dla paragonu, ktre oznacza, e w przypadku nie zakoczenia
drukowania paragonu w cigu 20 minut od momentu jego rozpoczcia drukarka anuluje transakcj
wypisujc na kocu komunikat:
ANULOWANY
#nr_kasy kasjer
HH:MM
NNNNNNNN
www.posnet.com.pl
19
drukarki@posnet.com.pl
NIEFISKALNY
Towar o dugiej nazwie
1.000 x 10,56
Towar1
1.000 x 10,56
NAGWEK
NIP xxx-xxx-xx-xx
DDDDDD
YYYY-MM-DD
PARAGON FISKALNY
Towar o dugiej nazwie
1.000 x 10,56
Towar1
1.000 x 10,56
10,56A
10,56A
DDDDDD
10,56A
10,56A
www.posnet.com.pl
20
drukarki@posnet.com.pl
www.posnet.com.pl
21
drukarki@posnet.com.pl
www.posnet.com.pl
22
drukarki@posnet.com.pl
www.posnet.com.pl
23
drukarki@posnet.com.pl
NAGWEK
NIP XXX-XXX-XX-XX
YYYY-MM-DD
DDDDDD
NIEFISKALNY
TOWAR O DUGIEJ NAZWIE
1,000 x 1,00
1,- A
TOWAR1
1,000 x 1,00
1,- B
TOWAR2
1,000 x 1,00
1,- C
TOWAR3
1,000 x 1,00
1,- G
---------------------------------------SPRZEDA OP. A
0,95
PTU A 22 %
0,17
SPRZEDA OP. B
0,95
PTU B 7 %
0,06
SPRZEDA OP. C
0,95
PTU C 5 %
0,05
SUMA PTU
0,28
SPRZEDA ZW. G
0,95
---------------------------------------RAZEM:
4,00
RABAT:
05 %
YYYY-MM-DD
SUMA
SUMA
3,80
WPATA:
RESZTA:
0002
DDDDDD
PARAGON FISKALNY
TOWAR O DUGIEJ NAZWIE
1,000 x 1,00
1,- A
TOWAR1
1,000 x 1,00
1,- B
TOWAR2
1,000 x 1,00
1,- C
TOWAR3
1,000 x 1,00
1,- G
---------------------------------------SPRZEDA OP. A
0,95
PTU A 22 %
0,17
SPRZEDA OP. B
0,95
PTU B 7 %
0,06
SPRZEDA OP. C
0,95
PTU C 5 %
0,05
SUMA PTU
0,28
SPRZEDA ZW. G
0,95
---------------------------------------RAZEM:
4,00
RABAT:
05 %
NIEFISKALNY
#<nr_kasy> <kasjer>
0002
14:34
4,0,20
#<nr_kasy>
<kasjer>
14:34
PL ABC 00123456
00123456
www.posnet.com.pl
3,80
WPATA:
RESZTA:
4,0,20
24
drukarki@posnet.com.pl
umieszczenie w stopce paragonu wydanej kwoty za zwrot opakowania majcej cisy zwizek z
sekwencjami [LBDEP-] i [LBDEPSTR-] opisanych wczeniej (str. 21 i 22) w postaci:
Rozliczenie opakowa zwrotnych
Zwroty opakowa
Opakowanie zwr.1
1 x <WYDANIE>
-<WYDANIE>
Gdzie:
Pn : ilo dodatkowych linii umieszczanych w stopce paragonu, za logo fiskalnym, do ktrych ma
dostp aplikacja = 0...5, dodatkowe informacje na stronie 29.
Pc = 0 : zachowanie dotychczasowe tzn. zakoczenie drukowania i zakoczenie trybu transakcyjnego,
= 1 : j.w.,
= 2 : wydrukowanie nagwka nowego paragonu i wczenie 'blokowego' trybu transakcyjnego w
specjalny sposb, tzn. od tego momentu urzdzenie realizuje tylko nastpujce sekwencje:
LBTRSHDR, LBTREXIT (tylko anulowanie paragonu), LBDSP oraz LBFSTRQ,
Py : parametr ignorowany,
Px : rodzaj rabatu = 0 : brak,
1 : rabat procentowy,
2 : narzut procentowy,
3 : rabat kwotowy,
4 : narzut kwotowy,
Pg = 0 : kwota WPATA jest ignorowana (zapata w gotwce nie wystpuje),
= 1 : wystpuje zapata w gotwce,
Pk = 0 : kwota KARTA jest ignorowana,
= 1 : kwota KARTA jest drukowana,
Pz = 0 : kwota CZEK jest ignorowana,
= 1 : kwota CZEK jest drukowana,
Pb = 0 : kwota BON jest ignorowana,
= 1 : kwota BON jest drukowana,
Po1 = 0 : kwota PRZYJCIE jest ignorowana,
= 1 : kwota PRZYJCIE jest drukowana
Po2 = 0 : kwota WYDANIE jest ignorowana,
= 1 : kwota WYDANIE jest drukowana
Pr = 0 : kwota RESZTA jest ignorowana,
= 1 : kwota RESZTA jest drukowana,
oraz:
TOTAL : czna naleno dla klienta, dla kontroli poprzednich transferw (ta warto jest kontrolowana
przez drukark),
RABAT : rabat/narzut kwotowy/procentowy dla caej transakcji, kwota lub stopa jest zadana z
dokadnoci do 0.01 jeeli parametr Px<>0,
www.posnet.com.pl
25
drukarki@posnet.com.pl
www.posnet.com.pl
26
drukarki@posnet.com.pl
YYYY-MM-DD
NAGWEK
NIP XXX-XXX-XX-XX
DDDDDD
PARAGON FISKALNY
TOWAR 1
TOWAR 2
www.posnet.com.pl
1x30,00 30,00B
1x15,00 15,00B
27
drukarki@posnet.com.pl
45,00
5,00
50,00
1,00B
1x5,00 5,00A
----------------------------------------------
Sprzed. opodatk. A
Kwota PTU A 22%
Sprzed. opodatk. B
Kwota PTU B 7%
ZNA KWOTA PTU
SUMA
0001 #Kasa: 1
Kasjer:c 2C
PL ABC 12345678
Nr sys.:23a
5,00
0,90
51,00
3,34
4,24
56,00
gg:mm
www.posnet.com.pl
28
drukarki@posnet.com.pl
www.posnet.com.pl
29
drukarki@posnet.com.pl
CR
CR
CR
CR
<opis_rabatu> CR
TOTAL / DSP / RABAT / WPLATA /
RESZTA /
KAUCJA_POBR /
KAUCJA_ZWR /
<check> ESC \
Py = 1 : jeeli tylko moliwe w jednej grupie to drukuj skrcone podsumowanie,
Pdsp = 1 : kwota DSP ujemna,
Px : rodzaj rabatu
= 0 : brak,
= 1 : rabat procentowy,
= 2 : dopata procentowa,
= 3 : rabat kwotowy,
= 4 : dopata kwotowa,
Pkb = 0 : nie wystpuje blok KAUCJA_POBRANA,
= 1..n : blok KAUCJA_POBRANA jest drukowany i zawiera 1.. linii + tytu,
Pkz = 0: nie wystpuje blok KAUCJA_ZWROCONA,
= 1..n : blok KAUCJA_ZWROCONA jest drukowany i zawiera 1.. + tytu,
Pns = 1 : wystpuje string <numer_systemowy>,
= 0 : string <numer_systemowy> jest ignorowany,
Pfn = 0: nie ma form patnoci, nie wystpuje blok nazw form patnoci,
= 1..n : po parametrze Pfn wystpuj parametry Pfx okrelajce rodzaj formy patnoci, wystpuje blok
Pfn nazwy form patnoci,
Pr = 0 : kwota RESZTA jest ignorowana,
= 1 : kwota RESZTA jest drukowana,
Pg = 0 : kwota WPLATY jest ignorowana (wplata gotwki nie wystpuje),
= 1 : wystpuje wplata gotwki,
Pfx : parametr
= 0 : parametry w dalszej czci sekw. odnoszce si do tej formy patnoci s ignorowane
= 1 : kwota FORM_PLAT jest drukowana, jest to karta patnicza,
= 2 : kwota FORM_PLAT jest drukowana, jest to czek,
= 3 : kwota FORM_PLAT jest drukowana, jest to bon,
= 4 : kwota FORM_PLAT jest drukowana, jest to inna forma patnoci,
= 5 : kwota FORM_PLAT jest drukowana , jest to kredyt,
Psx = 0 nie wystpuje pole opis rabatu, Psx>0 wystpuje pole opis rabatu
oraz:
<nr_kasy> : string[8], nazwa kasy, max 8 dowolnych znakw,
<kasjer> : string[17], nazwa kasjera, max 17 dowolnych znakw,
<linia1>, <linia2>, <linia3> : string[40], zawarto linii dodatkowych. Istnieje moliwo przesania numeru
systemowego za pomoc dodatkowych linii w stopce paragonu . Jeeli Pns=0 i parametr napisowy w linii 1
zaczyna si od #, to jest on traktowany jako nr systemowy. Jeeli po pierwszym znaku # zostanie wykryty
cig znakw #XXXX...XXX# gdzie X jest znakiem alfanumerycznym, cig ten nie jest drukowany w linii,
lecz pod spodem w postaci kodu kreskowego. Dugo przesyanego w ten sposb stringu wynosi od 3 do
maksymalnie 15 liter, znakw specjalnych lub 30 cyfr (liczba cyfr nie moe by =29). W przypadku uywania
kombinacji obu typw znakw, maksymalna ilo cyfr i liter okrelona jest w specyfikacji kodu EAN 128.
Pozostae linie drukowane s jako dodatkowe linie w stopce paragonu. W sekwencji $x w przypadku
zdeklarowania linii 1 jako nr sys. w stopce wydrukuje si rwnie linia 4, o ile zostaa przesana.
<opis_rabatu> : srting[16] umoliwiam wydrukowanie nazwy rabatu/narzutu.
<numer_systemowy> : string[30] numer systemowy transakcji. Moe zawiera: do 10 znakw
alfabetycznych. Znaki specjalne `~#$@%^&*()_-+=[{]}\|;:' ",<.>/?! i cyfry s drukowane bez ogranicze
<nazwa_form_plat_> : string[16], dodatkowe okrelenia form patnoci,
<numer_kaucji_pobr_>, <numer_kaucji_zwr_> : string[4], numer opakowania kaucjonowanego,
TOTAL : czna naleno dla klienta, dla kontroli poprzednich transferw - ta warto jest kontrolowana
przez drukark. Kwota TOTAL jest suma wszystkich linii paragonu, skorygowanych o kwot lub warto
www.posnet.com.pl
30
drukarki@posnet.com.pl
www.posnet.com.pl
31
drukarki@posnet.com.pl
3. Nastpujce pola :
linie1..3,
nazwy form patnoci,
numery kaucji pobranych,
iloci kaucji pobranych,
numery kaucji zwrconych,
iloci kaucji zwrconych,
kwoty form patnoci,
kwoty kaucji pobranych,
kwoty kaucji zwrconych,
nie mog wystpi w sekwencji (nie mog take wystpi ich terminatory) jeeli odpowiadajcy im
parametr bajtowy ma warto zero.
Pozostae pola :
numer systemowy,
rabat,
wpata,
reszta,
musz wystpi, nawet jeli odpowiadajcy im parametr bajtowy wynosi 0. Wartoci zawarte w tych polach
zostan przez drukark zignorowane.
www.posnet.com.pl
32
drukarki@posnet.com.pl
YYYY-MM-DD
NAGWEK
NIP XXX-XXX-XX-XX
DDDDDD
NIEFISKALNY
TOWAR O DUGIEJ NAZWIE
1,000 x 1,00
1,- A
TOWAR1
1,000 x 1,00
1,- B
TOWAR2
1,000 x 1,00
1,- C
TOWAR3
1,000 x 1,00
1,- G
---------------------------------------SPRZEDA OP. A
0,95
PTU A 22 %
0,17
SPRZEDA OP. B
0,95
PTU B 7 %
0,06
SPRZEDA OP. C
0,95
PTU C 5 %
0,05
SUMA PTU
0,28
SPRZEDA ZW. G
0,95
---------------------------------------RAZEM:
4,00
RABAT:
05 %
SUMA
3,80
0002
#1 WD
14:34
YYYY-MM-DD
NAGWEK
NIP XXX-XXX-XX-XX
DDDDDD
PARAGON FISKALNY
TOWAR O DUGIEJ NAZWIE
1,000 x 1,00
1,- A
TOWAR1
1,000 x 1,00
1,- B
TOWAR2
1,000 x 1,00
1,- C
TOWAR3
1,000 x 1,00
1,- G
---------------------------------------SPRZEDA OP. A
0,95
PTU A 22 %
0,17
SPRZEDA OP. B
0,95
PTU B 7 %
0,06
SPRZEDA OP. C
0,95
PTU C 5 %
0,05
SUMA PTU
0,28
SPRZEDA ZW. G
0,95
---------------------------------------RAZEM:
4,00
RABAT:
05 %
SUMA
3,80
0002
#1 WD
14:34
NIEFISKALNY
00123456
PL ABC 00123456
NIEFISKALNY
Rozliczenie opakowa zwrotnych
Przyjcia opakowa
Opakowanie zwr.1
ilo x CENA
warto
...
Opakowanie zwr.5
ilo x CENA
warto
Zwroty opakowa
Opakowanie zwr.1
ilo x CENA
-warto
...
Opakowanie zwr.5
ilo x CENA
-warto
[Do zapaty:
kwota]
[DO ZWROTU:
kwota]
[GOTWKA:
kwota]
[KARTA <nazwa_karty>
kwota]
[BON <nazwa_bonu>
kwota]
[CZEK <nazwa_czeku>
kwota]
[INNA <nazwa_innej>
kwota]
[KREDYT <nazwa_kredytu>
kwota]
[WPATA:
kwota]
[RESZTA:
kwota]
[NUMER SYSTEMOWY: <nr systemowy>]
[LINIA 1]
[LINIA 2]
[LINIA 3]
NIEFISKALNY
Rozliczenie opakowa zwrotnych
Przyjcia opakowa
Opakowanie zwr.1
ilo x CENA
warto
...
Opakowanie zwr.5
ilo x CENA
warto
Zwroty opakowa
Opakowanie zwr.1
ilo x CENA
-warto
...
Opakowanie zwr.5
ilo x CENA
-warto
[Do zapaty:]
[kwota]
[DO ZWROTU:]
[kwota]
[GOTWKA:]
[kwota]
[KARTA <nazwa_karty>]
[kwota]
[BON <nazwa_bonu>]
[kwota]
[CZEK <nazwa_czeku>]
[kwota]
[INNA <nazwa_innej>]
[kwota]
[KREDYT <nazwa_kredytu>]
[kwota]
[WPATA:]
[kwota]
[RESZTA:]
[kwota]
[NUMER SYSTEMOWY: <nr systemowy>]
[LINIA 1]
[LINIA 2]
[LINIA 3]
www.posnet.com.pl
33
drukarki@posnet.com.pl
KWOTA_ZA_OPAKOWANIE_PRZYJTE/
Gdzie:
<nazwa opakowania przyjtego> - numer opakowania (liczba z zakresu 0...65535)
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
=4 : bd parametru
=82: niedozwolony rozkaz w transakcji z $z
=83: nie zgadza si wysoko kwoty za opakowanie
Uwaga:
1.
2.
3.
www.posnet.com.pl
34
drukarki@posnet.com.pl
Koniec wydruku
ESC P 28; Pc $z <check> ESC \
Gdzie:
Pc : rodzaj zakoczenia (jak w $e)
= 0: zachowanie 'dotychczasowe' tzn. zakoczenie drukowania i zakoczenie trybu transakcyjnego,
= 1 : j.w.,
= 2 : wydrukowanie nagwka nowego paragonu i wczenie 'blokowego' trybu transakcyjnego w specjalny
sposb, tzn. od tego momentu urzdzenie realizuje tylko nastpujce sekwencje: LBTRSHDR,
LBTREXIT (tylko anulowanie paragonu), LBDSP oraz LBFSTRQ,
Uwagi:
1.
2.
Po rozkazie $y mona od razu wysa rozkaz 28;Pc $z , ktry spowoduje dodatkowo wydrukowanie
brakujcych elementw czyli kaucje i/lub formy patnoci.
Kwota wysyanych kaucji w 4$z i 8$z nie moe przekroczy kwot wysanych podczas transakcji, ale
moe by mniejsza.
www.posnet.com.pl
35
drukarki@posnet.com.pl
www.posnet.com.pl
36
drukarki@posnet.com.pl
YYYY-MM-DD
NAGWEK
NIP XXX-XXX-XX-XX
DDDDDD
NIEFISKALNY
RAPORT ZMANOWY
ZMIANA: <zmiana>
KASJER: <kasjer>
PRZYCHODY:
<PRZYCHOD>
SPRZEDA GOTWKOWA:
<SPRZED_GOTOWKA>
KARTA <nazwa_karty1>
<KARTA1>
KARTA <nazwa_karty2>
<KARTA2>
KARTA <nazwa_karty3>
<KARTA3>
KARTA <nazwa_karty4>
<KARTA4>
KARTA <nazwa_karty5>
<KARTA5>
KARTA <nazwa_karty6>
<KARTA6>
KARTA <nazwa_karty7>
<KARTA7>
KARTA <nazwa_karty8>
<KARTA8>
CZEK
<CZEK1>
<nazwa_czeku1>
CZEK
<CZEK2>
<nazwa_czeku2>
CZEK
<CZEK3>
<nazwa_czeku3>
CZEK
<CZEK4>
<nazwa_czeku4>
BON
<BON1>
<nazwa_bonu1>
BON
<BON2>
<nazwa_bonu2>
BON
<BON3>
<nazwa_bonu3>
BON
<BON4>
<nazwa_bonu4>
WPATY DO KASY:
<WPLATY>
PRZYJCIA:
<PRZYJCIA>
WYPATY Z KASY:
<WYPLATY>
WYDANIA:
<WYDANIA>
STAN KASY:
<STAN_KASY>
ILO PARAGONW FISKALNYCH:
<il_parag>
ILO PARAGONW ANULOWANYCH:
<il_anul>
ILO STORNOWANYCH POZYCJI:
<il_storno>
POCZTEK ZMIANY:
<poczatek>
KONIEC ZMIANY:
<koniec>
NIEFISKALNY
[#<nr_kasy>] <kasjer>
HH:MM
00123456
www.posnet.com.pl
37
drukarki@posnet.com.pl
www.posnet.com.pl
38
drukarki@posnet.com.pl
DDDDDD
NIEFISKALNY
RAPORT ZMANOWY
ZMIANA: <zmiana>
KASA:
<nr_kasy>
KASJER: <kasjer>
----------------------------------------<PRZYCHOD>
PRZYCHODY:
<GOTOWKA>
SPRZEDA GOTWKOWA:
<WPLATY>
WPATY DO KASY:
<FORM_PLAT_1>
<nazwa_form_plat_1>
...
<FORM_PLAT_1>
<nazwa_form_plat_Pfn>
<KAUCJA_POBRANA>
KAUCJA POBRANA:
<KAUCJA_POBR1>
<nazwa_kaucji_pobr_1>
...
<KAUCJA_POBR_Pkb>
<nazwa_kaucji_pobr_Pkb>
----------------------------------------<ROZCHOD>
ROZCHODY:
<WYPLATY>
WYPATY Z KASY:
<KAUCJA_ZWRCONA>
KAUCJA ZWRCONA:
<KAUCJA_ZWR1>
<nazwa_kaucji_zwr_1>
...
<KAUCJA_zwr_Pkz>
<nazwa_kaucji_zwr_Pkz>
<STAN_KASY>
STAN KASY:
----------------------------------------<il_parag>
ILO PARAGONW:
<il_anul>
ILO ANULACJI:
<il_storno>
ILO STORNO:
POCZTEK ZMIANY:
<poczatek>
KONIEC ZMIANY:
<koniec>
NIEFISKALNY
#<Nr_kasy> <kasjer>
HH:MM
00123456
www.posnet.com.pl
39
drukarki@posnet.com.pl
Wprowadzamy tu nowy typ parametru: num[n] oznaczajcy n- znakowy cig cyfr i/lub ew. spacji.
Tak jak w innych sekwencjach sterujcych parametry typu string mog zawiera dowolne znaki
drukowalne.
Jeeli parametr Pn = 0 lub 1, to na pierwszym dokumencie drukowany jest, opis Orygina dla sprzedawcy
a na drugim opis Kopia dla kupujcego. Opis jest drukowany bezporednio przed kocowym napisem
niefiskalny.
Informacje przesyane za pomoc tej sekwencji nie s w aden sposb kontrolowane przez drukark.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 4 : bd parametru Ps,
= 2 : bd bajtu kontrolnego,
= 5 : bd odczytu zegara RTC,
(pozostae kody bdw)
= 41 : bd napisu <numer_kasy> (za dugi lub zawierajcy bdne znaki),
= 42 : bd napisu <numer_kasjera>,
= 43 : bd napisu <numer_par>,
= 44 : bd napisu <kontrahent>,
= 45 : bd napisu <terminal>,
= 46 : bd napisu <nazwa_karty>,
= 47 : bd napisu <numer_karty>,
= 48 : bd napisu <data_m>,
= 49 : bd napisu <data_r>,
= 50 : bd napisu <kod_autoryz>,
= 51 : bd wartoci <kwota>.
www.posnet.com.pl
40
drukarki@posnet.com.pl
DDDDDD
NIEFISKALNY
KASA:
<nr_kasy>
KASJER: <nr_kasjera>
NUMER DOWODY SPRZEDAY:
<numer_par>
TID: <terminal>
UID: <kontrahent>
NUMER DOWODU SPRZEDAY:
KARTA: <nazwa_karty>
<numer_karty> WANA DO:
<data_r>/<d_m>
NUMER AUTORYZACJI:
<kod_autoryz>
SPRZEDA:
PLN
<kwota>
HH:MM
00123456
www.posnet.com.pl
41
drukarki@posnet.com.pl
Tak jak w innych sekwencjach sterujcych parametry typu string mog zawiera dowolne znaki
drukowalne.
2. Jeeli parametr Pn = 0 lub 1, to na pierwszym dokumencie drukowany jest, opis Orygina dla sprzedawcy
a na drugim opis Kopia dla kupujcego. Opis jest drukowany bezporednio przed kocowym napisem
niefiskalny.
YYYY-MM-DD WW
NAGWEK
NIP XXX-XXX-XX-XX
DDDDDD
NIEFISKALNY
KASA:
<nr_kasy>
KASJER:
<nr_kasjera>
NUMER DOWODY SPRZEDAY:
<numer_par>
TID: <terminal>
UID: <kontrahent>
NUMER DOWODU SPRZEDAY:
KARTA: <nazwa_karty>
<numer_karty> WANA DO:
<data_r>/<d_m>
NUMER AUTORYZACJI:
<kod_autoryz>
UZNANIE:
PLN
<kwota>
HH:MM
www.posnet.com.pl
42
drukarki@posnet.com.pl
www.posnet.com.pl
43
drukarki@posnet.com.pl
YYYY-MM-DD
NAGWEK
NIP XXX-XXX-XX-XX
DDDDDD
NIEFISKALNY
RAPORT ZMANOWY
ZMIANA:
<zmiana>
KASJER:
<kasjer>
SPRZEDA:
Kwota
ILO PARAGONW FISKALNYCH:
Liczba
ILO PARAGONW ANULOWANYCH:
Liczba
ILO STORNOWANYCH POZYCJI:
Liczba
WPATY DO KASY:
Kwota
WYPATY Z KASY:
Kwota
STAN KASY:
Kwota
POCZTEK ZMIANY:
yy-mm-dd HH:MM
KONIEC ZMIANY:
yy-mm-dd HH:MM
NIEFISKALNY
[#<nr_kasy>] <kasjer>
00123456
HH:MM
www.posnet.com.pl
44
drukarki@posnet.com.pl
www.posnet.com.pl
45
drukarki@posnet.com.pl
Kod bdu:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 3 : za ilo parametrw,
= 4 : bd parametrw (wartoci dat, obejmuje rwnie sytuacje, gdy data kocowa jest wczeniejsza od
pocztkowej, brak zapisu w module fiskalnym dla podanego zakresu dat),
= 6 : bd operacji z pamici fiskaln (fatalny).
www.posnet.com.pl
46
drukarki@posnet.com.pl
www.posnet.com.pl
47
drukarki@posnet.com.pl
<check> ESC \
www.posnet.com.pl
48
drukarki@posnet.com.pl
www.posnet.com.pl
49
drukarki@posnet.com.pl
www.posnet.com.pl
50
drukarki@posnet.com.pl
www.posnet.com.pl
51
drukarki@posnet.com.pl
www.posnet.com.pl
52
drukarki@posnet.com.pl
www.posnet.com.pl
53
drukarki@posnet.com.pl
ESC P 12#X
Year; Month; Day; Hour; Min; Sec;
Reason;
Nr;
0;
0/
0/ 0/ 0/ 0/ 0/ 0/ 0/
<check> ESC \
gdzie: reason przyczyna zerowania: 0x10 zewntrzna, 0x01 wewntrzna.
Nr numer zerowania
Rekord rozpoczcia sprzeday po zerowaniu pamici RAM:
ESC P 13#X
Year; Month; Day; Hour; Min; Sec;
0;
0;
0;
0/
0/ 0/ 0/ 0/ 0/ 0/ 0/
<check> ESC \
Nie ma wicej rekordw do odczytania:
ESC P 25#X
2000; 1; 1; 0; 0; 0;
0;
0;
0;
0/
0/ 0/ 0/ 0/ 0/ 0/ 0/
<check> ESC \
www.posnet.com.pl
54
drukarki@posnet.com.pl
Rozpoczcie wydruku
ESC P 0; P2 [;P3] $w <check> ESC \
Gdzie:
P2 : numer raportu, ktrego nagwek ma by drukowany,
P3 : numer nagwka, ktry ma by wydrukowany (niektre raporty maj kilka zdefiniowanych nagwkw)
Jeli wydruk ma tylko jeden rodzaj nagwka, to P3 powinno mie warto 0.
Linia wydruku
ESC P P1; P2 $w [<arg1> CR ... <argn> CR ] <check> ESC \
Gdzie:
P1: nr raportu do wydrukowania
P2 : oznacza numer linii, ktra ma by wydrukowana (liczenie linii zaczynamy od
zera, pomijajc te, ktre s nagwkami). Jeli P2=255 - oznacza pust lini.
arg1..argn : dowolny cig znakw ze zbiorw: {'a'..'z'}, {'A'..'Z'},{'0'..'9'},{""},
"{"`~@#$%^&*()_-+=[{]}\|;:'",<.>/? "},
linie numeryczne akceptuj: cyfry, pierwsze 3 litery, znaki specjalne,
linie literowe akceptuj: litery, pierwsze 3 cyfry, znaki specjalne.
Zakoczenie wydruku
ESC P 1; P2; P3; P4 $w [ <nr_systemowy> CR ] [ <dod_linia_1> CR ][<dod_linia_2> CR]
[<dod_linia_3> CR] <check> ESC \
Gdzie:
P2 : oznacza numer raportu, ktrego stopka ma by drukowana,
jeli P2=255 to wysanie tej sekwencji przed dowolnym wydrukiem niefiskalnym (nie tylko $w)
spowoduje wydrukowanie na kocu wydruku numeru systemowego oraz dodatkowych linii.
P3 : 0-nie wystpuje nr systemowy, 1-wystpuje nr systemowy. Przykad znajduje si poniej - linia drukuje
si po numerze unikatowym
P4: 0-brak dodatkowych linii, n-liczba dodatkowych linii (maksymalnie 3)
Przykad:
# NIEFISKALNY #
#nn
kkkkkk
Nr
<linia nr
<linia nr
<linia nr
gg:mm
12345678
systemowy 001-00001-00012
1>
2>
3>
2 - Transakcje odoone
1234567890123456789012345678901234567890
# NIEFISKALNY #
www.posnet.com.pl
55
drukarki@posnet.com.pl
TRANSAKCJE ODOONE
POTWIERDZENIE DOKONANIA TRANSAKCJI
0
1
Kasa: ##################################
Numer transakcji: ######################
Numer kasjera: #########################
0
1
2
nag wek
# NIEFISKALNY #
Uwagi:
1. Parametry s parametrami alfanumerycznymi .
3 - Funkcje operatora
1234567890123456789012345678901234567890
# NIEFISKALNY #
nag wek
##########################
# NIEFISKALNY #
Uwagi:
1. Pierwszy parametr jest parametrem numerycznym (moe zawiera: cyfry, znaki specjalne, max. 3 litery).
2. Drugi parametr jest parametrem literowym.
3. Linia Funkcja, moe wystpowa wielokrotnie.
4 - Raport kasjera
1234567890123456789012345678901234567890
# NIEFISKALNY #
RAPORT KASJERA X
RAPORT KASJERA Z
RAPORT KASY X
RAPORT KASY Z
OFFLINE KASJERA
ONLINE KASJERA
0
1
2
3
4
5
0
1
SUMY CZNE
www.posnet.com.pl
nag wek
nag wek
nag wek
nag wek
nag wek
nag wek
2
56
drukarki@posnet.com.pl
BIECA DODATNIA
BIECA UJEMNA
POPRZEDNIA DODATNIA
POPRZEDNIA UJEMNA
SUMA
SUMA
SUMA
SUMA
###############
###############
###############
###############
###############
###############
SUMY SPRZEDAY
3
4
5
6
7
8
9
10
###############
###############
###############
###############
###############
11
12
13
14
15
16
###############
17
PODSUMA TOWARW
###############
18
PODSUMA PODATKU
###############
19
#####
#####
#####
#####
#####
TOWARY:
POZYCJE DODATNIE
USUGI, INNE
POZYCJE UJEMNE
DODATNIE KOREKTY
UJEMNE KOREKTY
20
RABAT / NARZUT
###############
###############
###############
###############
21
22
23
24
PODSUMA RABATU/DOPATY
###############
###############
25
26
27
RABAT
RABAT
RABAT
RABAT
HEJ HEM
/ DOPATA
/ DOPATA
DLA PRACOWNIKA
------------
28
RODKI PATNOCI
29
www.posnet.com.pl
57
30
31
32
33
34
35
drukarki@posnet.com.pl
###############
37
36
###############
38
39
40
41
42
43
44
45
46
47
INNE SUMY
OBNIKI DODATNIE
OBNIKI UJEMNE
KOREKCJE BDW
SUMA ZWROTW
ZWROTY KOSZTW
RODKI UNIEWAN.
POZYCJE SPRZEDAY
RABAT ZBIORCZY
SPRZEDA ANULOWANA
SPRZEDA ZAPAMIT.
SPRZEDA UNIEWAN.
SPRZEDA PRZYWO.
ZAMIANA R. PATN.
BEZ PODATKU
KWOTA ZWOLNIONA
ZWROT NADPAC. VAT
ZNACZKI WYEMITOW.
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
######%
######%
######%
###############
65
66
67
68
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
69
70
71
72
73
74
TRANSAKCJE DODATNIE
ZWROT NADPACONEJ GOTWKI
INNE TRANSAKCJE
OTWARCIE SZUFLADY
SUMA BIECA
LICZBA KLIENTW
www.posnet.com.pl
58
drukarki@posnet.com.pl
75
76
77
78
79
Uwagi:
1.
2.
3.
1
2
3
4
5
PODSUMA R. PATNOCI
###############
# NIEFISKALNY #
Uwagi:
1.
2.
3.
4.
1234567890123456789012345678901234567890
# NIEFISKALNY #
SPRZEDA ZAREJ. W KASIE
www.posnet.com.pl
59
drukarki@posnet.com.pl
1
2
3
4
# NIEFISKALNY #
Uwagi:
1.
Wszystkie parametry s parametrami numerycznymi (mog zawiera: cyfry, znaki specjalne, max. 3 litery).
7 Pokwitowanie
1234567890123456789012345678901234567890
# NIEFISKALNY #
POKWITOWANIE
ZWROT: #################################
1
2
3
PODPIS: ..............................
# NIEFISKALNY #
Uwagi:
1.
2.
8 Przedpata
1234567890123456789012345678901234567890
# NIEFISKALNY #
PRZEDPATA
NUMER ZAMWIENIA: ######################
RODEK P.: ############################
KWOTA: #################################
KONTO: #################################
PRZEDPATA: ############################
RESZTA:
############################
0
1
2
3
4
5
# NIEFISKALNY #
www.posnet.com.pl
60
drukarki@posnet.com.pl
Uwagi:
1.
2.
3.
0
1
2
PODPIS: ..............................
# NIEFISKALNY #
Uwagi:
1.
Wszystkie parametry s parametrami numerycznymi (mog zawiera: cyfry, znaki specjalne, max. 3 litery).
##################################
##################################
0
1
# NIEFISKALNY #
Uwagi:
1.
Parametry alfanumeryczne.
www.posnet.com.pl
61
drukarki@posnet.com.pl
1234567890123456789012345678901234567890
# NIEFISKALNY #
OPERACJE KASOWE
OPERACJA ###: ##########################
# NIEFISKALNY #
Uwagi:
1.
2.
3.
Pierwszy parametr jest parametrem numerycznym (moe zawiera: cyfry, znaki specjalne, max. 3 litery).
Drugi parametr jest parametrem swobodnym.
Linia Operacja moe wystpowa wielokrotnie.
1234567890123456789012345678901234567890
# NIEFISKALNY #
BDY KASY
BD KRYTYCZNY (FATAL ERROR)
Serwis : ###########################
Urzdzenie : ######################
Urzdzenie dod. : #####################
Funkcja : #########################
Podfunkcja : ###########################
Rejestr # : ###########################
Trans
# : ###########################
Kod b du : ###########################
0
1
2
3
4
5
6
7
8
# NIEFISKALNY #
Uwagi:
1.
2.
Wszystkie parametry s parametrami swobodnymi stay opis przed parametrem jest jednoznaczny.
aden z parametrw nie jest kontrolowany przez drukark.
www.posnet.com.pl
62
drukarki@posnet.com.pl
0
1
2
3
SKLEP #########################
DATA ######## ########
0
1
2
3
4
5
########,##
###########
########,##
###########
# NIEFISKALNY #
UWAGI:
1.Nazwa sklepu jest parametrem swobodnym, natomiast pozostae parametry s parametrami numerycznymi (mog
zawiera: cyfry, znaki specjalne, max. 3 litery).
www.posnet.com.pl
63
drukarki@posnet.com.pl
-kwota rabatu
:=
:=
:=
:=
:=
:=
:=
0;
0;
0;
0;
0;
0;
0.
www.posnet.com.pl
64
drukarki@posnet.com.pl
wartoci
BRUTTO
kodu
stawki
PTU,
obliczna wg algorytmu
lub
BRUTTO[PTU] := BRUTTO[PTU] + BRUTTO + NARZUT
{narzut kwotowy}
lub
BRUTTO[PTU] := BRUTTO[PTU] + BRUTTO*(1 + NARZUT/100){narz. %}
oraz:
{ brak rabatu/narzutu}
{ rabat kwotowy }
obliczna wg algorytmu
lub
P_TOTAL := P_TOTAL + BRUTTO + NARZUT
{ narzut kwotowy}
lub
P_TOTAL := P_TOTAL + BRUTTO*(1 + NARZUT/100){ narzut procentowy }
gdzie: RABAT, NARZUT - umieszczana przez aplikacj w sekwencji linii paragonu warto
pola RABAT
(procentowa lub kwotowa) , powodujca zwikszenie lub zmniejszenie kwoty nalenoci dla klienta.
Wszystkie wyej wymienione obliczenia s prowadzone z precyzj 10-cyfrow. Wystpienie nadmiaru
obliczeniowego spowoduje zgoszenie bdu (w tym przypadku bdzie to zgoszone jako kod bdu 19 bd
wartoci CENA).
Warto chwilowa P_TOTAL w przypadku realizacji transakcji w trybie On-Line
jest te wysyana na wywietlacze klienta i operatora (wraz z nazw towaru).
UWAGA:
Naliczanie podatku PTU w grupach A..F jest prowadzone wg zasady:
sumowanie kwot sprzeday BRUTTO w grupach A..G i obliczanie kwot nalenego podatku w
grupach na podstawie sum obliczanych jak wyej.
Po zakoczeniu transakcji przez system (odebraniu poprawnej sekwencji koczcej paragon) otrzymujemy
wartoci:
BRUTTO[A]BRUTTO[G], P_TOTAL.
Wynik P_TOTAL porwnywany jest z wartoci TOTAL otrzyman z systemu w sekwencji koczcej paragon. Aby
poprawnie zakoczy transakcj obie te kwoty musz by jednakowe.
Jeeli w sekwencji koczcej paragon przesano niezerow warto rabatu i niezerowy parametr Px ( Px
rodzaj rabatu/narzutu ) to nastpuje korekcja sum BRUTTO[A]..BRUTTO[G] wedug wzorw:
BRUTTO[PTU]:= wg algorytmu opsanego we wstpie {rabat %}
lub
BRUTTO[PTU]:= BRUTTO[PTU] -
RABAT
{rabat kwotowy}
lub
RABAT/100 ) {narzut %}
BRUTTO[PTU]:= BRUTTO[PTU]*( 1 +
lub
BRUTTO[PTU]:= BRUTTO[PTU] +
RABAT
{narzut kwotowy}
gdzie: RABAT warto rabatu lub narzutu (procentowa lub kwotowa) przesana w sekwencji koca paragonu w
polu RABAT.
Przykad:
www.posnet.com.pl
65
drukarki@posnet.com.pl
:=
:=
:=
:=
:=
:=
:=
BRUTTO[A]
BRUTTO[B]
BRUTTO[C]
BRUTTO[D]
BRUTTO[E]
BRUTTO[F]
BRUTTO[G]
*
*
*
*
*
*
*
(1
(1
(1
(1
(1
(1
(1
+
+
+
+
+
+
+
RABAT
RABAT
RABAT
RABAT
RABAT
RABAT
RABAT
/
/
/
/
/
/
/
100),
100),
100),
100),
100),
100),
100).
:=
:=
:=
:=
:=
:=
:=
BRUTTO[A]
BRUTTO[B]
BRUTTO[C]
BRUTTO[D]
BRUTTO[E]
BRUTTO[F]
BRUTTO[G]
/
/
/
/
/
/
/
(1
(1
(1
(1
(1
(1
(1
+
+
+
+
+
+
+
STAWKA[A]
STAWKA[B]
STAWKA[C]
STAWKA[D]
STAWKA[E]
STAWKA[F]
STAWKA[G]
/
/
/
/
/
/
/
100),
100),
100),
100),
100),
100),
100).
.....
+ BRUTTO[G]
(poniewa kwoty po prawej stronie rwnania zostay przeliczone wczeniej przy uwzgldnieniu wielkoci
rabatu/narzutu).
Tak uzyskana suma drukowana jest w linii o podwjnej szerokoci (pod hasem SUMA z), jako ostateczna kwota
nalenoci dla klienta.
Jeeli paragon zakoczono sekwencj z uwzgldnieniem kaucji, to ostateczna kwota do zapaty przez klienta jest
liczona wg wzoru:
P_TOTAL :=
BRUTTO[A]+ + BRUTTO[G]+KAUCJA_POBRANA-KAUCJA_ZWROCONA
Jeeli w sekwencji koczcej transakcj aplikacja przesaa warto wpaty przez klienta (WPLATA), to:
RESZTA := WPLATA P_TOTAL;
Jeeli wynik jest dodatni to na paragonie drukowane s dwie dodatkowe linie zawierajce wielko wpaty oraz
reszty.
Ostatnim etapem realizacji transakcji jest aktualizacja totalizerw drukarki, ktre zawieraj nastpujce
lokacje:
kwoty sprzeday BRUTTO w grupach podatkowych:
TOT[A], TOT[B], TOT[C], TOT[D], TOT[E], TOT[F], TOT[G], oraz
www.posnet.com.pl
66
drukarki@posnet.com.pl
:=
:=
:=
:=
:=
:=
:=
TOT[A]
TOT[B]
TOT[C]
TOT[D]
TOT[E]
TOT[F]
TOT[G]
+
+
+
+
+
+
+
BRUTTO[A],
BRUTTO[B],
BRUTTO[C],
BRUTTO[D],
BRUTTO[E],
BRUTTO[F],
BRUTTO[G].
Zakres licznika paragonw na raporcie dobowym wynosi: 9999, zakresy sum sprzeday dobowej wynosz 99 999
999,99 .
Jeeli w wyniku wykonania sekwencji koczcej paragon wystpi bd nr 28 (przepenienie totalizerw), czyli
obrt dzienny w co najmniej jednej z grup podatkowych przekracza powyszy zakres naley wtedy wykona
raport dobowy i ponowi wykonanie transakcji.
Obliczenia realizowane w trakcie drukowania raportu dobowego
Wykonanie raportu dobowego jest zwizane z nastpujcymi operacjami:
- dzienna sprzeda BRUTTO w grupach podatkowych (wartoci TOT[A]...TOT[G] zostaje przepisana z
totalizerw do pamici fiskalnej (pamici trwaej PROM !),
- po dokonaniu tego zapisu lokacje totalizerw s zerowane,
- drukowany jest odpowiedni raport , zawierajcy kwoty NETTO sprzeday w grupach podatkowych,
kwoty nalenego podatku dla danych grup podatkowych, czn kwot nalenego podatku oraz czny
obrt.
Technika obliczania danych dla raportu dobowego ma due znaczenie, poniewa stanowi one podstaw do
rozliczenia podatku PTU w odrnieniu od danych o nalenym podatku zawartych na paragonach, ktre maj
charakter wycznie informacyjny.
Niezalenie od przyjtego sposobu obliczania PTU dla paragonw, z uwagi na zaokrglenia
numeryczne, podatek obliczany na podstawie dziennej sprzeday w grupach podatkowych
bdzie nieco si rni od uzyskanego ze zsumowania kwot PTU drukowanych na paragonach
w danym okresie.
Przyjty sposb naliczania podatku dla raportu dobowego zosta uzgodniony z Ministerstwem Finansw i jest
nastpujcy.
-
Kwoty sprzeday NETTO dla poszczeglnych grup podatkowych s wyliczane na podstawie kwot sprzeday
BRUTTO akumulowanych w TOTALIZERACH drukarki, zwikszanych z kad transakcj
(TOT[A]...TOT[G]) oraz tablicy aktualnych stawek PTU (STAWKA[A]..STAWKA[G]) :
R_NETTO[A] := TOT[A] / (1 + STAWKA[A] / 100),
............
R_NETTO[G] := TOT[G] / (1 + STAWKA[G] / 100).
(przyjto oznaczenia R_NETTO[A]...R_NETTO[G] dla odrnienia od analogicznych kwot wyliczanych dla
paragonu). Wyniki powyszych oblicze s zaokrglane do pozycji 0,01 z .
2.) Na raporcie s zawsze drukowane kwoty R_NETTO[A]..R_NETTO[G] dla aktywnych stawek PTU(nawet
jeeli odpowiednie kwoty s zerowe !).
S one opatrzone tytuem:
SPRZED. OPODATK. PTU x,
gdzie x = A..G identyfikuje grup podatkow.
Ponadto drukowana jest sprzeda w grupie zwolnionej od podatku, akumulowana w lokacji totalizera TOT[X] i
oznaczona tytuem:
SPRZED. ZWOLN. PTU x
www.posnet.com.pl
67
drukarki@posnet.com.pl
TOT[G] R_NETTO[G].
R_PTU[A]...R_PTU[G] (nie
rwnych
0,00%).
5.) Obliczana jest czna kwota nalenego podatku oraz czna sprzeda:
TOT_PTU := R_PTU[A] + .... + R_PTU[G],
R_TOTAL := TOT[A] + .... + TOT[G],
(te obliczenia s prowadzone z precyzj 14-cyfrow, std nadmiar arytmetyczny nie moe wystpi, nawet jeeli
wartoci lokacji totalizerw TOT[A]..TOT[G] s bliskie maksymalnym).
6.) Obie kwoty s drukowane na raporcie dobowym i opatrzone tytuami:
oraz
Na raporcie dobowym jest rwnie drukowana liczba i kwota anulowanych paragonw a take liczba paragonw
fiskalnych wydrukowanych od ostatniego raportu dobowego. Licznik paragonw fiskalnych drukarki (lokacja
PAR_NUM
totalizerw)
zlicza
paragony
i jest zerowany w momencie drukowania raportu dobowego .
Uwaga !
Jeeli byo zerowanie RAM, to licznik paragonw zosta wyzerowany.
Aktualna liczba paragonw jest drukowana na raporcie pod tytuem:
ILO PARAGONW.
Uwaga !
Jeeli przed rozpoczciem sprzeday w danym dniu wykonywano zmiany w bazie towarowej drukarki to na
wydruku raportu dobowego pojawi si informacja o tych zmianach.
Obliczenia realizowane w trakcie drukowania raportu okresowego
Podstawowa cz raportu okresowego skada si z sekwencyjnego opisu poszczeglnych rekordw
(zapisw) w pamici fiskalnej. Zapisy te dotycz rnych sytuacji mog to by raporty dobowe, zmiany stawek
PTU, zerowania RAM i inne. Podstawowe znaczenie z punktu widzenia oblicze i rejestracji obrotu maj raporty
dobowe. Technika obliczeniowa dla poszczeglnych raportw dobowych drukowanych w obrbie raportu
okresowego jest identyczna jak opisana w poprzednim punkcie. Jest to oczywiste zwaywszy, e wykonanie raportu
dobowego polega midzy innymi na trwaym wpisaniu stanu totalizerw drukarki do pamici fiskalnej.
W trakcie raportu okresowego zapisy te s zatem odczytywane po kolei i wykonywane
s identyczne obliczenia jak dla raportu dobowego, z t rnic, e dane wejciowe (w powyszych wyraeniach
TOT[A]...TOT[G]) nie pochodz z totalizerw drukarki (jak w raporcie dobowym), lecz z pamici fiskalnej. Druga
istotna rnica dotyczy stawek PTU. Przed rozpoczciem drukowania raportu przeszukiwana jest pami fiskalna w
celu wyznaczenia pocztkowych stawek PTU (znajdowany jest ostatni zapis o zmianach stawek PTU przed dat
pocztkow raportu). Wyznaczone stawki s drukowane jako pierwsze, pod nagwkiem raportu okresowego .
Obliczenia danych dla pierwszego raportu dobowego, ujtego w raporcie okresowym zakadaj zapisane pocztkowo
wartoci stawek. Jeeli w trakcie drukowania raportu zostanie odkryty zapis o zmianie stawek , to zostan
wydrukowane nowe wartoci stawek PTU i w oparciu o nie bd prowadzone dalsze obliczenia dla raportw
dobowych .
www.posnet.com.pl
68
drukarki@posnet.com.pl
RD_PTU[A]..RD_PTU[G]
W przypadku gdy suma poszczeglnych totalizerw wynikajca z oblicze nie rwna si wysokoci paragonu po
udzieleniu rabatu/narzutu kwotowego, lub wysokoci rabatu/narzutu nie da si rozdzieli poszczeglnym totalizerom
przy wykorzystaniu arytmetyki, stosowany jest nastpujcy algorytm dystrybucji nadmiarowych groszy:
Rabat procentowy :
www.posnet.com.pl
69
drukarki@posnet.com.pl
Gdzie:
Xall suma totalizerw przed udzieleniem rabatu/narzutu
Xvatx totalizer w danej stawce VAT przed rabatem/narzutem
Xvatx totalizer w danej stawce VAT po rabacie/narzucie
XvatA....XvatG stan poszczeglnych totalizerw po udzieleniu rabatu/narzutu
Rabatx kwota rabatu
n narzut
r rabat
N ilo nadmiarowych groszy
DLA N>0
(rabat/narzut wynikajcy z oblicze jest mniejszy ni faktyczny)
Rnica midzy rzeczywist wartoci rabatu/narzutu a sum rabatu w poszczeglnych totalizerach, rozdzielana jest
poczwszy od najwikszego totalizera, lub w przypadku gdy totalizery s rwne - w porzdku alfabetycznym
zaczynajc od A.
Zakadajc, e totalizery zostay odpowiednio posortowane, otrzymujemy siedem zmiennych o nastpujcych
priorytetach: Tot 1, Tot 2,....,Tot 7.
1) Udzielanie narzutu dla tego przypadku nadmiarowe grosze dodawane s do totalizerw:
Tot 1 + grosz
Tot 2 + grosz
..
Tot 7 + grosz
Ptla ta jest powtarzana do momentu gdy N=0 (wszystkie grosze zostan rozdzielone)
W przypadku gdy:
Tot [i] >= 2*Tot[i+1] to Tot [i] + 2 grosze
2) Udzielanie rabatu w tym przypadku nadmiarowe grosze s odejmowane od totalizerw
Tot 1 grosz
Tot 2 grosz
..
Tot 7 grosz
Ptla ta jest powtarzana do momentu gdy N=0 (wszystkie grosze zostan rozdzielone)
W przypadku gdy:
Tot [i] >= 2*Tot[i+1] to Tot [i] 2 grosze
www.posnet.com.pl
70
drukarki@posnet.com.pl
www.posnet.com.pl
71
drukarki@posnet.com.pl
6. INFORMACJE DODATKOWE
6.1 Komunikaty zwizane z sekwencjami sterujcymi
W tej grupie s dwa rodzaje komunikatw: komunikat o bdzie sekwencji sterujcej (ktry moe by
zablokowany przy uyciu sekwencji LBSERM) oraz grupa komunikatw, ktre zatwierdzaj wykonanie operacji
inicjowanej przez sekwencje sterujce. Jako zasad przyjto konieczno potwierdzenia z klawiatury drukarki tych
operacji, ktre powoduj zapis do pamici fiskalnej tj. fiskalizacji, zmiany stawek PTU, a take raportu dobowego.
Pozytywne potwierdzenie operacji uzyskujemy przy uyciu klawisza TAK, natomiast nacinicie klawisza NIE
powoduje zignorowanie sekwencji sterujcej.
Komunikat:
'Bd rozkazu: "cc" '
'Kod bdu :
xx '
Przyczyna:
Podczas analizy i/ lub realizacji sekwencji sterujcej wykryto bd. Znaki 'cc' identyfikuj rozkaz (oglna
posta syntaktyki komendy jest ESC P P1;P2;...Pn cc <napis> ESC \ , identyfikator rozkazu 'cc' skada si z
dwch znakw, z ktrych drugi jest liter, np. $f, #k ...). Kod bdu jest wywietlany w postaci dwch cyfr
'xx'. Kody bdw moliwe dla poszczeglnych sekwencji wyszczeglniono w opisie jzyka programowania
urzdzenia. Bd moe pojawi si w wyniku bdw transmisji, bdu aplikacji, wyczenia/ wczenia
zasilania urzdzenia w trakcie dziaania aplikacji, niewaciwego stanu urzdzenia (np. brak inicjalizacji
zegara RTC) lub bdu wykonania rozkazu (np. bdu ukadu elektronicznego). Generalnie, czste
powtarzanie si bdw wykonania rozkazw w trakcie eksploatacji systemu moe wymaga konsultacji
problemu zarwno z serwisem jak i producentem/ dystrybutorem oprogramowania systemowego
i aplikacyjnego. Wykaz moliwych parametrw wywietlanych w komunikatach o bdach rozkazw zosta
podany w rozdziale na str. 72.
Sposb usunicia:
Przetwarzanie danych z interfejsu jest wstrzymane a do nacinicia klawisza NIE. Po naciniciu klawisza
drukarka wznawia pobieranie znakw z bufora interfejsu, co moe w pewnych przypadkach powodowa
nastpne komunikaty o bdach (np. bd w trakcie realizacji sekwencji LBTRSHDR - nagwek transakcji
powoduje, e drukarka nie wejdzie do trybu transakcji i bdzie zgasza kolejne bdy odbierajc sekwencj
LBTRSLN - pozycje transakcji, a take zgosi bd sekwencji koczcej LBTREXIT).
UWAGA:
Po wczeniu zasilania urzdzenia bdy wykonania rozkazw daj wyej wymienione reakcje na
wywietlaczu. Aplikacja moe zablokowa wywietlanie komunikatw wysyajc sekwencje LBSERM i
realizujc wasn obsug bdw bazujc na odczycie statusu drukarki i kodu bdu przez interfejs RS232 drukarki.
Komunikat:
' Drukowa raport '
'
dobowy ?
'
Przyczyna:
Zostaa odebrana sekwencja LBDAYREP (inicjalizacja raportu dobowego).
Sposb usunicia:
Klawisz TAK powoduje wykonanie raportu (po zatwierdzeniu poprawnoci DATY), klawisz NIE powoduje
zawieszenie wykonania operacji, dajc rwnoczenie komunikat o bdzie sekwencji.
Komunikat:
'Zapisa stawki PTU ? '
'
'
Przyczyna:
Zostaa odebrana sekwencja LBSETPTU (zmiana stawek PTU).
Sposb usunicia:
Klawisz TAK powoduje zapis nowych wartoci stawek PTU (po zatwierdzeniu poprawnoci DATY) do
pamici fiskalnej oraz wydruk krtkiego raportu na drukarce paragonowej, klawisz NIE powoduje
zignorowanie sekwencji bez zgoszenia bdu rozkazu.
www.posnet.com.pl
72
drukarki@posnet.com.pl
$
c
b
d
e
f
g
h
l
L
n
o
p
r
x
y
Y
w
z
Sekwencja
ustawianie zegara
formy patnoci
sterowanie wywietlaczem/ szuflad
anulowanie transakcji/ akceptacja transakcji
programowanie nagwka/ fiskalizacja
pytanie o moliwo sprzeday towaru
pocztek transakcji
definiowanie pozycji transakcji (linii paragonu)
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
v
Z
11
27
12
23/ 23
14
49
17
18
27
26
15
13
14
25
29
27
55
34
#
a
Szukaj na stronie:
Sekwencja
Szukaj na stronie:
www.posnet.com.pl
73
52
48
49
43
15
36
40
41
43
52
44
15
38
51
46
24
45
47
50
43
51
16
drukarki@posnet.com.pl
1
2
3
4
5
6
12
13
14
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
www.posnet.com.pl
74
drukarki@posnet.com.pl
40
41
42
43
44
45
46
47
48
49
50
51
82
83
90
91
92
93
94
95
96
97
98
www.posnet.com.pl
75
drukarki@posnet.com.pl
www.posnet.com.pl
76
drukarki@posnet.com.pl