Newsgroup: it.comp.lang.delphi
Titolo: Invio dati a misuratore fiscale

Ciao a tutti,
  come da oggetto ha questo problema.
Le casse fiscali sono Ditron ZIP, ma non esculdo che un domani possa si 
possa cambiare marca e/o modello, di cui una e' in rete (serve 3 pc) e 
l'altra e' collegata ad un pc non in rete e collegata tramite rs 232.
Prima di questa esigenza il programma mandava l'operazione ad una 
stampantina (sono testo) con tutto il lavorato, poi manualmente si emetteva 
il fiscale con l'importo totale.
Adesso quello che mando alla stampantina (ogni operazione e' una riga) alla 
chiusura delle operazioni lo devo mandare alla cassa con codice + prezzo * 
quantita' = totale riga e alla fine il totalone.
 
Questo perche' ci sono determinati articoli che non sono gestiti da 
gestionale in uso, sono referenze senza alcuna banca dati esterna e (in caso 
di movimentazione di questi articoli) essi vanno gestiti in vendita come gli 
altri con l'emissione di una scontrino molto dettagliato.
 
Da dove posso iniziare ?? (qualche esempio non farebbe male).
 
Grazie per tutto.
 
Daniele
 
 

 Daniele
 

 riferimento è ovvio.
Ho contattato i tecnici della Ditron, sono in attesa delle risposte (driver 
+ specifiche tecniche) .
 
Grazie e Ciao
 
Daniele
 

 fare l'astrazione.
 
Quindi?
 
A.


Ciao Daniele,
per quanto riguarda casse Ditron puoi farti fornire il driver WinECRCom 
(ultima versione o NB versione compatibile con il firmware delle casse 
che hai) installarlo e importare l'ocx in Delphi.
Dopodichè l'utilizzo di per sè è abbastanza semplice e ben documentato 
(trovi sia documentazione che esempi con codici sorgenti in c e vb 
quando installi il driver).
Se hai dubbi chiedi pure.
 
E.
 
-- 
Emanuele Desideri

Ciao,

Quindi dovro' impegnarmi per capire come fare l'astrazione.
Per il problema cassa ditron rispondo al messaggio successivo.
 
Grazie e ciao
 
Daniele
 

 Se hai dubbi chiedi pure.
 
Ho installato il driver e, come hai anticipato, c'e' un pdf.
Ora lo leggo e poi aggiorno la discussione.
 
Grazie per l'aiuto
 
Ciao
 
Daniele 
 

Ciao, ho letto la documentazione e ho aperto diversi file di esempi 
allegati.
Gli esempi sono ben documentati e, devo dire, e' quasi impossibile creare un 
file di testo errato seguendo quelle istruzioni.
 
Quello che non capisco e' il formato del file di testo intercettato prima 
della stampa, ovvero prima che venga intercettato da WinECRCom e mandato 
alla cassa.
Il file e' il seguente, tenedo presente che:
 
Le vendite fittizie sono 2 (due righe).
La prima di 0.01 centesimi, 1 Pezzo
La seconda di 0.02 centesimi, 1 Pezzo.
Il codice fiscale e' ABC12D34E567F (di fantasia)
Il primo codice prodotto e' "PRODOTTO PER PREZZO" in quanto non ha codice 
perche' e' un servizio
Il secondo codice prodotto e' "99999999" che identifica TEST
Pagamento in contanti.
Alla fine della stampa si apre il cassetto e si attiva la taglierina (ultima 
riga).
 
PRODOTTO PER PREZZO 
000012000000000011ABC12D34E567FNNENSERVIZI
999999999 
000012000000000021ABC12D34E567FNNENTEST
T_O_T_A_L_E00YJL3000000CONTANTI
 
Queste informazioni dove sono ?
 
Questo file e' decisamente diverso da, prendo il piu' semplice, da quello 
fornito con gli esempi (qui sotto)
 
vend rep=1, pre=5.00, qty=2, des='Articolo 1'
vend rep=1, pre=10.00, des='Articolo 2'
chius t=1, imp=10.00  ; Chiude parzialmente lo scontrino (10€) in contanti
chius t=2   ; Chiude il restante da pagare (10€) a credito (non pagato)
 
; t=1 : CONTANTI
; t=2 : CREDITO
; t=3 : ASSEGNI
; t=4 : BUONI
; t=5 : CARTA DICREDITO
 
La domanda e', se creo un file di testo cosi' fatto
 
vend rep=1, pre=5.00, qty=2, des='Articolo 1'
vend rep=1, pre=10.00, des='Articolo 2'
chius t=1, imp=10.00  ; Chiude parzialmente lo scontrino (10€) in contanti
chius t=2   ; Chiude il restante da pagare (10€) a credito (non pagato)
 
e lo chiamo SCF00001.TXT, il WinECRCom lo vede e lo interpreta in modo 
corretto ?
 
Evidentemente devo stare MOLTO attento ai test .... essendo la cassa 
fiscalizzata !
 
Qualche suggerimento?
 
Grazie
 
Daniele 
 

 Daniele
 
Ciao Daniele, come ti avevo scritto, ma probabilmente sono stato un po' 
criptico, puoi importare l'ocx (lo trovi dentro la cartella di 
winECRCom) in delphi ed utilizzare il componente in delphi.
Utilizzando il componente non ti è necessario creare il file di testo, 
bensì puoi direttamente connetterti al driver (indicando la porta 
logica che hai configurato su winECRConf) e inviare i comandi.
Spero di esserti stato d'aiuto!
 
-- 
Emanuele Desideri

 Spero di esserti stato d'aiuto!
Certo che si.
Pero', se me lo consenti ti chiedo un'ultimo (spero) sostegno.
Form di vendita, griglia prodotti con
1a colonna codice
2a colonna descrizione
3a colonna quantita
4a colonna prezzo unitario
5a colonna prezzo totale riga
6a colonna sconto
7a colonna prezzo finale netto sconto
 
pannello con 3 mega label
la prima con prezzo lordo sconto
la seconda con lo sconto totale (dato dalla somma degli sconti precedenti)
la terza prezzo totale netto sconto.
 
Come passo le righe ed il finale alla cassa (magari gestendo il fine carta, 
lo stato occupato, lo sportello aperto ecc...).
 
Ti ringrazio per il tuo prezioso aiuto.
 
Buona domenica
 
Daniele
 
 

 ControlObjectVersion: 1004001
 
Ciao Daniele,
intanto ti invito a leggere la documentazione corredata del driver e 
gli esempi di codice perchè sono molto chiari, comunque la dritta di 
cui necessiti fondamentalmente è:
- ECR.Open('Port=1'); //apre il collegamento con la porta logica 1
- ECR.EcrCmd //per inviare un comando alla cassa (VEDI elenco comandi)
- ECR.Close; //chiude il collegamento
 
Buon divertimento ;)
 
-- 
Emanuele Desideri

 - ECR.Close; //chiude il collegamento
Vedi, queste 3 righe sono ben identificabili nel sorgente c++.
Adesso vediamo se ho capito bene come dovrebbe andare:
 
Nel FormCreate della MainForm (dove presumibilmente si inizializza) 
inserisco
ECR.Open('Port=1');  // In effetti e' sulla porta logica 1
 
Cosi' inizializzo la cassa e sta in attesa.
 
Adesso il codice per mandare alla cassa la vendita di un articolo fittizio 
con codice 99999999 con descrizione
test che costa 0.01 euro (dimmi che va bene !) con il codice fiscale 
MRTRSR81P11B158EK (totalmente inventato)
 
ECR.EcrCmd('INP TERM=61');
ECR.EcrCmd('INP ALFA=' + QuotedStr('MRTRSR81P11B158EK') + ',TERM=49');
ECR.EcrCmd(VEND ALFA=' + QuotedStr('99999999') + 'REP=2,PRE=0.01,QTY=1,DES=' 
+ QuotedStr('Test) );
ECR.EcrCmd('CHIUS');
 
Quando termino il programma, nella MainFormClose
ECR.Close
 
Come vedi, non so dove trovare i significati assegnati a TERM.
Inoltre, le stringhe le posso stampare anche dopo la vendita ?
Mi puoi dire dove sto sbagliando?
 
Grazie per i tuoi suggerimenti.
 
Daniele
 

 La sintassi e' spiegata bene .... ma non c'e' uno straccio di esempio.
 
Nella documentazione (almeno quella che ho io) nella parte finale sono 
spiegate dettagliatamente tutte le proprietà, metodi ed eventi del 
componente.
 
Inoltre se apri il file ecrcom.ini (nella cartella WinECRCom\Drivers) 
trovi tutti i comandi utilizzabili sulla cassa (con ECR.EcrCmd) ben 
commentati (con tanto di riga di esempio a volte).
 
Non mollare Daniele ;)
 
-- 
Emanuele Desideri

 Non mollare Daniele ;)
Certo che non mollo.
Un'altro problema e' che non posso neanche fare chissa' quali test essendo 
le casse fiscalizzate e impossibilitate ad essere usate come banco di test.
Dovrei procurarmi una cassa di x mano non piu' in uso !!
 
Grazie
 
Ciao
 
Daniele
 
PS: Ma le linee del messaggio precedente andavano bene? 
 

 Grazie
 
Prego!
 
-- 
Emanuele Desideri

 su un reg. di cassa non fiscalizzato.
Sto cercando di aggirare il problema cercando una ZIP/QUADRA non piu' 
utilizzata (quindi defiscalizzata) a basso costo per i test.
Sto trovando casse e casse ma non quelle, forse perche' le ZIP ancora oggi 
sono considerate dei muli (robuste).
Per il momento il codice e' in attesa di test che faro' appena trovo il 
muletto, anzi se per caso hai una zip di seconda, terza,x mano che ti avanza 
..... te la ritiro volentieri.
 
Grazie ancora per il tuo prezioso aiuto.
 
Ciao
Daniele
 
PS: Di dove sei ?? , Lontano da Como-Varese ?
 
 

 PS: Di dove sei ?? , Lontano da Como-Varese ?
 
Eh direi di si, scrivo dal centro-italia :) arriverà freddo sto caffè! 
:-@
 
-- 
Emanuele Desideri

 Eh direi di si, scrivo dal centro-italia :) arriverà freddo sto caffè!
Dipende ... se sei in prossimita' di una costa non e' detto che possa 
portartelo di persona!!!!
 
A presto (ovvero alla prossima discussione)
 
Ciao
Daniele