Blog - Developer - 30/11/2018

Esempio gestione lettore codice a barre

Questo esempio mostra come integrare un lettore di codici a barre all'interno di un documento fiscale:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
--GESTIONE DEL CODICE A BARRE PER LA FATTURA
output.clear()
if datafield.name() == "codice_a_barre" then
    if string.sub(datafield.getvalue(),-1) == "£" then
        --output.print(datafield.getvalue())
        s = string.sub(datafield.getvalue(),1,string.len(datafield.getvalue())-1)
        datafield.setvalue("")    
        --controllo se esiste già una riga con questo codice
        --se esiste aumento la quantità
        voto         = 0
        tabellarighe = dataview.getatable("fatture_rows")
        nrighe       = tabellarighe.countrows()
        righe        = tabellarighe.getrows()
        
        for i = 1,nrighe do
          
            codice = righe[i].getvalue("codice")
            output.print("codice")
            if codice == s then
               --aumento la quantità
               q = righe[i].getvalue("qta")
               q = q + 1
               righe[i].setvalue("qta",q)
               voto = 1
               tabellarighe.update()
            end 
          
        end
        
        if voto == 0 then
            --cerco il codice dentro la tabella articoli
            tabellaarticolo = database.getsql("SELECT * FROM articoli WHERE codice='" .. s .. "'")
            if tabellaarticolo.countrows() > 0 then
                righe = tabellaarticolo.getrows()
                riga  = tabellarighe.adddatarow()
                riga.setvalue("codice",s)
                riga.setvalue("gguid_codice",righe[1].getvalue("gguid"))
                riga.setvalue("descrizione",righe[1].getvalue("descrizione"))
                riga.setvalue("um",righe[1].getvalue("um"))
                riga.setvalue("prezzo_iniziale",righe[1].getvalue("prezzo"))
                riga.setvalue("codice_iva_prezzo",righe[1].getvalue("codice_iva_prezzo"))
                riga.setvalue("gguid_codice_iva_prezzo",righe[1].getvalue("gguid_codice_iva_prezzo"))
                riga.setvalue("descrizione_iva_prezzo",righe[1].getvalue("descrizione_iva_prezzo"))
                riga.setvalue("iva_prezzo",righe[1].getvalue("aliquotaiva_prezzo"))
                riga.setvalue("servizio",righe[1].getvalue("servizio"))
                riga.setvalue("qta",1)
                tabellarighe.update()
            else
                --se devo gestire la creazione
            end
        end
        
    end
end  


In questo esempio è stato inserito un campo "codice_a_barre" all'interno del documento e attivato lo script sulla sua modifica. Quando viene modificato (leggo un codice a barre con il cursore posizionato dentro di esso) lo script se trova il carattere "£" in fondo esegue la ricerca del codice all'interno degli articoli. Il carattere è stato scelto perchè non verrà mai utilizzato all'interno dei codici. Questo carattere viene inserito automaticamente alla fine della lettura del codice da parte del lettore (per eseguire questo settaggio vedere le possibili impostazioni del lettore). Se viene trovato l'articolo si creare una nuova riga all'interno del documento caricando i suoi dati. Se esiste già una riga che richiama il codice viene aumentata la quantità.

 


< Indietro

expand_less