Instalare, configurare, integrări și referința completă pentru comenzile fiscale.
Descarcă DxPrint direct de pe site de fiecare dată când instalezi sau actualizezi driverul. Astfel folosești întotdeauna versiunea curentă pentru sistemul tău de operare.
Descarcă DxPrintSelectează varianta pentru Windows, Linux sau macOS din pagina de descărcări.
Pe Windows alege „Extract All”, pe Linux „Extract Here”, iar pe macOS deschide arhiva prin dublu click.
Directorul rezultat trebuie să conțină executabilul,
PORNESTE_DXPRINT, directorul scurtaturi și
exemplele de bon. DxPrint creează config.json la prima
pornire.
Rulează scurtătura PORNESTE_DXPRINT. Aceasta pornește
executabilul fără argumente. Dacă config.json nu există,
DxPrint creează fișierul și deschide wizardul în browser pe Windows,
Linux și macOS.
Driverul verifică porturile seriale și caută un echipament Datecs
sau Daisy. Dacă detectarea automată nu reușește, configurează manual
conexiunea USB, COM sau TCP/IP. Rezultatul detectării precompletează
wizardul, dar nu modifică încă config.json.
Alege modul Individual pentru apelarea executabilului cu un bon, Rezident pentru monitorizarea unui director sau Embedded pentru serviciul HTTP. Pentru modul Rezident, specifică directorul cu bonuri.
Introdu o licență existentă, solicită o licență trial pentru 14 zile sau continuă fără licență. Fără licență, driverul salvează configurația, dar nu poate tipări.
Apasă Finalizează pentru a scrie opțiunile în
config.json. Pagina afișează instrucțiunile pentru modul
ales. Verifică setările avansate dacă este nevoie, apoi apasă
Am finalizat setup-ul pentru a opri serverul local.
Wizardul rulează numai la prima pornire fără argumente și este disponibil la
http://127.0.0.1:8585/setup. După configurare, pornește din nou
DxPrint cu PORNESTE_DXPRINT. Pentru a redeschide setările, rulează
scurtătura scurtaturi/start_web_config_local pentru sistemul tău de
operare sau folosește
-start-config.
Directorul scurtaturi din fiecare arhivă include o comandă care
pornește DxPrint în modul de detectare automată:
Scurtătura rulează comanda -auto-configure-device. Driverul caută
echipamentul, actualizează config.json, afișează rezultatul și se
oprește fără să deschidă interfața web.
Dacă ai nevoie de configurare manuală, poți modifica direct fișierul
config.json. Referința completă este disponibilă mai jos.
{
"echipament": {
"tipEchipament": "datecs",
"port": "COM1",
"baudRate": 115200,
"numarOperator": 1,
"parolaOperator": "0001",
"numarLogic": 1,
"connTimeout": 30
},
"rulare": {
"rezident": false,
"directorBonuri": "bonuri",
"ftpServer": "",
"ftpUtilizator": "",
"ftpParola": "",
"ftpDirectorBonuri": "",
"ftpIntervalVerificareInSecunde": 300,
"httpServerActiv": false,
"httpPort": 8090,
"httpUtilizator": "",
"httpParola": "",
"httpPermiteListareDirBonuri": true,
"embedded": false,
"corsActiv": false,
"logLevel": "INFO"
},
"general": {
"directorBonuriExecutate": "executate",
"directorBonuriRaspuns": "raspuns",
"generareFisierCuNrBonFiscal": true,
"directorRapoarteAnaf": "ANAF",
"extensieFisierBon": "inp,bon",
"intervalPastrareBonuriInDirector": 7,
"tiparesteRaportZAutomat": true,
"raspundeCuNrEroareInFisierRaspuns": false,
"transformaCifDinTextPublicitarInFactura": "",
"trimiteRaportZPeEmail": "",
"prevalidareValoareBon": "false",
"ziDinLunaPentruExtragereAutomataFisiereXml": 0,
"trimiteFisiereXmlPeEmail": "",
"httpProxy": "",
"tiparesteRaportPluInainteDeRaportZ": false,
"nrMaximRapoarteZNetrimise": 0,
"nrMaximRapoarteZNetrimiseNotificare": 0,
"mapareModalitatiPlata": [
{"modalitate": "NUMERAR", "pozitie": 0},
{"modalitate": "CARD", "pozitie": 1},
{"modalitate": "CREDIT", "pozitie": 2},
{"modalitate": "TICHETE_MASA", "pozitie": 3},
{"modalitate": "TICHETE_VALORICE", "pozitie": 4},
{"modalitate": "VOUCHER", "pozitie": 5},
{"modalitate": "PLATA_MODERNA", "pozitie": 6},
{"modalitate": "CARD_AVANS_NUMERAR", "pozitie": 7},
{"modalitate": "ALTE_METODE", "pozitie": 8}
]
},
"licenta": "Cumpara licenta de pe www.dxprint.ro",
"versiune": 10
}
Dupa instalarea adaptorului de la usb la serial in calculator, este
recomandat
sa
verificati in
Device Manager(Windows) sau in /dev/ttyXXX (Linux, MacOS) si sa identificati
numarul portului
COM. Dupa identificare acesta trebuie sa fie de forma COM1, COM2,
COMXX pentru
Windows, si sub forma de /dev/ttyACM0, /dev/ttyACM1, /dev/ttyACMX
pentru Linux si
MacOS. Aceasta informatie trebuie introdusa in sectiunea port din
fisierul de
configurare. Valoare implicita COM1.
Pentru conectarea prin TCP/IP, setează portul în formatul
tcp://ip:port. Exemplu: tcp://192.168.1.23:3999.
Majoritatea echipamentelor folosesc portul 3999. Poți verifica setarea de rețea
cu această comandă:
Viteza de comunicatie este de obicei setata in casa de marcat la 115200,
dar daca este
nevoie se
poate modifica direct din sectiunea baudRate conform cu viteza
setata in casa.
De preferat ca viteza setata in casa sa fie trecuta si in Device Manager la
viteza portului COM
pentru a nu exista discrepante in comunicarea dintre driver si casa de marcat.
Pentru conectarea
prin TCP/IP acest parametru este ignorat. Valoare implicita 115200.
tipEchipament reprezintă tipul echipamentului la care se face
conectarea. Folosiți datecs pentru echipamentele Datecs și
daisy pentru echipamentele Daisy. Valoarea implicită este
datecs.
numarOperator reprezinta utilizatorul setat in casa de marcat.
Echipamentul fiscal
este programat initial cu numarul de operator 1.
parolaOperator reprezinta parola utilizatorului setat in casa de
marcat.
Echipamentul fiscal este programat initial cu parola de operator 0001.
connTimeout reprezinta timpul de asteptare in secunde al driverului
pana cand primeste un raspuns de la echipament. Valoare initiala este de 30
de secunde.
Driverul are doua modalitati de rulare: rezident si nerezident. Pentru
a
rula in
modul rezident
este nevoie sa treceti valoarea true la optiunea rezident.
In modul rezident
driverul monitorizeaza daca in directorul specificat in optiunea
directorBonuri
exista fisiere de bon noi si pe masura ce acestea sunt adaugate in acest
director driverul le
prelucreaza pe fiecare in parte.
În modul nerezident, trimite numele fișierului de bon ca argument. Fișierul poate fi în directorul driverului sau poate fi indicat printr-o cale absolută.
Toate optiunile de mai jos sunt valabile doar atunci cand driverul ruleaza in modul rezident (FTP , HTTP) sau in modul embedded (doar HTTP).
ftpServer reprezinta adresa de conectare a serverului FTP
la
care
driverul se
conecteaza pentru a putea prelua bonurile generate in directorul specificat prin
optiunea
ftpDirectorBonuri. Adresa de conectare trebuie sa fie trecuta sub
forma ip:port
sau hostname:port. Daca portul de conectare este cel standard 21
atunci adresa de
conectare poate fi trecuta si fara port.
ftpUtilizator reprezinta utilizatorul pentru
conectarea
la serverul
FTP. In cazul
in care serverul permite si conectare Anonymous este obligatoriu sa se specifice
numele de
utilizator ca fiind Anonymous iar la parola trebuie completat orice.
ftpParola reprezinta parola utilizatorului de server FTP.
In
cazul
in care serverul permite si conectare Anonymous este obligatoriu ca acest camp
sa fie completat.
ftpDirectorBonuri reprezinta directorul din
cadrul
serverului FTP
de unde vor fi
extrase bonurile fiscale. Ex: bonuri/generate, bonuri.
Driverul va
incerca sa schimbe in momentul conectarii directorul in cel specificat aici.
ftpIntervalVerificareInSecunde
reprezinta intervalul in secunde de
verificare a
bonurilor noi in directorul specificat din cadrul serverului FTP. Valoare minima
60 de secunde.
Pentru mai multe informatii referitoare la modul de lucru cu un director de pe un server FTP gasiti in sectiunea Printare bonuri din director FTP.
httpServerActiv reprezinta optiunea prin care daca
este
true
se va porni un
web server pe portul ales in optiunea httpPort prin care se pot
printa bonurile
direct printr-un apel POST catre endpointul /bonuri.
httpPort reprezinta optiunea se poate seta portul pentru serverul
HTTP.
Acest port trebuie sa fie cuprins intre 1024 - 65535.
httpUtilizator reprezinta numele de utilizator dorit
pentru
protejarea serverului
web prin autentificare de tip Basic Auth.
httpParola reprezinta parola de utilizator dorit pentru
protejarea
serverului
web. Doar in momentul in care utilizatorul si parola sunt specificate
autentificarea va fi
activa.
httpPermiteListareDirBonuri reprezinta
optiunea prin care daca este
true se va putea accesa din interfata web al driverului disponibila
din browser la
adresa http://IP:port, directoarele de bonuri executate si de
bonuri raspuns
specificate in configuratia driverului.
embedded reprezinta optiunea prin care daca este
true se vor putea trimite apeluri web atat pentru vanzare cat si
pentru rapoartele zilnice printr-un webservice HTTP REST JSON. Adresa ip de
lansare al webservice-ului
depinde strict de optiunea httpServerActiv, si daca aceasta este
activa atunci adresa de ip la care va putea fi accesat va fi adresa de retea
de forma 192.168.1.x, iar daca aceasta este inactiva atunci serviciul web se va
deschide pe adresa de ip 127.0.0.1, iar portul in ambele cazuri se va citi din
optiunea httpPort. Si in acest mod protejarea webservice-ului se
poate face prin user si parola specificate in optiunile de mai sus.
Pentru mai multe informatii referitoare la modul de integrare cu aplicatii prin websevice JSON gasiti in sectiunea Integrare cu aplicatii prin serviciu web JSON
corsActiv reprezinta optiunea prin care daca este
true se vor putea trimite apeluri web din javascript chiar daca
requestul
nu este de pe acelasi domain. Afla mai multe despre CORS.
Aceasta optiune este valabila doar atunci cand optiunea embedded este
activa.
Serverul va trimite urmatoarele headere catre client atunci cand aceasta optiune
este activa:
- Access-Control-Allow-Origin: *
- Access-Control-Allow-Methods: OPTIONS,GET,POST,PUT,DELETE,HEAD
- Access-Control-Allow-Headers: X-Requested-With, Content-Type, Authorization,
Origin,
Accept
logLevel reprezinta nivelul de logare afisat in consola si in fisierul
de
log.
Variantele posibile sunt: DEBUG, INFO sau ERROR.
Aceasta sectiune contine variabilele generale de folosire a driverului, ele fiind valabile pentru ambele modurile de rulare (rezident/nerezident).
directorBonuriExecutate reprezinta directorul in care vor fi
copiate bonurile
executate. Bonul copiat aici nu va contine informatiile de raspuns. Acesta poate
avea cale
relativa de forma "executate" si asta inseamna ca se va crea un
director cu numele
de executate in directorul unde se afla driverul dxprint.exe, sau cale absoluta
de forma
"c:\\executate", si asta inseamna ca bonul va fi copiat in
directorul c:\executate.
De retinut faptul ca pentru calea absoluta este necesara trecerea unui \
suplimentar, de
forma c:\\ in loc de c:\.
directorBonuriRaspuns reprezinta directorul in care vor fi generate
fisierele de
raspuns ale bonurilor executate.
Acesta poate avea cale relativa de forma "raspuns" si asta inseamna
ca se va crea
un director cu numele de raspuns in directorul unde se afla driverul
dxprint.exe, sau cale
absoluta de forma "c:\\raspuns", si asta inseamna ca fisierul va fi
generat in
directorul c:\raspuns. De retinut faptul ca pentru calea absoluta este necesara
trecerea unui
\ suplimentar, de forma c:\\ in loc de c:\.
Fisierul de raspuns
contine informatiile de raspuns exact ca Fprint cu coduri de eroare Er, Ok, Sd
si suplimentar
la sfarsitul fiecarui rand in cazul in care unul din randuri nu este valid se va
trece si
motivul
pentru care bonul a fost respins. Suplimentar in cazul in care avem situatii de
Lipsa hartie sau
Raport Z neefectuat, se va trece pe ultimul rand din fisier acest mesaj de
eroare.
generareFisierCuNrBonFiscal reprezinta optiunea prin care daca este
true
atunci
in directorul de directorBonuriRaspuns se va genera suplimentar pe
langa fisierul
de raspuns si un fisier cu extensia .nrb care contine informatii legate de
respectivul bon, cum
ar fi numarul bonului, numarul Z-ului, numele fisierului si data de executie :
OK;Z=38|NR=503|UNIQUE_ID=bon.txt|2018_07_09_17_00_04_312. De
retinut faptul ca
acest fisier este generat doar atunci cand bonul a fost executat cu succes.
Valoare implicita
true.
directorRapoarteAnaf reprezinta directorul in
care
vor fi extrase
fisierele in
format XML/P7B din echipamentul fiscal, necesare pentru rapoartarea ANAF.
Acesta poate avea cale relativa de forma "anaf" si asta inseamna ca
se va crea
un director cu numele de "anaf" in directorul unde se afla driverul
dxprint.exe,
sau cale
absoluta de forma "c:\\anaf", si asta inseamna ca fisierul va fi
generat in
directorul c:\anaf. De retinut faptul ca pentru calea absoluta este necesara
trecerea unui
\ suplimentar, de forma c:\\ in loc de c:\.
Suplimentar
driverul in momentul executiei rapoartelor de extragere a fisierelor pentru anaf
va genera cate
un subdirector pentru fiecare tip de raport. Pentru tipul de raport de extragere
pe baza
numarului Z va genera un director cu numele Z10-20 care reprezinta
practic numerele
Z de inceput - sfarsit trimise in linia de comanda. Pentru tipul de raport de
extragere pe baza
intervalului de timp va genera un director cu numele 09-2018 care
repezinta luna -
an, informatii extrase din data de pornire trimisa in linia de comanda.
extensieFisierBon reprezinta lista de extensii de fisier bon pe
care driverul le
prelucreaza. Acestea pot fi trecute cu virgula una dupa alta sub forma
inp,bon,txt
si asta inseamna ca driverul va prelucra doar acele fisiere de bon care au
extensia .inp, .bon
sau .txt. Daca un fisier de bon nu are extensia trecuta in aceasta optiune va fi
ignorat atat in
modul rezident cat si in modul nerezident. Valoare implicita inp,bon.
intervalPastrareBonuriInDirector reprezinta numarul maxim de zile
prin care un
fisier din directoarele definite in directorBonuriExecutate si
directorBonuriRaspuns este pastrat. Toate fisierele care sunt mai
vechi de numarul
de zile specificat in aceasta optiune vor fi sterse automat la pornirea
driverului. Numarul de
zile maxim permis este 30. Valoare implicita 7 zile.
tiparesteRaportZAutomat reprezinta optiunea
prin care daca este
true
in momentul in care se doreste tiparirea unui bon fiscal si au trecut mai mult
de 24 de ore se
va tipari mai intai raportul Z urmat apoi de bonul fiscal dorit pentru tiparire
initial. Valoare
implicita true.
raspundeCuNrEroareInFisierRaspuns
reprezinta optiunea prin care
daca este
true in momentul in care o comanda dintr-un bon fiscal intampina o eroare
in executie se
va inregistra respectiva eroare in fisierul raspuns al bonului si va fi trecuta
sub forma
Er-111024. Pentru integrare aveti nevoie de intreaga lista de erori ce poate fi
descarcata de
aici. Valoare
implicita false.
transformaCifDinTextPublicitarInFactura
reprezinta optiunea prin
care se poate
printa codul fiscal in formatul nou cerut de legislatie chiar daca acesta a fost
trimis prin
text publicitar si anume comanda P. Ca si exemplu, daca aplicatia va
genereaza in
acest moment urmatoarea comanda: P,1,______,_,__;CUI client:
RO123456789;;;;;
veti putea trece in aceasta optiune exact textul CUI client: iar in
momentul in
care se prevalideaza bonul driverul va sti sa extraga codul fiscal si sa-l
printeze
in formatul nou. Continutul optiunii este case insensitive.
trimiteRaportZPeEmail reprezinta optiunea
prin
care se poate
trimite email cu
raportul Z in momentul in care acesta este lansat si va fi trimis catre adresele
de email
specificate in aceasta optiune. Pot fi trecute mai multe adrese de email cu
virgula una dupa
alta. Ca si exemplu: suport@dxprint.ro,test@test.com.
Apelul de trimitere raport Z pe email este apel HTTP POST catre
webservice-ul https://www.dxprint.ro, iar acesta dupa validare continut primit va
trimite email mai departe cu informatiile primite de la driver.
De retinut faptul ca aceste informatii sunt trimise in mod securizat, nu sunt
stocate pe serverele noastre sau pe serverele Amazon. Firma noastra
foloseste
serviciile Amazon AWS pentru trimiterea tuturor email-urilor.
prevalidareValoareBon reprezinta optiunea prin care daca este activata
bonul nu
se trimite catre echipament decat atunci cand sumele sunt validate. Avand aceasta
optiune
activa sansele ca bonul sa ramana deschis ca nu s-au trimis sumele de total plata
corect
sunt minime. Valoare implicita false.
ziDinLunaPentruExtragereAutomataFisiereXml reprezinta ziua din luna in
care
se va incerca exportul fisierelor XML din luna precedenta si trimiterea lor catre o
adresa de email daca optiunea trimiteFisiereXmlPeEmail este completata
cu
cel putin o adresa de email. Exportul se face indiferent daca optiunea
trimiteFisiereXmlPeEmail este completata sau nu. Valoarea acestei
optiuni
poate fi intre 0 si 20. Valoarea 0 inseamna ca aceasta optiune este dezactivata.
Intervalul 1 - 20 reprezinta zilele din luna in care se va putea face exportul
automat.
In momentul in care optiunea este activa iar exportul de fisiere XML se va lansa,
aceasta procedura va genera in directorul definit in optiunea
directorRapoarteAnaf o arhiva de forma luna-an.zip,(Ex: 04-19.zip).
De
retinut faptul ca daca avem data de 5 aleasa ca data de export automat a
fisierelor XML iar in data de 5 a lunii nu se deschide casa din varii motive
driverul va
incerca in urmatoarele 2 zile adica pe data de 6 si pe data de 7 acelasi lucru de
export
automat. In cazul in care pe data de 5 fisierele XML au fost extrase si arhiva a
fost
creata atunci driverul nu va mai incerca aceasta procedura de export in urmatoarele
2
zile.
Valoare implicita 0.
trimiteFisiereXmlPeEmail reprezinta optiunea prin care fisierele XML
exportate automat din echipamentul fiscal se pot trimite catre adresa sau adresele
de
email specificate in aceasta optiune. Este necesar ca optiunea
ziDinLunaPentruExtragereAutomataFisiereXml sa fie activa. Pot fi
trecute
mai multe adrese de email cu virgula una dupa alta. Ca si exemplu:
suport@dxprint.ro,test@test.com.
Apelul de trimitere fisiere XML pe email este apel HTTP POST catre
webservice-ul https://www.dxprint.ro, iar acesta dupa validare continut primit va
trimite email mai departe cu informatiile primite de la driver.
De retinut faptul ca aceste informatii sunt trimise in mod securizat, nu sunt
stocate pe serverele noastre sau pe serverele Amazon. Firma noastra
foloseste
serviciile Amazon AWS pentru trimiterea tuturor email-urilor.
httpProxy reprezinta serverul proxy folosit pentru cele 2 servicii
disponibile in driver de trimitere raport Z pe email si de trimitere fisiere XML
generate automat din echipament fiscal pe email. De obicei se
foloseste atunci cand calculatorul de client unde este instalat driverul are accesul
la
internet restrictionat de obicei printr-un proxy. Formatul adresei de proxy
este (http|https)://(hostname:ip):port.
Apelurile de trimitere raport Z/fisiere XML pe email sunt apeluri http POST catre
webservice-ul https://www.dxprint.ro.
tiparesteRaportPluInainteDeRaportZ reprezinta optiunea prin care daca
este
activata se va tipari raportul de produse Z PLU inainte de raportul Z.
Valoare implicita false.
nrMaximRapoarteZNetrimise reprezinta numarul de rapoarte Z
nesincronizate
cu serverul ANAF. In cazul in care numarul de rapoarte Z nesincronizate depaseste
aceasta optiune driverul se va opri din executie. Daca optiunea este 0 inseamna ca
aceasta
verificare nu se va face.
Valoare implicita 0.
nrMaximRapoarteZNetrimiseNotificare reprezinta numarul de rapoarte Z
nesincronizate cu serverul ANAF care vor genera o notificare pe email. Daca numarul
de
rapoarte Z nesincronizate depasteste aceasta optiune se va genera o notificare pe
email
prin care se transmite ca exista un nr de x rapoarte Z nesincronizate.
Aceasta notificare va folosi adresele de email definite in optiunea trimiteRaportZPeEmail.
Aceasta notificare va fi trimisa doar daca driverul ruleaza in modul embedded sau
rezident.
Daca optiunea este 0 inseamna ca aceasta verificare nu se va face.
Valoare implicita 0.
mapareModalitatiPlata reprezinta optiunea prin care se pot remapa
modalitatile de plata in momentul in care este tiparit bonul fiscal. Aceasta
remapare
ofera o compatibilitate mai mare cu aplicatiile existente.
Reprezinta licenta de functionare a driverului. Fara aceasta licenta nu se pot trimite comenzi catre echipamentul fiscal. Este important ca licenta de functionare sa fie trecuta pe o singura linie in locul textului Cumpara licenta de pe www.dxprint.ro, si sa contina inclusiv cele 2 egaluri de la sfarsitul acesteia.
Reprezinta versiunea de configuratie pentru driverul de comunicatie, este recomandat sa nu se modifice aceasta valoare.
In momentul in care driverul ruleaza in mod rezident iar optiunile din cadrul
sectiunii ftp sunt
completate atunci acesta va porni un ticker care o data la intervalul specificat
va incerca sa
se conecteze pe serverul FTP in directorul specificat si de acolo sa extraga
toate fisierele de
comenzi bon care au extensia permisa in lista de extensii din optiunea
extensieFisierBon. Trebuie specificat faptul ca verificarea se va
face doar dupa
prima extensie, si deci in cazul in care in optiune avem specificate 2 sau mai
multe extensii
sub forma inp,bon,txt atunci driverul va extrage doar fisierele
care au
extensia .inp. In cazul in care nu exista extensii specificate
driverul va extrage
fisierele care vor avea extensia .inp.
In momentul in care in directorul FTP exista fisiere, pentru fiecare fisier se
va incerca
descarcarea acestuia si copierea intr-un fisier cu acelasi nume doar ca i se va
mai alipi si
_FTP_datetime. In felul acesta in directorul bonurilor executate si
a celor de
raspuns se vor putea identifica rapid fisierele care au venit dintr-un folder
FTP. Dupa ce
fisierul a fost creat si salvat in directorul de bonuri al modului rezident
specificat prin
optiunea directorBonuri fisierul original din directorul FTP va fi
sters.
Dupa executia bonului acesta va fi copiat in directoarele de bonuri executate si bonuri raspuns iar fisierul de raspuns va contine si data de executie pe langa data de preluare din directorul FTP.
Este recomandat ca intervalul de verificare sa fie unul realist si anume sa fie raportat la numarul de bonuri generate in respectiva perioada. Durata de tiparire a unui bon depinde de numarul de comenzi existente in acesta.
De specificat faptul ca driverul poate fi folosit in acelasi timp si pentru o aplicatie de vanzare locala care genereaza bonurile in acelasi director de bonuri. Faptul ca sunt extrase bonurile dintr-un director FTP nu incurca cu nimic functionarea locala a driverului. In plus se poate folosi in acelasi timp inclusiv cu primirea bonurilor prin protocol HTTP.
In momentul in care driverul ruleaza in mod rezident iar optiunea
httpServerActiv
este activa atunci acesta va porni un server web prin care poate primi comenzi
direct prin
protocolul HTTP.
Serverul web creat va avea adresa formata din adresa de IP al calculatorului de
pe care se
ruleaza driverul si portul specificat in optiunea httpPort. Ca si
exemplu daca
calculatorul de pe care rulati driverul are ip-ul 192.168.1.23, iar portul ales
de dumneavoastra
este 8080, puteti accesa interfata web al driverului direct din browser prin
apelarea adresei
http://192.168.1.23:8080.
De retinut faptul ca exista o probabilitate foarte mare ca sistemul de operare sa va solicite permisiunea de a accepta conexiuni pe portul specificat de dumneavoastra. Este recomandat sa permiteti acest lucru pentru a putea folosi aceasta functionalitate. Trebuie specificat faptul ca serverul creat nu este unul securizat prin certificat SSL, el fiind gandit pentru retele interne cu mai mult de 2 calculatoare si cu o singur echipament fiscal.
Pentru exemplele de mai jos vom folosi adresa serverului ca fiind
http://192.168.1.23:8080 pentru a fi mai simplu in exemplificare.
Dar trebuie tinut
cont de faptul ca adresa dumneavoastra de IP mai mult ca sigur va fi diferita.
Adresa de IP o puteti afla dupa cum urmeaza:
Wndows: Din Command Prompt apeland comanda ipconfig si in
rezultat trebuie sa
va uitati
dupa sectiunea IPv4 Address.
Linux, Mac: Din Terminal apeland comanda ifconfig si la fel in
rezultat
trebuie sa se
verifice sectiunea inet din cadrul eth0, sau en0 in functie de cate placi de
retea aveti
instalate.
Dupa pornirea driverului cu serverul de http activat puteti verifica ca acesta
functioneaza
apeland interfata web al driverului direct din browser la adresa
http://192.168.1.23:8080. In
pagina afisata o sa aveti toate detaliile pentru a putea printa un bon de pe alt
calculator
din retea sau din alta parte inclusiv sa accesati directoarele de bonuri
executate si bonuri
raspuns daca optiunea httpPermiteListareDirBonuri este activa.
Pentru a putea un bon prin HTTP aveti nevoie sa trimiteti un apel de tip POST
catre adresa
http://192.168.1.23:8080 iar continutul body-ului trebuie sa fie liniile de
comanda din fisierul
de bon. Daca se doreste specificarea numelui de bon aceasta informatie se poate
trimite
printr-un query param cu numele nume.
Ca si exemplu avem un bon cu numele specificat bon.inp care contine
un produs cu
discount de 10% trimite printr-un apel http:
POST http://192.168.1.23:8080/bonuri?nume=bon.inp HTTP/1.1
Content-Type: text/plain; charset=utf-8
Content-Length: 200
S,1,______,_,__;Produs cu denumire 1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
W,1,______,_,__;ic;Reducere client fidelizare: 10%;
W,1,______,_,__;ic;Va multumim!;
T,1,______,_,__;0;;;;;
In cazul in care aveti si autentificarea activata va trebuie sa trimiteti apelul cu headerul Authorization ca in exemplu de mai jos. Autentificarea este de tip Basic Auth.
POST http://192.168.1.23:8080/bonuri?nume=bon.inp HTTP/1.1
Content-Type: text/plain; charset=utf-8
Authorization: Basic dXNlcjpwYXJvbGE=
Content-Length: 200
S,1,______,_,__;Produs cu denumire 1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
W,1,______,_,__;ic;Reducere client fidelizare: 10%;
W,1,______,_,__;ic;Va multumim!;
T,1,______,_,__;0;;;;;
Ca si raspuns la apelul de mai sus se va intoarce numele de fisier generat
pentru tiparire. In
aceasta versiune de driver nu exista validare direct in webserver. Comenzile
trimise in body
sunt trimise catre driver si pe baza lor se va construi un fisier de bon care va
fi copiat
in directorul de bonuri specificat prin optiunea directorBonuri si
executat ca
orice alt bon.
Un raspuns la bonul trimis prin http mai sus va contine in body numele
fisierului generat de
catre server/driver si trimis catre echipamentul fiscal. Totodata la numele
bonului primit va fi
alipit si _HTTP_ip_client_port_client_datetime pentru a se putea
identifica rapid
in fisierele executate sau de raspuns exact de la ce calculator a fost primit,
prin ce protocol
si la ce data si ora. In cazul exemplulu de mai jos bonul a fost primit de la
calculatorul cu ip
192.168.1.50 in data de 12.09.2018 la ora 13:20:36.
HTTP/1.1 200 OK
Content-Type: text/html
Date: Tue, 11 Sep 2018 10:20:36 GMT
Content-Length: 52
bon_inp_HTTP_192_168_1_50_59936_2018_09_12_13_20_36_124.inp
Daca aveti nevoie de ajutor in implementarea unui client http necesar pentru aceasta procedura va rugam sa ne contactati la adresa de email suport@dxprint.ro.
De specificat faptul ca driverul poate fi folosit in acelasi timp si pentru o aplicatie de vanzare locala care genereaza bonurile in acelasi director de bonuri. Faptul ca sunt primite bonuri si prin protocolul HTTP nu incurca cu nimic functionarea locala a driverului. In plus se poate folosi in acelasi timp inclusiv cu extragerea bonurilor din director FTP.
Aceasta modalitate de integrare poate fi folosita doar atunci cand driverul ruleaza
in
modul
embedded. Pe scurt in modul embedded (sau modul de integrare) este
deschis
un
webserver http intern (127.0.0.1) daca optiunea httpServerActiv este
inactiva
sau local (192.168.1.x) daca optiunea httpServerActiv este activa in
setari.
Portul acestui webserver este la fel preluat din optiunea httpPort.
Pentru a putea folosi acest mod este nevoie sa aveti un client http care este
capabil sa
trimita cereri cu content type application/json catre webserverul intern sau local.
In
modul
de lucru embedded intern adica pe 127.0.0.1, webserverul nu poate fi accesat de
niciun
echipament din retea, doar calculatorul care ruleaza driverul are acces la acest
webserver.
Acesta este si lucru recomandat pentru acest mod embedded.
Ca masura de precautie atunci cand se ruleaza in mod local, puteti stabili un user si
o
parola
de http prin optiunile httpUtilizator si httpParola.
Webserverul expune endpoint-uri JSON pentru bonuri, echipament, numerar, rapoarte și periferice. Referința completă este disponibilă mai jos.
Endpoint-urile, parametrii, schemele și exemplele sunt disponibile în documentația Swagger.
Pentru a funcționa, driverul are nevoie de o licență asociată seriei echipamentului fiscal. Poți alege între licențiere anuală și permanentă. Refiscalizarea echipamentului pe altă societate nu schimbă seria licențiată.
Rulează driverul cu opțiunea -h pentru a afișa lista comenzilor
disponibile:
Tipărește raportul X.
Tipărește raportul Z.
Tipărește raportul zilnic pe departamente.
Tipărește raportul Z pe articole.
Tipărește raportul X pe operatori.
Înregistrează o depunere de numerar în casă.
Înregistrează o retragere de numerar din casă.
Afișează data setată pe echipamentul fiscal.
Setează data echipamentului pe baza calculatorului.
Exportă rapoartele XML pentru intervalul ZI-LUNĂ-AN.
Exportă rapoartele XML pentru un interval de numere Z.
Exportă rapoartele XML pentru luna precedentă.
Tipărește un bon nefiscal simplu.
Liniile se separă prin virgulă.
Afișează seria, fiscalizarea, antetul și cotele TVA. Funcționează fără licență.
Afișează MAC, IP, port, gateway și DHCP. Funcționează fără licență.
Trimite comanda de deschidere a sertarului de numerar.
Salvează cotele în ordinea pozițiilor din echipament.
Solicită automat o licență de test valabilă 14 zile.
Afișează informațiile ultimei sincronizări.
Afișează rapoartele Z din intervalul specificat.
Listează sau tipărește rapoarte Z și bonuri fiscale dintr-un interval.
-listare sau -tiparire, urmat opțional de -raportz sau -bonfiscal. Data folosește formatul dd-MM-YYTHH:mm:ss.
Detectează echipamentul, actualizează config.json și oprește driverul fără să pornească interfața web.
Pornește interfața de configurare la 127.0.0.1:8585.
Expune interfața de configurare în rețeaua locală.
Verifică, descarcă și instalează cea mai nouă versiune compatibilă. Rulează comanda fără alți parametri.
Afișează versiunea curentă a driverului.
Pentru a exporta rapoartele XML din echipamentul fiscal este nevoie sa rulati driverul din linie de comanda cu urmatoarele optiuni:
Exportă rapoartele XML pentru intervalul ZI-LUNĂ-AN și le salvează în directorRapoarteAnaf.
Exportă rapoartele XML pentru intervalul de numere Z indicat.
Exportă rapoartele XML pentru luna precedentă.
Pentru a raporta o problemă, scrie la suport@dxprint.ro și include versiunea driverului. O poți afla cu această comandă:
Probleme cunoscute:
In momentul in care se doreste conectarea pe portul COM iar echipamentul
nu este setat in
modul
de
calculator, sau este oprit, sau nu este conectat corect, acesta
va genera eroarea :
Problema deschidere port serial: The system cannot find the file specified.
In momentul in care se doreste conectarea prin modul TCP/IP iar echipamentul nu este setat in modul de calculator, sau este oprit, sau nu este conectat corect, acesta va genera o eroare (timeout) dupa un timp de asteptare de 20 de secunde.
Linux: In momentul in care se doreste conectarea pentru prima data pe
portul COM se va
genera mesajul:
Problema deschidere port serial: open /dev/ttyACM0: permission denied.
In acest caz trebuie rulata comanda sudo chmod a+rw /dev/ttyACMX,
unde X este numarul
portului alocat de sistemul de operare, sau daca nu doriti sa oferiti acces la
toti utilizatorii
pe
acest port puteti rula usermod -a -G dialout <user>, unde <user>
este
utilizatorul
la care doriti sa-i permiteti accesul.
In cazul in care echipamentul fiscal ramane fara hartie sau intampina o problema
chiar atunci
cand urma sau era in timpul tiparirii unui bon, driverul va astepta timp de 120
de secunde
pentru a se remedia problema. De cele mai ulte ori se intampla ca bonul sa se
opreasca din cauza
lipsei de hartie, informatie mentionata in raspunsul driverului. Acesta va
genera un mesaj de
forma:
Lipsa hartie! Va rugam schimbati rola! Urmatoarea incercare de tiparire va fi
peste
5 secunde!
In cazul in care aplicatia utilitara DxPrintApp se lanseaza pe un sistem de operare care are restrictionat prin firewall accesul la internet exista probabilitatea ca aceasta sa fie lansata cu intarziere din cauza verificarii valabilitatii certificatului de code signing cu serverele Comodo. Aceasta problema a fost intalnita pe Windows 8, 10.
In cazul in care aveti nevoie de mai multe informatii cu privire la o eroare
avem rugamintea sa
verificati si fisierul dxprint.log existent in directorul
driverului. Acesta
contine informatii
suplimentare cu privire la comenzile trimise si la erorile receptionate.
DxPrint nu se actualizează automat. Începând cu versiunea 1.0.24, pornești
actualizarea numai prin comanda -update sau printr-o scurtătură.
Poți rula comanda din linia de comandă. Poți folosi și scurtătura
dxprint_update din directorul scurtaturi, cu extensia
.bat pe Windows, .sh pe Linux sau .command
pe macOS.
Driverul descarcă arhiva potrivită pentru sistemul de operare și arhitectura
calculatorului. Înainte de instalare, compară valoarea SHA-256 a arhivei cu
valoarea publicată. Actualizarea păstrează config.json, logurile și
fișierele generate de driver.
Așteaptă mesajul de confirmare, apoi repornește manual DxPrint.
Dacă versiunea instalată nu recunoaște comanda -update, descarcă
arhiva pentru sistemul tău de operare din pagina
Release Notes. Dezarhivează fișierele, apoi copiază
dxprint.exe pe Windows sau dxprint pe Linux și macOS peste
executabilul existent.
Pe Windows, copiază și DxPrintApp.exe. Pentru a folosi scurtăturile noi,
copiază și directorul scurtaturi din arhivă.
Dacă versiunea nouă modifică structura config.json, driverul
actualizează fișierul la prima pornire. Opțiunile noi primesc valorile implicite.
Urmatoarele comenzi de FPrint sunt compatibile si interpretabile de DxPrint:
S (vanzare), T (total), D (copie bon), P (text publicitar), C
(discount/majorare), H
(blocare tastatura), F (deblocare tastatura), I (retragere/depunere bani), X
(raport X), Z
(raport Z).
Legislatia actuala nu permite copie bon fiscal, comanda fiind pastrata doar
pentru
compatibilitate.
Exista o lista de 2 comenzi care nu exista in driverul FPrint, si anume:
V (afisaj client), K (cod fiscal afisat pe bon)
Suplimentar driverul permite:
a) Transmiterea in comanda de vanzare a unitatii de masura (buc, kg, etc).
b) Transmiterea in comanda de vanzare a cotei tva de forma 19%, pentru
compatibilitate se poate
transmite si pozitia cotei iar driverul va identifica automat ce cota tva este
pe pozitia
respectiva.
c) Codul fiscal se poate trimite prin comanda separata K, iar in
acel moment bonul
fiscal va fi tiparit conform noii legislatii.
Se permite printarea bonurilor nefiscale in toate cele 3 moduri disponibile (rezident, nerezident si embedded).
Singura restrictie a acestui mod este faptul ca in bonul nefiscal sunt permise doar 3 comenzi si anume:
Mai sunt permise si comenzile de Discount si de tiparire Cod fiscal
doar
ca acestea sunt ignorate.
In cazul in care intr-un bon nefiscal se regasesc comenzile de total sau de
subtotal atunci bonul nu va fi tiparit si va fi marcat ca eronat.
In sectiunea de Exemple bon veti regasi cateva exemple de 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 Reprezinta comanda de vanzare
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
denumire Reprezinta denumirea produsului. Setul de caractere permis de echipament este ISO-8859-2. Poate avea un maxim de 72 de caractere.
pret Reprezinta pretul produsului. Acesta poate fi trecut cu pana la maxim 2 zecimale si poate avea valoare negativa pentru operatiunile de anulare.
cantitate Reprezinta cantitatea produsului. Aceasta poate fi trecuta cu pana la maxim 3 zecimale.
departament Reprezinta departamentul produsului. Valoare intre 0 - 99. 0 insemnand ca nu are departament specificat.
grupa Reprezinta grupa produsului. Valoare intre 1 - 99. Aceasta valoare este ignorata la procesarea comenzii.
tva Reprezinta tva-ul produsului. Acesta poate fi trecut ca pozitie (1 - 99) sau ca valoare sub forma de 19%, 5%, 9%. Daca procentul este prezent se va considera ca este trecuta valoarea si se va incerca identificarea cotei trimise cu lista de cote existente in echipamentul fiscal. Daca se trimite pozitia aceasta la fel se va identifica cu pozitiile existente in echipamentul fiscal si se va trimite valoarea de tva specificat prin pozitie sau valoare. Lista cotelor TVA și pozițiile lor pot fi citite cu această comandă:
um Reprezinta unitatea de masura a produsului. Daca nu este
specificata atunci
driverul va trimite unitatea de masura BUC. In cazul in care se
trimite o unitate
de masura mai mare de 6 caractere, la echipament se vor trimite doar primele 6
caractere.
C,nr_logic,______,_,__;tip_discount;valoare;;;;
Exemple:
C,1,______,_,__;0;15.00;;;;//majorare procentuala de 15%
C,1,______,_,__;1;10.00;;;;//reducere procentuala de 10%
C,1,______,_,__;2;10.00;;;;//majorare valorica de 10 lei
C,1,______,_,__;3;5.00;;;;//reducere valorica de 5 lei
C Reprezinta comanda de discount
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
tip_discount Reprezinta tipul de actiune. Acesta poate fi:
0 - Majorare procentuala
1 - Reducere procentuala
2 - Majorare valorica
3 - Reducere valorica
valoare Reprezinta procentul/valoarea de reducere/majorare. Acesta poate fi trecut cu pana la maxim 2 zecimale.
Atentie:
Daca comanda de discount apare
dupa comanda de
subtotal L atunci se va
acorda reducere/majorare la toata valoarea bonului.
In caz contrar se va acorda reducere/majorare la produsul anterior comenzii de
discount.
L,nr_logic,______,_,__;
Exemple:
L,1,______,_,__;
L Reprezinta comanda de subtotal.
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
T,nr_logic,______,_,__;tip_plata;valoare;;;;
Exemple:
T,1,______,_,__;1;5.65;;;;//Plata prin CARD in valoare de 5.65 lei
T,1,______,_,__;4;5.35;;;;//Plata prin TICHETE VALORICE in valoare de 5.35 lei
T,1,______,_,__;0;;;;;//Plata prin NUMERAR cu total calculat automat
T,1,______,_,__;0;25.87;;;;//Plata prin NUMERAR in valoare de 25.87 lei
T Reprezinta comanda de total.
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
tip_plata Reprezinta modalitatea de plata acceptata. Acesta poate fi:
0 - Numerar
1 - Card
2 - Credit
3 - Tichete masa
4 - Tichete valorice
5 - Voucher
6 - Plata moderna
7 - Card + avans numerar
8 - Alte metode de plata
valoare Reprezinta valoarea de plata. Aceasta poate fi trecuta cu
pana la maxim 2
zecimale.
Daca aceasta nu este specificata se va calcula automat totalul de
plata.
Daca modalitatea de plata este 7 - Card + avans numerar, valoarea introdusa
trebuie sa fie mai
mare decat valoarea totala a bonului.
tip_raport,nr_logic,______,_,__;;;;;;;
Exemple:
X,1,______,_,__;;;;;;;
Z,1,______,_,__;;;;;;;
tip_raport Reprezinta tipul de raport dorit. Acesta poate fi:
X - Raport X
Z - Raport Z
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
Atentie:
In momentul in care aceste
rapoarte sunt
executate se va genera in directorul driverului si fisier suplimentar cu
totalurile din ziua
respectiva intr-un format usor de inteles.
R,nr_logic,______,_,__;tip_raport;tip_afisare;data/nr
Z inceput;data/nr Z sfarsit;
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 Reprezinta comanda de raport.
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
tip_raport Reprezinta tipul de raport acceptat. Acesta poate fi:
0 - Raport sumar pe numere Z
1 - Raport detaliat pe numere Z
2 - Raport ECR
3 - Raport pe departamente
4 - Raport grupe produse
5 - Raport sumar pe perioada
6 - Raport detaliat pe perioada
tip_afisare Reprezinta modalitatea de afisare a raportului. Acesta poate fi 0 pentru tiparire pe echipamentul fiscal sau 1 pentru export in fisier extern. In acest moment doar tiparirea este functionala, adica parametrul 0.
data/nr Z inceput Reprezinta data de inceput in format scurt
(zi-luna-an_scurt, Ex:
01-12-18) daca tipul de raport este 5 sau 6, sau
numarul Z de inceput
daca tipul de raport este 0 sau 1. Pentru restul de
rapoarte acest
parametru este ignorat. Pentru numarul Z valoarea minima admisa este 0.
data/nr Z sfarsit Reprezinta data de sfarsit in format scurt
(zi-luna-an_scurt, Ex:
31-12-18) daca tipul de raport este 5 sau 6, sau
numarul Z de sfarsit
daca tipul de raport este 0 sau 1. Pentru restul de
rapoarte acest
parametru este ignorat. Atat pentru data cat si pentru numarul Z valoarea
trebuie sa fie mai
mare decat parametrul data/nr Z inceput.
I,nr_logic,______,_,__;tip_actiune;valoare;;;;
Exemple:
I,1,______,_,__;0;12.56;;;;//Depunere in valoare de 12.56 lei in sertar
I,1,______,_,__;1;5.89;;;;//Retragere in valoare de 5.89 lei din sertar
I Reprezinta comanda de retragere/depunere numerar.
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
tip_actiune Reprezinta tipul de actiune dorit. Acesta poate fi:
0 - Depunere bani in sertar
1 - retragere bani din sertar
valoare Reprezinta valoarea retrasa sau depusa. Trebuie sa fie trecuta cu 2 zecimale.
K,nr_logic,______,_,__;cod_fiscal;
Exemple:
K,1,______,_,__;RO123456789;
K,1,______,_,__;987654321;
K Reprezinta comanda de tiparire cod fiscal pe bon.
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
cod_fiscal Reprezinta codul fiscal dorit pentru tiparire 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 Reprezinta comanda de afisare pe afisaj extern.
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
tip_actiune Reprezinta tipul de actiune dorit. Acesta poate fi:
0 - Sterge afisajul
1 - Tipareste textul pe linia de sus a afisajului
2 - Tipareste textul pe linia de jos a afisajului
text Reprezinta textul dorit pentru afisare. Setul de caractere permis de echipament este ISO-8859-2. Maxim 20 de caractere.
P,nr_logic,______,_,__;text;;;;;
P,1,______,_,__;Operator: Ion Popescu;;;;;P,1,______,_,__;Va multumim!;;;;;P,1,______,_,__;Discount card fidelizare 20%;;;;;P Reprezinta comanda de tiparire text publicitar pe bon.
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
text Reprezinta textul dorit pentru afisare. Setul de caractere permis de echipament este ISO-8859-2. Maxim 42 de caractere.
W,nr_logic,______,_,__;tip_afisare;text;
W,1,______,_,__;b;Operator: Ion Popescu;//Text ingrosatW,1,______,_,__;bu;Va multumim!;//Text ingrosat si subliniatW,1,______,_,__;;Discount card fidelizare 20%;//Text fara nici un fel de stilW,1,______,_,__;idc;Discount 20%;//Text italic, de marime dubla care este centrat pe bonW,1,______,_,__;bur;Tranzactie #1234;//Text ingrosat, subliniat cu aliniere dreaptaW,1,______,_,__;biudc;Text publicitar cu toate stilurile de text;//Text ingrosat, italic, subliniat cu marime dubla si cu aliniere centrataW Reprezinta comanda de tiparire text publicitar cu diverse stiluri pe bon.
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
tip_afisare Reprezinta tipul de afisare dorit. Se pot folosi mai
multe stiluri in
aceeasi comanda. Acesta poate fi:
b - Ingrosat
i - Italic
u - Subliniat
d - Marime dubla text
l - Aliniere stanga (implicit)
c - Aliniere centru
r - Aliniere dreapta
text Reprezinta textul dorit pentru afisare. Setul de caractere permis de echipament este ISO-8859-2. Maxim 42 de caractere.
Q,nr_logic,______,_,__;tip_codbare;codbare;marime;
Q,1,______,_,__;1;12345670;//Cod de bare de tipul EAN8Q,1,______,_,__;2;1234567890128;//Cod de bare de tipul EAN13Q,1,______,_,__;3;dxprint-1234565;//Cod de bare de tipul Code128Q,1,______,_,__;4;www.dxprint.ro;//Cod de bare de tipul QRCode fara sa fie specificat parametrul de marimeQ,1,______,_,__;4;www.dxprint.ro;5;//Cod de bare de tipul QRCode cu marimea de 5Q Reprezinta comanda de tiparire a unui cod de bare pe bonul fiscal.
nr_logic Reprezinta numarul logic al echipamentului, si se poate
modifica din
fisierul de configurare optiunea numarLogic. Valoare intre 1 - 99.
tip_codbare Reprezinta tipul de cod de bare dorit. Acesta poate
fi:
1 - EAN8
2 - EAN13
3 - Code128
4 - QRCode
codbare Reprezinta codul de bare pentru afisare. Marimea maxima
variaza in functie de
tipul de cod de bare dorit. Aceasta poate fi: 8 caractere numerice pentru
EAN8, 13 caractere numerice pentru EAN13, intre
3 si 31
de caractere alfanumerice pentru Code128, si intre 3 si 279
caractere
alfanumerice pentru QRCode.
marime Reprezinta marimea codului de bare QRCode. Aceasta poate fi intre 1 si 8, 1 reprezentand cea mai mica, iar 8 cea mai mare. Daca nu se specifica marimea are o valoare implicita de 3. Pentru restul codurilor de bare acest parametru poate fi trecut doar ca va fi ignorat.
Pentru a putea tipari bonuri fiscale din aplicatia Saga C cu driverul DxPrint este nevoie sa urmati indicatiile de mai jos:
Din meniul Administrare trebuie ales submeniul Configurare
societati.
In fereastra deschisa se va alege societatea dorita si din sectiunea Casa
de marcat
se va selecta optiunea DATECSPRINTER exact ca in chenarul verde din poza
de mai jos.
Selectia driverului si a modalitatilor de plata se va face din meniul
Operatii
submeniul Iesiri. In fereastra deschisa se alege un bon existent
sau se va face un
bon nou iar dupa finalizarea acestuia se va apasa pe butonul Tiparire bon
fiscal.
Fereastra deschisa in urma apasarii butonului va arata exact ca in poza de mai
jos. Se alege
sectiunea de Configurare si vor fi completate informatiile de mai
jos:
Program interfata trebuie sa fie selectata optiunea
DxPrint iar Modul
rezident nu trebuie sa fie bifat. In cazul in care aveti o versiune de
Saga mai veche puteti alege din meniu optiunea FiscalWire.
Cale fisier de interfata cu programul de tiparire trebuie aleasa
calea
executabilului dxprint.exe. In imaginea de mai jos driverul a fost dezarhivat in
C:\DXPRINT.
Indice modalitate de incasare trebuie sa fie exact ca in imagine si
anume:
Indice 0 - Cash
Indice 4 - Tichete
Indice 1 - Card
Indice cota de TVA trebuie sa coincida cu lista si pozitia cotelor
de tva existente
în echipament. Citește configurația fiscală cu această comandă:
Pentru tiparirea codului fiscal de client pe bonul fiscal este nevoie sa se
adauge valoarea
CF: in fisierul de configuratie config.json la optiunea
transformaCifDinTextPublicitarInFactura, Ex: "transformaCifDinTextPublicitarInFactura":
"CF:".
Aceste exemple le regasiti si in arhiva driverului in directorul bonuri_exemple.
Acest bon contine atat codul fiscal al firmei cat si reduceri procentuale per produs cat si text publicitar. Se incaseaza toata suma prin numerar.
K,1,______,_,__;RO78344513;
S,1,______,_,__;Produs de test1;12.12;2.000;2;1;2;0;0;
C,1,______,_,__;1;15.00;;;;
S,1,______,_,__;Produs de test2;175.23;3.000;1;1;1;0;0;
C,1,______,_,__;1;25.00;;;;
P,1,______,_,__;PROMO 2+1;;;;
S,1,______,_,__;Produs de test3;10.24;1.000;1;1;1;0;0;
S,1,______,_,__;Produs de test4;195.00;2.000;1;1;1;0;0;
P,1,______,_,__;VA MULTUMIM!;;;;
P,1,______,_,__;Casier: Ion Popescu;;;;
T,1,______,_,__;0;;;;;
{
"fiscalCode": "RO78344513",
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs de test1",
"quantity": 2,
"price": 12.12,
"department": 2,
"vat": "2",
"discount": {
"discountType": "PercentDiscount",
"amount": 15
},
"isSubtotalDiscount": false
},
{
"name": "Produs de test2",
"quantity": 3,
"price": 175.23,
"department": 1,
"vat": "1",
"comments": [
{
"message": "PROMO 2+1"
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 25
},
"isSubtotalDiscount": false
},
{
"name": "Produs de test3",
"quantity": 1,
"price": 10.24,
"department": 1,
"vat": "1",
"isSubtotalDiscount": false
},
{
"name": "Produs de test4",
"quantity": 2,
"price": 195,
"department": 1,
"vat": "1",
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
],
"footerComments": [
{
"message": "VA MULTUMIM!"
},
{
"message": "Casier: Ion Popescu"
}
]
}
Acest bon contine 2 produse la care li se aplica un discount de 15% pe intregul bon. Se incaseaza toata suma prin numerar.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
P,1,______,_,__;Bon cu disc. pe intregul bon;;;;
L,1,______,_,__;
C,1,______,_,__;1;15.00;;;;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Bon cu disc. pe intregul bon"
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 15
},
"isSubtotalDiscount": true
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
Acest bon contine 2 produse la care li se aplica un discount individual de 10% si respectiv 5%. Se incaseaza toata suma prin numerar.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
C,1,______,_,__;1;5.00;;;;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"discount": {
"discountType": "PercentDiscount",
"amount": 5
},
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
Acest bon contine 3 produse din care doar unul are un discount de 10% procentual, iar incasarea se face prin CARD suma de 50 de lei iar numerar restul ramas de plata.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
P,1,______,_,__;Bon cu discount doar la un produs si incasare
multipla;;;;
S,1,______,_,__;produs cu denumire
2;5.00;20.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
S,1,______,_,__;Produs cu denumire
3;10.00;2.000;1;1;1;0;0;buc;
T,1,______,_,__;1;5.00;;;;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Bon cu discount doar la un produs si incasare multipla"
}
],
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 3",
"quantity": 2,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Card",
"amount": 5
},
{
"paymentType": "Cash",
"amount": 0
}
]
}
Acest bon contine 3 produse din care doar unul are un discount valoric de 5 lei. Se incaseaza toata suma prin numerar.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;BUC;
S,1,______,_,__;Produs cu denumire
1;10.00;3.453;1;1;1;0;0;KG;
S,1,______,_,__;produs cu denumire
2;10.00;2.000;1;1;1;0;0;buc;
C,1,______,_,__;3;5.00;;;;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "BUC",
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 3.453,
"price": 10,
"department": 1,
"vat": "1",
"unit": "KG",
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 3",
"quantity": 2,
"price": 10,
"department": 1,
"vat": "1",
"unit": "BUC",
"discount": {
"discountType": "ValueDiscount",
"amount": 5
},
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
Acest bon contine 5 produse si care se incaseaza dupa cum urmeaza: CARD - 0.50 lei, TICHETE MASA - 0.50 lei iar restul prin NUMERAR. Suplimentar contine si codul fiscal dar si un comentariu cu numele operatorului.
K,1,______,_,__;RO123456789;
S,1,______,_,__;Articol 1;1.00;1.000;1;1;1;0;0;buc;
S,1,______,_,__;Articol 2;1.00;1.000;1;1;1;0;0;
S,1,______,_,__;Articol 3;1.00;1.000;1;1;19%;0;0;
S,1,______,_,__;Articol 4;1.00;1.000;1;1;9%;0;0;
S,1,______,_,__;Articol 5;1.00;1.000;1;1;1;0;0;
P,1,______,_,__;Operator: Ion Popescu;;;;
T,1,______,_,__;1;0.50;;;;
T,1,______,_,__;2;0.50;;;;
T,1,______,_,__;0;
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;19%;0;0;buc;
S,1,______,_,__;produs cu denumire 2;5.00;2.000;1;1;19%;0;0;buc;
P,1,______,_,__;Bon cu multiple tipuri de plata;;;;
T,1,______,_,__;1;5.65;;;;
T,1,______,_,__;3;5.35;;;;
T,1,______,_,__;0;;;;;
{
"fiscalCode": "RO123456789",
"isNonFiscalReceipt": false,
"products": [
{
"name": "Articol 1",
"quantity": 1,
"price": 1,
"department": 1,
"vat": "1",
"unit": "buc",
"isSubtotalDiscount": false
},
{
"name": "Articol 2",
"quantity": 1,
"price": 1,
"department": 1,
"vat": "1",
"isSubtotalDiscount": false
},
{
"name": "Articol 3",
"quantity": 1,
"price": 1,
"department": 1,
"vat": "19%",
"isSubtotalDiscount": false
},
{
"name": "Articol 4",
"quantity": 1,
"price": 1,
"department": 1,
"vat": "9%",
"isSubtotalDiscount": false
},
{
"name": "Articol 5",
"quantity": 1,
"price": 1,
"department": 1,
"vat": "1",
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Card",
"amount": 0.5
},
{
"paymentType": "Credit",
"amount": 0.5
},
{
"paymentType": "Cash",
"amount": 0
}
],
"footerComments": [
{
"message": "Operator: Ion Popescu"
}
]
}
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "19%",
"unit": "buc",
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "19%",
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Card",
"amount": 5.65
},
{
"paymentType": "MealTicket",
"amount": 5.35
},
{
"paymentType": "Cash",
"amount": 0
}
],
"footerComments": [
{
"message": "Bon cu multiple tipuri de plata"
}
]
}
Acest bon contine 3 produse din care doar unul are un discount procentual de 100%. Se incaseaza toata suma prin numerar.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;BUC;
S,1,______,_,__;Produs cu denumire
1;10.00;3.453;1;1;1;0;0;KG;
S,1,______,_,__;produs cu denumire
2;10.00;2.000;1;1;1;0;0;buc;
C,1,______,_,__;1;100.00;;;;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "BUC",
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 3.453,
"price": 10,
"department": 1,
"vat": "1",
"unit": "KG",
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 3",
"quantity": 2,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"discount": {
"discountType": "PercentDiscount",
"amount": 100
},
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
Acest bon contine 2 produse si 2 comentarii la inceput si sfarsit de bon. Se incaseaza toata suma prin numerar.
P,1,______,_,__;Inceput bon test;;;;
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
S,1,______,_,__;produs cu denumire
2;0.99;2.000;1;1;1;0;0;buc;
P,1,______,_,__;Sfarsit de bon test;;;;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"headerComments": [
{
"message": "Inceput bon test"
}
],
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 0.99,
"department": 1,
"vat": "1",
"unit": "buc",
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
],
"footerComments": [
{
"message": "Sfarsit de bon test"
}
]
}
Acest bon nefiscal contine cateva comentarii si un cod de bare QRCode cu un cod promotional.
P,1,______,_,__;Multumim pentru cumparaturi!;;;;
P,1,______,_,__;Intra pe site si ai o surpriza!;;;;
P,1,______,_,__;Codul promotional:;;;;
Q,1,______,_,__;4;Cod122345XYZ;
P,1,______,_,__;Multumim pentru cumparaturi!;;;;
W,1,______,_,__;bc;Profita de reduceri in magazin online:;
Q,1,______,_,__;4;www.dxprint.ro;
Acest bon contine 2 produse care au cotele tva definite ca si valoare procentuala. Se incaseaza toata suma prin numerar.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;19%;0;0;buc;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;5%;0;0;buc;
P,1,______,_,__;Produse cu cote tva diferite;;;;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "19%",
"unit": "buc",
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "5%",
"unit": "buc",
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
],
"footerComments": [
{
"message": "Produse cu cote tva diferite"
}
]
}
Acest bon contine comenzile de tiparire pe cele 2 linii ale afisajului extern.
V,1,______,_,__;0;CLEAR;
V,1,______,_,__;1;Vanzare finalizata;
V,1,______,_,__;2;Va multumim!;
Acest bon contine comanda de introducere numerar in sertar.
I,1,______,_,__;0;12.34;;;;
Acest bon contine comanda de retragere numerar din sertar.
I,1,______,_,__;1;12.34;;;;
Acest bon contine comanda de lansare raport X.
X,1,______,_,__;;;;;;;
Acest bon contine comanda de lansare raport Z.
Z,1,______,_,__;;;;;;;
Acest bon contine comanda de lansare a raportului zilnic ECR.
R,1,______,_,__;2;0;;;
Acest bon contine comanda de lansare a raportului zilnic pe departamente.
R,1,______,_,__;3;0;;;
Acest bon contine comanda de lansare a raportului sumar pe intervalul de timp 1 septembrie 2018 - 10 septembrie 2018.
R,1,______,_,__;5;0;01-09-18;10-09-18;
Acest bon contine comanda de lansare a raportului detaliat pe intervalul de timp 1 septembrie 2018 - 10 septembrie 2018.
R,1,______,_,__;6;0;01-09-18;10-09-18;
Acest bon contine comanda de lansare a raportului sumar pe numere Z cuprinse intre 1 si 10.
R,1,______,_,__;0;0;1;10;;;
Acest bon contine comanda de lansare a raportului detaliat pe numere Z cuprinse intre 20 si 30.
R,1,______,_,__;1;0;20;30;;;
Acest bon contine 2 produse care au comentarii cu stilurile italic, aliniere centru si aliniere dreapta.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
W,1,______,_,__;ir;Reducere client fidelizare: 10%;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
W,1,______,_,__;ic;Reducere disp. la mai mult de 5 produse;
W,1,______,_,__;ic;Va multumim!;
T,1,______,_,__;0;;;;;
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
W,1,______,_,__;bc;Reducere client fidelizare: 10%;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
W,1,______,_,__;bc;Reducere client fidelizare: 10%;
W,1,______,_,__;bc;Va multumim!;
T,1,______,_,__;0;;;;;
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
W,1,______,_,__;bdc;Promotie activa: -10%;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
C,1,______,_,__;1;20.00;;;;
W,1,______,_,__;bdc;Promotie activa: -20%;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere client fidelizare: 10%",
"bold": false,
"italic": true,
"underline": false,
"doubleSize": false,
"align": 2
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere disp. la mai mult de 5 produse",
"bold": false,
"italic": true,
"underline": false,
"doubleSize": false,
"align": 1
},
{
"message": "Va multumim!",
"bold": false,
"italic": true,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere client fidelizare: 10%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere client fidelizare: 10%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
},
{
"message": "Va multumim!",
"bold": false,
"italic": true,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Promotie activa: -10%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": true,
"align": 1
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Promotie activa: -20%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": true,
"align": 1
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 20
},
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
EAN8:Bon cu 2 produse care au discount de 10% si care suplimentar
dupa fiecare
produs au un cod de bare EAN8 tiparit.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
Q,1,______,_,__;1;90311017;
W,1,______,_,__;bc;Reducere client fidelizare: 10%;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
Q,1,______,_,__;1;98746576;
W,1,______,_,__;bc;Reducere client fidelizare: 10%;
T,1,______,_,__;0;;;;;
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
Q,1,______,_,__;1;64538624;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
Q,1,______,_,__;1;90864827;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere client fidelizare: 10%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"barcodes": [
{
"barcode": "90311017",
"barcodeType": "Ean8"
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere client fidelizare: 10%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"barcodes": [
{
"barcode": "98746576",
"barcodeType": "Ean8"
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"barcodes": [
{
"barcode": "64538624",
"barcodeType": "Ean8"
}
],
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"barcodes": [
{
"barcode": "90864827",
"barcodeType": "Ean8"
}
],
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
EAN13:Bon cu 2 produse care au discount de 10% si care suplimentar
dupa fiecare
produs au un cod de bare EAN13 tiparit.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
Q,1,______,_,__;2;9780201379624;
W,1,______,_,__;bc;Reducere client fidelizare: 10%;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
Q,1,______,_,__;2;9874583923428;
W,1,______,_,__;bc;Reducere client fidelizare: 10%;
T,1,______,_,__;0;;;;;
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
Q,1,______,_,__;2;3758493457029;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
Q,1,______,_,__;2;8645839201727;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere client fidelizare: 10%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"barcodes": [
{
"barcode": "9780201379624",
"barcodeType": "Ean13"
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere client fidelizare: 10%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"barcodes": [
{
"barcode": "9874583923428",
"barcodeType": "Ean13"
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"barcodes": [
{
"barcode": "3758493457029",
"barcodeType": "Ean13"
}
],
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"barcodes": [
{
"barcode": "8645839201727",
"barcodeType": "Ean13"
}
],
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
]
}
Code128:Bon cu 2 produse care au discount de 10% si care suplimentar
dupa fiecare produs au un cod de bare Code128.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
Q,1,______,_,__;3;codprodus1;
W,1,______,_,__;bc;Reducere client fidelizare: 10%;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
Q,1,______,_,__;3;9874-tr-sm;
W,1,______,_,__;c;Tranzactie #:;
Q,1,______,_,__;3;250990;
T,1,______,_,__;0;;;;;
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
Q,1,______,_,__;3;bl-123;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
Q,1,______,_,__;3;cod0989-sm;
W,1,______,_,__;c;Tranzactie #:;
Q,1,______,_,__;3;19997678;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere client fidelizare: 10%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"barcodes": [
{
"barcode": "codprodus1",
"barcodeType": "Code128"
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"barcodes": [
{
"barcode": "9874-tr-sm",
"barcodeType": "Code128"
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
],
"footerComments": [
{
"message": "Tranzactie #:",
"bold": false,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"barcodes": [
{
"barcode": "250990",
"barcodeType": "Code128"
}
]
}
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"barcodes": [
{
"barcode": "bl-123",
"barcodeType": "Code128",
"barcodeSize": 0
}
],
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"barcodes": [
{
"barcode": "cod0989-sm",
"barcodeType": "Code128"
}
],
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
],
"footerComments": [
{
"message": "Tranzactie #:",
"bold": false,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 0
}
],
"barcodes": [
{
"barcode": "19997678",
"barcodeType": "Code128"
}
]
}
QRCode:
Bon cu 2 produse care au discount si care suplimentar contine
la
sfarsit o adresa de internet in format de cod de bare QRCode de
marime standard.
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
W,1,______,_,__;bc;Reducere client fidelizare: 10%;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
W,1,______,_,__;bc;Profita de reduceri in magazin online:;
Q,1,______,_,__;4;www.dxprint.ro;
T,1,______,_,__;0;;;;;
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
W,1,______,_,__;ic;Profita de reduceri in magazin online:;
Q,1,______,_,__;4;www.dxprint.ro;
T,1,______,_,__;0;;;;;
S,1,______,_,__;Produs cu denumire
1;10.00;1.000;1;1;1;0;0;buc;
C,1,______,_,__;1;10.00;;;;
W,1,______,_,__;bc;Reducere client fidelizare: 10%;
S,1,______,_,__;produs cu denumire
2;5.00;2.000;1;1;1;0;0;buc;
W,1,______,_,__;bc;Profita de reduceri in magazin online:;
Q,1,______,_,__;4;www.dxprint.ro;7;
T,1,______,_,__;0;;;;;
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere client fidelizare: 10%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
],
"footerComments": [
{
"message": "Profita de reduceri in magazin online:",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"barcodes": [
{
"barcode": "www.dxprint.ro",
"barcodeType": "QRCode"
}
]
}
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
],
"footerComments": [
{
"message": "Profita de reduceri in magazin online:",
"bold": false,
"italic": true,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"barcodes": [
{
"barcode": "www.dxprint.ro",
"barcodeType": "QRCode"
}
]
}
{
"isNonFiscalReceipt": false,
"products": [
{
"name": "Produs cu denumire 1",
"quantity": 1,
"price": 10,
"department": 1,
"vat": "1",
"unit": "buc",
"comments": [
{
"message": "Reducere client fidelizare: 10%",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"discount": {
"discountType": "PercentDiscount",
"amount": 10
},
"isSubtotalDiscount": false
},
{
"name": "Produs cu denumire 2",
"quantity": 2,
"price": 5,
"department": 1,
"vat": "1",
"unit": "buc",
"isSubtotalDiscount": false
}
],
"payments": [
{
"paymentType": "Cash",
"amount": 0
}
],
"footerComments": [
{
"message": "Profita de reduceri in magazin online:",
"bold": true,
"italic": false,
"underline": false,
"doubleSize": false,
"align": 1
}
],
"barcodes": [
{
"barcode": "www.dxprint.ro",
"barcodeType": "QRCode",
"barcodeSize": 7
}
]
}
Acest exemplu este pentru un bon nefiscal trimis catre echipamentul fiscal. Acesta are un singur comentariu cu 2 stiluri active bold si underline.
{
"fiscalCode":"RO123456789",
"isNonFiscalReceipt": true,
"headerComments": [
{
"message": "Bon nefiscal nr.: 2045",
"bold": true,
"italic": false,
"underline": true,
"doubleSize": false,
"align": 1
}
]
}