Orçamento e venda e baixa em estoque..
09/12/2005
0
Gigatel
Posts
13/12/2005
Gigatel
with BD_VENDA_ITENS do begin First; try while not eof do begin BD_VENDA_ITENS.Edit; BD_VENDA_ITENSGS_VEI_CODPROD.Value := Fieldbyname(´GS_VEI_CODPROD´).value; BD_VENDA_ITENSGS_VEI_QNT.Value := fieldbyname(´GS_VEI_QNT´).value; with BD_ESTOQUE do begin Close; SQL.Clear; SQL.Add(´select * from ESTOQUE where GS_EST_CODIGO=´+inttostr(BD_VENDA_ITENSGS_VEI_CODPROD.Value)); Open; if fieldbyname(´GS_VEI_CODPROD´).value = BD_VENDA_ITENSGS_VEI_CODPROD.Value then begin Edit; Fieldbyname(´GS_EST_QNT´).value := fieldbyname(´GS_EST_QNT´).value - BD_VENDA_ITENSGS_VEI_QNT.Value; post; end; end; next; end; DM1.IBTransaction1.CommitRetaining; except showmessage(´problema com o banco de dados´); DM1.IBTransaction1.rollback; end; end; end;
[img][URL=http://imageshack.us][img:a7a27706e5]http://img236.imageshack.us/img236/9666/imagem5up.jpg[/img:a7a27706e5][/URL][/img]
Este é c erro que dá....
13/12/2005
Gigatel
BD_VENDA_ITENS.Edit; BD_VENDA_ITENSGS_VEI_CODPROD.Value := Fieldbyname(´GS_VEI_CODPROD´).value; BD_VENDA_ITENSGS_VEI_QNT.Value := fieldbyname(´GS_VEI_QNT´).value;
a tabela tem que ter estar em modo de edição ? pois coloquei por minha conta no seu código naum tinha... num sei se vc notou no meu código, o primeiro campo recebe o mesmo campo novamnte ? pois no código esta assim...vlw..
13/12/2005
Edilcimar
este aqui não precisa de edit pois é o de orçamento, vc só precisa editar o de produtos para poder alterar o valor do estoque
13/12/2005
Gigatel
[img][URL=http://imageshack.us][img:375435f20f]http://img209.imageshack.us/img209/3773/imagem3kf.jpg[/img:375435f20f][/URL][/img]
13/12/2005
Gigatel
Ué ?
estranho...
más a mensagem é assim
project raised excpction class EIBClientError with message ´ não em modo de edição". Processs stopped..
Algo parecido com isto..
13/12/2005
Edilcimar
13/12/2005
Romulocpd
Bom, deixa eu deixar minha experiência aqui pois já discuti muito sobre este assunto. No sistema da empresa que trabalho (VB com SQL Server, Delphi é para MINHA EMPRESA!) existem:
ESTOQUE COMPRADO
ESTOQUE RESERVADO
ESTOQUE ATUAL
----------------------------
ESTOQUE DISPONIVEL = ATUAL + COMPRADO - RESERVADO
Aqui não guardamos campos ´estáticos´ com os valores calculados pois isso fica muito sujeito a falhas (apear que usando Triggers bem definidas dá pra brincar bastante!). Desta forma quando o usuário precisa saber quando deste produto está reservado (RESERVADO = Cliente fez o pedido porém o pedido ainda não foi faturado (emitido nota fiscal)) o sistema vai e roda a tabela ITENS_PEDIDO somando q quantidade somente de pedidos que não foram cancelados e que foram faturados.
Desta forma temos a posição do estoque on-line, sem problemas de cálculos errados. Com bons índices essa consulta demora menos que 1 segundo (e temos hoje no sistema 60 mil pedidos lançados, 156 mil itens de pedido de venda).
Acho que esta forma é a melhor, sendo que o PEDIDO ou ORÇAMENTo deve ter um campo STATUS pra saber se está aberto, impresso, faturado, cancelado, etc..
É isso ae gente, tá aí minha opinião!
Vlw!
13/12/2005
Gigatel
Me desculpe minha isnstencia... más não estou entendendo, o problema está nesta linha...se coloca o edit vc para não colocar se não coloca não funciona...sinceramente não estou entendendo...e tem no caso da linha abaixo se eu etou atribuindo valores a determinados campos eles tem sim que estar em modo de edição...se não é natural dar estes erros mesmo.. o código que inicialmente esta com erro é este..
while not eof do begin BD_VENDA_ITENSGS_VEI_CODPROD.Value := Fieldbyname(´GS_VEI_CODPROD´).value; BD_VENDA_ITENSGS_VEI_QNT.Value := fieldbyname(´GS_VEI_QNT´).value; with BD_ESTOQUE do
Aki está sem o edit ( BD_VENDA_ITENS)..
13/12/2005
Edilcimar
13/12/2005
Gigatel
Tudo bem , eu sei o que vc está dizendo eu tbm acho isto, más problema é que o código que vc me passou dá erro...e eu num estou sabendo sana-lo.. é só isso, a solução do problema...
13/12/2005
Edilcimar
BD_VENDA_ITENSGS_VEI_CODPROD.Value := Fieldbyname(´GS_VEI_CODPROD´).value;
vc está pegando o vendas_itensgs (suponho que seja o arquivo de orçamento) e alterando o seu valor para o valor contido no vei_codprod
13/12/2005
Gigatel
OI blz ? gosto dá idéia e tem um colega que apresentou uma idéia similar más o problema e que eu não sei os procedimento...quantas tabelas prescisaria qual os campos, e principalmente os códigos o edicilmar esta me ajudando no lance de atualizar o estoque, mesmo na sua idéia prescisaria tbm de fazer isto..o problema é só este..tenho pouca experiencia nesta área de vendas por isso a inssitencia de uma idéia concreta de funcionamento... comprei até um cdzinho com uns fontes sobre isto más adivinha ...um lixo total, nada que realmente interesse...
más vlw mesmo pela idéa...quando num estou aki no fórum estou pesquisando na internet más é díficil achar algo como isso que estou procurando...flw.
13/12/2005
Edilcimar
13/12/2005
Gigatel
más a ideiá é esta ou não... eu tenho ou não alterar este valor, pois a função é sua, só coloquei as minhas tabelas, por isso num estou entendendo muita a pergunta... e aki estão a descrição de cada tabela..
que vou prescisar neste módulo...Tento a tabela qye se chama BD_ORCA_ITENS nela tenho os seguintes campos.... GS_OOEI_QNT - recebe quantidade GS_OOEI_UNIT - o tipo de unidade GS_OOEI_CAD_SERIE - o n de série GS_OOEI_CODIGO - código gerado pela tabela GS_OOEI_DESCRICAO - recebe descrição GS_OOEI_VALOR_UNIT - valor unitário GS_OOEI_VALOR_TOTAL - valor total GS_OOEI_CODACES - recebe o código da Ordem de serviço GS_OOEI_CODPROD - recebe o código do produto que vem do estoque... e tenho a tabela de estoque que se chama BD_ESTOQUE e tenho este campos que julgo nescessarios para esta transação GS_EST_CODIGO - código do produto ( gerado pelo sistema ) GS_EST_QNT - onde tem a quantidade atual no estoque ...
acho que esclarece mais
Clique aqui para fazer login e interagir na Comunidade :)