CD_EMPRESA — Código da Empresa
Tela de configuração: MFI012 — Cadastro/Depreciação de Bens
Localização: aba Dados do Bem (e outros contextos da tela)
Tabela:BENS
Valor padrão:sessao.empresa.cd_empresa(empresa da sessão do usuário)
Telas impactadas
| Tela | Uso |
|---|---|
| MFI012 | Cadastro de bem — filtro e campo principal |
| MFC024 | Rateio de Despesa por Bens (quando conta existe em PARMDESPESABEM) |
| MNF001 | Emissão de Nota Fiscal (consulta parâmetros de despesa) |
| MCB002 | Consulta contábil referente a bens |
| MFC002 | Movimentos financeiros vinculados a bens |
| MFC003 | Movimentos financeiros vinculados a bens |
| MFC020 | Movimentos financeiros vinculados a bens |
Campos envolvidos
| Campo | Tabela | Tipo | Obrigatório | Chave |
|---|---|---|---|---|
CD_EMPRESA | BENS | INTEGER | Sim (validação BeforePost) | Sim (parte da PK) |
Nota: O campo
CD_EMPRESAtambém existe em outras tabelas manipuladas pela MFI012 (IMPOSTOBENS,CENARIOBEM,TRANSFERENCIABENS,PARMDESPESABEM), mas neste documento nos referimos ao campo da tabelaBENS(aba Dados do Bem), que é o contexto documentado pelo inventário (dsBENS).
Contexto principal — Cadastro do Bem
| O que faz | Detalhe |
|---|---|
| Identifica a empresa proprietária do bem | Informado manualmente ou pelo atalho <F9> |
| Valor padrão | Preenchido automaticamente com sessao.empresa.cd_empresa na inclusão |
| Editabilidade | Editável na inclusão; bloqueado na edição (ReadOnly = True) |
| Obrigatório | Sim — erro "É obrigatório informar a empresa!" no BeforePost da tabela BENS |
Busca (<F9>) | Abre pesquisa na tabela EMPRESA; só funciona se o campo não estiver readonly |
| Propagação | O valor é replicado para campos derivados como CD_EMPRNFE, CD_EMPRDEPREC |
Simulação passo a passo
- Acesse MFI012 — Cadastro/Depreciação de Bens.
- Clique em Incluir (novo registro).
- Observe que o campo Empresa já vem preenchido com o código da empresa da sua sessão.
- Para selecionar outra empresa, clique no campo e pressione
<F9>. - Na janela de busca, selecione a empresa desejada e confirme.
- O código da empresa é atribuído ao registro do bem.
- Preencha os demais campos obrigatórios (Data de Aquisição, Descrição, Tipo de Implantação, Pessoa da NF, etc.).
- Salve o registro.
Resultado esperado: O bem é cadastrado vinculado à empresa informada. O campo fica travado para edição após a gravação. O mesmo código de empresa é replicado automaticamente para os campos CD_EMPRNFE (empresa da NF) e CD_EMPRDEPREC (empresa de depreciação).
Exceção / Importante: Na edição de um bem já gravado, o campo
CD_EMPRESAfica bloqueado (ReadOnly). Para mudar a empresa de depreciação posteriormente, use o campoCD_EMPRDEPRECna aba "Parâmetros de Depreciação", desde que o bem não possua depreciação gerada — caso contrário, o sistema exibe: "O bem já possui depreciação gerada. Verifique!".
Regras de validação identificadas
| Regra | Origem | Comportamento |
|---|---|---|
| Campo obrigatório no BeforePost | tabBENSBeforePost (UdmMFI012.pas:559) | Se CD_EMPRESA vazio → erro "É obrigatório informar a empresa!" e foco no campo edtCD_EMPRESA |
| Validação de empresa do bem pai | tabBENSCD_BEMPAIValidate | Impede vincular bem pai de empresa diferente — erro "O Bem não está cadastrado ou pertence a outra empresa!" |
| Replicação automática na inclusão | tabBENSBeforeInsert (UdmMFI012.pas:703) | CD_EMPRESA recebe sessao.empresa.cd_empresa ao iniciar um novo registro |
<F9> só funciona se editável | edtCD_EMPRESAKeyDown (UMFI012.pas:3109) | Checa not(tabBENSCD_EMPRESA.ReadOnly) antes de permitir a busca |
Uso em queries SQL na tela
O campo CD_EMPRESA é utilizado como filtro em diversas consultas internas da MFI012, incluindo:
- Depreciações existentes:
WHERE D.CD_EMPRESA = :CD_EMPRESA - Transferências de bens:
WHERE TB.CD_EMPBEM = :CD_EMPBEM - Cento de custo do bem, impostos, cenários: todas filtradas por empresa
- Stored procedure
RECALCULA_DEPRECIACAO(':CD_EMPRESA', ...)ao recalcular depreciação
Procedures impactadas
Rotinas Delphi com referência direta ao campo na MFI012
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
tabBENSCD_EMPRESAValidate | source/MFI012/UdmMFI012.pas | 431 / 1174 | Validação do campo empresa no dataset BENS |
tabBENSBeforePost | source/MFI012/UdmMFI012.pas | 559 | Valida CD_EMPRESA não vazio, exibe foco no campo |
tabBENSBeforeInsert | source/MFI012/UdmMFI012.pas | 703 | Define CD_EMPRESA := sessao.empresa.cd_empresa |
edtCD_EMPRESAKeyDown | source/MFI012/UMFI012.pas | 3104 | Lookup <F9> na tabela EMPRESA |
Propagação CD_EMPRDEPREC | source/MFI012/UMFI012.pas | 895 | CD_EMPRDEPREC := CD_EMPRESA |
Tabelas secundárias alimentadas por CD_EMPRESA do bem
| Tabela | Uso |
|---|---|
IMPOSTOBENS | Recebe CD_EMPRESA do bem principal na inclusão |
CENARIOBEM | Recebe CD_EMPRESA do bem principal na inclusão |
TRANSFERENCIABENS | Recebe CD_EMPRESA como CD_EMPBEM na inclusão |
PARMDESPESABEM | Utilizada para definir rateio de despesa por bem |
Scripts SQL — Candidatos por uso da tabela
Nenhuma referência direta ao campo CD_EMPRESA específico na tabela BENS foi encontrada em Scripts/. Existem dezenas de procedures genéricas que recebem CD_EMPRESA como parâmetro (ex: ATUALIZA_CONTACONTABIL, ARRUMA_MASCARACONTA, AJUSTA_SALDOCC_ZERAMENTO), mas são procedimentos de manutenção geral do ERP, não específicos ao contexto de bens da MFI012.