Newsgroup: it.comp.lang.delphi
Titolo: Registratore di cassa

Ciao a tutti,
  sebbene la questione e' aperta a tutti, la pongo quasi in modo "personale" 
ad Emanuele Desideri.
 
Alla fine ho trovato una ditron zip usata (quindi defiscalizzata) su cui 
fare le dovute prove di invio dati al registratore di cassa.
Driver + installa zione zip fatta, il demo della ditron vede la zip e, 
sembra, tutto a posto.
 
Procedo con il progetto test composto da un'unica form con un'unico bottone 
ed il componente TCoEcrCom per gestire i dati diretti al registratore.
 
formcreate
 
  I:=CR1.Open('Port=1'); // E' nella porta 1
  if I<>0 then
    sleep(5);                    // Brackpoint giusto per leggere il codice 
di errore
 
Nell'onclick del bottone i vari esempi
 
procedure TForm1.btn1Click(Sender: TObject);
var ResultECR : WideString;
begin
    // Manda il comando con reparto 1, 2 articoli senza codice al prezzo di 
2.20, la stringa passa al rc ResultECR=OK
   CR1.EcrCmd('VEND REP=1,QTY=2,PRE=2.20',ResultECR);
 
  // Stessa riga ma anziche' il reparto c'e' il codice articolo (quello che 
interessa a me), la stinga arriva al rc che "bippa" e
//  ResultECR= 'ERRORE 16/26 : L''ECR SEGNALA ERRORE 26'
  CR1.EcrCmd('VEND ART=98456237,QTY=2,PRE=2.20',ResultECR);
 
  // Infine dato che con la prima riga per chiudere la vendita devo premere 
il pulsante sulla tastiera, sto provando con l'aggiunta di CHIUS
CR1.EcrCmd('VEND REP=1,QTY=2,PRE=2.20',CHIUS,ResultECR);
 
 
end;
 
Con questo comando
 
CR1.EcrCmd('VEND REP=1,QTY=2,PRE=2.20',CHIUS,ResultECR);
 
ovvero con la sola aggiunta di CHIUS, ResultECR ritorna vuoto ('') e il 
comando non arriva al rc.
 
Ecco le due domande
1) Dato che lavoro con i codici EAN (quindi codice articolo e non reparto), 
come posso inserirli nella stringa (ART non va bene) e farla arrivare al rc?
2) Dato che CHIUS non va bene, come faccio a chiudere lo scontrino ed ad 
azionare la taglierina?
 
Grazie
 
Ciao
 
Daniele
 
PS: Ho tentato di impiegare tutti i comandi utilizzati nel file di esempio 
(che qui includo) ma con scarsi risultati.
     Inoltre gli stessi risultati li ottengo con il file demo (exe) incluso 
nel pacchetto dei driver.
     Se pero' il file viene mandato al rc, lo scontrino viene stampato 
correttamente e tagliato (pero' con il reparto e non il codice articolo).
 
File di test
 
; Esempio di scontrino di vendita inviato ad ECR mediante WINECRCOM
; -----------------------------------------------------------------
 
CLEAR            ;preme il tasto C
 
CHIAVE REG       ;conferma che la cassa si trovi in assetto REGistrazione
 
VEND REP=1,PREZZO=0.20           ;vendita semplice a reparto 1
VEND REP=2,QTY=6,PREZZO=0.25     ;vendita su reparto con quantita' non 
unitaria
VEND REP=3,PRE=0.30,DES='CANCELLERIA'  ;vendita su reparto con descrizione
 
PERCA ALI=50, SUBTOT    ;Sconto del 50% sul subtotale
 
CHIUS T=1
 

Ciao a tutti ancora,
   un problema risolto .....
I comandi devono andare uno alla volta al rc.
In questo modo
 
CR1.EcrCmd('VEND REP=1,QTY=2,PRE=2.20',ResultECR);
CR1.EcrCmd('CHIUS T=1',ResultECR)
 
si totalizza e si attiva la taglierina.
 
L'unico problema rimane la descrizione articolo senza reparto o l'ibrido 
(entrambi).
 
Grazie
 
Ciao
 
Daniele
 

 Daniele
 
Ciao e buon lavoro!
 
-- 
Emanuele Desideri

 Ciao e buon lavoro!
Grazie, tengo informato ng sui progressi !!!
 
Daniele
 
 

Ciao Emanuele,
    dopo aver provato alcuni file di esempio ho concluso (a titolo 
esclusivamente personale, quindi puo' essere non corretto) che il buon ecr 
per poter emettere uno scontrino deve avere un riferimento obbligatorio.
Questo riferimento puo' essere il reparto o un articolo.
E qui c'e' la fregatura.
L'articolo non e' un articolo qualunque ma bensi' un articolo 
precedentemente "caricato" nel ecr.
Se non e' caricato il comando ART non funziona.
 
A questo punto devo capire se, e se si come, sia possibile assegnare al 
reparto la stringa vuota (''), cosi' da non stampare la dicitura REPARTO x.
 
Si continua a provare .....
 
Ciao
 
Daniele
 
 

 reparto la stringa vuota (''), cosi' da non stampare la dicitura REPARTO x.
 
Daniele scusami, sarà che è ora di un altro caffè, ma io non ho capito 
qual'è il risultato che vuoi ottenere. :-?
 
-- 
Emanuele Desideri

 ma io non ho capito  qual'è il risultato che vuoi ottenere. :-?
Molto semplice, se non hai reparti definiti (come nel mio caso) il risultato 
da ottenere e' similare a (lascia perdere l'intestazione e il resto) :
 
1 x 12.25 123456789012       12.25
2 x 0.90    56789012345          1.80
Totale                                     14.05
 
ABCDEF12A34B567C
 
o, in alternativa
 
1 x 12.25
123456789012       12.25
 
2 x 0.90
56789012345          1.80
 
Totale                   14.05
 
ABCDEF12A34B567C
 
Adesso lo scontrino e'
 
1 x 12.25
REPARTO 1            12.25
 
2 x 0.90
REPARTO  1             1.80
 
Totale                    14.05
 
E' il reparto 1 che non si deve vedere.
 
Grazie di tutto
 
Ciao
 
Daniele 
 

 E' il reparto 1 che non si deve vedere.
 
Ma presumo che si veda perchè non invii una descrizone dell'articolo.
Decidi tu se come descrizione inviare la descrizione "testuale" o il 
codice articolo o quello che ti pare.
NB questa scelta dipende da quanto vuoi che lo scontrino sia 
"parlante".
 
Buona giornata!
 
-- 
Emanuele Desideri

 Buona giornata!
Bhe grazie al tuo intervento direi che potrebbe andar bene !!!!
Ora posso terminare l'interfacciamento .....
 
Grazie ancora
 
Ciao
 
Daniele 
 

Ciao Emanuele,
    per il momento chiudiamo questa conversazione con le ultime notizie (per 
me) avute proprio dai tecnici software della Ditron.
 
Il file di esempio della programmazione ora e' sbagliato, manca la prima 
riga che e' azzgio tipo=1/2/3 perche' PRIMA di cambiare orario si deve 
azzerare l'ecr.
Il cambio data va preso con le pinze da orologiaio.
La data puo' essere cambiata in avanti (superiore ad oggi) e MAI indietro 
(inferiore ad oggi).
Questo significa che, se per qualsiasi motivo, per errore si imposta la data 
del 28/02/2017 (mentre oggi e' il 24/02/2017), non si puo' piu' rimediare 
all'errore (perche' per motivi fiscali non si puo' fare).
 
Le funzioni shortcut NON sono documentate, per farti un esempio il cambio 
ora e'
 
CR1.EcrCmd('inp num=12, term=147',ResultECR);
 
dove 12 sta per queste operazioni su tastiera.
 
4 + CHIAVE
13 volte SCELTA
CONFERMA
 
Mi hanno detto che gli altri shortcut (ce ne sono diversi) vanno scoperti 
secondo le necessita' e che, forse, li mettono nella prossima versione del 
file .ini
 
Credo che queste informazioni ti fossero gia' note, magari possono essere 
utili anche ad altri.
 
Grazie per la pazienza e l'aiuto che mi hai dato.
 
Ciao
 
Daniele
 
PS: In quale regione risiedi?
 
 

 PS: In quale regione risiedi?
 
Lazio
 
ciao!
 
-- 
Emanuele Desideri

 Lazio
 
Quando passo di li (!) ti offro quel caffe' !!!
 
Ciao
 
Daniele 
 

Ciao Daniele, ho fatto un software per la gestione della vendita a banco e ora vorrei collegare il pc alla cassa. Fra le varie ricerche sono approdato su questo post. La mia domanda è: dove posso trovare la libreria TCoEcrCom?
grazie


 grazie
 
Che tipo di gestionale hai sviluppato ??
Sai sono interessato a tutte le novita' (basta sapere il campo d'interesse).
Per quanto riguarda la libreria la trovi con il registratore di cassa (ora 
quadra, la zip non la fanno piu').
Tuttavia il servizio tecnico della Ditron e' molto attivo e collaborativo, 
dichiarandoti uno sviluppatore una mano te la possono dare.
Se pero' non hai la cassa !!! (questa e' stata la mia difficolta' ..... 
trovare una cassa defiscalizzata di un'attivita' chiusa !!! e non piu' 
utilizzabile se non per i test).
 
Se puoi..... facci sapere come sta andando.
 
ciao
 
Daniele
 
 
 


Ciao Daniele, ho sviluppato un gestionale per un punto vendita che fa da cassa, gestione del magazzino con il suggerimento degli ordini per gli articoli in fine scorta, gestione degli ordini con carico della merce, gestione degli articoli, contabilità con fatture vend, fatture acq, preventivi, ddt, statistiche e scadenziario, anagrafica clienti e fornitori ecc... Visto che avevo fretta ho trovato un software che mi fa da middleware tra il mio programma e la cassa, ho solo dovuto dire al software il modello di cassa e quale cartella monitorare. L'unica cosa che devo fare è generare in file di testo formattato in un certo modo in una cartella prestabilita, il software monitora quella cartella e quando vede un file di testo lo prende, lo elabora e lo manda alla cassa. Il venditore mi ha assicurato che è compatibile con tutte le cassa. Io per ora l'ho provato su due modelli e funziona a meraviglia.
Saluti. Dino.

 il mio programma e la cassa
E' sempre della Ditron o altra casa ?
Se altra casa puoi dire di piu'?
La zip/quadra ha la possibilita' di leggere in una directory un file e poi 
trasformarlo in fiscale, pero' (sembra) che ogni misuratore fiscale ha il 
suo interprete.
Se quel software risolve le diversita' tra i modelli ...... potrebbe 
interessare !!!
 
Grazie
 
Ciao
 
Daniele 
 

Grazie
