Solução/Implementação: | Criado a nova opção "Ambos" no parâmetro "Gerar conta tipo?", que permite a geração de registros para contas corrente e poupança. Para utilizar essa nova funcionalidade é necessário se atentar à alguns pontos: - Quando a opção "Ambos" for selecionada o sistema vai processar todos os funcionários que respeitem os filtros informados e baseado no campo RA_TPCTSAL ( Tipo da Conta Salário ) e no campo RA_BCDEPSA ( Banco Conta Salário ) ele fará uma "quebra";
- Cada "quebra" será feita pela conjunção do Código do Banco + Tipo da Conta Salário para funcionários cujo o campo RA_BCDEPSA sejam iguais ao informado no parâmetro "Processar Banco?". Os demais funcionários, ou seja, os que tiverem o campo RA_BCDEPSA diferente do banco informado no parâmetro "Processar Banco?", a "quebra" será feita pela conjunção da palavra "DOC" + Tipo da Conta Salário. Essa conjunção, responsável pela "quebra" é armazenada numa variável chamada cLote que pode ser usada pelo usuário dentro de fórmulas e funções de usuário para determinar a forma de lançamento. Para melhor compreensão, vamos verificar um exemplo:
- O layout do CNAB Padrão 240 - Folha de Pagamento de determinado banco estabelece a seguinte regra no cabeçalho do lote:
- Entre as posições 012 e 013 deve constar a forma de lançamento do Lote, seguindo a numeração: 01 - Crédito em Conta Corrente, 03 - Transferências para outros Bancos(Doc ou Ted), 05 - Crédito em Conta Poupança e 10 - Ordem de Pagamento, baseado nessa numeração e na nossa variável cLote, podemos montar uma função de usuário com a estrutura abaixo:
![](/download/attachments/239035368/6.JPG?version=1&modificationDate=1465995404000&api=v2)
- Os funcionários cujo campo RA_TPCTSAL ( Tipo da Conta Salário ) estiver vazio são considerados um lote à parte. No nosso exemplo do item 2 os funcionários cujo RA_TPCTSAL ( Tipo da Conta Salário ) estão vazios são tratados dentro do lote de Ordem de Pagamento;
- A estrutura de chamada do LayOut é a seguinte:
- Cabeçalho do Arquivo
- Cabeçalho do Lote
- Rodapé Lote
- Rodapé Arquivo
- Por padrão ao chamar o Cabeçalho do Arquivo o sistema automaticamente chama o Cabeçalho do primeiro lote e ao chamar o Rodapé do Arquivo ele automaticamente chama o Rodapé do Lote previamente. Para inibir esse comportamento é necessário fazer uma verificação no Cabeçalho do Lote e no Rodapé do Lote, verificando se cLote está nula.
![](/download/attachments/239035368/7.JPG?version=1&modificationDate=1465995405000&api=v2) - O sistema disponibiliza algumas novas variáveis que podem ser utilizadas livremente dentro das funções de usuário e das fórmulas do layout:
- nLoteSeq, armazena a sequência do lote, sendo incrementado toda vez que ocorre uma "quebra", ou seja, toda vez que cLote se modifica;
- nLoteQtd, armazena a quantidade de registros dentro do lote atual;
- nLoteTotal,armazena o valor dos lançamentos contidos no lote atual.
- nQtdLinLote, armazena a quantidade de linhas detalhe dentro do lote atual, ou seja, desconsiderando as linhas do cabeçalho e do rodapé.
- Algumas variáveis que já existiam mantiveram seu comportamento normal:
- nTotal, guarda o valor total do arquivo como um todo;
- nTotFunc, guarda a quantidade de registros processados no arquivo como um todo;
- Lembrando que a rotina processa os beneficiários dos funcionários também, nesse caso evite utilizar o alias da tabela de funcionários(SRA) no seu layout, por exemplo, ao invés de usar SRA->RA_NOME, utilize a variável cNome.
Exemplo de arquivos gerados com essa nova funcionalidade:
![](/download/attachments/239035368/4.JPG?version=1&modificationDate=1465995522000&api=v2)
![](/download/attachments/239035368/5.JPG?version=1&modificationDate=1465995552000&api=v2)
|
Conversores e Parâmetros: | Para o funcionamento dessa nova funcionalidade é necessário que a seguinte configuração: O parâmetro "Processar banco ?" deve ser informado com o banco da empresa(no nosso exemplo, 033). O parâmetro "Gerar conta tipo ?" deve estar configurado como "Ambos" ![](/download/attachments/239035368/2.JPG?version=1&modificationDate=1465995402000&api=v2)
O parâmetro "Layout ?" deve ser necessariamente "CNAB Modelo 2" ![](/download/attachments/239035368/1.JPG?version=1&modificationDate=1465995401000&api=v2)
|