Pular para o conteúdo principal

Parâmetro Tipo de Movimentação no Controle de Entrega

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → aba Controle Entrega (pagControleEntrega / grupo grpControleEntrega - "Parâmetros de Controle de Entrega") - rótulo "Tp. Mov. Cont. Entrega" (Label95) Tabela: PARMFATUR.TP_MOVCONTENTREGA Valor padrão: A (Ambas)

Define quais movimentações (normais, mestras ou ambas) geram itens no controle de entrega. O filtro é aplicado sobre a coluna MOVIMENTACAO.ST_MESTRA na montagem da grade de agendamento em TfrmEntrega (shared unit jControleEntrega). Só é relevante quando ST_ENTREGA <> 'N' - o combo é habilitado/desabilitado pelo OnChange de cmbST_ENTREGA em UMFA001.pas:1872,1880. Quando ST_ENTREGA = 'N', o valor é forçado para 'A' (UMFA001.pas:1886).

Além de decidir o universo de itens na agenda de entrega, funciona como gatilho de exibição de Nota Mestra em MNF019 (itens de observação só aparecem no modo 'M') e condiciona a habilitação do parâmetro ST_CONFIRMAENTREGAREMESSA na própria MFA001 (UMFA001.pas:2470-2482).

Telas impactadas​

MóduloCódigoUso
Parâmetros de FaturamentoMFA001Único local de configuração (cmbTP_MOVCONTENTREGA) - UMFA001.dfm:11288-11316
Pedido de VendaMPD002Lê o valor da PARMFATUR e passa em ParametrosEntrega[11] para ControleEntrega(...) (UMPD002.pas:3250); também seleciona em UdmMPD002.pas:5754
Nota Fiscal de SaídaMNF002Passa em ParametrosEntrega[11] (UMNF002.pas:4588); carrega em UdmMNF002.pas:10505
Itens da Nota de EntregaMNF019Em FormShow ajusta layout da grade: se diferente de 'M' esconde colunas e exibe grade "enxuta"; se 'M' exibe lblDS_OBSERVACAO e memoDS_OBSERVACAO (UMNF019ITEMNOTA.pas:610-620)
Consulta interna de parâmetrosMNF008, MCO006Apenas seleciona o campo junto de outros parâmetros de PARMFATUR (UdmMNF008.pas:770, UdmMCO006.pas:2114) - não altera comportamento

Procedures/Views impactadas​

Nenhuma stored procedure ou view do banco lê diretamente TP_MOVCONTENTREGA (grep em Scripts/ não retornou resultados). Todo o comportamento é implementado em código Delphi:

ObjetoArquivoPapel
CarregarControleEntregasource/jControleEntrega/UDadosEntrega.pas linhas 102-158Recebe o valor em Parametros[11]. Linhas 154-158: quando = 'N' adiciona AND M.ST_MESTRA = 'N' ao filtro da grade; quando = 'M' adiciona AND M.ST_MESTRA = 'M'; quando = 'A' (ou vazio) não aplica filtro sobre ST_MESTRA
ControleEntrega (wrapper)source/jControleEntrega/jEntrega.pasFunção pública que repassa iParametros para CarregarControleEntrega

Campos envolvidos​

Tabela.CampoTipoDescrição
PARMFATUR.TP_MOVCONTENTREGACHAR(1) / FixedCharO próprio parâmetro (UdmMFA001.dfm:1900-1905)
PARMFATUR.ST_ENTREGACHAR(1)Parâmetro "pai" - quando = 'N', desabilita este combo e força = 'A' (UMFA001.pas:1880,1886)
PARMFATUR.ST_CONFIRMAENTREGAREMESSACHAR(1)Combo dependente - só é habilitado quando TP_MOVCONTENTREGA = 'M' (UMFA001.pas:2472-2481); quando <> 'M' é forçado a 'N'
MOVIMENTACAO.ST_MESTRACHAR(1)Coluna filtrada no SQL do agendamento. Valores esperados: 'N' (normal) e 'M' (mestra)
CONTROLEENTREGA.*-Tabela-alvo do agendamento (populada após passar pelo filtro deste parâmetro)

Opções disponíveis​

N - Normal​

O que fazDetalhe
Filtro em TfrmEntregaAdiciona AND M.ST_MESTRA = 'N' ao SQL da grade de agendamento (UDadosEntrega.pas:155-156)
Itens exibidos no agendamentoSomente itens cuja movimentação não é mestra (MOVIMENTACAO.ST_MESTRA = 'N')
ST_CONFIRMAENTREGAREMESSADesabilitado e forçado a 'N' - sem confirmação de entrega em remessa (UMFA001.pas:2476-2480)
Layout de MNF019Em FormShow, grade da nota de entrega usa layout "enxuto": coluna [2] com Width = 294, colunas [4] e [5] invisíveis; lblDS_OBSERVACAO e memoDS_OBSERVACAO permanecem ocultos (UMNF019ITEMNOTA.pas:611-614)
Cenário típicoEmpresas que não operam com Nota Mestra - a entrega controla apenas movimentos de venda normais

Simulação passo a passo​

  1. Em MFA001 → aba Controle Entrega → Controle de Entrega (ST_ENTREGA) = Pedido Atendido (P)
  2. O combo Tp. Mov. Cont. Entrega (cmbTP_MOVCONTENTREGA) fica habilitado → selecione Normal (N)
  3. Salve os parâmetros (F6) - PARMFATUR.TP_MOVCONTENTREGA = 'N'
  4. Observe que cmbST_CONFIRMAENTREGAREMESSA fica desabilitado e seu valor vai para 'N' (UMFA001.pas:2478-2480)
  5. Abra um pedido em MPD002 com itens usando movimentos normais (MOVIMENTACAO.ST_MESTRA = 'N') e um item com movimento mestra (ST_MESTRA = 'M', típico de nota mestra)
  6. Salve o pedido → ControleEntrega recebe ParametrosEntrega[11] = 'N'
  7. CarregarControleEntrega (UDadosEntrega.pas:155-156) aplica AND M.ST_MESTRA = 'N' → abre TfrmEntrega mostrando apenas os itens com movimento normal; os de nota mestra não aparecem na agenda

Resultado esperado: O controle de entrega trabalha apenas com movimentos normais. Itens originados de movimentação mestra ficam de fora da agenda. Útil para empresas que não utilizam fluxo de Nota Mestra/Filha.


M - Mestra​

O que fazDetalhe
Filtro em TfrmEntregaAdiciona AND M.ST_MESTRA = 'M' ao SQL da grade de agendamento (UDadosEntrega.pas:157-158)
Itens exibidos no agendamentoSomente itens cuja movimentação é mestra (MOVIMENTACAO.ST_MESTRA = 'M')
ST_CONFIRMAENTREGAREMESSAHabilitado - torna-se possível exigir confirmação de entrega em remessas (UMFA001.pas:2472-2475)
Layout de MNF019Em FormShow, grade da nota de entrega exibe o label e memo de observação (lblDS_OBSERVACAO.Visible := True, memoDS_OBSERVACAO.Visible := True) - importante para indicar pendências/observações em remessas (UMNF019ITEMNOTA.pas:617-620)
Cenário típicoEmpresas que operam fluxo de Nota Mestra (remessa) → Nota Filha (faturamento), tipicamente distribuidores que entregam primeiro e faturam depois, com controle de observações por item de remessa

Simulação passo a passo​

  1. Em MFA001 → aba Controle Entrega → Controle de Entrega (ST_ENTREGA) = Nota Fiscal (S) ou Pedido Atendido (P)
  2. Selecione Tp. Mov. Cont. Entrega = Mestra (M)
  3. O combo cmbST_CONFIRMAENTREGAREMESSA é imediatamente habilitado (UMFA001.pas:2474) - configure conforme necessidade
  4. Salve (F6) - PARMFATUR.TP_MOVCONTENTREGA = 'M'
  5. Abra uma Nota Fiscal de saída em MNF002 usando um movimento marcado como mestra (MOVIMENTACAO.ST_MESTRA = 'M') e outro normal
  6. Salve a nota → ControleEntrega recebe ParametrosEntrega[11] = 'M'
  7. CarregarControleEntrega (UDadosEntrega.pas:157-158) aplica AND M.ST_MESTRA = 'M' → TfrmEntrega exibe apenas os itens da movimentação mestra
  8. Ao abrir MNF019 (Itens da Nota de Entrega), FormShow detecta TP_MOVCONTENTREGA = 'M' e mostra o memo de observação para digitação de notas da remessa (UMNF019ITEMNOTA.pas:617-620)

Resultado esperado: Apenas movimentações mestras entram no controle de entrega, e a tela de itens de entrega passa a ter campo de observação. Fluxo adequado para distribuidores com remessa/faturamento separados.


A - Ambas (padrão)​

O que fazDetalhe
Filtro em TfrmEntregaNenhum filtro adicional sobre MOVIMENTACAO.ST_MESTRA - o if (Parametros[11] = 'N' ... else if 'M' ...) em UDadosEntrega.pas:154-158 não entra em nenhum ramo
Itens exibidos no agendamentoTodos os itens (movimentos normais e mestras)
ST_CONFIRMAENTREGAREMESSADesabilitado e forçado a 'N' (UMFA001.pas:2476-2480) - só habilita em 'M' puro
Layout de MNF019Como 'A' <> 'M', segue o layout "enxuto" (colunas 4 e 5 ocultas, grid sem memo de observação) - igual ao comportamento da opção N (UMNF019ITEMNOTA.pas:610-614)
Valor forçadoÉ o que AfterInsert grava ao criar um novo PARMFATUR (UdmMFA001.pas:561) e é o valor de fallback quando ST_ENTREGA volta para 'N' (UMFA001.pas:1886)
Cenário típicoDefault conservador: empresa agenda entrega de tudo, sem separar normal de mestra - adequado quando o usuário não quer diferenciar os fluxos

Simulação passo a passo​

  1. Em MFA001 → aba Controle Entrega → Controle de Entrega (ST_ENTREGA) = Pedido Atendido (P)
  2. Deixe Tp. Mov. Cont. Entrega em Ambas (A) - padrão ao criar a PARMFATUR
  3. Salve (F6) - PARMFATUR.TP_MOVCONTENTREGA = 'A'
  4. Abra um pedido com itens mistos (movimentos normais e mestras)
  5. ControleEntrega recebe ParametrosEntrega[11] = 'A'
  6. Como 'A' <> 'N' e 'A' <> 'M', nenhum if em UDadosEntrega.pas:154-158 adiciona filtro de ST_MESTRA → TfrmEntrega lista todos os itens do pedido
  7. Em MNF019, layout "enxuto" prevalece (memo de observação oculto)

Resultado esperado: Todos os itens (independente do tipo de movimentação) entram na agenda de entrega. O confirmador de remessa (ST_CONFIRMAENTREGAREMESSA) permanece inativo.


Interação com ST_CONTENTREGA / ST_CONTENTREGACONF / ST_ENTREGA​

  • ST_ENTREGA (pai): quando = 'N' (sem controle de entrega), cmbST_ENTREGAChange (UMFA001.pas:1880) desabilita cmbTP_MOVCONTENTREGA e, se a PARMFATUR estiver em edição, força TP_MOVCONTENTREGA := 'A' e ST_CONFIRMAENTREGAREMESSA := 'N' (UMFA001.pas:1885-1886). Quando <> 'N', o combo é habilitado (UMFA001.pas:1872).
  • ST_CONFIRMAENTREGAREMESSA (filho): cmbTP_MOVCONTENTREGAChange habilita/desabilita o combo e zera o valor quando <> 'M' (UMFA001.pas:2470-2481). Fluxo resumido:
    • TP_MOVCONTENTREGA = 'M' → ST_CONFIRMAENTREGAREMESSA pode ser editado (Sim/Não).
    • TP_MOVCONTENTREGA = 'N' ou 'A' → ST_CONFIRMAENTREGAREMESSA desabilitado e forçado a 'N'.
  • ST_CONTENTREGA (irmão): outro parâmetro da mesma aba, independente deste - filtra por ITEM.TP_ITEM (Produto vs Produto+Serviço), ver ST_CONTENTREGA. Os dois operam em colunas SQL diferentes e os filtros se combinam na mesma query (UDadosEntrega.pas:151-158).
  • ST_CONTENTREGACONF (não confundir): parâmetro de conferência (separação de ordem/pedido), totalmente diferente deste. Ver ST_CONTENTREGACONF quando disponível.
  • TP_EXCLUSAOENTREGADEVOLUCAO: outro irmão da aba, relacionado a exclusão de entregas de devolução. Não interage diretamente com TP_MOVCONTENTREGA, mas pertence ao mesmo grupo grpControleEntrega.

Tabela Comparativa Resumida​

OpçãoNomeFiltro em TfrmEntregaST_CONFIRMAENTREGAREMESSALayout MNF019Cenário típico
NNormalAND M.ST_MESTRA = 'N'Desabilitado (forçado 'N')Enxuto (sem memo observação)Empresa que não usa Nota Mestra
MMestraAND M.ST_MESTRA = 'M'Habilitado (Sim/Não)Completo (com memo observação)Distribuidor com remessa/faturamento separados
AAmbas (padrão)Sem filtro de ST_MESTRADesabilitado (forçado 'N')Enxuto (sem memo observação)Default conservador - agenda tudo

Referências no Código Fonte​

ComboBox e valor padrão​

ArquivoLinha(s)Trecho
source/MFA001/UMFA001.dfm11109-11117pagControleEntrega: TTabSheet com Caption = 'Controle Entrega' e grpControleEntrega: TGroupBox - Caption = ' Parâmetros de Controle de Entrega '
source/MFA001/UMFA001.dfm11161-11167Label do combo - Caption = 'Tp. Mov. Cont. Entrega'
source/MFA001/UMFA001.dfm11288-11316cmbTP_MOVCONTENTREGA: TwwDBComboBox com Items.Strings = ('Normal'#9'N', 'Mestra'#9'M', 'Ambas'#9'A'), DataField = 'TP_MOVCONTENTREGA', OnChange = cmbTP_MOVCONTENTREGAChange
source/MFA001/UMFA001.pas523Declaração cmbTP_MOVCONTENTREGA: TwwDBComboBox
source/MFA001/UMFA001.pas826Declaração do handler cmbTP_MOVCONTENTREGAChange
source/MFA001/UMFA001.pas1872, 1880, 1886cmbST_ENTREGAChange habilita/desabilita e força TP_MOVCONTENTREGA := 'A' quando ST_ENTREGA = 'N'
source/MFA001/UMFA001.pas2470-2482cmbTP_MOVCONTENTREGAChange controla o combo filho cmbST_CONFIRMAENTREGAREMESSA
source/MFA001/UdmMFA001.pas270Declaração tabPARMFATURTP_MOVCONTENTREGA: TStringField
source/MFA001/UdmMFA001.pas561AfterInsert: tabPARMFATURTP_MOVCONTENTREGA.AsString := 'A' (valor padrão)
source/MFA001/UdmMFA001.dfm1900-1905Campo tabPARMFATURTP_MOVCONTENTREGA (FieldName = 'TP_MOVCONTENTREGA', FixedChar = True, Size = 1)
source/MFA001/UdmMFA001.dfm283, 3163TP_MOVCONTENTREGA nos SELECTs do tabPARMFATUR
source/MFA001/UdmMFA001.dfm2439, 2611, 2863TP_MOVCONTENTREGA nos INSERT/UPDATE gerados pelo FireDAC

Consumidores (leem o parâmetro)​

ArquivoLinhaUso
source/MPD002/UMPD002.pas3250ParametrosEntrega[11] := ParmFatur.Values['TP_MOVCONTENTREGA'] ao chamar ControleEntrega na gravação do pedido
source/MPD002/UdmMPD002.pas5754SELECT ... P.TP_MOVCONTENTREGA ... FROM PARMFATUR P
source/MNF002/UMNF002.pas4588ParametrosEntrega[11] := ParmFatur.Values['TP_MOVCONTENTREGA'] ao chamar ControleEntrega na gravação da nota
source/MNF002/UdmMNF002.pas10505SELECT ... P.TP_MOVCONTENTREGA ...
source/MNF019/UMNF019ITEMNOTA.pas610-620Em FormShow: if (ParmFatur.Values['TP_MOVCONTENTREGA'] <> 'M') define layout enxuto; caso = 'M', exibe label e memo de observação
source/MNF008/UdmMNF008.pas770SELECT ... P.TP_MOVCONTENTREGA ... (leitura em conjunto com outros parâmetros)
source/MCO006/UdmMCO006.pas2114SELECT ... P.TP_MOVCONTENTREGA ... (leitura em conjunto com outros parâmetros)
source/jControleEntrega/UDadosEntrega.pas123Comentário: 11 - Tp_Nota - Utilizado na MPD002/MNF002 (obs: comentário histórico, o uso real é como TP_MOVCONTENTREGA)
source/jControleEntrega/UDadosEntrega.pas154-158Uso efetivo: if (Parametros[11] <> '') then if (Parametros[11] = 'N') then iTp := iTp + 'AND M.ST_MESTRA = ''N''' else if (Parametros[11] = 'M') then iTp := iTp + ' AND M.ST_MESTRA = ''M''';

Scripts SQL (Firebird)​

Nenhuma referência direta a TP_MOVCONTENTREGA foi encontrada em Scripts/ - o parâmetro é consumido exclusivamente por código Delphi (shared unit jControleEntrega). Os filtros resultantes sobre MOVIMENTACAO.ST_MESTRA são concatenados dinamicamente na query montada em UDadosEntrega.pas.