Entidade SIMILARIDADES_PRODUTO
PROD.SIMILARIDADES_PRODUTO
Descrição
As similaridades de produto permitem indicar outras opções de produtos similares ao informado que podem estar ou não cadastrados no sistema.
Quando uma similaridade é informada em um produto, a mesma informação é atualizada em todos os produtos indicados como similares a este anteriormente.
Atributos
| Atributo | Domínio | Regras | Descrição | 
|---|
| ID | ID(18) | Rqd PK  | Id: Chave de identificação interna
  | 
| PRODUTO_ID | ID(18) | Rqd FK  | Produto: Relacionamento com um produto.
  Referência para PRODUTOS | 
| PRODUTO_SIMILAR_ID | ID(18) | FK  | Produto similar: Similaridade com outro produto.
  Referência para PRODUTOS | 
| MARCA_ID | ID(18) | FK  | Marca: Relacionamento com uma marca.
  Referência para MARCAS | 
| REFERENCIA | UPPER | Rqd  | Referência: Referência da similaridade entre dois produtos.
  | 
| OBSERVACOES | TEXT_LONG |  | Observações: Texto livre para observações sobre a similaridade.
  | 
Regras
Atualizar grupo dos similares
(Depois de inserir, Depois de excluir)
Na inclusão ou exclusão das similaridades, o atributo GRUPO_SIMILAR_ID é atualizado de forma que:
- Depois de incluir um produto similar, ambos produtos terão o mesmo grupo similar
 - Depois de excluir um produto similar, o produto excluído não fará mais parte de nenhum grupo similar
 
Inclusão:
| P1.grupo_similar_id | P2.grupo_similar_id | Ação | 
 | 
|---|
| NULL | NULL | P1.grupo_similar_id = NEXT_VAL();P2.grupo_similar_id = P1.grupo_similar_id; | 
 | 
| A | NULL | P2.grupo_similar_id = A; | 
 | 
| NULL | A | P1.grupo_similar_id = A; | 
 | 
| A | B | P2.grupo_similar_id = A; update produtos set grupo_similar_id = A where grupo_similar_id = B; | 
 | 
Exclusão:
| P1.grupo_similar_id | P2.grupo_similar_id | Ação | 
 | 
|---|
| A | A | P2.grupo_similar_id = NULL; | 
 | 
Preencher referência do produto
(Antes de alterar, Antes de inserir)
Quando for informado apenas um código de produto similar, o sistema copia a marca e referência deste produto para esta similaridade. No final, todos os registros de similaridade terão marca e referência de fornecedor, mas nem todos terão um código de produto relacionado.
Complementar similaridades no mesmo grupo
(Depois de inserir)
Complementa o produto cartesiano entre todas similaridades dos produtos que participam do mesmo grupo similar.
Excluir relacionamento reverso
(Depois de excluir)
Excluir o relacionamento reverso entre dois produtos.
Atualizar chaves do produto
(Depois de inserir, Depois de alterar, Depois de excluir)
Atualiza as chaves de pesquisa do produto.
Atualizar marcas/referencias similares
(Depois de inserir, Depois de alterar, Depois de excluir)
Quando incluir uma similaridade por marca/referência apenas, deve copiar esta mesma referência para os outros produtos similares.
Quando alterar este registro, a alteração deverá refletir da mesma forma nos demais produtos.
Quando excluir este registro, deve remover o mesmo registro nos demais produtos.
Marca ou produto similar devem estar preenchidos!
(Antes de inserir, Antes de alterar)
Caso a marca e produto similar estiverem vazios deve ser apresentado uma mensagem de erro.
Validar produto similar
(Antes de inserir)
Verifica se o produto similar já está cadastrado para o produto.
Ajustar duplicidades
Rotina utilizada para ajustar possíveis duplicidades geradas quando a preferência PROD.SIMILARIDADES_PRODUTO.VALIDACAO_DUPLICIDADE está desativada.
O ajuste compreende em:
- Vincular similaridades realizadas apenas com marca referência que agora possuem produtos.
 - Remover marcas/referência duplicadas (com ou sem produto)