Parâmetro de Devolução de Notas (Saldo do Pedido de Origem)
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Notas Fiscais → Parâmetros de Notas (aba
pagNota→pagParametrosNF), rótulo "Devolução de Notas" Tabela:PARMFATUR.ST_DEVOLUCAOValor padrão:N(Não muda o Saldo do Pedido)
Telas impactadas
Este parâmetro está configurado no MFA001, é armazenado em PARMFATUR.ST_DEVOLUCAO e é propagado para a TStringList ParmFatur pelo jSessao (via os SELECTs em UdmMFA001.dfm:120, CPD009/UdmCPD009.dfm:578, RCA006/UdmRCA006.dfm:3327). Porém, nenhum consumidor Delphi foi localizado no código-fonte (não há nenhuma ocorrência de ParmFatur.Values['ST_DEVOLUCAO'], tabPARMFATURST_DEVOLUCAO.AsString ou similar fora do próprio MFA001).
| Módulo | Código | Papel |
|---|---|---|
| Parâmetros de Faturamento | MFA001 | Configura o parâmetro (único local onde o valor é definido/gravado) |
| Cópia de Parâmetros para Nova Empresa | CPD009 | Lê PARMFATUR.ST_DEVOLUCAO ao replicar a parametrização (linha 578 do UdmCPD009.dfm) |
| Relatório de Carregamento | RCA006 | Lê PARMFATUR.ST_DEVOLUCAO no SELECT consolidado de parâmetros (linha 3327 do UdmRCA006.dfm), mas não usa o valor para lógica |
Todas as outras ocorrências de
ST_DEVOLUCAOno código-fonte (MNF001, MNF002, MNF007, MNF026, MPD052, RNF004-030, RFI005-039, jFaturamento, jValidate, etc.) referem-se a outras tabelas —CFO.ST_DEVOLUCAO,MOVIMENTACAO.ST_DEVOLUCAO,NOTA.ST_DEVOLUCAOeITEMNOTA.ST_DEVOLUCAO— que são campos transacionais independentes do parâmetroPARMFATUR.ST_DEVOLUCAOe não representam consumidores deste parâmetro.
Procedures impactadas
Nenhuma stored procedure no diretório Scripts/ faz referência a PARMFATUR.ST_DEVOLUCAO (busca realizada em todo D:/Desenvolvimento/JunsoftERP_V2/Scripts/ — zero ocorrências).
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
ST_DEVOLUCAO | PARMFATUR | CHAR(1) | Parâmetro que, conforme o rótulo da UI, define se a emissão de nota de devolução deve "voltar o saldo do pedido da origem" |
Opções disponíveis
As duas opções estão definidas em source/MFA001/UMFA001.dfm:6752-6754:
Items.Strings = (
'Volta Saldo do Pedido da Origem'#9'S'
'Não muda o Saldo do Pedido'#9'N')
S - Volta Saldo do Pedido da Origem
| O que faz | Detalhe |
|---|---|
| Intenção declarada na UI | Ao emitir uma devolução, o saldo do pedido de origem deveria ser restituído (o item devolvido volta a ficar "em aberto" no pedido) |
| Onde está gravado | PARMFATUR.ST_DEVOLUCAO = 'S' |
| Consumidores no código Delphi | Nenhum consumidor efetivo localizado. Não há leitura de ParmFatur.Values['ST_DEVOLUCAO'] em nenhum .pas do projeto |
| Consumidores em SQL | Nenhuma procedure no diretório Scripts/ lê PARMFATUR.ST_DEVOLUCAO |
Simulação passo a passo
- Vá em MFA001 → aba Notas Fiscais → sub-aba Parâmetros de Notas
- No campo "Devolução de Notas" (combo
cmbST_DEVOLUCAO), selecioneVolta Saldo do Pedido da Origem - Grave (F6). Valor gravado em
PARMFATUR.ST_DEVOLUCAO = 'S' - Emita uma nota de devolução de um pedido já faturado em MNF007 ou MNF002
Resultado esperado: com base apenas no código fonte atual (Delphi + SQL), o comportamento efetivo do sistema é idêntico ao da opção N — nenhuma rotina lê este parâmetro para decidir se devolve ou não saldo ao pedido de origem. A expectativa descrita no rótulo da UI não está implementada no código-fonte analisado.
N - Não muda o Saldo do Pedido (padrão)
| O que faz | Detalhe |
|---|---|
| Intenção declarada na UI | A emissão de nota de devolução não altera o saldo do pedido original |
| Onde está gravado | PARMFATUR.ST_DEVOLUCAO = 'N' |
| Valor padrão em novo registro | Sim — definido em source/MFA001/UdmMFA001.pas:464 no evento AfterInsert: tabPARMFATURST_DEVOLUCAO.AsString := 'N' |
| Comportamento observável | Igual a S (nenhum consumidor) |
Simulação passo a passo
- Vá em MFA001 → aba Notas Fiscais → sub-aba Parâmetros de Notas
- No campo "Devolução de Notas", selecione
Não muda o Saldo do Pedido - Grave (F6). Valor gravado em
PARMFATUR.ST_DEVOLUCAO = 'N' - Emita uma nota de devolução
Resultado esperado: o saldo do pedido de origem permanece inalterado após a devolução — comportamento padrão do sistema (que ocorre independentemente do valor gravado, dado que nenhuma rotina consome este parâmetro).
Tabela Comparativa Resumida
| Valor | Rótulo (UI) | Gravado em PARMFATUR.ST_DEVOLUCAO | Consumidor efetivo | Comportamento observado |
|---|---|---|---|---|
S | Volta Saldo do Pedido da Origem | S | Nenhum | Igual a N (parâmetro dormente) |
N | Não muda o Saldo do Pedido | N (padrão) | Nenhum | Saldo do pedido de origem não é alterado pela devolução |
Nota técnica: este parâmetro aparece como dormente / não implementado no code-base atual. Ele é apenas configurado na UI do MFA001 (
UMFA001.dfm+UdmMFA001.pas), lido pelo jSessao junto aos demais parâmetros dePARMFATUR, e replicado peloCPD009ao copiar parâmetros para outra empresa. Nenhum módulo de devolução (MNF002, MNF007, MNF019, MNF026, MRC020, MPD043, MPD056, MPD076, etc.) testa o valor dePARMFATUR.ST_DEVOLUCAOpara decidir sobre o saldo do pedido de origem.
Referências no Código Fonte
Tela de configuração — MFA001
| Arquivo | Linha | Conteúdo |
|---|---|---|
source/MFA001/UMFA001.pas | 383 | Declaração do combo: cmbST_DEVOLUCAO: TwwDBComboBox; |
source/MFA001/UMFA001.dfm | 6060 | Label: Caption = 'Devolução de Notas' |
source/MFA001/UMFA001.dfm | 6061 | FocusControl = cmbST_DEVOLUCAO |
source/MFA001/UMFA001.dfm | 6733-6758 | Definição do combo cmbST_DEVOLUCAO (DataField, DataSource, Items.Strings com mapeamento S/N) |
source/MFA001/UMFA001.dfm | 6743 | DataField = 'ST_DEVOLUCAO' |
source/MFA001/UMFA001.dfm | 6752-6754 | Items.Strings = ('Volta Saldo do Pedido da Origem'#9'S', 'Não muda o Saldo do Pedido'#9'N') |
source/MFA001/UdmMFA001.pas | 108 | Declaração do TField: tabPARMFATURST_DEVOLUCAO: TStringField; |
source/MFA001/UdmMFA001.pas | 464 | Valor padrão em AfterInsert: tabPARMFATURST_DEVOLUCAO.AsString := 'N'; |
source/MFA001/UdmMFA001.dfm | 120 | Coluna lida no SELECT de PARMFATUR (CommandText da consulta principal) |
source/MFA001/UdmMFA001.dfm | 998-1001 | Definição do campo persistente tabPARMFATURST_DEVOLUCAO (FieldName, Size = 1) |
source/MFA001/UdmMFA001.dfm | 2350 | Coluna referenciada no SQL de INSERT de PARMFATUR |
source/MFA001/UdmMFA001.dfm | 2498 | Parâmetro :ST_DEVOLUCAO no INSERT |
source/MFA001/UdmMFA001.dfm | 2709 | Atualização no UPDATE: ST_DEVOLUCAO = :ST_DEVOLUCAO, |
source/MFA001/UdmMFA001.dfm | 3000 | Segunda ocorrência do SELECT (consulta de refresh) |
Módulos que apenas leem a coluna no SELECT de PARMFATUR (sem aplicar lógica)
| Arquivo | Linha | Observação |
|---|---|---|
source/CPD009/UdmCPD009.dfm | 578 | SELECT usado pelo CPD009 (Cópia de parâmetros entre empresas) — a coluna é copiada tal e qual |
source/RCA006/UdmRCA006.dfm | 3327 | SELECT do RCA006 (Relatório de Carregamento) — coluna consta no SELECT mas o valor não é usado em regra |
Stored Procedures (diretório Scripts/)
Nenhuma referência a PARMFATUR.ST_DEVOLUCAO foi localizada em D:/Desenvolvimento/JunsoftERP_V2/Scripts/.
Ocorrências de ST_DEVOLUCAO em outras tabelas (NÃO relacionadas a este parâmetro)
Para evitar confusão em futuras manutenções, estes são os outros campos ST_DEVOLUCAO existentes no modelo (NÃO são consumidores de PARMFATUR.ST_DEVOLUCAO):
| Campo | Usos típicos encontrados |
|---|---|
CFO.ST_DEVOLUCAO | jCommon/jValidate.pas:3832 (carregamento de CFO); MNF002/UdmMNF002.pas:9710 (valida se há CFOP de devolução na nota); jFaturamento/Nfe/jNFe.pas:1008, 2019 (cálculos fiscais) |
MOVIMENTACAO.ST_DEVOLUCAO | jCommon/jValidate.pas:3525-3590 (validação do tipo de movimentação); MNF002/UdmMNF002.pas:5458 (validação da movimentação do item da nota); MNF002/UMNF002.pas:5382 (filtro de pesquisa por movimentação) |
NOTA.ST_DEVOLUCAO / ITEMNOTA.ST_DEVOLUCAO | Vários módulos MNF*, MPD*, RNF*, RFI*, TFI002, TCB001, TCB010 (status transacional da nota/item de devolução) |
Essas ocorrências não devem ser interpretadas como consumidoras do parâmetro PARMFATUR.ST_DEVOLUCAO.