Eu aqui de novo.
No codigo aqui apresentado, ao qual faz parte de meu PDV. Ele repoe meu Estoque de forma automatica ao ser cancelada a venda.
Esta tudo certinho. Porem eu modifiquei todo o PDV e criri no cadastro de produtos 4 VALIDADES + 4 QUANTIDADES e um campo QNT TOTAL, que e a soma das 4 QNTs.
Toda vez que coloco um produto na caixa de listagem, pois o mesmo e pesquisado pelo seu codigo de barras, abre-se antes um outro form chamado A4_Validades. Neste Novo Form eu escolho qual a validade que sera usada pelo produto e conforme a validade escolhida ( VAl1, VAL2, VAL3 , VAL4 ) é subtraido da QNT especifica. Ao Clicar Botao OK, esse Form Validade e fechado e a macro antes iniciada e finalizada, o produto posto entao na caixa de listagem, juntamente com a validade escolhida.
Sendo assim eu sei qual validade foi naquele produto que vendi, e uma forma de controle meu. Isso me garante manter um controle mais apurado das validades que estao por vencer, e faz com que eu venda as validades maiores por ultimo.
Explicado entao eu preciso que haja uma modificacao no comando abaixo, da qual se baseia do Campo Estoque geral.
Preciso que na reposicao de estoque seja voltado o produto de onde ele saiu, os de QNT1, ou de QNT2 ...
Aqui tb no meu Cdastro de produtos, eu coloquei de uma forma que se caso alguma QNT 1 a 4 = 0 entao o campo Validade 1 a 4 = NULL, conforme se zero.
Sendo assim se no estoque houver apenas 1 item naquela validade escolhida na venda, no cancelamento teria que voltar tb a validade.
O comando abaixo esta todo certo, mas nao se baseia da forma que quero.
Se puderem ajudar agradeço.
Andre
No codigo aqui apresentado, ao qual faz parte de meu PDV. Ele repoe meu Estoque de forma automatica ao ser cancelada a venda.
Esta tudo certinho. Porem eu modifiquei todo o PDV e criri no cadastro de produtos 4 VALIDADES + 4 QUANTIDADES e um campo QNT TOTAL, que e a soma das 4 QNTs.
Toda vez que coloco um produto na caixa de listagem, pois o mesmo e pesquisado pelo seu codigo de barras, abre-se antes um outro form chamado A4_Validades. Neste Novo Form eu escolho qual a validade que sera usada pelo produto e conforme a validade escolhida ( VAl1, VAL2, VAL3 , VAL4 ) é subtraido da QNT especifica. Ao Clicar Botao OK, esse Form Validade e fechado e a macro antes iniciada e finalizada, o produto posto entao na caixa de listagem, juntamente com a validade escolhida.
Sendo assim eu sei qual validade foi naquele produto que vendi, e uma forma de controle meu. Isso me garante manter um controle mais apurado das validades que estao por vencer, e faz com que eu venda as validades maiores por ultimo.
Explicado entao eu preciso que haja uma modificacao no comando abaixo, da qual se baseia do Campo Estoque geral.
Preciso que na reposicao de estoque seja voltado o produto de onde ele saiu, os de QNT1, ou de QNT2 ...
Aqui tb no meu Cdastro de produtos, eu coloquei de uma forma que se caso alguma QNT 1 a 4 = 0 entao o campo Validade 1 a 4 = NULL, conforme se zero.
Sendo assim se no estoque houver apenas 1 item naquela validade escolhida na venda, no cancelamento teria que voltar tb a validade.
O comando abaixo esta todo certo, mas nao se baseia da forma que quero.
Se puderem ajudar agradeço.
Andre
- Código:
Sub fncCancelarVenda() 'Essa rotina nao sera mais usada devido estar fazendo a reposicao de foma manual
Dim rs, rsE As DAO.Recordset
Dim F As Integer
DoCmd.RunCommand acCmdSaveRecord
'Abre uma consulta buscando todos os produtos lançados na ordem de vendas atual.
Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblVendaDet WHERE vendaID = " & Me.txtidVenda & "")
Do While Not rs.EOF 'Irá repetir em quanto estiver registros na consulta feita anteriormente
F = Nz(DCount("*", "tblCad_Produto", "codigoBarra = '" & rs!produtoID & "'"), 0) 'Aqui eu realizo uma verificação para saber se o produto ja tem algum estoque
If F > 0 Then 'Se ja tiver algum estoque, irei apenas atualizar o estoque
Set rsE = CurrentDb.OpenRecordset("SELECT * FROM tblCad_Produto WHERE codigoBarra = '" & rs!produtoID & "'")
rsE.Edit
rsE("estoqueGeral") = rsE!estoqueGeral 'Coloco o estoque antigo no campo estoque anterior
rsE("estoqueGeral") = rsE!estoqueGeral + rs!qtdVenda 'Somo o estoque antigo + a qnt pedida
rsE.Update
Else 'Se não tiver estoque, terei que inserir o produto e lançar seu estoque
Set rsE = CurrentDb.OpenRecordset("tblCad_Produto")
rsE.AddNew 'Adiciono o registro na tabela e insiro os valores dos campos
rsE("codigoBarra") = rs!estoqueGeral
rsE("EstoqueGeral") = rs!qtdVenda
rsE.Update
End If
rs.MoveNext
Loop
'Ao final, finalizo todas as conexões abertas e limpo a memoria utilizada para armazenar as consultas
rs.Close
Set rs = Nothing
rsE.Close
Set rsE = Nothing
End Sub