PDV X PRODUTO DE BALANCA

LIZA 07/11/2012 22:16:41
#413753
Amigos, como voces fazem para pesquisar no banco de dados, através da tela de pdv, quando é um código de barras gerado pela balança ? , eu até então verificava o tamanho do código e se o mesmo se inicia por [Ô]2[Ô], e caso inicie por 2 ( pelo menos as balanças toledo é assim), eu pegava posição da string e definia o que era peso e código. Porém hoje tive um problema em um cliente, um produto de prateleira com código de barras iniciado por 2..........Agora, pensei em fazer a busca do código de barras e caso não encontre, quebrar a string buscar pelo código da balança....sera que rola ?, alguma dica ?
PAULOOLIVEIRA 07/11/2012 22:56:56
#413756
Companheira...

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
MARCELOKROL 08/11/2012 07:05:01
#413759
o pior PAULOOLIVEIRA é que existe produtos que iniciam com o 2, são muitos raros, mais existe, ate hoje me deparei apenas uma vez com este fato, era uma lampada economica da china, mais o melhor metodo é usar o que voce falou um campo com (pesagem <s/n>)

ate mais
FEDERHEN 08/11/2012 08:06:08
#413763
Os 3 primeiros digidos do código ean13 indicam o pais de origem do produto. é muito provavem que existam codificações iniciando com 2.
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...
LIZA 08/11/2012 15:23:36
#413811
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...
NICOLLAS2 08/11/2012 15:39:05
#413819
Resposta escolhida
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 & [Ô][ô]

LIZA 08/11/2012 16:20:41
#413830
isso mesmo nicollas2, não vi outra maneira eficaz no momento.....
FOXMAN 08/11/2012 21:44:13
#413854
Considerando que no cadastro de produtos que são pesados , não são cadastrados codigo de barras e sim codigo interno, o correto seria buscar o produto pesado pelo codigo interno, caso encontre, faça o calculo e lança o produto.
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.
MOREIRA 08/11/2012 23:55:21
#413856
eu uso assim

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
LIZA 09/11/2012 09:04:44
#413867
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....
FOXMAN 09/11/2012 10:04:32
#413874
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..




Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas