Valida Produto por Empresa
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Faturamento → Opção 1 Tabela:
PARMFATUR.ST_VALIDAITEMEMPRESAValor padrão:0(Não)
Telas impactadas
| Módulo | Código | Descrição |
|---|---|---|
| Cadastro de Produto | TPO001 | Cadastro e edição de produtos (TOF007) |
| Pedido de Venda | MPD002 | Pedidos de venda |
| Pedido de Compra | MPD001 | Pedidos de compra |
| Pedido (NF Ordem) | MPD011 | Pedidos NF ordem |
| Ordem de Produção | MPD053 | Ordens de produção |
| NF Saída | MNF002 | Emissão de NF de saída |
| NF Entrada | MNF001 | NF de entrada |
| NF Devolução/Outra | MNF007 | NF devolução |
| NF Troca/Diferença | MNF009 | NF troca e diferença |
| NF Entrada (Mobile) | MNF008 | NF entrada mobile |
| PDV / Cupom Fiscal | MNF026 | Frente de caixa |
| Ordem de Serviço | MOF001 | Ordens de serviço |
| Ordem de Serviço (Outra) | MOF002 | OS outra |
| Ordem de Serviço (Outra) | MOF005 | OS outra |
| Ordem de Serviço (Outra) | MOF006 | OS outra |
| Requisição Oficina | MOF004 | Requisição de peças |
| Recap NF | MRC020 | Notas fiscais recap |
| Cotação de Peças | MCO006 | Cotação de compras |
| Relatório Posição Estoque | ROF005 | Relatório posição |
| Relatório Estoque | RRC020 | Relatório de estoque |
| Relatório NF | RNF026 | Relatório NF |
| Pesquisa Produto | jPesquisa | Pesquisa de produtos (UListaProduto) |
| Pesquisa por Seção/Imagem | jPesquisa | Pesquisa seção/imagem (UListaSecaoImagem) |
Procedures impactadas
Procedures de validação e busca
| Procedure | Arquivo | Descrição |
|---|---|---|
VALIDA_CODIGOBARRA | Scripts/VALIDA_CODIGOBARRA.sql | Valida código de barras. Quando = 1, adiciona INNER JOIN ITEMEMPRESA para filtrar produto por empresa na busca por código de barras |
RETORNA_LOCAISARMAZENAGEM | Scripts/RETORNA_LOCAISARMAZENAGEM.sql | Retorna locais de armazenagem. Quando = 1, busca locais da tabela ITEMEMPRESA ao invés de ITEMLOCAL, filtrando por empresa |
Campos envolvidos
| Campo | Descrição |
|---|---|
ITEMEMPRESA.CD_ITEM | Código do item vinculado à empresa |
ITEMEMPRESA.CD_EMPRESA | Código da empresa vinculada ao item |
ITEMEMPRESA.CD_LOCAL | Local de estoque do item na empresa |
ITEMEMPRESA.CD_TIPOLOCAL | Tipo de local do item na empresa |
ITEMEMPRESA.QT_ESTMIN | Estoque mínimo do item na empresa |
ITEMEMPRESA.QT_ESTMAX | Estoque máximo do item na empresa |
ITEM.TP_ITEM | Tipo do item ('S' = Serviço, geralmente isento da validação) |
Opções disponíveis
1 - Sim (Valida Produto por Empresa)
| O que faz | Detalhe |
|---|---|
| Valida ao adicionar item? | SIM - verifica se o produto existe em ITEMEMPRESA para a empresa logada |
| Se produto NÃO está vinculado | Erro: "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 armazenagem | Busca de ITEMEMPRESA ao invés de ITEMLOCAL |
| JOIN em relatórios | Usa INNER JOIN (obrigatório) ao invés de LEFT JOIN (opcional) |
| Estoque mínimo/máximo | Usa 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 - interface | Oculta botão "Vista", reordenar, colunas 3-4, grid saldo por empresas |
| Pesquisa de produtos | Filtra produtos por empresa na pesquisa |
Simulação passo a passo
- Vá em MFA001 → Parâmetros → Faturamento → Opção 1 → ST_VALIDAITEMEMPRESA = "Sim"
- Salve os parâmetros (F6)
- Certifique-se de que o produto X está vinculado à empresa atual (ITEMEMPRESA)
- Certifique-se de que o produto Y NÃO está vinculado à empresa atual
- Abra um Pedido de Venda (MPD002)
- Adicione o produto X → Aceito normalmente (está vinculado)
- Tente adicionar o produto Y → ERRO: "Produto não Associado a esta Empresa [TOF007]!"
- 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 comTP_ITEM = 'S'ou'A'(Serviço/Ativo) são isentos no MOF004.
0 - Não (Sem Validação)
| O que faz | Detalhe |
|---|---|
| Valida ao adicionar item? | Não - qualquer produto pode ser utilizado em qualquer empresa |
| Vínculo com empresa | Desconsiderado - 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órios | Usa LEFT JOIN (opcional) com ITEMEMPRESA |
| Estoque mínimo/máximo | Usa ITEM.QT_ESTOQUEMIN / QT_ESTOQUEMAX (global do item) |
| Filtro empresa (ROF005) | Bloqueado - campos de empresa ficam ReadOnly |
| TOF007 - interface | Oculta colunas 7-8, botão "Vista" e reordenar não são exibidos |
| Pesquisa de produtos | Sem filtro adicional por empresa |
Simulação passo a passo
- MFA001 → ST_VALIDAITEMEMPRESA = "Não"
- Salve os parâmetros (F6)
- Abra um Pedido de Venda (MPD002)
- Adicione qualquer produto → Aceito sem validação de empresa
- Adicione um produto de outra empresa → Aceito normalmente
- 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ódulo | Isenta serviços? | Detalhe |
|---|---|---|
| MPD002 | Não | Valida todos os itens |
| MNF002 | Não | Valida todos os itens |
| MNF007 | Sim | Result[1] <> 'S' (isenta serviços) |
| MNF009 | Sim | ResItemEmp[0] <> 'S' (isenta serviços) |
| MNF026 | Sim | Result[1] <> 'S' (isenta serviços) |
| MRC020 | Sim | Result[1] <> 'S' (isenta serviços) |
| MPD011 | Sim | Result[1] <> 'S' (isenta serviços) |
| MOF001 | Não | Valida todos os itens |
| MOF002 | Não | Valida todos os itens |
| MOF004 | Sim | Isenta serviços ('S') e ativos ('A') |
| MPD053 | Não | Valida 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:
- Busca normal por CD_CODIGOBARRA (linha 238): Adiciona JOIN com ITEMEMPRESA para garantir que o produto pertence à empresa
- 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
ITEMEMPRESAcomCD_LOCALe/ouCD_TIPOLOCALpreenchidos - Se sim: Busca locais de
ITEMEMPRESA(filtrados por empresa) - Se não: Busca todos os locais de
ITEMLOCALdo 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:
| Comportamento | ST_VALIDAITEMEMPRESA = 1 | ST_VALIDAITEMEMPRESA = 0 |
|---|---|---|
| Obriga vínculo com empresa ao salvar item | Sim | Não |
| Campo CD_LOCAL | ReadOnly (bloqueado) | Editável |
| Pesquisa F9 de item | Bloqueada | Liberada |
| Botão "Vista" | Visível | Oculto |
| Botão "Reordenar" | Visível | Oculto |
| Grid colunas 3-4 | Visíveis | Ocultas |
| Grid saldo por empresas | Visível | Oculto |
| Grid colunas 7-8 | Ocultas | Coluna 7 width=0, coluna 8 oculta |
Tabela Comparativa Resumida
| Aspecto | 0 (Não) | 1 (Sim) |
|---|---|---|
| Valida produto por empresa | Não | Sim |
| Serviços isentos | - | Sim (maioria dos módulos) |
| Obriga vínculo empresa no TOF007 | Não | Sim |
| JOIN com ITEMEMPRESA em relatórios | LEFT JOIN (opcional) | INNER JOIN (obrigatório) |
| Estoque mín/máx | Do ITEM (global) | Da ITEMEMPRESA (por empresa) |
| Locais de armazenagem | De ITEMLOCAL | De ITEMEMPRESA |
| Procedure VALIDA_CODIGOBARRA | Sem filtro empresa | Com INNER JOIN ITEMEMPRESA |
| Procedure RETORNA_LOCAISARMAZENAGEM | Busca ITEMLOCAL | Busca ITEMEMPRESA |