ST_VARIOSITENSCONTRATO - Permite Vários Itens no Contrato
Tela de configuração: MFA001 — Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 2 Tabela:
PARMFATUR.ST_VARIOSITENSCONTRATO(CHAR(1), NOT NULL) Valor padrão:N(Desmarcado)
Controla se o módulo de Contratos (TFA015) permite cadastrar vários itens por contrato e como as Notas Fiscais geradas a partir desses contratos são montadas e observadas.
Telas impactadas
| Tela | Descrição | Impacto |
|---|---|---|
| TFA015 — Contratos | Cadastro de contratos de mensalidade | Controla visibilidade das abas Itens e Histórico, validação de totais ao salvar |
| MNF010 — Geração de NF por Mensalidade | Geração de NF a partir de mensalidades de contrato | Inclui coluna DS_SERVICO nos itens da NF; desabilita rateio de Centro de Resultado quando ativo |
| MNF007 — Nota Fiscal | Emissão de NF em geral | Adiciona observação com número do contrato na NF |
| MNF019 — Nota Fiscal (Devolução/Remessa) | Devolução e remessa de NF | Adiciona observação com referência ao contrato na NF de devolução ou remessa |
Campos envolvidos
| Campo | Tabela | Observação |
|---|---|---|
ST_VARIOSITENSCONTRATO | PARMFATUR | Parâmetro principal |
VL_MENSALIDADE | CONTRATO | Valor da mensalidade do contrato |
VL_SUMCONTRATOITEM | cdsTOTALIZADOR | Soma dos valores dos itens do contrato |
DS_SERVICO | ITEMNOTA | Descrição do serviço no item da NF |
DS_OBSNOTA | NOTA | Observação da nota fiscal |
DS_MSGCONTRATO | PARMFATUR | DS_MSGCONTRATO (configurado em MFA001 — Parâmetros de Faturamento, aba Opção 2) — texto complementar exibido na geração de NF de mensalidade |
Opções disponíveis
N — Desmarcado (padrão) — Contrato com item único
| O que faz | Detalhe |
|---|---|
| Abas Itens e Histórico ficam ocultas na TFA015 | Contrato aceita apenas um item (valor único em VL_MENSALIDADE) |
NF gerada pela mensalidade não inclui DS_SERVICO no item | Observação da NF permanece padrão |
| Rateio de Centro de Resultado é executado normalmente na MNF010 | Contas de débito e crédito passam pela validação de rateio |
| NF em MNF007 e MNF019 não recebe referência ao contrato na observação | — |
Simulação passo a passo
- Acesse TFA015 — Contratos.
- Abra ou crie um contrato para o cliente.
- Observe que as abas Itens e Histórico não aparecem — o contrato trabalha apenas com o campo
VL_MENSALIDADE. - Salve o contrato normalmente (sem validação de itens).
- Gere a NF da mensalidade pela tela MNF010.
- Verifique que a NF gerada contém um único item sem a coluna
DS_SERVICOpreenchida. - Confirme que o rateio de Centro de Resultado foi executado para as contas envolvidas.
Resultado esperado: Contrato com valor único, NF simples sem referência contratual na observação.
S — Marcado — Contrato com vários itens
| O que faz | Detalhe |
|---|---|
| Abas Itens e Histórico ficam visíveis na TFA015 | Permitem cadastrar múltiplos itens/produtos por contrato |
Ao salvar, o sistema valida se a soma dos itens confere com VL_MENSALIDADE | Se divergir, exibe erro W-0771 e bloqueia o salvamento |
NF gerada pela mensalidade inclui DS_SERVICO em cada item | Popula com DS_OBSERVACAO da duplicata |
| Rateio de Centro de Resultado é desabilitado na MNF010 | Itens de contrato não passam pela validação de rateio |
| NF em MNF007 recebe prefixo "Ref. Contrato Número: XXXX" na observação | Concatenado antes do texto padrão |
| NF em MNF019 (devolução) recebe prefixo "Devolução Ref. Contrato Número: XXXX" | — |
| NF em MNF019 (remessa) recebe prefixo "Remessa Ref. Contrato Número: XXXX" | — |
Simulação passo a passo
- Acesse MFA001 — Parâmetros de Faturamento, aba Opção 2.
- Marque o checkbox "Permite Vários Itens no Contrato [TFA015]" e salve.
- Acesse TFA015 — Contratos.
- Crie um contrato para o cliente A com
VL_MENSALIDADE= R$ 100,00. - Acesse a aba Itens (agora visível) e adicione dois itens: Produto X — R$ 60,00 e Produto Y — R$ 40,00.
- Clique em Salvar — a soma (R$ 100,00) confere com a mensalidade, o contrato é salvo com sucesso e os itens são gravados via
salvaMovimentoContratoNF. - Gere a NF da mensalidade pela tela MNF010.
- Verifique que a NF contém dois itens com
DS_SERVICOpreenchido para cada um. - Verifique que a observação da NF não passou pela validação de rateio de Centro de Resultado.
- Abra a NF gerada em MNF007 ou MNF019 e confira que
DS_OBSNOTAexibe "Ref. Contrato Número: 1234" (ou "Devolução Ref. Contrato Número: 1234" / "Remessa Ref. Contrato Número: 1234").
Resultado esperado: Contrato com múltiplos itens validados, NF com descrição de serviço por item e referência ao contrato na observação.
Exceção / Importante:
- Se a soma dos itens não conferir com
VL_MENSALIDADE, o sistema exibe o erro W-0771 com os valores divergentes (ex: "R$ 90,00 ≠ R$ 100,00") e bloqueia o salvamento do contrato.- Quando este parâmetro está ativo, o rateio de Centro de Resultado é ignorado na geração da NF de mensalidade (MNF010). Isso afeta tanto a conta de débito quanto a conta de crédito.
- O parâmetro
DS_MSGCONTRATO(configurado em MFA001 — Parâmetros de Faturamento, aba Opção 2) é lido em conjunto com este parâmetro na tela MNF010, populando o campo de complemento/mensagem da NF.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Efeito |
|---|---|---|---|
TfrmTFA015.iniciar | source/TFA015/UTFA015.pas | 366 | Exibe/oculta abas Itens e Histórico conforme valor |
TfrmTFA015.btnSalvarClick | source/TFA015/UTFA015.pas | 566 | Valida soma dos itens vs mensalidade antes de salvar |
TfrmMSGMNF010.FormShow | source/MNF010/UMSGMNF010.pas | 873 | Lê parâmetro e armazena em variável booleana paramVariosItensContrato |
| Geração de itens da NF (MNF010) | source/MNF010/UMSGMNF010.pas | 317, 331, 398, 413 | Inclui DS_SERVICO no INSERT de ITEMNOTA quando ativo |
| Rateio Centro de Resultado (MNF010) | source/MNF010/UMSGMNF010.pas | 422, 463 | Pula rateio de débito e crédito quando ativo |
TdmMNF007.RetornaObsNota | source/MNF007/UdmMNF007.pas | 4977 | Prefixa observação da NF com referência ao contrato |
TdmMNF007.retornaObsContrato | source/MNF007/UdmMNF007.pas | 5697 | Monta texto "Ref. Contrato Número: XXXX" |
Grava_NotaFiscal | source/MNF019/UdmMNF019.pas | 1401 | Prefixa observação da NF com referência ao contrato |
retornaContratoNotaObservacao | source/MNF019/UMNF019.pas | 3701 | Monta texto de devolução/remessa com referência ao contrato |
Referências SQL diretas ao campo
Nenhuma procedure SQL em Scripts/ referencia diretamente ST_VARIOSITENSCONTRATO. O campo é consumido exclusivamente por rotinas Delphi.
Tabela comparativa resumida
| Aspecto | N (padrão) | S (marcado) |
|---|---|---|
| Aba Itens visível (TFA015) | ✗ | ✓ |
| Aba Histórico visível (TFA015) | ✗ | ✓ |
| Validação soma itens = mensalidade | — | ✓ (erro W-0771 se divergir) |
DS_SERVICO preenchido no item da NF | ✗ | ✓ |
| Rateio Centro de Resultado na MNF010 | ✓ | ✗ |
| Referência ao contrato na obs. da NF (MNF007) | ✗ | ✓ |
| Referência ao contrato na devolução/remessa (MNF019) | ✗ | ✓ |