CD_PERFILGASTOSGERAIS — Parâmetro de Perfis (Gastos Gerais)
Tela de configuração: TPO041 — Parâmetros de Importação Matéria-Prima
Componente: edtCD_PERFILGASTOSGERAIS (TDBEdit)
Tabela: PARMIMPMATPRIMA.CD_PERFILGASTOSGERAIS
FK: RPARMIMPMATPRIMA_PERIFLGASTOS → PERFIL(CD_PERFIL)
Valor padrão: vazio (campo nullable). Preenchido via <F9> com resultado da busca de perfil.
O que faz
| O que faz | Detalhe |
|---|
| Define perfil de Gastos Gerais | Armazena o código de um perfil (PERFIL.CD_PERFIL) que agrupa insumos de gastos gerais e fichas técnicas para validação de itens na formação de preço de venda. |
Editável / lookup <F9> | O usuário final usa <F9> para abrir a busca da tabela PERFIL e selecionar o perfil desejado. |
| Valida existência | O campo valida se o código informado existe na tabela PERFIL; caso contrário, gera a exceção E-0250. |
| Usado em procedures de custo | Referenciado nas procedures RETORNA_STPERFILFORMPRECOVENDA e RETORNA_CUSTOITEMFORMPRECOVENDA para determinar se um item pertence ao perfil de gastos gerais e aplicar as regras de composição de preço. |
Procedures impactadas
| Rotina | Arquivo | O que faz |
|---|
edtCD_PERFILGASTOSGERAISKeyDown | source/TPO041/UTPO041.pas:280 | Captura <F9> e abre busca PERFIL. Se houver resultado (result.Count > 0), atribui CD_PERFIL ao campo. |
tabPARMIMPMATPRIMACD_PERFILGASTOSGERAISValidate | source/TPO041/UdmTPO041.pas:161 | Valida se o perfil existe em PERFIL. Se não encontrar, dispara JException.Create('E-0250'). Preenche o campo descritivo DS_PERFILPERFILGASTOSGERAIS. |
| Procedure | Evidência de uso |
|---|
RETORNA_STPERFILFORMPRECOVENDA | Lê CD_PERFILGASTOSGERAIS de PARMIMPMATPRIMA e verifica se o item está no perfil (ITEMPERFIL.I.CD_PERFIL = V_CD_PERFILGASTOSGERAIS). Se encontrar, retorna O_ST_PERFIL = 'S'. |
RETORNA_CUSTOITEMFORMPRECOVENDA | Usa CD_PERFILGASTOSGERAIS (código 'G') quando I_ST_VALIDAPERFIL = 'G' para filtrar os itens da ficha de produção pelo perfil de gastos gerais (ITEMPERFIL IPF ON(IPF.CD_ITEM = P.CD_MATERIAPRIMA AND IPF.CD_PERFIL = V_CD_PERFILGASTOSGERAIS)). |
Regras de comportamento
E-0250: Se o usuário digitar um código que não existe na tabela PERFIL, ao sair do campo ou salvar, o sistema dispara a exceção E-0250 e impede o salvamento.
Simulação passo a passo
- Acesse TPO041.
- Localize o campo Perfis — Gastos Gerais + Fichas Técnicas.
- Digite um código inexistente (ex:
999999).
- Tente sair do campo ou salvar.
- O sistema exibe a mensagem E-0250 (perfil não encontrado).
Resultado esperado: A operação é bloqueada e o usuário deve corrigir o código informado.
Preenchimento via busca (<F9>)
| O que faz | Detalhe |
|---|
| Acionada por | Tecla <F9> sobre o campo |
| Destino da busca | Tabela PERFIL (cadastro de perfis) |
| Retorno | CD_PERFIL é preenchido automaticamente; o campo descritivo exibe DS_PERFIL |
Simulação passo a passo
- Acesse TPO041.
- Posicione o cursor no campo Perfis — Gastos Gerais + Fichas Técnicas.
- Pressione
<F9>.
- Uma janela de busca abre listando os perfis cadastrados (código + descrição).
- Selecione o perfil desejado (ex: perfil 10, "Gastos Gerais — Linha ABC").
- Confirme a seleção; o campo é preenchido com
10 e o descritivo exibe "Gastos Gerais — Linha ABC".
- Clique Salvar.
Resultado esperado: O perfil de gastos gerais é associado à empresa e passará a ser usado na validação de itens das procedures de formação de preço.
| O que faz | Detalhe |
|---|
| Procedure | RETORNA_STPERFILFORMPRECOVENDA(I_CD_EMPRESA, I_CD_ITEM) → O_ST_PERFIL |
| Regra | Se CD_PERFILGASTOSGERAIS estiver informado e o item (CD_ITEM) pertencer a esse perfil (tabela ITEMPERFIL), retorna 'S'; caso contrário, prossegue avaliando os demais perfis. Se nenhum perfil se aplicar, retorna 'N'. |
Simulação passo a passo
- Configure
CD_PERFILGASTOSGERAIS = 10 em TPO041.
- No cadastro de perfis, associe o produto "Parafuso M6" (item 200) ao perfil 10 via
ITEMPERFIL.
- Execute a rotína de formação de preço para o item 200.
- A procedure
RETORNA_STPERFILFORMPRECOVENDA retorna 'S' (item pertence ao perfil).
Resultado esperado: O sistema identifica que o item está no perfil de gastos gerais e aplica as regras específicas de composição de custo e margem associadas a esse perfil.
Exceção / Importante: Se CD_PERFILGASTOSGERAIS estiver vazio (NULL), a procedure RETORNA_STPERFILFORMPRECOVENDA pula a validação desse perfil e continua avaliando os demais (Semi-acabado, Embalagem, Mão de Obra 1, Mão de Obra 2). Se todos estiverem vazios, retorna 'N'.
| O que faz | Detalhe |
|---|
| Procedure | RETORNA_CUSTOITEMFORMPRECOVENDA(...) |
| Gatilho | Quando I_ST_VALIDAPERFIL = 'G', a procedure usa V_CD_PERFIL = V_CD_PERFILGASTOSGERAIS para filtrar itens da ficha pelo perfil. |
| Resultado | Apenas as matérias-primas associadas ao perfil de gastos gerais entrarão na composição do custo calculado. |
Simulação passo a passo
- Configure
CD_PERFILGASTOSGERAIS = 5 em TPO041.
- Vincule os itens de gasto (ex: "Embalagem Padrão", "Etiqueta") ao perfil 5 na tabela
ITEMPERFIL.
- Acione a rotina de cálculo de custo com
I_ST_VALIDAPERFIL = 'G'.
- A procedure filtra as matérias-primas da ficha de produção, mantendo apenas aquelas cujo
CD_ITEM + CD_PERFIL = 5 em ITEMPERFIL.
Resultado esperado: O custo calculado considera apenas os insumos pertencentes ao perfil de Gastos Gerais configurado, excluindo itens fora do perfil.
Exceção / Importante: O parâmetro I_ST_VALIDAPERFIL (passado por quem chama a procedure) determina qual perfil será utilizado. O código 'G' aponta para CD_PERFILGASTOSGERAIS. Os demais identificadores são: 'S' (Semi-acabado), 'E' (Embalagem), 'M' (Mão de Obra 1), 'O' (Mão de Obra 2).
Telas impactadas
| Tela / Módulo | Como é impactada |
|---|
| TPO041 — Parâmetros de Importação Matéria-Prima | Tela de configuração direta. Exibe o campo editável com busca <F9> e validação ao salvar. |
Telas que chamam RETORNA_STPERFILFORMPRECOVENDA | Recebem 'S' ou 'N' informando se o item pertence ao perfil de gastos gerais configurado. Telas de formação de preço de venda. |
Telas que chamam RETORNA_CUSTOITEMFORMPRECOVENDA | O cálculo de custo considera apenas itens do perfil de gastos gerais quando I_ST_VALIDAPERFIL = 'G'. |
Campos envolvidos
| Campo | Tabela | Tipo | Regra |
|---|
CD_PERFILGASTOSGERAIS | PARMIMPMATPRIMA | INTEGER (nullable) | FK → PERFIL(CD_PERFIL) |
DS_PERFILPERFILGASTOSGERAIS | View/query interna (JOIN) | VARCHAR | Descrição do perfil via LEFT JOIN PERFIL PGG ON(PGG.CD_PERFIL = P.CD_PERFILGASTOSGERAIS). |
Tabela comparativa resumida
| Aspecto | Detalhe |
|---|
| Obrigatoriedade | Opcional (campo nullable). Sem impacto direto se deixar vazio. |
| Validação | De existir em PERFIL (exceção E-0250 se não existir). |
| Preenchimento | Manual com digitação ou <F9> (busca PERFIL). |
| Consumo principal | RETORNA_STPERFILFORMPRECOVENDA (validação) e RETORNA_CUSTOITEMFORMPRECOVENDA (cálculo de custo 'G'). |
| FK constraint | RPARMIMPMATPRIMA_PERIFLGASTOS → PERFIL(CD_PERFIL). |