IMPRIMANTA FISCALĂ
XComm - Epson
Interfata programatorului
Versiune: 3.0
Data: 20.01.2003
CUPRINS
Capitolul 1. Introducere
1.1 Regimurile de lucru
Categorii de impozite si calcularea TVA-ului
1.3 Întreruperea tensiunii de alimentare
1.4 Autodiagnoza
Regimurile de lucru
1.6. Emiterea de bonuri fiscale
1.7. Emiterea de bonuri nefiscale
1.8 Generarea rapoartelor
Capitolul 2. Functiile imprimantei fiscale
2.1 Prezentarea generala a functiilor
2.2 Prezentarea dupa destinatie a functiilor
2.2.1 Functii fiscale
2.2.2 Functii nefiscale
2.2.3 Functii de initializare
2.2.4 Functii generare rapoarte
2.2.5 Informatii catre PC
2.2.6 Comenzi pentru imprimanta si PC
2.2.7 Alte functii
Capitolul 3. Descrierea functiilor imprimantei fiscale
Capitolul 4. Punerea în functiune a imprimantei fiscale
4.1 Initializarea
4.2 Fiscalizarea imprimantei fiscale
4.3 Eroare irecuperabilă în imprimanta fiscală
Capitolul 5. Cuvântul de stare
Capitolul 6. Organizarea memoriei fiscale
Capitolul 7. Interfata dintre imprimanta fiscala - PC
1. Introducere
Prezentul manual de utilizare furnizeaza datele necesare folosirii imprimantei fiscalizate XCOMM EPSON TM si anume: regimuri de lucru, organizarea memoriei fiscale si protocolul de comunicatie (comenzi, parametrii si formate de date) dintre imprimanta fiscalizata si calculator.
Manualul contine toate informatiile necesare pentru realizarea de aplicatii informatice a echipamentului.
Imprimanta fiscalizata este compusa dintr-o imprimanta EPSON TM-U210 standard si un modul fiscal atasat acesteia. Datele de la calculator la imprimanta se transmit numai prin intermediul modulului fiscal.
Imprimanta fiscală 12312f54m lucrează cu un program de aplicatie cu care comunică în mod serial
asincron pe o interfată RS232. Ea este destinată să execute un set de comezi predeterminat ce sunt organizate logic în functie de operatiile ce vor fi efectuate. Programul aplicatie nu are intrare directă la resursele imprimantei dar poate să extragă date ce sunt legate de starea dispozitivului si a memoriei fiscale.
Imprimanta fiscală 12312f54m execută următoarele operatiuni:
memorează numărul seriei imprimantei fiscale
memorează parametrii fiscali, codul fiscal al companiei, data de fiscalizare, etc.
memorează informatii pentru proprietarul companiei ca adresa, nume, etc.
memorează valoarea vânzarilor si generează bonul client
memorează suma tranzactiilor vânzarilor zilnice si generează raportul zilnic
generează rapoartele pentru vânzarile realizate si continutul memoriei fiscale
tipăreste rapoarte generate de aplicatia respectivă
transmite date către programul de aplicatie
1.1 Regimurile de lucru
Regim fiscal (regim normal de lucru)
imprimanta este fiscalizata si in stare buna de functionare
se aplica toate reglementarile legale privind acest tip de dispozitive.
emite bonuri fiscale (cu mentiunea "Bon fiscal").
Regim nefiscal
imprimanta nu este fiscalizata, are memoria fiscala plina sau a suferit o defectiune care nu ii permite sa opereze in regim fiscal.
emite numai bonuri cu mentiunea "Bon nefiscal" - nefiscale.
se pot executa deconturi financiare zilnice cu golire, dar nu se salveaza in memoria fiscala
1.2 Categorii de impozite si calcularea TVA-ului
Fiecare articol vândut are asociata o cota de TVA care determina procentul de impozit aplicat pretului de baza pentru calcularea pretului vânzarii. Imprimanta fiscală 12312f54m poate să lucreze cu maxim 4 cote de TVA, identificate prin literele A,B,C sau D
Exista posibilitatea introducerii unei taxe de impozitare de alt tip decît taxa pe valoare adaugata (speciala) care se aplica asupra pretului brut de vânzare (pret cu TVA inclus) al produsului. Aceasta taxa speciala se specifica valoric si nu se introduce in pretul final al produsului pentru calcularea TVA-ului.
Pentu fiecare din cotele fiscale se seteaza o valoare (procentul), care trebuie să fie un numar real nu mai mare de 99 (0,00-99,99). Vânzarea unui articol este insotită de una din taxe determinate alfabetic (A,B,C sau D) sau de simbolurile " " (SPACE) si "v". Simbolul SPACE este folosit pentru vânzările fără taxă, echivalentul de fapt al unei valori procentuale de 0%.
Valoarea netă a vânzării se calculează cu formula:
ValoareNetă =ValoareVânzare /(1 + cota _taxei))
Valoarea cotei TVA se calculează astfel:
ValoareTaxa =ValoareVânzare - ValoareNetă
1.3 Intreruperea tensiunii de alimentare
La intreruperea tensiunii de alimentare in timpul unei operatii fiscale, toate valorile inregistrate in memoria de lucru (RAM) raman nealterate datorita folosirii unei baterii de backup. Memoria fiscala nu poate fi stricata de o cadere de tensiune. Dupa o cadere de tensiune in timpul unei operatii fiscale, dupa conectarea imprimantei fiscale se va tipari cu bold mesajul CADERE DE TENSIUNE, si operatia de tiparire poate continua. In orice caz, programul de aplicatie ar trebui sa interogheze imprimanta folosind functiile specifice, sa stabileasca exact momentul in care s-a intrerupt si sa ia decizia de continuare sau nu a operatiei de tiparire.
1.4 Autodiagnoza
La pornire imprimanta executa un program de autotest prin care îsi stabileste regimul corect de lucru si actualizeaza cuvintele de stare. In functionare imprimanta actualizeaza periodic cei 8 octeti de stare (4 octeti pentru starea imprimantei EPSON standart si 4 octeti pentru controller-ul fiscal).
Aplicatia de pe PC trebuie sa interogheze imprimanta (prin comenzi specifice) asupra starii imprimantei, a display-ului client si a memoriei fiscale. Ea trebuie sa
1.5 Regimurile de lucru
Regim fiscal (regim normal de lucru)
imprimanta este fiscalizata si in stare buna de functionare
se aplica toate reglementarile legale privind acest tip de dispozitive.
emite bonuri fiscale (cu mentiunea "Bon fiscal").
Regim nefiscal (scolarizare)
imprimanta nu este fiscalizata, are memoria fiscala plina sau a suferit o defectiune care nu ii permite sa opereze in regim fiscal.
emite numai bonuri cu mentiunea "Bon nefiscal" - nefiscale.
se pot executa deconturi financiare zilnice cu golire, dar nu se salveaza in memoria fiscala
semnalizeze starea anormala de functionare aparuta la un moment dat si sa ia decizii în functie de aceasta.
1.6 Emiterea de bonuri fiscale
Pentru a tiparii un bon fiscal:
se deschide un bon fiscal cu comanda 7 (Deschidere bon fiscal),
se înregistreaza vânzarile cu comenzile 8 (Afisare si vînzare articol) si 9 (Calcul subtotal),
se face plata cu comanda 10 (Calcul total),
se închide bonul cu comanda 11 (Inchidere bon fiscal).
1.7 Emiterea de bonuri nefiscale
Se emit bonuri nefiscale numai cînd imprimanta este nefiscalizata sau ajunge în mod nefiscal datorita unei defectiuni.
1.8 Generarea rapoartelor
Se pot genera diverse tipuri de rapoarte functie de informatia dorita:
Rapoarte zilnice X/Z cu sau fara închiderea fiscala:
Imprimanta fiscala genereaza de regula zilnic un raport financiar cu inchidere fiscala, adica scrierea informatiei adecvate despre vânzari in memoria fiscala. Aceasta raportare se face ori de cîte ori imprimanta receptioneaza comanda 33 (Raport financiar zilnic cu/fara închidere) de la PC. În aceste rapoarte nu este posibila nici o schimbare din partea programului de aplicatie, acestea fiind definite de imprimanta fiscala.
Alte raportari:
La receptia comenzii 31 (Raport periodic din memoria fiscala) se genereaza un raport despre vânzarile dintr-o anumita zi anterioara ultimei închideri sau pe o perioada.
2. Etapele de lucru
2.1 Initializarea
In această etapă trebuie să se intoducă data si ora, să se programeze numărul modulului
fiscal, să se dea numărul de serie a memoriei fiscale si codul tării. Aceste operatiuni se fac înainte de predare către client de către persoana care face service. Trebuiesc executate în următoarea succesiune comenzile: 61, 87,91. După fiecare comandă imprimanta se va deconecta si reconecta în mod bligatoriu.
2.2. Starea după formatarea memoriei fiscale
In aceasta stare trebuiesc înscrise tipul valutei, numărul si valorile cotelor de TVA.
După ce se fac aceste operatiuni imprimanta fiscală este gata sa fie predată clientului care o va folosi, adică în această stare dispozitivele se tin în depozitele producătorului.
Trebuie să se execute următoarele comenzi: 83, 96.
2.3.Starea înainte de livrare la client
Trebuie să înscriem header-ul si footer-ul bonului care sunt începutul si sfârsitul fiecărui bon. Trebuie să se execute comanda 43 de atâtea ori câte linii are începutul si sfârsitul bonului.
2.4.Regim de scolarizare
In această stare se află pâna la fiscalizare. Este posibilă emiterea bonurilor dar trebuie să avem în vedere că chiar si bonurile client sunt marcate ca nefiscale. Este posibilă executarea decontului zilnic cu golire dar fără a fi înscris în memoria fiscală. De fiecare dată după cuplarea tensiunii de alimentare a imprimantei este necesar să înscriem din nou codul fiscal.
2.5 Fiscalizarea imprimantei fiscale
In această stare se pot edita bonuri fiscale marcate ca atare. Inainte de fiscalizare trebuie să înscriem codul fiscal al proprietarului si apoi să efectuăm comanda de fiscalizare. Se execută comenzile 98 si 72 dar între ele imprimanta nu trebuie să fie deconectată..
2.6. Eroare irecuperabilă în imprimanta fiscală
In această stare imprimanta cade în caz că este o eroare de logică sau tehnică foarte serioasă în lucrul imprimantei precum si în caz de defectiune sau lipsă a modulului pentru memorie fiscală. Este necesar să facem o stergere a RAM-ului operativ, functia RAM RESET (se scoate memoria fiscală, se aprinde dispozitivul, se stinge dispozitivul) si se pune un modul nou de memorie fiscală, pentru că acel cu care s-a lucrat pâna la interventie a trecut în regim READ ONLY.
In regimul READ ONLY este imposibilă înscrierea în memoria fiscală. Aceste operatiuni trebuiesc să fie făcute de personalul de service.
Evenimentele care duc la această stare sunt:
- imposibilitatea scrierii datelor corecte în memoria fiscală
- s-a descoperit o înscriere neregulamentară în memoria fiscală
- s-a descoperit o eroare de sumă de control în informatia înscrisă
- nu se recunoaste modulul memoriei fiscale
Dacă se doreste numai functia de RAM RESET (ce va fi contorizată in memoria fiscală max. 154 de înregistrari) se deconectează imprimanta, se pune comutatorul S1.5 în pozitia ON, se conectează imprimanta si se deconectează din nou. Se pune S1.5 în pozitia OFF (normală) si se reconectează imprimanta. Deoarece suma de control nu mai corespunde se face automat un RESET RAM.
2. Functiile imprimantei fiscale
2.1 Prezentarea generala a functiilor
R2: Citeste stare tranzactie fiscala
R3: Raport tehnic
R4: Scrie cote TVA
R5: Scrie cod fiscal utilizator
R6: Setare Footer/Header
R7: Deschide bon fiscal
R8: Afisare si vânzare articol
R9: Calcul subtotal
R10: Calcul total
R11: Închidere bon fiscal
R14: Citeste stare imprimanta
R15: Citeste cote TVA curente
R16: Scrie text pe display
R17: Deschidere bon nefiscal
R18: Tiparire text liber fiscal si nefiscal
R19: Închidere bon nefiscal
R23: Avans hârtie la imprimanta
F28 Înscriere numar POS
F29 Citire numar bonuri fiscale
F30 Fiscalizare
F31 Raport memorie fiscala în functie de data închiderii fiscale
F32 Citire data si ora de la imprimanta
F33 Închidere fiscala cu sau fara golire (Raport Z sau X)
F34 Selectie culoare scriere la imprimanta (rosu sau negru)
F36 Afisare data si ora pe display
F37 Deschidere sertar bani
F38 Scriere data si ora
F40 Scriere denumire firma
F41 Scriere adresa firma
F42 Introducere / extragere bani din sertar
F43 Scriere serie fiscala
F44 Citire serie fiscala
F45 Citire denumire firma
F46 Citire adresa proprietar
F47 Citire cod fiscal proprietar
F48 Anulare Bon Fiscal
2.2 Prezentarea dupa destinatie a functiilor
2.2.1 Functii cu caracter fiscal
F2 Descrie stare tranzactie fiscala
F7 Deschidere bon fiscal
F8 Vanzare afisare marfa
F9 Subtotal
F10 Calcul total
F11 Inchidere bon fiscal
F17 Tiparire text liber fiscal
F48 Anulare Bon Fiscal
2.2.2 Functii de initializare a memoriei fiscale
F4 Scriere cote TVA
F5 Scriere cod fiscal proprietar
F6 Scriere Footer
F28 Înscriere numar POS
F30 Fiscalizare
F38 Scriere data si ora
F40 Scriere denumire firma
F41 Scriere adresa firma
F43 Scriere serie fiscala
2.2.3 Functii de raportare
F3 Raport tehnic
F31 Raport memorie fiscala în functie de data închiderii fiscale
2.2.4 Informatii catre PC
F14 Stare imprimanta
F15 Citire cote TVA curente
F32 Citire data/ora de la imprimanta
F44 Citire serie fiscala
F45 Citire denumire firma
F46 Citire adresa proprietar
F47 Citire cod fiscal proprietar
2.2.5 Comenzi pentru imprimanta
F23 Avans hârtie la imprimanta
F34 Selectie culoare scriere la imprimanta (rosu sau negru)
2.2.6 Alte functii
F36 Afisare data si ora pe display
F37 Deschidere sertar bani
F42 Introducere / extragere bani din sertar
3. Descrierea functiilor imprimantei fiscale
Functia 2: Stare tranzactie fiscala
Sintaxa: no
Raspuns: Stare / Nr.Articole / Total / Suma
Stare: 0 daca nu este deschis bon fiscal
1 daca este deschis bon fiscal sau nefiscal
2 daca este deschis bon fiscal sau nefiscal si a fost executata comanda TOTAL
Nr.Articole: numarul articolelor de pe bonul fiscal curent - maxim 5 octeti
Total: pretul total al articolelor de pe bonul fiscal curent - maxim 20 octeti
Suma: suma achitata pentru bonul fiscal curent - maxim 20 octeti.
Valorile intoarse de aceasta functie sunt chiar cele memorate in memoria fiscala, adica sunt calculate cu doua zecimale. Separatorul folosit este virgula (2Ch).
In cazul in care se lucreaza cu doua zecimale la pret, valorile sunt intoarse cu virgula, ceea ce inseamna ca virgula de la Total, respectiv Suma nu separa campurile ci partea intreaga de cea zecimala.
Functia 3. Raport tehnic
Sintaxa Nu
Raspuns Nu
Functia 4. Scriere cote TVA
Sintaxa: <TaxaAInt> <TaxaAZec> <TaxaBInt> <TaxaBZec> <TaxaCInt> <TaxaCZec> <TaxaDInt> <TaxaDZec><NrZecimale>
Raspuns: cotele introduse
TaxaxInt partea intreaga a taxei x (A,B,C,D)
TaxaxZec: partea zecimala a taxei x
NrZecimale: 0 daca nu se lucreaza cu zecimale
1 daca se lucreaza cu doua zecimale
Octetii de mai sus se transmit fara separator.
Functia 5. Scriere cod fiscal proprietar
Sintaxa: Text
Raspuns: Nu
Text: Sir ASCII de maxim 15 caractere.Nu e admisa introducerea unui sir format numai din spatii (20h).
Comanda trebuie executata inainte de fiscalizarea imprimantei. Dupa fiscalizare comanda nu se mai poate executa.
Functia 6. Scriere Header/Footer
Sintaxa: [Optiune] [0] [,] [Text]
Raspuns: Nu
Optiune: - S = Footer
- A = Header
Functia 7. Deschidere bon fiscal
Sintaxa Optiune
Raspuns Nr.BonuriFiscale
Optiune: argument optional;daca e 1 se tipareste numarul POS-ului pe bon, cu conditia ca acest numar sa fi fost înscris cu comanda F28;
NrBonuri Fiscale: numarul bonurilor fiscale emise de la ultima închidere fiscala .
Comanda nu se executa daca:
Exista un bon fiscal sau nefiscal deschis
S-au emis numarul maxim de bonuri pe ziua curenta (65.535)
Memoria fiscala e plina
Toate cotele de TVA sunt 0
Se executa urmatoarele operatii:
Tipareste "Bon fiscal" daca imprimanta e fiscalizata sau "Bon nefiscal" daca imprimanta nu e fiscalizata.
Daca imprimanta e fiscalizata tipareste denumirea, adresa si codul fiscal al proprietarului.Daca nu e fiscalizata nu tipareste aceste informatii.
Tipareste liniile de inceput de bon (daca exista).
Tipareste numarul bonului.
Tipareste numele operatorului si numarul POS-ului.
Functia 8: Vânzare afisare marfa
Argumente functie:
Text - Sir descriere marfa- 30 caractere maxim
09h - Octet 09 h
TVA TVA : poate sa fie A,B,C,D sau spatiu
09h - Octet 09 h
Nr - Nr bucati- 2 octeti -partea intreaga - formatat ca un intreg binar pe 2 octeti
Nr.z(1)- Nr bucati- primul octet - partea zecimala (octetul mai semnificativ)
Nr.z(2)- Nr bucati- al doilea octet - partea zecimala (octetul din mijloc)
Nr.z(3)- Nr bucati- al doilea octet - partea zecimala (octetul mai putin semnificativ)
(partea zecimala trebuie sa aibe valoarea binara între 0 si 999999).
Pentru pastrarea compatibilitatii cu aplicatiile deja existente, este permisa transmiterea de numai 2 octeti pentru partea zecimala in loc de 3.
09h Octet 09h
"+" - pret normal
"-" - pentru voidare
Pret unitar- Pretul formatat ca un intreg binar pe 4 octeti
"," - Optional, care indica faptul ca urmeaza majorare/reducere procentuala. Urmeaza optional "r" si obligatoriu partile întreaga si zecimala ale majorarii/reducerii procentuale.
"-" - Optional "-" care indica faptul ca este o reducere procentuala
MajRed Majorarea/Reducerea - partea intreaga- este exprimata pe 1 octet
MajRed Majorarea/Reducerea - partea zecimala- este exprimata pe 1 octet
":" - Optional, indica o majorare valorica. Urmeaza valoarea pe 4 octeti.
";" - Optional, indica o reducere valorica. Urmeaza valoarea pe 4 octeti.
"v" sau "t" - Optional, indica ca urmeaza o taxa care nu se include in baza de impozitare a TVA-ului care se da valoric.
Dupa "v" urmeaza : TDV exprimata ca un intreg pe 4 octeti[XXXX]
09h -Octet 09h - daca exista t sau v
text -Denumirea taxei - maxim 20 octeti
Comanda nu se executa daca:
Nu este deschis bon fiscal
Deja este efectuat numarul maxim de vânzari pentru un bon
Comanda Total a fost deja efectuata
In cazul in care se lucreaza cu doua zecimale, pretul si reducerea/majorarea valorica se vor trimite inmultite cu 100. Astfel un pret de 10,45 se va trimite ca 1045 (fara virgula) iar un pret de 10 se va trimite ca 1000. Acelasi lucru se aplica si la reducere/majorare.
De asemenea, pentru ca valoare taxei speciale poate fi data si cu zecimale, la transmisia acesteia catre imprimanta, se aplica acelasi regim de mai sus: se inmulteste cu 100. Diferenta este ca aceasta operatie nu depinde de numarul de zecimale cu care lucreaza imprimanta (se inmulteste cu 100 indiferent de nr de zecimale din imprimanta)
Functia 9: Calcul subtotal
Se calculeaza suma tuturor vânzarilor înregistrate în bonul fiscal pâna în momentul apelarii comenzii.
Catre PC se întoarce aceasta suma calculata si valorile însumate pâna în momentul de fata pentru fiecare cota de TVA.
Sintaxa <tiparire> <afisare>
tiparire - 1 octet, daca este 1 valoarea subtotalului se va tipari
afisare - 1 octet, daca este 1 valoarea subtotalului se va afisa pe terminalul client
Sub total -suma pâna în momentul de fata pentru bonul fiscal curent,pâna în 10 cifre
TaxA - suma impozitelor categorie A de TVA / pâna în 18 cifre
TaxB - suma impozitelor categorie B de TVA / pâna în 18 cifre
TaxC - suma impozitelor categorie C de TVA / pâna în 18 cifre
TaxD - suma impozitelor categorie D de TVA / pâna în 18 cifre
FaraTax - Valoare FaraTaxe / pâna în 18 cifre
SpecTax - Valoare Taxespeciale / pâna în 18 cifre
Comanda nu se executa daca:
Nu este deschis bon fiscal
Comanda Total a fost deja efectuata
Valorile intoarse de aceasta functie sunt chiar cele memorate in memoria fiscala, adica sunt calculate cu doua zecimale. Pe de alta parte, pentru ca tiparirea bonului sa se faca corect, valorile afisate pe display si respectiv tiparite pe bon sunt calculate din valorile rotunjite la nivel de tranzactie (totalul bonului sa fie suma valorilor produselor inscrise pe bon)
Functia 10. Calcul total
Cu aceasta comanda se face calculul sumelor din bonul fiscal, tiparirea sumei cu caractere speciale si indicarea ei pe terminalul client. Este posibil sa se tipareasca un text suplimentar.
Comanda nu va fi efectuata cu succes daca:
Nu este deschis bonul fiscal
Suma totala este cu semn minus
Daca oricare din sumele totale pe grupe de TVA este negativa
Dupa efectuarea cu succes a comenzii imprimanta fiscala nu va efectua comenzile 8 si 9 în cadrul bonului deschis, dar poate sa efectueze înca comanda 10.
Sintaxa [Linie][09h][ModPlata][summ]
Raspuns <CodulPlatii><Suma>
Line - sir de caractere pâna la 20 octeti care contine text
09h - un octet cu continut 09h
ModPlata - cod optional care indica modul de plata. Poate sa aiba urmatoarele
valori:
- "C" plata în numerar (implicit)
- "N" plata cu credit
- "E" plata cu CEC
- "A" plata cu carte de credit
În conformitate cu codul introdus valorile se însumeaza în registre diferite si se actualizeaza în raportul zilnic.
Summ - Suma obligatorie care se plateste - un intreg pe 4 octeti
CodulPlatii E - subtotal negativ
D - suma platita e mai mica decât valoarea bonului
în câmpul valoare se întoarce restul de plata
R -suma platita e mai mare decât valoarea bonului; restul se
întoarce în câmpul valoare
I - suma pe o grupa de TVA sau de taxe speciale este
negativa; în câmpul valoare se întoarce subtotalul curent
Suma - pâna la 20 caractere, depinde de CodulPlatii.
Ca si in cazul functiei 8 (vanzare/afisare marfa), atunci cand se lucreaza cu doua zecimale, valoarea trimisa la imprimanta in campul Summ va fi inmultita cu 100. Astfel un total de 10,45 se va trimite ca 1045 (fara virgula) iar un total de 10 se va trimite ca 1000.
Functia 11. Închidere bon fiscal
Sintaxa Nu
Raspuns TotalBonuriFiscale
TotalBonuriFiscale - numarul total de bonuri fiscale emise de la ultima închidere fiscala pâna la momentul de fata (5 octeti)
Imprimanta fiscala realizeaza urmatoarele actiuni:
Tipareste sfârsitul de bon
Tipareste numarul si seria fiscala a imprimantei si a modulului fiscal
Tipareste data si ora curenta
Intoarce raspunsul care contine NrBonuri spre PC
Comanda nu se executa daca:
Nu este deschis bon fiscal
Nu a fost executata cu succes comanda Calcul Total (suma platita la comanda 53 este mai mica decat suma totala a bonului fiscal)
Functia 14. Stare imprimanta
Sintaxa Nu
Raspuns StareImprimanta
StareImprimanta: 8 octeti din care primii patru reprezinta cuvântul de stare al imprimantei.
Funtia 15. Citire cote TVA curente
Sintaxa Nu
Raspuns TVA_A Int, 09h, TVA_A Zec, 09h, TVA_B Int, 09h, TVA_B Zec, 09h, TVA_C Int, 09h, TVA_CZec, 09h, TVA_D Int, 09h, TVA_D Zec,
NrZecimale
TaxaxInt partea intreaga a taxei x (A,B,C,D)
TaxaxZec: partea zecimala a taxei
NrZecimale: 0 daca nu se lucreaza cu zecimale
diferit de zero daca se lucreaza cu doua zecimale
Atentie: Intre cotele de TVA si NrZecimale nu mai apare separator.
Functia 16. Scriere pe display pe orice pozitie
Sintaxa Coloana Rând Text
Raspuns Nu
Coloana: coloana pe care se va afisa textul (1..20)
Rând: rândul pe care se va afisa textul (1/2)
Text: textul de afisat (maxim 40 caractere). Se accepta si caractere non-ASCII
Functia 17. Deschidere bon nefiscal
Sinaxa Nu
Raspuns Numarul curent al bonului nefiscal
Functia 18. Tiparire text liber fiscal si nefiscal
Sintaxa Text
Raspuns Nu
Text: Textul de afisat (maxim 34 caractere ASCII)
Functia 19. Închidere bon nefiscal
Sintaxa Nu
Raspuns Nu
Functia 23. Avans hârtie la imprimanta.
Sintaxa : Numar linii
Raspuns Nu
Numar linii este un numar (max.10 rânduri) dupa care se executa CR si LF.
Functia 28. Înscriere numar POS
Sintaxa: Numar
Raspuns: Nu
Numar este cuprins între 0 si 99(max).
NOTĂ: Daca numarul este 0, atunci nu se va tipari la imprimanta.
Functia 29. Citire numar bonuri fiscale
Sintaxa: Nu
Raspuns: NrBonuri
NrBonuri este un numar pe 2 octeti (MSB, LSB).
Functia 30. Fiscalizare
Sintaxa: Nu
Raspuns: Nu
Are rolul de a formata EPROM-ul pentru lucrul în mod fiscal.
OBS. Aceasta functie nu poate fi executata decât o singura data per EPROM.
Functia se executa in urmatoarele conditii:
Este introdusa denumirea firmei
Este introdusa adresa firmei
Este introdus codul fiscal al firmei
Este introdusa seria fiscala a memoriei
Este introdusa data/ora curenta
Functia 31. Raport memorie fiscala în functie de data închiderii fiscale
Sintaxa: Data START Data END "e"/"c"
Raspuns: Starea
START are formatul: (DDMMYY),
END are formatul: (DDMMYY)
Datele din paranteze au câte 3 octeti în format BCD-comprimat (câte o cifra per nibble).
extins/comprimat ('e'/'c') selecteaza între cele doua moduri de afisare a raportului: modul extins creeaza un raport detaliat pe acea perioada, iar modul comprimat tipareste doar totalurile pe acea perioada.
NOTE: 1). Se permite în sintaxa ca data de început sa fie egala cu data finala, caz în care raportul se va face pe ziua respectiva.
2). Cu cât memoria fiscala este mai încarcata cu informatii, cu atât mai mult dureaza un raport. Pentru perioade mari de timp recomandam folosirea modului comprimat deoarece listingul rezultat ar putea iesi foarte lung.
Functia 33. Raportul zilnic financiar
Sintaxa: [G/F]
Raspuns: [contorz],[nrbonfisc],[totalBrutZil],[TvaA], [TvaB],
[TvaC],[TvaD],[TotsTax],[TottsZil], [SumSert],
[TotMajZil],[TotRedZil]
[G/F]: un octet,astfel: - "G" raport zilnic cu golire
- "F" raport zilnic fara golire
[contorz] - max.5 octeti - numarul închiderii fiscale
[nrbonfisc] - max.5 octeti - numarul de bonuri fiscale emise
[totalBrutZil]- max. 18 octeti - total brut zilnic
[TvaA] - max. 18 octeti - total brut TVAA zilnic
[TvaB] - max. 18 octeti - total brut TVAB zilnic
[TvaC] - max. 18 octeti - total brut TVAC zilnic
[TvaD] - max. 18 octeti - total brut TVAD zilnic
[TotsTax] - max. 18 octeti - total scutit de taxe zilnic
[TottsZil] - max. 18 octeti - total taxe speciale zilnic
[SumSert] - max. 18 octeti - suma ramasa în sertar zilnic
[TotMajZil] - max. 18 octeti - total majorari zilnic
[TotRedZil] - max. 18 octeti - total reduceri zilnic
Functia 34. Selectie culoare scriere la imprimanta (rosu sau negru)
Sintaxa: R sau N
Raspuns: Nu
'R' - rosu
'N' - negru
ATENŢIE: este case-sensitive !
Functia 36. Afisare data si ora pe display
Sintaxa Cod comanda
Raspuns Nu
Actiune: Se citesc data si ora din time-keeper si sunt afisate pe display
Functia 37. Deschidere sertar bani
Sintaxa: Nu
Raspuns: Nu
Apelarea acestei functii are ca efect deschiderea sertarului cu bani.
Functia 38. Scriere data si ora
Sintaxa <SS:MM:HH:DD:MM:YY>
Raspuns Nu
Atentie: Nu se poate seta data si ora mai veche decât data si ora ultimei înscrieri în memoria fiscala (ultimul Z).
Este prevazut sa se lucreze pâna în anul 2098 inclusiv.Compatibil Y2K.
Dupa RESET-ul memoriei RAM pentru a continua lucrul normal comanda trebuie obligatoriu sa fie executata.
Functia 40. Scriere denumire firma proprietar
Sintaxa: Text
Raspuns: Nu
Text: Sir ASCII de maxim 40 caractere.Nu e admisa introducerea unui sir format numai din spatii (20h).
Comanda trebuie executata inainte de fiscalizarea imprimantei. Dupa fiscalizare comanda nu se mai poate executa.
Functia 41. Scriere adresa firma proprietar
Sintaxa: Text1,";",Text2
Raspuns: Nu
Text1: Primul rand al adresei. Sir ASCII de maxim 40 caractere.Nu e admisa introducerea unui sir format numai din spatii (20h).
Text2: Al doilea rand al adresei. Sir ASCII de maxim 40 caractere.Nu e admisa introducerea unui sir format numai din spatii (20h).
Este obligatorie folosirea separatorului ";".
Comanda trebuie executata inainte de fiscalizarea imprimantei. Dupa fiscalizare comanda nu se mai poate executa.
Functia 42.Introducere / extragere bani din sertar
Sintaxa: "+"/"-" Suma
Raspuns: "N"/"D" , Suma din sertar , Suma intrata , Suma extrasa
Suma: Valoare întreaga pe 4 octeti. Este precedata de "+" sau "-"
"N" Semnifica o eroare în actualizare (de exemplu s-a încercat scoaterea unei sume mai mare decât cea existenta în sertar)
"D" Semnifica o actualizare corecta a sumei din sertar
Suma din sertar: Valoarea actualizata a sumei din sertar
Suma intrata: Valoarea totala a sumei intrate în sertar de la începutul zilei
Suma iesita: Valoarea totala a sumei iesite din sertar de la începutul zilei
Functia 43. Scriere serie fiscala
Sintaxa: Text
Raspuns: Nu
Text: Seria fiscala a memoriei (maxim 15 carctere ASCII)
Functia 44. Citire serie fiscala
Sintaxa: Nu
Raspuns: Text
Text: Seria fiscala a memoriei (maxim 15 carctere ASCII)
Functia 45. Citire denumire firma
Sintaxa: Nu
Raspuns: Text
Text: Denumirea firmei (maxim 40 carctere ASCII)
Functia 46. Citire adresa proprietar
Sintaxa: Nu
Raspuns: Text
Text: Adresa proprietarului (maxim 40 carctere ASCII)
Functia 47. Citire cod fiscal proprietar
Sintaxa: Nu
Raspuns: Text
Text: Cod fiscal (maxim 15 carctere ASCII)
Functia 48. Anulare Bon Fiscal
Sinaxa Nu
Raspuns Nu
Obs: Numarul de bonuri anulate se contorizeaza, iar daca anularea se face dupa executarea functiei "F10 - Total", valoarea bonului este memorata in totalizatoarele in care se aduna incasarile (Cash, Cec).
Functia 49. Citeste data si ora ultimului Raport Z
Syntax: No
Return: SS MM HH DD MM YY
4. Punerea în functiune a imprimantei fiscale
4.1 Initializarea
Imprimanta tipareste textul "Imprimanta nefiscalizata este gata".
In această etapă trebuie să se introduca in imprimanta fiscala urmatoarele date:
denumirea societatii comerciale
adresa
codul fiscal
cotele de tva
numar de POS
data si ora
seria fiscala
In această stare se află pâna la fiscalizare. Este posibilă emiterea bonurilor dar trebuie avut in vedere că bonurile client sunt marcate ca nefiscale. Este posibilă executarea decontului zilnic cu golire dar fără a fi înscris în memoria fiscală. De fiecare dată după cuplarea tensiunii de alimentare a imprimantei este necesar să înscriem din nou toate datele de mai sus. Acest lucru se intampla datorita faptului ca inainte de fiscalizare, toate aceste informatii se tin in RAM. La cuplarea tensiunii, se initializeaza RAM-ul cu valorile din memoria fiscala.
4.2 Fiscalizarea imprimantei fiscale
In această stare se pot edita bonuri fiscale marcate ca atare.
Comanda de fiscalizare este ireversibila. Dupa aceasta operatie nu se mai pot face modificari de nici un fel asupra parametrilor memoriei fiscale. Cotele de TVA se mai pot schimba dar numai dupa efectuarea unui raport Z (de max. 64 ori).
4.3 Eroare irecuperabilă în imprimanta fiscală
In această stare imprimanta cade în caz că este o eroare de logică sau tehnică foarte serioasă în lucrul imprimantei precum si în caz de defectiune sau lipsă a modulului pentru memorie fiscală. Este necesar să facem o stergere a RAM-ului operativ, functia RAM RESET (se scoate memoria fiscală, se porneste imprimanta, se opreste imprimanta) si se pune din nou un modul de memorie fiscală (poate fi acelasi sau unul nou daca cel cu care s-a lucrat pâna la interventie a trecut în regim READ ONLY.
In regimul READ ONLY este imposibilă înscrierea în memoria fiscală. Aceste operatiuni trebuiesc să fie făcute de personalul de service.
Evenimentele care duc la această stare sunt:
- imposibilitatea scrierii datelor corecte în memoria fiscală
- s-a descoperit o înscriere neregulamentară în memoria fiscală
- s-a descoperit o eroare de sumă de control în informatia înscrisă
- nu se recunoaste modulul memoriei fiscale
5. Cuvântul de stare al imprimantei
Starea actuala a imprimantei fiscale este codificata într-un câmp cu lungimea de 8 octeti, care se transmite în cadrul fiecarui raspuns din imprimanta fiscala. In continuare este prezentata descrierea fiecarui câmp de stare.
Octetul 0 |
Printer |
Neutilizat (fixat in 0) |
|
Neutilizat (nedefinit) |
|
1=Asteapta / 0 =Nu asteapta on-line recovery |
|
Neutilizat (fixat in 1) |
|
0=On-line / 1= Off-line |
|
Stare sertar de bani (1/0 pin 3 in high/low) |
|
Neutilizat (fixat in 1) |
|
Neutilizat (fixat in 0) |
Octetul 1 |
ON-LINE |
Neutilizat (fixat in 0) |
|
Erori (0-nu sunt erori,1-exista erori) |
|
Lipsa hartie (1= lipsa hartie/ 0 = hartie prezenta) |
|
Neutilizat (fixat in 1) |
|
Neutilizat (fixat in 1) |
|
Capac printer inchis (0) / deschis (1) |
|
Neutilizat (fixat in 1) |
|
Neutilizat (fixat in 0) |
Octetul 2 |
Erori |
Neutilizat (fixat in 0) |
|
Erori recuperabile (0 - nici o eroare, 1-exista erori recuperabile) |
|
Erori nerecuperabile (0 - nici o eroare, 1 - exista erori nerecuperabile) |
|
Neutilizat (fixat in 1) |
|
Erori la autocutter (0 - nici o eroare,1-exista erori) |
|
Erori mecanice(0 -nici o eroare, 1-exista erori) |
|
Neutilizat (fixat in 1) |
|
Neutilizat (fixat in 0) |
Octetul 3 |
Senzor hartie |
Neutilizat (fixat in 0) |
|
Senzor hârtie (0- hârtie prezenta, 1 - lipsa hârtie) |
|
Senzor hârtie (0- hârtie prezenta, 1 - lipsa hârtie) |
|
Neutilizat (fixat in 1) |
|
Senzor hârtie aproape de sfârsit ( 0 - hârtie prezenta, 1 - hârtie aproape de sfârsit ) |
|
Senzor hârtie aproape de sfârsit ( 0 - hârtie prezenta, 1 - hârtie aproape de sfârsit ) |
|
Neutilizat (fixat in 1) |
|
Neutilizat (fixat in 0) |
Octetul 4 |
Destinatie generala |
Adresa sau denumire nevalide |
|
Cod fiscal sau serie fiscala nevalide |
|
Data si ora nedeterminate dupa ultima stergere RAM |
|
Argumentele comenzii nu sunt valabile |
|
Eroare în executarea comenzii |
|
Executarea comenzii nu e permisa în regimul fiscal curent |
|
La executarea comenzii se depasesc câmpuri de sume |
|
Cote TVA nevalide |
Octetul 5 |
Erori RAM |
Cadere de tensiune în timpul ultimei tipariri |
|
Cadere de tensiune aparuta in timpul unui bon fiscal |
|
rezervat |
|
Bon fiscal deschis |
|
Bon nefiscal deschis |
|
Eroare comanda |
|
Eroare CRC |
|
|
Eroare secventa |
Octetul 6 |
Erori EPROM 1 |
Eroare in memoria fiscala aparuta in urma testarii |
|
Memorie fiscala plina |
|
Mai sunt sub 60 de inregistrari in memoria fiscala |
|
Nu exista modulul de memorie fiscala |
|
A aparul o eroare la înregistrarea în memoria fiscala |
|
Lipsa display client |
|
Schimbare neautorizata de memorie fiscala |
|
Rezervat |
Octetul 7 |
Erori EPROM 2 |
Mai sunt sub 7 locatii libere pentru înregistrare cote TVA |
|
Nu mai sunt locatii libere pentru cotele TVA |
|
Imprimanta este fiscalizata |
|
Eroare la ultima inchidere fiscala |
|
A aparut cadere de tensiune în timpul ultimei închideri fiscale |
|
Memoria fiscala în regim de READ ONLY |
|
Mai sunt putine locatii pentru RAM-RESET (sub 11) |
|
Nu mai sunt locatii libere pentru RAM-RESET |
Organizarea memoriei fiscale
Memoria fiscala este organizata în 4 zone distincte, care sunt scrise si accesate separat in timpul functionarii imprimantei, dar care interactioneaza unele cu altele.
O prima zona este zona de identificare a imprimantei si a memoriei fiscale.
Aici sunt înscrise urmatoarele informatii importante:
Adresa comerciantului (firmei)
Numele comerciantului (firmei)
Codul fiscal al comerciantului (firmei)
Codul aparatului (imprimantei)
Seria fiscala a aparatului
Data si ora la care a fost facuta fiscalizarea
Trebuie precizat ca aceasta zona este creata automat în momentul fiscalizarii imprimantei.
Urmatoarea zona de memorie este zona RAM-RESET.
Aici se inscriu data si ora fiecarei detectii de pierdere a continutului memoriei SRAM.
Exista 255 de locatii dedicate acestui scop.
Atunci când numarul de locatii scade sub 11, se seteaza un bit de stare care avertizeaza utilizatorul asupra problemei care urmeaza sa apara, si anume ca, la epuizarea locatiilor imprimanta se opreste din functionare.
Zona a treia din memoria fiscala este zona cotelor TVA.
Aici se înscriu cotele TVA dintr-o perioada din functionarea imprimantei. Aceste cote TVA nu sunt fixate la o valoare initiala, putând fi modificate de utilizator în functie de noile reglementari legale. Memoria fiscala pune la dispozitia utilizatorului un numar de 64 de locatii pentru cote TVA, în fiecare locatie putând fi stocate 4 cote TVA distincte (A, B, C si D). La umplerea acestei zone imprimanta se blocheaza, nu înainte de a avertiza utilizatorul asupra acestui lucru atunci când numarul locatiilor disponibile scade sub 7.
Oricum, presupunând ca o schimbare a cotelor TVA are loc odata la 6 luni, tot ramân 32 de ani de functionare!
Tot aici se tine si informatia referitoare la numarul de zecimale cu care lucreaza imprimanta (0 sau 2). Pentru aceasta se foloseste un singur octet.
Ultima zona si cea mai interesanta financiar este zona închiderilor fiscale zilnice.
Aceasta zona permite un numar de 2048 de închideri zilnice si avertizeaza apropierea umplerii când mai ramân 60 de închideri.
Aici sunt stocate totalizatoarele zilnice si cele cumulate de la data punerii în functiune a imprimantei.
O schema aproximativa a organizarii memoriei este data în figura urmatoare:
Nu se poate spune care dintre cele 4 zone este mai importanta, deoarece nefunctionarea uneia dintre zone duce cu sine la iesirea imprimantei din regimul fiscal sau chiar la blocarea ei.
Organizarea locatiilor memoriei fiscale
Lista câmpurilor din memoria fiscala:
Denumire |
Numar Locatii |
Dimensiune Octeti/locatie |
C_1 SERIE FISCALA | ||
C_2 COD FISCAL | ||
C_3 DATA SI ORA FISCALIZARII | ||
C_4 DENUMIREA FIRMEI | ||
C_5 ADRESA FIRMA | ||
C_6 COTE_TVA | ||
C_7 RAMRESET | ||
C_8 INCHIDERE FISCALA |
Descrierea câmpurilor
C_1 SERIE FISCALA - sir ASCII de 15 octeti
C_2 COD FISCAL - sir ASCII de 15 octeti
C_3 DATA SI ORA FISCALIZARII -6 octeti in format: SS, MM, HH, DD, MM, YY
C_4 DENUMIRE FIRMA - sir ASCII de 40 octeti
C_5 ADRESA FIRMA - sir ASCII de 40 octeti
C_6 COTE TVA
Cota TVA A -2 octeti
Cota TVA B -2 octeti
Cota TVA C -2 octeti
Cota TVA D -2 octeti
Data -6 octeti
Numar inchidere fiscala precedenta -2 octeti
Suma de control -1 octet
C_7 RAMRESET
Timp -3 octeti
Data -3 octeti
Suma de control -1 octet
C_8 INCHIDERE FISCALA
Contor Z -2 octeti
TotalBrut zilnic A -8 octeti
TotalBrut zilnic B -8 octeti
TotalBrut zilnic C -8 octeti
TotalBrut zilnic D -8 octeti
Valoare Totala A -8 octeti
Valoare Totala B -8 octeti
Valoare Totala C -8 octeti
Valoare Totala D -8 octeti
Valoare Totala fara taxe zilnic -8 octeti
Valoare Totala fara taxe cumulata -8 octeti
Total special zilnic -8 octeti
Total special cumulat -8 octeti
Total general cumulat -8 octeti
Numar bonuri fiscale -2 octeti
Data -6 octeti
Suma de control -2 octeti
Comunicatia între imprimanta fiscala si PC se realizeaza serial prin intermediul unui protocol pe interfata RS232.În cadrul acestui protocol, PC-ul este Master, iar imprimanta este slave. Hostul(PC-ul) este singurul care poate initia o comunicatie, iar imprimanta fiscala executa comanda si raspunde cu o secventa al carui format este diferit de cel al hostului. În cadrul unui schimb uzual de mesaje raspunsul imprimantei fiscale vine dupa un interval de sub 0,5 secunde pâna la 10 secunde de la lansarea comenzii, astfel încât sa poata avea loc tiparirea fizica, în cazul unor rapoarte mai lungi. Aceast interval se poate regla în aplicatia de nivel înalt în functie de marimea maxima a rapoartelor cerute imprimantei fiscale.
Protocolul Host-Imprimanta fiscala are urmatorul format:
SOT |
LEN |
SEQ |
CMD |
DATE . |
CRC |
EOT |
|
Unde:
SOT -Indica startul transmisiei(Sart of Transmision),are 1 octet cu valoarea 0x01h
LEN -Lungimea tuturor octetilor ce urmeaza dupa LEN, exceptând campurile CRC si EOT si are 1 octet
SEQ -Numarul de secventa - din PC se va genera un numar de secventa aleator, dar diferit de precedentul (1 octet)
CMD -Comanda,reprezinta numarul functiei descrise în capitolul 3. Are lungimea de 1 octet.
DATE -Poate avea lungimea cuprinsa între 0 si 248 octeti.
CRC -Suma de control a octetilor LEN,SEQ,CMD,DATE, suma este octet cu octet si ocupa doi octeti
EOT -Indica sfârsitul transmisiei, are 1 octet cu valoarea 0x03h
Exemplu de utilizare a protocolului:
0x01 0x02h 0x01h 0x0Bh 0x0Eh 0x0h 0x03h; reprezinta apelarea functiei 11.
Protocolul Imprimanta fiscala- Host:
SOT |
LEN |
SEQ |
STATUS |
CMD |
DATE |
CRC |
EOT |
|
Unde:
SOT -Start of transmision, 1 octet
LEN -Lungimea unei transmisii(în octeti),1 octet
SEQ -Secventa,1 octet acelasi cu cel de la emisie
STATUS -Status-ul descris în capitolul 5, are 8 octeti
CMD -Comanda care i-a fost trimisa, 1 octet
DATE -Poate avea lungimea cuprinsa între 0 si 230 octeti
CRC -Suma de control a octetilor LEN,SEQ,STATUS,CMD,DATE si ocupa doi octeti
EOT -End of transmision,1 octet
|