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ódigo | Tipo | Mensagem |
|---|
| W-0007 | Aviso | Usuário não Cadastrado. Verifique [ADM001]! |
| W-1736 | Aviso | Empresa não cadastrada! [ADM002] |
| W-1737 | Aviso | O Usuário já está Cadastrado para a Empresa: %s! |
| W-1738 | Aviso | Máscara Inválida! |
| W-1739 | Aviso | O lote deve conter entre %s e %s. Verifique! |
| W-1806 | Aviso | Empresa não Informada. Verifique! |
| W-2107 | Aviso | Indicador de Operação não encontrado. Verifique [TFI023]! |
Mais 6 mensagens com texto literal no código: MFA013.
Tabelas de Escrita (INSERT/UPDATE/DELETE)
Tabelas de Leitura (SELECT)
Procedures Chamadas
| Procedure | Tabelas Acessadas |
|---|
| RETORNA_DADOSCADASTRAIS | AREACOMERCIAL (SELECT), ENDERECOPESSOA (SELECT), ESTADO (SELECT), FORMAPAGTO (SELECT), GRUPOPCP (SELECT), MUNICIPIO (SELECT) +4 |
Tabelas via Procedures (acesso indireto)
| Tabela | Operacoes |
|---|
| AREACOMERCIAL | SELECT |
| ENDERECOPESSOA | SELECT |
| ESTADO | SELECT |
| FORMAPAGTO | SELECT |
| GRUPOPCP | SELECT |
| MUNICIPIO | SELECT |
| PAISBACEN | SELECT |
| PESSOA | SELECT |
| PESSOAFISICA | SELECT |
| REGIAOCOMERCIAL | SELECT |
Dependencias Aferentes (quem alimenta esta tela)
Telas que escrevem em tabelas lidas por esta tela.
| Tela | Título | Tabelas em Comum |
|---|
| ADM002 | Cadastro de Empresas | EMPRESA |
| TFA001 | Cadastro de Pessoas | PESSOA |
| ADM001 | Cadastro de Usuários | USUARIO |
Dependencias Eferentes (quem consome dados desta tela)
Telas que leem tabelas escritas por esta tela.
| Tela | Título | Tabelas em Comum |
|---|
| CNF011 | Consulta de NFS-e | CONFIGNFSE, CONFIGNFSEUSUARIO, PROVEDOREMPRESA |
| MNF002 | Emissão de Nota Fiscal de Venda | CONFIGNFSE |
| MNF017 | Venda Balcão | CONFIGNFSE |
| MNF001 | Recebimento de Notas Fiscais de Compra | CONFIGNFSE |
Regras de Negocio
- 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.
- 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.
- 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.
- 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.
- Máscara float Ginfes (
tabPROVEDORDS_MASCARAFLOATValidate): DS_MASCARAFLOAT aceita apenas #0.0, #0.00, #0.000, #0.0000 ou #0.00000; erro W-1738.
- Quantidade de notas por lote (
qryCadastroQT_NOTASLOTEValidate): QT_NOTASLOTE deve estar entre 1 e 30; erro W-1739 (parametrizado com '1' e '30 notas').
- Cálculo de ISS (
qryCadastroST_CALCULAISSValidate): ST_CALCULAISS='T' (totalizado) exibe lblTP_ARREDONDAMENTO/cmbTP_ARREDONDAMENTO; caso contrário oculta.
- Agrupamento de serviço (
tabPROVEDORST_AGRUPASERVICOValidate): marcar ST_AGRUPASERVICO='S' desabilita chkST_DETALHASERVICO e força ST_DETALHASERVICO='N'.
- 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.
- Busca de empresa via F9 (
edtCD_EMPRESAKeyDown): usa pesquisa EMPRESAUSUARIO filtrada por sessao.usuario.cd_usuario (só permite empresas vinculadas ao usuário).
- Busca de certificado via F9 (
editNmArquivoCertKeyDown): exige CD_EMPRESA preenchido (erro W-1806 caso contrário); BuscaCertificados popula NR_SERIALCERT.
- 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'.
- 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'.
- Descrição personalizada (
frameMFA013cmbTP_DESCSERVICOChange): aba pagDescPersonalizada visível apenas quando CD_PROVEDOR='69' (Cambé) e TP_DESCSERVICO='4'.
- Optante Simples Municipal: somente visível para provedor Coplan (56); ao trocar de provedor, campo é limpo. Default
'N' se vazio no FrameEnter.
- Aba Usuários:
pagUsuario.TabVisible := (PARMSISTEMA.ST_EMPRESANFSE = 'S') — ativa somente em configuração multi-empresa para NFS-e.
- Reload em master-detail (
qryCadastroAfterScroll): ao trocar de empresa, recarrega tabUsuario e tabPROVEDOR via ParamByName('CD_EMPRESA').
- Acesso somente leitura: quando
programa.tpAcesso=2, actionOK é desabilitado e ocultado.
- Envio de e-mail: opção
ST_ENVIAEMAILCNF011 é exibida somente para provedor NotaControl (3).
- TP_CANCELAMENTO: exibido somente para provedor Fiorilli/IssWeb (15); valor lido de PROVEDOREMPRESA na troca de provedor.
- Posicionamento inicial: no
iniciar, faz qryCadastro.Locate('CD_EMPRESA', sessao.Empresa.Cd_Empresa); se não encontrar, posiciona no primeiro registro.
- Módulo Package (
jFrameCadastro): usa TframeCadastro.carregaPesquisa para grid de busca (padrão legado).
Datasets e SQL
| Dataset | Tabela Principal | Tipo | Descricao |
|---|
qryCadastro | CONFIGNFSE | TFDQuery | Configuração principal NFS-e por empresa; JOIN EMPRESA e LEFT JOIN PROVEDOREMPRESA/PROVEDOR |
tabUsuario | CONFIGNFSEUSUARIO | TFDQuery | Usuários autorizados a emitir NFS-e; filtrado por CD_EMPRESA via ParamByName |
tabPROVEDOR | PROVEDOREMPRESA | TFDQuery | Configuração do provedor municipal por empresa; filtrado por CD_EMPRESA via ParamByName |