[firebase-br] Dúvida com tabelas

Eduardo Jedliczka edujed em gmail.com
Qui Maio 19 09:46:10 -03 2011


Acho que sua lógica está um pouco equivocada.

Existem muitas formas diferentes para se resolver isto.

Hipotéticamente, uma matéria-prima pode ser transformada em "um ou
mais" produtos acabados e/ou insumos. E um produto/insumo pode
consumir "uma ou mais" matéria-prima". Ok talvez este não seja o caso
atual, mas vai por mim, uma hora ou outra vai surgir esta necessidade.

Então eu criaria:

- tabela produto (e um campo tipo para saber se é materia-prima,
insumo, produto acabado, etc)

- tabela producao-mestre (código do produto acabado, quantidade do
produto acabado produzida, e algum controle seja do prazo de produção,
ou necessidade de agendar algum equipamento)
- tabela producao-detalhe (codigo da produto, código da materia-prima,
quantidade a ser consumida)

- tabela OS-mestre (vendedor, data da os, cliente, etc.
- tabela OS-detalhe (codigo do produto, quantidade, etc).

- tabela ordem-producao (cod os, cod produto, quantidade)

- tabela compras (cod produto, quantidade, *opcional* cod ordem producao)

Imaginando que eu tenha um pedido de 10 peças, mas só tenho 3 em
estoque, e só tenho matéria prima para produzir mais 4 peças.

com esta estrutura, seria necessário três passos:

1º) De posse da OS, select na tabela produto para encontrar produtos
já fabricados.

2º) como falta peças, é preciso gerar um pedido de producao da
diferença. A partir dela, select na matéria prima para saber as
quantidade necessárias para fabricação.

3º) ao constatar a falta de estoque para fabricação, gerar uma
requisição de compra.

Claro que todos estes passos (e respectivas tabelas) precisam ter um
"controle de estado" ou seja, se estão "em andamento, aguardando
aprovação, aguardando material, etc..)

==========================
Eduardo Jedliczka
Apucarana - Pr
==========================




Em 19 de maio de 2011 09:22, José Otávio Lussari <tavinhol em gmail.com> escreveu:
> Pessoal, bom dia! Vamos ver se alguém consegue me ajudar, ou melhor, vamos
> ver se eu consigo passar pra vcs minha duvida =)
>
> Tenho uma tabela de Itens da Ordem de serviço, onde cada item pode ter se
> transformar em “um” produto acabado. Então eu informo a peça bruta que a
> Ordem de Serviço necessita e tbem preciso informar a peça acabada que essa
> peça bruta irá se transformar. Como cada item pode se transformar em apenas
> uma peça bruta, eu fiz o seguinte:
>
>
>
> CREATE TABLE "ITEM_OSEV"
>
> (
>
>  "ID"    INTEGER NOT NULL,
>
>  "COD_OS"     INTEGER NOT NULL,
>
>  "COD_PROD" INTEGER NOT NULL, <<<<<<< Código da Peça Bruta
>
>  "QTDE_OS"    NUMERIC(12,3) NOT NULL,
>
>  "QTDE_ATEND"         NUMERIC(12,3) NOT NULL,
>
>  "COD_PROD_ACAB"  INTEGER, <<<<<<<<< Código do Produto Acabado
>
>  "STATUS"       VARCHAR(8) NOT NULL,
>
>  "BAIXADO_PA"          CHAR(1),
>
>  "QTDE_PA"    NUMERIC(12,3),
>
> CONSTRAINT "PK_ITEM_OS" PRIMARY KEY ("ID")
>
> );
>
>
>
> A lógica é a seguinte:
>
> - Quando eu lançar a O.S no sistema, o sistema deverá primeiramente analisar
> se o COD_PROD_ACAB está preenchido.
>
> - Se estiver preenchido, verifico no estoque sem tem o produto acabado em
> estoque; (COD_PROD_ACAB)
>
> - Caso contrário verifico se possui a peça bruta em estoque (COD_PROD);
>
>
>
> Acontece o seguinte, a Ordem de serviço pode precisar de 10 PC, onde no
> estoque pode ter 1 PC Acabada, 2 PC Bruta e o restante emitir uma
> solicitação de compra!
>
> Se for baixada algum Produto acabado (COD_PROD_ACAB), eu preencho o campo
> BAIXADO_PA com ‘S’ e a quantidade baixada de produto acabado em “QTDE_PA”.
>
> Existe uma forma melhor de tratar isso pessoal? Estou ficando confuso ao
> gerar consultas SQL com isso... Espero que alguém possa me ajudar! Desde já,
> muito obrigado!
>
>
>
> Uso Firebird 1.5.3, D7, FIBPlus.
>
> obs: Ocultei alguns campos que não tem necessidade de aparecer nesse
> exemplo, Ok?)
>
>
>
> atenciosamente,
>
>
>
> [ ]’s
> José Otávio Lussari
> Analista de Sistemas
>
> Bel. em Sistemas de Informação
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>




Mais detalhes sobre a lista de discussão lista