Orçamento e venda e baixa em estoque..

09/12/2005

0

e aí ? alguém poderia me dar uma idéia de como resolver este problema...tenho um sistema que que vair gerar um orçamento a partir de um estoque cadastrado....e este orçamento tem uma tabela para isto...exemplo...o fulano me pede um orçamento de um Micro...aí coloco todos os ítens nescessários HD, placa e ETC...a primeira pergunta vem aí ,neste procedimento é nescessário dar baixa no estoque ? se a resposta for não, como faria para aproveitar este orçamento posteriormente..exemplo o cliente fez o orçamento hoje comigo ele vem no outro dia para fechar o negócio, aí busco o orçamento que fiz para ele eu clicaria em um botão Venda...aí os dados naquela orçamento teriam que dar baixa nos ítens no estoque...ou me indiquem um processo menos complicado....flw...t+


Gigatel

Gigatel

Responder

Posts

13/12/2005

Gigatel

Veja o código: tem como vc comenta-lo para melhor comprenção ? modifiquei ve se funciona deste jeito e está dando um erro tbm...

  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á....


Responder

13/12/2005

Gigatel

Dá uma olhada nesta linha...

  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..


Responder

13/12/2005

Edilcimar

BD_VENDA_ITENS.Edit;
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


Responder

13/12/2005

Gigatel

agora dá este erro
[img][URL=http://imageshack.us][img:375435f20f]http://img209.imageshack.us/img209/3773/imagem3kf.jpg[/img:375435f20f][/URL][/img]


Responder

13/12/2005

Edilcimar

não dá para ver a imagem!


Responder

13/12/2005

Gigatel

não dá para ver a imagem!


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..


Responder

13/12/2005

Edilcimar

o arquivo de orçamento, não precisa estar no modo de edição, quem tem que estar é o arquivo de produtos pois é nele que vc vai alterar o estoque


Responder

13/12/2005

Romulocpd

Olá gente,

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!


Responder

13/12/2005

Gigatel

o arquivo de orçamento, não precisa estar no modo de edição, quem tem que estar é o arquivo de produtos pois é nele que vc vai alterar o estoque


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)..


Responder

13/12/2005

Edilcimar

Vamos por partes, o código que eu mandei é para pegar o arquivo de orçamento lê-lo e dar baixa no estoque, não é para incluir ou modificar nada no orçamento, é claro que se quiser alterar algo no arquivo de orçamento tem que usar um edit, mas inicialmente vc perguntou por pegar um arquivo de orçamento e transformá-lo em venda, e neste caso eu não tenho que editar nada no mesmo.


Responder

13/12/2005

Gigatel

Vamos por partes, o código que eu mandei é para pegar o arquivo de orçamento lê-lo e dar baixa no estoque, não é para incluir ou modificar nada no orçamento, é claro que se quiser alterar algo no arquivo de orçamento tem que usar um edit, mas inicialmente vc perguntou por pegar um arquivo de orçamento e transformá-lo em venda, e neste caso eu não tenho que editar nada no mesmo.


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...


Responder

13/12/2005

Edilcimar

o seu problema é
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


Responder

13/12/2005

Gigatel

Olá gente, 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!


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.


Responder

13/12/2005

Edilcimar

para fazer o controle com ou sem alocamento de estoque para orçamento, o procedimento básico é o mesmo, o que vai acontecer é que para alocar um produto, você vai ter mais trabalho, e os orçamento não transformados em venda terão de ser desalocados depois de um determinado período


Responder

13/12/2005

Gigatel

o seu problema é 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


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


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar