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
- Selecionar o Tipo de Contrato (F9 abre lista de tipos com TP_TIPOCONTRATO='S'). (Contratos) —
source/TFA015/UTFA015.pas:793-816 (TfrmTFA015.edtCD_TIPOCONTRATOKeyDown) - 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) - 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) - 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) - 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) - 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) - 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
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| CD_TIPOCONTRATO (Tipo Contrato) | sempre, ao salvar | W-0560 | source/TFA015/UdmTFA015.pas:336-339 (TdmTFA015.tabCONTRATOBeforePost) |
| CD_PESSOA (Cliente) | sempre, ao salvar | W-0785 | source/TFA015/UdmTFA015.pas:340-343 (TdmTFA015.tabCONTRATOBeforePost) |
| CD_ENDERECO (Endereço) | sempre, ao salvar | W-0323 | source/TFA015/UdmTFA015.pas:344-347 (TdmTFA015.tabCONTRATOBeforePost) |
| DT_EMISSAO (Início do Contrato) / DT_VENCTOPARCELA (Vencimento 1ª Parcela) | sempre, ao salvar | W-0493 | source/TFA015/UdmTFA015.pas:348-355 (TdmTFA015.tabCONTRATOBeforePost) |
| CD_MOVIMENTACAO / CD_FORMAPAGTO | sempre, ao salvar | W-0328 / W-0326 | source/TFA015/UdmTFA015.pas:356-363 (TdmTFA015.tabCONTRATOBeforePost) |
| CD_SERIE / CD_CONDPAGTO / CD_ITEM | quando ST_GERANOTA = 'S' (Gera Nota Fiscal = Sim) | W-0786 / W-0324 / W-0085 | source/TFA015/UdmTFA015.pas:364-377 (TdmTFA015.tabCONTRATOBeforePost) |
| DT_VENCTOCONTRATO (Vencimento do Contrato) | quando TP_VALIDADE = 'F' (Data Fixa) | W-0493 | source/TFA015/UdmTFA015.pas:378-382 (TdmTFA015.tabCONTRATOBeforePost) |
| NR_VALIDADE (Prazo de Validade) | quando TP_VALIDADE <> 'F' | W-0096 | source/TFA015/UdmTFA015.pas:383-387 (TdmTFA015.tabCONTRATOBeforePost) |
| VL_MENSALIDADE (Valor Mensalidade) | sempre, ao salvar | W-0787 | source/TFA015/UdmTFA015.pas:395-398 (TdmTFA015.tabCONTRATOBeforePost) |
| CD_TIPOCONTA (Tipo de Contas) | para informar o Histórico Financeiro | W-0784 | source/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(verregras/TFA015/TFA015.R001.md)TFA015.R002(verregras/TFA015/TFA015.R002.md)TFA015.R003(verregras/TFA015/TFA015.R003.md)TFA015.R004(verregras/TFA015/TFA015.R004.md)TFA015.R005(verregras/TFA015/TFA015.R005.md)TFA015.R006(verregras/TFA015/TFA015.R006.md)TFA015.R007(verregras/TFA015/TFA015.R007.md)TFA015.R008(verregras/TFA015/TFA015.R008.md)TFA015.R009(verregras/TFA015/TFA015.R009.md)TFA015.R010(verregras/TFA015/TFA015.R010.md)TFA015.R011(verregras/TFA015/TFA015.R011.md)TFA015.R012(verregras/TFA015/TFA015.R012.md)TFA015.R013(verregras/TFA015/TFA015.R013.md)TFA015.R014(verregras/TFA015/TFA015.R014.md)TFA015.R015(verregras/TFA015/TFA015.R015.md)TFA015.R016(verregras/TFA015/TFA015.R016.md)TFA015.R017(verregras/TFA015/TFA015.R017.md)TFA015.R018(verregras/TFA015/TFA015.R018.md)TFA015.R019(verregras/TFA015/TFA015.R019.md)TFA015.R020(verregras/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'.