PrintF Manuale Webservice ITA V5 R0319
PrintF Manuale Webservice ITA V5 R0319
WEB SERVICE
REGISTRATORE DI CASSA
E
REGISTRATORE TELEMATICO
Print! F RCH Italia S.p.a
SOMMARIO
1. REVISIONI ..................................................................................................................................................................... 3
2. INTRODUZIONE............................................................................................................................................................ 4
1. REVISIONI
----------------------------------------------------------
2. INTRODUZIONE
In questo manuale, i diversi font e il formato del testo, sono utilizzati per distinguere
facilmente gli elementi e le descrizioni.
o Il testo all'interno delle parentesi triangolari “<>”, è il nome del tag di un elemento.
Nel descrivere gli elementi di un documento XML, vengono utilizzati elenchi puntati con
diversi livelli.
Per esempio;
L'indirizzo IP del RT può essere modificato nel menu di SRV - Connettività - Ethernet.
Nella schermata ABILITA WEBSERVER? Presente solo nelle Print!F con matricola
precedente alla 72018101,confermare l’abilitazione.
Per i modelli Print! F dalla matricola 72018101, la gestione web service è sempre
attiva (non ci sono flag da settare).
Per ogni connessione, una quantità limitata di dati può essere inviata (vedi Tabella 1).
Le richieste di servizio possono essere elaborate una alla volta. Se la stampante non può
elaborare la richiesta, uno stato di "occupato" viene inviato e la richiesta deve essere
inviata nuovamente.
Da Client all’RT
Da RT al Client
HTTP/1.1 200 OK
Server: Print!F/2.0
Access-Control-Allow-Origin: *
Connection: close
Cache-Control: no-cache
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Content-Type: application/xml
Se un documento o una fattura viene lasciata aperta dopo un errore, spetta all’utente
chiudere o annullare il documento con una nuova richiesta di servizio.
Struttura:
- <TIPO_ST_FISC> = '='
- <SEQ_CONTROLLO> = <FUNZIONE>
[SEPARATORE] [VALORE1]
[SEPARATORE] [QUANTITA]
[SEPARATORE] [DESCRIZIONE]
[SEPARATORE] [SEGNO]
[SEPARATORE] [VALORE2]
[SEPARATORE] [VALORE3]
[SEPARATORE] [VALORE4]
[SEPARATORE] [VALORE5]
[SEPARATORE] [VALORE6]
[SEPARATORE] [VALORE7]
----------------------------
- [SEPARATORE] = '/'
----------------------------
----------------------------
----------------------------
----------------------------
----------------------------
- [SEGNO] : [ID_SEGNO]
----------------------------
----------------------------
----------------------------
----------------------------
----------------------------
----------------------------
----------------------------
-------------------------------------------------------------------------
Nota: Ogni comando deve essere correttamente incluso nel documento XML di
richiesta come contenuto dell’elemento <cmd> … </cmd>.
N.B. Descrizione max 36 caratteri PF, max 20 MPF comprensivi del valore
percentuale
Sequenza:
=S
=%/*12.15 -> sconto del 12.15% su subtotale
oppure
=V/*1250 oppure -> deduzione a valore di 12,50
=V-/*1250
=V+/*215/(DESCR. MAX 36 CHAR PF) -> maggiorazione a valore di 2,15 con
descrizione
Sequenza:
=S
=V+/$215 -> maggioraz. a valore su subtotale di 2,15
- 'O' : operatore
Sequenza:
=O1 -> selez. operatore n.1
=O3 -> selez. operatore n.3
- 'T' : pagamento
Sequenza:
=o -> apre e chiude documento gestionale
(modalità che accetta esclusivamente comandi di stampa
codice alfanumerico)
=o/*1 -> esegue apertura dello documento gestionale con il
taglio carta in testa e coda del documento.
(v. 2.3.0)
=o/&1 -> NON STAMPA l’intestazione nel ticket
=o/&2 -> stampa nel ticket solo la prima riga dell’intestazione
Sequenza:
=c -> comando di chiusura del documento di vendita se è
attivata l’”Opzione fidelity”
(v. 1.7.0)
="/?A/(Prova stampa alfanumerica)/*2 -> /*2 stampa codice alfanumerico in
doppia altezza nel documento.
(v. 2.4.0)
=”/&1/(descrizione 35 chars)
-> per stampare fino a 10 righe di informazioni aggiuntive tra la
riga TOTALE e le forme di pagamento)”.
ATTENZIONE!
I seguenti comandi devono essere inviati come comando
unico (ES. invio separato del comando =C3 e del comando
=C400).
=C400 -> comando stampa integrale della memoria di
riepilogo (solo in Z)
=C401/&010119/[310119 -> comando stampa memoria di riepilogo tra
data (/&ggmmaa) e data(/[ggmmaa)
=C403/&010119/[310119 -> comando stampa totale corrispettivi della
memoria di riepilogo da data (/&ggmmaa) a data
(/[ggmmaa)
- 'K' : clear
- 'a' : annullo
- 's' : storno
Sequenza:
=s -> set stato di Storno
=R/$1000 -> esegue storno vendita a reparto
=r/&030219/[1/]23/(72MU1000048)
------------------------------------------------------------------
------------------------------------------------------------------
=A/$2/(indirizzo 1: 36 car.)
=A/$3/(indirizzo 2: 36 car.)
=A/$4/(partita IVA: 36 car.)
=A/$5/(dati cliente: 36 car.)
NOTA: per quanto riguarda il cliente dinamico tutte e cinque righe ($1, $2, $3,
$4, $5) devono essere obbligatoriamente inviate.
FATTURA(LIBERA) DA PC
/&<tipo stampante>
Valori
“se non presente” - stampa sul documento (INTERNA)
“0” - stampa sul documento (INTERNA)
“2“ - stampa su stampante ESTERNA (Es. PRINT!).
/]<tipo fattura>
Valori
“se non presente” - esegue una Fattura RIEPILOGATIVA
“0” - esegue una Fattura RIEPILOGATIVA
“1” - esegue una FATTURA
=F/*5/$2700/&0/]0
=”/(Fattura Riepilogativa)/*2
="/( )
="/(P.IVA 01033470251)
="/( )
="/(Quantita' /Descrizione / Importo)
="/( 01/03/09 sc.305 12,00)
="/( 02/03/09 sc.10 15,00)
="/(--------------------------------)
="/(Subtot. 27,00)
="/(T0TALE EURO 27,00)/*2 stampa in doppia altezza
="/(Imponibile 1 11,54)
="/(IVA 4,00% 0,46)
="/(Imponibile 2 13,64)
="/(IVA 10,00% 1,36)
="/( )
="/(Cliente: 0101010101 )
="/(Cognome: Rossi)
="/(Nome : Mario)
="/( )
=c
=c chiude il comando
=A1
=F/*6
=”/(Fattura Riepilogativa)/*2
="/( )
="/(P.IVA 01033470251)
="/( )
="/(Quantita' /Descrizione / Importo)
="/( 01/03/09 sc.305 12,00)
="/( 02/03/09 sc.10 15,00)
="/(--------------------------------)
="/(Subtot. 27,00)
="/(T0TALE EURO 27,00)/*2 stampa in doppia altezza
="/(Imponibile 1 11,54)
="/(IVA 4,00% 0,46)
="/(Imponibile 2 13,64)
="/(IVA 10,00% 1,36)
=c
- 'e' : entrate
- 'p' : prelievi
Esempio di comando
=U/*n/$p/(descr) dove:
=x
-----------------------------
Nota: Ogni comando deve essere correttamente incluso nel documento XML di
richiesta come contenuto dell’elemento <cmd> … </cmd>.
- <ID_LOAD> = '>'
- <ID_FILE> = carattere di identif. file (Es. 'R' x reparti, '>' x gener.
- <SEP> = '/'
- <ID_FIELD_TYPE> = '?'
- <ID_FIELD> = carattere di identificazione
<ID_DATA_TYPE1> = '$'
<DATA_TYPE1> = seq. di caratteri alfan.
<ID_DATA_TYPE2> = '*'
<DATA_TYPE2> = seq. di caratteri alfan.
<ID_DESCR_INI> = '('
<DESCR> = seq. di caratteri alfan.
<ID_DESCR_FINE> = ')'
<ID_DATA_TYPE3> = '&'
<DATA_TYPE3> = seq. di caratteri alfan.
<ID_DATA_TYPE4> = '['
<DATA_TYPE4> = seq. di caratteri alfan.
<ID_DATA_TYPE5> = ']'
<DATA_TYPE5> = seq. di caratteri alfan.
<ID_DATA_TYPE6> = '^'
<DATA_TYPE6> = seq. di caratteri alfan.
<ID_DATA_TYPE7> = '_'
<DATA_TYPE7> = seq. di caratteri alfan.
<ID_DATA_TYPE8> = '@'
<DATA_TYPE8> = seq. di caratteri alfan.
-------------------------------------------------------------------------
Nota: Ogni comando deve essere correttamente incluso nel documento XML di
richiesta come contenuto dell’elemento <cmd> … </cmd>.
(solo fatture)
“ >>/?H/$7/(SETTIMA RIGA INTESTAZIONE FATTURA) ”
……………
“ >>/?H/$13/(TREDICESIMA RIGA INTESTAZIONE FATTURA) ”
Comando >>/?V/$x/*yyyyy
Parametri
/$ = item IVA (valori 1-7)
/* = valore IVA (1000=10,00% 2350=23,50%)
>>/?V/$1/*1000
>>/?V/$2/*2200
>>/?V/$3/*400
>>/?V/$4/*500
>>/?V/$5/*2300
>>/?V/$6/*2350
>>/?V/$7/*1100
- Programmazione Reparti
Comando
>Rx/?A/
Parametri
1 IVA A (1)
2 IVA B (2)
3 IVA C (3)
4 IVA D (4)
5 IVA F (5)
6 IVA G (6)
7 IVA H (7)
8 IVA EE (N1)
9 IVA NS (N2)
10 IVA NI (N3)
11 IVA RM (N5)
12 IVA AL (N6)
- Programmazione Pagamenti:
Comando
>Tx/?A
Parametri
/_ TICKET 0= disabilita
1= abilita gestione Ticket
>T1/?A/$1/&1/[0/]1/^1/_0/(CONTANTI)
>T2/?A/$0/&0/[1/]0/^0/_0/(NON RISCOSSO)
>T3/?A/$1/&1/[0/]1/^0/_0/(ASSEGNI)
>T4/?A/$0/&1/[0/]1/^0/_0/(EFT POS)
>T5/?A/$1/&1/[0/]1/^0/_1/(TICKET)
- Programmazione Operatori:
/(20 caratteri)
“ >O1/?A/(MARCO) “
“ >O2/?A/(VALENTINA) “
“ >O3/?A/(SIMONE) “
“ >O4/?A/(FRANCESCO) “
“ >O10/?A/(LUIGI) “
Esempio:
>>/?A/(1300000000000000000000000000000000000000000000)
- Inserimento di un Cliente:
Esempio:
- Cancellazione di un Cliente:
Esempio:
>>/?A/(1200000000000020000000000000000000000000000000)
“ >C117/$1/*1/&1/[1/]1/_0/@0 “
“ >C130/[25“
“ >C132/$1/*15 “
“ >C137/$1/(BEVANDE) “
“ >C139/[25“
“ >C917/*0/&1/]1/_1/(2018A) “
>U/$1
Esempio:
Esempio di comando:
“ >C170/$501/&1/[0 “
8. COMANDI SPECIALI
Nei comandi dove c’è la richiesta dati, il documento di risposta contiene ulteriori elementi
secondari. Questi comandi devono essere inviati in una richiesta con un solo comando.
I comandi successivi vengono ignorati.
<ECRStatus>
<mode>REG</mode>
<idleState>0</idleState>
</ECRStatus>
Il documento di risposta contiene l’elemento secondario <Prg>. Ha un nodo figlio per ogni
parametro o configurazione. Tutti i "parametri" nodi secondari hanno una struttura fissa.
<[confName] id=”[xxx]”>
<txt>[text]</txt>
<value>[generic value]</value>
<enabled>[0 or 1]</enabled>
</[confName]>
- <txt> Contiene una stringa di testo. Può essere il nome del parametro
da configurare.
- <value> Contiene diversi tipi di dati. Solitamente per numeri o date.
- <enabled> Contiene lo stato di attivazione/disattivazione di una
configurazione. I valori validi sono 0 o 1.
Solo gli elementi del caso sono inclusi. <department> and <Payment> nodi di
configurazione includono altri nodi secondari con la stessa struttura dei parametri.
In questo capitolo "valore dei parametri " sono nodi in cui il valore è il testo del nodo
secondario <value>.
"Sì / no parametri" sono nodi in cui il valore, inviato nei nodi secondari <Enabled>, può
essere;
Altre richieste di "informazioni" contengono il sotto elemento <ENQ> con nodi secondari
<nome> e <valore>. Il valore del <nome> indica il tipo di richiesta.
<valore> contiene i dati richiesti.
dove:
dove:
ESEMPI Ecrdata.Out
i1 0/11
i0 1/11 11/02/2019 14:40:33
i0 3/11 11/02/2019 14:40:33
i0 11/11 11/02/2019 14:40:33
NOTA: Il valore della lettura è zero “0” nel caso di data non programmata o RT già
in servizio. Se la data è programmata, viene scaricata nel formato aaaa/mm/gg .
ESEMPI Ecrdata.Out
D2020/01/01
D2019/07/01
D0 -> RT non attivato, attivato senza programmazione della
data, oppure già in servizio.
E 'possibile utilizzare i comandi =C450, =C451, =C452 e =C453 per stampare il contenuto
del giornale elettronico o scaricarlo sul PC. Se viene passato il valore /$1, il comando
viene interpretato come un comando standard e il documento di risposta predefinita viene
immediatamente inviato. Se non viene passato alcun valore o /$0, il contenuto del DGFE
viene inviato come parte del documento di risposta come valore di testo del sotto
elemento <EJ>. Ogni riga è terminata da un carattere di avanzamento riga. Gli spazi
bianchi devono essere mantenuti. <EJ> Ha un attributo "id" che contiene il tipo di richiesta.
NOTA: i comandi per la lettura della memoria di riepilogo e del dgfe sono
interrompibili solo da tastiera con il tasto CL.
19-03-2019 11:38
DOCUMENTO N. 0087-0003
*** 72MU1000123 ***
</EJ>
</Service>
E' possibile utilizzare i comandi =Cxxx (xxx è il codice della statistica) per includere le
statistiche nel documento di risposta all'interno di un sotto elemento <Stat>.
<Stat> ha un attributo "id" che indica il tipo di richiesta e di un attributo "mode". Se il
comando viene eseguito in modalità Z, l’attributo mode="Z". Dopo l’invio del comando, i
contatori vengono azzerati. Tutti i rapporti hanno la stessa struttura, ma non tutti i contatori
sono presenti. Per ogni statistica, i possibili nodi secondari sono;
1. =R1/$150/(Bevande)
2. =R1/$250/(Snack)
3. =R1/$100/(Caffe’)
4. =R1/$550/(Snack)
5. =S
6. =T2/$100
7. =T1
8. =”/(Descrizione)
9. =c
Un messaggio di errore viene inviato. Nel messaggio viene indicato l'ultimo comando
eseguito. Tutte le righe successive vengono scartate.
L'eccezione può essere gestita principalmente in due modi, dopo aver rimosso la causa
dell’eccezione (es. rotolo di carta sostituito);
a. continuare a inviare i comandi non processati
b. annullare il documento e inviarlo completamente di nuovo. Attenzione; in alcuni casi
non è possibile continuare un documento interrotto.
FARE:
STEP 1. Inserire un rotolo carta nuovo e chiudere il coperchio. Tutto il buffer di stampa
viene stampato.
STEP 2. Inviare I comandi dal 7 al 9.
FARE:
STEP 1. Inserire un rotolo carta nuovo e chiudere il coperchio. Tutto il buffer di stampa
viene stampato. Quando la stampante viene ripristinata, vengono stampate tutte le
righe fino all'ultimo comando del documento.
NOTA:
Se si verifica un'interruzione di corrente o di connessione, lo stato interno dell’RT può
essere sconosciuto al software client perché nessun messaggio di risposta è stato ricevuto.
Se una tastiera è collegata all’RT, l'utente può aver operato manualmente sull’RT e
l'esatto stato del documento può essere difficile o impossibile da recuperare da software.
Anche se è teoricamente possibile il recupero da qualsiasi errore, si consiglia di annullare
lo scontrino/fattura/documento, eventualmente chiedendo conferma all'utente.
idleState = 0:
idleState = 1:
Un documento o una fattura sono aperti. Alcuni articoli possono essere stati inviati.
FARE:
STEP 1. Inviare il comando =x comando per annullare il documento aperto.
STEP 2. Inviare nuovamente tutto il documento (documento/fattura).
idleState = 2:
FARE:
STEP 1. Inviare un comando di pagamento (es. =T). All’utente può essere chiesto
quale pagamento utilizzare.
STEP 2. Se l’opzione fidelity è attiva, inviare il comando =c per terminare il
documento/fattura.
STEP 3. Inviare un comando =x. Annulla completamente e chiude a zero (0,00) un
documento in corso.
idleState = 3:
Un documento è aperto.
FARE:
STEP 1. Inviare il comando =c per chiudere il documento.
STEP 2. Inviare nuovamente i comandi.
STEP 3. Inviare un comando =x. Annulla completamente e chiude a zero (0,00) un
documento in corso.
idleState = 4:
fare:
STEP 1. Inviare il comando =c per chiudere il documento. I dati fiscali sono già stati
registrati e totalizzati in questo stato. Solo le stringhe descrittive vengono cancellate.
10. ESEMPI
10.1 SCONTRINO FISCALE/DOCUMENTO COMMERCIALE
<enabled>1</enabled>
</cash>
<credit>
<enabled>0</enabled>
</credit>
<drawer>
<enabled>1</enabled>
</drawer>
</Payment>
<Header id="1">
<txt></txt>
</Header>
<Header id="2">
<txt></txt>
</Header>
<statDeptartment>
<enabled>0</enabled>
</statDeptartment>
<statGrpTot>
<enabled>0</enabled>
</statGrpTot>
<logo id="1">
<value>0</value>
</logo>
</Prg>
</Service>
:Chiusura giornaliera
=C3
=C10
:Caricamento intestazione
>>/?H/$1/(PROVA RIGA1 INTESTAZIONE)
>>/?H/$2/(PROVA RIGA2 INTESTAZIONE)
>>/?H/$3/(PROVA RIGA3 INTESTAZIONE)
>>/?H/$4/(PROVA RIGA4 INTESTAZIONE)
>>/?H/$5/(PROVA RIGA5 INTESTAZIONE)
>>/?H/$6/(PROVA RIGA6 INTESTAZIONE)
>>/?H/$7/(PROVA RIGA7 INTESTAZIONE SOLO PER FATTURA)
>>/?H/$8/(PROVA RIGA8 INTESTAZIONE SOLO PER FATTURA)
>>/?H/$9/(PROVA RIGA9 INTESTAZIONE SOLO PER FATTURA)
>>/?H/$10/(PROVA RIGA10 INTESTAZIONE SOLO PER FATTURA)
>>/?H/$11/(PROVA RIGA11 INTESTAZIONE SOLO PER FATTURA)
>>/?H/$12/(PROVA RIGA12 INTESTAZIONE SOLO PER FATTURA)
>>/?H/$13/(PROVA RIGA13 INTESTAZIONE SOLO PER FATTURA)
:Programmazione reparti
>R1/?A/$1000/*1/(REPARTO N.1)
>R2/?A/$2000/*2/(REPARTO N.2)
:Programmazione Pagamenti
>T1/?A/$1/&1/[0/]1/^0/(CONTANTI_1)
>T2/?A/$0/&0/[1/]1/^0/(CORR. NON RISCOSSO_2)
>T3/?A/$1/&1/[0/]1/^0/(ASSEGNI_3)
:Programmazione Operatori
>O1/?A/(MARCO)
>O7/?A/(PAOLO)
: caricamento CLIENTE
=C4
>>/?A/(110000000000002DESCR. NOME CLIENTE 00000000101)
>>/?A/(110000000000002DESCR. INDIRIZZO 1 00000000002)
>>/?A/(110000000000002DESCR. INDIRIZZO 2 00000000003)
>>/?A/(110000000000002DESCR. PARTITA IVA 00000000004)
>>/?A/(110000000000002DESCR. DATI CLIENTE 00000000005)
=C1
=o
: 2) stampa codici a barre
:stampa barcode UPC-E
="/$1/(02345678901)
:stampa barcode EAN-13
="/$2/(4006381333641)
:stampa barcode EAN-8
="/$3/(80369691)
:stampa barcode CODE-39
="/$4/(ABCDEFGH)
:stampa barcode UPC-A
="/$5/(042110000082)
:stampa barcode CODE-128
="/$8/(ABCDEFGHILMN)
:conversione barcode UPC-E in UPC-A
="/$10/(12345678901)
: 3) Chiusura documento gestionale
=o
: Esempio di fattura con cliente creato al momento (le 5 righe sono obbligatorie
tutte e con la corretta sequenza)
=A/$1/(MARIO ROSSI)
=A/$2/(indirizzo 1: 36 caratteri)
=A/$3/(indirizzo 2: 36 caratteri)
=A/$4/(partita IVA: 36 caratteri)
=A/$5/(dati cliente: 36 caratteri)
=F/*4
=R1/$100
=T1
“ERR. RTC”
E15 Indica che in apertura di documento o chiusura giornaliera, la data del sistema è differente di
oltre un anno, rispetto alla data dell’ultima chiusura giornaliera effettuata. Contattare il centro
assistenza per la verifica hardware e il ripristino del sistema.
"FORMATO MMC NON CORRETTO! [CL]"
E17 Indica che la MMC inserita non è del tipo fornito dal produttore del registratore. Inserire solo
MMC originali.
"DGFE IN ESAURIMENTO![CL]"
E31 Indica che il giornale elettronico (MMC) è quasi saturo e che bisogna cambiarlo al più
presto.(vedi cap. 2.2 del manuale operativo).
“ERR. DATA/ORA”
E88
Indica che durante l’avvio del sistema, si è verificata un’anomalia su formato data/ora (circuito
RTC). Contattare l’assistenza tecnica per il controllo dell’hardware e il ripristino del sistema.
E89 “DISPLAY CLIENTE NON CONNESSO!”
Indica il mancato funzionamento del display. Contattare il centro assistenza.
“ERRORE COMUNICAZIONE [CL]”
E90
Indica la mancata comunicazione tra la stampante fiscale e il PC. Controllare i cavi di
collegamento.
“ERRORE ETHERNET [CL]”
E91
Indica la mancata comunicazione LAN tra la stampante fiscale e il PC. Controllare il
collegamento e la rete (router, ecc.).
“ERRORE BLUETOOTH [CL]”
E92 Può indicare che il modulo Bluetooth non è collegato, non è funzionante o è già collegato a un
dispositivo. In quest’ultimo caso disconnettere la connessione Bluetooth del dispositivo.
- - - - - - - - - - - - - - - FINE DOCUMENTO - - - - - - - - - - - - - -