Transferência Entre Múltiplas Contas
Entre Múltiplas Contas (Transferência Entre Múltiplas Contas)
Rotina do módulo Financeiro que executa, em um único processamento, várias transferências de valor entre contas bancárias/carteiras.
Visão Geral
Rotina do módulo Financeiro que executa, em um único processamento, várias transferências de valor entre contas bancárias/carteiras. O usuário monta uma lista (lote) de transferências na tela, informando para cada linha a carteira/filial de origem, a carteira/filial de destino, a data de lançamento, o documento, o valor, a cotação e uma observação. Ao salvar, todo o lote é enviado de uma só vez ao servidor, que processa item a item e devolve as movimentações financeiras e os lançamentos contábeis gerados, exibidos no passo de comprovante.
Árvore no ERP (menu do sistema):
FINANCEIRO > Transferências (recurso 1554) > Entre Múltiplas Contas (recurso 3965)
Identificação técnica:
| Item | Valor |
|---|---|
| Recurso de acesso | 3965 |
| Rota do recurso | EditViewDeTransferenciaEntreMultiplasContas |
| Recurso pai | 1554 – Transferências |
| Fonte de permissões | RecursosGeraisFinanceiro.cs |
| Controller | TransferenciaEntreContasController (Controllers\Financeiro\Transferencia) |
| Serviço de aplicação | ServicoDeTransferenciaEntreContas.ProcessarTransferenciaMultipla |
| View (ExtJS) | EditViewDeTransferenciaEntreMultiplasContas.js |
| Controller (ExtJS) | ControllerDeTransferenciaEntreMultiplasContas.js |
| Grid do lote | ListViewDeTransferenciaEntreMultiplasContas.js |
| Store do lote | StoreDeTransferenciaEntreMultiplasContas.js (em memória, sem proxy) |
Observações de arquitetura relevantes:
- Não existe um controller próprio chamado TransferenciaEntreMultiplasContasController. A rotina é servida pelo controller da transferência simples (TransferenciaEntreContasController), por meio das actions SalvarMultiplo e ImprimirEntreMultiplasContas.
- A grade do lote é uma store puramente em memória (sem proxy/URL). Nada é persistido enquanto o usuário adiciona, edita ou exclui itens: o lote inteiro só chega ao servidor no acionamento de Salvar.
- A tela é um assistente (assistente base do GMF) de dois passos: Passo 1 “Informações” (montagem do lote) e Passo 2 “Comprovante” (movimentações financeiras e contábeis geradas, com opções de impressão e exportação).
Endpoints
[POST] /TransferenciaEntreContas/SalvarMultiplo
Processa o lote inteiro de transferências. É a única action que grava dados nesta rotina.
Permissão: recurso 3965 – Entre Múltiplas Contas (rota EditViewDeTransferenciaEntreMultiplasContas), filho do recurso 1554 – Transferências. O recurso está cadastrado com validaAntes = true, ou seja, a tela executa uma validação de contexto antes de abrir (ver Regras de Negócio).
Parâmetros (corpo da requisição, JSON — lista de DTODeTransferenciaEntreMultiplasContasItem):
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| DataDeLancamento | DateTime | Sim | Data do lançamento da transferência daquele item. |
| Documento | string | Não | Número/identificação do documento da transferência. É também o idProperty do model na grade. |
| CarteiraOrigem | int | Sim | Código da carteira (banco/caixa) de onde o valor sai. |
| FilialOrigem | int | Sim | Código da filial da carteira de origem. Preenchido automaticamente a partir da carteira de origem. |
| CarteiraDestino | int | Sim | Código da carteira (banco/caixa) que recebe o valor. |
| FilialDestino | int | Sim | Código da filial da carteira de destino. |
| Valor | decimal | Sim | Valor da transferência. Precisa ser maior que zero. |
| ValorDaCotacao | decimal | Não | Cotação da moeda, usada quando as carteiras operam em moeda diferente da moeda padrão. |
| MovObservacao | string | Não | Observação gravada na movimentação financeira (até 200 caracteres na tela). |
Exemplo de requisição:
POST /TransferenciaEntreContas/SalvarMultiplo Content-Type: application/json
[ { “DataDeLancamento”: “2026-09-10T00:00:00”, “Documento”: “TRF-0001”, “CarteiraOrigem”: 12, “FilialOrigem”: 1, “CarteiraDestino”: 34, “FilialDestino”: 1, “Valor”: 1500.00, “ValorDaCotacao”: 1, “MovObservacao”: “Rateio de caixa da matriz” }, { “DataDeLancamento”: “2026-09-10T00:00:00”, “Documento”: “TRF-0002”, “CarteiraOrigem”: 12, “FilialOrigem”: 1, “CarteiraDestino”: 55, “FilialDestino”: 2, “Valor”: 800.00, “ValorDaCotacao”: 1, “MovObservacao”: “Repasse para filial 2” } ]
Exemplo de resposta:
{ “success”: true, “CodigoDaOperacao”: “000000000012345”, “CodigoMovimentacao”: “000000000012345”, “listaDeOperacoesFinanceiras”: [ { “ChaveDeFato”: “000000000012345”, “IDDaIntegracao”: “000000000012345”, “CodigoDoDocumentoDaOperacao”: “TRF-0001”, “NumeroDoLancamento”: 1, “Valor”: 1500.00 } ], “listaDeOperacoesContabeis”: [ { “ChaveDeFato”: “000000000012345”, “ContaDebito”: “1.01.01.0001”, “ContaCredito”: “1.01.01.0002”, “Valor”: 1500.00 } ] }
Comportamento no servidor:
- Se a lista recebida estiver vazia, a action não processa nada e dispara a mensagem de operação cancelada (ver Regras de Negócio), retornando null.
- Se houver itens, chama ProcessarTransferenciaMultipla passando a lista, a data de movimentação do usuário logado e o usuário logado.
- Com o identificador retornado (chave de fato/integração), consulta as movimentações financeiras geradas (ObterMovimentacoesPorCodigoDaOperacao) e, a partir das chaves de fato dessas movimentações, os lançamentos contábeis (ObterListaDeLancamentosContabeisPorListaDeChaveFato).
- Devolve os dois conjuntos no JSON, que alimentam as grades do Passo 2 (comprovante).
[POST] /TransferenciaEntreContas/ImprimirEntreMultiplasContas
Prepara o ambiente de arquivos do relatório de comprovante da transferência múltipla. Não recebe parâmetros e não grava dados de negócio.
Permissão: recurso 3965 – Entre Múltiplas Contas.
Comportamento:
- Garante a existência do diretório ~/DocumentosDoFinanceiro/ComprovanteTransferenciaMultiplaEntreContas/Cliente (cria o diretório e aplica FileIOPermission quando necessário).
- Se o arquivo de layout TransferneciaEntreMultiplasContas.rpt não existir na pasta do cliente, copia o layout padrão da pasta Padrao.
- Retorna success igual a true.
Exemplo de resposta:
{ “success”: true }
Após o retorno com sucesso, a tela abre a janela de relatórios com a URL:
/relatorios/documentosDoFinanceiro.aspx?NR=ComprovanteTransferenciaEntreMultiplasContas&RL=CompTransferenciaEntreMultiplasContas&CO=[codigoDaOperacao]&tipo=financeiro&exportarDiretamente=9
As exportações para Excel e Word usam a mesma action, alterando os parâmetros de saída (NR=ComprovanteCaixa e exportarDiretamente 1, 2 ou 3 para Excel e 4 para Word).
Modelos de Dados
DTODeTransferenciaEntreMultiplasContasItem (ATAK.DTO\Financeiro\Transferencia)
Contrato de entrada da action SalvarMultiplo. A requisição envia uma lista desses itens.
| Propriedade | Tipo |
|---|---|
| DataDeLancamento | DateTime |
| Documento | string |
| CarteiraOrigem | int |
| FilialOrigem | int |
| CarteiraDestino | int |
| FilialDestino | int |
| Valor | decimal |
| ValorDaCotacao | decimal |
| MovObservacao | string |
DTODeTransferenciaEntreMultiplasContas (model ExtJS da grade)
Model usado apenas na grade em memória do Passo 1. Possui os mesmos campos do DTO do servidor, acrescidos dos campos “Completo” (descrição formatada para exibição na grade), que não são enviados ao servidor.
| Campo | Tipo | Observação |
|---|---|---|
| DataDeLancamento | date | Exibida no formato d/m/Y. |
| Documento | string | idProperty do model. |
| CarteiraOrigem | int | Código enviado ao servidor. |
| FilialOrigem | int | Código enviado ao servidor. |
| CarteiraOrigemCompleto | string | Descrição da carteira de origem para exibição. |
| FilialOrigemCompleto | string | Descrição da filial de origem para exibição. |
| CarteiraDestino | int | Código enviado ao servidor. |
| FilialDestino | int | Código enviado ao servidor. |
| CarteiraDestinoCompleto | string | Descrição da carteira de destino para exibição. |
| FilialDestinoCompleto | string | Descrição da filial de destino para exibição. |
| Valor | decimal | Coluna com totalizador (soma) na grade. |
| ValorDaCotacao | decimal | Cotação informada na tela. |
| MovObservacao | string | Observação da movimentação. |
Campos da tela (Passo 1 – Informações)
| Campo na tela | itemId | Obrigatório | Observação |
|---|---|---|---|
| Carteira Origem | lkpCarteiraLancamentoTRECLIQDoFinanceiroTrasOrigem | Sim | Lookup de banco/caixa. Vem preenchido com a carteira logada. |
| Filial Origem | lkFilialDestinoTransferenciaOrigem | Sim | Campo desabilitado na tela; preenchido automaticamente com a filial da carteira de origem. |
| Agência e Conta (origem) | – | Não | Somente exibição, preenchidos pela carteira de origem. |
| Carteira Destino | lkpCarteiraLancamentoTRECLIQDoFinanceiroTrasDestino | Sim | Lookup de banco/caixa. |
| Filial Destino | lkFilialDestinoTransferenciaDestino | Sim | Preenchida automaticamente pela carteira de destino quando estiver vazia. |
| Agência e Conta (destino) | – | Não | Somente exibição. |
| Data Lançamento | dtDataInformacoes | Sim | Formato d/m/Y. Padrão: data de movimentação do usuário mais um dia. |
| Valor | txtValorInformacoes | Sim | Máscara monetária, 2 casas decimais, tamanho máximo 16. |
| Documento | txtDocumentoInformacoes | Não | Identificação do documento. |
| Cotação | txtCotacao | Não | 4 casas decimais, tamanho máximo 6. |
| Observação | txtCampoMovObservacao | Não | Até 200 caracteres. |
| moedaCarteiraOrigem e moedaCarteiraDestino | – | – | Campos ocultos usados na validação de moeda. |
Regras de Negócio
Regra 1 — É obrigatório estar logado em uma carteira para abrir a rotina. O recurso 3965 está cadastrado com validaAntes = true. Antes de abrir a tela, o sistema verifica se existe carteira selecionada na sessão. Se não existir, a abertura é cancelada.
Mensagem exibida: “Atenção: Nenhuma carteira está selecionada. Para acessar esta rotina, é necessário estar logado em uma carteira.”
Regra 2 — A carteira de destino não pode ser igual à carteira de origem. A validação ocorre nos dois lookups (ao carregar a carteira de origem e ao carregar a carteira de destino). O campo é limpo e a seleção é desfeita.
Mensagem exibida: “Carteira de destino não pode ser a mesma que a carteira de origem. Por favor, tente novamente.”
Regra 3 — As carteiras de origem e destino precisam ser da mesma moeda (validação na tela). Ao carregar qualquer um dos lookups, o sistema compara a moeda da carteira de origem com a da carteira de destino. Divergindo, a seleção é desfeita.
Mensagem exibida: “A moeda da carteira origem precisa ser a mesma da carteira de destino.”
Regra 4 — A mesma validação de moeda é reaplicada no servidor e bloqueia o processamento. No processamento de cada item, se a moeda da carteira de origem for diferente da moeda da carteira de destino, a operação é interrompida.
Mensagem exibida: Erro “Não foi possível realizar operação.” / Motivo “Não foi possível realizar a transferência ” / Solução ” pois as carteiras de origem e destino são de moedas diferentes.”
Regra 5 — Só é possível adicionar um item ao lote com o formulário válido. A ação Adicionar Item só monta e insere o registro na grade se o formulário do Passo 1 estiver válido (todos os campos obrigatórios preenchidos). Caso contrário, os campos inválidos são sinalizados pelo próprio formulário.
Regra 6 — Não é possível salvar sem ao menos uma transferência na lista. Se a grade estiver vazia no acionamento de Salvar, a requisição não é enviada.
Mensagem exibida: “Nenhuma Transferência adicionada na lista.” (aviso, título “Status”)
Regra 7 — Lote vazio recebido pelo servidor cancela a operação. Se, mesmo assim, a action SalvarMultiplo receber uma lista vazia, ela cancela o processamento.
Mensagem exibida: Erro “Operação Cancelada” / Motivo “Alguns dados podem estar incorretos” / Solução “Verifique se os dados informados estão corretos e tente novamente”
Regra 8 — O valor de cada transferência deve ser maior que zero. A validação é feita item a item, antes de processar a transferência. Um único item com valor menor ou igual a zero interrompe o lote.
Mensagem exibida: Erro “Não foi possível Processara Tranferencia” / Motivo “O valor da transferência deve ser maior que 0. Valor informado : {0}” / Solução “Informe valor da tranferencia corretamente”
Regra 9 — A filial de destino informada precisa existir. Se a filial de destino do item não for localizada, o processamento é interrompido.
Mensagem exibida: Erro “Não foi concluir a operação” / Motivo “A filial destino : [{0}] não foi encontrada” / Solução “Por favor, verifique os parâmetros informados.”
Regra 10 — A filial de origem informada precisa existir.
Mensagem exibida: Erro “Não foi concluir a operação” / Motivo “A filial origem : [{0}] não foi encontrada” / Solução “Por favor, verifique os parâmetros informados.”
Regra 11 — As carteiras de origem e destino precisam existir no cadastro. A busca é feita para as duas carteiras do item; não encontrando, o processamento é interrompido identificando qual carteira falhou (“de origem” ou “destino”).
Mensagem exibida: “Não foi possível Obter Carteira, A carteira {0} informada não foi encontrada, Por favor, verifique os parâmetros informados. Código informado : {1}”
Regra 12 — Moeda não informada no cadastro da carteira assume a moeda padrão. Se a carteira de origem ou de destino estiver sem moeda cadastrada, o sistema assume a moeda padrão do sistema para aquela carteira antes de seguir. As mensagens de moeda inválida de origem e de destino existem no código, mas na prática não são atingidas nesta rotina, porque a atribuição da moeda padrão ocorre antes da checagem.
Mensagem exibida (origem): Erro “Não foi possível realizar operação” / Motivo “Moeda no cadastro de origem inválida” / Solução “Por favor informe a moeda no cadastro da carteira de Origem para que possa realizar a transferência.”
Mensagem exibida (destino): Erro “Não foi possível realizar operação” / Motivo “Moeda no cadastro de destino inválida” / Solução “Por favor informe a moeda no cadastro da carteira de Destino para que possa realizar a transferência.”
Regra 13 — Conversão pela cotação quando as carteiras operam em moeda estrangeira. Se a moeda das duas carteiras for igual entre si, porém diferente da moeda padrão do sistema, o valor da movimentação é convertido multiplicando o valor informado pela cotação do item (ValorDaCotacao). Quando as carteiras estão na moeda padrão, o valor é gravado como informado.
Regra 14 — Transferência entre filiais diferentes gera operação de mútuo. Se a filial de origem for diferente da filial de destino, o sistema classifica a operação como mútuo entre filiais e gera lançamentos adicionais (detalhados em Lógica Contábil e Financeira). Se as filiais forem iguais, a transferência é direta entre as duas carteiras.
Regra 15 — Para mútuo, as duas filiais precisam ter a conta de lançamento de mútuo configurada. Antes de gerar os lançamentos de mútuo, o sistema valida a carteira de mútuo das filiais envolvidas.
Mensagem exibida (filial do pagamento/destino): Erro “Não foi possível validar Dados” / Motivo “Não é possível executar uma operação financeira mutua sem a carteira mutua” / Solução “Por favor configure a carteira mutua para a filial da operação”
Mensagem exibida (filial do título/origem): Erro “Não foi possível validar Dados” / Motivo “Não é possível executar uma operação financeira mútua sem a carteira mútua” / Solução “Por favor, realizar parametrização no cadastro da filial, em Dados Relacionados=>Conta Lancto Mútuo”
Regra 16 — O fato contábil de mútuo precisa estar ativo e parametrizado. Na operação de mútuo, o sistema busca o fato contábil da operação financeira MÚTUO (BCOMUT) com variação Sem Variação. Se esse fato não tiver lançamentos configurados, a contabilização é interrompida.
Mensagem exibida: Erro “Ocorreu um erro durante a contabilização.” / Motivo “Processo interrompido. Lista de erros: 1 – Fato contábil do financeiro com Operação financeira: 38 – MÚTUO(BCOMUT) e variação : Sem Variação está desativado 2 – Fato contábil do financeiro com Operação financeira: 38 – MÚTUO(BCOMUT) e variação : Sem Variação está desativado.” / Solução “Verifique o erro ocorrido”
Regra 17 — Toda movimentação precisa resolver uma conta contábil válida. Ao montar a contabilização, o sistema resolve a conta contábil a partir da origem configurada no modelo do fato contábil. Não encontrando conta válida, o processo é interrompido.
Mensagem exibida: Erro “Não foi possível obter Plano de contas” / Motivo “Não foi possível determinar uma Conta contábil válida com a configuração do modelo. Conta {0}. Operação: {1} Variação: {2} operacaoFinanceira variacao” / Solução “Configure uma conta contábil valida para operação”
Mensagem exibida (falha na resolução): Erro “Não foi possível obter Plano de contas” / Motivo “Não foi possível determinar uma Conta contábil válida com a configuração do modelo. Conta {0} – Erro: {1}” / Solução “Configure uma conta contábil valida para operação”
Regra 18 — O lote inteiro compartilha uma única chave de fato/integração. Antes de percorrer os itens, o sistema gera uma única nova chave de fato. Essa mesma chave é usada como identificador da operação e como identificador de integração de todas as movimentações do lote, e o número de lançamento é sequencial e contínuo entre os itens (não reinicia a cada transferência). É essa chave que é devolvida ao front-end como CodigoDaOperacao e usada na consulta das movimentações e do comprovante.
Regra 19 — A contabilização só ocorre com todas as movimentações portando operação financeira. Após processar todos os itens, o sistema só envia o conjunto para a integração contábil se nenhuma movimentação estiver sem operação financeira atribuída.
Regra 20 — O padrão de contabilização é executado em dois blocos separados. As movimentações marcadas com contabilização padrão para mútuo são separadas das demais. As movimentações comuns são contabilizadas primeiro (sem indicador de mútuo) e, em seguida, as de mútuo são contabilizadas com o indicador de mútuo ativo, que altera a origem da conta contábil utilizada.
Regra 21 — A edição de item do lote é feita pela grade, antes de salvar. Clicar em uma linha da grade recarrega o formulário com os dados daquele item para alteração; Salvar Item atualiza o registro selecionado e Excluir Item remove a linha. Enquanto o lote não é salvo, nada é gravado no banco. Ao recarregar o formulário a partir da grade, o campo Observação não é reposto no formulário — se o item for regravado sem redigitar a observação, ela é perdida.
Regra 22 — Padrões carregados ao abrir a tela e após cada inclusão. A carteira de origem é preenchida com a carteira em que o usuário está logado e a data de lançamento com a data de movimentação do usuário acrescida de um dia. Esses padrões são reaplicados após cada item adicionado.
Regra 23 — Não há reprocessamento nem estorno pela própria rotina. Concluído o salvamento, a tela avança para o passo de comprovante, cujas ações são apenas fechar, imprimir/exportar e iniciar uma nova transferência. A rotina não oferece consulta, alteração ou exclusão de transferências já gravadas.
Regra 24 — Cheques próprios não se aplicam a esta rotina. O serviço compartilhado possui tratamento de cheques próprios e da variação Cheque a Prazo de transferência, mas a action SalvarMultiplo sempre chama o processamento sem lista de cheques, de forma que esses caminhos nunca são executados na transferência entre múltiplas contas.
Lógica Contábil e Financeira
Tabelas envolvidas
| Tabela | Entidade | Papel na rotina |
|---|---|---|
| TBMOVTOFIN | MovimentacaoFinanceira | Recebe todas as movimentações financeiras geradas pelo lote (saída da carteira de origem, entrada na carteira de destino e, no caso de filiais distintas, as pernas de mútuo). |
| TBMOVTOCTB | MovimentacaoContabil | Recebe os lançamentos contábeis produzidos pela integração contábil a partir das movimentações financeiras. |
Esta rotina não cria títulos a receber nem a pagar (TBTITULOREC e a tabela de títulos a pagar não são movimentadas): trata-se de transferência entre carteiras, não de geração de obrigação ou direito.
Fatos contábeis utilizados
| Operação financeira | Código | Rótulo de negócio | Variação | Uso |
|---|---|---|---|---|
| ListaDeOperFin.tcBCOTRNF | 37 – BCOTRNF (módulo Banco) | TRANSFERÊNCIA | EnumRotinaDeVariacao.SemVariacao (variação 202) | Fato principal da rotina; obtido uma única vez antes de percorrer o lote e aplicado à saída da carteira de origem e à entrada na carteira de destino. |
| ListaDeOperFin.tcBCOMUT | 38 – BCOMUT (módulo Banco) | MÚTUO | EnumRotinaDeVariacao.SemVariacao (variação 203) | Usado apenas quando a filial de origem difere da filial de destino, para registrar o mútuo entre as filiais. Obtido pela chave alternativa (operação 38 mais variação Sem Variação). |
A variação BCOTRNF com ChequePrazoTransferencia (variação 299) existe no serviço compartilhado, mas não é alcançada nesta rotina (ver Regra 24).
Movimentações geradas por item do lote
Caso A — filial de origem igual à filial de destino (transferência simples, 2 movimentações):
| # | Filial | Carteira (participante) | Contrapartida | Operação financeira | Tipo de partida | Categoria de lançamento |
|---|---|---|---|---|---|---|
| 1 | Filial de origem | Carteira de origem | Carteira de destino | TRANSFERÊNCIA (BCOTRNF) | Crédito (saída) | 117 |
| 2 | Filial de destino | Carteira de destino | Carteira de origem | TRANSFERÊNCIA (BCOTRNF) | Débito (entrada) | 213 |
Caso B — filiais diferentes (mútuo entre filiais, 4 movimentações, nesta ordem):
| # | Filial | Carteira (participante) | Contrapartida | Operação financeira | Tipo de partida | Categoria de lançamento |
|---|---|---|---|---|---|---|
| 1 | Filial de origem | Conta de lançamento de mútuo da filial de origem | Carteira de origem (contrapartida de destino: carteira de destino) | TRANSFERÊNCIA (BCOTRNF) | Crédito | 213 |
| 2 | Filial de origem | Conta de lançamento de mútuo da filial de origem | Carteira de origem | MÚTUO (BCOMUT) | Débito | 117 |
| 3 | Filial de destino | Conta de lançamento de mútuo da filial de destino | Carteira de destino | MÚTUO (BCOMUT) | Crédito | 213 |
| 4 | Filial de destino | Carteira de destino | Conta de lançamento de mútuo da filial de destino (contrapartida de destino: carteira de origem) | TRANSFERÊNCIA (BCOTRNF) | Débito | 117 |
No caso B, as quatro movimentações são marcadas com o indicador de contabilização padrão para mútuo, e o fato contábil de MÚTUO tem a origem da conta de débito e de crédito forçada para a origem “conta de lançamento de mútuo da filial”, de modo que a conta contábil das pernas de mútuo é resolvida pelo plano de contas do cadastro de mútuo da filial, e não pelo plano de contas da carteira.
Lógica de gravação
- Uma única chave de fato é gerada antes do laço (nova chave de fato do serviço de sequência). Ela é usada simultaneamente como identificador da operação e como identificador de integração de todas as movimentações de todos os itens do lote — é o elo que amarra o lote inteiro.
- O contador de número de lançamento é iniciado em 1 e passado por referência ao processamento de cada item, portanto a numeração é sequencial e contínua ao longo de todo o lote (um lote de 3 transferências entre filiais distintas produz lançamentos numerados de 1 a 12).
- Cada movimentação financeira é criada pela fábrica de movimentação de entrada e saída (com filial, participante, contrapartida, histórico do fato contábil, data de lançamento, valor, valor em moeda, documento, status de conciliação, tipo de partida, data de movimentação, módulo Banco, cadastro do usuário, operação financeira, moeda padrão, chave de integração, carteira de origem, carteira de destino, categoria de lançamento e observação), adicionada ao repositório e imediatamente confirmada com commit da unidade de trabalho. A conciliação é definida como Sim quando o lançamento do fato contábil não está marcado com conciliado igual a 2; caso contrário, Não.
- As movimentações também são acumuladas em uma lista em memória para a contabilização. Após o laço, o sistema verifica que todas possuem operação financeira e então divide a lista em dois blocos: as marcadas como contabilização padrão para mútuo e as demais.
- O bloco comum é enviado ao processamento de lançamentos financeiros de transferência com o indicador de mútuo desligado; em seguida, o bloco de mútuo é enviado com o indicador ligado. O indicador de mútuo altera a resolução da conta contábil: com o indicador desligado, usa-se o plano de contas da carteira da movimentação; com o indicador ligado, usa-se o plano de contas do cadastro da contrapartida — e, quando a origem configurada é a conta de lançamento de mútuo da filial, a conta é buscada pelo plano de contas do cadastro geral da movimentação.
- Não há transação única abrangendo o lote inteiro: cada movimentação é confirmada individualmente no momento da inclusão, e a contabilização ocorre depois, em dois blocos. Uma falha de parametrização detectada durante a contabilização (fato de mútuo desativado, conta contábil não resolvida) interrompe o processo depois que as movimentações financeiras já foram gravadas.
- O identificador retornado ao front-end é a própria chave de fato/integração. Com ela, o controller consulta as movimentações financeiras da operação e, pelas chaves de fato dessas movimentações, os lançamentos contábeis; ambos alimentam as grades do comprovante e o relatório impresso.
Compensação e baixa futura
Não se aplica. A rotina não gera título em aberto: as movimentações de transferência (e as de mútuo, quando houver) já registram a saída e a entrada dos recursos no mesmo processamento, ficando marcadas como conciliadas conforme a parametrização do lançamento do fato contábil. Não existe rotina irmã de compensação ou baixa vinculada a esta operação.
Permissões
| Recurso | Rota | Pai | Descrição |
|---|---|---|---|
| 3965 | EditViewDeTransferenciaEntreMultiplasContas | 1554 | Entre Múltiplas Contas (nome no menu: “Entre Múltiplas Contas”; inglês: “Between Multiple Accounts”; espanhol: “Entre Múltiples Cuentas”). Ativo, com validação prévia de abertura (validaAntes = true). |
| 1554 | (sem rota) | 0 | Transferências — agrupador de submenu do módulo Financeiro, ordem 20. |
Observações:
- Não existe recurso de listagem (ListViewDe…) para esta rotina; o recurso 3965 é o único ponto de controle de acesso, cobrindo tanto a montagem do lote quanto o salvamento e a impressão do comprovante.
- Recursos irmãos sob 1554 – Transferências: 1555 (Adiantamento de Cliente), 1556 (Adiantamento a Fornecedor) e 1557 (Transferência Entre Contas — versão de transferência simples, servida pelas actions Salvar e Imprimir do mesmo controller).
- Fonte: RecursosGeraisFinanceiro.cs.