Configurarea ghidată a driverului DxPrint: conectarea casei de marcat prin USB, COM sau TCP/IP, modul de rulare, licența și parametrii din config.json.
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 30 zile sau continuă fără licență. Fără licență, driverul salvează configurația, dar nu poate tipări. Licența trial cerută din driver nu include Cloud. Pentru Cloud, cere licența de test din contul DxPrint, înainte de trialul din driver: o casă primește o singură licență trial.
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}
]
},
"cloud": {
"active": false,
"enrollmentUUID": ""
},
"licenta": "Cumpara licenta de pe www.dxprint.ro",
"versiune": 12
}
După instalarea adaptorului USB-serial, verifică în Device Manager (Windows) sau în
/dev/ttyXXX (Linux, macOS) ce port a primit echipamentul. Pe Windows portul are forma
COM1, COM2, COMXX, iar pe Linux și macOS forma /dev/ttyACM0,
/dev/ttyACM1, /dev/ttyACMX. Trece portul în opțiunea port din
fișierul de configurare. Valoare implicită 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ă:
Casa de marcat comunică de obicei cu viteza 115200. Dacă e nevoie, modifică opțiunea
baudRate după viteza setată în casă. Trece aceeași viteză și în Device
Manager, la portul COM, ca driverul și casa să comunice fără erori. La conectarea
prin TCP/IP parametrul este ignorat. Valoare implicită 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.
numarLogic este numărul logic al echipamentului, folosit în
comenzile în format FPrint. Acceptă valori între 1 și 999. Valoarea implicită este 1.
numarOperator reprezintă utilizatorul setat în casa de marcat. Echipamentul fiscal
are inițial operatorul numărul 1.
parolaOperator reprezintă parola operatorului setat în casa de marcat. Echipamentul
fiscal are inițial parola de operator 0001.
connTimeout reprezintă timpul, în secunde, cât driverul așteaptă un răspuns de la
echipament. Valoarea inițială este 30 de secunde.
Driverul are două moduri de rulare pe fișiere: Individual și Rezident. Pentru
modul rezident, trece valoarea true la opțiunea rezident. În
modul rezident, driverul urmărește directorul din opțiunea
directorBonuri și prelucrează, pe rând, fiecare fișier de bon nou
apărut acolo.
În modul Individual, trimite numele fișierului de bon ca argument. Fișierul poate fi în directorul driverului sau poate fi indicat printr-o cale absolută.
Opțiunile de mai jos se aplică doar când driverul rulează în modul rezident (FTP, HTTP) sau în modul embedded (doar HTTP).
ftpServer reprezintă adresa serverului FTP de pe care driverul preia
bonurile generate în directorul din opțiunea ftpDirectorBonuri. Adresa
se scrie sub forma ip:port sau hostname:port. Pentru
portul standard 21, portul poate lipsi.
ftpUtilizator reprezintă utilizatorul pentru conectarea la
serverul FTP. Dacă serverul permite conectarea Anonymous, numele de utilizator
trebuie să fie Anonymous, iar parola poate fi orice text.
ftpParola reprezintă parola utilizatorului FTP. La conectarea
Anonymous, câmpul trebuie totuși completat.
ftpDirectorBonuri reprezintă directorul de pe serverul FTP
din care se preiau bonurile fiscale, de exemplu bonuri/generate sau
bonuri. La conectare, driverul intră în acest director.
ftpIntervalVerificareInSecunde
reprezintă intervalul, în secunde, la care driverul caută bonuri noi în directorul
de pe serverul FTP. Valoare minimă 60 de secunde.
Lucrul cu un director de pe un server FTP este descris în pagina Printare bonuri din director FTP.
httpServerActiv: cu valoarea true, driverul pornește
un server web pe portul din opțiunea httpPort, prin care bonurile se
tipăresc direct, cu o cerere POST către endpoint-ul /bonuri.
httpPort reprezintă portul serverului HTTP, între 1024 și 65535.
httpUtilizator reprezintă numele de utilizator pentru
protejarea serverului web prin autentificare de tip Basic Auth.
httpParola reprezintă parola pentru protejarea serverului web.
Autentificarea este activă doar când sunt completate atât utilizatorul, cât și
parola.
httpPermiteListareDirBonuri: cu valoarea
true, interfața web a driverului, deschisă în browser la adresa
http://IP:port, arată și directoarele de bonuri executate și de răspuns
din configurația driverului.
embedded: cu valoarea true, vânzările și rapoartele zilnice se trimit
prin cereri către un serviciu web HTTP REST JSON. Adresa IP a serviciului depinde de
opțiunea httpServerActiv: dacă este activă, serviciul se deschide pe
adresa din rețea, de forma 192.168.1.x, iar dacă este inactivă, pe adresa 127.0.0.1.
Portul vine în ambele cazuri din opțiunea httpPort. Și în acest mod,
serviciul se poate proteja cu utilizatorul și parola din opțiunile de mai sus.
Integrarea cu aplicații prin serviciul web JSON este descrisă în pagina Integrare prin serviciul web JSON.
corsActiv: cu valoarea true, serviciul acceptă cereri din JavaScript și
de pe alt domeniu. Află mai multe despre CORS.
Opțiunea se aplică doar când opțiunea embedded este activă.
Cu opțiunea activă, serverul trimite clientului următoarele headere:
- 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 reprezintă nivelul de detaliu al logului afișat în consolă și scris în
fișierul de log. Valorile posibile sunt: DEBUG, INFO sau ERROR.
Această secțiune conține opțiunile generale ale driverului, valabile în ambele moduri de rulare pe fișiere (Individual și Rezident).
directorBonuriExecutate reprezintă directorul în care se copiază bonurile
executate. Bonul copiat aici nu conține informațiile de răspuns. Calea poate fi
relativă, de forma "executate": driverul creează directorul executate
lângă dxprint.exe. Poate fi și absolută, de forma "c:\\executate":
bonul se copiază în directorul c:\executate. La calea absolută, scrie un \
în plus: c:\\ în loc de c:\.
directorBonuriRaspuns reprezintă directorul în care se generează fișierele de
răspuns ale bonurilor executate. Calea poate fi relativă, de forma
"raspuns": driverul creează directorul raspuns lângă dxprint.exe. Poate
fi și absolută, de forma "c:\\raspuns": fișierul se generează în
directorul c:\raspuns. La calea absolută, scrie un \ în plus:
c:\\ în loc de c:\. Fișierul de răspuns conține
informațiile de răspuns exact ca FPrint, cu codurile Er, Ok și Sd. Dacă un rând nu
este valid, la sfârșitul lui apare și motivul pentru care bonul a fost respins. La
lipsa hârtiei sau la un raport Z neefectuat, mesajul de eroare apare pe ultimul rând
din fișier.
generareFisierCuNrBonFiscal: cu valoarea true, driverul generează în
directorul directorBonuriRaspuns, pe lângă fișierul de răspuns, și un
fișier cu extensia .nrb. Acesta conține informații despre bon: numărul bonului,
numărul raportului Z, numele fișierului și data execuției:
OK;Z=38|NR=503|UNIQUE_ID=bon.txt|2018_07_09_17_00_04_312. Fișierul se generează doar când bonul a fost executat cu succes. Valoare implicită
true.
directorRapoarteAnaf reprezintă directorul în care se
extrag din echipamentul fiscal fișierele XML/P7B necesare raportării către ANAF.
Calea poate fi relativă, de forma "anaf": driverul creează directorul
"anaf" lângă dxprint.exe. Poate fi și absolută, de forma
"c:\\anaf": fișierele se generează în directorul c:\anaf. La calea
absolută, scrie un \ în plus: c:\\ în loc de
c:\. În plus, la extragerea fișierelor pentru ANAF, driverul
creează câte un subdirector pentru fiecare tip de raport. La extragerea după
numărul Z, subdirectorul se numește Z10-20, adică numerele Z de început
și de sfârșit din linia de comandă. La extragerea după interval, subdirectorul se
numește 09-2018, adică luna și anul datei de început din linia de
comandă.
extensieFisierBon reprezintă lista extensiilor de fișier de bon pe care driverul
le prelucrează, separate prin virgulă. De exemplu, cu inp,bon,txt
driverul prelucrează doar fișierele cu extensia .inp, .bon sau .txt. Un fișier de
bon cu altă extensie este ignorat, atât în modul Rezident, cât și în modul Individual.
Valoare implicită inp,bon.
intervalPastrareBonuriInDirector reprezintă numărul maxim de zile cât se păstrează
un fișier în directoarele directorBonuriExecutate și
directorBonuriRaspuns. Fișierele mai vechi se șterg automat la pornirea
driverului. Maximul permis este 30 de zile. Valoare implicită 7 zile.
tiparesteRaportZAutomat: cu valoarea true, dacă
la tipărirea unui bon fiscal au trecut mai mult de 24 de ore, driverul tipărește
întâi raportul Z și apoi bonul. Valoare implicită true.
raspundeCuNrEroareInFisierRaspuns: cu valoarea true, dacă o comandă dintr-un bon fiscal dă eroare la execuție, eroarea
se scrie în fișierul de răspuns al bonului, sub forma Er-111024. Pentru integrare
ai nevoie de lista completă
a codurilor de eroare (XLS). Valoare implicită false.
transformaCifDinTextPublicitarInFactura
permite tipărirea codului fiscal în formatul nou cerut de legislație, chiar dacă a fost trimis
ca text publicitar, prin comanda P. De exemplu, dacă aplicația ta
generează comanda: P,1,______,_,__;CUI client:
RO123456789;;;;;
trece în această opțiune exact textul CUI client:. La prevalidarea bonului,
driverul extrage codul fiscal și îl tipărește în formatul nou. Opțiunea nu ține cont
de litere mari sau mici.
trimiteRaportZPeEmail trimite raportul Z pe email, la executarea lui, către adresele din această opțiune. Adresele
se separă prin virgulă, de exemplu: suport@dxprint.ro,test@test.com.
Driverul trimite raportul Z printr-o cerere HTTP POST către serviciul
https://www.dxprint.ro, care validează conținutul și trimite emailul cu informațiile
primite. Informațiile sunt trimise securizat și nu sunt stocate pe serverele
noastre sau ale furnizorului de email.
prevalidareValoareBon: cu opțiunea activă, bonul ajunge la echipament doar după
validarea sumelor. Așa scade mult riscul ca bonul să rămână deschis din cauza unor
sume de plată greșite. Valoare implicită false.
ziDinLunaPentruExtragereAutomataFisiereXml reprezintă ziua din lună în care driverul
exportă fișierele XML din luna precedentă și le trimite pe email, dacă opțiunea
trimiteFisiereXmlPeEmail conține cel puțin o adresă. Exportul se face
oricum, chiar dacă opțiunea trimiteFisiereXmlPeEmail este goală.
Valoarea este între 0 și 20: 0 dezactivează exportul, iar 1 - 20 este ziua din lună
a exportului automat. La export, driverul creează în directorul din opțiunea
directorRapoarteAnaf o arhivă de forma lună-an.zip (de exemplu,
04-19.zip). De reținut: dacă ziua aleasă este 5, iar pe 5 casa nu este
deschisă, driverul încearcă exportul și în următoarele 2 zile, pe 6 și pe 7. Dacă
exportul reușește pe 5, driverul nu mai încearcă în zilele următoare. Valoare
implicită 0.
Pentru casele de marcat înrolate în Cloud, driverul trimite zilnic în Cloud fișierele XML semnate de casă, începând cu prima zi a lunii în care casa a fost înrolată. Exportul lunar de la pornire nu mai rulează pentru aceste luni, deci casa nu mai este ocupată câteva minute la începutul lunii. Pentru lunile dinainte de înrolare, exportul automat descris mai sus rulează în continuare.
trimiteFisiereXmlPeEmail trimite fișierele XML exportate automat din echipamentul
fiscal către adresele de email din această opțiune. Opțiunea
ziDinLunaPentruExtragereAutomataFisiereXml trebuie să fie activă.
Adresele se separă prin virgulă, de exemplu:
suport@dxprint.ro,test@test.com. Driverul trimite fișierele printr-o
cerere HTTP POST către serviciul https://www.dxprint.ro, care validează conținutul și
trimite emailul cu informațiile primite. Informațiile sunt trimise securizat și
nu sunt stocate pe serverele noastre sau ale furnizorului de email.
Pentru casele de marcat înrolate în Cloud, fișierele XML se păstrează în contul DxPrint, începând cu luna înrolării. Fișierele stau pe servere din Uniunea Europeană, cât timp seria are o licență trial sau anuală cu Cloud validă, plus 30 de zile după expirare. După un trial cu Cloud, fișierele se păstrează doar dacă se cumpără o licență anuală cu Cloud; o licență anuală fără Cloud nu le păstrează. Arhiva lunară pentru contabilitate se descarcă din cont, din pagina Cloud → ANAF, după ce casa a trimis toate rapoartele Z ale lunii. Arhiva are aceeași structură ca exportul făcut de driver.
httpProxy reprezintă serverul proxy folosit de cele 2 servicii ale driverului care
trimit pe email raportul Z și fișierele XML exportate automat. Se folosește când
calculatorul pe care rulează driverul iese pe internet doar printr-un proxy.
Formatul adresei de proxy este (http|https)://(hostname:ip):port.
Raportul Z și fișierele XML se trimit prin cereri HTTP POST către serviciul
https://www.dxprint.ro.
tiparesteRaportPluInainteDeRaportZ: cu opțiunea activă, driverul tipărește raportul
de produse Z PLU înainte de raportul Z.
Valoare implicita false.
nrMaximRapoarteZNetrimise reprezintă numărul maxim de rapoarte Z nesincronizate cu
serverul ANAF. Peste acest număr, driverul se oprește. Cu valoarea 0, verificarea nu
se face.
Valoare implicita 0.
nrMaximRapoarteZNetrimiseNotificare reprezintă numărul de rapoarte Z nesincronizate
cu serverul ANAF peste care driverul trimite o notificare pe email, cu numărul de
rapoarte Z nesincronizate. Notificarea folosește adresele de email din opțiunea trimiteRaportZPeEmail.
Notificarea se trimite doar dacă driverul rulează în modul embedded sau rezident. Cu
valoarea 0, verificarea nu se face.
Valoare implicita 0.
mapareModalitatiPlata permite remaparea modalităților de plată la tipărirea bonului
fiscal, pentru compatibilitate cu aplicațiile existente.
Secțiunea cloud păstrează înrolarea în
DxPrint Cloud. Driverul o completează din tabul Cloud al paginii
de configurare sau cu comanda -cloud, deci
nu trebuie editată manual.
active pornește Cloud la pornirea driverului, în modul rezident sau
embedded. Cu false, Cloud rămâne oprit, dar înrolarea se păstrează.
Valoare implicită false.
enrollmentUUID este UUID-ul înrolării, scris de driver la înrolare sau
la restaurare. Cheia privată a înrolării nu stă în config.json, ci în
fișierul cloud-private.pem din același director. Fără această cheie,
înrolarea nu mai poate fi restaurată.
Opțiunea licenta conține licența de funcționare a driverului. Fără licență,
driverul nu poate trimite comenzi către echipamentul fiscal. Scrie licența pe un
singur rând, în locul textului Cumpara licenta de pe www.dxprint.ro, inclusiv
cele două semne egal de la sfârșit.