Pular para o conteúdo principal

QT_MAXPROVAS - Quantidade máxima de provas (experimentações) por horário nas locações

Tela: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Locações → GroupBox Parâmetros de Locações → campo Qtde Máxima de Provas por Horário (label lbl em UMFA001.dfm:10731-10743 com Caption = 'Qtde Máxima de Provas por Horário', posicionado em Left=44, Top=167; o edit edtQT_MAXPROVAS em UMFA001.dfm:10980-10999, Left=221, Top=163). Tabela: PARMFATUR.QT_MAXPROVAS Tipo: Numérico inteiro (quantidade de provas por janela de horário). DOM_INTEGER no DDL (docs/schema/tables/PARMFATUR.sql:173); TIntegerField no client (UdmMFA001.pas:224). O TDBEdit não possui máscara, formatação adicional nem Hint; alinhamento do TField é taCenter (UdmMFA001.dfm:1638). Valor padrão: NULL — o tabPARMFATURAfterInsert em UdmMFA001.pas:434-... não atribui valor inicial a QT_MAXPROVAS. O registro de parâmetros nasce sem limite configurado. Validação (MFA001): Não há OnValidate no tabPARMFATURQT_MAXPROVAS (UdmMFA001.dfm:1637-1641 não expõe OnValidate). Qualquer inteiro — positivo, zero ou negativo — é aceito na tela de parâmetros.

O que o parâmetro faz​

QT_MAXPROVAS foi projetado para armazenar a quantidade máxima de provas (experimentações de locação) que podem ser agendadas para o mesmo horário, funcionando em conjunto com o campo vizinho HR_INTERVALOAGEND (intervalo mínimo entre agendamentos) dentro do módulo de Locações do ERP.

No contexto do JunsoftERP, "prova" refere-se ao ato do cliente experimentar o item em locação (por exemplo, pneus de recapagem, produtos com regime de locação/teste disponibilizados na aba Locações). O parâmetro seria usado como limitador de capacidade: "a agenda só aceita N provas simultâneas em cada janela de horário".

:::warning Parâmetro configurado mas não consumido no código-fonte atual A busca em todo o source/ e Scripts/ do JunsoftERP V2 não encontra nenhum consumidor de QT_MAXPROVAS fora da própria MFA001. Apenas os 4 arquivos da MFA001 referenciam o campo (SELECT/INSERT/UPDATE do PARMFATUR e declaração do TIntegerField). Nenhuma stored procedure em Scripts/ usa o campo. Nenhum módulo de locação, agendamento ou pedidos o lê.

Ou seja: o parâmetro pode ser preenchido em MFA001 e é persistido em PARMFATUR, mas nenhuma regra do ERP hoje reage ao valor. Trata-se de um campo reservado/planejado para funcionalidade futura de controle de agendamento de provas nas locações, ou de legado cujo consumidor foi removido. :::

Telas impactadas​

MóduloCódigoPapel
Parâmetros de FaturamentoMFA001Produtora (única). Cadastra/edita o valor no campo edtQT_MAXPROVAS (aba Locações → GroupBox Parâmetros de Locações, UMFA001.dfm:10980) e o persiste via SELECT/INSERT/UPDATE de PARMFATUR em UdmMFA001.dfm (linhas 239, 2581, 2819, 3119).

Nenhuma tela consumidora foi encontrada no código-fonte atual (source/). O grep QT_MAXPROVAS retorna apenas arquivos do próprio MFA001.

Procedures impactadas​

Nenhuma stored procedure em Scripts/ referencia QT_MAXPROVAS (grep em D:/Desenvolvimento/JunsoftERP_V2/Scripts/ retornou zero matches).

Campos envolvidos​

CampoTabelaPapel
QT_MAXPROVASPARMFATURQuantidade máxima de provas por horário (este parâmetro)
HR_INTERVALOAGENDPARMFATURIntervalo mínimo entre agendamentos — campo vizinho na mesma GroupBox, compõe o mesmo conjunto semântico de "agendamento de provas de locação"
CD_TABLOCACAOLOC / CD_TROCASAILOC / CD_TROCAENTLOCPARMFATURDemais parâmetros do grupo Locações (tabela de preços e movimentações contábeis de troca)

Comportamento / Regra​

Valor = NULL (padrão após inserção)​

AspectoComportamento
Preenchimento em MFA001Campo nasce vazio no AfterInsert (não há default no UdmMFA001.pas:434).
Efeito funcionalNenhum — não há leitor do campo no código-fonte atual. O valor nulo é apenas persistido em PARMFATUR.QT_MAXPROVAS.

Resultado esperado: o ERP opera normalmente. Como nenhum módulo consulta QT_MAXPROVAS, a ausência do valor não restringe nem libera nada no fluxo atual de locações/agendamentos.

Valor = 0​

AspectoComportamento
Validação em MFA001Aceito (não há OnValidate).
Efeito funcionalNenhum — campo persistido como 0 mas não consumido.

Resultado esperado: o ERP armazena PARMFATUR.QT_MAXPROVAS = 0 e prossegue normalmente. Se/quando uma rotina futura passar a consumir este parâmetro com a semântica sugerida pelo label ("máximo de provas por horário"), o valor 0 provavelmente significaria "nenhuma prova permitida por horário" (interpretação típica de tetos numéricos) — mas isso depende da implementação que for agregada no futuro.

Valor > 0 (ex.: 3)​

Simulação passo a passo​

Pré-requisitos do cenário:

  • PARMFATUR.QT_MAXPROVAS = 3 (definido em MFA001 → Parâmetros → Locações).
  • PARMFATUR.HR_INTERVALOAGEND = 00:30:00 (intervalo mínimo de 30 minutos entre agendamentos, no mesmo GroupBox).
  • Empresa opera aluguel/locação de itens que incluem agendamento de "prova" (experimentação pelo cliente).
  1. Em MFA001 → aba Parâmetros → sub-aba Locações → GroupBox Parâmetros de Locações → informe Qtde Máxima de Provas por Horário = 3. Salve (F6).

  2. O valor é persistido via UPDATE em PARMFATUR (UdmMFA001.dfm:2819 — 'QT_MAXPROVAS = :QT_MAXPROVAS'):

    UPDATE PARMFATUR SET QT_MAXPROVAS = 3, ... WHERE CD_EMPRESA = :CD_EMPRESA
  3. Nenhum módulo Delphi lê o valor. Ao abrir qualquer outra tela (incluindo as telas de locação, pedidos, agendamentos), o valor 3 armazenado não produz nenhum efeito observável no comportamento atual do ERP.

  4. Efeito esperado caso a funcionalidade seja implementada no futuro (baseado na semântica do label "Qtde Máxima de Provas por Horário"):

    • Na tela de agendamento de prova de locação, o sistema contaria quantas provas já estão agendadas para a janela de horário (definida por HR_INTERVALOAGEND). Com Count < 3, aceitaria o novo agendamento; com Count >= 3, bloquearia com mensagem do tipo "Limite de N provas por horário atingido. Escolha outra janela.".
    • Essa lógica não está presente no código atual — é apenas a leitura semântica do par QT_MAXPROVAS + HR_INTERVALOAGEND.

Resultado esperado hoje: o valor é apenas armazenado. Nenhum efeito de negócio é produzido até que um consumidor seja implementado.


:::info Campo reservado / placeholder Configurar QT_MAXPROVAS na MFA001 não altera o comportamento do ERP na versão atual do código. Se você está tentando limitar provas/experimentações por horário e esperava que este parâmetro funcionasse, abra um chamado — a funcionalidade consumidora ainda não foi implementada (ou foi removida em algum momento da história do código). :::

:::warning Sem validação de valor negativo em MFA001 Diferente de NR_ACESSOLIMITE e outros campos numéricos, QT_MAXPROVAS não possui OnValidate em UdmMFA001.pas. Valores negativos e zero são aceitos silenciosamente. Como o campo não é consumido, a ausência de validação não produz impacto prático — mas caso um consumidor seja implementado no futuro, a validação deveria ser adicionada em paralelo. :::


Interações com outros parâmetros​

  • HR_INTERVALOAGEND (PARMFATUR, mesmo GroupBox em MFA001) — define a janela de tempo sobre a qual QT_MAXPROVAS seria aplicado. Os dois campos compõem semanticamente o par "capacidade (quantidade) × cadência (intervalo)" do agendamento de provas de locação. Hoje, também HR_INTERVALOAGEND não é consultado por nenhum outro módulo encontrado no source/.
  • CD_TABLOCACAOLOC — tabela de preço usada nas locações; define quanto custa a locação/prova, mas não interage com o limite quantitativo de QT_MAXPROVAS.

Referências no Código Fonte​

Delphi — MFA001 (cadastro do parâmetro — único local)​

ArquivoLinhasPapel
source/MFA001/UMFA001.dfm10731-10743TLabel lbl com Caption = 'Qtde Máxima de Provas por Horário' (label do campo)
source/MFA001/UMFA001.dfm10980-10999TDBEdit edtQT_MAXPROVAS com DataField = 'QT_MAXPROVAS', DataSource = dmMFA001.dsPARMFATUR, dentro de pagPARMAMETROS → PageParm → pagLocacao → GroupBox5 (Parâmetros de Locações)
source/MFA001/UMFA001.pas338Declaração edtQT_MAXPROVAS: TDBEdit
source/MFA001/UdmMFA001.pas224Declaração tabPARMFATURQT_MAXPROVAS: TIntegerField
source/MFA001/UdmMFA001.pas434-...tabPARMFATURAfterInsert não atribui default ao campo (nasce NULL)
source/MFA001/UdmMFA001.dfm239SELECT de PARMFATUR inclui PARMFATUR.QT_MAXPROVAS
source/MFA001/UdmMFA001.dfm1637-1641Definição do TIntegerField tabPARMFATURQT_MAXPROVAS (sem OnValidate)
source/MFA001/UdmMFA001.dfm2581INSERT em PARMFATUR inclui :QT_MAXPROVAS
source/MFA001/UdmMFA001.dfm2819UPDATE em PARMFATUR inclui QT_MAXPROVAS = :QT_MAXPROVAS
source/MFA001/UdmMFA001.dfm3119SELECT alternativo (segundo dataset) de PARMFATUR inclui PARMFATUR.QT_MAXPROVAS

Delphi — Consumidores​

Nenhum encontrado. O grep QT_MAXPROVAS em todo o D:/Desenvolvimento/JunsoftERP_V2/source/ retornou matches apenas nos 4 arquivos da MFA001.

DDL​

  • docs/schema/tables/PARMFATUR.sql:173 — QT_MAXPROVAS DOM_INTEGER, (sem NOT NULL, sem DEFAULT → permite NULL).

SQL — Procedures​

Nenhuma stored procedure em Scripts/ referencia QT_MAXPROVAS (grep em D:/Desenvolvimento/JunsoftERP_V2/Scripts/ retornou zero matches). O parâmetro não participa de nenhuma regra no banco de dados.