CD_CENTROCUSTO — Centro de Custo Padrão do Usuário
Tela de configuração: ADM012 — Parâmetros do Usuário
Tabela: PARMUSUARIO.CD_CENTROCUSTO
Tipo: INTEGER (DOM_INTEGER)
Valor padrão: vazio (campo não preenchido)
Lookup: <F9> abre consulta de Centros de Custo (tabela CENTROCUSTO)
Resumo
| O que faz | Detalhe |
|---|
| Define o centro de custo padrão do usuário | Valor é gravado no campo CD_CENTROCUSTO da tabela PARMUSUARIO |
Busca por <F9> | Abre a tabela CENTROCUSTO filtrando por empresa da sessão |
Validação no Validate | Confere existência na tabela CENTROCUSTO com TP_CENTROCUSTO = 'A' (tipo Analítico) e ST_ATIVO = 'S' |
| Campo editável | O usuário pode digitar o código manualmente ou usar <F9> para pesquisar |
| Descrição exibida | Após validar, preenche o campo descritivo DS_CENTROCUSTO |
Telas impactadas
- ADM012 — Parâmetros do Usuário (tela de configuração do próprio campo)
- ADM013 — Cadastro de Usuários (duplicação de usuário copia este campo)
- CCB005 — Centro de Custo (plano anual, filtros)
- CFC001 — Fluxo de Caixa (consulta centros de resultado/custo)
- CNF001 — Notas Fiscais (utiliza centro de custo do cadastro da empresa/usuário)
Campos envolvidos
| Campo | Tabela | Tipo | Obrigatório |
|---|
CD_CENTROCUSTO | PARMUSUARIO | INTEGER | Não |
DS_CENTROCUSTO | PARMUSUARIO | (descriptor) | Não — preenchido automaticamente após validação |
Opções disponíveis
Este campo é um edit numérico livre — não possui opções discretas (S/N/T/etc.). O comportamento é único e descrito abaixo.
Preenchimento padrão (valor definido pelo usuário)
| O que faz | Detalhe |
|---|
| Editável | Sim — o usuário pode digitar o código diretamente |
| Bloqueado | Não |
| Exige | Existência valida em CENTROCUSTO com TP_CENTROCUSTO = 'A' e ST_ATIVO = 'S' |
| Restrição | Somente centros de custo da empresa ativa do usuário |
Simulação passo a passo
- Acesse a tela ADM012 — Parâmetros do Usuário.
- Localize o campo
CD_CENTROCUSTO no formulário.
- Digite diretamente o código do centro de custo (ex:
1050) ou pressione <F9> para abrir a consulta.
- Na consulta de Centros de Custo, selecione o centro desejado (ex:
1050 — Departamento Financeiro).
- Salve o registro (
<Ctrl+S> ou botão Salvar).
Resultado esperado: O código CD_CENTROCUSTO é gravado no perfil do usuário e a descrição DS_CENTROCUSTO é exibida ao lado. Em operações subsequentes (orçamentos, notas fiscais, contas a pagar/receber), esse centro de custo será utilizado como padrão do usuário.
Exceção / Importante:
- O centro de custo informado deve existir na tabela
CENTROCUSTO para a empresa do usuário, com TP_CENTROCUSTO = 'A' (Analítico) e ST_ATIVO = 'S'. Caso contrário, a validação dispara um erro: "O Centro de Custo não está cadastrado! Verifique [TCB004]".
TCB004 é a tela de cadastro de Centros de Custo — é onde se cria/manutenção os registros válidos.
- A duplicação de usuário (tela ADM013) copia este campo para o novo registro (
PM.CD_CENTROCUSTO).
- O campo é opcional na tabela — se não preenchido, não há centro de custo padrão para o usuário.
Procedures impactadas
| Rotina | Arquivo | Evidência |
|---|
TfrmADM012.edtCD_CENTROCUSTOKeyDown | source/ADM012/UADM012.pas:848 | Lookup <F9> na tabela CENTROCUSTO |
TdmADM012.tabPARMUSUARIOCD_CENTROCUSTOValidate | source/ADM012/UdmADM012.pas:539 | Validação existência + tipo A + ativo |
TfrmADM013.btnDuplicaUsuarioClick | source/ADM013/UADM013.pas:474 | Copia PM.CD_CENTROCUSTO na duplicação |
TfrmPlanoContas.* (múltiplas) | source/ADM010/UfrmPlanoContas.pas | Usa CD_CENTROCUSTO em SQLs do plano de contas |
TfrmCCB005.* (múltiplas) | source/CCB005/UCCB005.pas | Filtros e validações de centro de custo |
TfrmCFC001.* (múltiplas) | source/CFC001/UCFC001.pas | Consulta CENTROCUSTO em fluxo de caixa |
TfrmCNF001.* (múltiplas) | source/CNF001/UCNF001.pas | Utiliza centro de custo em notas fiscais |
Referências SQL diretas ao campo CD_CENTROCUSTO
| Procedure/View | Arquivo | Contexto |
|---|
AJUSTA_SALDOCC_ZERAMENTO | Scripts/AJUSTA_SALDOCC_ZERAMENTO.sql:17 | Variável local |
CONTABILIZA_ESTOQUE | Scripts/CONTABILIZA_ESTOQUE.sql:17 | Variável local |
EXECUTA_ZERAMENTOCC | Scripts/EXECUTA_ZERAMENTOCC.sql:11 | Variável local |
GERA_DRECC | Scripts/GERA_DRECC.sql:5 | Parâmetro de entrada |
GERA_MOVTOCONTABIL | Scripts/GERA_MOVTOCONTABIL.sql:21 | Variável local |
RETORNA_CENTROCUSTOCFC001 | Scripts/RETORNA_CENTROCUSTOCFC001.sql:10 | Parâmetro de saída |
RETORNA_CENTROCUSTOCONTAS | Scripts/RETORNA_CENTROCUSTOCONTAS.sql:15 | Parâmetro de saída |
INSERE_ITEMNOTACC | Scripts/INSERE_ITEMNOTACC.sql:12 | Variável local |
LANCAMENTO_COMPOSTO | Scripts/LANCAMENTO_COMPOSTO.sql:28 | Variável local |
GRAVA_MOVTOCONTABILCCNOTA | Scripts/GRAVA_MOVTOCONTABILCCNOTA.sql:11 | Variável local |
Nota: As procedures CANCELA_NOTAFISCAL, CONTROLE_CAIXA, PERMISSAO_CAIXA, GERA_ETIQUETABALANCA, VERIFICA_BLOQUEIO e outras consultam a tabela PARMUSUARIO, mas não referenciam o campo CD_CENTROCUSTO literalmente. Validar antes de afirmar impacto funcional direto.
Tabela comparativa resumida
| Aspecto | Valor |
|---|
| Campo | CD_CENTROCUSTO |
| Tabela | PARMUSUARIO |
| Tipo | INTEGER |
| Obrigatório | Não |
| Padrão | Vazio |
| Editável | Sim |
| Lookup | <F9> → tabela CENTROCUSTO |
| Validação | TP_CENTROCUSTO = 'A' e ST_ATIVO = 'S' |
| Error | "O Centro de Custo não está cadastrado! Verifique [TCB004]" |
| Copiado na duplicação | Sim (ADM013) |