Pular para o conteúdo principal

MFA013 — Parâmetros NFSE

Fonte​

  • Form: source/MFA013/UformMFA013.pas
  • DataModule: source/MFA013/UdmMFA013.pas
  • Frame: source/MFA013/UframeMFA013.pas

Objetivo​

Tela de configuração dos parâmetros de NFS-e (Nota Fiscal de Serviço Eletrônica) por empresa. Permite cadastrar o ambiente (homologação/produção), certificado digital, provedor de emissão, usuários autorizados e as opções de impressão/envio de cada provedor municipal. É pré-requisito obrigatório para operação do CNF011 (Consulta de NFS-e).

Mensagens exibidas​

Levantadas de source/MFA013/ pela camada 0 (commit 96fc51e236).

CódigoTipoMensagem
W-0007AvisoUsuário não Cadastrado. Verifique [ADM001]!
W-1736AvisoEmpresa não cadastrada! [ADM002]
W-1737AvisoO Usuário já está Cadastrado para a Empresa: %s!
W-1738AvisoMáscara Inválida!
W-1739AvisoO lote deve conter entre %s e %s. Verifique!
W-1806AvisoEmpresa não Informada. Verifique!
W-2107AvisoIndicador de Operação não encontrado. Verifique [TFI023]!

Mais 6 mensagens com texto literal no código: MFA013.

Tabelas de Escrita (INSERT/UPDATE/DELETE)​

TabelaOperacoes
CONFIGNFSEINSERT, UPDATE, DELETE
CONFIGNFSEUSUARIOINSERT, UPDATE, DELETE
PROVEDOREMPRESAINSERT, UPDATE, DELETE

Tabelas de Leitura (SELECT)​

TabelaOperacoes
EMPRESASELECT
ENDERECOPESSOASELECT
MUNICIPIOSELECT
PARMSISTEMASELECT
PESSOASELECT
PROVEDORSELECT
USUARIOSELECT

Procedures Chamadas​

ProcedureTabelas Acessadas
RETORNA_DADOSCADASTRAISAREACOMERCIAL (SELECT), ENDERECOPESSOA (SELECT), ESTADO (SELECT), FORMAPAGTO (SELECT), GRUPOPCP (SELECT), MUNICIPIO (SELECT) +4

Tabelas via Procedures (acesso indireto)​

TabelaOperacoes
AREACOMERCIALSELECT
ENDERECOPESSOASELECT
ESTADOSELECT
FORMAPAGTOSELECT
GRUPOPCPSELECT
MUNICIPIOSELECT
PAISBACENSELECT
PESSOASELECT
PESSOAFISICASELECT
REGIAOCOMERCIALSELECT

Dependencias Aferentes (quem alimenta esta tela)​

Telas que escrevem em tabelas lidas por esta tela.

TelaTítuloTabelas em Comum
ADM002Cadastro de EmpresasEMPRESA
TFA001Cadastro de PessoasPESSOA
ADM001Cadastro de UsuáriosUSUARIO

Dependencias Eferentes (quem consome dados desta tela)​

Telas que leem tabelas escritas por esta tela.

TelaTítuloTabelas em Comum
CNF011Consulta de NFS-eCONFIGNFSE, CONFIGNFSEUSUARIO, PROVEDOREMPRESA
MNF002Emissão de Nota Fiscal de VendaCONFIGNFSE
MNF017Venda BalcãoCONFIGNFSE
MNF001Recebimento de Notas Fiscais de CompraCONFIGNFSE

Regras de Negocio​

  1. Validação de empresa (qryCadastroCD_EMPRESAValidate): ao informar CD_EMPRESA, valida existência em EMPRESA e preenche NM_EMPRESA; aciona alteraComboOptanteSimples. Erro W-1736 se empresa não encontrada.
  2. Validação de usuário (tabUsuarioCD_USUARIOValidate): valida existência em USUARIO e impede vincular o mesmo usuário a outra empresa em CONFIGNFSEUSUARIO (erro W-1737 com CD_EMPRESA - NM_EMPRESA em conflito). Erro W-0007 se usuário não existe.
  3. Campos obrigatórios (qryCadastroBeforePost): chama CamposObrigatorios(DataSet); em caso de erro, reposiciona para a aba pagNfse. Normaliza ST_OPTANTESIMPLESMUNICIPIO='N' para string vazia antes de persistir.
  4. Gravação da aba Provedor (tabPROVEDORBeforePost): se qryCadastro estiver em edição, faz Post antes; preenche CD_EMPRESA a partir de qryCadastro se vazio; normaliza ST_ENVIACANCELAMENTO para 'S' se em branco; TP_CANCELAMENTO lido do combo da UI. Em erro, reposiciona aba pagNfse.
  5. Máscara float Ginfes (tabPROVEDORDS_MASCARAFLOATValidate): DS_MASCARAFLOAT aceita apenas #0.0, #0.00, #0.000, #0.0000 ou #0.00000; erro W-1738.
  6. Quantidade de notas por lote (qryCadastroQT_NOTASLOTEValidate): QT_NOTASLOTE deve estar entre 1 e 30; erro W-1739 (parametrizado com '1' e '30 notas').
  7. Cálculo de ISS (qryCadastroST_CALCULAISSValidate): ST_CALCULAISS='T' (totalizado) exibe lblTP_ARREDONDAMENTO/cmbTP_ARREDONDAMENTO; caso contrário oculta.
  8. Agrupamento de serviço (tabPROVEDORST_AGRUPASERVICOValidate): marcar ST_AGRUPASERVICO='S' desabilita chkST_DETALHASERVICO e força ST_DETALHASERVICO='N'.
  9. Provedor ACBr (99) — Padrão Nacional: FrameEnter lê sessao.Path\NFSe\ACBrNFSeXServicos.ini na seção do IBGE da empresa para exibir "DS_PROVEDOR (Provedor: XXX)" ou "(Sem Integração)"; define dmMFA013.ProvedorPadraoNacional := True se o ini retornar Provedor=PadraoNacional. chkST_ENVIATOTALTRIBUTOS visível somente quando CD_PROVEDOR='99'; em actionOKExecute, se provedor != '99', força ST_ENVIATOTALTRIBUTOS='N' antes do Post.
  10. Busca de empresa via F9 (edtCD_EMPRESAKeyDown): usa pesquisa EMPRESAUSUARIO filtrada por sessao.usuario.cd_usuario (só permite empresas vinculadas ao usuário).
  11. Busca de certificado via F9 (editNmArquivoCertKeyDown): exige CD_EMPRESA preenchido (erro W-1806 caso contrário); BuscaCertificados popula NR_SERIALCERT.
  12. Defaults ao inserir CONFIGNFSE (qryCadastroAfterInsert): TP_AMBIENTE=0, ST_VALIDACERTIFICADO='S', ST_TRIBUTMUN='S', ST_ENVIOJAVA='N', TP_EMISSAONFSE='N', ST_ENVIAEMAILCNF011='N', ST_ENVIASUBSTITUICAO='N', ST_GERABOLNFSEPEND='N', QT_NOTASLOTE=30, ST_VARIASNOTASXML='N', TP_ENVIONFSE='A', TP_INTEGRACAO=0, ST_CALCULAISS='T', TP_ARREDONDAMENTO='N'.
  13. Defaults ao inserir PROVEDOREMPRESA (tabPROVEDORAfterInsert): CD_EMPRESA herdado de qryCadastro; TP_DESCSERVICO=0; todos os ST_IMP*='N' exceto ST_IMPOBSNOTA='S', ST_IMPPARCELASNOTA='S', ST_IMPTITULODETALHEPNEU='S', ST_IMPSERVICOSEMVALOR='S', ST_IMPCONSERTOSEMVALOR='S'; ST_AGRUPASERVICO='N', ST_DETALHASERVICO='N', ST_ENVIAVALORLIQUIDO='S', TP_CANCELAMENTO='C', ST_IMPINDICEVELOCIDADEPNEU='N', ST_IMPCOLETAFOGOSERIE='N', TP_AGRUPPERSONALIZADA='C', ST_ENVIACANCELAMENTO='S', ST_ENVIAENDERECOSISTEMA='N', TP_FORMATOITEMLISTASERV=0, ST_ENVIAINSCMUN='N'.
  14. Descrição personalizada (frameMFA013cmbTP_DESCSERVICOChange): aba pagDescPersonalizada visível apenas quando CD_PROVEDOR='69' (Cambé) e TP_DESCSERVICO='4'.
  15. Optante Simples Municipal: somente visível para provedor Coplan (56); ao trocar de provedor, campo é limpo. Default 'N' se vazio no FrameEnter.
  16. Aba Usuários: pagUsuario.TabVisible := (PARMSISTEMA.ST_EMPRESANFSE = 'S') — ativa somente em configuração multi-empresa para NFS-e.
  17. Reload em master-detail (qryCadastroAfterScroll): ao trocar de empresa, recarrega tabUsuario e tabPROVEDOR via ParamByName('CD_EMPRESA').
  18. Acesso somente leitura: quando programa.tpAcesso=2, actionOK é desabilitado e ocultado.
  19. Envio de e-mail: opção ST_ENVIAEMAILCNF011 é exibida somente para provedor NotaControl (3).
  20. TP_CANCELAMENTO: exibido somente para provedor Fiorilli/IssWeb (15); valor lido de PROVEDOREMPRESA na troca de provedor.
  21. Posicionamento inicial: no iniciar, faz qryCadastro.Locate('CD_EMPRESA', sessao.Empresa.Cd_Empresa); se não encontrar, posiciona no primeiro registro.
  22. Módulo Package (jFrameCadastro): usa TframeCadastro.carregaPesquisa para grid de busca (padrão legado).

Datasets e SQL​

DatasetTabela PrincipalTipoDescricao
qryCadastroCONFIGNFSETFDQueryConfiguração principal NFS-e por empresa; JOIN EMPRESA e LEFT JOIN PROVEDOREMPRESA/PROVEDOR
tabUsuarioCONFIGNFSEUSUARIOTFDQueryUsuários autorizados a emitir NFS-e; filtrado por CD_EMPRESA via ParamByName
tabPROVEDORPROVEDOREMPRESATFDQueryConfiguração do provedor municipal por empresa; filtrado por CD_EMPRESA via ParamByName