Orçamento e venda e baixa em estoque..
09/12/2005
0
Gigatel
Posts
09/12/2005
Marlon Spiess
Mas seguindo uma linha geral:
- crie um field estoque reservado na table de produtos;
- ao gravar o orçamento atualize o estoque reservado;
- faça uma ´confirmação´ de orçamento, nesse momento se tranforma em pedido;
- no momento da emissão da nota fiscal le o pedido da baixa da qtde em estoque e no estoque reservado;
- no cancelamento / desistência do orçamento baixa o estoque reservado
Espero ter ajudado
09/12/2005
Gigatel
Mas seguindo uma linha geral:
- crie um field estoque reservado na table de produtos;
- ao gravar o orçamento atualize o estoque reservado;
- faça uma ´confirmação´ de orçamento, nesse momento se tranforma em pedido;
- no momento da emissão da nota fiscal le o pedido da baixa da qtde em estoque e no estoque reservado;
- no cancelamento / desistência do orçamento baixa o estoque reservado
Espero ter ajudado[/quote:afac43920e]
é um sistema para mono usuario.....
- crie um field estoque reservado na table de produtos;
O que seria este field ? e que valor ele receberia ?
- ao gravar o orçamento atualize o estoque reservado;
eu num entendí direito esta parte naum...pode explicar melhor ?
vlw...
09/12/2005
Marlon Spiess
mas isso é uma informação, não deve impedir o orçamento.
Espero ter ajudado
10/12/2005
Gigatel
mas isso é uma informação, não deve impedir o orçamento.
Espero ter ajudado[/quote:3555678e3d]
Achei interessante a idéia..más tem como vc me exemplificar...o que eu prescisaria ter na minha tabela para proceder ? veja um exemplo de tabela o que eu prescisaria á mais...
* Itens
* Valor bruto
* Valor Total
* Desconto
* Unidade
* Valor Unidade
* Data de cadstro
* Data de validade
* Quantidade
na questão da reserva..eu prescisaria de algum campo na tabela de estoque ou prescisaria criar uma nova tabela só para isto ..e como eu faria isto.....sinceramente eu sou bem crú nesta parte, pois nunca fiz nada parecido nesta questão de vendas...vlw..pela ajuda...vc num teria um exemplo pronto para mandar para mim não ?... eu estudando a função acho que daria menos trabalho...más vlw mesmo o que vc achar melhor é o que vale... t+
10/12/2005
Gigatel
10/12/2005
Edilcimar
Se vc quer guardar a mercadoria para o orçamento, existem diversas maneiras de fazer isto
1) Coloque um campo ´reserva´ para manter as quantidades do orçamento, porém no arquivo de orçamento, coloque uma ´datadevalidadedoorçamento´, cada vez que abrir o programa, quer para vender ou para fazer novo orçamento, o estoque será o campo ´estoque´ - o campo ´reserva´, e além disto tem que verificar no arquivo de reserva se existe algum item com data ´expirada´ para tirá-lo do campo reserva e passá-lo para o campo estoque, e apagar este orçamento.
2) Todo o processo pode ser feito no arquivo de orçamento, sendo que o estoque atual neste caso será a diferença entre o estoque constante nos produtos - o estoque constante no orçamento, não se esquecendo de que pode haver diversos orçamentos contendo o mesmo item, e de apagar o os orçamentos com data anterior a atual
3) Estes 2 processos podem sofrer diversos tipos de variações de forma a atender a necessidade específica de cada usuário, ficando mais os menos complexo
11/12/2005
Gigatel
o Orçamento eu faço sem dar baixa no estoque, fica mais ou menos assim...fiz uma tabela onde recebo dados do cliente...e outra onde recebe os dados das mercadorias ...vamos supor q o orçamento tenha o codigo ´100´ aí eu passo este mesmo código para um campo que eu chamo de GS_VENDA_CODACES ou seja se eu colocar 10 produtos ele terá 10 códigos ´100´ no campo GS_VENDA_CODACES, aí é só usar um filtro para lista-los corretamente...Agora que vem chumbo....tenho estes 10 ítens e naum foram dado saida no estoque... vamos supor que eu quero pegar este orçamento e tranformar em venda..como eu pegaria este montante ( 10 ítens ) e daria baixa no estoque com apenas um clicke no botão ?
vlw...
11/12/2005
Edilcimar
12/12/2005
Gigatel
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 ...
o que eu estava pensando é o seguinte na primeira tabela (BD_ORCA_ITENS) recebe os valores da segunta (DB_ESTOQUE) somente para fins de orçamento ou seja nada de baixa no estoque onde tem dez ficaria com 10....
digamos que o orçamento seja aceito, agora eu tenho que dar saida neste materia cotado....agora que o bicho pega...a primeira tabela recebeu vários itens, entaum agora tenho que atualizar o estoque..e aí qeu está o problema.. eu tenho que pegar o campo da primeira tabela GS_OOEI_CODPROD associar a campo da segunda tabela GS_EST_CODIGO e atualizar este campo GS_EST_QNT ..um por um... estou encontrando muita dificuldade nisto...vlw...t+
12/12/2005
Edilcimar
12/12/2005
Gigatel
tem como vc montar um código com base nestas inf que passei ? e tbm tem o lance do locate que num faço nem idéia de como colocar-lo aí...
12/12/2005
Edilcimar
with ibquery1 do
begin
first;
try
while not eof do
begin
codigoproduto := fieldbyname(´codigo´).value;
quantidade := fieldbyname(´qtd´).value;
with ib query2 do
begin
locate(´codigo´, codigoproduto,[lopartialkey]);
if fieldbyname(´codigo´).value = codigoproduto then
begin
edit;
fieldbyname(´estoque´).value = fieldbyname(estoque´).value - quantidade;
post;
end;
end;
next;
end;
end;
ibtransction2.commit;
except
showmessage(´problema com o banco de dados´);
ibtransaction2.rollback;
end;
12/12/2005
Gigatel
begin with BD_VENDA_ITENS do begin First; try 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 begin locate(´codigo´, codigoproduto,[lopartialkey]); if fieldbyname(´codigo´).value = codigoproduto then begin edit; fieldbyname(´estoque´).value = fieldbyname(estoque´).value - quantidade; post; end; end; next; end; end; DM1.IBTransaction1.CommitRetaining; except showmessage(´problema com o banco de dados´); DM1.IBTransaction1.rollback; end;
dá uma confirida..
12/12/2005
Gigatel
begin with BD_VENDA_ITENS do begin First; try 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 begin locate(´GS_VEI_CODPROD´, BD_VENDA_ITENSGS_VEI_CODPROD.Value,[lopartialkey]); 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;
e deu este erro
[img][URL=http://imageshack.us][img:0a8a673920]http://img216.imageshack.us/img216/4946/imagem9nn.jpg[/img:0a8a673920][/URL][/img]
com certeza deve ser alguma coisa entre as tabelas...
13/12/2005
Edilcimar
Clique aqui para fazer login e interagir na Comunidade :)