você pode fazer de duas formas:
[b:3cf642b611]1. tomar como partida a tabela de relacionamento, no caso a tabela PRODUTO_FILIAL:[/b:3cf642b611]
então teria a seguinte instrução ao pesquisar os produtos:
select
prod.*
from
PRODUTO_FILIAL PF
inner join
PRODUTO PROD on (PROD.ID_Produto = PF.ID_Produto)
where
PF.ID_Filial/Filial = :Filial
and PROD.CODIGO = :Codigo
(onde código pra mim seria o código de barras, que é único)
[list:3cf642b611][*:3cf642b611]se encontrou, ótimo. não há segredo.
[*:3cf642b611]se não encontrou pode ser por dois motivos: o produto pode não existir na base de dados ou simplesmente não ter sido associado à filial. exiba uma mensagem na tela.
[/list:u:3cf642b611]
em função de trabalhar com esses registros muitos para muitos, ao inserir, após sair do campo onde há o código único do produto, verifique se o produto existe na tabela PRODUTO:
[list:3cf642b611][*:3cf642b611]se existir, traga seus dados para visualização e o associe à filial logada
[*:3cf642b611]se não existir, permita a inclusão do produto e já o associe com a filial logada.
[/list:u:3cf642b611]
ou
[b:3cf642b611]2. tomar como partida a tabela PRODUTO:[/b:3cf642b611]
então teria a seguinte instrução ao pesquisar os produtos:
select
prod.*, pf.ID_Filial
from
PRODUTO PROD
left join
PRODUTO_FILIAL PF on (PF.ID_Produto = PROD.ID_Produto and PF.ID_Filial = :Filial)
where
PROD.CODIGO = :Codigo
(onde código pra mim seria o código de barras, que é único)
dessa forma é até possível exibir a msg com uma informação mais precisa.
verifico se a tabela está vazia.
1. se estiver vazia, o produto NÃO existe. crio o produto e já associo com a filial
2. se NÃO estiver vazia, o produto existe. então verifico o campo ID_Filial:[list:3cf642b611][*:3cf642b611]se ID_Filial for diferente de nulo, tudo certo, basta exibir na tela
[*:3cf642b611]se estiver nulo, o produto EXISTE mas não há associação com a filial. basta fazer a associação.
[/list:u:3cf642b611]
ajudei ou compliquei?