Pular para o conteúdo principal

Valida Produto por Empresa

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Faturamento → Opção 1 Tabela: PARMFATUR.ST_VALIDAITEMEMPRESA Valor padrão: 0 (Não)

Telas impactadas​

MóduloCódigoDescrição
Cadastro de ProdutoTPO001Cadastro e edição de produtos (TOF007)
Pedido de VendaMPD002Pedidos de venda
Pedido de CompraMPD001Pedidos de compra
Pedido (NF Ordem)MPD011Pedidos NF ordem
Ordem de ProduçãoMPD053Ordens de produção
NF SaídaMNF002Emissão de NF de saída
NF EntradaMNF001NF de entrada
NF Devolução/OutraMNF007NF devolução
NF Troca/DiferençaMNF009NF troca e diferença
NF Entrada (Mobile)MNF008NF entrada mobile
PDV / Cupom FiscalMNF026Frente de caixa
Ordem de ServiçoMOF001Ordens de serviço
Ordem de Serviço (Outra)MOF002OS outra
Ordem de Serviço (Outra)MOF005OS outra
Ordem de Serviço (Outra)MOF006OS outra
Requisição OficinaMOF004Requisição de peças
Recap NFMRC020Notas fiscais recap
Cotação de PeçasMCO006Cotação de compras
Relatório Posição EstoqueROF005Relatório posição
Relatório EstoqueRRC020Relatório de estoque
Relatório NFRNF026Relatório NF
Pesquisa ProdutojPesquisaPesquisa de produtos (UListaProduto)
Pesquisa por Seção/ImagemjPesquisaPesquisa seção/imagem (UListaSecaoImagem)

Procedures impactadas​

Procedures de validação e busca​

ProcedureArquivoDescrição
VALIDA_CODIGOBARRAScripts/VALIDA_CODIGOBARRA.sqlValida código de barras. Quando = 1, adiciona INNER JOIN ITEMEMPRESA para filtrar produto por empresa na busca por código de barras
RETORNA_LOCAISARMAZENAGEMScripts/RETORNA_LOCAISARMAZENAGEM.sqlRetorna locais de armazenagem. Quando = 1, busca locais da tabela ITEMEMPRESA ao invés de ITEMLOCAL, filtrando por empresa

Campos envolvidos​

CampoDescrição
ITEMEMPRESA.CD_ITEMCódigo do item vinculado à empresa
ITEMEMPRESA.CD_EMPRESACódigo da empresa vinculada ao item
ITEMEMPRESA.CD_LOCALLocal de estoque do item na empresa
ITEMEMPRESA.CD_TIPOLOCALTipo de local do item na empresa
ITEMEMPRESA.QT_ESTMINEstoque mínimo do item na empresa
ITEMEMPRESA.QT_ESTMAXEstoque máximo do item na empresa
ITEM.TP_ITEMTipo do item ('S' = Serviço, geralmente isento da validação)

Opções disponíveis​

1 - Sim (Valida Produto por Empresa)​

O que fazDetalhe
Valida ao adicionar item?SIM - verifica se o produto existe em ITEMEMPRESA para a empresa logada
Se produto NÃO está vinculadoErro: "Produto não Associado a esta Empresa [TOF007]!"
Serviços (TP_ITEM = 'S')Isentos da validação na maioria dos módulos
Serviços 'S' e 'A' (MOF004)Isentos da validação na requisição de oficina
Cadastro de item (TOF007)Obriga que pelo menos uma empresa seja vinculada ao item
Campo CD_LOCAL (TOF007)ReadOnly - não permite edição manual
Pesquisa F9 (TOF007)Bloqueada - não permite busca de item
Código de barras (MOF001, MOF002, MOF005)Busca produto com INNER JOIN ITEMEMPRESA
Locais de armazenagemBusca de ITEMEMPRESA ao invés de ITEMLOCAL
JOIN em relatóriosUsa INNER JOIN (obrigatório) ao invés de LEFT JOIN (opcional)
Estoque mínimo/máximoUsa ITEMEMPRESA.QT_ESTMIN / QT_ESTMAX ao invés de ITEM.QT_ESTOQUEMIN
Filtro empresa (ROF005)Bloqueado - campos de empresa ficam ReadOnly (dados já filtrados)
TOF007 - interfaceOculta botão "Vista", reordenar, colunas 3-4, grid saldo por empresas
Pesquisa de produtosFiltra produtos por empresa na pesquisa

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Faturamento → Opção 1 → ST_VALIDAITEMEMPRESA = "Sim"
  2. Salve os parâmetros (F6)
  3. Certifique-se de que o produto X está vinculado à empresa atual (ITEMEMPRESA)
  4. Certifique-se de que o produto Y NÃO está vinculado à empresa atual
  5. Abra um Pedido de Venda (MPD002)
  6. Adicione o produto X → Aceito normalmente (está vinculado)
  7. Tente adicionar o produto Y → ERRO: "Produto não Associado a esta Empresa [TOF007]!"
  8. O produto Y não pode ser utilizado em nenhuma operação da empresa

Resultado esperado: Apenas produtos vinculados à empresa logada (via tabela ITEMEMPRESA) podem ser utilizados em pedidos, notas, OS e demais documentos. Serviços são isentos da validação.

Exceção para Serviços: Produtos com TP_ITEM = 'S' (Serviço) NÃO são validados por empresa nos módulos MNF007, MNF026, MRC020, MPD011 e MOF004. Produtos com TP_ITEM = 'S' ou 'A' (Serviço/Ativo) são isentos no MOF004.


0 - Não (Sem Validação)​

O que fazDetalhe
Valida ao adicionar item?Não - qualquer produto pode ser utilizado em qualquer empresa
Vínculo com empresaDesconsiderado - não verifica tabela ITEMEMPRESA
Cadastro de item (TOF007)Não exige vínculo com empresa ao salvar
Campo CD_LOCAL (TOF007)Exige preenchimento (validação de local de estoque ativa)
JOIN em relatóriosUsa LEFT JOIN (opcional) com ITEMEMPRESA
Estoque mínimo/máximoUsa ITEM.QT_ESTOQUEMIN / QT_ESTOQUEMAX (global do item)
Filtro empresa (ROF005)Bloqueado - campos de empresa ficam ReadOnly
TOF007 - interfaceOculta colunas 7-8, botão "Vista" e reordenar não são exibidos
Pesquisa de produtosSem filtro adicional por empresa

Simulação passo a passo​

  1. MFA001 → ST_VALIDAITEMEMPRESA = "Não"
  2. Salve os parâmetros (F6)
  3. Abra um Pedido de Venda (MPD002)
  4. Adicione qualquer produto → Aceito sem validação de empresa
  5. Adicione um produto de outra empresa → Aceito normalmente
  6. Salve o pedido → Sem erro

Resultado esperado: Qualquer produto cadastrado no sistema pode ser utilizado por qualquer empresa, sem restrição de vínculo empresa-item.

Este é o valor padrão ao criar um novo registro no MFA001.


Observação Importante: Exceção para Serviços​

A validação de item por empresa não se aplica a serviços (TP_ITEM = 'S') na maioria dos módulos que validam o tipo do item. A lógica aplicada é:

MóduloIsenta serviços?Detalhe
MPD002NãoValida todos os itens
MNF002NãoValida todos os itens
MNF007SimResult[1] <> 'S' (isenta serviços)
MNF009SimResItemEmp[0] <> 'S' (isenta serviços)
MNF026SimResult[1] <> 'S' (isenta serviços)
MRC020SimResult[1] <> 'S' (isenta serviços)
MPD011SimResult[1] <> 'S' (isenta serviços)
MOF001NãoValida todos os itens
MOF002NãoValida todos os itens
MOF004SimIsenta serviços ('S') e ativos ('A')
MPD053NãoValida todos os itens

Regra Geral: Impacto nas Procedures SQL​

VALIDA_CODIGOBARRA​

Quando ST_VALIDAITEMEMPRESA = 1, a procedure adiciona INNER JOIN ITEMEMPRESA em 3 pontos da busca por código de barras:

  1. Busca normal por CD_CODIGOBARRA (linha 238): Adiciona JOIN com ITEMEMPRESA para garantir que o produto pertence à empresa
  2. Busca por código de barras de caixa (CD_CODBARRAEMB, linha 282): Adiciona JOIN com ITEMEMPRESA na busca alternativa por embalagem

Quando = 0, busca sem JOIN com ITEMEMPRESA (sem filtro de empresa).

RETORNA_LOCAISARMAZENAGEM​

Quando ST_VALIDAITEMEMPRESA = 1:

  • Verifica se existem registros em ITEMEMPRESA com CD_LOCAL e/ou CD_TIPOLOCAL preenchidos
  • Se sim: Busca locais de ITEMEMPRESA (filtrados por empresa)
  • Se não: Busca todos os locais de ITEMLOCAL do produto (mas ainda filtrado por empresa)

Quando = 0: Busca locais de ITEMLOCAL sem filtro de empresa.


Interação com TOF007 (Cadastro de Item no PDV)​

O módulo TOF007 (Tela de Orçamento/Pedido no PDV) tem comportamento especial baseado neste parâmetro:

ComportamentoST_VALIDAITEMEMPRESA = 1ST_VALIDAITEMEMPRESA = 0
Obriga vínculo com empresa ao salvar itemSimNão
Campo CD_LOCALReadOnly (bloqueado)Editável
Pesquisa F9 de itemBloqueadaLiberada
Botão "Vista"VisívelOculto
Botão "Reordenar"VisívelOculto
Grid colunas 3-4VisíveisOcultas
Grid saldo por empresasVisívelOculto
Grid colunas 7-8OcultasColuna 7 width=0, coluna 8 oculta

Tabela Comparativa Resumida​

Aspecto0 (Não)1 (Sim)
Valida produto por empresaNãoSim
Serviços isentos-Sim (maioria dos módulos)
Obriga vínculo empresa no TOF007NãoSim
JOIN com ITEMEMPRESA em relatóriosLEFT JOIN (opcional)INNER JOIN (obrigatório)
Estoque mín/máxDo ITEM (global)Da ITEMEMPRESA (por empresa)
Locais de armazenagemDe ITEMLOCALDe ITEMEMPRESA
Procedure VALIDA_CODIGOBARRASem filtro empresaCom INNER JOIN ITEMEMPRESA
Procedure RETORNA_LOCAISARMAZENAGEMBusca ITEMLOCALBusca ITEMEMPRESA