CD_EMPRESA - Parâmetro de Empresa (OFI001)
Tela de configuração: OFI001 - Parâmetros da Oficina
Localização: Aba "Parâmetros"
Tabela:PARMOFICINA.CD_EMPRESA
Componente:edtCD_EMPRESA(campo editável)
Tipo:INTEGER(NOT NULL)
Valor padrão: Valor herdado dePARMUSUARIO.CD_EMPRESAna inicialização da tela
Telas impactadas
| Tela | Descrição | Impacto |
|---|---|---|
| OFI001 | Parâmetros da Oficina | Tela principal de configuração; campo exibido na aba "Parâmetros" |
| ADM001 | Cadastro de Usuários | Validação e cópia de empresa entre módulos (tabPARMUSUARIOCD_EMPRESA) |
Campos envolvidos
| Campo | Tabela | Tipo | Obrigatoriedade |
|---|---|---|---|
CD_EMPRESA | PARMOFICINA | INTEGER | Sim (PK) |
CD_EMPRESA | PARMUSUARIO | INTEGER | Sim (parte da PK) |
Opções disponíveis
Este parâmetro não possui opções enumeradas. Trata-se de um campo numérico que identifica a empresa a qual os parâmetros de oficina se referem.
| O que faz | Detalhe |
|---|---|
| Identifica a empresa | Campo chave primária que vincula todos os demais parâmetros da tabela PARMOFICINA a uma empresa específica |
| Sincroniza com PARMUSUARIO | Na abertura da tela, o valor de CD_EMPRESA de PARMOFICINA é copiado para PARMUSUARIO (via tabPARMUSUARIOCD_EMPRESA.AsInteger := tabPARMOFICINACD_EMPRESA.AsInteger) |
| Controla escopo de parâmetros | Todos os demais campos de PARMOFICINA (ex: TP_PRECOSERVICO, ST_OBRIGAKM, NR_DIASGARANTIA) são filtrados por essa empresa |
Simulação passo a passo
- Acesse a tela OFI001 — Parâmetros da Oficina.
- Observe a aba "Parâmetros".
- Localize o campo "Empresa" (
CD_EMPRESA) — ele já estará preenchido com o código da empresa configurada no parâmetro do usuário. - O campo é editável; para alterar, informe o código de uma empresa válida e salve.
- Salve o registro (
<Ctrl+S>ou botão Salvar).
Resultado esperado: O registro de parâmetros de oficina fica vinculado à empresa informada. Todos os demais parâmetros da tela (preço de serviço, obrigatoriedade de KM, dias de garantia etc.) passam a vigorar para essa empresa.
Exceção / Importante:
CD_EMPRESAé chave primária da tabelaPARMOFICINA. Não é possível ter dois registros de parâmetros para a mesma empresa.- O valor é sincronizado com
PARMUSUARIO.CD_EMPRESA(configurado em ADM001 — Cadastro de Usuários). Se o parâmetro de usuário apontar para uma empresa diferente, a tela pode carregar o registro errado ou nenhum registro.- O campo não pode ser vazio (
NOT NULL). Se não informado, o save falhará.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
tabUSUARIOEMPRESACD_EMPRESAValidate | source/ADM001/UdmADM001.pas | 78 | Validação do campo CD_EMPRESA em USUARIOEMPRESA |
TdmADM001.tabUSUARIOEMPRESABeforePost | source/ADM001/UdmADM001.pas | 174 | if (dmADM001.tabUSUARIOEMPRESACD_EMPRESA.AsString = '') — impede empresa vazia |
TdmADM001.tabUSUARIOCD_EMPRPADRAOValidate | source/ADM001/UdmADM001.pas | 210 | Consulta usando E.CD_EMPRESA |
TdmADM001.tabUSUARIOEMPRESACD_EMPRESAValidate | source/ADM001/UdmADM001.pas | 219 | Validação de empresa no módulo de usuário |
TdmADM001.tabUSUARIOEMPRESAAfterPost | source/ADM001/UdmADM001.pas | 242 | tabUSUARIOCD_EMPRPADRAO.AsString := tabUSUARIOEMPRESACD_EMPRESA.AsString |
editCD_EMPRESAKeyDown | source/ADM001/UfrmADM001.pas | 156 | Handler de teclado para campo de empresa |
TfrmADM001.editCD_EMPRESAKeyDown | source/ADM001/UfrmADM001.pas | 503 | Handler de teclado (implementação) |
TfrmADM001.editCD_EMPRPADRAOExit | source/ADM001/UfrmADM001.pas | 639 | Sincroniza CD_EMPRESA entre tabelas de parâmetro |
TdmOFI001 (inicialização) | source/OFI001/UdmOFI001.pas | 426 | tabPARMUSUARIOCD_EMPRESA.AsInteger := tabPARMOFICINACD_EMPRESA.AsInteger |
Referências SQL diretas ao campo
| Procedure/View | Arquivo | Linha | Evidência |
|---|---|---|---|
AJUSTA_CALCULOIMPOSTO_IND_TOT | Scripts/AJUSTA_CALCULOIMPOSTO_IND_TOT.sql | 4 | Parâmetro I_CD_EMPRESA integer |
AJUSTA_NR_DOCUMENTO_SAT | Scripts/AJUSTA_NR_DOCUMENTO_SAT.sql | 5 | CD_EMPRESA integer |
AJUSTE_FORMACAOPRECOVENDA | Scripts/AJUSTE_FORMACAOPRECOVENDA.sql | 4 | I_CD_EMPRESA DOM_INTEGER |
ATUALIZA_ABATIMENTODEVOLUCAO | Scripts/ATUALIZA_ABATIMENTODEVOLUCAO.sql | 4 | I_CD_EMPRESA integer |
ATUALIZA_PRECOVENDA | Scripts/ATUALIZA_PRECOVENDA.sql | 4 | I_CD_EMPRESA INTEGER |
ATUALIZA_PROMOCAOEZ | Scripts/ATUALIZA_PROMOCAOEZ.sql | 4 | I_CD_EMPRESA DOM_INTEGER |
| + dezenas de outras | Scripts/ | — | O campo CD_EMPRESA é amplamente usado como parâmetro de escopo em scripts de atualização do sistema |
Candidatas por uso da tabela PARMOFICINA
Estas procedures/views referenciam a tabela PARMOFICINA (e, em alguns casos, fazem join por CD_EMPRESA), mas a evidencia disponível não cita o campo literalmente em todas:
| Procedure/View | Arquivo | Linha | Evidência |
|---|---|---|---|
PARCELA_FINANC_MNF017 | Scripts/PARCELA_FINANC_MNF017.sql | 59 | INNER JOIN PARMOFICINA O ON (O.CD_EMPRESA = S.CD_EMPRESA) |
PARCELA_FINANCIAMENTO | Scripts/PARCELA_FINANCIAMENTO.sql | 77 | INNER JOIN PARMOFICINA O ON (O.CD_EMPRESA = S.CD_EMPRESA) |
REABRE_OS | Scripts/REABRE_OS.sql | 90 | FROM PARMOFICINA P |
RETORNA_MOTIVOBLOQUEIO | Scripts/RETORNA_MOTIVOBLOQUEIO.sql | 19 | from PARMOFICINA p |
RETORNA_PRECOITEM | Scripts/RETORNA_PRECOITEM.sql | 68 | FROM PARMOFICINA O |
VERIFICA_BLOQUEIO | Scripts/VERIFICA_BLOQUEIO.sql | 160 | FROM PARMOFICINA |
VIEW_DOCUMENTOSBLOQUEADOS | Scripts/VIEW_DOCUMENTOSBLOQUEADOS.sql | 161 | LEFT JOIN PARMOFICINA PO ON (PO.CD_EMPRESA = E.CD_EMPRESA) |
VIEW_ROF004 | Scripts/VIEW_ROF004.sql | 47 | FROM PARMOFICINA p |
VIEW_ROF004B | Scripts/VIEW_ROF004B.sql | 130 | 'INNER JOIN PARMOFICINA PO ON (PO.CD_EMPRESA = OS.CD_EMPRESA)' |
VIEW_ROF008 | Scripts/VIEW_ROF008.sql | 41 | FROM PARMOFICINA P |
Nota: Não foi encontrado impacto direto de subopções para este parâmetro — ele é um campo simples de identificação de empresa, sem comportamento condicional por valor.