ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Etiqueta balança
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Automação Comercial
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Sex Fev 08, 2008 5:32 pm    Assunto: Etiqueta balança Responder com Citação

No meu sistema já esta sendo lido o peso da balança utilizando o ACBRBal, agora preciso ler o peso atraves da etiqueta do produto impressa na balança toledo prix 4.
alguém pode me ajudar?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
vitoraraujo
Novato
Novato


Registrado: Sexta-Feira, 8 de Fevereiro de 2008
Mensagens: 23

MensagemEnviada: Sex Fev 08, 2008 7:51 pm    Assunto: Responder com Citação

Amigo não tem muito segredo não, basta você ver o padrão escolhido pela balança e retirar as informações das etiquetas.
Como funciona:

Ex: Na Toledo Prix4 vem por default a seguinte configuração o número 2 como identificador de produto de pesagem nos próximos 4 digitos vem o código do produto acompanhado de 2 zeros, e os próximos 5 digitos vem o preço do produto e o último digito é apenas o digito verificador do EAN13 (Padrão de código utilizado pela balança). Dai é só verificar se o código tem tamanho de 13 digitos e começa com o número 2.

2000100001006 (Ps. talvez o digito verificador esteja errado pois não fiz o calculo para o mesmo).

Dai sabemos que é produto de pesagem pois tem 13 digitos e começa com o número 2.

Sabemos o código do produto retirando os 4 próximo digitos digitos (código 0001).

Excluimos os próximos 2 digitos que são dois zeros.

Sabemos que o preço do produto é R$ 1,00 pelos próximos 5 digitos (00100) .

Dai é só tratar isso em sua aplicação.

Lógico que se pode configurar na balança outras configurações (muito fácil pelo programa MGV5 e um pouco mais complicado pela balança).

Eu sinseramente prefiro trabalhar com a seguinte configuração
DCCCC00PPPPPV

D=Digito identificador de produto de pesagem
C=Código do produto
0=Apenas zero para complementar o código
P=Peso do produto no formato 5,2 (Cinco digitos com duas casas decimais).

Para maior esclarecimento olhe no manual que acompanha a balança, que é facilmente baixado no site da Toledo (pelo menos era).
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Sáb Fev 09, 2008 10:02 am    Assunto: Responder com Citação

beleza, me deu uma luz. mas ainda tá meio confuso, será que eu conseguiria algum exemplo de como fazer isso?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Sáb Fev 09, 2008 10:14 am    Assunto: Responder com Citação

o preço do produto eu entendi mas fiquei na dúvida quanto ao peso do produto.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
vitoraraujo
Novato
Novato


Registrado: Sexta-Feira, 8 de Fevereiro de 2008
Mensagens: 23

MensagemEnviada: Sáb Fev 09, 2008 10:32 am    Assunto: Responder com Citação

Olha vai depender de como está configurado a sua balança ai.
Ela pode esta configurada pra colocar nos últimos (tirando o digito verificador) 5 digitos o preço do produto (vem por default assim) ou pode colocar o peso do produto (tem que alterar a configuração).

No primeiro caso pra você descobri a quantidade você teria que ler o preço da etiqueta e dividir pelo preço do produto no banco de dados, no segundo caso bastaria você pegar o peso e colocar no campo quantidade do seu PDV.

Pra você entender melhor procura na internet o manual da prix4 no site da Toledo, lá no final (eu acho) tem as configurações de etiquetas aceitas por ela, são umas dez se não me engano.

Qualquer coisa estamos ai.

Atenciosamente Vitor Araújo Alcântara.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Sáb Fev 09, 2008 10:45 am    Assunto: Responder com Citação

baixei Manual do Usuário PRIX4 mas não resolveu muito não...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Sáb Fev 09, 2008 12:09 pm    Assunto: Responder com Citação

cheguei no seguinte código:

codbarras:=EditCodigo.Text;
if length(codbarras) = 13 then
begin
//verifica se o primeiro digito é 2(produto pesado)
pesagem:=copy(codbarras,1,1);
//le o código do produto com 4 digitos
codpesagem:=copy(codbarras,2,4);
if DMTabelas.ibproduto.locate('CodBarras',codpesagem,[]) = true then
unitpeso:=DMTabelas.ibprodutoVALORVENDA.Value;
//le o total do item
totpesagem:=copy(codbarras,7,6);
totpesagemfloat:=strtofloat(totpesagem);
//
totpesagem:=formatfloat('###,###,##0.00',totpesagemfloat);
//
qtdencontrada:=floattostr(strtofloat(totpesagem)/unitpeso);
if pesagem = '2'then//produto pesado
begin
EditQtd.Value:=strtofloat(qtdencontrada);
end;
end;

------------------
exemplo de código de etiqueta(feito no olho):2333300003002

O problema está no Total do item. como vou pegar esse valor meu Deusssssssssssss...

fiz o teste com 300(seria trez reais) mas pega trezentos... como vou saber quando é trez ou trezentos ou 0,50 o total do item?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
vitoraraujo
Novato
Novato


Registrado: Sexta-Feira, 8 de Fevereiro de 2008
Mensagens: 23

MensagemEnviada: Sáb Fev 09, 2008 12:11 pm    Assunto: Responder com Citação

Você tem algum exemplo de alguma etiqueta ai pra gente trabalhar em cima dela?

Se sim posta ai uma exemplo da etiqueta (Acho que no manual tem alguns). Dai manda também o código e preço do produto no banco, o EAN13 (código de barras gerado pela etiqueta) acompanhado to valor total e peso que deu na etiqueta, pra ficar mais fácil de eu tentar explicar para o colega como a gente trataria esse código no PDV.

É que eu não tenho nenhum aqui comigo, mais da uma olhada ai no trecho do código (em Delphi) que tem no meu PDV.

Código:
        TextoCodigo := EditPesq.Text;
        if (Length(TextoCodigo) = 13) and (TextoCodigo[1] = '2') then//Verifica se é produto de pesagem
        Begin
          Case DmDados.TbConfigTipobal.Value of
            2://Firizola
            Begin
              CurEditQtd.Value := StrToFloat(Copy(TextoCodigo,8,5)) /1000;//Coloco a quantidade no Edit de quantidade
              EditPesq.Text := Copy(TextoCodigo,4,4);//Coloco o código do produto no Edit de código do produto
            end;
            1://Toledo
            Begin
              CurEditQtd.Value := StrToFloat(Copy(TextoCodigo,8,5)) /1000;//Coloco a quantidade no Edit de quantidade
              EditPesq.Text := Copy(TextoCodigo,2,4);//Coloco o código do produto no Edit de código do produto
            end;
          end;
        end;


Tentando explicar o código:

Eu peguei o código lido pela etiqueta e gravei em uma váriavel
"TextoCodigo := EditPesq.Text;"

Eu peguei o edit responsavel por inserir o código do produto e verifiquei se tinha 13 digitos e começava com o número 2
"if (Length(TextoCodigo) = 13) and (TextoCodigo[1] = '2') then"

Eu peguei as partes referente ao peso do produto e coloquei no edit de quantidade
"CurEditQtd.Value := StrToFloat(Copy(TextoCodigo,8,5)) /1000;"
Do oitavo digito ao décimo segundo digito

Eu peguei as partes referente ao código do produto e coloquei no edit de pesquisa (sobrepondo o código de treze digitos pelo código de 4 digitos (no meu caso))
"EditPesq.Text := Copy(TextoCodigo,2,4);"
Do segundo digito ao quinto digito.

Após feito esse tratamento prossigo com o processo de inclusão de produto nos itens da venda.

Viu é só pegar as partes do código e tratar na sua aplicação, no caso do meus sistema sempre configuro as balanças pra imprimir o peso do produto em vez do preço nas etiquetas, pois pode ocorrer de o preço na balança está destatualizado com o preço do banco de dados, o que geraria um erro na baixa do estoque.

Mais continuo insistindo, da uma lida com calma no manual que tem as possiveis configurações de códigos que as etiquetas irão assumir.
Pra ficar mais fácil pra você eu procurei no manual está na página 58 "COMPOSIÇÃO DO EAN-13"

No exemplo acima trata a composição B da etiqueta no modo peso da balança.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
vitoraraujo
Novato
Novato


Registrado: Sexta-Feira, 8 de Fevereiro de 2008
Mensagens: 23

MensagemEnviada: Sáb Fev 09, 2008 12:25 pm    Assunto: Responder com Citação

Respondi sem ler o tópico anterior, mais pelo que etendi você está pegando o código 2333300003002 onde

2 é o digito que indica produto de pesagem
3333 é referente ao código do produto
00 são os dois zeros que acompanham pra nada
00300 é referente ao preço total do produto
e 2 é apenas o digito verificador

no seu cado (etiqueta por preço em vez de peso) você teria que descobri a quantidade do produto e não o total do produto.
Seria algo assim o produto (de código 3333) no banco custa 3,00 o Kilo logo seria (00300 / 100 ) / 3,00 = 1 Kilo vendido.
se o preço do produto (de código 3333) fosse 1,50 o Kilo logo seria (00300 / 100) / 1,50 = 2 Kilos vendidos.
e assim vai.

Etenda que em caso de etiquetas que imprimam o preço em vez do peso no EAN-13, você irá ter que descobrir a quantidade de seu produto que irár ser dado baixo de acordo com o preço do produto que está em seu banco de dados.

Por isso que uso a configuração da etiqueta que imprima por peso em vez de imprimir por preço, pois caso o preço na balança esteja desatualizado com o do seu banco de dados irá gerar uma baixa no estoque errada.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Sáb Fev 09, 2008 12:30 pm    Assunto: Responder com Citação

no meu exemplo considerei a opção 'A' da balança

A = 2CCCC0TTTTTTD

onde:

2 = (produto pesado)
C = código do produto
T = Total a pagar
D = dígito verificador

não tenho agora uma etiqueta de balança mas na segunda feira vou providenciar...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Sáb Fev 09, 2008 12:32 pm    Assunto: Responder com Citação

sim vitoraraujo, no meu código oque estou 'achando' é mesmo a quantidade = (totalitem/preço)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rafael1401
Novato
Novato


Registrado: Sábado, 2 de Fevereiro de 2008
Mensagens: 12
Localização: Varginha-MG

MensagemEnviada: Dom Fev 10, 2008 11:50 am    Assunto: Responder com Citação

tudo bem fabio.

exemplo
no seu cadastro de produto
codigo: 1
unitario: 1,50

etiqueta da balanca
2000100005001

entao temos

o codigo inica com 2 e tem 13 digitos

do 2 ao 5 digito vc tem o codigo do produto.
do 8 ao 11 vc tem o valor total do produto.

entao vc localiza no teu cadastro o codigo e divide o valor total do produto pelo valor unitario que esta no teu cadastro de produto.
entao termos.

codigo: 0001
valor unitario: 1,50
valor total: 5,00
qtde: 3,33

qualquer coisa entre em contato.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Seg Fev 11, 2008 10:14 am    Assunto: Responder com Citação

Pessoal, peguei uma etiqueta de produto pesado contendo a seguinte estrutura:

Peso: 0,566 Kg
Preço/kg: 12,99
Tot: R$ 7,35

código: 2 051100 007350

1) Qual opção está essa balança? (de 'A' até 'E'), acredito que é 'A'
2) Fiz o teste mas da mesma forma que o teste anterior não consigo pegar o valor correto do preço total, agora está vindo como 735,00 ao invés de 7,35.

meu código está assim:

codbarras:=EditCodigo.Text;
if length(codbarras) = 13 then
begin
//verifica se o primeiro digito é 2(produto pesado)
pesagem:=copy(codbarras,1,1);
//le o código do produto com 4 digitos
codpesagem:=copy(codbarras,2,4);
if DMTabelas.ibproduto.locate('CodBarras',codpesagem,[]) = true then
unitpeso:=DMTabelas.ibprodutoVALORVENDA.Value;
//le o total do item
totpesagem:=copy(codbarras,8,5);
totpesagemfloat:=strtofloat(totpesagem);
//
totpesagem:=formatfloat('###,###,##0.00',totpesagemfloat);
//
qtdencontrada:=floattostr(strtofloat(totpesagem)/unitpeso);
if pesagem = '2'then//produto pesado
begin
EditQtd.Value:=strtofloat(qtdencontrada);
end;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabio.avila
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 11 de Junho de 2007
Mensagens: 292

MensagemEnviada: Seg Fev 11, 2008 10:59 am    Assunto: Responder com Citação

vitoraraujo escreveu:

Sabemos que o preço do produto é R$ 1,00 pelos próximos 5 digitos (00100) .


como meu sistema vai saber se o preço total do produto é 1,00 ou 100,00?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
vitoraraujo
Novato
Novato


Registrado: Sexta-Feira, 8 de Fevereiro de 2008
Mensagens: 23

MensagemEnviada: Seg Fev 11, 2008 1:15 pm    Assunto: Responder com Citação

Caro fabio é so você pegar o valor e dividir por 100 que da o valor correto .
2 05110 0 00735 0 (do exemplo da sua etiqueta)

Pega os útimos cinco digitos antes do digito verificador e divide por cem.

00735 / 100 = 7,35

no segundo caso

"Sabemos que o preço do produto é R$ 1,00 pelos próximos 5 digitos (00100) ."

00100 / 100 = 1,00

Viu como é simples.

Quanto a configuração da balança, ela por default vem na configuração A.

PS:
Agora se fosse por peso você iria dividir por 1000 pois a balança Toledo Prix 4 trabalha com 3 casas decimais.

Qualquer coisa estamos ai
Atenciosamente Vitor Araújo Alcântara.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Automação Comercial Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB