PDV X PRODUTO DE BALANCA
1 - cria um campo na tabela de produtos, (pesagem <s/n>), quando le o produto, verifica se ele devera ser pesado, se sim.. aciona balanca...
2 - vc. poderia ver o tamanho da string do codigo de barras, e comparar com os produtos da prateleira, sera que teem o mesmo tamanho??
blz
ate mais
Porém, o padrão ean definiu que códigos internos devem começar com 20. Verifique se os códigos das pessagens comecem com 20 e se os códigos das prateleiras são diferentes do inicial 20. Se forem, voce deve testar se os dois primeiros dÃgidos são 20...
código da balança: 2005005002170
código prateleira : 2000025003992
levando em conta q após a leitura, disparo uma busca no cadastro, no qual tenho o campo ean e o código interno, estou pensando em montar algo que procure sempre no ean primeiro, que caso não ache, pega na stringo código interno q esta na balança e faça nova busca......to tentando.....rs...
Citação::
Não esta fácil de resolver, pois no meu caso, a balança pesa no açougue do mercado e não direto no caixa.... , e quando chega no caixa, e faz a leitura da barra, pode ser um ean 13, como tbm os 13 digitos impressos pela balança, e o código de barras que a balança gerou, inicia sim com 2 + 6 digitos do código do produto + 6 do preço, veja esse exemplo:
código da balança: 2005005002170
código prateleira : 2000025003992
levando em conta q após a leitura, disparo uma busca no cadastro, no qual tenho o campo ean e o código interno, estou pensando em montar algo que procure sempre no ean primeiro, que caso não ache, pega na stringo código interno q esta na balança e faça nova busca......to tentando.....rs...
olha, eu use dessa forma que você pensa em usar:
primeiro busco com os 13 digitos pra ver se localiza o produto, se não acha quebro o codigo e busco o código do item pesado
[Ô]select * PRODUTOS where EAN like [ô][Ô] & EAN.TXT & [Ô][ô]
[ô]se nao acha:
DIM CODIGO
DIM VALOR
CODIGO = MID(EAN.TXT,2,6)
VALOR = MID(EAN.TXT,8,5)
[Ô]select * PRODUTOS where EAN like [ô][Ô] & CODIGO & [Ô][ô]
Caso não encontre, busque o codigo completo.
Basicamente seria isso.
If Len(txtCodProduto.Text) = [Ô]13[Ô] And Left(txtCodProduto.Text, 2) = [Ô]20[Ô] THEN
[ô]Faça a busca pelo codigo interno > [Ô]SELECT * FROM PRODUTOS WHERE CODINTERNO = [ô][Ô] & Mid(txtCodProduto.Text, 2, 6)
[ô]Tente a busca caso não retorne nada então faça a busca pelo codigo de barras
IF RETORNOU PRODUTO THEN
[ô]LANÇA ITEM
ELSE
[ô]BUSCA ITEM PELO CODIGO DE BARRAS
[ô]LANÇA ITEM
END IF
Else
[ô]Faça a busca pelo codigo barras > [Ô]SELECT * FROM PRODUTOS WHERE CODBARRAS = [ô][Ô] & txtCodProduto.Text
[ô]LANÇA ITEM
End If
Uso dessa forma e não tive problemas, mesmo porque a primeira consulta é no codigo interno, se não atender aos critérios, a busca vai para o codigo de barras.
If Left(Finaliza_Balanca, 1) = 2 Then
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Cod_Barra, Prod_Descricao_Completa, Vlr_Venda From Tb_Produtos[Ô]
Sql = Sql & [Ô] Where Cod_Barra =[ô][Ô] & Format(Codigo_Balanca, [Ô]0000000000000[Ô]) & [Ô][ô][Ô]
MostraCodBarra = Codigo_Balanca
Else
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Cod_Barra, Prod_Descricao_Completa, Vlr_Venda From Tb_Produtos[Ô]
Sql = Sql & [Ô] Where Cod_Barra =[ô][Ô] & Format(Codigo_Produto, [Ô]0000000000000[Ô]) & [Ô][ô][Ô]
MostraCodBarra = Codigo_Produto
End If
Citação::
fox e moreira, foi o que eu citei acima, também fazia dessa forma, checava o primeiro ou 2 primeiros digitos para ver se era código balança, porém, começaram a aparecer produtos de prateleira, com código ean iniciados em [Ô]20[Ô], mas contornei o problema, fazendo buscas sequenciais....
Mas a checagem inicial é para ver se o codigo de barras tem tamanho 13 e começa com 20 , caso afirmativo, vc tem que buscar o produto pelo codigo interno(que esta dentro do codigo de barras), que provavelmente não terá os 13 digitos.Diante disso se vc encontrar o produto(com o codigo interno) naturalmente será o produto desejado.
Por exemplo :
LIMÃO TAITI
Codigo interno : 04646
Codigo do limão considerando um peso de 0,448 Kg ao preço de 3,99 o KG = 2004646001795
Nessa composição temos :
20 - Inicio do codigo de barras que inernamente deve comçar dessa forma.
04646 - Codigo do produto
001795 - Espaço destinado ao valor da pesagem do produto.
Então utlizando o exemplo acima que postei temos :
Se tiver comprimento de 13 digitos e começar com 20 ENTÃO
busque o produto com o codigo interno 04646
Se encontrou o produto então
Lance o produto.
Se não encontrou então
ETC...
ETC..
ETC..