Pular para o conteúdo principal

CD_EMPRESA — Código da Empresa

Tela de configuração: ADM012 — Parâmetros do Usuário
Campo: CD_EMPRESA
Tabela: PARMUSUARIO.CD_EMPRESA
Tipo: INTEGER NOT NULL (PK)
Componente: edtCD_EMPRESA (TDBEdit)
Valor padrão: preenchido automaticamente pela sessão (contexto do usuário logado)

Telas impactadas​

TelaDescrição do impacto
ADM001 (USUARIO)Ao abrir ADM012 a partir de ADM001 (botão btnADM012), o parâmetro CD_EMPRESA é passado como sessao.empresa.cd_empresa.
ADM012 (PARMUSUARIO)Tela de origem — campo exibido como somente leitura.
Demais módulosScripts de validação e atualização usam CD_EMPRESA de PARMUSUARIO como escopo por empresa (ex.: validação de desconto, bloqueio de crédito, permissão de caixa).

Campos envolvidos​

CampoTipoObrigatoriedadeObservação
CD_EMPRESADOM_INTEGERNOT NULLParte da chave primária PK_PARMUSUARIO(CD_EMPRESA, CD_USUARIO).
CD_USUARIODOM_VARCHAR5NOT NULLComplementa a PK.

FK relevante:

  • RPARMUSUARIO_USUARIOEMPRESA (CD_USUARIO, CD_EMPRESA) → USUARIOEMPRESA(CD_USUARIO, CD_EMPRESA) ON DELETE CASCADE

Opções disponíveis​

O que fazDetalhe
Campo somente leitura (ReadOnly)O valor é preenchido automaticamente conforme a empresa do usuário logado; não é editável na UI.
Escopo de registroDefine a empresa a qual os demais parâmetros do usuário (desconto máximo, permissões, impressoras etc.) pertencem.
Propagação para sub-tabelasAo gravar registros dependentes (ex.: SUBGRUPODESCONTO), o campo é copiado automaticamente se estiver vazio.

Valor fixo — campo somente leitura (ReadOnly)​

O componente edtCD_EMPRESA possui ReadOnly = True. O valor refletido é o da empresa ativa na sessão do usuário. O usuário final não altera este campo em ADM012.

Simulação passo a passo​

  1. Acesse ADM012 — Parâmetros do Usuário.
  2. Observe o campo Empresa na aba principal (canto superior esquerdo).
  3. Verifique que o valor exibe o código da empresa vinculada à sua conta — por exemplo, 1.
  4. Tente clicar ou editar o campo: o campo permanecerá bloqueado.
  5. Para consultar a lista de empresas, pressione <F9> sobre o campo (hint: Lista de Empresas <F9>), porém o valor não será alterado.

Resultado esperado: o campo exibe o código da empresa do contexto atual do usuário logado (ex.: 1 — Matriz), sem possibilidade de edição.

Exceção / Importante: Para alterar a empresa de trabalho do usuário, deve-se configurar o vínculo na tabela USUARIOEMPRESA (tela ADM001 — Cadastro de Usuário). Cada par de (CD_USUARIO, CD_EMPRESA) gera um registro distinto em PARMUSUARIO.

Exceção / Importante: Ao abrir ADM012 a partir de ADM001 (botão btnADM012), o código passado é sessao.empresa.cd_empresa — a empresa ativa na sessão do usuário atual, não a empresa padrão do usuário que está sendo cadastrado/editado.

Telas e processos que dependem do CD_EMPRESA de PARMUSUARIO​

Diversas stored procedures e validações SQL utilizam PARMUSUARIO.CD_EMPRESA como escopo de filtragem. Entre as rotinas relevantes:

RotinaTipoUso do campo
VALIDA_BLOQDESCMAXSUBGRUPOSPVerifica se usuário pode aplicar desconto por subgrupo dentro da empresa.
VALIDA_LIBERACAOUSUARIOSPConsulta permissões do usuário (vinculadas a empresa).
VALIDA_CODIGOBARRASPJoin com PARMUSUARIO por CD_EMPRESA.
PERMISSAO_CAIXASPDefine permissão de abertura de caixa por empresa/usuário.
CONTROLE_CAIXASPControle de caixa filtrado por PARMUSUARIO.
CANCELA_NOTAFISCALSPVerifica PARMUSUARIO.CD_EMPRESA no processo de cancelamento.
VERIFICA_BLOQUEIOSPConsulta PARMUSUARIO para regras de bloqueio por empresa.
VIEW_DOCUMENTOSBLOQUEADOSViewJoin com PARMUSUARIO PU para filtro de empresa.
TRGPARMFATUR_BUTriggerAtualiza PARMUSUARIO.VL_LIMITECREDACUMULADO = NULL via join.
VALIDA_MODELOBLOQUEIODIASATRASOSPLê dias de atraso da PARMUSUARIO por empresa.
VALIDA_MODELOBLOQUEIOPCDESCMAXSPLê percentual de desconto máximo por empresa.
VALIDA_MODELOBLOQUEIOVLLIMITESPLê limite de crédito acumulado por empresa.
RETORNA_IMPRESSORAUSUARIOSPRetorna impressora configurada para o par usuário/empresa.
GERA_ETIQUETABALANCASPConsulta PARMUSUARIO PU para geração de etiqueta.

Procedures Delphi de ADM001 (Cad. Usuário) também propagam CD_EMPRESA ao abrir telas dependentes (ADM004, ADM005, ADM012, ADM013, TFA008, TFA007).

Regra Geral​

CD_EMPRESA é o escopo primário de todos os demais parâmetros da tabela PARMUSUARIO. Não é editável em ADM012 — seu valor vem do contexto de sessão (sessao.empresa.cd_empresa). Cada combinação (CD_EMPRESA, CD_USUARIO) gera um registro de parâmetros distinto, permitindo que um mesmo usuário tenha configurações diferentes por empresa.