AJUDA COM MYSQL

FABRICIOWEB 07/01/2016 19:17:24
#455863
Galera como fazer uma função onde se o item ja esta incluso no banco de dados exemplo codido da venda 00000001 produto tal ao envés de adicionar 2 vezes o mesmo produto no grid ele apenas add a quantidade segue a imagem que esta com 2 produtos iguais no grid
F001E 08/01/2016 08:26:13
#455882
Parece não ser o mesmo produto pois no campo código no Grid esta 6 e 7.
KURTGU 08/01/2016 08:38:33
#455884
em vb.net eu faco isso em alguns dos meu sistemas de caixa faca um for para percorrer o datagrid, e localizar e atualizar o item quantidade do produto...
FABRICIOWEB 08/01/2016 10:17:39
#455891
No campo codigo realmente e diferente mas o campo codig e igual
NILSONTRES 08/01/2016 10:23:39
#455893
No meu caso, e acredito que em geral, o sistema repete o item normalmente.
O que eu faço é dar a opção de inserir ou não repetidamente, o cliente pré configura isso.
Porque isso ?, nos locais de grande movimento os caixas precisam de agilidade e ficar vendo isso atrasa, então vai lançando do jeito que vem.
Observe, em grandes redes de super mercados é assim.
ACCIOLLY 08/01/2016 12:18:16
#455901
Eu te daria a opção de ser usado o Distinct do MySql mas pra isso os campos teriam que estar todos duplicados, o que não é o seu caso. Até porque a quantidade que você tem cadastrada também está diferente.
a melhor solução como o KURTGU falou é usar um loop pra eliminar as linhas repetidas. Mas uma dúvida me surge agora, na imagem o que se ve é que no primeiro registro vc tem 10 unidades e no segundo 5. esta quantidade está correta no estoque? senão sugiro rever a estrutura do banco, pois mesmo que seja feito um enfeite com um loop, isso pode te dar uma dor de cabeça medonha no futuro.
FABRICIOWEB 08/01/2016 16:46:03
#455907
o produto e dado baixa no estoque em automatico quando add no grid ja vai para outro banco de vendas a quantidade de itens que esta no grid e a quantidade retirada do estoque
KURTGU 08/01/2016 17:13:21
#455908
Citação:

:
o produto e dado baixa no estoque em automatico quando add no grid ja vai para outro banco de vendas a quantidade de itens que esta no grid e a quantidade retirada do estoque




Um erro seu, voce so pode dar baixa ao finalizar a venda, pois no meio do caminho ela pode ser cancelada...
FABRICIOWEB 08/01/2016 17:34:36
#455909
Se ela for cancelada por perca de energia quando o sistema iniciar novamente ela volta o estoque ou ate por erro do usuario ela volta ao normal o estoque esse banco e temporario so depois da escolha do pagamento ele vai para o banco certo
NILSONTRES 08/01/2016 17:58:22
#455911
Citação:

Se ela for cancelada por perca de energia quando o sistema iniciar novamente ela volta o estoque ou ate por erro do usuario ela volta ao normal o estoque esse banco e temporário so depois da escolha do pagamento ele vai para o banco certo


Para isso é que se utiliza transações em banco de dados.
Só grava após o Transacao.Commit, pessoal vamos atentar para transações, sistemas sem transações é uma bomba relógio.
ACCIOLLY 09/01/2016 10:58:20
#455916
então o que você quer é caso o usuário volte a escolher o mesmo produto na hora da venda seja realizada apenas uma soma da quantidade na grid? Não acho que seja nessessário essa operação. Se fosse assim caixas de supermercado emitiriam comprovantes muito menores! rsrsrsrs
Mas é possível. No botão adicionar vc coloca um loop (For) pra percorrer todas as linhas da grid. Dentro desse loop vc coloca uma estrutura de decisão (IF) que pergunte se dentro da célula corrente o valor é igual ao codig. Se for igual apenas dá um update com um sql de soma:

UPDATE suaTabela SET seucampo = seucampo + a_quantidade_desejada WHERE sua_condicao


senão vc só faz um INSERT como já está.

pra fazer um loop vc deve recuperar a quantidade de linhas que tem na sua grid e guarda-la em uma variável do tipo inteiro

Dim qtlinhas As Integer = SeuGrid.Rows.Count


então viria o loop

For i As Integer = 0 To qtlinhas - 1
If suagrid.Row(i).Colums(1).Value = ao valor de codig Then
UPDATE suaTabela SET seucampo = seucampo + a_quantidade_desejada WHERE sua_condicao
Else
INSERT INTO ...
End If
Next i


Olha cara faz bastante tempo que não utilizo mais o vb6 como IDE. Hoje trabalho com .NET e Java. Mas a lógica que te passei é essa. Cabe a você agora descobrir se é desta forma que recupera o valor da grid. O que sei é que a linha (Row) tem que ser recuperada com a variável i já que é um loop, e a coluna (Column) deve ser estática, o que no seu caso encontra-se na posição 1 da sua grid. Sabe-se que as colunas começam do 0 então a segunda coluna é a 1.

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