[firebase-br] Dúvida com tabelas

José Otávio Lussari tavinhol em gmail.com
Qui Maio 19 09:22:11 -03 2011


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

 




Mais detalhes sobre a lista de discussão lista