Pular para o conteúdo principal

MFA001 — Parâmetros de Faturamento (enriquecimento)

Menu: Faturamento > Movimentações > Parâmetros de Faturamento

Objetivo​

Tela central de parametrização do módulo de Faturamento por empresa: define, em um único registro por empresa, os padrões usados por pedidos, notas e ordens de serviço (condição/forma de pagamento, tabelas de preço/compra, movimentações de entrada/saída, contas contábeis, PIX, layouts de documentos e comportamento de bloqueio de NF/pedido/comissão). Também mantém a lista de subgrupos de produto que bloqueiam pedidos por separação. Cada validação de código (movimentação, histórico, pessoa, conta, série) consulta o cadastro correspondente e barra o salvamento se o valor não existir, estiver inativo ou for do tipo incompatível.

Fluxo principal​

  1. Ao abrir o programa, a tela carrega automaticamente o único registro de parâmetros de faturamento da empresa logada (não há opção de "Novo"); em modo consulta (tpAcesso=2), os botões Salvar e de subgrupo ficam ocultos. (Abertura (iniciar)) — source/MFA001/UMFA001.pas:924-946 (iniciar)
  2. O usuário navega pelas abas (Padrão, Pedidos, Nota, Layouts, Mensagens, Logotipo, JunsoftWEB, etc.) alterando os parâmetros desejados; a troca de aba pode reposicionar o foco e recarregar a pré-visualização do logotipo. (Paginas / PageParm / pgcPaginaPedidos) — source/MFA001/UMFA001.pas:1583-1636 (TfrmMFA001.PaginasChange)
  3. Cada código digitado (movimentação, histórico, pessoa, conta, série, layout etc.) é validado contra o cadastro correspondente assim que o campo perde o foco (OnValidate), preenchendo a descrição ou bloqueando com mensagem de erro. (Campos de código em todas as abas) — source/MFA001/UdmMFA001.pas:1025-1041 (TdmMFA001.tabPARMFATURCD_CONDPAGTOValidate)
  4. Para subgrupos de bloqueio de pedido, o usuário inclui (btnAddSubGrupo/F5) e informa um código de subgrupo único para a empresa, ou exclui uma linha (btnExcluirSubGrupo/F7) mediante confirmação. (Parâmetros > Pedidos > Op.3 (grid de subgrupos)) — source/MFA001/UMFA001.pas:2784-2800 (TfrmMFA001.btnAddSubGrupoClick)
  5. Ao clicar Salvar, a tela roda validações adicionais de tela (tabela de compra, tabela de preço), grava o cabeçalho e os subgrupos, comita a transação, reabre o registro e exibe a confirmação de sucesso. (Toolbar > Salvar) — source/MFA001/UMFA001.pas:1055-1114 (TfrmMFA001.btnSalvarClick)
  6. Se o usuário tentar fechar a tela com alterações pendentes (edição ou inclusão em aberto), o sistema pergunta se deseja salvar antes de sair; ao final, sempre desfaz (rollback) a transação de trabalho. (Fechamento da tela) — source/MFA001/UMFA001.pas:968-977 (TfrmMFA001.FormClose)

Campos obrigatórios​

CampoCondiçãoMensagemFonte
Status do Bloqueio de Notas Fiscais (ST_BLOQUEIONF)sempre, ao salvarÉ Obrigatório Informar o Status do Bloqueio de Notas Fiscais!source/MFA001/UdmMFA001.pas:941-946 (TdmMFA001.tabPARMFATURBeforePost)
Status do Bloqueio de Pedidos (ST_BLOQUEIOPED)sempre, ao salvarÉ Obrigatório Informar o Status do Bloqueio de Pedidos!source/MFA001/UdmMFA001.pas:948-952 (TdmMFA001.tabPARMFATURBeforePost)
Status do Cálculo de Comissão (ST_COMISSAO)sempre, ao salvarÉ Obrigatório Informar o Status do Cálculo de Comissão!source/MFA001/UdmMFA001.pas:954-958 (TdmMFA001.tabPARMFATURBeforePost)
Tabela de Compra padrão (CD_TABCOMPRA)sempre, ao salvarInforme alguma tabela de Compra para parametrizar o Custo de Reposição.source/MFA001/UMFA001.pas:1063-1067 (TfrmMFA001.btnSalvarClick)
Tabela de Preço de Venda (CD_TABPRECO)quando ST_PRECOVENDA <> 'N' (atualização de tabela de venda ativa)Informe alguma tabela de Venda para Atualização de Tabela de Venda.source/MFA001/UMFA001.pas:1075-1082 (TfrmMFA001.btnSalvarClick)
Série da NF-e (CD_SERIENFEOSWEB) e Série da NFS-e (CD_SERIENFSEOSWEB)quando ST_FATURAROSWEB = 'S' (Faturar OS Web habilitado)É Obrigatório informar a Série da NF-e e a Série da NFS-e para Faturar a OS Web!source/MFA001/UdmMFA001.pas:977-1003 (TdmMFA001.tabPARMFATURBeforePost)
Código do Subgrupo (CD_SUBGRUPO) na grade de bloqueioao gravar cada linha da lista de subgruposO Código do Subgrupo é obrigatório. Verifique!source/MFA001/UdmMFA001.pas:2304-2316 (TdmMFA001.tabSUBGRUPOPARMFATURBeforePost)

Mensagens: causa e ação​

C-0048​

Causa: O usuário fechou a tela (X, Sair ou F12) com o registro de parâmetros em inclusão/edição, sem ter clicado em Salvar.

Ação: Confirmar para salvar as alterações antes de sair, ou recusar para descartá-las.

Fonte: source/MFA001/UMFA001.pas:968-977 (TfrmMFA001.FormClose)

I-0047​

Causa: O Salvar concluiu o commit da transação com os parâmetros e subgrupos da empresa.

Ação: Nenhuma ação necessária; é apenas a confirmação de que a gravação teve sucesso.

Fonte: source/MFA001/UMFA001.pas:1093-1113 (TfrmMFA001.btnSalvarClick)

W-1818​

Causa: O Tipo de Valor de Frete está como "% s/Faturamento" e o Valor de Frete informado é maior que 100.

Ação: Reduzir o valor para até 100 ou trocar o tipo para "Valor Fixo" (aba Parâmetros > Pedidos > Op.3).

Fonte: source/MFA001/UdmMFA001.pas:963-975 (TdmMFA001.tabPARMFATURBeforePost)

E-0032​

Causa: O código informado em Operadora ou Transportador corresponde a uma pessoa cadastrada em TFA001, porém marcada como inativa.

Ação: Reativar a pessoa em TFA001 ou informar outro código ativo.

Fonte: source/MFA001/UdmMFA001.pas:1494-1502 (TdmMFA001.tabPARMFATURCD_OPERADORAValidate)

É Obrigatório informar a Série da NF-e e a Série da NFS-e para Faturar a OS Web!​

Causa: "Faturar OS Web" está marcado como Sim, mas uma ou ambas as séries (NF-e/NFS-e) ficaram em branco.

Ação: Preencher as duas séries na aba JunsoftWEB > Faturamento; o foco vai automaticamente para a série faltante.

Fonte: source/MFA001/UdmMFA001.pas:988-1002 (TdmMFA001.tabPARMFATURBeforePost)

A Série informada não está cadastrada para a Empresa ou não é do tipo Saída. Verifique! [MFA002]​

Causa: O código de série digitado não existe em PARMNOTA para a empresa atual com TP_NOTA de Saída.

Ação: Cadastrar ou corrigir a série como tipo Saída para a empresa em MFA002.

Fonte: source/MFA001/UdmMFA001.pas:1179-1195 (TdmMFA001.ValidaSerieFaturamentoOSWeb)

O Tipo de Produto aceito para a Série não permite este tipo de item. Verifique! [MFA002]​

Causa: A série escolhida está restrita a um tipo de produto (produto ou serviço) diferente do exigido pelo campo (NF-e pede produto, NFS-e pede serviço).

Ação: Escolher uma série cujo Tipo de Produto Aceito seja "Todos" ou compatível, ajustando em MFA002.

Fonte: source/MFA001/UdmMFA001.pas:1197-1199 (TdmMFA001.ValidaSerieFaturamentoOSWeb)

A Sequência %s da Série %s está em um Generator do banco, que não é transacional...​

Causa: A sequência vinculada à série (MFA002) resolve para um GENERATOR do Firebird em vez de um registro na tabela de Sequências; isso é usado pelo backend de faturamento da OS Web (fora deste módulo), não por uma chamada direta aqui.

Ação: É apenas um alerta; para evitar números de nota consumidos e não devolvidos em prévias, trocar por uma série cuja sequência esteja cadastrada na tabela de Sequências (MFA002).

Fonte: source/MFA001/UdmMFA001.pas:1206-1211 (TdmMFA001.ValidaSerieFaturamentoOSWeb)

Informe o Tipo da Chave PIX antes da Chave. Verifique!​

Causa: O campo de chave PIX foi preenchido sem selecionar antes o Tipo da Chave (E-mail, Telefone, CPF/CNPJ ou Aleatória).

Ação: Selecionar o Tipo da Chave PIX e então digitar a chave no formato correspondente.

Fonte: source/MFA001/UdmMFA001.pas:1250-1253 (TdmMFA001.tabPARMFATURDS_CHAVEPIXValidate)

Chave PIX de E-mail inválida. Verifique!​

Causa: A chave não contém "@" e um ponto, ou excede 77 caracteres, para o tipo E-mail.

Ação: Informar um e-mail válido como chave PIX.

Fonte: source/MFA001/UdmMFA001.pas:1261-1264 (TdmMFA001.tabPARMFATURDS_CHAVEPIXValidate)

Chave PIX de Telefone deve ter DDD e número. Verifique!​

Causa: A chave de telefone (só dígitos, com ou sem o 55 na frente) tem menos de 10 ou mais de 11 dígitos.

Ação: Informar o telefone com DDD + número (10 ou 11 dígitos).

Fonte: source/MFA001/UdmMFA001.pas:1265-1271 (TdmMFA001.tabPARMFATURDS_CHAVEPIXValidate)

Chave PIX de CNPJ/CPF inválida. Verifique!​

Causa: Os dígitos informados não formam um CPF/CNPJ válido segundo a rotina de verificação padrão do sistema.

Ação: Conferir e corrigir o número do CPF/CNPJ usado como chave.

Fonte: source/MFA001/UdmMFA001.pas:1273-1277 (TdmMFA001.tabPARMFATURDS_CHAVEPIXValidate)

Chave PIX Aleatória deve ter 32 ou 36 caracteres. Verifique!​

Causa: A chave informada para o tipo Aleatória não tem 32 nem 36 caracteres (com ou sem hífens do UUID).

Ação: Colar a chave aleatória completa fornecida pelo banco/PSP.

Fonte: source/MFA001/UdmMFA001.pas:1278-1280 (TdmMFA001.tabPARMFATURDS_CHAVEPIXValidate)

A Conta Contábil deve ser do Tipo Analítica!​

Causa: A conta contábil escolhida para despesa (entrada ou saída) é do tipo Sintética no plano de contas.

Ação: Selecionar uma conta contábil Analítica.

Fonte: source/MFA001/UdmMFA001.pas:1587-1599 (TdmMFA001.tabPARMFATURCD_CONTADESPESAEValidate)

Conta Contábil não Cadastrada !​

Causa: O código de conta informado não retornou registro em VIEW_PLANOCONTAS para a empresa atual.

Ação: Cadastrar a conta no plano de contas da empresa ou corrigir o código digitado.

Fonte: source/MFA001/UdmMFA001.pas:1587-1599 (TdmMFA001.tabPARMFATURCD_CONTADESPESAEValidate)

A Movimentação não está Ativa! / A Movimentação não está Cadastrada [TCB001]! / A Operação da Movimentação não pode ser de Entrada/Saída!​

Causa: O código de movimentação informado em um dos campos padrão (entrada, saída, ordem, trocas, operadora, transferência, débito de vendedor, pedido) está inativo, não existe em TCB001, ou tem sentido oposto ao exigido pelo campo.

Ação: Cadastrar/ativar a movimentação em TCB001 com o sentido correto, ou informar outro código.

Fonte: source/MFA001/UdmMFA001.pas:1085-1097 (TdmMFA001.tabPARMFATURCD_MOVENTRADAValidate)

Informe alguma tabela de Compra para parametrizar o Custo de Reposição.​

Causa: O campo Tabela de Compra padrão está vazio ao tentar salvar.

Ação: Informar a Tabela de Compra padrão na aba de parâmetros antes de salvar.

Fonte: source/MFA001/UMFA001.pas:1063-1067 (TfrmMFA001.btnSalvarClick)

Informe alguma tabela de compra padrão para parametrizar o Custo de Reposição​

Causa: O combo de Custo de Reposição foi preenchido, mas o campo Tabela de Compra está vazio no formulário.

Ação: Informar a Tabela de Compra padrão ou limpar a opção de Custo de Reposição.

Fonte: source/MFA001/UMFA001.pas:1069-1073 (TfrmMFA001.btnSalvarClick)

Informe alguma tabela de Venda para Atualização de Tabela de Venda.​

Causa: A Atualização de Preço de Venda está diferente de "Não", mas a Tabela de Preço não foi informada.

Ação: Informar a Tabela de Preço de Venda ou desativar a atualização automática.

Fonte: source/MFA001/UMFA001.pas:1075-1082 (TfrmMFA001.btnSalvarClick)

O Código do Subgrupo é obrigatório. Verifique!​

Causa: Uma linha foi incluída na grade de subgrupos de bloqueio sem informar o código do subgrupo.

Ação: Informar o código do subgrupo (F9 para pesquisar) antes de sair da linha.

Fonte: source/MFA001/UdmMFA001.pas:2306-2312 (TdmMFA001.tabSUBGRUPOPARMFATURBeforePost)

SubGrupo já informado. Verifique!​

Causa: O subgrupo escolhido já está na lista de bloqueio da mesma empresa.

Ação: Selecionar outro subgrupo ou remover a linha duplicada.

Fonte: source/MFA001/UdmMFA001.pas:2326-2334 (TdmMFA001.tabSUBGRUPOPARMFATURCD_SUBGRUPOValidate)

Deseja Excluir o Registro?​

Causa: O usuário acionou Excluir Subgrupo (botão ou F7) sobre uma linha da grade de subgrupos.

Ação: Confirmar para remover o subgrupo da lista de bloqueio, ou cancelar para mantê-lo.

Fonte: source/MFA001/UMFA001.pas:2791-2799 (TfrmMFA001.btnExcluirSubGrupoClick)

Layout de Pedido não suportado para versão WEB!​

Causa: O layout informado para pedido de venda Web está na lista fixa de 14 layouts LPD sem suporte à versão Web.

Ação: Escolher outro layout de pedido compatível com a versão Web.

Fonte: source/MFA001/UdmMFA001.pas:2429-2448 (TdmMFA001.tabPARMFATURCD_LAYPEDVENDAWEBValidate)

A empresa não está liberada para o usuario %s! Verifique[ADM001]!​

Causa: A empresa informada como filial não está associada ao usuário logado na tabela USUARIOEMPRESA.

Ação: Liberar a empresa para o usuário em ADM001/ADM011.

Fonte: source/MFA001/UdmMFA001.pas:1886-1895 (TdmMFA001.tabPARMFATURCD_EMPRFILIALValidate)

Imagem do Logotipo da Empresa não foi encontrado no caminho definido no Parâmetro. Verifique!​

Causa: O caminho de arquivo salvo em DS_LOGOTIPO não existe ou não é acessível ao abrir a aba de Logotipo.

Ação: Reenviar a imagem pelo botão de abrir arquivo ou corrigir o caminho salvo.

Fonte: source/MFA001/UMFA001.pas:1625-1634 (TfrmMFA001.PaginasChange)

É Obrigatório Informar o Status do Bloqueio de Notas Fiscais! / de Pedidos! / do Cálculo de Comissão!​

Causa: Um dos três combos de status (bloqueio de NF, bloqueio de pedido, cálculo de comissão) ficou vazio ao salvar.

Ação: Selecionar um valor em cada um dos três combos antes de salvar.

Fonte: source/MFA001/UdmMFA001.pas:941-958 (TdmMFA001.tabPARMFATURBeforePost)

Regras de negócio​

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

Perguntas frequentes​

P: Por que não consigo salvar os parâmetros de faturamento? R: Verifique se os combos de Bloqueio de NF, Bloqueio de Pedido e Cálculo de Comissão estão preenchidos e se há uma Tabela de Compra padrão informada — ambos são obrigatórios para gravar. Fonte: source/MFA001/UdmMFA001.pas:941-958 (TdmMFA001.tabPARMFATURBeforePost), source/MFA001/UMFA001.pas:1063-1067 (TfrmMFA001.btnSalvarClick)

P: Deu a mensagem "Para o Tipo Valor Frete... não pode ser maior que 100%" (W-1818), o que fazer? R: O Tipo de Valor de Frete está como percentual sobre o faturamento e o valor informado passa de 100; reduza o percentual ou mude para "Valor Fixo". Fonte: source/MFA001/UdmMFA001.pas:963-975 (TdmMFA001.tabPARMFATURBeforePost)

P: Por que a tela pede as duas séries (NF-e e NFS-e) ao ativar o faturamento da OS Web? R: Com "Faturar OS Web" ligado, as duas séries são obrigatórias porque o faturamento da OS pode gerar tanto item de produto quanto de serviço; faltando uma, a emissão falharia depois na OS Web. Fonte: source/MFA001/UdmMFA001.pas:977-1002 (TdmMFA001.tabPARMFATURBeforePost)

P: Deu erro de Chave PIX inválida, o que verificar? R: Confira se o Tipo da Chave PIX selecionado bate com o formato digitado (e-mail com @, telefone com DDD, CPF/CNPJ válido, ou chave aleatória com 32/36 caracteres). Fonte: source/MFA001/UdmMFA001.pas:1240-1282 (TdmMFA001.tabPARMFATURDS_CHAVEPIXValidate)

P: Por que não consigo marcar Custo de Reposição sem tabela de compra? R: O Custo de Reposição usa a Tabela de Compra padrão como base; sem essa tabela informada, o campo é limpo e o salvamento é bloqueado. Fonte: source/MFA001/UMFA001.pas:1069-1073 (TfrmMFA001.btnSalvarClick)

P: Deu "SubGrupo já informado", por quê? R: O subgrupo que você tentou adicionar na lista de bloqueio de pedido já está cadastrado para a mesma empresa; escolha outro ou remova o duplicado. Fonte: source/MFA001/UdmMFA001.pas:2326-2334 (TdmMFA001.tabSUBGRUPOPARMFATURCD_SUBGRUPOValidate)

P: Por que o combo de Bloqueio por Subgrupo aparece desabilitado? R: Ele só é editável quando o parâmetro "Separar Bloqueio por Subgrupo" está marcado; sem isso, o tipo é mantido/forçado em "C". Fonte: source/MFA001/UdmMFA001.pas:2345-2357 (TdmMFA001.tabPARMFATURST_SEPARABLOQUEIOPEDValidate)

P: Deu "Layout de Pedido não suportado para versão WEB", que layout usar? R: O layout informado está numa lista fixa de 14 códigos LPD sem suporte à venda pela Web; escolha outro layout de pedido compatível. Fonte: source/MFA001/UdmMFA001.pas:2429-2448 (TdmMFA001.tabPARMFATURCD_LAYPEDVENDAWEBValidate)

P: O que faz o parâmetro "Tratativa de Pagto. Antec."? R: Define se a emissão em lote (MNF033/MRC049) bloqueia ou apenas alerta quando o cliente tem nota de antecipação pendente de vinculação; não afeta a emissão individual. Ver o manual do usuário PagamentoAntecipado.md para o processo completo. Fonte: source/MFA001/UMFA001.dfm:5054-5057

P: Por que a imagem do logotipo não aparece na aba de Logotipo? R: O caminho salvo no parâmetro não aponta para um arquivo de imagem válido/acessível nesta máquina; reenvie a imagem pelo botão de abrir arquivo ou corrija o caminho. Fonte: source/MFA001/UMFA001.pas:1625-1634 (TfrmMFA001.PaginasChange)

P: Por que não consigo excluir um subgrupo da lista de bloqueio? R: A exclusão pede confirmação ("Deseja Excluir o Registro?"); se o botão estiver oculto, o usuário está com acesso somente consulta (tpAcesso=2) no programa. Fonte: source/MFA001/UMFA001.pas:2791-2799 (TfrmMFA001.btnExcluirSubGrupoClick)

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

  • Quando a sequência de uma série cai em GENERATOR (mensagem informativa da OS Web), qual é o comportamento exato do backend de faturamento da OS Web que consome o número sem devolvê-lo? — O código de MFA001 apenas detecta essa condição via RDB$GENERATORS e emite um aviso citando GERA_SEQUENCIA e o serviço de faturamento da OS Web; a lógica de consumo do número está fora deste módulo e não foi lida nesta sessão.
  • Existe alguma outra tela ou rotina que force TP_OBSNOTA/TP_OBSORDEMCARREG a valores diferentes de 'X' fora dos checkboxes desta tela? — Os campos TP_OBSNOTA e TP_OBSORDEMCARREG são montados a partir de checkboxes locais (Verifica_TipoObsNota/Verifica_TipoObsOrdemCarreg); não há evidência no código lido de outro ponto de escrita desses campos.
  • As mensagens W-0221 (movimentação/operação inativa) e E-0262 (sentido incompatível) levantadas pelos validadores compartilhados (ValidaOperacao/ValidaHistorico) aparecem no catálogo de mensagens do suporte com que texto exato? — Essas mensagens são geradas em jValidate.pas, não no código de MFA001; o texto final ao usuário não foi conferido nesta sessão (fora do escopo do módulo).