Array
(
)

Orçamento e venda e baixa em estoque..

Gigatel
   - 09 dez 2005

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+


Marlon Spiess
   - 09 dez 2005

Bom, em primeiro lugar, vc deve verificar qual a necessidade do seu ´cliente´, pois dependendo da estrutura física, qtde de pessoas, modo operacional, etc.....

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


Gigatel
   - 09 dez 2005


Citação:
Bom, em primeiro lugar, vc deve verificar qual a necessidade do seu ´cliente´, pois dependendo da estrutura física, qtde de pessoas, modo operacional, etc.....

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



é um sistema para mono usuario.....




#Código


- crie um field estoque reservado na table de produtos;


O que seria este field ? e que valor ele receberia ?

#Código

- ao gravar o orçamento atualize o estoque reservado;


eu num entendí direito esta parte naum...pode explicar melhor ?

vlw...


Marlon Spiess
   - 09 dez 2005

é o seguinte, se vc faz o orçamento, não pode baixar o estoque pois o produto não saiu ainda, mas, vc deve deixar ele reservado para q não faça mais orçamentos q a qtde em estoque então: estoque disponivel pra venda é: saldo em estoque - estoque reservado

mas isso é uma informação, não deve impedir o orçamento.

Espero ter ajudado


Gigatel
   - 10 dez 2005


Citação:
é o seguinte, se vc faz o orçamento, não pode baixar o estoque pois o produto não saiu ainda, mas, vc deve deixar ele reservado para q não faça mais orçamentos q a qtde em estoque então: estoque disponivel pra venda é: saldo em estoque - estoque reservado

mas isso é uma informação, não deve impedir o orçamento.

Espero ter ajudado


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+


Gigatel
   - 10 dez 2005

Em meu estoque tenho um campo QUANTIDADE onde coloco o quanto tenho em estoque, no Orçamento eu tenho que subtrair o estoque ? estou tendo dúvidas, se num for assim eu prescisaria tbm de uma tabela só paraesta operação ? e depois como faria para fazer subtrair no estoque ? to meio perdido nisto...vou ser sincero estava prescisando de algo assim...alguém falar pra mim...faz x tabelas a primeira é blabla a segunda faz isso ....é porque num tenho nem ídeia de como começar isto e tbm tem o lance do estorno que eu presciso botar funcionar...desculpe a insitencia más tá osso...t+ vlw


Edilcimar
   - 10 dez 2005

Para fazer orçamento não ´guardo´ parte do estoque como reserva, dou o orçamento para o cliente com o ´enquanto durar o estoque´, portanto se ele voltar depois e eu já tiver vendido, não vai ter mais o produto para ele.
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


Gigatel
   - 11 dez 2005

Aí galera.. estou fazendo assim....

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


Edilcimar
   - 11 dez 2005

Coloque o código do produto, faça um locate na tabela produtos e dê baixa no estoque de acordo com o campo quantidade do orçamento


Gigatel
   - 12 dez 2005

Eu tenho uma parte no programa que funiona parcialmente e tem que funcionar basicamente o que vou prescisar na vendas...o 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 ...

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+


Edilcimar
   - 12 dez 2005

pegue a tabela orçamento e faça um while not eof, pegue o código do produto e a quantidade, vá para a tabela estoque, procure o código do produto, atualize o estoque.


Gigatel
   - 12 dez 2005


Citação:
pegue a tabela orçamento e faça um while not eof, pegue o código do produto e a quantidade, vá para a tabela estoque, procure o código do produto, atualize o estoque.


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


Edilcimar
   - 12 dez 2005

usando ibquery, onde ibquery1 é o orçamento e ibquery2 são os produtos

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;


Gigatel
   - 12 dez 2005

Acho que me perdí neste LOCATE...dá uma olhada num to sabe em qual das tabelas colocar

#Código


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


Gigatel
   - 12 dez 2005

Modifiquei deste jeito....

#Código


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



Clique na imagem para abrir em uma nova janela



com certeza deve ser alguma coisa entre as tabelas...


Edilcimar
   - 13 dez 2005

desculpe=me pelo locate, eu escrevi sobre ibquery como se fosse ibtable, em vez de locate coloque um select codigo, estoque from produtos where codigo =: codigoproduto


Gigatel
   - 13 dez 2005

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

#Código


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;


Clique na imagem para abrir em uma nova janela


Este é c erro que dá....


Gigatel
   - 13 dez 2005

Dá uma olhada nesta linha...

#Código


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


Edilcimar
   - 13 dez 2005

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


Gigatel
   - 13 dez 2005

agora dá este erro
Clique na imagem para abrir em uma nova janela


Edilcimar
   - 13 dez 2005

não dá para ver a imagem!