/
Retorno do arquivo de pagamento eletrônico

Retorno do arquivo de pagamento eletrônico

Esse artigo descreve o processo de retorno do arquivo de pagamento eletrônico. Após esse processo o sistema irá gerar o extrato e enviá-lo automaticamente ao locador.

Regras de negócio

  1. O sistema não liquida duas vezes o mesmo documento a pagar;

  2. Não deve ser alterado o campo código de integração, pois é por ele que o sistema realizada a baixa.

 

Retornar arquivo de liquidação de Pagamento

Com o pagamento dos títulos no banco, é necessário retornar o arquivo de pagamento para o sistema realizar a liquidação dos documentos e, para isso, é necessário realizar o seguinte procedimento:

  1. Entre na guia "Documentos a pagar".

  2. Clique no botão "Enviar Retorno".

  3. Selecione a conta financeira que refere-se o arquivo .

  4. Clique em “Carregar Arquivos” e informe o arquivo que se deseja importar.

  5. Clique em enviar.

  6. Para baixar o arquivo de retorno bancário, se desejar, o sistema gravou uma cópia no no objeto “Contas Correntes”.

  7. Clique na conta financeira utilizada.

  8. Clique na guia “Retorno de Cobrança”.

 

Após o retorno o sistema realiza as seguintes alterações:

  1. No repasse:

    1. altera a situação do repasse para “Pago”;

    2. conta corrente: irá preencher com a conta corrente do pagamento;

    3. data do pagamento: irá preencher com a data do pagamento;

    4. valor total pago: irá preencher com o valor total pago;

  2. Na conta corrente:

    1. cria um lançamento do valor do crédito na conta corrente na data do pagamento;

  3. Na parcela do documento a pagar:

    1. altera a situação da integração para “efetuado”;

    2. altera a situação do pagamento para “Paga”;

    3. preenche o campo data de pagamento com a data do pagamento.

    4. preenche o campo Pagamento com o número do lançamento de gerado na conta corrente.

  4. No lançamento do contrato:

    1. altera a situação dos lançamentos do repasse para “Pago”;

    2. preenche o campo data de pagamento com a data do pagamento, que será utilizado para o informe de rendimento.

  5. No contábil:

    1. criar um lançamento contábil, nas contas contábeis pré-configuradas, na data do pagamento e com o valor pago.

Notas para o desenvolvedor:

  1. Usuário selecionar o componente aura “pesquisarContaPagar“ do SnapERP para pesquisar os registros de pagamento.

  2. Usuário clica no botão “Enviar retorno“ para processar o arquivo de retorno.

    1. Sistema abre o componente “enviarRetornoPagamento“.

  3. Usuário selecionar a conta corrente e anexa o arquivo de retorno do banco.

  4. Usuário clica no botão “Enviar”.

  5. Sistema executa o método “salvarRetornoPagamento“ da classe “PagamentoController“.

    1. Sistema executa o método “carregarArquivoRetorno“ da classe “RetornoPagamentoServico“.

      1. Recupera o arquivo de retorno salvo

      2. Cria registro no objeto “snap_finan__retorno_pagamento__c” com a situação igual a “Aguardando processamento“ e o arquivo anexado.

      3. Executa o método (future) “processarArquivoRetorno“ da classe “RetornoPagamentoItauServico“.

        1. Para cada parcela de pagamento do arquivo:

          1. Código da ocorrência = '00' (pagamento efetuado):

            parcela.situacao__c = 'Paga'; parcela.data_pagamento__c = Date.newInstance(Integer.valueOf(processamento.data_efetiva_pagamento.substring(4)), Integer.valueOf(processamento.data_efetiva_pagamento.substring(2,4)), Integer.valueOf(processamento.data_efetiva_pagamento.substring(0,2))); parcela.integracao_bancaria__c = 'Efetuado'; // situação da integração parcela.snap_finan__erro_pagamento_eletronico__c = false; item.snap_finan__operacao__c = 'Documento Pago'; //01012010 item.snap_finan__data_prevista_pagamento__c = Date.newInstance(Integer.valueOf(processamento.data_efetiva_pagamento.substring(4)), Integer.valueOf(processamento.data_efetiva_pagamento.substring(2,4)), Integer.valueOf(processamento.data_efetiva_pagamento.substring(0,2))); temPagamento = true;
          2. Código da ocorrência = ‘BD’(pagamento agendado):

            parcela.integracao_bancaria__c = 'Agendado'; // situação da integração parcela.snap_finan__erro_pagamento_eletronico__c = false; item.snap_finan__operacao__c = 'Entrada Confirmada';
          3. Código da ocorrência = ‘RJ’ (pagamento rejeitado):

            parcela.integracao_bancaria__c = 'Rejeitado'; // situação da integração String mensagemErro = ''; for (Integer i=0; i< processamento.codigo_ocorrencia.length()/2; i++){ system.debug(processamento.codigo_ocorrencia.mid(i*2, 2)); mensagemErro += mapa_ocorrencia.get(processamento.codigo_ocorrencia.mid(i*2, 2)) + '; '; } system.debug('mensagem de erro: ' + mensagemErro); parcela.mensagem_pagamento_eletronico__c = mensagemErro; parcela.snap_finan__erro_pagamento_eletronico__c = true; item.snap_finan__operacao__c = 'Erro';
        2. Cria os registros para novos itens do retorno de pagamento (snap_finan__item_retorno_pagamento__c)

        3. Atualiza o registro do retorno de pagamento com a situação igual a “Processado com sucesso“.

        4. Atualiza as parcelas de pagamento.

        5. Cria um evento de pagamento:

No SnapProperty (process builder “Pagamento”):

  1. Quando uma “Parcela a pagar” é atualizada e “Situação” for igual a “Paga” e o tipo de registro for igual a “Repasse”:

    1. Executa o método “parcelaPaga“ da classe “RepassePago“:

      1. Executa o método gerarLancamentoFinanceiro da classe “RepasseServico“:

        1. Para cada parcela:

          1. Cria um lançamento (snap_finan__Movimento__c)

        2. Cria os registros dos lançamentos.

        3. Atualiza as parcelas com o campo

      2. Executa o método atualizarRepassesPagos da classe “RepasseServico“:

        1. Recupera os repasses relacionados com as parcelas pagas.

        2. Para cada repasse:

        3. Atualiza os repasses pagos.

      3. Executa o método contabilizarRepassesPagos da classe “RepasseServico“:

        1. Recupera os repasses pagos na etapa anterior.

        2. Para cada repasse:

          1. Executa o método “contabilizarPagamentoRepasse” da classe “ContabilidadeServico“:

            1. Cria objeto para lançamento contábil (snap_finan__lancamento_contabil__c) do repasse:

            2. Cria um item para debitar cada item do repasse:

            3. Atualiza a situação do repasse para “Contabilizado”.

        3. Atualiza os registros dos repasses.

        4. Recupera os itens do repasse (Item_Repasse__c).

        5. Cria os registros dos lançamentos contábeis

        6. Cria os registros dos itens dos lançamentos contábeis.

Processo sistêmico após o pagamento de um repasse

Processo após pagamento do repasse

Related content

Remessa do arquivo de pagamento eletrônico
Remessa do arquivo de pagamento eletrônico
More like this
Gerar arquivo de remessa de cobrança escritural
Gerar arquivo de remessa de cobrança escritural
More like this
Recebimento via arquivo de retorno bancário
Recebimento via arquivo de retorno bancário
More like this
Reembolso
Reembolso
More like this
Dúvidas frequentes [Repasse - Pagamento]
Dúvidas frequentes [Repasse - Pagamento]
More like this
Pagamento
Pagamento
More like this