Pular para o conteúdo principal

TFA015 — Contrato de Serviços (enriquecimento)

Menu: Cadastros > Tabelas de Faturamento > Contrato de Serviços

Objetivo​

A tela TFA015 cadastra e mantém Contratos de Serviços (locação, mensalidades recorrentes, etc.), vinculando cliente, condições financeiras (forma/condição de pagamento, banco/agência), movimentação de serviço e, opcionalmente, itens locados e emissão automática de notas fiscais de mensalidade. Também oferece consulta/filtros de relatórios de contratos e uma ferramenta separada de reajuste percentual em lote das mensalidades.

Fluxo principal​

  1. Selecionar o Tipo de Contrato (F9 abre lista de tipos com TP_TIPOCONTRATO='S'). (Contratos) — source/TFA015/UTFA015.pas:793-816 (TfrmTFA015.edtCD_TIPOCONTRATOKeyDown)
  2. Informar a Pessoa (cliente); o sistema busca nome, ativa/inativa e o endereço automaticamente (ou pede escolha se houver mais de um). (Contratos) — source/TFA015/UdmTFA015.pas:288-328 (TdmTFA015.tabCONTRATOCD_PESSOAValidate)
  3. Preencher Data de Início, Vencimento da 1ª Parcela, Movimentação de Serviço, Forma de Pagamento e Valor da Mensalidade. (Contratos) — source/TFA015/UdmTFA015.pas:330-398 (TdmTFA015.tabCONTRATOBeforePost)
  4. Se 'Gera Nota Fiscal' = Sim, informar Série, Condição de Pagamento (tipo vencimento digitado) e Produto de Serviço. (Contratos) — source/TFA015/UdmTFA015.pas:364-377 (TdmTFA015.tabCONTRATOBeforePost)
  5. Se o parâmetro PARMFATUR.ST_VARIOSITENSCONTRATO = 'S', abrir a aba 'Itens' e lançar os itens locados (ou importar de notas de saída já emitidas para a pessoa) até que a soma bata com o valor da mensalidade. (Itens) — source/TFA015/UTFA015.pas:361-375 (iniciar)
  6. Gravar o contrato (F6/botão Salvar); o sistema gera o número do contrato automaticamente e pede para imprimir o contrato. (Contratos) — source/TFA015/UdmTFA015.pas:388-394 (TdmTFA015.tabCONTRATOBeforePost)
  7. Para emitir a nota fiscal de mensalidade, usar o botão 'Emitir Nota' que abre a tela MNF002 já com os dados do contrato. (Itens) — source/TFA015/UTFA015.pas:2700-2722 (TfrmTFA015.bitBtnEmitirNotaClick)

Campos obrigatórios​

CampoCondiçãoMensagemFonte
CD_TIPOCONTRATO (Tipo Contrato)sempre, ao salvarW-0560source/TFA015/UdmTFA015.pas:336-339 (TdmTFA015.tabCONTRATOBeforePost)
CD_PESSOA (Cliente)sempre, ao salvarW-0785source/TFA015/UdmTFA015.pas:340-343 (TdmTFA015.tabCONTRATOBeforePost)
CD_ENDERECO (Endereço)sempre, ao salvarW-0323source/TFA015/UdmTFA015.pas:344-347 (TdmTFA015.tabCONTRATOBeforePost)
DT_EMISSAO (Início do Contrato) / DT_VENCTOPARCELA (Vencimento 1ª Parcela)sempre, ao salvarW-0493source/TFA015/UdmTFA015.pas:348-355 (TdmTFA015.tabCONTRATOBeforePost)
CD_MOVIMENTACAO / CD_FORMAPAGTOsempre, ao salvarW-0328 / W-0326source/TFA015/UdmTFA015.pas:356-363 (TdmTFA015.tabCONTRATOBeforePost)
CD_SERIE / CD_CONDPAGTO / CD_ITEMquando ST_GERANOTA = 'S' (Gera Nota Fiscal = Sim)W-0786 / W-0324 / W-0085source/TFA015/UdmTFA015.pas:364-377 (TdmTFA015.tabCONTRATOBeforePost)
DT_VENCTOCONTRATO (Vencimento do Contrato)quando TP_VALIDADE = 'F' (Data Fixa)W-0493source/TFA015/UdmTFA015.pas:378-382 (TdmTFA015.tabCONTRATOBeforePost)
NR_VALIDADE (Prazo de Validade)quando TP_VALIDADE <> 'F'W-0096source/TFA015/UdmTFA015.pas:383-387 (TdmTFA015.tabCONTRATOBeforePost)
VL_MENSALIDADE (Valor Mensalidade)sempre, ao salvarW-0787source/TFA015/UdmTFA015.pas:395-398 (TdmTFA015.tabCONTRATOBeforePost)
CD_TIPOCONTA (Tipo de Contas)para informar o Histórico FinanceiroW-0784source/TFA015/UdmTFA015.pas:1007-1012 (TdmTFA015.tabCONTRATOCD_HISTORICOValidate)

Mensagens: causa e ação​

W-0560​

Causa: O usuário tentou salvar o contrato sem selecionar o Tipo do Contrato.

Ação: Selecionar o Tipo do Contrato (F9 para lista) antes de salvar.

Fonte: source/TFA015/UdmTFA015.pas:336-339 (TdmTFA015.tabCONTRATOBeforePost)

W-0785​

Causa: O contrato está sendo salvo sem uma Pessoa (cliente) vinculada.

Ação: Informar o código do cliente no campo Pessoa.

Fonte: source/TFA015/UdmTFA015.pas:340-343 (TdmTFA015.tabCONTRATOBeforePost)

W-0323​

Causa: O contrato não tem endereço selecionado para o cliente informado.

Ação: Selecionar o endereço da pessoa (F9) antes de salvar.

Fonte: source/TFA015/UdmTFA015.pas:344-347 (TdmTFA015.tabCONTRATOBeforePost)

W-0493​

Causa: Falta uma das datas obrigatórias do contrato: Início, Vencimento da 1ª Parcela ou Vencimento do Contrato (quando validade é Data Fixa).

Ação: Preencher a data indicada na mensagem antes de salvar.

Fonte: source/TFA015/UdmTFA015.pas:348-382 (TdmTFA015.tabCONTRATOBeforePost)

W-0328​

Causa: Faltou informar a Movimentação de Serviços do contrato.

Ação: Selecionar a Movimentação de Serviços (F9).

Fonte: source/TFA015/UdmTFA015.pas:356-359 (TdmTFA015.tabCONTRATOBeforePost)

W-0326​

Causa: Faltou informar a Forma de Pagamento do contrato.

Ação: Selecionar a Forma de Pagamento (F9).

Fonte: source/TFA015/UdmTFA015.pas:360-363 (TdmTFA015.tabCONTRATOBeforePost)

W-0786​

Causa: O contrato está marcado para gerar nota fiscal (Gera Nota = Sim) mas não tem Série de nota informada.

Ação: Informar a Série da Nota Fiscal ou mudar 'Gera Nota Fiscal' para Não/Pedido.

Fonte: source/TFA015/UdmTFA015.pas:364-368 (TdmTFA015.tabCONTRATOBeforePost)

W-0324​

Causa: O contrato gera nota fiscal mas não tem Condição de Pagamento informada.

Ação: Informar a Condição de Pagamento (do tipo vencimento digitado).

Fonte: source/TFA015/UdmTFA015.pas:369-372 (TdmTFA015.tabCONTRATOBeforePost)

W-0085​

Causa: O contrato gera nota fiscal mas não tem Produto de Serviço informado.

Ação: Informar o Produto de Serviço (F9).

Fonte: source/TFA015/UdmTFA015.pas:373-376 (TdmTFA015.tabCONTRATOBeforePost)

W-0096​

Causa: O Prazo de Validade não foi informado para um tipo de validade diferente de 'Data Fixa'.

Ação: Informar o número de dias/meses/anos de validade do contrato.

Fonte: source/TFA015/UdmTFA015.pas:383-387 (TdmTFA015.tabCONTRATOBeforePost)

W-0787​

Causa: O Valor da Mensalidade está em branco ao tentar salvar.

Ação: Informar o valor da mensalidade do contrato.

Fonte: source/TFA015/UdmTFA015.pas:395-398 (TdmTFA015.tabCONTRATOBeforePost)

W-1905​

Causa: O contrato tem Valor de Entrada e o vencimento da 1ª parcela caiu no mesmo mês da data de início do contrato.

Ação: Alterar o vencimento da 1ª parcela para o mês seguinte ao início do contrato.

Fonte: source/TFA015/UdmTFA015.pas:400-406 (TdmTFA015.tabCONTRATOBeforePost)

W-0788​

Causa: A data de vencimento da 1ª parcela informada é anterior à data de início (emissão) do contrato.

Ação: Corrigir a data de vencimento para ser igual ou posterior ao início do contrato.

Fonte: source/TFA015/UdmTFA015.pas:439-444 (TdmTFA015.tabCONTRATODT_VENCIMENTOValidate)

C-0789​

Causa: O vencimento da 1ª parcela ficou mais de um mês à frente da data atual.

Ação: Confirmar se a data está correta; se não confirmar, o sistema recusa a data (W-0202).

Fonte: source/TFA015/UdmTFA015.pas:446-449 (TdmTFA015.tabCONTRATODT_VENCIMENTOValidate)

W-0790​

Causa: Não existe nenhum Tipo de Contrato marcado como padrão (TP_TIPOCONTRATO='S') para novos contratos.

Ação: Cadastrar/marcar um Tipo de Contrato como padrão na tela de Tipo de Contrato.

Fonte: source/TFA015/UdmTFA015.pas:452-471 (TdmTFA015.tabCONTRATOBeforeInsert)

W-0791​

Causa: O código de Tipo de Contrato digitado não existe.

Ação: Selecionar um Tipo de Contrato válido (F9).

Fonte: source/TFA015/UdmTFA015.pas:473-488 (TdmTFA015.tabCONTRATOCD_TIPOCONTRATOValidate)

W-0792​

Causa: A Condição de Pagamento informada não é do tipo 'vencimento digitado'.

Ação: Escolher uma condição de pagamento cadastrada como vencimento digitado.

Fonte: source/TFA015/UdmTFA015.pas:495-506 (TdmTFA015.tabCONTRATOCD_CONDPAGTOValidate)

E-0272​

Causa: O código de Condição de Pagamento informado não existe no cadastro.

Ação: Cadastrar a condição de pagamento ou informar um código válido.

Fonte: source/TFA015/UdmTFA015.pas:495-506 (TdmTFA015.tabCONTRATOCD_CONDPAGTOValidate)

E-0273​

Causa: O código de Forma de Pagamento informado não existe no cadastro.

Ação: Cadastrar a forma de pagamento ou informar um código válido.

Fonte: source/TFA015/UdmTFA015.pas:511-563 (TdmTFA015.tabCONTRATOCD_FORMAPAGTOValidate)

E-0276​

Causa: A Movimentação informada é de Entrada (compra), não de Saída (serviço).

Ação: Selecionar uma movimentação do tipo Saída, cadastrada para operação de serviços.

Fonte: source/TFA015/UdmTFA015.pas:572-584 (TdmTFA015.tabCONTRATOCD_MOVIMENTACAOValidate)

W-0343​

Causa: A Movimentação informada está inativa.

Ação: Reativar a movimentação de serviço ou usar outra ativa.

Fonte: source/TFA015/UdmTFA015.pas:572-584 (TdmTFA015.tabCONTRATOCD_MOVIMENTACAOValidate)

E-0290​

Causa: O código de Movimentação informado não existe.

Ação: Selecionar uma movimentação cadastrada (F9).

Fonte: source/TFA015/UdmTFA015.pas:572-584 (TdmTFA015.tabCONTRATOCD_MOVIMENTACAOValidate)

W-0148​

Causa: A Série de nota fiscal informada não está cadastrada para a empresa e tipo de nota de Saída.

Ação: Cadastrar a série em Parâmetros de Nota (PARMNOTA) ou usar uma série existente.

Fonte: source/TFA015/UdmTFA015.pas:589-603 (TdmTFA015.tabCONTRATOCD_SERIEValidate)

E-0059​

Causa: O código de Produto de Serviço informado não existe no cadastro de itens.

Ação: Cadastrar o produto em Cadastros > Produtos (TPO001) ou informar um código válido.

Fonte: source/TFA015/UdmTFA015.pas:611-635 (TdmTFA015.tabCONTRATOCD_ITEMValidate)

W-0793​

Causa: O código de Banco informado não existe no cadastro.

Ação: Selecionar um banco válido (F9).

Fonte: source/TFA015/UdmTFA015.pas:675-691 (TdmTFA015.tabCONTRATOCD_BANCOValidate)

W-0794​

Causa: A Agência informada não existe para o banco selecionado.

Ação: Selecionar uma agência válida para o banco (F9).

Fonte: source/TFA015/UdmTFA015.pas:694-714 (TdmTFA015.tabCONTRATOCD_AGENCIAValidate)

W-0783​

Causa: O usuário tentou informar a Agência sem antes informar o Banco.

Ação: Informar o Banco primeiro e depois a Agência.

Fonte: source/TFA015/UdmTFA015.pas:699-701 (TdmTFA015.tabCONTRATOCD_AGENCIAValidate)

W-0784​

Causa: O usuário tentou informar o Histórico Financeiro sem antes informar o Tipo de Contas.

Ação: Informar o Tipo de Contas antes de escolher o Histórico.

Fonte: source/TFA015/UdmTFA015.pas:1011-1012 (TdmTFA015.tabCONTRATOCD_HISTORICOValidate)

W-0795​

Causa: O Histórico Financeiro selecionado não pertence ao Tipo de Contas informado no contrato.

Ação: Escolher um histórico cadastrado para o mesmo Tipo de Contas.

Fonte: source/TFA015/UdmTFA015.pas:1013-1018 (TdmTFA015.tabCONTRATOCD_HISTORICOValidate)

E-0032​

Causa: A pessoa (cliente/representante) informada está cadastrada mas marcada como inativa.

Ação: Reativar a pessoa em TFA001 ou informar outra pessoa ativa.

Fonte: source/TFA015/UdmTFA015.pas:294-305 (TdmTFA015.tabCONTRATOCD_PESSOAValidate)

E-0033​

Causa: O código de pessoa informado não existe no cadastro.

Ação: Cadastrar a pessoa em TFA001 ou informar um código válido.

Fonte: source/TFA015/UdmTFA015.pas:294-305 (TdmTFA015.tabCONTRATOCD_PESSOAValidate)

W-0339​

Causa: O endereço selecionado não está cadastrado para a pessoa do contrato.

Ação: Cadastrar/selecionar um endereço válido para a pessoa em TFA001.

Fonte: source/TFA015/UdmTFA015.pas:805-821 (TdmTFA015.tabCONTRATOCD_ENDERECOValidate)

W-0771​

Causa: A soma dos valores dos itens locados lançados na aba Itens não é igual ao Valor da Mensalidade do contrato.

Ação: Ajustar os valores dos itens locados ou o valor da mensalidade até que os totais coincidam, então salvar novamente.

Fonte: source/TFA015/UTFA015.pas:566-578 (TfrmTFA015.btnSalvarClick)

W-0770​

Causa: Já existe nota fiscal vigente emitida para o contrato (mensalidade gerada).

Ação: Cancelar/estornar a nota fiscal vinculada antes de excluir o contrato ou o item locado.

Fonte: source/TFA015/UTFA015.pas:2634-2652 (TfrmTFA015.verificaNotaMensalidade)

C-0769​

Causa: O usuário está removendo um item locado que pertence a uma Nota Mestra com outros lançamentos relacionados.

Ação: Confirmar a exclusão sabendo que todos os registros da mesma Nota Mestra serão removidos.

Fonte: source/TFA015/UTFA015.pas:472-502 (TfrmTFA015.removerContratoItem)

C-0045​

Causa: O usuário clicou em Excluir com um contrato selecionado.

Ação: Confirmar a exclusão do contrato.

Fonte: source/TFA015/UTFA015.pas:504-521 (TfrmTFA015.btnExcluirClick)

C-0773​

Causa: O usuário clicou em Imprimir com um contrato consultado/salvo.

Ação: Confirmar a impressão para gerar o documento do contrato.

Fonte: source/TFA015/UTFA015.pas:776-791 (TfrmTFA015.btnImprimirClick)

W-0774​

Causa: O usuário tentou imprimir sem ter um contrato consultado ou incluído.

Ação: Consultar ou incluir um contrato antes de imprimir.

Fonte: source/TFA015/UTFA015.pas:776-791 (TfrmTFA015.btnImprimirClick)

W-0772​

Causa: O Tipo de Contrato não tem um Leiaute de impressão cadastrado.

Ação: Cadastrar/vincular um leiaute de contrato ao Tipo de Contrato em ADM011.

Fonte: source/TFA015/UTFA015.pas:747-773 (Imprime_Contrato)

C-0775​

Causa: O usuário pressionou Enter no campo de Observação com o contrato em edição/inclusão.

Ação: Confirmar para salvar as alterações do contrato.

Fonte: source/TFA015/UTFA015.pas:1064-1074 (TfrmTFA015.memDS_OBSERVACAOKeyDown)

C-0048​

Causa: O usuário está fechando a tela com o contrato em edição/inclusão não salvo.

Ação: Confirmar se deseja salvar antes de sair, ou fechar sem salvar.

Fonte: source/TFA015/UTFA015.pas:394-399 (TfrmTFA015.FormClose)

W-0777​

Causa: O relatório modelo 'Protocolo' foi solicitado para um contrato sem Representante (aluno) informado.

Ação: Informar o campo Representante/Aluno no contrato antes de gerar este relatório.

Fonte: source/TFA015/UTFA015.pas:1759-1762 (TfrmTFA015.btnOkClick)

W-0128​

Causa: O percentual de reajuste não foi informado.

Ação: Informar o percentual de reajuste desejado.

Fonte: source/TFA015/UFrmReajuste.pas:96-99 (TfrmReajuste.btnOKClick)

E-0036​

Causa: O percentual de reajuste informado não é um número válido.

Ação: Informar um valor numérico válido no campo de percentual.

Fonte: source/TFA015/UFrmReajuste.pas:100-105 (TfrmReajuste.btnOKClick)

C-0781​

Causa: O usuário confirmou os parâmetros da tela de Reajuste de Mensalidades e clicou em OK.

Ação: Confirmar para aplicar o reajuste em memória aos contratos filtrados.

Fonte: source/TFA015/UFrmReajuste.pas:156-157 (TfrmReajuste.btnOKClick)

I-0782​

Causa: O reajuste em lote foi aplicado apenas em memória, sem gravar no banco.

Ação: Conferir os valores na grade de contratos e pressionar F6 (Salvar) para efetivar cada alteração.

Fonte: source/TFA015/UFrmReajuste.pas:184-184 (TfrmReajuste.btnOKClick)

W-0457​

Causa: O usuário clicou para abrir o cadastro de Pessoas (TFA001) a partir do contrato, mas não tem esse item liberado no menu.

Ação: Solicitar ao administrador liberação de acesso à tela TFA001.

Fonte: source/TFA015/UTFA015.pas:2524-2533 (TfrmTFA015.btnCadPessoaClick)

W-0780​

Causa: O usuário clicou em 'Emitir Nota' a partir do contrato, mas não tem acesso à tela MNF002 no menu.

Ação: Solicitar ao administrador liberação de acesso à tela MNF002 (Emissão de Nota Fiscal de Saída).

Fonte: source/TFA015/UTFA015.pas:2700-2709 (TfrmTFA015.bitBtnEmitirNotaClick)

W-0014​

Causa: Nenhuma empresa foi informada no filtro de relatório e o modelo selecionado não é o de 'Todas as empresas'.

Ação: Informar a empresa no filtro antes de gerar o relatório.

Fonte: source/TFA015/UTFA015.pas:1251-1261 (TfrmTFA015.btnOkClick)

W-0388​

Causa: Apenas uma das datas de um par (inicial/final) do filtro de relatório foi preenchida.

Ação: Preencher as duas datas do intervalo (inicial e final) ou deixar ambas em branco.

Fonte: source/TFA015/UTFA015.pas:1124-1133 (TfrmTFA015.btnFILTROClick)

Regras de negócio​

  • TFA015.R001 (ver regras/TFA015/TFA015.R001.md)
  • TFA015.R002 (ver regras/TFA015/TFA015.R002.md)
  • TFA015.R003 (ver regras/TFA015/TFA015.R003.md)
  • TFA015.R004 (ver regras/TFA015/TFA015.R004.md)
  • TFA015.R005 (ver regras/TFA015/TFA015.R005.md)
  • TFA015.R006 (ver regras/TFA015/TFA015.R006.md)
  • TFA015.R007 (ver regras/TFA015/TFA015.R007.md)
  • TFA015.R008 (ver regras/TFA015/TFA015.R008.md)
  • TFA015.R009 (ver regras/TFA015/TFA015.R009.md)
  • TFA015.R010 (ver regras/TFA015/TFA015.R010.md)
  • TFA015.R011 (ver regras/TFA015/TFA015.R011.md)
  • TFA015.R012 (ver regras/TFA015/TFA015.R012.md)
  • TFA015.R013 (ver regras/TFA015/TFA015.R013.md)
  • TFA015.R014 (ver regras/TFA015/TFA015.R014.md)
  • TFA015.R015 (ver regras/TFA015/TFA015.R015.md)
  • TFA015.R016 (ver regras/TFA015/TFA015.R016.md)
  • TFA015.R017 (ver regras/TFA015/TFA015.R017.md)
  • TFA015.R018 (ver regras/TFA015/TFA015.R018.md)
  • TFA015.R019 (ver regras/TFA015/TFA015.R019.md)
  • TFA015.R020 (ver regras/TFA015/TFA015.R020.md)

Perguntas frequentes​

P: Por que não consigo salvar o contrato e aparece 'É Obrigatório informar o Produto' (W-0085) mesmo o item não sendo usado no meu caso? R: Isso só é obrigatório quando o campo 'Gera Nota Fiscal' do contrato está em 'Sim'; nesse caso Série, Condição de Pagamento e Produto passam a ser obrigatórios. Se o contrato não deve gerar nota, mude para 'Não' ou 'Pedido'. Fonte: source/TFA015/UdmTFA015.pas:364-377 (TdmTFA015.tabCONTRATOBeforePost)

P: Deu a mensagem 'A soma dos Itens Locados difere do valor da Mensalidade' (W-0771), o que eu faço? R: Some os valores lançados na aba Itens: eles precisam ser exatamente iguais ao Valor da Mensalidade do contrato para poder salvar. Ajuste os itens ou a mensalidade e salve de novo. Fonte: source/TFA015/UTFA015.pas:566-578 (TfrmTFA015.btnSalvarClick)

P: Por que não consigo excluir um contrato e aparece 'Existem mensalidades geradas para esse registro' (W-0770)? R: O sistema verifica se já existe nota fiscal vigente (não cancelada) emitida a partir desse contrato; se existir, a exclusão é bloqueada. É preciso tratar/cancelar essas notas antes de excluir o contrato. Fonte: source/TFA015/UTFA015.pas:2634-2652 (TfrmTFA015.verificaNotaMensalidade)

P: Por que a aba 'Itens' / 'Histórico' não aparece na tela de contrato? R: Essas abas só ficam visíveis quando o parâmetro de Faturamento 'Vários Itens no Contrato' (ST_VARIOSITENSCONTRATO) está ativado para a empresa. Fonte: source/TFA015/UTFA015.pas:364-375 (iniciar)

P: Por que ao reajustar as mensalidades em lote os valores não aparecem gravados depois? R: O reajuste em lote (botão de Reajuste de Mensalidades) só altera os valores em memória na grade de contratos; é necessário conferir e pressionar F6 (Salvar) depois, conforme a própria mensagem de sucesso (I-0782) instrui. Fonte: source/TFA015/UFrmReajuste.pas:156-192 (TfrmReajuste.btnOKClick)

P: Por que apareceu 'Tipo de Contrato não está cadastrado' (W-0790) ao clicar em Novo? R: O sistema exige que exista pelo menos um Tipo de Contrato marcado como padrão (tipo 'S') para servir de valor inicial de um novo contrato. Cadastre/marque um tipo de contrato como padrão na tela de Tipo de Contrato. Fonte: source/TFA015/UdmTFA015.pas:452-471 (TdmTFA015.tabCONTRATOBeforeInsert)

P: Por que não consigo trocar o cliente de um contrato já salvo? R: O campo Pessoa (cliente) é bloqueado para edição assim que o contrato deixa de estar em modo de inclusão; não é permitido trocar o cliente de um contrato existente pela tela. Fonte: source/TFA015/UdmTFA015.pas:657-665 (TdmTFA015.tabCONTRATOAfterScroll)

P: Por que apareceu a mensagem de confirmação sobre a data de vencimento da 1ª parcela (C-0789)? R: O sistema pergunta quando a data de vencimento da 1ª parcela fica mais de um mês à frente da data atual, como verificação de digitação; se não confirmar, a data é recusada (W-0202). Fonte: source/TFA015/UdmTFA015.pas:446-449 (TdmTFA015.tabCONTRATODT_VENCIMENTOValidate)

P: Deu a mensagem 'Quando utilizado valor de Entrada, a data de vencimento da primeira parcela não pode ser no mesmo mês' (W-1905), como resolvo? R: Mude a data de Vencimento da 1ª Parcela para o mês seguinte à data de Início do Contrato, já que o Valor de Entrada cobre o primeiro mês. Fonte: source/TFA015/UdmTFA015.pas:400-406 (TdmTFA015.tabCONTRATOBeforePost)

P: Por que não consigo abrir o cadastro de pessoas pelo botão da tela de contrato (W-0457)? R: O botão abre a tela TFA001 usando o item de menu do usuário; se o usuário não tiver a tela TFA001 liberada no menu, a abertura é bloqueada. É preciso liberar o acesso a TFA001 para esse usuário. Fonte: source/TFA015/UTFA015.pas:2524-2533 (TfrmTFA015.btnCadPessoaClick)

P: O que o botão 'Importar Itens' faz na aba Itens? R: Ele busca notas fiscais de saída já emitidas para a pessoa do contrato (que ainda não foram devolvidas) e importa os itens dessas notas como itens locados do contrato. Fonte: source/TFA015/UTFA015.pas:2724-2802 (TfrmTFA015.bitBtnImportarItensClick)

P: Por que a Condição de Pagamento que escolhi foi recusada com 'A Condição de Pagamento deve ser do tipo vencimento digitado' (W-0792)? R: O contrato só aceita condições de pagamento marcadas como 'vencimento digitado' (ST_CONDPAGTO='D'); condições de outro tipo (por exemplo, parcelamento automático) não são aceitas neste cadastro. Fonte: source/TFA015/UdmTFA015.pas:495-506 (TdmTFA015.tabCONTRATOCD_CONDPAGTOValidate)

Dúvidas em aberto (o código não responde)​

  • O que acontece se houver mais de um Tipo de Contrato marcado como padrão (TP_TIPOCONTRATO='S') ao incluir um novo contrato? — Em TdmTFA015.tabCONTRATOBeforeInsert (source/TFA015/UdmTFA015.pas:452-471), o código só trata explicitamente os casos de exatamente 1 (usa) e 0 (bloqueia com W-0790); quando há mais de 1, nenhuma ação é tomada e a variável cdTipoContrato não é redefinida — não ficou claro se isso é intencional ou um cenário não previsto.
  • As mensagens E-0258/E-0259 (vendedor inativo/não encontrado), E-0291/E-0292 (tipo de conta) e W-0213/W-0215 (histórico não cadastrado/inativo), disparadas pelos validadores compartilhados ValidaVendedor, ValidaTipoConta e ValidaHistorico usados por este módulo, fazem parte do catálogo atual de mensagens? — Essas mensagens não constavam na lista de mensagens do catálogo fornecida no briefing para o TFA015, mas são efetivamente chamadas a partir de source/jCommon/jValidate.pas (linhas 2649-2705, 3735-3793, 3957-4010) pelas validações de Vendedor, Tipo de Conta e Histórico do contrato.
  • Quais campos exatamente ficam obrigatórios ou se comportam de forma diferente quando ST_GERANOTA = 'P' (Pedido)? — A validação em tabCONTRATOBeforePost (source/TFA015/UdmTFA015.pas:364-377) só trata explicitamente o caso ST_GERANOTA='S'; não há tratamento visível para 'P' além do que está comentado (ReadOnly de campos), então não ficou claro se há alguma regra de negócio adicional para 'Pedido'.