Uma outra alternativa de controlar os itens da venda e o estoque.

11/02/2010

3

Imagine esta situação: O vendedorX esta tirando pedido para o clienteX e ele verificou que consta 10 itens do produto no estoque e incluiu no pedido 8 itens e este cliente leva 30 minutos para finalizar o pedido, mas "15 minutos antes" o vendedorZ finalizou um pedido para o clienteZ que levou 10 itens do mesmo produto, ou seja, zerou o estoque. Conclusão o clienteX passa no caixa para finalizar o pedido e receber os produtos, mas isso não ocorerrá, porque será informado que o estoque esta zerado, porque o clienteZ comprou todo os itens do estoque. E isso pode causar transtorno! Por causa disso, pensei em criar a tabela Reserva que além de reservar os itens da venda, controla o seu andamento. Que explicarei logo abaixo:   O que eu estou querendo fazer é dar baixa no estoque quando Finalizar a Venda. Ao incluir um novo pedido no banco o status fica como Pendente e o sistema reserva os itens na tabela Reserva, mas não da baixa no estoque. Se o cliente desistir do pedido, então não precisa retornar a quantidade dos itens do pedido no estoque, porque não foi dado baixa no estoque. O caixa que é responsável por Finalizar a Venda e automaticamente o sistema da baixa no estoque.   Ao consultar o estoque é informado para o usuário: Estoque Atual, Reservado e Disponível. Com esta tabela de "Reserva" tambem se controla o andamento dos itens do pedido: 1) Qual é a data que foi retirado o item do pedido (retirada parcial do pedido) ou quando vai ser retirado. 2) Esta retirada vai ser no balção, Entrega ou até mesmo uma Encomenda (o cliente pagou pelo o produto, mas esta encomendando). 3) Tambem controla a quantidade a ser retirada, p. ex.: o cliente solicitou 10 itens do produtoX, mas será retirado no balcão 2 e o restante (8) a empresa vai entregar no dia Y. Ou seja, controla a quantidade unitária do item do pedido solicitado pelo o cliente.   Bom é a primeira vez que estou fazendo desta forma. O controle de vendas era mais simples, mas hoje estou necessitando alterar a forma de como é controlado os itens do pedido e seu estoque.
Alguem utiliza esta solução? O que eu gostaria de saber se é isso mesmo e se não vou ter problemas com este tipo de controle? O que vocês fazem nesta situação? Como eu já disse é a primeira vez que estou desenvolvendo desta forma, pode ser que isso na prática não funciona. Qualquer ajuda é sempre muito bem vindo!!!   Obrigado!
 
Responder

Posts

11/02/2010

Thiago Santana

Rogério vc pensou bem e eh uma boa para tentar se sobresair de uma eventual complicação, na teoria está td blza... Terá tentar isso aí na prática! Coloque a extrutura das tabelas para que possamos analisar e te ajudar! AbraçoO
Responder
não crie uma tabela reserva. crie um campona tabela estoque.

ESTOQUE
------------
id_estoque (PK)
id_prdouto (FK)
saldoatual
reservado


na sua tabela de itens de venda, crie um campo para a quantidade entregue.

VENDAITEM
------------
id_vendaitem (PK)
id_venda (FK)
id_produto
descricao
qtdven
prcunit
qtdent
[etc]

dessa forma, ao incluir o pedido, você reserva o produto, preenchendo o campo estoque.reservado.


ao finalizar a venda, você abate o valor de estoque.reservado e de estoque.saldoatual e adiciona ao campo vendaitem.qtdent.

entendeu?

mas esse funcionamento depende muito do ramo de atividade e do procedimento executado.
Responder

12/02/2010

Rogerio

Thiago e Emerson muito obrigado por particiar deste tópico! Emerson eu pensei na sua solução, mas eu me esbarrei no fator histórico do andamento do produto, como seria isso? p.ex: Supondo um novo pedido: .... .... Item do Produto: ProdutoX - Qtde: 10 - ....  Andamento do Produto: ProdutoX - Qtde: 2 - Data: 12/02 - Status: Balcão                                 Qtde: 3 - Data: 15/02 - Status: Balcão                                 Qtde: 5 - Data: 20/02 - Status: Entrega    Eu estou pensando no histórico para comprovar o andamento do produto do item do pedido. Por isso que pensei na tabela Reserva, por que nesta tabela ficaria como um histórico. Se amanhã você precisa comprovar como foi a trajetoria do ProdutoX para um cliente desconfiado, com um histórico você diria a ele que no dia 12/02 ele retirou no balcão 2 item do ProdutoX, depois no dia 15/02 ele retirou mais 3 item no balcão e no dia 20/02 a empresa entregou o restante (5).   O que você acha disso?
Responder

12/02/2010

Thiago Santana

Se fosse uma coisa mais simples esse lance do Emerson de adicionar apenas o campo na tabela seria legal... Mas como vc quer ter um acompanhamento maior desse histório, deverá ser mais útil utilizar esta tabela reserva, pois serão muitos os dados que serão gravados nela! Uma dica está tabela reserva terá que ser uma tabela bastante "fixa" bem desenvolvida para evitar transtornos como por exemplo uma mistura de históricos entre os produtos e os clientes! AbraçoO
Responder

12/02/2010

Rogerio

Esta é a estrutura que montei. O que vocês acham? Alem da tabela Reserva_Saida acrescentei a tabela Atendido_Saida para armazenar os itens atendidos.    
Responder
pro histório eu teria a nota fiscal.
Responder

14/02/2010

Rogerio

Você esta supondo que o usuário vai emitir a nota fiscal, não é isso? mas se não for emitir a nota fiscal? O vendedor tirou um pedido de venda para o cliente, mas não emitiu a nota fiscal, no seu caso eu fico sem o controle do andamento dos itens da venda! Para conseguir este controle eu precisaria emitir a nota fiscal. Você não acha que vai fugir do conceito da realidade? sabendo que no mundo real não é assim que funciona, é isso mesmo? ou eu estou enganado?  
Responder
por isso que eu disse que depende muito do ramo de atividade, do negócio.

no ramo de atividade em que eu atuo a mercadoria só sai da empresa/armazém com nota fiscal; um item de pedido pode ser entregue em várias vezes, mas só sai com NF.

mas na verdade o esquema funciona pra qualquer um. no meu caso é gerado um número de documento (NF). no seu pode ser somente um RECIBO, que indicaria que a entrega foi efetuada e ainda seria mantido como histórico.

Responder

15/02/2010

Rogerio

Este recibo que você diz funciona da mesma maneira da nota fiscal, mas em vez do número do documento (NF) seria o número do recibo? é isso? eu não entendi, você poderia explicar melhor?     Obrigado!
Responder

16/02/2010

Fábio Pelicer

Olha, já que você tem uma estrutura de pedido e nota fiscal, controle o saldo  no ato do pedido pelo saldo estoque - os pedidos em aberto do item, quando emitir a NF (pedido atendido), fecha o pedido e atualiza o estoque.  Ficaria mais simples?
Responder

16/02/2010

Diogo Gobatto

Qual a sua intenção em reservar os itens? se a idéia é como descreveu acima, para evitar a situação onde 2 vendedores podem estar negociando o mesmo produto e não ter saldo de estoque para as duas vendas blz. Agora analisando o que disse em "Se o cliente desistir do pedido, então não precisa retornar a quantidade dos itens do pedido no estoque, porque não foi dado baixa no estoque" nessa situação como o sistema vai identificar que os itens do pedido não são mais itens de reserva? para que possa ser utilizado em outra transação(venda). esse ponto é muito delicado e implantar uma solução estática(que não é flexivel) para isso não vejo com bons olhos no seguinte ponto, se imagine como empresario que visa lucros o cliente "X" desistiu da venda porém o cliente "Z" queria realmente comprar, e não conseguil porque o itens que ele procurava estavam reservados por um outro cliente que na verdade nem vai levar os produtos esta apenas cotando. eu gostei da sua logica de negocios porém existem clientes e clientes não é verdade pode ser que esse seu cliente do sistema, tenha esse processo assim dessa forma como descreveu, porém pode existir um outro que não queira trabalhar dessa forma, ai. quando voce disse "O caixa que é responsável por Finalizar a Venda e automaticamente o sistema da baixa no estoque." Você quis dizer que a ação de "vender" que o vendedor dispara no sistema irá gerar apenas um contas a receber para que o caixa possa quitar e respectivamente fazer baixas no estoque? se a resposta é sim, então não vejo porque a venda não disparar o contas a receber e baixa no estoque. por que dá forma como entendi serão duas rotinas disparadas em momentos distintos para realizar a mesma transação tipo a venda gera o a receber e o caixa efetua baixas em estoque.
Responder

16/02/2010

Rogerio

tb bem Fábio e Diogo, obrigado por me ajudar!   Fábio
...quando emitir a NF (pedido atendido), fecha o pedido e atualiza o estoque.... Mas se aquela venda não for emitir nota fiscal? eu estava pensando em deixar isso a cargo do pedido, quando se finaliza o pedido baixa do estoque. Diogo
..."Se o cliente desistir do pedido, então não precisa retornar a quantidade dos itens do pedido no estoque, porque não foi dado baixa no estoque" ... Ao gravar o pedido como pendente, alem do itens serem gravados na tabela Item_Saida tambem serão gravados na tabela Reserva, mas ainda não será dado baixa no estoque e se por acaso o cliente não quer mais o pedido, então quando excluir o pedido tambem será excluído da tabela de Reserva. Diogo
...se imagine como empresario que visa lucros o cliente "X" desistiu da venda porém o cliente "Z" queria realmente comprar, e não conseguil porque o itens que ele procurava estavam reservados por um outro cliente que na verdade nem vai levar os produtos esta apenas cotando... Eu vou explicar mais detalhadamente o processo: O clienteX esta tirando pedido com o vendedorX, quando o clienteX solicita o produtoY o vendedorX vai consultar o produto e verifica que consta no estoque: Atual: 10      {qtde atual em estoque}
Reservado: 0   {qtde reservado do estoque: Qtde total nos pedidos que estão pendentes}
Disponível: 10 {qtde disponivel em estoque: Disponível = Atual - Reservado} então neste momento o vendedorX acresenta 8 unidade do produtoY no pedido. Depois grava o pedido e o status do pedido fica como Pedido Pendentre. Antes do clienteX passar no caixa para pagar o pedido o clienteZ esta tirando pedido com o vendedorZ que solicita o mesmo produtoY, quando o vendedorZ consultar o produto vai veriricar que consta no estoque:Atual: 10
Reservado: 8
Disponível: 2 Agora supondo que o clienteZ queria 5 unidades, mas esta disponivel somente 2, então o vendedorZ consulta atravez de um botão para saber para qual(is) pedido(s) foi(ram) reservado(s) 8 unidades do produtoY e fica sabendo que foi o vendedorX que tirou pedido para o clienteX, então o vendedorZ vai conversar com o vendedorX para saber se o clienteX vai mesmo querer o pedido. Se o clienteX não querer mais o pedido, então o vendedorZ acrecenta as 5 unidades que o clienteZ queria e com isso, não deixa de vender! Quando clienteZ passa no caixa para pagar, o funcionário do caixa finalizar o pedido e quando o pedido é finalizado o sistema da baixa no estoque. Agora supondo que um outro vendedor vai consultar o estoque e as informações serão estas:Atual: 5
Reservado: 0
Disponível: 5 Lembrando que o clienteZ levou 5 unidades do produtoY.   >> Tambem tem o trecho que expliquei no primeiro post:   Com esta tabela de "Reserva" tambem se controla o andamento dos itens do pedido:   1) Qual é a data que foi retirado o item do pedido (retirada parcial do pedido) ou quando vai ser retirado. 2) Esta retirada vai ser no balção, Entrega ou até mesmo uma Encomenda (o cliente pagou pelo o produto, mas esta encomendando). 3) Tambem controla a quantidade a ser retirada, p. ex.: o cliente solicitou 10 itens do produtoX, mas será retirado no balcão 2 e o restante (8) a empresa vai entregar no dia Y. Ou seja, controla a quantidade unitária do item do pedido solicitado pelo o cliente.
O objetivo e fazer este controle do andamente dos itens do pedido sem precisar emitir nota fiscal.   A questão de cotação que o Diogo comentou, seria um pedido comum, somente para fazer um orçamento e não teria estes controles, já que orçamento não dá baixa no estoque.     bom tomara que eu não compliquei mais ainda.   Se por acaso presicar eu eu explicarei novamente.
Responder

17/02/2010

Tiago Melo

olá aqui é o Diogo...analisando o seguinte:   Agora supondo que o clienteZ queria 5 unidades, mas esta disponivel somente 2, então o vendedorZ consulta atravez de um botão para saber para qual(is) pedido(s) foi(ram) reservado(s) 8 unidades do produtoY e fica sabendo que foi o vendedorX que tirou pedido para o clienteX, então o vendedorZ vai conversar com o vendedorX para saber se o clienteX vai mesmo querer o pedido. Se o clienteX não querer mais o pedido, então o vendedorZ acrecenta as 5 unidades que o clienteZ queria e com isso, não deixa de vender!   eu havia pensado que com essa amarração a nível de reserva você queria garantir a integridade da reserva, e se com uma simples rotina um vendedor conseguir mandar pro ar a reserva do outro sinceramente não vejo porque implementar essa rotina. eu já trabalhei muito tempo implantando sistemas e sei como é nas empresas a disputa pela venda e esse é um ponto delicado. Agora se você me disser que pode implementar ai um nível de segurança onde somente o usuario do perfil gerente pode desfazer essa reserva, ai tudo bem, seria então dois passos, vendedor z pergunta ao x se pode utilizar o que ele havia reservado, caso sim, solicita ao gerente de loja que desfaça a reserva do item. ai sim.
Responder

18/02/2010

Rogerio

TIAGO F. MELO Agora se você me disser que pode implementar ai um nível de segurança onde somente o usuario do perfil gerente pode desfazer essa reserva, ai tudo bem, seria então dois passos, vendedor z pergunta ao x se pode utilizar o que ele havia reservado, caso sim, solicita ao gerente de loja que desfaça a reserva do item. ai sim.
Sinceramente amigo eu não havia pensado nesta situação, mas você esta certo! isso só faz sentido se haver um nível de segurança. Eu vou acrescentar o que você disse no projeto! Você tem mais alguma ídeia pra melhorar este processo? e tambem os demais colegas do fórum? Emerson como é que você resolve este problema, mesmo que o sistema não precise emitir NF para obter o controle?  
Obrigado!
Responder
somente quem digitou o pedido - ou alguém com perfil de administrador - pode eliminar a reserva/empenho.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira