ST_INFORMAPESOMANUAL
Com base em todas as evidencias ja coletadas, tenho o suficiente para gerar o documento. Vou criar o Markdown.
---
sidebar_label: "ST_INFORMAPESOMANUAL"
title: "ST_INFORMAPESOMANUAL — Informar Peso Manual"
parametro: "ST_INFORMAPESOMANUAL"
tabela: "PARMUSUARIO"
displayed_sidebar: "tecnicaSidebar"
---
# ST_INFORMAPESOMANUAL — Informar Peso Manual
> **Tela de configuração:** [ADM012 - Parâmetros do Usuário](/telas/administracao/adm012-parametros)
> **Campo:** `PARMUSUARIO.ST_INFORMAPESOMANUAL`
> **Componente:** `cmbST_INFORMAPESOMANUAL` (combobox)
> **Valor padrão:** `S` (Sim)
## Telas impactadas
| Tela | Descrição | Impacto |
|------|-----------|---------|
| MPD039 | (tela de pesagem) | Habilita/bloqueia campos de entrada e saída de peso |
## Campos envolvidos
| Tabela | Campo | Tipo | Padrão |
|--------|-------|------|--------|
| `PARMUSUARIO` | `ST_INFORMAPESOMANUAL` | `DOM_CHAR1` (CHAR(1)) | `'S'` |
## Opcoes disponiveis
| Opção | Valor | O que faz | Detalhe |
|-------|-------|-----------|---------|
| **Sim** | `S` | Permite digitar peso manualmente | Os campos `PS_ENTRADA` e `PS_SAIDA` ficam editáveis (`ReadOnly := False`) |
| **Não** | `N` | Bloqueia digitação de peso | Os campos `PS_ENTRADA` e `PS_SAIDA` ficam travados (`ReadOnly := True`) |
### Simulacao passo a passo — S (Sim)
1. Acesse **ADM012 — Parâmetros do Usuário** (`ADM012`).
2. Localize o campo **ST_INFORMAPESOMANUAL**.
3. Selecione a opção **Sim**.
4. Salve o registro.
5. Abra a tela de pesagem (MPD039).
6. Verifique que os campos **Peso Entrada** (`PS_ENTRADA`) e **Peso Saída** (`PS_SAIDA`) estão editáveis.
**Resultado esperado:** O operador pode digitar o peso manualmente nos campos de entrada e saída da tela de pesagem.
### Simulacao passo a passo — N (Não)
1. Acesse **ADM012 — Parâmetros do Usuário** (`ADM012`).
2. Localize o campo **ST_INFORMAPESOMANUAL**.
3. Selecione a opção **Não**.
4. Salve o registro.
5. Abra a tela de pesagem (MPD039).
6. Verifique que os campos **Peso Entrada** (`PS_ENTRADA`) e **Peso Saída** (`PS_SAIDA`) estão travados (cinza, não editáveis).
**Resultado esperado:** O operador não consegue digitar peso manualmente; o peso deve ser informado por meio de balança/leitor integrado.
## Comportamento observavel no codigo
Quando `ST_INFORMAPESOMANUAL = 'S'`, a tela MPD039 define:
```pascal
frmMPD039.edtPS_ENTRADA.ReadOnly := False;
frmMPD039.edtPS_SAIDA.ReadOnly := False;
Quando ST_INFORMAPESOMANUAL = 'N':
frmMPD039.edtPS_ENTRADA.ReadOnly := True;
frmMPD039.edtPS_SAIDA.ReadOnly := True;
A consulta é executada no módulo dmMPD039 filtrando por empresa e usuário da sessão:
SELECT ST_INFORMAPESOMANUAL
FROM PARMUSUARIO
WHERE CD_EMPRESA = :CD_EMPRESA
AND CD_USUARIO = :CD_USUARIO
Tabela de parametros relacionados
| Parametro | Tela | Finalidade |
|---|---|---|
PC_MAXDESCONTO | ADM012 | Desconto máximo permitido ao usuário |
ST_AUTORIZADOR | ADM012 / TFA008 | Define se o usuário atua como autorizador |
ST_OCULTASANDOCONTAS | ADM012 | Oculta opções de saldo de contas |
Referencias no codigo fonte
Rotinas Delphi com referencia direta ao campo
| Rotina | Arquivo | Trecho |
|---|---|---|
TdmADM012.tabPARMUSUARIOAfterInsert | source/ADM012/UdmADM012.pas:255 | tabPARMUSUARIOST_INFORMAPESOMANUAL.AsString := 'S'; |
Busca_Parametros | source/MPD039/UdmMPD039.pas:142 | SELECT ST_INFORMAPESOMANUAL FROM PARMUSUARIO ... |
TfrmADM013.btnDuplicaUsuarioClick | source/ADM013/UADM013.pas:475 | Copia o campo ao duplicar usuário |
TfrmADM013.btnDuplicaUsuarioClick | source/ADM013/UADM013.pas:526 | Grava o campo na duplicação: nulo(dataset.fieldbyName('ST_INFORMAPESOMANUAL').AsString,'S') |