Comenzile de bon acceptate de DxPrint în fișierele compatibile FPrint: vânzare, discount, subtotal, total, rapoarte, numerar, afișaj și cod de bare.
DxPrint acceptă și interpretează următoarele comenzi FPrint:
S (vânzare), T (total), D (copie bon), P (text publicitar), C (discount/majorare), H
(blocare tastatură), F (deblocare tastatură), I (retragere/depunere bani), X (raport X),
Z (raport Z).
Legislația actuală nu permite copia bonului fiscal. Comanda a fost păstrată doar pentru compatibilitate.
Două comenzi nu există în driverul FPrint:
V (afișaj client), K (cod fiscal afișat pe bon)
În plus, driverul permite:
a) Trimiterea unității de măsură în comanda de vânzare (buc, kg etc.).
b) Trimiterea cotei TVA în comanda de vânzare, sub forma 19%. Pentru
compatibilitate se poate trimite și poziția cotei, iar driverul identifică automat
cota TVA de pe poziția respectivă.
c) Trimiterea codului fiscal prin comanda separată K. În acest caz,
bonul fiscal este tipărit conform noii legislații.
Bonurile nefiscale se pot tipări în toate cele 3 moduri de rulare: Individual, Rezident și Embedded.
Singura restricție este că bonul nefiscal acceptă doar 3 comenzi:
Comenzile de Discount și de tipărire cod fiscal sunt permise, dar sunt ignorate.
Dacă un bon nefiscal conține comenzi de total sau de subtotal, bonul nu va fi
tipărit și va fi marcat ca eronat.
Pagina Exemple de bon conține și câteva bonuri nefiscale.
S,nr_logic,______,_,__;denumire;pret;cantitate;departament;grupa;tva;0;0;um;
Exemple:
S,1,______,_,__;Produs vanzare cu unitate de masura
specificata;19.45;3.905;1;1;19%;0;0;kg;
S,1,______,_,__;Produs vanzare cu cota tva
specificata;12.00;1.000;1;1;9%;0;0;buc;
S,1,______,_,__;Produs vanzare cu pozitie
tva;12.00;1.000;1;1;2;0;0;buc;
S,1,______,_,__;Produs vanzare fara unitate de masura
specificata;19.45;3.905;1;1;19%;0;0;
S Reprezintă comanda de vânzare.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
denumire Reprezintă denumirea produsului. Setul de caractere permis de echipament este ISO-8859-2. Poate avea cel mult 72 de caractere.
pret Reprezintă prețul produsului. Poate avea cel mult 2 zecimale și poate fi negativ pentru operațiunile de anulare.
cantitate Reprezintă cantitatea produsului. Poate avea cel mult 3 zecimale.
departament Reprezintă departamentul produsului. Valoare între 0 și 99, unde 0 înseamnă că produsul nu are departament.
grupa Reprezintă grupa produsului. Valoare între 1 și 99. Această valoare este ignorată la procesarea comenzii.
tva Reprezintă TVA-ul produsului. Se poate trimite ca poziție (1 - 99) sau ca valoare, sub forma 19%, 5%, 9%. Dacă apare simbolul de procent, driverul consideră că ai trimis valoarea și caută cota în lista de cote a echipamentului fiscal. Poziția trimisă se caută la fel, în pozițiile echipamentului, iar casa primește cota TVA găsită. Lista cotelor TVA și pozițiile lor pot fi citite cu această comandă:
um Reprezintă unitatea de măsură a produsului. Dacă lipsește, driverul trimite
unitatea de măsură BUC. Dintr-o unitate de măsură mai lungă de 6
caractere, echipamentul primește doar primele 6 caractere.
C,nr_logic,______,_,__;tip_discount;valoare;;;;
Exemple:
C,1,______,_,__;0;15.00;;;;//majorare procentuală de 15%
C,1,______,_,__;1;10.00;;;;//reducere procentuală de 10%
C,1,______,_,__;2;10.00;;;;//majorare valorică de 10 lei
C,1,______,_,__;3;5.00;;;;//reducere valorică de 5 lei
C Reprezintă comanda de discount.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
tip_discount Reprezintă tipul de acțiune. Poate fi:
0 - Majorare procentuală
1 - Reducere procentuală
2 - Majorare valorică
3 - Reducere valorică
valoare Reprezintă procentul sau valoarea reducerii ori a majorării. Poate avea cel mult 2 zecimale.
Atenție:
Dacă comanda de discount apare după comanda de
subtotal L, reducerea sau majorarea se aplică întregii valori a
bonului.
Altfel, reducerea sau majorarea se aplică produsului dinaintea comenzii de
discount.
Comanda de discount trebuie să urmeze imediat după comanda de vânzare S
sau după subtotal L. Dacă între ele există un text (P,
W) sau alt discount, ori dacă discountul este la începutul bonului,
bonul este respins înainte de tipărire cu eroarea
DISCOUNT_FARA_PRODUS_SAU_SUBTOTAL. Textul se pune după discount.
L,nr_logic,______,_,__;
Exemple:
L,1,______,_,__;
L Reprezintă comanda de subtotal.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
T,nr_logic,______,_,__;tip_plata;valoare;;;;
Exemple:
T,1,______,_,__;1;5.65;;;;//Plată cu CARD în valoare de 5.65 lei
T,1,______,_,__;4;5.35;;;;//Plată cu TICHETE VALORICE în valoare de 5.35 lei
T,1,______,_,__;0;;;;;//Plată în NUMERAR, cu totalul calculat automat
T,1,______,_,__;0;25.87;;;;//Plată în NUMERAR în valoare de 25.87 lei
T Reprezintă comanda de total.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
tip_plata Reprezintă modalitatea de plată. Poate fi:
0 - Numerar
1 - Card
2 - Credit
3 - Tichete de masă
4 - Tichete valorice
5 - Voucher
6 - Plată modernă
7 - Card + avans numerar
8 - Alte metode de plată
valoare Reprezintă suma plătită. Poate avea cel mult 2 zecimale.
Dacă lipsește, totalul de plată se calculează automat.
Pentru modalitatea de plată 7 - Card + avans numerar, valoarea introdusă trebuie să
fie mai mare decât valoarea totală a bonului.
tip_raport,nr_logic,______,_,__;;;;;;;
Exemple:
X,1,______,_,__;;;;;;;
Z,1,______,_,__;;;;;;;
tip_raport Reprezintă tipul de raport dorit. Poate fi:
X - Raport X
Z - Raport Z
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
Atenție:
La executarea acestor rapoarte, driverul
generează în directorul lui și un fișier suplimentar cu totalurile zilei, într-un
format ușor de înțeles.
R,nr_logic,______,_,__;tip_raport;tip_afisare;data/nr Z început;data/nr Z sfârșit;
Exemple:
R,1,______,_,__;6;0;01-12-18;31-12-18;//Raport detaliat pentru perioada 01.12.2018 - 31.12.2018
R,1,______,_,__;1;0;100;200;;;//Raport detaliat pentru intervalul Z 100 - 200.
R,1,______,_,__;2;0;;;//Raport ECR
R,1,______,_,__;3;0;;;//Raport de verificare pe departamente
R,1,______,_,__;4;0;;;//Raport de verificare pe grupe de produse
R,1,______,_,__;5;0;01-12-18;14-12-18;//Raport sumar pentru perioada 01.12.2018 - 14.12.2018
R,1,______,_,__;0;0;20;40;//Raport sumar pentru intervalul Z 20 - 40
R Reprezintă comanda de raport.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
tip_raport Reprezintă tipul de raport. Poate fi:
0 - Raport sumar pe numere Z
1 - Raport detaliat pe numere Z
2 - Raport ECR
3 - Raport pe departamente
4 - Raport pe grupe de produse
5 - Raport sumar pe perioadă
6 - Raport detaliat pe perioadă
tip_afisare Reprezintă modul de afișare a raportului: 0 pentru tipărire pe echipamentul fiscal sau 1 pentru export într-un fișier extern. Deocamdată funcționează doar tipărirea, adică parametrul 0.
data/nr Z început Reprezintă data de început în format scurt (zi-lună-an_scurt,
de exemplu 01-12-18) pentru rapoartele de tip 5 sau 6, sau
numărul Z de început pentru rapoartele de tip 0 sau 1.
Celelalte rapoarte ignoră acest parametru. Numărul Z minim admis este 0.
data/nr Z sfârșit Reprezintă data de sfârșit în format scurt (zi-lună-an_scurt,
de exemplu 31-12-18) pentru rapoartele de tip 5 sau 6, sau
numărul Z de sfârșit pentru rapoartele de tip 0 sau 1.
Celelalte rapoarte ignoră acest parametru. Atât data, cât și numărul Z trebuie să
fie mai mari decât parametrul data/nr Z început.
I,nr_logic,______,_,__;tip_actiune;valoare;;;;
Exemple:
I,1,______,_,__;0;12.56;;;;//Depunere de 12.56 lei în sertar
I,1,______,_,__;1;5.89;;;;//Retragere de 5.89 lei din sertar
I Reprezintă comanda de retragere sau depunere numerar.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
tip_actiune Reprezintă tipul de acțiune. Poate fi:
0 - Depunere bani în sertar
1 - Retragere bani din sertar
valoare Reprezintă suma retrasă sau depusă. Se scrie cu 2 zecimale.
K,nr_logic,______,_,__;cod_fiscal;
Exemple:
K,1,______,_,__;RO123456789;
K,1,______,_,__;987654321;
K Reprezintă comanda de tipărire a codului fiscal pe bon.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
cod_fiscal Reprezintă codul fiscal tipărit pe bonul fiscal.
V,nr_logic,______,_,__;tip_actiune;text;
Exemple:
V,1,______,_,__;0;CLEAR;
V,1,______,_,__;1;AFISARE PE LINIA DE SUS;
V,1,______,_,__;2;AFISARE PE LINIA DE JOS;
V Reprezintă comanda de afișare pe afișajul extern.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
tip_actiune Reprezintă tipul de acțiune. Poate fi:
0 - Șterge afișajul
1 - Afișează textul pe linia de sus
2 - Afișează textul pe linia de jos
text Reprezintă textul afișat. Setul de caractere permis de echipament este ISO-8859-2. Cel mult 20 de caractere.
P,nr_logic,______,_,__;text;;;;;
Exemple:
P,1,______,_,__;Operator: Ion Popescu;;;;;
P,1,______,_,__;Va multumim!;;;;;
P,1,______,_,__;Discount card fidelizare 20%;;;;;
P Reprezintă comanda de tipărire a unui text publicitar pe bon.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
text Reprezintă textul afișat. Setul de caractere permis de echipament este ISO-8859-2. Cel mult 42 de caractere.
W,nr_logic,______,_,__;tip_afisare;text;
Exemple:
W,1,______,_,__;b;Operator: Ion Popescu;//Text îngroșat
W,1,______,_,__;bu;Va multumim!;//Text îngroșat și subliniat
W,1,______,_,__;;Discount card fidelizare 20%;//Text fără niciun stil
W,1,______,_,__;idc;Discount 20%;//Text italic, de mărime dublă, centrat pe bon
W,1,______,_,__;bur;Tranzactie #1234;//Text îngroșat, subliniat, aliniat la dreapta
W,1,______,_,__;biudc;Text publicitar cu toate stilurile de text;//Text îngroșat, italic, subliniat, de mărime dublă, centrat
W Reprezintă comanda de tipărire a unui text publicitar cu stiluri pe bon.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
tip_afisare Reprezintă stilul textului. În aceeași comandă se pot folosi mai
multe stiluri:
b - Îngroșat
i - Italic
u - Subliniat
d - Mărime dublă
l - Aliniere la stânga (implicit)
c - Aliniere la centru
r - Aliniere la dreapta
text Reprezintă textul afișat. Setul de caractere permis de echipament este ISO-8859-2. Cel mult 42 de caractere.
Q,nr_logic,______,_,__;tip_codbare;codbare;marime;
Exemple:
Q,1,______,_,__;1;12345670;//Cod de bare de tipul EAN8
Q,1,______,_,__;2;1234567890128;//Cod de bare de tipul EAN13
Q,1,______,_,__;3;dxprint-1234565;//Cod de bare de tipul Code128
Q,1,______,_,__;4;www.dxprint.ro;//Cod de bare de tipul QRCode, fără parametrul de mărime
Q,1,______,_,__;4;www.dxprint.ro;5;//Cod de bare de tipul QRCode, cu mărimea 5
Q Reprezintă comanda de tipărire a unui cod de bare pe bonul fiscal.
nr_logic Reprezintă numărul logic al echipamentului și se poate modifica în
fișierul de configurare, din opțiunea numarLogic. Valoare între 1 și 999.
tip_codbare Reprezintă tipul codului de bare. Poate fi:
1 - EAN8
2 - EAN13
3 - Code128
4 - QRCode
codbare Reprezintă codul de bare tipărit. Lungimea maximă depinde de tipul
codului: 8 caractere numerice pentru EAN8, 13 caractere
numerice pentru EAN13, între 3 și 14 caractere alfanumerice
pentru Code128 și între 3 și 279 caractere alfanumerice pentru
QRCode.
Limita pentru Code128 vine de la lățimea hârtiei de 57 mm, nu de la
protocolul casei, care permite 31 de caractere. Casa grupează cifrele consecutive
câte două, așa că un cod format doar din cifre poate avea până la 28 de cifre
dacă numărul lor este par, sau până la 25 dacă este impar. Un cod mixt poate
depăși 14 caractere dacă are cifre consecutive: de exemplu,
AB123456789012345678 (20 de caractere) încape. Driverul respinge codul
înainte să deschidă bonul, cu eroarea BARCODE_LUNGIME_INCORECTA. Fără
această verificare, casa ar anula tot bonul.
marime Reprezintă mărimea codului QRCode, între 1 (cea mai mică) și 8 (cea mai mare). Valoarea implicită este 3. Celelalte coduri de bare acceptă parametrul, dar îl ignoră.