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
| Tela | Descriçã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ódulos | Scripts 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
| Campo | Tipo | Obrigatoriedade | Observação |
|---|---|---|---|
CD_EMPRESA | DOM_INTEGER | NOT NULL | Parte da chave primária PK_PARMUSUARIO(CD_EMPRESA, CD_USUARIO). |
CD_USUARIO | DOM_VARCHAR5 | NOT NULL | Complementa a PK. |
FK relevante:
RPARMUSUARIO_USUARIOEMPRESA (CD_USUARIO, CD_EMPRESA) → USUARIOEMPRESA(CD_USUARIO, CD_EMPRESA) ON DELETE CASCADE
Opções disponíveis
| O que faz | Detalhe |
|---|---|
| Campo somente leitura (ReadOnly) | O valor é preenchido automaticamente conforme a empresa do usuário logado; não é editável na UI. |
| Escopo de registro | Define a empresa a qual os demais parâmetros do usuário (desconto máximo, permissões, impressoras etc.) pertencem. |
| Propagação para sub-tabelas | Ao 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
- Acesse ADM012 — Parâmetros do Usuário.
- Observe o campo Empresa na aba principal (canto superior esquerdo).
- Verifique que o valor exibe o código da empresa vinculada à sua conta — por exemplo,
1. - Tente clicar ou editar o campo: o campo permanecerá bloqueado.
- 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 emPARMUSUARIO.
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:
| Rotina | Tipo | Uso do campo |
|---|---|---|
VALIDA_BLOQDESCMAXSUBGRUPO | SP | Verifica se usuário pode aplicar desconto por subgrupo dentro da empresa. |
VALIDA_LIBERACAOUSUARIO | SP | Consulta permissões do usuário (vinculadas a empresa). |
VALIDA_CODIGOBARRA | SP | Join com PARMUSUARIO por CD_EMPRESA. |
PERMISSAO_CAIXA | SP | Define permissão de abertura de caixa por empresa/usuário. |
CONTROLE_CAIXA | SP | Controle de caixa filtrado por PARMUSUARIO. |
CANCELA_NOTAFISCAL | SP | Verifica PARMUSUARIO.CD_EMPRESA no processo de cancelamento. |
VERIFICA_BLOQUEIO | SP | Consulta PARMUSUARIO para regras de bloqueio por empresa. |
VIEW_DOCUMENTOSBLOQUEADOS | View | Join com PARMUSUARIO PU para filtro de empresa. |
TRGPARMFATUR_BU | Trigger | Atualiza PARMUSUARIO.VL_LIMITECREDACUMULADO = NULL via join. |
VALIDA_MODELOBLOQUEIODIASATRASO | SP | Lê dias de atraso da PARMUSUARIO por empresa. |
VALIDA_MODELOBLOQUEIOPCDESCMAX | SP | Lê percentual de desconto máximo por empresa. |
VALIDA_MODELOBLOQUEIOVLLIMITE | SP | Lê limite de crédito acumulado por empresa. |
RETORNA_IMPRESSORAUSUARIO | SP | Retorna impressora configurada para o par usuário/empresa. |
GERA_ETIQUETABALANCA | SP | Consulta 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.