Wiki / WebFoPag ~10 min

📘 Financeiro

O módulo Financeiro reúne os cadastros bancários e os processos usados para preparar, consultar, conferir e retornar pagamentos, além de operações com conta-salário, cheques, processos de conta e integrações financeiras. As telas atendem usuários autorizados das áreas de folha, financeiro, administração bancária e QA, com permissões específicas para visualizar, salvar, gerar, processar, baixar, conferir ou cancelar registros.

📄 1 - Submenus

🔍 2 - Visão Técnica

As telas foram implementadas em ASP.NET Web Forms e herdam de BasePageWebFoPag. O markup usa controles Employer:*, UpdatePanel, grids, componentes de busca e grupos de validação; os code-behinds mantêm filtros e seleções no ViewState, carregam permissões do usuário e acionam classes da camada Employer.Plataforma.BLL.

Cadastros e conferências executam operações a partir de eventos da página, enquanto geração de arquivos, leitura de retornos e integrações podem chamar ProcessoAssincrono.IniciarAtividade(...) e expor o acompanhamento por SolicitacoesAssincronas. O comportamento concreto depende de parâmetros da empresa, banco, convênio, tipo de processo, layout e permissões atribuídas ao usuário.

2.1 🧾 Banco de Dados

Estrutura das Tabelas

A revisão confirmou as tabelas employer.TAB_Arquivo_Gerado, employer.TAB_Arquivo_Gerado_Lote, employer.TAB_Arquivo_Gerado_Empregado e employer.CRD_Retorno. Os exemplos abaixo são consultas somente leitura e usam a competência derivada da data de pagamento.

2.2 Exemplos de Consultas

1. Arquivos de pagamento gerados por período

USE PLATAFORMA_EMPLOYER;

DECLARE @Idf_Empresa INT = 1;
DECLARE @Idf_Arquivo_Gerado INT = NULL;
DECLARE @DataPagamentoInicial DATE = '2026-01-01';
DECLARE @DataPagamentoFinal DATE = '2026-08-31';
DECLARE @DataGeracaoInicial DATE = NULL;
DECLARE @DataGeracaoFinal DATE = NULL;

SELECT TOP (100)
    AG.Idf_Arquivo_Gerado, AG.Num_Sequencia, AG.Idf_Empresa,
    AG.Dta_Pagamento, AG.Dta_Geracao, AG.Dta_Retorno, AG.Nme_Arquivo,
    AG.Idf_Forma_Pagamento, AG.Idf_Banco, AG.Idf_Conta_Empresa,
    AG.Idf_Convenio_Bancario, AG.Idf_Status_Conferencia_Arquivo,
    AG.Dta_Conferencia, AG.Idf_Status_Geracao_Arquivo,
    AG.Des_Protocolo_Geracao_Arquivo, AG.Flg_Pagamento_TEDPays
FROM employer.TAB_Arquivo_Gerado AS AG
WHERE AG.Idf_Empresa = @Idf_Empresa
  AND (@Idf_Arquivo_Gerado IS NULL OR AG.Idf_Arquivo_Gerado = @Idf_Arquivo_Gerado)
  AND (@DataPagamentoInicial IS NULL OR AG.Dta_Pagamento >= @DataPagamentoInicial)
  AND (@DataPagamentoFinal IS NULL OR AG.Dta_Pagamento < DATEADD(DAY, 1, @DataPagamentoFinal))
  AND (@DataGeracaoInicial IS NULL OR AG.Dta_Geracao >= @DataGeracaoInicial)
  AND (@DataGeracaoFinal IS NULL OR AG.Dta_Geracao < DATEADD(DAY, 1, @DataGeracaoFinal))
ORDER BY AG.Dta_Pagamento DESC, AG.Dta_Geracao DESC, AG.Idf_Arquivo_Gerado DESC;

2. Resumo dos arquivos de pagamento por competência

USE PLATAFORMA_EMPLOYER;

DECLARE @Idf_Empresa INT = 1;
DECLARE @CompetenciaInicial INT = 202601;
DECLARE @CompetenciaFinal INT = 202608;

SELECT
    AG.Idf_Empresa,
    YEAR(AG.Dta_Pagamento) * 100 + MONTH(AG.Dta_Pagamento) AS Competencia,
    COUNT(*) AS TotalArquivos,
    SUM(CASE WHEN AG.Dta_Retorno IS NULL THEN 1 ELSE 0 END) AS AguardandoRetorno,
    SUM(CASE WHEN AG.Dta_Retorno IS NOT NULL AND AG.Dta_Conferencia IS NULL THEN 1 ELSE 0 END) AS AguardandoConferencia,
    SUM(CASE WHEN AG.Dta_Conferencia IS NOT NULL THEN 1 ELSE 0 END) AS Conferidos,
    MIN(AG.Dta_Pagamento) AS PrimeiroPagamento,
    MAX(AG.Dta_Pagamento) AS UltimoPagamento
FROM employer.TAB_Arquivo_Gerado AS AG
WHERE AG.Idf_Empresa = @Idf_Empresa
  AND YEAR(AG.Dta_Pagamento) * 100 + MONTH(AG.Dta_Pagamento) BETWEEN @CompetenciaInicial AND @CompetenciaFinal
GROUP BY AG.Idf_Empresa, YEAR(AG.Dta_Pagamento) * 100 + MONTH(AG.Dta_Pagamento)
ORDER BY Competencia DESC;

3. Arquivos de pagamento pendentes de retorno ou conferência

USE PLATAFORMA_EMPLOYER;

DECLARE @Idf_Empresa INT = 1;
DECLARE @Idf_Arquivo_Gerado INT = NULL;
DECLARE @NomeArquivo NVARCHAR(100) = NULL;
DECLARE @CompetenciaInicial INT = 202601;
DECLARE @CompetenciaFinal INT = 202608;

SELECT TOP (200)
    AG.Idf_Arquivo_Gerado, AG.Num_Sequencia, AG.Idf_Empresa,
    YEAR(AG.Dta_Pagamento) * 100 + MONTH(AG.Dta_Pagamento) AS Competencia,
    AG.Dta_Pagamento, AG.Dta_Geracao, AG.Dta_Retorno, AG.Nme_Arquivo,
    AG.Idf_Banco, AG.Idf_Conta_Empresa, AG.Idf_Convenio_Bancario,
    AG.Idf_Status_Geracao_Arquivo, AG.Idf_Status_Conferencia_Arquivo,
    AG.Dta_Conferencia,
    CASE WHEN AG.Dta_Retorno IS NULL THEN 'Aguardando retorno' ELSE 'Retorno recebido' END AS SituacaoRetorno,
    CASE WHEN AG.Dta_Conferencia IS NULL THEN 'Aguardando conferência' ELSE 'Conferido' END AS SituacaoConferencia
FROM employer.TAB_Arquivo_Gerado AS AG
WHERE AG.Idf_Empresa = @Idf_Empresa
  AND (@Idf_Arquivo_Gerado IS NULL OR AG.Idf_Arquivo_Gerado = @Idf_Arquivo_Gerado)
  AND (@NomeArquivo IS NULL OR AG.Nme_Arquivo LIKE N'%' + @NomeArquivo + N'%')
  AND YEAR(AG.Dta_Pagamento) * 100 + MONTH(AG.Dta_Pagamento) BETWEEN @CompetenciaInicial AND @CompetenciaFinal
  AND (AG.Dta_Retorno IS NULL OR AG.Dta_Conferencia IS NULL)
ORDER BY AG.Dta_Pagamento DESC, AG.Dta_Geracao DESC, AG.Idf_Arquivo_Gerado DESC;

4. Arquivos com retorno registrado sem conteúdo de retorno

USE PLATAFORMA_EMPLOYER;

DECLARE @Idf_Empresa INT = 1;
DECLARE @Idf_Arquivo_Gerado INT = NULL;
DECLARE @CompetenciaInicial INT = 202601;
DECLARE @CompetenciaFinal INT = 202608;

SELECT TOP (200)
    AG.Idf_Arquivo_Gerado, AG.Num_Sequencia, AG.Idf_Empresa,
    YEAR(AG.Dta_Pagamento) * 100 + MONTH(AG.Dta_Pagamento) AS Competencia,
    AG.Dta_Pagamento, AG.Dta_Geracao, AG.Dta_Retorno, AG.Nme_Arquivo,
    AG.X_Arq_Retorno, AG.Idf_Banco, AG.Idf_Conta_Empresa,
    AG.Idf_Convenio_Bancario, AG.Idf_Status_Geracao_Arquivo,
    AG.Idf_Status_Conferencia_Arquivo, AG.Dta_Conferencia
FROM employer.TAB_Arquivo_Gerado AS AG
WHERE AG.Idf_Empresa = @Idf_Empresa
  AND (@Idf_Arquivo_Gerado IS NULL OR AG.Idf_Arquivo_Gerado = @Idf_Arquivo_Gerado)
  AND YEAR(AG.Dta_Pagamento) * 100 + MONTH(AG.Dta_Pagamento) BETWEEN @CompetenciaInicial AND @CompetenciaFinal
  AND AG.Dta_Retorno IS NOT NULL
  AND (AG.X_Arq_Retorno IS NULL OR LTRIM(RTRIM(AG.X_Arq_Retorno)) = '')
ORDER BY AG.Dta_Retorno DESC, AG.Dta_Pagamento DESC, AG.Idf_Arquivo_Gerado DESC;

5. Retornos bancários por período

USE PLATAFORMA_EMPLOYER;

DECLARE @Idf_Retorno INT = NULL;
DECLARE @Idf_Conta_Empresa INT = NULL;
DECLARE @DataMovimentoInicial DATE = '2026-01-01';
DECLARE @DataMovimentoFinal DATE = '2026-08-31';

SELECT TOP (100)
    R.Idf_Retorno, R.Idf_Remessa, R.Idf_Conta_Empresa, R.Dta_Movimento,
    R.Qtd_Reservada, R.Qtd_Nao_Reservada,
    CASE WHEN R.Arq_Retorno IS NULL THEN 'Sem arquivo armazenado' ELSE 'Arquivo armazenado' END AS SituacaoArquivoRetorno,
    R.Ctl_Inicio, R.Ctl_Fim
FROM employer.CRD_Retorno AS R
WHERE (@Idf_Retorno IS NULL OR R.Idf_Retorno = @Idf_Retorno)
  AND (@Idf_Conta_Empresa IS NULL OR R.Idf_Conta_Empresa = @Idf_Conta_Empresa)
  AND (@DataMovimentoInicial IS NULL OR R.Dta_Movimento >= @DataMovimentoInicial)
  AND (@DataMovimentoFinal IS NULL OR R.Dta_Movimento < DATEADD(DAY, 1, @DataMovimentoFinal))
ORDER BY R.Dta_Movimento DESC, R.Idf_Retorno DESC;

💻 3 - Código Fonte

O escopo foi confirmado a partir das treze telas indicadas para o módulo, sempre considerando o arquivo .aspx e o respectivo code-behind .aspx.cs.

3.1 - Arquivos, classes e estruturas

  • AgenciaCadastro.aspx / AgenciaCadastro.aspx.cs — classe AgenciaCadastro; cadastro, pesquisa e manutenção de agências bancárias.
  • ConvenioBancarioCadastro.aspx / ConvenioBancarioCadastro.aspx.cs — classe ConvenioBancarioCadastro; convênios por empresa, conta, layout, tipo de conta e modalidades DOC, TED, transferência, depósito e Pix quando habilitadas.
  • EfetivacaoContaSalarioGerar.aspx / EfetivacaoContaSalarioGerar.aspx.cs — classe EfetivacaoContaSalarioGerar; seleção de contas pendentes e geração de arquivo de efetivação.
  • DownloadArquivoPagamento.aspx / DownloadArquivoPagamento.aspx.cs — classe DownloadArquivoPagamento; pesquisa, seleção, download, nova geração e transmissão de arquivos conforme configuração e permissão.
  • ConferenciaArquivoPagamento.aspx / ConferenciaArquivoPagamento.aspx.cs — classe ConferenciaArquivoPagamento; pesquisa e atualização da situação de conferência dos arquivos.
  • LeituraRetornoPagamento.aspx / LeituraRetornoPagamento.aspx.cs — classe LeituraRetornoPagamento; upload, processamento de retorno e apresentação do resumo e da solicitação assíncrona.
  • ConsultaPagamento.aspx / ConsultaPagamento.aspx.cs — classe ConsultaPagamento; consulta e abertura de pagamentos, incluindo a variante ?tipo=financeiro.
  • ChequeSerieCadastro.aspx / ChequeSerieCadastro.aspx.cs — classe ChequeSerieCadastro; cadastro de série e intervalo numérico por banco, conta e filial.
  • ChequeCancelamento.aspx / ChequeCancelamento.aspx.cs — classe ChequeCancelamento; pesquisa e cancelamento de cheques de folha, benefício, pensão ou RPA.
  • AberturaContaEmpregado.aspx / AberturaContaEmpregado.aspx.cs — classe AberturaContaEmpregado; seleção de processo e empregados para geração de arquivo de conta ou liberação de cartão.
  • AberturaContaEmpregadoDownload.aspx / AberturaContaEmpregadoDownload.aspx.cs — classe AberturaContaEmpregadoDownload; pesquisa e download dos arquivos de conta gerados.
  • AberturaContaEmpregadoArquivoRetorno.aspx / AberturaContaEmpregadoArquivoRetorno.aspx.cs — classe AberturaContaEmpregadoArquivoRetorno; upload, processamento e consulta dos registros retornados para processos de conta.
  • IntegracaoFinanceiraCliente.aspx / IntegracaoFinanceiraCliente.aspx.cs — classe IntegracaoFinanceiraCliente; geração de integrações em formatos como RM, Datasul, DealerNet, Oracle, SAP e variações específicas habilitadas no ambiente.

3.2 - Principais métodos e fluxo de execução

  • Inicializar() — configura permissões, parâmetros, componentes, listas, filtros e grids de cada tela.
  • ConfigurarPermissoesTela() — carrega categorias de permissão específicas e redireciona, desabilita ou oculta ações quando o usuário não possui a autorização exigida.
  • Salvar() em AgenciaCadastro, ConvenioBancarioCadastro, ChequeSerieCadastro e ConferenciaArquivoPagamento — valida os dados da tela e encaminha a inclusão ou atualização para os objetos de negócio correspondentes.
  • GerarArquivoEfetivacao(...) — valida a seleção de contas pendentes e prepara o arquivo de efetivação de conta-salário.
  • PesquisarArquivosGeradosParaDownload() e CarregarGridViewArquivosGerados() — aplicam filtros e apresentam arquivos disponíveis nos fluxos de pagamento e de processos de conta.
  • ProcessarArquivoRetorno() — valida o upload e inicia o tratamento de retorno de pagamento ou de processo de conta, conforme a tela e o plugin configurado.
  • ConfigurarEstrutura() em ConsultaPagamento — reconhece Request.QueryString["tipo"] == "financeiro", ajusta o contexto da tela e define a navegação para abertura de lote financeiro.
  • CancelarCheques() — processa os cheques selecionados depois da pesquisa e das validações da modalidade escolhida.
  • Gerar() em IntegracaoFinanceiraCliente — monta os parâmetros do formato selecionado e inicia o plugin de integração financeira correspondente.
  • ProcessoAssincrono.IniciarAtividade(...) — agenda trabalhos de geração, retorno ou integração; o acompanhamento é atualizado pelos componentes de solicitações assíncronas.

🏗️ 4 - Layered Architecture em C#

  • Apresentação: páginas .aspx, code-behind, controles Employer:*, componentes de upload e pesquisa, UpdatePanel, grids e estado mantido em ViewState.
  • Aplicação e negócio: classes de Employer.Plataforma.BLL, parâmetros da empresa, enumeradores, validações de permissão e regras específicas de banco, convênio, pagamento, cheque e processo de conta.
  • Processamento assíncrono: Employer.PlataformaServices.ProcessosAssincronos, plugins carregados por metadados e o componente SolicitacoesAssincronas para acompanhar atividades iniciadas pelas telas.
  • Acesso a dados: ocorre de forma indireta por objetos e métodos da BLL observados no code-behind. A camada física, os repositórios e os objetos de banco serão detalhados após a revisão do ambiente de dados.
  • Integrações externas: layouts bancários, arquivos de remessa e retorno, formatos de integração financeira e recursos de criptografia são escolhidos conforme parâmetros e configurações vigentes no cliente.

🧪 5 - Sugestões de Cenários de Teste e Validações (QA)

5.1 - Interface e componentes

  • Validar campos obrigatórios, formatos, limites e mensagens nos cadastros de agência, convênio e série de cheque.
  • Exercitar filtros com intervalo de datas válido, data inicial posterior à final, lote inexistente e combinações sem resultado.
  • Conferir seleção individual, seleção em massa, mudança de página do grid e manutenção da seleção no ViewState.
  • Testar upload sem arquivo, extensão não aceita, arquivo vazio, arquivo duplicado e múltiplos arquivos quando o componente permitir.
  • Validar o estado dos botões de download, geração, processamento, conferência e cancelamento conforme a linha selecionada e a situação do registro.
  • Comparar a navegação de ConsultaPagamento.aspx com e sem ?tipo=financeiro, incluindo o retorno ao menu e a abertura do lote correto.

5.2 - Regras de negócio

  • Cadastrar agência com banco e número já utilizados e verificar a mensagem retornada pela regra de negócio.
  • Exercitar convênios com diferentes tipos de conta, layouts e modalidades de pagamento, incluindo campos condicionais de DOC, TED, transferência, depósito e Pix.
  • Gerar efetivação com nenhuma conta selecionada, com registros válidos e com registros que produzam ocorrências na grade de erros.
  • Conferir a transição entre situações de arquivo de pagamento e o comportamento para registros pendentes, atendidos ou cancelados.
  • Processar retorno com registros aceitos e rejeitados e comparar totais, códigos, descrições e situações exibidas no resumo.
  • Cadastrar série de cheque com intervalos inválidos ou sobrepostos e cancelar cheques nas modalidades folha, benefício, pensão e RPA.
  • Exercitar processos de conta por banco e tipo de processo, verificando os campos de tipo de conta, conta da empresa, agência e convênio habilitados em cada configuração.
  • Gerar cada formato de integração financeira disponível para o perfil e conferir o arquivo ou a solicitação produzida no acompanhamento assíncrono.

5.3 - Permissões, concorrência e casos de borda

  • Acessar cada tela sem permissão de visualização e validar o redirecionamento para acesso negado.
  • Manter a permissão de consulta e retirar permissões de salvar, baixar, gerar novamente, transmitir, processar, conferir ou cancelar, verificando cada ação isoladamente.
  • Testar ações protegidas por senha master com credencial válida, inválida e cancelamento do modal.
  • Disparar duas solicitações equivalentes em sequência e observar como o ambiente identifica ou processa possíveis duplicidades.
  • Tentar baixar um arquivo cujo conteúdo ainda não esteja disponível ou cuja geração tenha falhado.
  • Processar lotes grandes, paginação extensa e seleção em várias páginas, observando tempo de resposta, totalizadores e recuperação após falha.
  • Alterar parâmetros ou permissões entre a abertura da tela e a confirmação da ação e verificar a revalidação executada no servidor.
  • Confirmar que arquivos de pagamento, conta e retorno sejam expostos somente ao usuário, empresa e contexto autorizados.

Pagamento de salários por depósito bancário

  • Fundamento: os arts. 464 e 465 da Consolidação das Leis do Trabalho tratam do recibo de pagamento e do pagamento por depósito em conta bancária.
  • Relação com o módulo: os fluxos de arquivos de pagamento, consulta, retorno e conta-salário apoiam a operação financeira da folha; a validação jurídica do processo completo depende também das práticas e dos comprovantes adotados pela empresa.

Conta-salário e portabilidade salarial

  • Fundamento: a Resolução CMN nº 5.058/2022 disciplina os serviços de pagamento de salários pelas instituições financeiras, define conta-salário e prevê portabilidade salarial. Em 31/08/2026, a norma permanece vigente; a Resolução CMN nº 5.299/2026 prevê sua revogação total a partir de 01/07/2027.
  • Relação com o módulo: cadastro de convênios, efetivação de contas e processos de abertura e retorno devem ser revisados quando houver mudança regulatória ou alteração do layout exigido pela instituição financeira.

Emissão e cancelamento de cheques

  • Fundamento: a Lei nº 7.357/1985 dispõe sobre requisitos, apresentação, pagamento, oposição, revogação e demais regras relacionadas ao cheque.
  • Relação com o módulo: cadastro de série, controle de numeração e cancelamento são controles operacionais do sistema; a decisão sobre sustação, contraordem ou validade do título exige análise do caso e dos procedimentos bancários aplicáveis.

Proteção de dados pessoais

  • Fundamento: a Lei nº 13.709/2018, Lei Geral de Proteção de Dados Pessoais, disciplina operações de tratamento de dados pessoais.
  • Relação com o módulo: cadastros bancários, arquivos de pagamento, contas, retornos e integrações podem conter identificadores e dados financeiros de empregados; acesso, download, transmissão, retenção e descarte devem seguir as políticas de privacidade e segurança aprovadas pela organização.

As referências acima orientam a revisão funcional e de QA e não substituem análise jurídica, normativa ou bancária específica do cliente.


📌 Status: Concluído
👤 Responsável: Equipe de QA

Digite para pesquisar...

Scroll para zoom · Esc para fechar

⌨️ Atalhos de teclado
Navegação
Ctrl K Pesquisar na wiki
Ctrl F Buscar na página
? Ver atalhos
Visualização
Ctrl Shift F Modo foco
A+ / A− Tamanho da fonte
Ctrl D Alternar tema
Ações
Ctrl B Favoritar página
Esc Fechar dialogs